Fecha actual Jue Ago 22, 2019 5:29 pm

Convirtiendo el Protector de Pantalla de 16 Bits "Hey Macaroni" a HTML5

Todo tipo de tareas multidisciplinarias de programación para llevar a cabo resultados y explorar e intentar lograr implementar aplicaciones a todos los niveles de dificultad, basándonos en absolutamente todo lo que hemos aprendido hasta el momento.


Usuarios leyendo este tema: Ninguno

Convirtiendo el Protector de Pantalla de 16 Bits "Hey Macaroni" a HTML5

Notapor ~ » Vie Dic 12, 2014 9:19 pm

Existe un protector de pantalla clásico, desde la época de las PCs 486 llamado "Hey Macaroni", que aparentemente ya no corre de forma confiable en las versiones más recientes de Windows, como Windows 7, debido a que es una aplicación NE (Formato New Executable) de 16 bits.



Este es el instalador original:

ZIP macaroni.zip

Y este es un archivo ZIP con todos los archivos una vez que se instala. Obviamente el archivo de nuestro interés el el llamado "MACARONI.SCR":

ZIP MACARONI_files.zip


Lo primero que necesito hacer es extraer todos los recursos del programa. Para esto he estado inspeccionando usando HIEW/HIEW32, y extrayendo las partes del ejecutable en bruto usando FileParter:

ZIP FileParter.zip
ZIP HIEW.zip






Veo que afortunadamente solo interesan datos WAV (que comienzan con la cadena "RIFF") y datos BMP (que comienzan con la cadena "BM").

Para los mapas de bits solo necesito extraer todos los fragmentos que comiencen con la cabecera del BMP, y después ver si son mapas de bits válidos visualizando con el explorador. Al final tengo la intención de empacar todas las imágenes en un GIF con múltiples imágenes, y también archivar los archivos BMP (y también convertidos en GIFs individuales).

Las imágenes son BMP de 256 colores.

Ahora sabiendo esto, solo necesito averiguar los offsets de todos los recursos de sonido y de imagen.
Imagen
IP for hosts file (email udocproject@yahoo.com to get updates if website becomes offline):
Código: Seleccionar todo
190.150.9.244 archefire.org



See what I'm doing in real time:
Main Desktop 1
Main Desktop 2
Avatar de Usuario
~
Site Admin
 
Mensajes: 2958
Registrado: Sab Nov 10, 2012 1:04 pm

Convirtiendo el Protector de Pantalla de 16 Bits "Hey Macaroni" a HTML5 (Offsets de Todos los Mapas de Bits)

Notapor ~ » Vie Dic 12, 2014 9:42 pm

Usando HIEW, justo después de haber hecho una copia a modificar de MACARONI.SRC y cambiando los dos primeros bytes del archivo ("MZ") a bytes a 0, vamos a los siguientes offsets.

Un dato común es que las líneas de los mapas de bits están invertidas. Es decir, la primera línea en el archivo de mapas de bits corresponde a la última línea en la imagen, a la más inferior, así que hay que tener eso en cuenta si de manejar manualmente estos mapas de bits se trata.

Para determinar el verdadero tamaño del mapa de bits, creamos un mapa de bits con MS Paint de 256 colores, y vemos cuántos bytes tiene. Luego inspeccionamos el fragmento original extraído y eliminamos bytes a 0 al final del archivo, y solo eliminamos dichos bytes al final del archivo mientras no haya problema de visualización con el visor de imágenes y el explorador de Windows. Antes de cada intento eliminamos el fragmento original porque FileParter no vuelve a crear el archivo, sino que deja cualquier contenido extra al final del archivo, y por lo tanto debemos borrarlo antes de continuar.

Offset 0x5FE82
2716 bytes (0xA9C)
38x41 pixeles
0005FE82.bmp

Offset 0x60920
2356 bytes (0x934)
38x32 pixeles
00060920.bmp

Offset 0x61256
1916 bytes (0x77C)
38x21 pixeles
00061256.bmp

Offset 0x619D4
2076 bytes (0x81C)
38x25 pixeles
000619D4.bmp
Imagen
IP for hosts file (email udocproject@yahoo.com to get updates if website becomes offline):
Código: Seleccionar todo
190.150.9.244 archefire.org



See what I'm doing in real time:
Main Desktop 1
Main Desktop 2
Avatar de Usuario
~
Site Admin
 
Mensajes: 2958
Registrado: Sab Nov 10, 2012 1:04 pm

Convirtiendo el Protector de Pantalla de 16 Bits "Hey Macaroni" a HTML5 (Offsets de Todos los Mapas de Bits, Parte 2)

Notapor ~ » Jue Ene 08, 2015 10:42 am

Offset 0x621F2
2436 bytes (0x984)
38x34 pixeles
000621F2.bmp
Imagen
IP for hosts file (email udocproject@yahoo.com to get updates if website becomes offline):
Código: Seleccionar todo
190.150.9.244 archefire.org



See what I'm doing in real time:
Main Desktop 1
Main Desktop 2
Avatar de Usuario
~
Site Admin
 
Mensajes: 2958
Registrado: Sab Nov 10, 2012 1:04 pm


Volver a Retos de Programación

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados


cron