Convirtiendo juegos TAP a DSK para +3 y +3e o +2e

Moderador: Fundadores

Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 6006
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1230 times
Been thanked: 2948 times
Contactar:

Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e

Mensaje por cacharreo »

No tengo emulador para probarlo aquí y con mi conexión actual me llevaría 20-30 minutos descargar uno (RVM). ¿Hablamos de "Fred" (Indescomp, 1984)?
© cacharreo
Avatar de Usuario
mad3001 !Atari
Demonio segundo orden
Demonio segundo orden
Mensajes: 1942
Registrado: 25 Nov 2015, 00:15
Ubicación: Mostoles(Madrid)
Has thanked: 87 times
Been thanked: 117 times

Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e

Mensaje por mad3001 »

Spirax escribió: 12 Ene 2023, 18:46 Hola.
este es un Juego clasico que ya estaba disponible en DSK, es el FRED
pero me apetecia darle un empujoncito para que Fred ande un poco mas rapido, jejeje
https://mega.nz/file/2JECgDCJ#0qM6UbJ8h ... Z4EOtcuQyk

dentro del rar hay varios ficheros
un dsk que tiene menu de seleccion de idioma y las dos versiones, ingles y español.
dos ficheros .TAP , uno por cada idioma, que sirve tanto para soportes de carga rapida, divide, divmmc, etc, como para tapduino, maxduino, emuladores, etc.
dos ficheros .TZX , uno por cada idioma, que sirven para carga en maquina reales con MAXDUINO, TAPDUINO, etc, ya que tiene una rutina de carga modificada que no usa las llamadas "Oficiales", en casi todos los emuladores funciona en velocidad normal, pero por ejemplo spectulator no lo carga si fuerzas la carga rapida de cinta. pero si lo carga si lo dejas a velocidad normal.

ale espero que le deis una oportunidad :)
para copiarlo al disco duro ,teneis que mapear la unidad donde quereis copiarlos por ejemplo en "D:" y usar
copy "A:FRED.*" to "D:"

he acelerado algunas rutinas de calculo de posiciones de pantalla.
he reescrito casi desde cero la rutina de pintado de pantalla, y ahorro unos 200.000 Tstates por cada pintado respecto a la original, asi que se aceleran unos 3 fotogramas por cada interación del bucle principal .....
he añadido una variable nueva, y la uso para saber si ha cambiado el score, y pintarlo si se ha modificado.
el juego original produce un parpadeo constante en el score ya que en cada interacion del bucle principal tarda unos 8 fotogramas y no se sincroniza con las interrupciones para pintar el score, muchas veces al borrar el score pasa el raster antes de que lo haya vuelto a pintar.
inicialmente al acelerar el pintado de pantalla y solo tardar 5 fotogramas en completar el bucle, pense en sincronizarlo con un halt, pero claro entonces perdia algo de velocidad al forzar a completar el fotograma para pintar el score. despues le meti la variable nueva y quite otra vez el halt que puse yo, total acelerado y sin parpadeo, tan solo se puede producir el parpadeo de algun digito al cambiar la puntuacion al recoger algun objeto, pero no se aprecia ;)

Saludos
El acelerado me recuerda a la versión de 48+128k del LodeRunner que publiqué para Dandanator... en esa rehice por completo la rutina de pintado de la pantalla al entrar en la fase porque la original era supermegalenta.

Genial trabajo con ese Fred, si señor, mi sombrero a tus pies... tengo por ahí un desensamblado con mis comentarios del Chuckie Egg por si quieres hacer alguna cosilla (me puse a ello pero llegó la inspiración para un desarrollo y quedó aparcado)
Volviendo a los origenes... programa en assembler
Avatar de Usuario
Spirax !Sinclair 1
Demonio tercer orden
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

Mensaje por Spirax »

cacharreo escribió: 12 Ene 2023, 19:45 ¿Hablamos de "Fred" (Indescomp, 1984)?
Si. ese mismo.
el Fred de Indescomp :)
Avatar de Usuario
Spirax !Sinclair 1
Demonio tercer orden
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

Mensaje por Spirax »

Spirax escribió: 12 Ene 2023, 18:46 dentro del rar hay varios ficheros
un dsk que tiene menu de seleccion de idioma y las dos versiones, ingles y español.
dos ficheros .TAP , uno por cada idioma, que sirve tanto para soportes de carga rapida, divide, divmmc, etc, como para tapduino, maxduino, emuladores, etc.
dos ficheros .TZX , uno por cada idioma, que sirven para carga en maquina reales con MAXDUINO, TAPDUINO, etc, ya que tiene una rutina de carga modificada que no usa las llamadas "Oficiales", en casi todos los emuladores funciona en velocidad normal, pero por ejemplo spectulator no lo carga si fuerzas la carga rapida de cinta. pero si lo carga si lo dejas a velocidad normal.
Hola.
por aclarar un poco la diferencia entre en el TAP y el TZX, y por que el TZX puede fallar en algunos emuladores.

el TAP deveria funcionar en cualquier sitio, ya sea emulador, reprodcutor de tap via audio en el movil, en arduinos en MAXduino, TZXduinos, etc, en divides en divmmc,etc, en cualquier cosa que emule en ZX Spectrum y soporte la carga de TAPS.

pero el TZX, hay el TZX y la guerra que puede dar.
el TZX es un formato de fichero donde se almacena como se reproducira el sonido para cargarlo en un ZX real.
Hay infinidad de emuladores que soportan el TZX, pero este TZX es un poquito especial, esta diseñado para ser reproducido en un TZXDuino, Maxduino, Reproductor de audio etc que generan el sonido para cargarlo en una maquina real.
El problema com los emuladores viene cuando estos intentan detectar que se esta cargando de cinta para acelerar la carga y que tarde menos.
Como uso parte de la rutina de la rom, concretamente las rutinas LD_EDGE y LD_LOOP, Si el emulador esta configurado para acelerar la carga muchos emuladores se confunden e interceptan la llamada a la rom para ejecutar su codigo de carga y gestionar la copia de datos de la cinta a la memoria de forma inmediata sin pasar por los IN/OUTs emulados.
os voy a poner un ejemplo.
Spectaculator tiene varias opciones para acelerar las cargas de cinta y que sean instantaneas.
esto lo hace interceptando las llamadas a la rutina de carga de la rom y copiando los datos directamente del fichero tap a la memoria interna del zx emulado.
el problema viene que la rutina que yo utilizo usa las llamadas a la rom parcialmente y ahi es cuando Spectulator se confunde si tiene la opcion Flashloading activada.

Spectaculator tiene varias opciones para acelerar las cargas.
Enable Fast Loading, esta opcion lo que hace es ejecutar el emulador a toda velocidad pero emulando todos los puertos de entrada y salida, a todo lo que de el PC que esta emulando el zx, con esta opcion veremos las rayas de carga pero el juego tarda en cargar unos segundos, el emulador procesa la cinta pero a velocidad de vertigo :)

la siguiente opcion es la problematica con algunos TZX como el mio :(
FlashLoading, esta opcion lo que hace es interceptar las llamadas de carga a la rutina de la rom, pero en vez de procesar la cinta lo que hace es copiar directamente los datos del tap a la memoria del ZX de forma instantanea.
el problema con mi tzx es que solo intercepta una de mis llamadas a la rom como carga de datos y el resto de llamadas se queda esperando a que le lleguen los datos por el puerto IN y el spectaculator no se los manda :(

la tercera opccion del Spectaculator para acelerar las cargar es
edge detection, que le sirve al spectaculator sincronizar la carga acelarada en la opcion anterior.
no he notado cambios con mi tzx activando o desactivando esta opción.

-------------
El caso es que en emulador, divide, etc es mejor usar el TAP que os permetirá cargarlo instantaneamente o a velocidad normal.
y para cargar en maquina real podeis usar el TAP o el TZX que tardan los mismo en cargar pero la diferencia es que el TZX muestra la carga de la pantalla ordenada en tiempo de carga :)
para poder usar el TZX en cualquier emulador hay que revisar las opciones de manejo de carga de cintas en dicho emulador. y ya anticipio que si intereceptan las llamadas a la rutina de la rom para acelerar la carga el TZX se puede quedar frito, por lo que para usar el TZX hay que desactivar la carga flash.

pero la aceleracion de carga puede funcionar en los emuladores como por ejemplo con Retrovirtual machin y su opcion warp, spectaculator con la opcion Flash desactivada, el ZXSEC funiona bien con la opcion tape speed up activada, el Espectrum hay que desactivar la opcion "carga rapida" y cargar acelerando la emulación con F11.
-------------

Resumen para evitar problemas o cambios de configuracion para emulación usar el TAP. :)

perdon por la chapa en el hilo de conversiones :)
Avatar de Usuario
javier2112
Demonio tercer orden
Demonio tercer orden
Mensajes: 894
Registrado: 30 Oct 2014, 12:36
Ubicación: Málaga
Has thanked: 13 times
Been thanked: 15 times

Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e

Mensaje por javier2112 »

Spirax escribió: 12 Ene 2023, 18:46 Hola.
este es un Juego clasico que ya estaba disponible en DSK, es el FRED
pero me apetecia darle un empujoncito para que Fred ande un poco mas rapido, jejeje
https://mega.nz/file/2JECgDCJ#0qM6UbJ8h ... Z4EOtcuQyk

dentro del rar hay varios ficheros
un dsk que tiene menu de seleccion de idioma y las dos versiones, ingles y español.
dos ficheros .TAP , uno por cada idioma, que sirve tanto para soportes de carga rapida, divide, divmmc, etc, como para tapduino, maxduino, emuladores, etc.
dos ficheros .TZX , uno por cada idioma, que sirven para carga en maquina reales con MAXDUINO, TAPDUINO, etc, ya que tiene una rutina de carga modificada que no usa las llamadas "Oficiales", en casi todos los emuladores funciona en velocidad normal, pero por ejemplo spectulator no lo carga si fuerzas la carga rapida de cinta. pero si lo carga si lo dejas a velocidad normal.

ale espero que le deis una oportunidad :)
para copiarlo al disco duro ,teneis que mapear la unidad donde quereis copiarlos por ejemplo en "D:" y usar
copy "A:FRED.*" to "D:"

he acelerado algunas rutinas de calculo de posiciones de pantalla.
he reescrito casi desde cero la rutina de pintado de pantalla, y ahorro unos 200.000 Tstates por cada pintado respecto a la original, asi que se aceleran unos 3 fotogramas por cada interación del bucle principal .....
he añadido una variable nueva, y la uso para saber si ha cambiado el score, y pintarlo si se ha modificado.
el juego original produce un parpadeo constante en el score ya que en cada interacion del bucle principal tarda unos 8 fotogramas y no se sincroniza con las interrupciones para pintar el score, muchas veces al borrar el score pasa el raster antes de que lo haya vuelto a pintar.
inicialmente al acelerar el pintado de pantalla y solo tardar 5 fotogramas en completar el bucle, pense en sincronizarlo con un halt, pero claro entonces perdia algo de velocidad al forzar a completar el fotograma para pintar el score. despues le meti la variable nueva y quite otra vez el halt que puse yo, total acelerado y sin parpadeo, tan solo se puede producir el parpadeo de algun digito al cambiar la puntuacion al recoger algun objeto, pero no se aprecia ;)

Saludos
Me parece un puntazo porque a ese juego le falta algo de velocidad, pero ¿estás seguro de haber dejado la versión correcta? Lo digo porque tengo un problema con el teclado que me impide jugarlo en ninguna de las versiones, al menos con el emulador Fuse, da igual el hardware emulado.

Saludos.
Visita mi hilo de ventas:
viewtopic.php?t=4789
Avatar de Usuario
Spirax !Sinclair 1
Demonio tercer orden
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

Mensaje por Spirax »

pues te diria que si es la version correcta :)
he resubido el rar, he cambiado los TZX para poner una rutina de carga que no se pegue con los emuladores y funcione aunque estos esten acelerados.
es el mismo link

edito:
he vuelto a cambiar el rar, ahora es más rapido aún :)
https://mega.nz/file/uNkTSTqK#vt5xtpUwW ... BaM4N70JEU

pero tendreis que rebajarlo.

lo intentaré probar en fuse,que ese no le tengo por defecto
Última edición por Spirax el 16 Ene 2023, 15:50, editado 2 veces en total.
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 6006
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1230 times
Been thanked: 2948 times
Contactar:

Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e

Mensaje por cacharreo »

javier2112 escribió: 13 Ene 2023, 16:26Me parece un puntazo porque a ese juego le falta algo de velocidad, pero ¿estás seguro de haber dejado la versión correcta? Lo digo porque tengo un problema con el teclado que me impide jugarlo en ninguna de las versiones, al menos con el emulador Fuse, da igual el hardware emulado.
Por si acaso... si le das directamente a jugar el prota comienza a saltar y disparar como un loco sin parar. Eso pasa tanto en las versiones anteriores como en las nuevas, en emuladores y en Spectrum físicos (cargándolo desde µTZXduino) pero con solo pulsar la opción de teclado (2,por defecto, QWERT) antes de la opción jugar (4) funciona bien.
Spirax escribió: 13 Ene 2023, 17:51he resubido el rar, he cambiado los TZX para poner una rutina de carga que no se pegue con los emuladores y funcione aunque estos esten acelerados.
es el mismo link
Buen trabajo y en tiempo récord. Muchas gracias.
© cacharreo
Avatar de Usuario
Spirax !Sinclair 1
Demonio tercer orden
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

Mensaje por Spirax »

cacharreo escribió: 13 Ene 2023, 18:00
javier2112 escribió: 13 Ene 2023, 16:26Me parece un puntazo porque a ese juego le falta algo de velocidad, pero ¿estás seguro de haber dejado la versión correcta? Lo digo porque tengo un problema con el teclado que me impide jugarlo en ninguna de las versiones, al menos con el emulador Fuse, da igual el hardware emulado.
Por si acaso... si le das directamente a jugar el prota comienza a saltar y disparar como un loco sin parar. Eso pasa tanto en las versiones anteriores como en las nuevas, en emuladores y en Spectrum físicos (cargándolo desde µTZXduino) pero con solo pulsar la opción de teclado (2,por defecto, QWERT) antes de la opción jugar (4) funciona bien.
Gracias, por la respuesta, no habia entendido el problema.

correcto, en el original se necesita confirmar una opcion antes de empezar a jugar.
y hay que pulsar 1 joystick , 2 teclado o 3 redifinir antes de darle al 4 para jugar. ( voy a ver si puedo seleccionar teclado por defecto antes de arrancar)
el teclado predefinido es QWERT

he añadido una llamada a la opcion de seleccionar teclado y despues arranco el menu.
osea ahora si le das al 4 directamente inicia para jugar con teclado QWERT
no hay ni que decir que si quieres redefinir o jugar con joystick tienes que pulsar la opcion correspondiente antes de empezar a jugar ;)
saludos

edito:
he vuelto a cambiar el rar, ahora es más rapido aún :)
https://mega.nz/file/uNkTSTqK#vt5xtpUwW ... BaM4N70JEU
Última edición por Spirax el 16 Ene 2023, 15:50, editado 1 vez en total.
Avatar de Usuario
javier2112
Demonio tercer orden
Demonio tercer orden
Mensajes: 894
Registrado: 30 Oct 2014, 12:36
Ubicación: Málaga
Has thanked: 13 times
Been thanked: 15 times

Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e

Mensaje por javier2112 »

Spirax escribió: 13 Ene 2023, 18:20
cacharreo escribió: 13 Ene 2023, 18:00
javier2112 escribió: 13 Ene 2023, 16:26Me parece un puntazo porque a ese juego le falta algo de velocidad, pero ¿estás seguro de haber dejado la versión correcta? Lo digo porque tengo un problema con el teclado que me impide jugarlo en ninguna de las versiones, al menos con el emulador Fuse, da igual el hardware emulado.
Por si acaso... si le das directamente a jugar el prota comienza a saltar y disparar como un loco sin parar. Eso pasa tanto en las versiones anteriores como en las nuevas, en emuladores y en Spectrum físicos (cargándolo desde µTZXduino) pero con solo pulsar la opción de teclado (2,por defecto, QWERT) antes de la opción jugar (4) funciona bien.
Gracias, por la respuesta, no habia entendido el problema.

correcto, en el original se necesita confirmar una opcion antes de empezar a jugar.
y hay que pulsar 1 joystick , 2 teclado o 3 redifinir antes de darle al 4 para jugar. ( voy a ver si puedo seleccionar teclado por defecto antes de arrancar)
el teclado predefinido es QWERT

edito:
he vuelto a cambiar el rar, pero es el mismo enlace
https://mega.nz/file/PJ9TjD6Y#eqJlQL9ns ... jVk5XUU4VY
he añadido una llamada a la opcion de seleccionar teclado y despues arranco el menu.
osea ahora si le das al 4 directamente inicia para jugar con teclado QWERT
no hay ni que decir que si quieres redefinir o jugar con joystick tienes que pulsar la opcion correspondiente antes de empezar a jugar ;)
saludos
Gracias, qué rapidez.

Ahora sí lo he podido jugar. Bueno, y a cacharreo también, por haber detallado el problema.


Saludos.
Visita mi hilo de ventas:
viewtopic.php?t=4789
Avatar de Usuario
obocafree
Seguidor infernal
Seguidor infernal
Mensajes: 20
Registrado: 13 Oct 2016, 12:08
Has thanked: 4 times
Been thanked: 4 times

Re: Convirtiendo juegos TAP a DSK para +3 y +3e o +2e

Mensaje por obocafree »

Os dejo un dsk del juego TCQ hecho con el z80onDSK, el juego es gratuito pero se le puede invitar a un café al creador en https://amaweks.itch.io/tcq



Otro juego gratuito y que bien merece ser convertido a dsk es la versión extendida del Treasure Island Dizzy, del que ya se ha hablado por aquí pero que no queda bien ni con z80onDSK (se corrompe la parte superior de la pantalla) ni con tap2dsk. Si alguien se anima, sería un puntazo... :|
All your game are belong to me
Responder

Volver a “Sinclair”