Amiga 500 "minimig" funcionando en placa genérica

Otras placas, clones o aparatos basados en FPGA / Oher FPGA based clones/devices/boards
Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Amiga 500 "minimig" funcionando en placa genérica

Mensaje por jepalza » 29 Abr 2018, 08:59

Llevaba meses (y ademas, de verdad de la "buena", meses laaaaargos) tratando de meter el A500 del Minimig en las FPGA de Xilinx (las Spartan).
Quedaba claro, que en una Spartan LX9 (la del ZXUNO) era imposible colarlo. En la LX16, anda muy pelado, tanto, que diría que tampoco se puede. Quest ya lo ha intentado, y de momento, no lo ha logrado, por lo justo de los recursos.

Mínimo era necesario una LX25. Por eso, hace ya tiempo, me compré una LX45, una "bestia" en la que entran no uno, sino dos amigas de golpe, de la cantidad de espacio que tiene. Pero Luego llegaron los problemas de velocidad y accesos a memoria. Fui capaz de cargar el núcleo del minimig y el menu de arranque, pero se quedaba "pillado" siempre al cargar el fichero principal de control de la SD. Al final, tiré la toalla, aburrido de hacer pruebas.
Hace un mes, busqué una alternativa al Mist y a los Altera DE0, DE1 y DE2, típicos del Minimig, dado que son carísimos (a excepción del Nano-DE0, pero aún así, son 100 y pico euros mas luego añadir periféricos).

Encontré en Aliexpress una placa Altera con chip Cyclone IV EP4CE22F17 que es lo mas parecido a las EP2 y EP3C25 que emplean los Cores de las diferentes versiones del Minimig que circulan por la red (hay al menos una decena de versiones). Con la que he comprado, la EP4CE22 tengo 22000 y pico celdas para meter el A500, y entra de sobras, ya que se gastan unas 18000 celdas lógicas, y sobran aún 4000 para lo que pudiera venir. Además, lleva 32 mb. de SDRAM, necesaria para el proyecto.

Junto con la placa Altera, he cogido también la de desarrollo que va debajo de ella (el "zapato" como diría Quest ;-) ) que viene con absolutamente todo lo necesario para hacer andar el A500 nada mas llegar. A falta tan solo de un segundo puerto PS2 para el ratón, que ye he resuelto, como se ve en las fotos, por que he puesto un cable extra en el conector de expansión de esta placa.

Ambas placas, puestas en casa, me han salido unos 55€ al cambio (5 de gastos, y 50 de ambas placas), y ha tardado unos 40 días. Me llegó el miércoles, y hoy domingo, he logrado hacerlo andar "porfín", tras , digamos, un año detras del proyecto A500 Minimig. Como es un Altera, y tiene todo lo necesario, solo ha sido aprender a manejar el Quartus (para programar el Altera) que es MUY diferente al ISE de Xilinx, y ha sido como volver a nacer, aprender todo otra vez. En un par de días, tenía controlado el Quartus, y con el proyecto del Minimig para Nano-DE0 (el de esta página --> http://www.minimig.net/viewtopic.php?f=9&t=647 ) y algunos cambios necesarios, como pines, velocidad y colores VGA, lo he puesto en marcha. El Minimig original emplea el sistema de colores VGA888, o sea, 8 bits por color, (no he dicho nada, es el DE0 el que lo emplea, no el minimig) y en mi placa "solo" tengo VGA 565, por lo que he tenido que reducir los colores, pero no lo he hecho bien del todo, y los rojos y azules han quedado muy fuertes, demasiado saturados, es un mal menor, iré ajustando. Otro fallo es la velocidad de la SDRAM, que no está bien ajustada, y se nota en el refresco de la pantalla (ver la foto con el granulado). Este problema no he sido capaz de solucionar. He hecho una docena de pruebas, y todas malas. Espero solucionarlo, sino, realmente, me da igual, no soy un "pijotero" de la calidad, sino de la utilidad.

También tengo problemas al leer discos duros (imagenes de HDD del A500), por que no soy capaz. He probado con varios formatos de imagen de HDD y ninguna la coge, solo coge discos ADF. Estoy en ello, a ver si doy con el fallo. (puede ser por problemas de acceso a la SD)

Un detalle curioso, es la salida de información de arranque del Minimig por el RS232. Como esta placa también lleva integrado un MAX232, el envío de info al "hiperterminal" de windows es directo, y eso permite ver todo lo que ocurre dentro del Minimig, para depurar fallos.

La placa también tiene un altavoz, pero es mas bien un simple "biiip" (o "beeper" que dirían los angloparlantes), y a pesar de que se oye el amiga por ahí, es como escuchar a 100 grillos cantando a la vez. La placa tiene conversores AD y DA, tengo que probar a sacar el sonido por ellos, a ver si consigo un sonido fiel.

Pues bien, a falta de los detalles indicados (HDD, colores, granulado y sonido) el A500 es funcional.

La idea, cuando lo tenga bien, es hacer una placa para poner arriba de la "Altera", que sea justo del mismo tamaño, con las cuatro cosas necesarias (sonido, PS2, VGA, un par de botones y algún led, y la mini-sd) y hacer un A500 compacto. Pero de momento, me conformo con esto.

Comentar, que esto del Minimig está muy, pero muy desinformado, muy descontrolado. Nadie dice cómo "compilar" tu propio Minimig con pasos del 0 al 10. Está tan liado, que es un infierno de horas de estudio y pruebas. Solo para encontrar el fichero CRTL_BOOT.BIN correcto (por el tema de versiones) y el DE1_BOOT.BIN, que es el que arranca el menu OSD del minimig, ya he necesitado mas horas que las usadas para compilarlo. Muchas horas de pruebas de versiones buscadas por la red, para encontrar las ROMS necesarias para inicarlo, de forma que una se entienda con la otra. En contreto, estoy usando las ROM de la versión Minimig del "Chameleon64" (o Fampiga).

Dejo unas fotos del invento.

Imagen
Imagen
Imagen
Imagen

Grupo Telegram sobre la placa: https://t.me/joinchat/FDjURBAeiE1hmVZbMWfGWg
Última edición por jepalza el 29 Abr 2018, 20:37, editado 1 vez en total.

Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Re: Amiga 500 "minimig" funcionando en placa genérica

Mensaje por jepalza » 29 Abr 2018, 14:37

Ya he logrado arreglar todos los fallos, menos el del granulado de pantalla.
He reparado los colores, hasta donde pienso que es correcto para mi gusto(he reducido de 8+8+8 a 5+6+5). Hay que ser muy listo para notar diferencia en los colores.
Luego, he averiguado el tema de los HD virtuales, y es que, hay que emplear un KickStart 2.0 , no vale el del A500 V1.3, al menos, en la versión que yo he compilado. Lo malo de la 2.0 es que hay juegos o demos que no cargan. Pero para eso está el cambiar de ROM cuando a uno le plazca.
He hecho conectores exclusivos para el ratón, el sonido estéreo y un mando de juegos (viene para dos, pero a mi con uno me vale). Podía haber puesto los conectores en una placa única, en lugar de con cables al aire, pero una vez mas, me da igual, es para mi, y luego, va a ir todo en una caja metido.
Como la placa tiene led's de sobra, he dedicado el principal a led de actividad de carga, para ver si sigue vivo mientras carga.
Y con esto y bizcocho.... tengo de sobras para divertirme.

Lo único que falla, es la velocidad de acceso a la RAM de vídeo, que no he logrado ajustar bien, y salen píxeles perdidos, que en colores sólidos afean el aspecto. En juegos apenas se nota, por la mezcla de colores. Pero seguiré mirando a ver si lo ajusto, para dejarlo pulido.

Si alguien quiere el código compilado, lo dejo por aquí, pero de momento, dado que es una placa muy exclusiva, con conectores a mi gusto, dudo que le sirva a nadie.

Por poco mas de 55€, tengo un A500 solo un par de dedos mas grande que el ZXUNO :D (bueno, cuando le haga la placa con conectores, ahora, de momento, mide 15x13cm)

Imagen
Imagen

Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Re: Amiga 500 "minimig" funcionando en placa genérica

Mensaje por jepalza » 30 Abr 2018, 06:41

He localizado el "fallo" de los píxeles perdidos. Es mas bien un problema de tiempos de vídeo, no de velocidad de reloj como pensaba yo. Por eso no daba con el fallo.
Si está en modo "PAL" se ven puntitos por la pantalla bailando, incómodo en colores sólidos, como el azul del WorkBench. Pero si activo el modo "NTSC" se soluciona, y queda una imagen perfecta. :chocala!:

Imagen

Ademas, he tenido que hacer un pequeño filtro a la salida del sonido, como viene indicado en el core, por que sino, sonaba a "garaje" y se escuchaban chasquidos.

Ya está TODO funcionando. Ahora, a disfrutarlo. Con el tiempo haré una placa mas pequeña y lo meteré en una cajita.

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

Re: Amiga 500 "minimig" funcionando en placa genérica

Mensaje por neuro_999 » 30 Abr 2018, 08:09

Enhorabuena tio. :) Es la caña el amiga, y dnd lo has portado tu es la opciin mas barata. Ahora a hacer funcionar el puero serie del amiga y a conectarlo para jugar a dobles al stun car racer, lotus y al fire power. ;)

Enviado desde mi ONE A2003 mediante Tapatalk

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Amiga 500 "minimig" funcionando en placa genérica

Mensaje por antoniovillena » 30 Abr 2018, 08:33

Enhorabuena por el proyecto. No sabía que existían esas placas tan baratas. Y me ha dado por mirar los datasheets y el EP4CE22 existe en EQFP144, lo que hace posible una placa relativamente fácil de soldar por aficionados.

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Amiga 500 "minimig" funcionando en placa genérica

Mensaje por antoniovillena » 30 Abr 2018, 08:50

He encontrado la placa core a buen precio, por si a alguien le interesa:

https://es.aliexpress.com/store/product ... 28751.html

Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Re: Amiga 500 "minimig" funcionando en placa genérica

Mensaje por jepalza » 30 Abr 2018, 09:32

antoniovillena escribió:He encontrado la placa core a buen precio, por si a alguien le interesa:

https://es.aliexpress.com/store/product ... 28751.html
:D Esa es la que yo he comprado, y en esa misma página. Pero yo la compré con la parte inferior incluída, que salía mas barato el conjunto, que sueltos. Como ya he dicho, unos 55€ con gastos, y 40 días para llegar.

Se ha convertido en el Port del Minimig mas barato que he visto por la red :P

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Amiga 500 "minimig" funcionando en placa genérica

Mensaje por antoniovillena » 30 Abr 2018, 09:37

jepalza escribió:
antoniovillena escribió:He encontrado la placa core a buen precio, por si a alguien le interesa:

https://es.aliexpress.com/store/product ... 28751.html
:D Esa es la que yo he comprado, y en esa misma página. Pero yo la compré con la parte inferior incluída, que salía mas barato el conjunto, que sueltos. Como ya he dicho, unos 55€ con gastos, y 40 días para llegar.

Se ha convertido en el Port del Minimig mas barato que he visto por la red :P
Creo que la que has comprado es esta:

https://es.aliexpress.com/store/product ... 08966.html

Ha subido 3.50 euros desde que la compraste, pero sigue siendo muy barata. Aunque con un zapato o sombrero hecho a medida saldría más barata aún.

Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Re: Amiga 500 "minimig" funcionando en placa genérica

Mensaje por jepalza » 30 Abr 2018, 09:44

antoniovillena escribió: Creo que la que has comprado es esta:

https://es.aliexpress.com/store/product ... 08966.html
Exacto, esa misma. No la encontraba. La compré en uno de esos momentos que pone "10% of discount" o algo parecido, por eso me ahorré algunos euros.

En cuanto al proyecto, el que se anime, ya sabe, solo es hacer una placa para la parte de arriba (o de abajo, a gustos) que añada dos PS2, un puerto de juegos, VGA, SD, audio y poco mas, algun LED para actividad de HD, algún botón extra.... cuatro cosas.

Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Re: Amiga 500

Mensaje por jepalza » 30 Abr 2018, 09:45

neuro_999 escribió:Enhorabuena tio. :) Es la caña el amiga, y dnd lo has portado tu es la opciin mas barata. Ahora a hacer funcionar el puero serie del amiga y a conectarlo para jugar a dobles al stun car racer, lotus y al fire power. ;)

Enviado desde mi ONE A2003 mediante Tapatalk
Ya funciona el RS232, pero no soy jugón, soy de ver DEMOS, escuchar músicas MOD, y trastear con el Workbench

Responder