Ayuda para convertir el Castlevania Spectral Interlude a DSK

Moderador: Fundadores

BCH
Demonio tercer orden
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

Mensaje por BCH »

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
Avatar de Usuario
mad3001 !Atari
Demonio segundo orden
Demonio segundo orden
Mensajes: 1921
Registrado: 25 Nov 2015, 00:15
Ubicación: Mostoles(Madrid)
Has thanked: 81 times
Been thanked: 113 times

Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK

Mensaje por mad3001 »

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
Volviendo a los origenes... programa en assembler
Avatar de Usuario
Hynreck
El infierno es su lugar
El infierno es su lugar
Mensajes: 162
Registrado: 03 Jul 2014, 11:56
Has thanked: 24 times
Been thanked: 34 times

Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK

Mensaje por Hynreck »

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"]
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6349
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 113 times
Been thanked: 316 times
Contactar:

Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK

Mensaje por merlinkv »

Yo he encontrado un dsk en Retrowiki igual os sirve para algo.

-
Castlevania.7z
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.
Avatar de Usuario
Hynreck
El infierno es su lugar
El infierno es su lugar
Mensajes: 162
Registrado: 03 Jul 2014, 11:56
Has thanked: 24 times
Been thanked: 34 times

Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK

Mensaje por Hynreck »

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...
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6349
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 113 times
Been thanked: 316 times
Contactar:

Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK

Mensaje por merlinkv »

¡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.
Avatar de Usuario
Hynreck
El infierno es su lugar
El infierno es su lugar
Mensajes: 162
Registrado: 03 Jul 2014, 11:56
Has thanked: 24 times
Been thanked: 34 times

Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK

Mensaje por Hynreck »

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 ;)
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6349
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 113 times
Been thanked: 316 times
Contactar:

Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK

Mensaje por merlinkv »

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.
Avatar de Usuario
Hynreck
El infierno es su lugar
El infierno es su lugar
Mensajes: 162
Registrado: 03 Jul 2014, 11:56
Has thanked: 24 times
Been thanked: 34 times

Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK

Mensaje por Hynreck »

merlinkv escribió:En el pasado y para conversiones sencillas usaba el ZX-Blockeditor y otras herramientas de los ZX-Modules.
Yo las sigo usando, son muy prácticas y aceleran bastante el trabajo, además de permitirte editar directamente el código...

Voy a poner el enlace para el que las quiera probar...

http://www.zx-modules.de

Enviado desde mi VIE-L09 mediante Tapatalk

Avatar de Usuario
mad3001 !Atari
Demonio segundo orden
Demonio segundo orden
Mensajes: 1921
Registrado: 25 Nov 2015, 00:15
Ubicación: Mostoles(Madrid)
Has thanked: 81 times
Been thanked: 113 times

Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK

Mensaje por mad3001 »

Hynreck escribió: 02 Nov 2017, 11:52
merlinkv escribió:En el pasado y para conversiones sencillas usaba el ZX-Blockeditor y otras herramientas de los ZX-Modules.
Yo las sigo usando, son muy prácticas y aceleran bastante el trabajo, además de permitirte editar directamente el código...

Voy a poner el enlace para el que las quiera probar...

http://www.zx-modules.de

Enviado desde mi VIE-L09 mediante Tapatalk
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é
Volviendo a los origenes... programa en assembler
Responder

Volver a “Sinclair”