Tarjeta SD como cartucho en Spectrum, ya es posible

Moderador: Fundadores

Avatar de Usuario
Uto
El infierno es su lugar
El infierno es su lugar
Mensajes: 131
Registrado: 28 Mar 2014, 23:48

Tarjeta SD como cartucho en Spectrum, ya es posible

Mensaje por Uto »

Hola a todos!

Recientemente en un grupo de Telegram estuvimos viendo si era posible usar tarjetas SD o microSD como cartuchos, sobre todo teniendo en cuenta la cantidad de gente que tiene un Spectrum montado y tiene además un DivMMC o DivIDE. La idea era básicamente que tuviéramos una SD/microSD que con solo meterla en el DivMMC arrancara el juego, o un menú o una aplicación, o lo que sea, es decir, que actuara exactamente como un cartucho, aunque con alguna ventajilla que luego cuento.

Bien, el primer problema es que, aunque la inmensa mayoría de DivMMCs y DivIDEs llevan ESXDOS como sistema operativo (bueno, los DivMMCs todos), ESXDOS es un SO que la mitad va metido en la flash del DivMMC y la otra mitad en un fichero en la SD. Esto hace que - hasta ahora - para que una SD funcionara, debiera tener dentro los ficheros de ESXDOS de la misma versión. Esto hacía imposible crear un "cartuchoSD", porque habría que hacer un cartucho por versión de ESXDOS. Pues bien, ese muro es el que ha caído. Encontramos la manera de poder evitar ese problema, y además que los juegos auto-arranquen, incluso en versiones antiguas de ESXDOS que no tenían funcionalidad de autor arranque.

Aquí podéis verlo funcionando:



Y aquí hay una explicación más larga:

https://github.com/Utodev/utoboot/blob/main/README.md

Ahí se explica la "técnica" y además hay tres cargadores sencillos que he hecho para juegos que empiecen en 32768, para juegos hechos con AGD y para juegos hechos con DAAD.

La idea final es poder distribuir juegos de la misma manera que se está haciendo en Spectrum Next, por ejemplo:

Imagen

Por otro lado, he estado trasteando, y es perfectamente posible que la misma tarjeta SD contenga el juego para Spectrum, y una version del juego para Amstrad CPC para M4, ya que no se pisan y ambas pueden arrancar sin problemas.

¿Ventajas frente a un cartucho "de verdad"?

- Las tarjetas SD, o microSD con adaptador son muy fáciles de obtener
- A diferencia del interface 2 u otros interface de cartucho, muchísima gente tiene ya un DivMMC o DivIDE
- Es posible usar funciones de ESXDOS para leer y guardar ficheros en la tarjeta SD, y es realmente sencillo. Pueden hacerse por tanto utlidades, grabar partidas, etc. También tener más espacio para "fases" como en otros cartuchos.
- El especio disponible en una tarjeta SD es inmenso, probablemente se puede hacer incluso un cartuchoSD con todos los juegos de libre distribucíón del Spectrum, creando un menú.

Eso es todo.Ahora solo citar a los "culpables" de que esto funcione:

- Mcleod_ideafix: no estuvo envuelto directamente, pero de una cosa que él hizo fue la semilla que llevó al resultado.
- Andrew Owen: su conocimiento de ESXDOS es alto, y nos llevó por el buen camino más de una vez.
- Antonio Villena: empezó a buscar la solución, y en realidad ya tenia una que funcionaba en todos los DivMMC, pero había que pulsar el boton de NMi para arrancar.
Y finalmente yo mismo, claro, que terminó el asunto, documenté, y encontré la manera de que no fuera necesario pulsar el botón de NMi.
http://www.ngpaws.com
Twitter: @uto_dev
Avatar de Usuario
Mikes España - Com. Valenciana
Moderador
Moderador
Mensajes: 3385
Registrado: 08 Nov 2013, 14:15
Ubicación: Benaguasil (València)
Has thanked: 2 times
Been thanked: 139 times

Re: Tarjeta SD como cartucho en Spectrum, ya es posible

Mensaje por Mikes »

Iba a decir que el inconveniente que tiene esto es la ingente cantidad de juegos de Spectrum que existen y que preferiría tener una tarjeta SD con 1000 juegos a 1000 tarjetas con un juego cada una pero luego he leído que se podrían poner varios en una misma tarjeta? Pero entonces cual arranca?
Edito: ya he leído que con un menú jeje
Y después por la foto de homebrew también me ha venido a la cabeza que podría 'publicarse' en este formato cualquier juego nuevo que desarrollen, pero será un formato más minoritario que un casete o un disquete? Sea como sea gran iniciativa, mis felicitaciones ;)

Enviado desde mi MI MAX 3 mediante Tapatalk


"Mikes solo hay uno"
Mi 'Paraeta'
Avatar de Usuario
Uto
El infierno es su lugar
El infierno es su lugar
Mensajes: 131
Registrado: 28 Mar 2014, 23:48

Re: Tarjeta SD como cartucho en Spectrum, ya es posible

Mensaje por Uto »

Mikes escribió: 24 Oct 2020, 13:36 Iba a decir que el inconveniente que tiene esto es la ingente cantidad de juegos de Spectrum que existen y que preferiría tener una tarjeta SD con 1000 juegos a 1000 tarjetas con un juego cada una pero luego he leído que se podrían poner varios en una misma tarjeta? Pero entonces cual arranca?
Edito: ya he leído que con un menú jeje
Y después por la foto de homebrew también me ha venido a la cabeza que podría 'publicarse' en este formato cualquier juego nuevo que desarrollen, pero será un formato más minoritario que un casete o un disquete? Sea como sea gran iniciativa, mis felicitaciones ;)

Enviado desde mi MI MAX 3 mediante Tapatalk
La idea fundamental es el Homebrew, aunque es verdad que pueden hacerse recopilaciones con menús y tal, o megacompilaciones de cientos de juegos, claro. La cuestion es que funciona como un cartucho, enchufar y listao.

En mi opinión sería un formato más *mayoritario* que la cinta o el disquete. A dia de hoy no cabe duda de que hay más gente que tenga un Spectrum con DivMMC/IDE montado que Spectrum +3, por no hablar de la dificulta de usar disquetes. En cuanto a las cintas, es verdad que se compran, pero tras un par de encuestas que he hecho por ahí, veo que más del 50% de las personas que tienen un Spectrum (o clon) montado, usan el DivMMC/IDE para cargar juegos como método principal, mientras que las cintas como método principal no llegan, por lo que veo, al 35%. De nuevo es mi opinión, pero creo que muchas cintas se compran por apoyar, o para adornar en la estantería, pero acabamos cargando el juego desde el .tap y el DivMMC.

Este modelo da la posibilidad de que los autores de homebrew utilicen un formato más económico de genera, mucho más fácil de conseguir, más fácil de grabar, y que queda igual de bien en la estanteria con su funda. Si además permtie que determinados juegos (vease el ejemplo de Sword of Ianna) aprovechen la velocidad de carga y el espacio disponible, para hacer cosas más avanzadas, pues es otro punto a su favor :-)
http://www.ngpaws.com
Twitter: @uto_dev
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5629
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1190 times
Been thanked: 2719 times
Contactar:

Re: Tarjeta SD como cartucho en Spectrum, ya es posible

Mensaje por cacharreo »

Uto escribió: 24 Oct 2020, 15:11pero creo que muchas cintas se compran por apoyar, o para adornar en la estantería, pero acabamos cargando el juego desde el .tap y el DivMMC.
Estoy de acuerdo. Si compro una cinta es porque conozco al autor pero, a la hora de la verdad, los programas los cargo -por orden de prioridad- en el emulador de PC, desde la SD del ZX Baremulator -que es una maravilla- de @zx81 en la Raspberry Pi, desde la divMMC, o desde las Goteks -que me dió por experimentar con ellas y acabé con unas pocas.

Como método para facilitarlo aún más, sugiero un generador de menús para el PC al estilo del cargador de ROMs para DD! de @overCLK que gestionara tanto el contenido de la SD (sincronizando/transfiendo desde el PC los snapshots o borrándolos cuando corresponda), como las opciones para clasificar o ejecutar los programas.
Última edición por cacharreo el 24 Nov 2020, 16:54, editado 3 veces en total.
© cacharreo
Avatar de Usuario
flopping
Fundador
Fundador
Mensajes: 9971
Registrado: 29 Mar 2013, 15:26
Ubicación: Valencia
Been thanked: 122 times
Contactar:

Re: Tarjeta SD como cartucho en Spectrum, ya es posible

Mensaje por flopping »

Si lo he entendido bien, básicamente lo que nos “ahorramos” es pulsar un botón, el resto es más o menos igual que hasta ahora, no?.

Sinceramente, no le veo mucha utilidad o comodidad, pero bueno, es una opción más.
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, por la esquizofrenia paranoide.
(C) 1982-2024, 42 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".

Mi juego, que puedes descargar desde aqui
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5629
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1190 times
Been thanked: 2719 times
Contactar:

Re: Tarjeta SD como cartucho en Spectrum, ya es posible

Mensaje por cacharreo »

flopping escribió: 24 Oct 2020, 15:36Si lo he entendido bien, básicamente lo que nos “ahorramos” es pulsar un botón, el resto es más o menos igual que hasta ahora, no?.
Exactamente eso entendí pero aún así le veo ventajas para cuando vayan tropecientos programas y exista un sistema sólido para los menús, meter la SD y arreando. Para la distribución de programas en formato SD, quizás la ventaja sea para usuarios que no sepan o no quieran saber del ZX Spectrum, porque lo acerca más al formato consola, enchufar y listo.
© cacharreo
Avatar de Usuario
Uto
El infierno es su lugar
El infierno es su lugar
Mensajes: 131
Registrado: 28 Mar 2014, 23:48

Re: Tarjeta SD como cartucho en Spectrum, ya es posible

Mensaje por Uto »

flopping escribió: 24 Oct 2020, 15:36 Si lo he entendido bien, básicamente lo que nos “ahorramos” es pulsar un botón, el resto es más o menos igual que hasta ahora, no?.

Sinceramente, no le veo mucha utilidad o comodidad, pero bueno, es una opción más.
Te ahorras exactamente lo mismo que pinchando un cartucho al Spectrum. En la práctica es un cartucho.
http://www.ngpaws.com
Twitter: @uto_dev
Avatar de Usuario
napsternds
El infierno es su lugar
El infierno es su lugar
Mensajes: 177
Registrado: 22 Ene 2019, 17:38
Has thanked: 17 times
Been thanked: 17 times

Re: Tarjeta SD como cartucho en Spectrum, ya es posible

Mensaje por napsternds »

A mi me parece una gran idea, sobre todo pensando en la facilidad de creación de ediciones físicas para software homebrew, tanto juegos individuales como recopilaciones. Por ejemplo, sería factible editar una tarjeta con todos los juegos del 2020, o todos los juegos de un concurso....
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5629
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1190 times
Been thanked: 2719 times
Contactar:

Re: Tarjeta SD como cartucho en Spectrum, ya es posible

Mensaje por cacharreo »

En la línea de lo que apuntó @flopping, y si no lo entendí mal, diría que la creación de la tarjeta con todos los programas que quieras se podía hacer antes de casi idéntica manera (añadiendo el AUTOEXEC.BIN y el directorio SYS), solo cambia que se autoejecuta pero, de cualquier forma, es un avance, una SD así como producto lo veo mejor acabado.

A propósito, @Uto, si en utoboot.asm los parámetros en lugar de etiquetas/pseudo-directivas del ensamblador fueran variables (punteros), esos 6 bytes (2x3 words) podrían manipularse fácilmente desde un programa (p.e. de PC) externo para generar diferentes versiones de BETADISK.SYS para diferentes programas de ZX Spectrum sin necesidad de recompilar con SJASMPLUS. Además, la dirección a parchear no cambiaría con los cambios en el código y sería previamente conocida, justo detrás del salto en Start, en la posición 0x0003h del fichero.

Los cambios serían poca cosa, donde dice (en "pseudo-código"):

Código: Seleccionar todo

define      LOAD_ADDRESS      32768 ; Address where to load AUTOEXEC.BIN file
define      LOAD_SIZE         32768 ; Size of the AUTOEXEC.BIN file (if size if larger than file, file is loaded anyway)
define      START_ADDRESS     32768 ; Start address to run the game
...
Start
DI
LD SP, LOAD_ADDRESS
...
LD IX, LOAD_ADDRESS
...
LD HL, FileName
LD DE, LOAD_SIZE
...
LD HL, START_ADDRESS
se cambia por:

Código: Seleccionar todo

Start
JP Start2

; --- POINTERS ---
LOAD_ADDRESS	DW 32768
LOAD_SIZE       DW 32768
START_ADDRESS	DW 32768

Start2
DI
LD HL, (LOAD_ADDRESS)
LD SP, HL
...
LD IX, (LOAD_ADDRESS)
...
LD HL, (LOAD_SIZE)
LD DE, FileName
EX DE, HL
...
LD HL, (START_ADDRESS)
o algo así, lo hago de cabeza y no he probado a compilarlo. Espero que se entiendan los cambios, si no me lo dices y publico todo el código modificado.
© cacharreo
Avatar de Usuario
Alki
Aspirante a demonio
Aspirante a demonio
Mensajes: 237
Registrado: 25 Jul 2020, 18:15
Has thanked: 25 times
Been thanked: 24 times

Re: Tarjeta SD como cartucho en Spectrum, ya es posible

Mensaje por Alki »

Buenas, me parece interesante la idea, sin embargo creo que ya tenemos los mejores cartuchos, que son los dandanator, mas baratos, rápidos y visualmente mas atractivos.
Lo que no sé es porqué no se ha realizado aun en spectrum los DES (dandanator entertainment system) como en cpc.
De esta forma el homebrew podría estar en formato cartucho tipo GBA.

Un saludo.
Responder

Volver a “Sinclair”