Atari 2600 VGA

Avatar de Usuario
DistWave
Mensajes: 183
Registrado: 14 Oct 2015, 19:24
Ubicación: Zaragoza

Atari 2600 VGA

Mensaje por DistWave » 03 Dic 2015, 22:47

Dejo por aquí un core atari 2600 de prueba que estoy portando al zxuno. De momento solo soporta salida VGA, así que hace falta tener el cable correspondiente. Solo está testeado el bitfile del prototipo v3 porque es el que tengo.
zxuno_a2601.zip
(133.54 KiB) Descargado 441 veces
Basicamente es el core A2601 al que le he añadido un mecanismo para cargar juegos y configurar los switches mediante el teclado PS/2. Para ello he utilizado el modulo de control de Retro Ramblings, basado en un procesador de 32 bits ZPUFlex que permite ejecutar código compilado en C. Sí, el modulo de control ocupa más slices que el propio atari 2600 :mrgreen:

El menú se controla con los cursores, enter y avpag / repag. Se oculta y muestra con la tecla Esc.

Algunos juegos no funcionan y otros tienen glitches gráficos, supuestamente es problema del core original que no está muy pulido.
El bitfile viene precargado con una rom homebrew de pacman publicada en este foro

Se aceptan sugerencias, intentaré hacer lo que buenamente pueda :atari2600:

Avatar de Usuario
neuro_999
Mensajes: 692
Registrado: 06 Oct 2015, 10:14

Re: Atari 2600 VGA

Mensaje por neuro_999 » 03 Dic 2015, 22:53

Ole! mi primera consola. ;)
Ahora me toca hacer el cable vga ;) mañana echare un ojo a los pines y componentes para el cable.

Enhorabuena x el core.

Avatar de Usuario
Hark0
Mensajes: 683
Registrado: 27 Sep 2015, 00:31
Ubicación: Cornellà de Llobregat - BCN
Contactar:

Re: Atari 2600 VGA

Mensaje por Hark0 » 04 Dic 2015, 10:40

¿Funciona el E.T.? :mrgreen:

Enhorabuena por este aporte :gracias!:
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

Avatar de Usuario
mcleod_ideafix
Mensajes: 831
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: Atari 2600 VGA

Mensaje por mcleod_ideafix » 05 Dic 2015, 23:32

No sé qué me gusta más, si el hecho de tener un Atari 2600 funcionando, o esto que comentas del ZPUFlex. Quizás sea la solución para dar soporte de ficheros en tarjeta SD a otros clones que no soportan interfaces directos para las referidas tarjetas SD.

Muchas gracias :)
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: Atari 2600 VGA

Mensaje por Quest » 07 Dic 2015, 11:34

Excelente :D

De hecho el tema de tener un softCPU para tener OSD, cargar de alamacenamiento masivo, etc, etc, es bastante común pero suele usarse poco por ocupar mucho en las FPGA. Suelen ser softCPUs de 32 bits y se suelen programar fácilmente en C. El core de A2600 ocupa poco y así esto es posible. De hecho en el core que estuve trasteando (y que funciona a medias) de Atari 800 XL, se usa la misma idea, pero con el sofCore ZPUino en vez de ZPUFlex (que imagino que será similar), para tener un OSD para cargar los juegos, ROMs, configuración del core y demás. De hecho hay librerías hechas para ZPUino si no recuerdo mal para leer de la SD y demás :)

DistWave, si te animas a hacer lo mismo (aunque dudo que quepa) con el core de NES, sería la bomba :D Actualmente hay que enviar las ROMs por puerto serie. Hay un core para LX45 que lo hace en vez de con un ZPUxxx, con un SoftCore MicroBlaze de Xilinx, que él solito ocupa ya toda la spartan entera (y eso si cambias los parámetros de Mapa), pero seguro que se puede hacer con un softCore más pequeño. Las ROMs de NES, están divididas en 3 básicamente, el header iNES (que indica tamaños de las PRG y CHR ROMs y los mappers usados), la PRG Rom en sí y la CHR Rom. El core se encarga de cargar cada parte en la BRAM correspondiente dependiendo de lo encontrado en el header y manda los OPcodes necesarios a la CPU de la NES para provocar un reset y la ejecución del PRG.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
mcleod_ideafix
Mensajes: 831
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: Atari 2600 VGA

Mensaje por mcleod_ideafix » 07 Dic 2015, 13:58

Quest escribió:Las ROMs de NES, están divididas en 3 básicamente, el header iNES (que indica tamaños de las PRG y CHR ROMs y los mappers usados), la PRG Rom en sí y la CHR Rom. El core se encarga de cargar cada parte en la BRAM correspondiente dependiendo de lo encontrado en el header y manda los OPcodes necesarios a la CPU de la NES para provocar un reset y la ejecución del PRG.
Hay otra forma en la que se puede conseguir esto, pero ya es un nivel muy avanzado de FPGA: la reconfiguración dinámica. Consiste en que tú tienes un core en la FPGA, y ese core se encargaría por ejemplo, de cargar una imagen de ROM de la NES desde SD hasta la block RAM o hasta la memoria externa. Luego ese mismo core activa la carga de otro, que "machaca" al core anterior, pero sólo en ciertas partes de la FPGA: otras se quedan como estaban, por ejemplo, la block RAM no se toca.

Es más: si la ROM de la NES se guarda en la memoria externa, lo tenemos aún más sencillo con el multiboot: cuando se cargue el core de NES, lo que se cargará será un core que usando un procesador del tipo que sea, presente un menú en pantalla para elegir la ROM. Ésta se cargará en la RAM externa y acto seguido, usando el modo multiboot de la Spartan, se cargará un segundo core que será la NES propiamente dicha y que arrancará ya con la ROM metida en la RAM externa. Como la RAM externa es exterior a la Spartan, no resulta para nada afectada porque se haya cambiado el core dentro de ella.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
DistWave
Mensajes: 183
Registrado: 14 Oct 2015, 19:24
Ubicación: Zaragoza

Re: Atari 2600 VGA

Mensaje por DistWave » 30 Dic 2015, 13:43

Quest escribió:DistWave, si te animas a hacer lo mismo (aunque dudo que quepa) con el core de NES, sería la bomba :D
Solo comentar que llevo unos días mirando el asunto y pinta bien :mario:

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: Atari 2600 VGA

Mensaje por Quest » 30 Dic 2015, 13:49

DistWave escribió: Solo comentar que llevo unos días mirando el asunto y pinta bien :mario:
Fenómeno! :D :luigi: Estaremos espectantes...

Si sale la cosa, podemos inentar después portar el otro core de NES (el de ludde/strigeus, a ver si subo los fuentes un día, que lo dejé a medias) que trae soporte de mappers (y por tanto soporte para cientos de juegos), ya que el que estás tocando ahora mismo, no los soporta y por tanto tiene muy limitadas las roms a cargar (solo unas pocas de las más antiguas, máximo 40Kb). El mayor problema para portar el core que te comento es la RAM que usa (si no recuerdo mal PSRAM de 32 bits, tengo que revisarlo).

Ánimo :chocala!:
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
DistWave
Mensajes: 183
Registrado: 14 Oct 2015, 19:24
Ubicación: Zaragoza

Re: Atari 2600 VGA

Mensaje por DistWave » 30 Dic 2015, 14:03

Precisamente el core que estoy tocando es el de ludde/strigeus :D Primero estuve haciendo pruebas con el que subiste al repo y no llegué a entender como va el tema de los relojes, alimenta todo con uno de 100 MHz y al intentar usar la SRAM me daba fallos como si no fuera lo suficientemente rápida. Además este core ocupa casi toda la FPGA y el ZPUflex entraba por los pelos, sin dejar margen para intentar mejorar la compatibilidad. Así que lo descarté y pasé al plan B, el core de strigeus.

De entrada es un poco mas lioso de entender, porque está peor estructurado en ficheros. Sin embargo sólo ocupa la mitad de la FPGA y tiene ya incorporado el tema de los mappers, así que era la mejor opción. Ya lo he adaptado para utilizar la SRAM del ZXUNO, dividiéndola en dos zonas para albergar 256 KB de PRG ROM y 256 KB de CHR ROM. Las roms que necesitan más de 256 KB para una de las dos zonas de memoria no funcionarán, pero mirando la lista de ROMS de NES tampoco hay muchas que tengan este requisito.

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: Atari 2600 VGA

Mensaje por Quest » 30 Dic 2015, 14:16

La leche!! :mrgreen: Bombazo al canto, pues :D

Tío, excelente trabajo. Sólo puedo decir, que podrías ser el 4ª rey mago en 2016... :silbando:

:mario: :luigi:
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Responder