Atari Megacart!

Proyectos realizados por los Retronianos, también links a proyectos externos y sitios relacionados con Modding y DIY... A crear si ha dicho...
Responder
Avatar de Usuario
SpaceInvader
Mensajes: 217
Registrado: Jue Jul 17, 2014 4:01 pm
Contactar:

Atari Megacart!

Mensaje por SpaceInvader » Jue Oct 11, 2018 11:27 pm

Cartridge Atari MEGACART

Imagen

Presento aquí mi nuevo diseño, es un cartridge Atari del tipo Megacart.
Hay un documento en internet, llamado "Types of Atari cartridge images", que define todos los tipos de cartridge, definición necesaria para que los emuladores soporten los diferentes tipos de carts. El documento de puede consultar aquí:

http://ftp.pigwa.net/stuff/emulators_an ... r/cart.txt

La Búsqueda

Hace tiempo que me propuse la misión de encontrar todos los esquemáticos de todos los cartridges atari, y el megacart es uno de los que me faltaba. Me refiero a carts simples, con memorias eprom sólo de lectura. No existe mayor información en internet acerta del megacart, aparte de un vendedor europeo que vende un "Megacart", que es regrabable y tiene su propio sofware generador. Aquí se puede consultar su sitio web (http://herale.org/). Este cartride comercial es similar a otros cart re-grabables (el SIC, el UNO, el Maxflash, el The!Cart, el Ultimate, etc etc)
Pero, yo busco lo simple, barato y bonito. Un simple cartridge que corra imágenes de Megacart con (e)eprom estándar.

Entonces, estas son las definiciones de los megacarts, según el documento ya mencionado:

***************** Copy-Paste:

+---------------------------------------------------------------------------+
| Type 26: MegaCart 16 KB cartridge |
+---------------------------------------------------------------------------+

A 16 KB cartridge, that occupies 16 KB of address space between $8000
and $BFFF, and can be disabled by writing a byte with bit 7 set to
$D500-$D5FF.

+---------------------------------------------------------------------------+
| Type 27: MegaCart 32 KB cartridge |
+---------------------------------------------------------------------------+

A bank-switched cartridge that occupies 16 KB of address space between
$8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bit 0
selects one of two available banks, bit 7 disables the cartridge.

+---------------------------------------------------------------------------+
| Type 28: MegaCart 64 KB cartridge |
+---------------------------------------------------------------------------+

A bank-switched cartridge that occupies 16 KB of address space between
$8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bits 0-1
select one of four available banks, bit 7 disables the cartridge.

+---------------------------------------------------------------------------+
| Type 29: MegaCart 128 KB cartridge |
+---------------------------------------------------------------------------+

A bank-switched cartridge that occupies 16 KB of address space between
$8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bits 0-2
select one of 8 available banks, bit 7 disables the cartridge.

+---------------------------------------------------------------------------+
| Type 30: MegaCart 256 KB cartridge |
+---------------------------------------------------------------------------+

A bank-switched cartridge that occupies 16 KB of address space between
$8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bits 0-3
select one of 16 available banks, bit 7 disables the cartridge.

+---------------------------------------------------------------------------+
| Type 31: MegaCart 512 KB cartridge |
+---------------------------------------------------------------------------+

A bank-switched cartridge that occupies 16 KB of address space between
$8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bits 0-4
select one of 32 available banks, bit 7 disables the cartridge.

+---------------------------------------------------------------------------+
| Type 32: MegaCart 1 MB cartridge |
+---------------------------------------------------------------------------+

A bank-switched cartridge that occupies 16 KB of address space between
$8000 and $BFFF. It is controlled by a byte written to $D500-$D5FF. Bits 0-5
select one of 64 available banks, bit 7 disables the cartridge.
*************** Fin del copy-Paste.

Resumiendo, se trata de un bankswitch con bancos de 16KB, accionado por el bus de datos, y el bit 7 deshabilita el cartridge. Muy similar al cart atarimax, pero con el bus de datos, y bancos de 16K.

Diseño del Megacart

Y aquí se puso complicada la cosa: Jamás pude encontrar un esquemático simple de un Megacart. Así que, me propuse construirlo. Hice muchos test.. Armé varios carts, hasta que finalmente, se me encendió la ampolleta y me resultó... :D

Se me ocurrió que la base debería ser un cart estándar de 16K. ¿Por qué?, En Altirra, un cart estandar de 16KB también se puede cargar como "16K Megacart". Este cart usa las líneas de dirección de A0 a A12, y usa S4 como A13. Aquí se puede ver un cartridge estandar de 16K, versión eprom estándar:

Imagen

Luego, se pueden usar flip-flops de manera estándar para las direcciones superiores, de A14 hasta A20. ¿A20? ¿No será mucho? Sería posible fabricar un cart de 2 MB, el doble de capacidad que un Atarimax...
Decidí hacerlo para eproms estandar de 128/256KB, para empezar.
Llegué a este diseño, que es el que finalmente resultó:

Imagen

Tal como dije, simple, barato y bonito :mrgreen: XD
Sólo tres chips, en mi cart hay más bases y más chips (¡Mucha experimentación!), pero lo básico son 4 chips.
Posteriormente lo reduje a tres chips, usando diodos. Y lo puedo reducir aún más, a dos chips, usando una eprom y una GAL, pronto voy a hacerlo.
En el diseño original use un 74LS08, y después lo reemplacé con dos diodos, funciona igual.

Aqui hay una versión con diodos en vez del 74LS08 (testeada ok):

Imagen

Y una versión con transistor (no testeda):

https://gamemasterquilpue.000webhostapp ... sistor.png

Fotos del cart:

Imagen

Imagen


Imagen

Imagen

Aquí se ve que reemplacé el LS08.


Uso del software

Imagen

Hice un importante descubrimiento: El software asociado al "Megacart comercial" ("Megacart Studio V5.8") puede generar imágenes estandard de carts megacart, desde 512KB hasta 4MB.

Estas imágenes se pueden testear en emuladores. No se necesita ser un experto en código atari para hacer estos multicarts, cualquiera puede hacerlos con este software.

El software se puede descargar desde aquí:

http://www.abbuc.de/~bernd/4MB_FLASH_ME ... iov5.8.zip

El uso es muy simple, permite agregar ejecutables Atari hasta llenar la capacidad del cart disponible.

Imagen

Imagen

Se puede editar el título principal, y los nombres de los juegos. Permite salvar la compilación como carts de 512K, 2M o 4M. Pero, se pueden reducir más. Por ejemplo, al hacer una compilación de un solo juego, puede quedar de tamaño menor a 32KB, y el final del archivo queda lleno con FF. Entonces, se puede cortar el archivo, y dejarlo de 32768 bytes, y grabarlo en una eprom de 32K, una 27256. Lo comprobé, funciona en el emulador y en el cart. Es una lástima que el software no ofrezca la opción de auto-start, sería ideal para un solo juego.
Sólo he probado eproms de 128 y 256K, por ahora no tengo eprom más grandes (no hay plata). Hay que experimentar con eprom más grandes, deberían funcionar sin mayores problemas.
Para recortar los archivos (eliminar las FF sobrantes), usé winHex.

Unos pantallazos de compilaciones corriendo en mi Atari:

Imagen

The Eidolon, el primer cart en formato megacart que me funcionó...

Imagen

Imagen

También hay disponibles imágenes de carts Atari en formato megacart, es cosa de buscar, en Atariage encontré varias.
Normalmente se usa el formato megacart cuando el juego es grande, 256K y más. Aquí dejo una pequeña compilación de carts en formato megacart: https://gamemasterquilpue.000webhostapp ... _juego.zip

Y aquí dejo algunas compilaciones que yo mismo hice con MegacartStudio. Todas funcionan en Altirra (cargar como megacart), y en el cart: https://gamemasterquilpue.000webhostapp ... studio.zip

Problemas

No todo va a ser perfecto, hay algunos problemas. Algunos juegos no funcionan, hay por ahí algunos que no arrancan (la minoría). El mismo software oficial lo advierte: "It is recommended to execute compatibility tests in emulator".
Y también dice: " If you notice any problem, please change the Loader address (to $400 instead of $700) and try it again." No sé como hacer esto... Pero bueno, normalmente, funciona casi siempre.
Pero esto es casi normal en estos multicarts, puede haber problemas con el uso de la memoria entre el loader y determinado juego. Tengo que testearlo más, cada compilación debe ser verificada. Pero, el 95% de las veces, todo funciona correctamente.

Resumen

Hacer el megacart es un proyecto que busqué durante años, no es algo que hice en un día. Y encontré muy poca información acerca del hardware in internet. Es por esto, que puede haber errores en mis desarrollos y razonamientos. Todavia estoy haciendo pruebas, y pronto voy a agregar este material a mi sitio web.

Links:

http://herale.org/
http://www.abbuc.de/~bernd/4MB_FLASH_ME ... iov5.8.zip
http://ftp.pigwa.net/stuff/emulators_an ... r/cart.txt

Saludos.

Avatar de Usuario
xt5
Mensajes: 391
Registrado: Vie Feb 08, 2013 1:56 pm
Contactar:

Re: Atari Megacart!

Mensaje por xt5 » Vie Oct 12, 2018 12:20 am

Excelente post, super desarrollado.
Siempre he tenido la duda, de con que software haces los esquemáticos?

Y algo que me choca de los cart multi-games de Atari es que usan la ROM como un simple almacenamiento, lo cual es una especie de despropósito, son muy caras y "rápidas" como para almacenar juegos que luego son copiados a la RAM.

Avatar de Usuario
renix
Mensajes: 4675
Registrado: Vie Ene 25, 2013 1:39 am

Re: Atari Megacart!

Mensaje por renix » Vie Oct 12, 2018 12:33 am

A.mi me choca lo mismo y no encuentro una razon que comprenda si se puede mapear directo al banco de la rom como un cartucho normal.... :)

Avatar de Usuario
parche
Mensajes: 79
Registrado: Lun Feb 11, 2013 2:50 pm

Re: Atari Megacart!

Mensaje por parche » Vie Oct 12, 2018 7:05 am

Y como manejai interrupciones, uso del pokey y toda la parafernalia de cosas que están en la ROM?

Si apagas la Rom, mientras cargas, y desactivando las interrupciones puedes usarlo como almacén, pero cuando pongas a correr el juego, tiene que estar todo ahí de vuelta, si no, no te va a funcionar, a menos que re-escribas una versión mini de la Rom.

Avatar de Usuario
parche
Mensajes: 79
Registrado: Lun Feb 11, 2013 2:50 pm

Re: Atari Megacart!

Mensaje por parche » Vie Oct 12, 2018 7:11 am

SpaceInvader escribió:
Jue Oct 11, 2018 11:27 pm
Y también dice: " If you notice any problem, please change the Loader address (to $400 instead of $700) and try it again." No sé como hacer esto...
Te está diciendo que edites el ASM del loader y lo recompiles en la dirección $400 en vez de la $700 y vuelvas a probar.

Este es un problema característico de los loaders en los 80 y 90.

Como el juego ya estaba compilado y no tenías el Assembler, era más fácil mover el loader que el juego.

Avatar de Usuario
SpaceInvader
Mensajes: 217
Registrado: Jue Jul 17, 2014 4:01 pm
Contactar:

Re: Atari Megacart!

Mensaje por SpaceInvader » Vie Oct 12, 2018 6:23 pm

Gracias por sus comentarios.

Los esquemáticos los hago con antiguos programas, como MS Photoeditor y MS Paint, normalmente tomo un esquemático cualquiera, y lo edito, a puro copy-paste. Estoy muy acostumbrado a hacer esto, desde hace años.

Cambiar la dirección $400 a la $700 es algo que escapa a mis conocimientos. Lamentablemente yo no recompilo código, (y ya estoy muy viejo para aprender ), es por eso que siempre busco software "listo para usar".

Responder