Extracción binarios- NHP

Software y Juegos para retro-computadores, bueeeno... casi puros juegos :-)
Responder
Avatar de Usuario
Suppawer
Mensajes: 96
Registrado: Vie Abr 26, 2013 10:02 pm

Extracción binarios- NHP

Mensaje por Suppawer » Dom Sep 06, 2015 5:18 pm

Saludos 8-) . Motivado por el éxito extrayendo los .BAS de los cassettes del "Curso de Basic" by Prismasoft con el emulador Altirra, quise darle una mirada a mi colección de cassettes Prisma.
Encontré hace un tiempo, el mítico "Fight Night". Como sabrán este juego es "pesadísimo": Buena gráfica (para la época), 5 boxeadores y el escenario (ring). Los genios de la época, lograron brindarnos este juego en cassette de la única forma posible: Dividir el juego en 5 cassettes (independientes entre sí) y el "escenario" aparte (el que debe ser cargado cada vez que se juegue, ganes o pierdas):
Spoiler: MOSTRAR
Imagen
Esta versión en cassette (64kB) es una rareza (en atarionline.pl existe algo parecido, pero no con el "escenario" aparte ni con los 5 boxeadores), así que traté de extraer su binario a modo de conservación.
Intenté algo parecido a como lo hice con el "Curso de Basic" en Altirra:
-En modo debug, definí un breakpoint en $2000 (bp $2000)
Luego cargué el .CAS
- .writemem full.mem 0 L$10000
- .writemem full-main.mem r:0 L$10000
Un generoso usuario extranjero, interesado por esta versión del juego, hizo un programa en MADS para cargar la memoria en las direcciones correctas (fn.asm.pp) y perfecto!!, el juego funciona!!!.
En análisis posteriores, con un editor hexadecimal me di cuenta que al tratarse de un dump de la memoria, el binario resultante contenía mucha "basura" (como la parte del cargador NHP):
Spoiler: MOSTRAR
Imagen
Ciertamente, aunque funciona, NO es un método limpio para la extracción de binarios.

La encriptación (XOR) dentro de los cargadores complica mucho la cosa :furia: ...

....
Adjunto los archivos de todo lo expuesto (abrir en ventana nueva):

Cas Fight Night

full.mem, full-main.mem, fn.asm.pp, binario preliminar, etc

Atte. Suppawer!

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: Extracción binarios- NHP

Mensaje por vitoco » Dom Sep 06, 2015 7:01 pm

¿Se puede saber quién es el generoso usuario extranjero? Sorry por la curiosidad, pero ultimamente me he estado topando con esos archivos con extensión pp, y el Makefile me es conocido. :roll:

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: Extracción binarios- NHP

Mensaje por vitoco » Dom Sep 06, 2015 7:04 pm

A propósito, como sabes que me gustan estos desafíos, y si tengo el tiempo, puedo experimentar un rato. También me interesa la preservación de estas joyitas.

Como ya le di una vez a sacar cosas desde CAS generados con NHP, nada pierdo con probar acá. ¡Gano entretención por un rato!

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: Extracción binarios- NHP

Mensaje por vitoco » Lun Sep 07, 2015 10:38 am

Revisé el formato del CAS y vi que la estructura era el de NHP que ya había visto antes, pero con el XEX encriptado usando una constante con XOR y no el contador de posición dentro del bloque. Al extraerlo, el archivo quedó corrupto a partir del segundo bloque, es decir, la constante iba cambiando bloque a bloque... esa constante no estaba asociada al número de bloque, tampoco iba incrementando o disminuyendo respecto de la anterior, por lo que tuve que dentrarle a picar.

Desensamblando el cargador NHP del CAS, observé que hacía doble operacion XOR para desencriptar cada byte: la del contador de posición y la de un contador aparte en página cero. Como ambos contadores incrementaban simultáneamente, un XOR entre ellos entregaba la constante observada... pero el contador de posición no daba la vuelta en 256 como el otro, por lo que en cada bloque se producía una diferencia: la nueva constante.

Para identificar el valor inicial, cargué el CAS en Altirra en modo debug... no tardé en darme cuenta que se trataba del mismo valor que había supuesto originalmente como contante para el primer bloque.

Incorporé ese nuevo contador en mi extractor de XEX para otro NHP de Prisma, le puse el valor inicial y voilá: XEX en disco. Un análisis de la esructura de ese binario me dijo que estaba en lo correcto, sólo que como siempre me sobraban algunos bytes al final (relleno del último bloque), los que pude remover fácilmente con un editor de binarios en el PC (podría haber usado un utilitario mío en el Atari, pero la vuelta era más larga). Sé que debería revisar a fondo el código de NHP para saber dónde cortar los datos del último bloque, pero pareciera que eso siempre está metido en el código del cargador y no en la estructura del XEX, por lo que se me hace más fácil recortar a mano por simple observación de lo extraído.

Como yapa, también extraje la data del ring del segundo CAS. Para ello usé un copiador que hice al vuelo en TurboBASIC XL. Podría haber usado DogCopy o cualquier multicopiador (menos DOS que no soporta C:), pero quería probar en la pasada cómo funcionan las instrucciones BGET y BPUT de esta versión de BASIC (que reemplazaría mi rutina USR CIO).

Los archivos extraídos son FightNightCAS.xex y FightNightRing.dat.

Me queda la duda si tienes los otros 4 CAS con los restantes boxeadores, para recuperarlos también. ¿Estos los hizo Prisma?

Respecto de NHP y los distintos tipos de encriptación, sería interesante saber directamente del Parche si fué él quien hizo todas ellas o si la gente de Prisma le metió mano por su cuenta.

Avatar de Usuario
parche
Mensajes: 79
Registrado: Lun Feb 11, 2013 2:50 pm

Re: Extracción binarios- NHP

Mensaje por parche » Lun Sep 07, 2015 12:13 pm

Si

Culpable........

Lamentablemente no me acuerdo mucho ya que según el caso cambiabamos la encriptación.
Ojo que pueden estar comprimidos con el programa del Leo Varas.

En todo caso van bien. El eXclusive Or lo usaba para todo.

Avatar de Usuario
Suppawer
Mensajes: 96
Registrado: Vie Abr 26, 2013 10:02 pm

Re: Extracción binarios- NHP

Mensaje por Suppawer » Lun Sep 07, 2015 3:51 pm

Genial Vitoco!!. Un XEX limpio, como dios manda :D .
vitoco escribió:Me queda la duda si tienes los otros 4 CAS con los restantes boxeadores, para recuperarlos también
El "folleto" publicitario dentro del cassette me hizo comprarlos todos :mmmsi: :
Spoiler: MOSTRAR
Imagen
Aquí van los 5:
Fight Night 1-5

Vitoco, a todo esto de XOR y encriptación, por lo que hablamos antes con lo del binario del Fantastic Soccer, no generabas también una especie de encriptación con tu programa BINPAK?
Última edición por Suppawer el Lun Sep 07, 2015 7:16 pm, editado 1 vez en total.

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: Extracción binarios- NHP

Mensaje por vitoco » Lun Sep 07, 2015 6:01 pm

¡Listo! La colección completa está en FightNight-CAS-Collection.zip. Con la pega anterior, sólo fue necesario encontrar el valor inicial del contador adicional para cada caso. Por favor, que alguien lo pruebe en cinta real. Primero se graba cualquiera de los XEX con algún copiador estándar o turbo que no use la página 6 durante la carga, y a continuación se graba el DAT con cualquier copiador que no ponga un loader, por ejemplo, el DogCopy, poniendo "C:" como destino (sin comillas).
Suppawer escribió:Vitoco, a todo esto de XOR y encriptación, por lo que hablamos antes con lo del binario del Fantastic Soccer, no generabas también una especie de encriptación con tu programa BINPAK?
El objetivo del BINPAK no es encriptar, sino comprimir los binarios, y al mismo tiempo evitar bloqueos con cargadores al moverlo temporalmente y evitar utilizar la memoria baja.

Avatar de Usuario
SpaceInvader
Mensajes: 217
Registrado: Jue Jul 17, 2014 4:01 pm
Contactar:

Re: Extracción binarios- NHP

Mensaje por SpaceInvader » Mar Sep 08, 2015 1:45 am

¿Cómo cargo el .DAT en Altirra?

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: Extracción binarios- NHP

Mensaje por vitoco » Mar Sep 08, 2015 2:43 pm

SpaceInvader escribió:¿Cómo cargo el .DAT en Altirra?
Tienes que ponerlo nuevamente en un .CAS !!! :lolgreen:

Mejor toma el CAS original de "The Stage" y lo montas en Altirra cuando el juego te pida presionar START (o antes), lo que sucede después de ingresar el nombre del jugador.

Avatar de Usuario
SpaceInvader
Mensajes: 217
Registrado: Jue Jul 17, 2014 4:01 pm
Contactar:

Re: Extracción binarios- NHP

Mensaje por SpaceInvader » Mar Sep 08, 2015 4:16 pm

vitoco escribió: Tienes que ponerlo nuevamente en un .CAS !!! :lolgreen:
Ok, ya lo habia probado. Voy a hacer los archivos de audio y probar (6 pistas de CD), sólo por motivos históricos y de archivo :D .

Marcelo-Z
Mensajes: 152
Registrado: Vie Ago 15, 2014 4:36 pm

Re: Extracción binarios- NHP

Mensaje por Marcelo-Z » Jue Sep 10, 2015 10:37 pm

hola, de haber sabido que eran escasos los habria pasado a cas hace rato....

en su momento, compre primero el IV, juntaba mis mesadas para comprar el siguiente que fue el II, luego el III, despues el V y al final el I, recuerdo algunos de los nombres de los boxeadores

I Dip Stick
II Kid Castro
III hu him
IV Bristish Buldog (fue dificil ganarle)
V Bronx Bomber (este si que fue dificil)

pedazo de juego cuandos joysticks rotos.....

años despues probe la version completa en Atr

Avatar de Usuario
Suppawer
Mensajes: 96
Registrado: Vie Abr 26, 2013 10:02 pm

Re: Extracción binarios- NHP

Mensaje por Suppawer » Jue Sep 10, 2015 11:12 pm

Se buscan más rarezas ;) como el cassette Prisma del Karateka y otros, como la Línea Educacional Prisma, etc.

Marcelo-Z
Mensajes: 152
Registrado: Vie Ago 15, 2014 4:36 pm

Re: Extracción binarios- NHP

Mensaje por Marcelo-Z » Sab Sep 12, 2015 10:06 pm

hola, yo tengo unos pocos titulos educacionales prisma, saque los cas y envie a ascrnet hace tiempo ya. estan en su web.


tengo los cassettes, de ingles que venian con el atari alla por el año 89.

creo que hice un cas de uno de los cassettes y ascrnet lo desprotegio, es un programa en basic, si lo ejecutas corre, pero espera un sonido desde la casettera para comenzar por lo cual no corre, se queda esperando esa señal en el emulador.


Saludos

Avatar de Usuario
SpaceInvader
Mensajes: 217
Registrado: Jue Jul 17, 2014 4:01 pm
Contactar:

Re: Extracción binarios- NHP

Mensaje por SpaceInvader » Dom Sep 13, 2015 5:45 pm

El Fight Night ya ha quedado registrado en mi juegoteca 8-)

Me salen unos wavs de 10 minutos de carga pffff , por cada boxeador.
Logré reducir el tiempo de carga a 2 minutos por cada boxedor, usando Turbo 2000. El ring hay que dejarlo como carga normal. Probablemente usando Injektor se logre una reducción similar.

Imagen
Foto en mi auténtico TV CRT

La imagen de la tele es distinta a Altirra, no aparecen las barras negras de los lados, en todo caso, mejor.

Saludos.

AsCrNet
Mensajes: 130
Registrado: Lun Mar 11, 2013 10:47 am

Re: Extracción binarios- NHP

Mensaje por AsCrNet » Mar Sep 15, 2015 9:13 am

Marcelo-Z escribió:yo tengo unos pocos titulos educacionales prisma, saque los cas y envie a ascrnet hace tiempo ya. estan en su web.
Así es están aquí disponibles para todos.
Marcelo-Z escribió:creo que hice un cas de uno de los cassettes y ascrnet lo desprotegio, es un programa en basic, si lo ejecutas corre, pero espera un sonido desde la casettera para comenzar por lo cual no corre, se queda esperando esa señal en el emulador.
Si me acuerdo de eso, eran una de las tantas conversaciones nocturnas por teamspeak. no seria malo retomarlas jajajajajaajaj

Saludos

Responder