Ayuda para convertir el Castlevania Spectral Interlude a DSK

Moderador: Fundadores

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 »

mad3001 escribió:
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é
Excelente mad3001, estaremos expectantes... Ánimo! Algo me dice que funcionará...

Enviado desde mi VIE-L09 mediante Tapatalk

Avatar de Usuario
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3718
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Been thanked: 6 times

Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK

Mensaje por dandare »

Perdonad mi candidez con el tema...
Pero si tenemos un cargador ya en dsk, que mancha un poquito la pantalla y tenemos un trozo de RAM libre, por qué no movemos ese cargador a ese trozo libre de RAM y reconstruimos la pantalla?
Imagen
Imagen
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 »

dandare escribió:Perdonad mi candidez con el tema...
Pero si tenemos un cargador ya en dsk, que mancha un poquito la pantalla y tenemos un trozo de RAM libre, por qué no movemos ese cargador a ese trozo libre de RAM y reconstruimos la pantalla?
No tengo ni idea de cómo se puede hacer eso, pero al final tendríamos el mismo problema de que a la hora de querer cargar la parte final del juego, iría a buscarla en la cinta y no en el disco...

Enviado desde mi VIE-L09 mediante Tapatalk

Avatar de Usuario
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3718
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Been thanked: 6 times

Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK

Mensaje por dandare »

Por qué de cinta?
No decís que tenemos un transfer de ramjet 3?

Ese transfer mancha la pantalla porque "desconoce" si puede poner el código de carga en otro sitio y en la pantalla no rompe nada, sólo ensucia.
Con el trabajo de mad3001, ya tenéis exactamente qué código va en qué páginas y, por tanto, los huecos libres.
Cogiendo el código de la pantalla manchada y reubicándolo a uno de esos huecos, podemos reconstruir la pantalla y lanzar el código en la página nueva desde el cargador basic.
Imagen
Imagen
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 »

dandare escribió:Por qué de cinta?
No decís que tenemos un transfer de ramjet 3?

Ese transfer mancha la pantalla porque "desconoce" si puede poner el código de carga en otro sitio y en la pantalla no rompe nada, sólo ensucia.
Con el trabajo de mad3001, ya tenéis exactamente qué código va en qué páginas y, por tanto, los huecos libres.
Cogiendo el código de la pantalla manchada y reubicándolo a uno de esos huecos, podemos reconstruir la pantalla y lanzar el código en la página nueva desde el cargador basic.
Me explico...
Tanto para hacer el snapshot en Z80 o con el Ramjet, primero cargamos el juego en cinta... Pero no se carga todo, sino que se deja el último bloque de la cinta para cargarlo una vez nos hayamos pasado el 90% del juego aproximadamente...

Por lo tanto, aunque luego carguemos desde disco el Z80 o la versión del Ramjet, cuando lleguemos a la fase final, el código del juego llamará a la rutina de carga desde cinta para cargar ese último bloque de 11560 bytes...

Por eso es necesario sustituir las rutinas de carga de cinta por las de disco... Y un snapshot desde disco nos dejaría el juego incompleto Imagen

Enviado desde mi VIE-L09 mediante Tapatalk

Avatar de Usuario
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3718
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Been thanked: 6 times

Re: Ayuda para convertir el Castlevania Spectral Interlude a DSK

Mensaje por dandare »

Entendido, es un multicarga, aunque sólo sea una fase final.
Me habia despistado la existencia de ese dsk, que entiendo que, entonces, también es incompleto.
Imagen
Imagen
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 »

Bueno, es algo más que eso...

El snapshot que hay está, por así decirlo, "guarreado", y como está parado en medio del proceso de ejecución pues no está claro que las áreas vacías sean las mismas que el TAP o el TR-DOS o que puedan usarse sin más, es más, nada más "arrancar", el juego lo primero que hace (este y muchos otros juegos) es reubicar las diferentes zonas que requiere a lo largo y ancho de la memoria... y si es juego fue parado una vez que todo estaba cargado (que es como está) seguramente haya ejecutado una gran parte (o toda) la rutina de reubicación en RAM, por lo que no está claro que zonas se pueden o no usar... Aun así quedaría hacer un "cargable" desde disco y además añadir el cargador de disco del final del juego...

Tenemos un fuente del juego que por lo que he podido comprobar, al menos la versión TR-DOS, no es igual el codigo fuente que el del fichero (supuestamente compilado con ese fuente, que lo dudo) llamado castle.trd (en ruso) que lo acompaña... no se ruso pero distingo que hay 4 opciones en el menú en vez de 3... y que en la primera opción entro y puedo jugar.... es más, compilando tal y como está el codigo fuente, en cuanto le das a jugar se queda "tostado" por lo que no nos vale para lo que se pretende. A menos que haya un "truco" para que funcione... yo al menos no lo ví....

Por ello para "mi forma de ver" solo queda como fiable usar como "original" el fichero TAP o el fichero de TR-DOS... el TAP lo he podido analizar más, por eso quería partir de ese, además ya tengo el TAP pasado a DSK (los bloques tal cual)... solo queda modificar las cargas de cinta por cargas de disco y meter una llamada incial a DOS_SET_1346 al mínimo imprescindible para poder disponer del máximo de memoria libre... en principio con eso disponemos de las paginas 0 a 6 (excepto la parte del propio loader y de pantalla) y con los primeros 6912bytes de la pagina 7 (el área de scrath de disco estaría en los 10K superiores de la pagina 7)... Luego solo es hacer las llamadas DOS_OPEN, DOS_READ, DOS_CLOSE pertinentes, sabiendo que cada llamada al +3DOS se debe hacer con ROM 2 (en vez de ROM 48K que es lo que está "mapeado" con las llamadas de cinta)... y reubicar el bloque de pagina 7 en su sitio... eso de momento solo he podido preparar un sketch y le queda un "hervor" y un buen rato de pruebas...

Para la carga del final del juego no habría problema ya que se pueden "machacar" varias paginas de RAM que no se usarán más... recordemos que la secuencia final que se carga solo requiere de algunas rutinas de la ram por debajo de $C000... de nuevo es modificar las llamadas a carga de cinta por llamadas a +3DOS...

El TR-DOS lo he estado mirando y también podría valer para modificarlo a DSK pero los ficheros que tiene son algo diferentes (al menos unos cuantos difieren con el TAP tanto en ubicación como en tamaño) por lo que al final me he decidido por seguir por el TAP que lo tengo bastante analizado y más claro...

Resumiendo: Queda un poco de análisis para ver, tras las reubicaciones que hay nada más empezar el juego, que áreas hay disponibles para "meter" las subrutinas de disco necesarias y cambiar las llamadas a carga de cinta por carga de disco...

Aún así si alguien quiere ayudar un poco pues bienvenido... estas cosas entre varios son más fáciles y rapidas de hacer...

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 »

mad3001 escribió:Bueno, es algo más que eso...

El snapshot que hay está, por así decirlo, "guarreado", y como está parado en medio del proceso de ejecución pues no está claro que las áreas vacías sean las mismas que el TAP o el TR-DOS o que puedan usarse sin más, es más, nada más "arrancar", el juego lo primero que hace (este y muchos otros juegos) es reubicar las diferentes zonas que requiere a lo largo y ancho de la memoria... y si es juego fue parado una vez que todo estaba cargado (que es como está) seguramente haya ejecutado una gran parte (o toda) la rutina de reubicación en RAM, por lo que no está claro que zonas se pueden o no usar... Aun así quedaría hacer un "cargable" desde disco y además añadir el cargador de disco del final del juego...

Tenemos un fuente del juego que por lo que he podido comprobar, al menos la versión TR-DOS, no es igual el codigo fuente que el del fichero (supuestamente compilado con ese fuente, que lo dudo) llamado castle.trd (en ruso) que lo acompaña... no se ruso pero distingo que hay 4 opciones en el menú en vez de 3... y que en la primera opción entro y puedo jugar.... es más, compilando tal y como está el codigo fuente, en cuanto le das a jugar se queda "tostado" por lo que no nos vale para lo que se pretende. A menos que haya un "truco" para que funcione... yo al menos no lo ví....

Por ello para "mi forma de ver" solo queda como fiable usar como "original" el fichero TAP o el fichero de TR-DOS... el TAP lo he podido analizar más, por eso quería partir de ese, además ya tengo el TAP pasado a DSK (los bloques tal cual)... solo queda modificar las cargas de cinta por cargas de disco y meter una llamada incial a DOS_SET_1346 al mínimo imprescindible para poder disponer del máximo de memoria libre... en principio con eso disponemos de las paginas 0 a 6 (excepto la parte del propio loader y de pantalla) y con los primeros 6912bytes de la pagina 7 (el área de scrath de disco estaría en los 10K superiores de la pagina 7)... Luego solo es hacer las llamadas DOS_OPEN, DOS_READ, DOS_CLOSE pertinentes, sabiendo que cada llamada al +3DOS se debe hacer con ROM 2 (en vez de ROM 48K que es lo que está "mapeado" con las llamadas de cinta)... y reubicar el bloque de pagina 7 en su sitio... eso de momento solo he podido preparar un sketch y le queda un "hervor" y un buen rato de pruebas...

Para la carga del final del juego no habría problema ya que se pueden "machacar" varias paginas de RAM que no se usarán más... recordemos que la secuencia final que se carga solo requiere de algunas rutinas de la ram por debajo de $C000... de nuevo es modificar las llamadas a carga de cinta por llamadas a +3DOS...

El TR-DOS lo he estado mirando y también podría valer para modificarlo a DSK pero los ficheros que tiene son algo diferentes (al menos unos cuantos difieren con el TAP tanto en ubicación como en tamaño) por lo que al final me he decidido por seguir por el TAP que lo tengo bastante analizado y más claro...

Resumiendo: Queda un poco de análisis para ver, tras las reubicaciones que hay nada más empezar el juego, que áreas hay disponibles para "meter" las subrutinas de disco necesarias y cambiar las llamadas a carga de cinta por carga de disco...

Aún así si alguien quiere ayudar un poco pues bienvenido... estas cosas entre varios son más fáciles y rapidas de hacer...

Salu2
Me gustaría ayudarte, pero no se muy bien como...
Cómo es el código que debe ser eliminado?
Y cómo ha de ser el código que lo sustituya?
Lo digo por hacer un copia y pega...

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ó:
mad3001 escribió:Bueno, es algo más que eso...

El snapshot que hay está, por así decirlo, "guarreado", y como está parado en medio del proceso de ejecución pues no está claro que las áreas vacías sean las mismas que el TAP o el TR-DOS o que puedan usarse sin más, es más, nada más "arrancar", el juego lo primero que hace (este y muchos otros juegos) es reubicar las diferentes zonas que requiere a lo largo y ancho de la memoria... y si es juego fue parado una vez que todo estaba cargado (que es como está) seguramente haya ejecutado una gran parte (o toda) la rutina de reubicación en RAM, por lo que no está claro que zonas se pueden o no usar... Aun así quedaría hacer un "cargable" desde disco y además añadir el cargador de disco del final del juego...

Tenemos un fuente del juego que por lo que he podido comprobar, al menos la versión TR-DOS, no es igual el codigo fuente que el del fichero (supuestamente compilado con ese fuente, que lo dudo) llamado castle.trd (en ruso) que lo acompaña... no se ruso pero distingo que hay 4 opciones en el menú en vez de 3... y que en la primera opción entro y puedo jugar.... es más, compilando tal y como está el codigo fuente, en cuanto le das a jugar se queda "tostado" por lo que no nos vale para lo que se pretende. A menos que haya un "truco" para que funcione... yo al menos no lo ví....

Por ello para "mi forma de ver" solo queda como fiable usar como "original" el fichero TAP o el fichero de TR-DOS... el TAP lo he podido analizar más, por eso quería partir de ese, además ya tengo el TAP pasado a DSK (los bloques tal cual)... solo queda modificar las cargas de cinta por cargas de disco y meter una llamada incial a DOS_SET_1346 al mínimo imprescindible para poder disponer del máximo de memoria libre... en principio con eso disponemos de las paginas 0 a 6 (excepto la parte del propio loader y de pantalla) y con los primeros 6912bytes de la pagina 7 (el área de scrath de disco estaría en los 10K superiores de la pagina 7)... Luego solo es hacer las llamadas DOS_OPEN, DOS_READ, DOS_CLOSE pertinentes, sabiendo que cada llamada al +3DOS se debe hacer con ROM 2 (en vez de ROM 48K que es lo que está "mapeado" con las llamadas de cinta)... y reubicar el bloque de pagina 7 en su sitio... eso de momento solo he podido preparar un sketch y le queda un "hervor" y un buen rato de pruebas...

Para la carga del final del juego no habría problema ya que se pueden "machacar" varias paginas de RAM que no se usarán más... recordemos que la secuencia final que se carga solo requiere de algunas rutinas de la ram por debajo de $C000... de nuevo es modificar las llamadas a carga de cinta por llamadas a +3DOS...

El TR-DOS lo he estado mirando y también podría valer para modificarlo a DSK pero los ficheros que tiene son algo diferentes (al menos unos cuantos difieren con el TAP tanto en ubicación como en tamaño) por lo que al final me he decidido por seguir por el TAP que lo tengo bastante analizado y más claro...

Resumiendo: Queda un poco de análisis para ver, tras las reubicaciones que hay nada más empezar el juego, que áreas hay disponibles para "meter" las subrutinas de disco necesarias y cambiar las llamadas a carga de cinta por carga de disco...

Aún así si alguien quiere ayudar un poco pues bienvenido... estas cosas entre varios son más fáciles y rapidas de hacer...

Salu2
Me gustaría ayudarte, pero no se muy bien como...
Cómo es el código que debe ser eliminado?
Y cómo ha de ser el código que lo sustituya?
Lo digo por hacer un copia y pega...

Enviado desde mi VIE-L09 mediante Tapatalk
De momento poco mas se puede hacer, estoy pegandome con las llamadas al +3dos pero solo puedo dedicarle un rato cada dia y no cunde mucho. En cuanto me funcionen correctamente podré mirar donde y como "injertarlas"

Enviado desde mi Aquaris M5 mediante Tapatalk

Volviendo a los origenes... programa en assembler
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 »

Bueno, he avanzado bastante, tanto es así que al menos ya conseguí que el juego cargase desde disco.... las rutinas de carga +3DOS ya las voy controlando....

Y ¡tonto de mi! me dí cuenta de porqué el juego que compilaba se me bloqueaba ... era PORQUE EL TRD ESTABA PROTEGIDO en el spectaculator.... fue desprotegerlo y ya funciona bien el compilado y generado... es algun tipo de error del TRDOS que que se queda pillado cuando el TRD está protegido.....

Ahora bien necesito ayuda mientras sigo tocando el ASM para hacer que genere tanto TAP como TRD como DSK...
¿Alguien sabe como hacer que el SJASMPLUS genere un disco estandar DSK al igual que se generan TRDOS? me falta esa parte ...

Creo que no se puede... de momento para ese modo generaré igualmente un disco TRD pero con las rutinas de +3DOS, luego pasarlo a DSK será más fácil, pero si alguien tiene otra idea estoy abierto a posibilidades...
Volviendo a los origenes... programa en assembler
Responder

Volver a “Sinclair”