Sobre el proyecto
Wine-Assembly es un emulador de Windows 98 basado en navegador que ejecuta archivos .exe originales y sin modificar. Consta de un intérprete x86 y una reimplementación de la API Win32, ambos escritos directamente en WebAssembly Text (WAT). No se arranca ninguna imagen de sistema operativo ni se mantienen ports de código fuente. El emulador carga archivos PE directamente, decodifica bloques básicos x86 en una caché de código enhebrado, calcula los flags de la CPU de forma perezosa y despacha las llamadas a la API Win32 a manejadores en WAT. Admite ejecutables NE de Windows 3.1 de 16 bits, DLL reales con reubicaciones, DirectX (DirectDraw, Direct3D, DirectSound, DirectInput) y una LAN virtual para multijugador sobre Winsock y DDEML.
Funciona una amplia variedad de aplicaciones, incluidos juegos como 3D Pinball Space Cadet, SkiFree, Solitaire, Minesweeper, Chip's Challenge, la versión shareware de Diablo y Winamp 2.91/2.95, así como accesorios de Windows 98 como Notepad, WordPad, Calculator, Paint, RegEdit y Task Manager. La matriz de pruebas de humo rastrea 114 binarios, con 81 aprobados, 29 advertencias/limitaciones conocidas, 4 omisiones esperadas de 16 bits y ningún fallo inesperado.
El proyecto se diferencia de v86, 98.js, Webamp y js-dos al omitir el BIOS, el kernel y el arranque desde disco, cargar el archivo PE directamente para un inicio rápido y ejecutar binarios reales en lugar de recreaciones. Está escrito en WAT a mano, con aproximadamente 210.000 líneas repartidas en 61 partes de código fuente, más un host de JavaScript que proporciona canvas, E/S de archivos y red, audio, entrada y temporizadores. La compilación utiliza un compilador WAT personalizado y produce tanto compilaciones WebAssembly con tail-call como de compatibilidad de aproximadamente 1 MB cada una.
Las instrucciones de inicio rápido cubren la compilación con `bash tools/build.sh`, el servicio local y la ejecución desde la línea de comandos con Node.js. La CLI admite trazado, puntos de interrupción, inyección de entrada y renderizado de fotogramas a PNG. El repositorio incluye documentación extensa sobre el diseño de memoria, notas de diseño y notas de ingeniería inversa por aplicación. El proyecto tiene licencia MIT.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.