Ayuda para convertir el Castlevania Spectral Interlude a DSK
Moderador: Fundadores
-
- Demonio tercer orden
- Mensajes: 973
- Registrado: 06 Sep 2014, 12:10
- Ubicación: Barcelona
- Been thanked: 4 times
Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK
De este paquete yo usaba la utilidad FULL48 (o alguna de sus variantes dependiendo del juego). La verdad es que hace ya un par de años de esto y no me acuerdo exactamente como es el procedimiento...
Lo primero es ver si el juego carga niveles por separado o los carga todos de una vez en la ram.
Si los carga por separados, lo mejor es parchar el cargador de niveles para que funcione desde disco y luego que esto esta funcionando usar la utilidad FULL48 para el bloque principal del juego.
Lo mas dificil creo que es encontrar la direccion de ejecucion del juego, pero si estais en contacto con los programadores no es mas que preguntar.
Aqui dejo algunos ejemplos de juegos que he convertido:
https://www.dropbox.com/s/rce83n6y89rlg ... K.zip?dl=0
Esta el assembler de los cargadores de disco, modificaciones, etc y ademas el DSK definitivo de cada juego.
He usado ZXSpin para hacer estas conversiones
Lo primero es ver si el juego carga niveles por separado o los carga todos de una vez en la ram.
Si los carga por separados, lo mejor es parchar el cargador de niveles para que funcione desde disco y luego que esto esta funcionando usar la utilidad FULL48 para el bloque principal del juego.
Lo mas dificil creo que es encontrar la direccion de ejecucion del juego, pero si estais en contacto con los programadores no es mas que preguntar.
Aqui dejo algunos ejemplos de juegos que he convertido:
https://www.dropbox.com/s/rce83n6y89rlg ... K.zip?dl=0
Esta el assembler de los cargadores de disco, modificaciones, etc y ademas el DSK definitivo de cada juego.
He usado ZXSpin para hacer estas conversiones
- mad3001
- Demonio segundo orden
- Mensajes: 1954
- Registrado: 25 Nov 2015, 00:15
- Ubicación: Mostoles(Madrid)
- Has thanked: 92 times
- Been thanked: 120 times
Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK
Por lo que he visto analizando el codigo del juego (el de carga de cinta) en la parte de carga, todo excepto el bloque final de 11560 se carga en las diferentes paginas de RAM:
Pagina RAM Longitud Comienzo Final
-----2---- ___22507 __0x6000 0xB7EA
-----2---- ____1296 __0xBA00 0xBF0F
-----0---- ____8114 __0xC000 0xDFB1
-----0---- ____7054 __0xE000 0xFB8D
-----0---- _____893 __0xFC00 0xFF7C
-----1---- ___13505 __0xC000 0xF4C0
-----1---- ____2358 __0xF5F0 0xFF25
-----3---- ____5071 __0xC000 0xD3CE
-----3---- ____6601 __0xD400 0xEDC8
-----3---- _____459 __0xEE00 0xEFCA
-----3---- ____2304 __0xF000 0xF8FF
-----3---- ____1534 __0xF900 0xFEFD
-----4---- ____2674 __0xC000 0xCA71
-----4---- ____8738 __0xCD00 0xEF21
-----4---- ____3801 __0xF000 0xFED8
-----6---- ___13060 __0xC000 0xF303
-----6---- ____2781 __0xF500 0xFFDC
-----7---- ____5342 __0xEB22 0xFFFF
-----7---- _____377 __0xDB00 0xDC78
Lo malo es que las rutinas de carga de disco utilizan la pagina 7 (si no recuerdo mal), para estos bloques quizás no habría problema (incluso los propios estos 2 ultimos de pagina 7) si se tiene comprimido.... lo que habría que saber es en que momento se carga el bloque final para ver como gestionar su carga (teniendo en cuenta que las rutinas de disco utilizan esa pagina).
Estas cargas están a partir de 0x4000, los CALL 0x4191 llaman a la carga de cinta con los datos de Comienzo que indica HL y en DE la dirección donde está la longitud (están entre 0x416B y 0x4190)
Las llamadas CALL 0x41A5 son cambios de pagina RAM para los subsiguientes bloques de carga
Finalmente a partir del 0x40D0 primero mira si hay puerto Kempston y luego ya rellena varias zonas de ram y tal... y espera a que pulsemos tecla para empezar el juego...
En 0x960F está la rutina que carga el bloque final, Comienzo 0x6000 y llega hasta 0x8D27.
Actualizado: Este bloque tiene soporte desde las rutinas que ya hay en memoria pero no requiere de nada más, es la secuencia final, una vez se ha mostrado dicha secuencia simplemente indica que para jugar de nuevo se "reinicie" el ordenador y se cargue de nuevo...
De momento eso es todo lo que vi... tengo que mirar como lo hace para el tr-dos y pensar si puede usarse para hacer lo propio para usar las rutinas de rom del +3 de disco
Actualizado: Las rutinas de tr-dos.
0x4202 rutina para ir cargando los bloques, primero mete el nombre llamando a 0x3D13 con C=0x13, luego hace la carga en sí llamando a =0x3D13 con C=0x0E... previamente a cargado 0x5CF9 con 0 (0=Read, 0xFF=Verify) y marca A=0xFF para indicar que la longitud la coja de la longitud del fichero en disco (en el catálogo)...
Bueno, quizás modificando el ASM se pueda crear "otra rama" para el caso de disco de +3... ahora mismo hay una rama para cinta y otra para disco tipo tr-dos...
Curiosamente compilando con RUN.BAT genera el fichero para disco castle.trd pero no es igual que el castle.trd que viene.... y encima cuando vas a jugar se queda "tostao" (da igual el idioma con el que se compile)....
Salu2
Pagina RAM Longitud Comienzo Final
-----2---- ___22507 __0x6000 0xB7EA
-----2---- ____1296 __0xBA00 0xBF0F
-----0---- ____8114 __0xC000 0xDFB1
-----0---- ____7054 __0xE000 0xFB8D
-----0---- _____893 __0xFC00 0xFF7C
-----1---- ___13505 __0xC000 0xF4C0
-----1---- ____2358 __0xF5F0 0xFF25
-----3---- ____5071 __0xC000 0xD3CE
-----3---- ____6601 __0xD400 0xEDC8
-----3---- _____459 __0xEE00 0xEFCA
-----3---- ____2304 __0xF000 0xF8FF
-----3---- ____1534 __0xF900 0xFEFD
-----4---- ____2674 __0xC000 0xCA71
-----4---- ____8738 __0xCD00 0xEF21
-----4---- ____3801 __0xF000 0xFED8
-----6---- ___13060 __0xC000 0xF303
-----6---- ____2781 __0xF500 0xFFDC
-----7---- ____5342 __0xEB22 0xFFFF
-----7---- _____377 __0xDB00 0xDC78
Lo malo es que las rutinas de carga de disco utilizan la pagina 7 (si no recuerdo mal), para estos bloques quizás no habría problema (incluso los propios estos 2 ultimos de pagina 7) si se tiene comprimido.... lo que habría que saber es en que momento se carga el bloque final para ver como gestionar su carga (teniendo en cuenta que las rutinas de disco utilizan esa pagina).
Estas cargas están a partir de 0x4000, los CALL 0x4191 llaman a la carga de cinta con los datos de Comienzo que indica HL y en DE la dirección donde está la longitud (están entre 0x416B y 0x4190)
Las llamadas CALL 0x41A5 son cambios de pagina RAM para los subsiguientes bloques de carga
Finalmente a partir del 0x40D0 primero mira si hay puerto Kempston y luego ya rellena varias zonas de ram y tal... y espera a que pulsemos tecla para empezar el juego...
En 0x960F está la rutina que carga el bloque final, Comienzo 0x6000 y llega hasta 0x8D27.
Actualizado: Este bloque tiene soporte desde las rutinas que ya hay en memoria pero no requiere de nada más, es la secuencia final, una vez se ha mostrado dicha secuencia simplemente indica que para jugar de nuevo se "reinicie" el ordenador y se cargue de nuevo...
De momento eso es todo lo que vi... tengo que mirar como lo hace para el tr-dos y pensar si puede usarse para hacer lo propio para usar las rutinas de rom del +3 de disco
Actualizado: Las rutinas de tr-dos.
0x4202 rutina para ir cargando los bloques, primero mete el nombre llamando a 0x3D13 con C=0x13, luego hace la carga en sí llamando a =0x3D13 con C=0x0E... previamente a cargado 0x5CF9 con 0 (0=Read, 0xFF=Verify) y marca A=0xFF para indicar que la longitud la coja de la longitud del fichero en disco (en el catálogo)...
Bueno, quizás modificando el ASM se pueda crear "otra rama" para el caso de disco de +3... ahora mismo hay una rama para cinta y otra para disco tipo tr-dos...
Curiosamente compilando con RUN.BAT genera el fichero para disco castle.trd pero no es igual que el castle.trd que viene.... y encima cuando vas a jugar se queda "tostao" (da igual el idioma con el que se compile)....
Salu2
Volviendo a los origenes... programa en assembler
- Hynreck
- El infierno es su lugar
- Mensajes: 162
- Registrado: 03 Jul 2014, 11:56
- Has thanked: 25 times
- Been thanked: 34 times
Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK
Por eso mismo pienso que haría falta una rutina de carga de disco alternativa al de la ROM y posiblemente el programa DOSKLOAD que comenté sea útil para ello...
El equivalente para 128K del FULL48 que menciona BCH es el programa X128, que es el que utilicé yo pero me dio el error "Oversize"...
http://www.mediafire.com/file/r1e0nqqe5 ... SKLOAD.rar
[img src="http://spectrum3.esy.es/DOSKLOAD.jpg"]
El equivalente para 128K del FULL48 que menciona BCH es el programa X128, que es el que utilicé yo pero me dio el error "Oversize"...
http://www.mediafire.com/file/r1e0nqqe5 ... SKLOAD.rar
[img src="http://spectrum3.esy.es/DOSKLOAD.jpg"]
- merlinkv
- Hermano de Lucifer
- Mensajes: 6435
- Registrado: 06 Abr 2015, 23:08
- Ubicación: Madrid / Europa del Este
- Has thanked: 138 times
- Been thanked: 343 times
- Contactar:
Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
No sé como será la tercera Guerra Mundial. Pero sí sé como será la cuarta: Con palos y piedras.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
- Hynreck
- El infierno es su lugar
- Mensajes: 162
- Registrado: 03 Jul 2014, 11:56
- Has thanked: 25 times
- Been thanked: 34 times
Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK
Este DSK es el mismo que puso Onlyfordj, es un snapshot capturado con un Transfer, que como puedes comprobar, ensucia la pantalla de carga... De momento la version "Snapshot" más "bonita" del juego que tenemos es la que utiliza el Z80 Loader +3 de djr, que aunque ensucia la pantalla de carga, al menos es un trozo minimo y el metodo de carga es más vistoso...
Sin embargo, lo que estamos buscando es una carga limpia, lo más parecida a la original... O al menos que cargue con su pantalla de presentacion sin ensuciar nada la pantalla... Y que además nos permita cargar la fase final del juego desde el disco...
Sin embargo, lo que estamos buscando es una carga limpia, lo más parecida a la original... O al menos que cargue con su pantalla de presentacion sin ensuciar nada la pantalla... Y que además nos permita cargar la fase final del juego desde el disco...
- merlinkv
- Hermano de Lucifer
- Mensajes: 6435
- Registrado: 06 Abr 2015, 23:08
- Ubicación: Madrid / Europa del Este
- Has thanked: 138 times
- Been thanked: 343 times
- Contactar:
Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK
¡Ah! Pues lo siento, pensaba que igual os serviría para algo. Sorry.
Última edición por merlinkv el 02 Nov 2017, 07:01, editado 1 vez en total.
No sé como será la tercera Guerra Mundial. Pero sí sé como será la cuarta: Con palos y piedras.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
- Hynreck
- El infierno es su lugar
- Mensajes: 162
- Registrado: 03 Jul 2014, 11:56
- Has thanked: 25 times
- Been thanked: 34 times
Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK
Tranquilo, se agradece el gesto... Es tarea dificil, hace falta tener conocimientos en Codigo Maquina y en las rutinas del +3DOS... Pero gracias de todos modos merlinkv
- merlinkv
- Hermano de Lucifer
- Mensajes: 6435
- Registrado: 06 Abr 2015, 23:08
- Ubicación: Madrid / Europa del Este
- Has thanked: 138 times
- Been thanked: 343 times
- Contactar:
Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK
En el pasado y para conversiones sencillas usaba el ZX-Blockeditor y otras herramientas de los ZX-Modules.
No sé como será la tercera Guerra Mundial. Pero sí sé como será la cuarta: Con palos y piedras.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
- Hynreck
- El infierno es su lugar
- Mensajes: 162
- Registrado: 03 Jul 2014, 11:56
- Has thanked: 25 times
- Been thanked: 34 times
Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK
Yo las sigo usando, son muy prácticas y aceleran bastante el trabajo, además de permitirte editar directamente el código...merlinkv escribió:En el pasado y para conversiones sencillas usaba el ZX-Blockeditor y otras herramientas de los ZX-Modules.
Voy a poner el enlace para el que las quiera probar...
http://www.zx-modules.de
Enviado desde mi VIE-L09 mediante Tapatalk
- mad3001
- Demonio segundo orden
- Mensajes: 1954
- Registrado: 25 Nov 2015, 00:15
- Ubicación: Mostoles(Madrid)
- Has thanked: 92 times
- Been thanked: 120 times
Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK
Los bloques ya los tengo en un DSK (con el tap2dsk), y modificada la primera carga del primer bloque para disco, pero ahora queda la parte de assembler para las rutinas de carga de los diferentes bloques... no se si llegaré a buen puerto por que tengo oxidado el manejo de rutinas de carga del +3... pero ando poniendome al día (la ultima vez que toqué esas rutinas es cuando salió el Batman de 128K en cinta y lo pasé a disco... ha llovido un poco...)... si doy con la tecla ya os lo diréHynreck escribió: ↑02 Nov 2017, 11:52Yo las sigo usando, son muy prácticas y aceleran bastante el trabajo, además de permitirte editar directamente el código...merlinkv escribió:En el pasado y para conversiones sencillas usaba el ZX-Blockeditor y otras herramientas de los ZX-Modules.
Voy a poner el enlace para el que las quiera probar...
http://www.zx-modules.de
Enviado desde mi VIE-L09 mediante Tapatalk
Volviendo a los origenes... programa en assembler