Autor Tema: The TAP PRGject  (Leído 32169 veces)

Jeff

  • Commodore Master
  • *****
  • Mensajes: 670
  • RUN/STOP + RESTORE
    • Ver Perfil
The TAP PRGject
« en: Febrero 20, 2025, 14:49:20 »
¡Muy buenas!

Quiero iniciar este hilo con una liada en la que me ha empujado Bieno a raiz de unos comentarios realizados durante unas cervezas.

Nota mental: No hablar con Bieno con una cerveza cerca.  :o

El asunto se trata sobre darle un empujón al projecto de preservación de software que se venía realizando anteriormente.

Página del proyecto con las descargas: https://c64cracks.itch.io/


* logo.iso-low.png (3.23 kB . 246x246 - visto 91 veces)

Hay muchas cintas preservadas en formato TAP, pero por lo que parece, fataría el volcar esas cintas en un formato PRG para que pueda ser incorporado en otro tipo de distrubución, vease cartucho, disco o vinilo.

Los que existen ya en formato PRG, pues vienen con INTRO - CRACKS, por lo que pierden un poco su "valor" de preservación original.

Lo que se pretende en este hilo, es ir convirtiendo esos TAP en PRGs sin INTRO - TRAINERS... etc. intentando conservar la esencia original.

Va a ser un trabajo lento puesto que el tiempo del que dispongo libre, lo gestiona "mi señora", así que iré convirtiendo los juegos poco a poco.

El procedimiento a realizar será el extraer programa directamente de la cinta, mediante FinalTAP, WAV2PRG o similar. Estudiar su cargador para averiguar su dirrección de inicio y realizar una compactación mediante EXOMIZER. Existen diferentes metodos de carga, turbos, trucos anticopia... etc... pero lo que se intentará es realizar un arranque del programa lo mas fidedigna a cuando termina de cargar una cinta.

Por lo que métodos tipo FINALTAP o SUPER SNAPSHOT, quedan fuera de este procedimiento, ya que capturan en un estado intermedio de la ejecución y se suelen crear gliches o ruidos y cosas raras que no nos interesan.

Existe otro método volcando toda la memoria del C64 mediante el VICE. En algunos juegos también lo emplearé, pero igualmente, manteniendo el arranque original del juego.

En algunos casos explicaré el proceso de como se ha preservado y en otros que, o bien tienen un metodo de carga similar o es repetido, pues obviaré realizar mas comentarios para no aburrir.

También si me encuentro algún programa del que no sea capaz de convertirlo, lo indicaré igualmente en el hilo a ver si a alguien se le enciede la bombilla.

Un saludo,
Jeff
« última modificación: Agosto 31, 2025, 14:52:23 por josepzin »
Press ANY key (¿Donde esta la tecla ANY???)

Bieno

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 4234
  • PRINT"ADORA A TU COMMODORE"
    • Ver Perfil
    • bieno64
Re:The TAP PRGject
« Respuesta #1 en: Febrero 20, 2025, 15:38:11 »
Como bien dice Jeff, el proyecto sigue la estela de lo que ya se comenzó a hacer con otros juegos en formato d64 de Electronic Arts y que están publicados en https://c64cracks.itch.io/
El fin sigue siendo el mismo, pasar a formato prg/d64 todo el software que esté traducido en pantalla al castellano.
Estos títulos que el mismo convierte desde TAP a PRG, los podéis encontrar en la anterior página citada y en donde también aprovechamos la extensa biblioteca de carátulas que Celiddoro nos ha proporcionado y que nos sirve para también compartir estas y las instrucciones de estos títulos. Tenemos una amplia lista que iremos publicando a medida que el látigo y las cervezas vayan rulando. A medida que esto vaya sucediendo, el propio Jeff ira comentando curiosidades sobre estos ripeos para que todos aprendamos un poco también como funcionan.
Los primeros que hemos publicado son: La hormiga de fuego (Fire Ant), Keops y Simulador de Vuelo.
https://c64cracks.itch.io/la-hormiga-de-fuego
https://c64cracks.itch.io/keops
https://c64cracks.itch.io/simulador-de-vuelo
« última modificación: Febrero 20, 2025, 15:57:57 por Bieno »

Dany

  • Commodoremaníaco
  • ****
  • Mensajes: 134
  • SYS 0
    • Ver Perfil
Re:The TAP PRGject
« Respuesta #2 en: Febrero 21, 2025, 02:05:32 »
Pues muy buena inciativa, y mucho ánimo!

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 14352
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:The TAP PRGject
« Respuesta #3 en: Febrero 25, 2025, 01:28:53 »
Nota mental: No hablar con Bieno con una cerveza cerca.  :o

Ciertamente un personaje peligroso.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Jeff

  • Commodore Master
  • *****
  • Mensajes: 670
  • RUN/STOP + RESTORE
    • Ver Perfil
Re:The TAP PRGject
« Respuesta #4 en: Febrero 25, 2025, 12:01:51 »
Buenas!

Pues por aquí estamos con alguna novedad.
Esta semana me he dedicado en los juegos de la portada del hilo. Los de SOFTWARE ESPAÑA (o MOGUL), todos del mismo autor, Mike Wacker.
El motivo de esto, pues que de paso que estaba completando esa colección, los parches que había que aplicar en las protecciones del juego eran similares. Si no era por un motivo, era por otro, pero escondía siempre la misma trampa para que el juego no se ejecutara de manera correcta.

Los juegos que han sido pasados a PRG y parcheados ya de paso han sido: Hormiga de Fuego, Aniquilador 1 y 2, Laberinto del creador, Tragacocos y Extraños en las cuevas.

Cada uno de ellos, con su protección para no poder volcar directamente la memoria a disco, pero con una putada diferente. Cuando hacías un RESET y querías volver desde el BASIC con un SYS a su inicio, ya no te dejaba o se corrompía el juego.

FIREANT se reseteaba. Aniquilador 1 perdía los sprites. Aniquilador 2 glcheaban los sprites. Laberinto del creador flipaba y no arrancaba. Tragacocos flipaba los sonidos y los sprites también y el Extraños en las cuevas, ya ni probé como se estropeaba porque directamente me calcé su "protección"

Todos consultaban la dirección $0291, esperando un $80, que es un cambio de mayusculas a minusculas. Ya me dirás, pero si no estaba ese $80 ahí al iniciaR el juego, pues no arrancaba.

Para localizar las protecciones de este autor, buscaba mediante el VICE la cadena AD 91 02 mediante el commando HUNT del Monitor.

Por ejemplo, el parche aplicado al Aniquilador 2:


* Parche Annihilator 2.jpg (136.54 kB . 960x1280 - visto 554 veces)

Me calzo las instrucciones SEC, que había originalmente cambiandome un flag del procesador y le pongo un par de NOPs.

En otros casos, salto la instrucción que no me interesa, la repito... o directamente, cuando comprueba la dirección de memoria $0291, en vez de BNE, pues le pongo un BEQ y me quedo mas agusto que un arbusto.

He apuntado las direcciones de memoria del juego donde he realizado los parches, por ejemplo:

 - Tragacocos ($238A, D0 por F0)
 - Laberinto del creador ($1927, D0 por F0)
 - Hormigas de Fuego (No apunté la dirección, pero despues de BNE $0291 había un BRK, que sustituí por un NOP (EA))
 - Extraños en las cuevas ($1A21, sustituimos BNE por BEQ)
 - Aniquilador 2, lo teneis en la foto de ejemplo...

Y aniquilador 1 tenía dos llamadas al RESET del Kernel en $0FD6 y $19B6. Directamente, me calcé esas llamadas al RESET del $FCE2 mediante tres NOPs.

Y bueno... esa ha sido la historia con este autor, que o cargas de su cinta, o no te furrula el juego.  :o

Faltaría por localizar otros titulos de la colección, pero puede que no existan para C64 todos de ellos. Si alguien los tiene por ahí, agradecería preservarlos.

Saludos!
Jeff
 
Press ANY key (¿Donde esta la tecla ANY???)

Bieno

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 4234
  • PRINT"ADORA A TU COMMODORE"
    • Ver Perfil
    • bieno64
Re:The TAP PRGject
« Respuesta #5 en: Febrero 25, 2025, 15:43:04 »
No me había fijado que Software España eran gallegos.
Muy buena faena, Jeff.

Esto es lo que SE debió importar y traducir en el 83/84
El Ataque de las viboras y Las vegas lady solo salieron en Spectrum y el que no hay manera de localizar es el Callejón de Setas. Si alguien lo tiene, que intente preservarlo de alguna manera.
Es este https://www.lemon64.com/game/mushroom-alley pero traducido

inter981

  • Sinver
  • *
  • Mensajes: 6
  • SYS 0
    • Ver Perfil
Re:The TAP PRGject
« Respuesta #6 en: Febrero 26, 2025, 18:30:43 »
No me había fijado que Software España eran gallegos.
Ostia! ni lo sabía. Estaban en mi ciudad y quedaba muy cerquita de mi casa.

Por otro lado, como consejo, creo que es un error muy grande que el propio prg tengan turboload.
El propio prg puede ser un buen punto de partida para obtener otros formatos (por ejemplo crt) y no tiene demasiado sentido que una vez carga instantáneamente el cartucho, todavía cargue un turboload (por poco tiempo que sea).

A pesar de esta apreciación subjetiva, ¡gran trabajo!

Jeff

  • Commodore Master
  • *****
  • Mensajes: 670
  • RUN/STOP + RESTORE
    • Ver Perfil
Re:The TAP PRGject
« Respuesta #7 en: Febrero 26, 2025, 23:27:17 »
Ostia! ni lo sabía. Estaban en mi ciudad y quedaba muy cerquita de mi casa.

Por otro lado, como consejo, creo que es un error muy grande que el propio prg tengan turboload.
El propio prg puede ser un buen punto de partida para obtener otros formatos (por ejemplo crt) y no tiene demasiado sentido que una vez carga instantáneamente el cartucho, todavía cargue un turboload (por poco tiempo que sea).

A pesar de esta apreciación subjetiva, ¡gran trabajo!

Buenas!
Gracias por el consejo.

De todos modos, no es un turboload. Es un efecto que incluyo en la compresíon del Exomizer para dar precisamente ese efecto, de que está haciendo una carga turbo.

Pero no, simplemente está descomprimiendo en memoria el PRG. La carga es instantanea.

La ventaja de tener el PRG comprimido es poder incluir mas cantidad de programas en un Crt o un disco.

Además empleo el compresor para unir varios bloques y colocar la dirección de arranque del programa.

Aquí encontrarás información de efectos que se pueden incluir al compresor:

https://codebase64.org/doku.php?id=base:exomizer_making_custom_oldschool_decrunch_effects

Un saludo!
Press ANY key (¿Donde esta la tecla ANY???)

Bieno

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 4234
  • PRINT"ADORA A TU COMMODORE"
    • Ver Perfil
    • bieno64
Re:The TAP PRGject
« Respuesta #8 en: Marzo 01, 2025, 23:24:52 »
Gracias a la extensa labor de @Jeff y los escaneos de @inter981 https://x.com/inter981 y @celiddoro  , presentamos la colección de títulos educativos que Indescomp sacó para el c64
    Alf en las grutas de color
    Bailemos
    Compulandia
    El Rancho
    Laberintos lógicos
    Mil caras
    Números Locos
    Salta y Suma
    Teclas Divertidas
    De profesión detective.

Podéis descargaros todo el material en https://c64cracks.itch.io/
« última modificación: Marzo 02, 2025, 10:28:26 por Bieno »

Bieno

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 4234
  • PRINT"ADORA A TU COMMODORE"
    • Ver Perfil
    • bieno64
Re:The TAP PRGject
« Respuesta #9 en: Marzo 05, 2025, 07:17:43 »

Jeff nos trae el One on One de Dro Soft:

https://c64cracks.itch.io/one-on-one

Jeff

  • Commodore Master
  • *****
  • Mensajes: 670
  • RUN/STOP + RESTORE
    • Ver Perfil
Re:The TAP PRGject
« Respuesta #10 en: Marzo 05, 2025, 10:04:53 »
Antes de que se me olvide como pasé los TAPs de IDEALOGIC a PRG... que me estoy enrroscando con los NOVALOAD...

Así en breve: Los juegos para niños de IDEALOGIC vienen con una primera presentación de IDEALOGIC y luego el juego en si.

Para conservar la esencia de la cinta, quise conservar esa presentación, pero que estuviera todo contenido en un único bloque PRG.

Bien, el primer bloque contiene el cargador con la presentación escrita en BASIC, pero además, tiene parte oculta en ensamblador mas allá del BASIC donde se encuentra el código del turbo, los graficos de los CHARTs para las letras de IDEALOGIC y el lanzador del juego, pero en algunos casos la llamada al juego estaba oculta en la parte BASIC, por lo que tenía que conservar esa parte también.

Luego, el segundo bloque de la cinta, tenía el propio juego, pero no podía ser llamado independientemente, porque necesitaba parte del código contenido en el cargador.

El proceso fue el siguiente:

Cargar el programa en BASIC-ASSEMBLER y luego desde el monitor del VICE y con ayuda del DIRMASTER también, buscar donde empezaba el bloque de emsamblador y grabarlo independientemente. No podía hacer ninguna modificación en el BASIC, porque se cambiaban las posiciones en memoria y entonces no funcionaba bien. (errores en las letras o no funcionaba el cargador)

Una vez separado el archivo en dos, procedía a realizar unos pequeños cambios en el BASIC, como eliminar lo de "TIEMPO DE CARGA" y poniendo un titulo adicional y cambiando "CARGAR" por "EMPEZAR" ¿Sencillo, no?
Bueno, luego en el cargador, eliminaba la parte de carga de cinta y la sustituía por la llamada al JUEGO directamente. (El juego ya estaba incorporado en memoria como explicaré mas adelante)

Dependiendo del editor del juego, o Spinnaker o Fisher-Price, el sistema de llamada al juego cambiada. Por supuesto, tenía que buscar la llamada al juego en el cargador, para luego incorporarlo al programa BASIC mediante un SYS.

Fisher-Price tenía oculto el SYS de llamada en las lineas DATA. ¿como es eso? Pues deshabilitaban el buffer del teclado, luego cargaban los DATAS en el buffer del teclado, que no era mas que un "Clear Home, RETURN, SYS (Dirección), RETURN" (Escrito en PETASCII, tuve que consultar tabla) Y nuevamente habilitaban el buffer del teclado. Por lo que era como si se metiera la orden mas RETURN.

Los de SPINNAKER ocultaban la llamada desde el BASIC haciendo una jugarreta con una linea REM y tabulador hacia atrás. Desde el BASIC en el C64 no se ven esas trampas, pero desde el DIRMASTER, se ven todos esos trafullos para ocultar comandos.

También comentar que tenían codigo ensamblador oculto en las primeras lineas de REM del programa. Hay una pequeña técnica que permite mezclar ensamblador en estas lineas, pero cuando se hace un LIST, arroja cosas raras que solo son detectables como programa desde el Monitor de codigo maquina.

Bueno, pues con el programa en BASIC por un lado, la parte ensamblador por otro, colocado en su lugar que le corresponde, solo faltaba añadir el bloque del juego.

Aquí es donde interviene el EXOMIZER, que me permite unir los tres bloques y darle la dirección de arranque. Como el cargador es en BASIC, que contiene la llamada al juego, pues le decía al compresor que arrancara la primera posición en BASIC.

Un ejemplo del comando:

exomizer sfx basic "ranchobas2.prg" "ranchoasm.prg" "rancho.prg" -s "lsr $d011" -f "rol $d011" -x "lda $fb eor #$01 sta $fb beq skip inc $d020 skip:" -o "el rancho fisher price.prg"

Le digo me que junte la parte en BASIC, la parte en ensamblador del loader (que había separado previamente) y el bloque del juego en sí. Al principio del comando le digo mediante "sfx basic" que arranque en la primera posición del BASIC. Si el juego empieza en $4000, pues le diría "sfx 0x4000"

El resto de parametros es inyectar el la descomrpesión el efecto de como si estuvieramos cargando una cinta, pero lo que está haciendo es descomprimir en memoria. Y finalmente nos da un unico archivo como "el rancho fisher price.prg.

No lo he comentado, pero lo hago ahora. Los bloques de la cinta los extraigo con el FinalTAP.

Bueno, es mas o menos a groso modo como se han realizado los PRGs de IDEALOGIC.

Estoy apuntando todas las direcciones de arranque de los juegos y los comandos empleados con el Exomizer para poder luego juntarlo todo en un documento en un futuro cercano. Pero si alguien le pica la curiosidad respecto algún juego que vaya pasando, puede preguntar.

Un saludo.
Jeff
Press ANY key (¿Donde esta la tecla ANY???)

Bieno

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 4234
  • PRINT"ADORA A TU COMMODORE"
    • Ver Perfil
    • bieno64
Re:The TAP PRGject
« Respuesta #11 en: Marzo 05, 2025, 13:02:17 »
Y seguimos con La Pulga, Bugaboo the Flea



https://c64cracks.itch.io/la-pulga

Laddh

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 278
    • Ver Perfil
Re:The TAP PRGject
« Respuesta #12 en: Marzo 05, 2025, 17:37:56 »
Creo recordar de leer hace tiempo que este juego lo programó Pedro Ruiz, el humorista y presentador, en el juego así lo presenta (si es que es él) aunque en el articulo hablan de los Pacos como programadores, misterio?

Bieno

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 4234
  • PRINT"ADORA A TU COMMODORE"
    • Ver Perfil
    • bieno64
Re:The TAP PRGject
« Respuesta #13 en: Marzo 06, 2025, 07:17:39 »


Aquí los créditos del juego y si que sale un Pedro Ruiz pero ni idea si es el presentador ese.

Jeff

  • Commodore Master
  • *****
  • Mensajes: 670
  • RUN/STOP + RESTORE
    • Ver Perfil
Re:The TAP PRGject
« Respuesta #14 en: Marzo 06, 2025, 08:04:53 »
Ostras Carolina !!!  ;D
Press ANY key (¿Donde esta la tecla ANY???)