Convirtiendo juegos TAP a DSK para +3 y +3e o +2e
Moderador: Fundadores
- tobisham
- Le gustan las llamas
- Mensajes: 73
- Registrado: 25 Ene 2018, 13:32
- Has thanked: 3 times
- Been thanked: 4 times
Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e
Gracias al trabajazo de todos joer! acabo de conseguir en Ninjajar en dsk que lo anhelaba
-
Spirax
- Demonio tercer orden
- Mensajes: 715
- Registrado: 09 Oct 2017, 17:03
- Ubicación: Leganes (Madrid)
- Has thanked: 24 times
- Been thanked: 47 times
Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e
pues aqui esta la version final del Bobby Carrot con posibilidad de guardar los records en discoSpirax escribió: ↑26 Abr 2018, 15:09 primera aportacion a dsk .![]()
pendiente por hacer, tengo que estudiar como llamar a las rutinas de carga y gabacion del disco desde ensamblador
ya que el juego puede garda y cargar los records, pero hace las llamadas directamente a la rutina de la rom de cinta.
asi que me toca estudiar, pero como he visto que este no estaba en dsk, pues os lo comparto a medias que jugar se puede![]()
![Sorprendido :o](./images/smilies/sc_jshocked.gif)
version del juego 1.01 version del cargador 1.01 cambios sobre la version anterior.
estoy aprendiendo a manejar las rutinas de carga de disco desde CM. ya que una vez arrancado el juego hay que hacerlo a bajo nivel desde ensamblador.
todavia no controlo muy bien el cambio de unidad
![Triste :(](./images/smilies/sc_jsad.gif)
![Guiño ;)](./images/smilies/sc_jwink.gif)
pero probado en un emulador funciona en A: y B:
para cargar en A:
desde el cargador o desde el basic load "disk"
para cargar en B:
entrar en basic 128k
load "b:"
load "disk"
no tengo posibilidades de probarlo en +3e ni se como maneja los ficheros no se si funcionara.
he modificado varias cosas del inicio del juego.
por defecto al iniciar el juego reseteaba los hiscores y si intentaba cargarlos antes de arrancar no servia de nada.
asi que le puse un retorno a la subrutina que reinicia los hiscores al iniciar el juego lo que me permite cargarlos automaticamente antes de emperzar a jugar.
despues intercepte las llamadas a las rutinas de grabacion y carga de la rom del 48k para que llamara a las subrutinas que he creado yo para carga y grabacion de disco.
el principal problema que me encontré es que una vez cargado el bloque principal cuando hace la descompresion de todos los datos el juego utiliza la pagina de memoria 7 por lo que se corrompe el buffer de disco y ya no permite volverlo a usar.
solucion: como para poder interceptar las rutinas de carga y grabacion a cinta tenia que descomprimir y parchear.
lo que hice fue descomprimir todo el juego he modificado lo que necesito y lo he grabado en disco descomprimido.
por suerte aunque el juego utiliza y modifica la pagina 7, quedaban otras dos libres que el juego no utiliza, la pagina 1 y la pagina 3.
por lo que he optado por la primera solucion que se me ha ocurrido,
cargo el bloque que necesita el juego para la pagina 7 en la pagina 3, y nada mas terminar la carga de disco hago un backup del buffer de disco de la pagina 7 en la pagina 1 despues muevo el contenido del juego de la pagina 3 a la pagina 7 donde tiene que estar para poder jugar e iniciamos el juego.
despues las rutinas de carga y grabacion en disco lo que hacen al ser llamadas es hacer un backup de la pagina 7 del juego en la pagina 3, restauran el buffer del disco que habiamos guardado en la pagina 1, graban o leen y al acabar vuelven a hacer un backup del buffer de disco a la pagina 1 y restauran los datos del juego desde la pagina 3.
como buffer para copiar los datos de una pagina a otra mientras esta el juego en el menu utilizo los 2k inferiores de la pantalla, por donde se mueve el conejito, por lo que lo hago desaparecer mientras se graban o leen los records y reaparece al apagar el motor de la disquetera
![Sr. Verde :mrgreen:](./images/smilies/icon_mrgreen.gif)
para poder crear este buffer he tenido que subir el menu 1 linea para arriba pero no afecta al funcionamiento del juego. ni queda mal visualmente.
al cargar el juego desde el disco carga automaticmente los ultimos records guardados , solo hay que acordarse de grabarlos antes de apagar
![Giro de ojos :|](./images/smilies/sc_jrolleyes.gif)
nota: si el disco o la gotek esta protegido contra escritura el spectrum puede que se cuelgue al no poder abrir el fichero para grabar.
ah y un ultimo cambio me añadi a los creditos dej juego
![Guiño ;)](./images/smilies/sc_jwink.gif)
sigo aprendiendo de forma autodidacta
![Lengua :P](./images/smilies/sc_jtongue.gif)
si alguno conoce enlances o documentacion a rutinas de carga de bajo nivel de disco se agradecen.
saludos
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
- Ivanzx
- Aspirante a demonio
- Mensajes: 240
- Registrado: 27 May 2013, 13:31
- Contactar:
Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e
Buff, no sabes lo feliz que me has hecho, me alegraste el día, y de verdad muchísimas gracias por tu esfuerzo y por echarle un ojo a estas cosas que no son nada triviales!!
Imagino que ha sido el juego mas difícil de convertir a +3 hasta ahora, no?
Mil gracias!
![Sonrisa :)](./images/smilies/sc_jsmiley.gif)
Imagino que ha sido el juego mas difícil de convertir a +3 hasta ahora, no?
![Giro de ojos :|](./images/smilies/sc_jrolleyes.gif)
Mil gracias!
mad3001 escribió: ↑05 May 2018, 00:19Bueno, aquí teneis otro para la colección Plus 3: Prince of Persia.Ivanzx escribió: ↑04 Abr 2018, 19:28Sí, pero creo que Hynreck estaba intentando sacar una versión de Prince of Persia para que cupiera en un disco de +3mad3001 escribió: ↑03 Abr 2018, 22:06
Del POP hay una version dsk 720kb, solo apta para disquetera de 3.5, claro....
https://mega.nz/#!smYHXbIR!fUYvbrjlrKdg ... OhW1IfboKc
En este link del foro teneis además el Mighty Final Fight...
http://www.va-de-retro.com/foros/viewto ... 8&p=122740![]()
Me ha llevado su tiempo porque he aprovechado para traducir el juego a Ingles (podía haber sido a Español, pero ya sabemos que en Ingles es más "neutro" y llega a más gente)... además he "limado" algunas cosas internas de la carga y demás.
Debido al tamaño (aun comprimiendo lo máximo que he podido) ocupa 2 caras de un disco de 3".
Podeis copiar todos los archivos a un disco de 3.5 con unos 300kb libres y funcionará (los archivos repetidos en la cara 2 es para que no tengais que andar dando la vuelta cuando ya esteis por las fases 8 en adelante).
También podeis usarlo en unidad B: simplemente cargar con: LOAD "B:":LOAD"DISK"
<link a mega v1>
Salu2
P.D. como he partido de la versión que tenia el avance de fase pulsando THP pues ya sabeis... usadlo solo como entrenamiento...
Pequeña correción, V1 actualizado el link de descarga
-
mad3001
- Demonio segundo orden
- Mensajes: 1953
- Registrado: 25 Nov 2015, 00:15
- Ubicación: Mostoles(Madrid)
- Has thanked: 91 times
- Been thanked: 120 times
Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e
Buen trabajo.Spirax escribió: ↑09 May 2018, 15:07pues aqui esta la version final del Bobby Carrot con posibilidad de guardar los records en discoSpirax escribió: ↑26 Abr 2018, 15:09 primera aportacion a dsk .![]()
pendiente por hacer, tengo que estudiar como llamar a las rutinas de carga y gabacion del disco desde ensamblador
ya que el juego puede garda y cargar los records, pero hace las llamadas directamente a la rutina de la rom de cinta.
asi que me toca estudiar, pero como he visto que este no estaba en dsk, pues os lo comparto a medias que jugar se puede![]()
![]()
version del juego 1.01 version del cargador 1.01
Bobby Carrot.zip
cambios sobre la version anterior.
estoy aprendiendo a manejar las rutinas de carga de disco desde CM. ya que una vez arrancado el juego hay que hacerlo a bajo nivel desde ensamblador.
todavia no controlo muy bien el cambio de unidaddicho sea de paso porque mi spectrum solo tiene una gotek
pero probado en un emulador funciona en A: y B:
para cargar en A:
desde el cargador o desde el basic load "disk"
para cargar en B:
entrar en basic 128k
load "b:"
load "disk"
no tengo posibilidades de probarlo en +3e ni se como maneja los ficheros no se si funcionara.
he modificado varias cosas del inicio del juego.
por defecto al iniciar el juego reseteaba los hiscores y si intentaba cargarlos antes de arrancar no servia de nada.
asi que le puse un retorno a la subrutina que reinicia los hiscores al iniciar el juego lo que me permite cargarlos automaticamente antes de emperzar a jugar.
despues intercepte las llamadas a las rutinas de grabacion y carga de la rom del 48k para que llamara a las subrutinas que he creado yo para carga y grabacion de disco.
el principal problema que me encontré es que una vez cargado el bloque principal cuando hace la descompresion de todos los datos el juego utiliza la pagina de memoria 7 por lo que se corrompe el buffer de disco y ya no permite volverlo a usar.
solucion: como para poder interceptar las rutinas de carga y grabacion a cinta tenia que descomprimir y parchear.
lo que hice fue descomprimir todo el juego he modificado lo que necesito y lo he grabado en disco descomprimido.
por suerte aunque el juego utiliza y modifica la pagina 7, quedaban otras dos libres que el juego no utiliza, la pagina 1 y la pagina 3.
por lo que he optado por la primera solucion que se me ha ocurrido,
cargo el bloque que necesita el juego para la pagina 7 en la pagina 3, y nada mas terminar la carga de disco hago un backup del buffer de disco de la pagina 7 en la pagina 1 despues muevo el contenido del juego de la pagina 3 a la pagina 7 donde tiene que estar para poder jugar e iniciamos el juego.
despues las rutinas de carga y grabacion en disco lo que hacen al ser llamadas es hacer un backup de la pagina 7 del juego en la pagina 3, restauran el buffer del disco que habiamos guardado en la pagina 1, graban o leen y al acabar vuelven a hacer un backup del buffer de disco a la pagina 1 y restauran los datos del juego desde la pagina 3.
como buffer para copiar los datos de una pagina a otra mientras esta el juego en el menu utilizo los 2k inferiores de la pantalla, por donde se mueve el conejito, por lo que lo hago desaparecer mientras se graban o leen los records y reaparece al apagar el motor de la disquetera![]()
para poder crear este buffer he tenido que subir el menu 1 linea para arriba pero no afecta al funcionamiento del juego. ni queda mal visualmente.
al cargar el juego desde el disco carga automaticmente los ultimos records guardados , solo hay que acordarse de grabarlos antes de apagar![]()
nota: si el disco o la gotek esta protegido contra escritura el spectrum puede que se cuelgue al no poder abrir el fichero para grabar.
ah y un ultimo cambio me añadi a los creditos dej juego
sigo aprendiendo de forma autodidacta![]()
si alguno conoce enlances o documentacion a rutinas de carga de bajo nivel de disco se agradecen.
saludos
Las rutinas de baja nivel yo las aprendí a manejar con las secciones +3dos de Microhobby, usando el buscador, por ejemplo:
http://mhoogle.speccy.org/mhoogle.php?p ... car=Buscar
No están demasiado bien explicadas pero partiendo de ellas se logran los objetivos. Lo malo es que hay que aprender bastantes cosas: uso del upd765, estructura del disco, manejo por pistas/sectores.....
Volviendo a los origenes... programa en assembler
-
Spirax
- Demonio tercer orden
- Mensajes: 715
- Registrado: 09 Oct 2017, 17:03
- Ubicación: Leganes (Madrid)
- Has thanked: 24 times
- Been thanked: 47 times
Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e
Gracias mad3001 lectura mas que interesante. aun estoy con ello ![Guiño ;)](./images/smilies/sc_jwink.gif)
pero de momento
aqui os dejo otro jueguecilla de nueva hornada.
lo ha colgado en el facebook hace solo unos dias Darryl Sloan.
esta el original .tap
una reconversion mia a .tzx acelerado a 5500 bauds y con carga de pantalla desordenada en tiempo de carga.
la version en .dsk para +3
funciona en a: b: y posiblemente en +3e pero no tengo para probar ...
para cargar en a:
desde el menu cargador o desde basic 128 load "disk"
para cargar en b:
desde el basic 128k
load "b:"
load "disk"
los creditos a su autor
![Guiño ;)](./images/smilies/sc_jwink.gif)
pero de momento
aqui os dejo otro jueguecilla de nueva hornada.
lo ha colgado en el facebook hace solo unos dias Darryl Sloan.
esta el original .tap
una reconversion mia a .tzx acelerado a 5500 bauds y con carga de pantalla desordenada en tiempo de carga.
la version en .dsk para +3
funciona en a: b: y posiblemente en +3e pero no tengo para probar ...
para cargar en a:
desde el menu cargador o desde basic 128 load "disk"
para cargar en b:
desde el basic 128k
load "b:"
load "disk"
los creditos a su autor
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
-
Spirax
- Demonio tercer orden
- Mensajes: 715
- Registrado: 09 Oct 2017, 17:03
- Ubicación: Leganes (Madrid)
- Has thanked: 24 times
- Been thanked: 47 times
Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e
Pues va a aser que no era la definitiva, pero esta se acerca mas a una version final
![Sonrisa :)](./images/smilies/sc_jsmiley.gif)
la version +3e solo la he podido probar en mi +3e con divide 57c (imagino que +3e divmmc , etc funcionaran igual, ¿si alguno lo prueba y lo confirma?)
cambios sobre la version anterior.
El juego es el mismo, pero ha cambiado el cargador y los ficheros en disco para hacerlo compatible con +3e
Añadida compresion zx7b que se le habia quitado para poder parchear las rutinas de carga y grabacion. Ahora cargo, descomprimo, parcheo y continuo.
Cargador CM añadido al Cargador basic
agrupados todas las paginas de memoria y la pantalla en un solo fichero para ahorrar espacio en disco.
con las operaciones de carga/grabacion del menu se pone el borde azul.
para cargar en A:
desde el cargador o desde el basic 128k load "disk"
para cargar en B:
entrar en basic 128k
load "b:"
load "disk"
para copiar al disco C en 3e
entrar en basic 128k
copy "A:DISK" to "C:BOBBYC"
copy "A:BOBBYC.*" to "C:"
para cargar desde C en 3e
entrar en basic 128k
load "C:"
load "BOBBYC"
saludos
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
- Hynreck
- El infierno es su lugar
- Mensajes: 162
- Registrado: 03 Jul 2014, 11:56
- Has thanked: 25 times
- Been thanked: 34 times
Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e
Gracias Spirax, es de agradecer que se pueda usar también en el +3e... He actualizado la primera página con el nuevo link y he añadido el otro juego que subiste, el Knights
-
Spirax
- Demonio tercer orden
- Mensajes: 715
- Registrado: 09 Oct 2017, 17:03
- Ubicación: Leganes (Madrid)
- Has thanked: 24 times
- Been thanked: 47 times
Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e
Hola.
pues despues de partirme los cuernos con este jodido juego he conseguido pasarlo comoletamente a dsk, completo con los tres idiomas ingles, ruso
y checo
. con el menu de operativo, que nos permite redefinir, ver la historia , cambiar nivel de difilcutad y cargar un juego salvado y tambien con grabacion de avance de nivel durante el juego.
finalmente me estudie las rutinas de muy bajo nivel de microhobby y tras pelearme muchisimo con ellas consegui utilizarlas.
la parte mas jodida ha sido simular el usr 0 desde el cargador en cm sin perder el control del programa basic.
porque este juego solo funciona en modo usr 0 con el basic del 48k. y utiliza todos las paginas de memoria y la zona de variables en modo 48k y utiliza el buffer de impresora asi que es inviable en modo 128k con las rutinas de la rom del +DOS osea imposible en +3e, solo en disquete pero funciona en A y en B. (en B solo lo he probado en emulador)
para cragar en A
desde el cargador
o desde el basic 128k
load "disk"
para cargar en B
desde el basic 128k
load "b:"
load "disk"
nota 1 el disco tiene que estar desprotegido de escritura o se cuelga al intentar grabar.
nota 2 para grabar el avance mientras se esta jugando hay que pulsar a la vez las 4 teclas de la palabra "S A V E"
al cargar el avance antes de empezar el borde se pondra azul con la pantalla en negro.
al grabar el avance del juego el borde se pondra rojo, dependiendo de la pantalla que se este visualizando se pondra en negro o no. el problema es que no actualiza la variable bankm y no se cual esta usando, pero utilizo la pantalla1 como bufer y la borro, pero al volver despues de grabar la restaura. pero si esta en uso la shadow no se aprecia el borrado que hago.
espero que lo disfruteis, jajaja ahora si me puedo poner con el juego a tope y grabar los avances, a ver si salvo a todos.
espero no haberme cargado nada y que podamos llegar al final.
saludos
edito:
que con la emocion se me habia olvidado adjuntarlo. jajaja
pues despues de partirme los cuernos con este jodido juego he conseguido pasarlo comoletamente a dsk, completo con los tres idiomas ingles, ruso
![Lengua :P](./images/smilies/sc_jtongue.gif)
![Lengua :P](./images/smilies/sc_jtongue.gif)
finalmente me estudie las rutinas de muy bajo nivel de microhobby y tras pelearme muchisimo con ellas consegui utilizarlas.
la parte mas jodida ha sido simular el usr 0 desde el cargador en cm sin perder el control del programa basic.
porque este juego solo funciona en modo usr 0 con el basic del 48k. y utiliza todos las paginas de memoria y la zona de variables en modo 48k y utiliza el buffer de impresora asi que es inviable en modo 128k con las rutinas de la rom del +DOS osea imposible en +3e, solo en disquete pero funciona en A y en B. (en B solo lo he probado en emulador)
para cragar en A
desde el cargador
o desde el basic 128k
load "disk"
para cargar en B
desde el basic 128k
load "b:"
load "disk"
nota 1 el disco tiene que estar desprotegido de escritura o se cuelga al intentar grabar.
nota 2 para grabar el avance mientras se esta jugando hay que pulsar a la vez las 4 teclas de la palabra "S A V E"
al cargar el avance antes de empezar el borde se pondra azul con la pantalla en negro.
al grabar el avance del juego el borde se pondra rojo, dependiendo de la pantalla que se este visualizando se pondra en negro o no. el problema es que no actualiza la variable bankm y no se cual esta usando, pero utilizo la pantalla1 como bufer y la borro, pero al volver despues de grabar la restaura. pero si esta en uso la shadow no se aprecia el borrado que hago.
espero que lo disfruteis, jajaja ahora si me puedo poner con el juego a tope y grabar los avances, a ver si salvo a todos.
espero no haberme cargado nada y que podamos llegar al final.
![Giro de ojos :|](./images/smilies/sc_jrolleyes.gif)
saludos
edito:
que con la emocion se me habia olvidado adjuntarlo. jajaja
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
- Ivanzx
- Aspirante a demonio
- Mensajes: 240
- Registrado: 27 May 2013, 13:31
- Contactar:
Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e
Menudo trabajazo, Spirax! Muchísimas gracias. Hay que ver lo útiles que son las Microhobby, 30 años después y siguen siendo una fuente inagotable de información ![Guiño ;)](./images/smilies/sc_jwink.gif)
![Guiño ;)](./images/smilies/sc_jwink.gif)
- Onlyfordj
- Demonio segundo orden
- Mensajes: 1037
- Registrado: 30 Dic 2016, 09:28
- Ubicación: Valencia
- Has thanked: 70 times
- Been thanked: 31 times