Mario & Luigi — port a JavaScript
Port al navegador de Mario & Luigi, el juego de plataformas que
Mike Wiering programó en 1994 en Turbo Pascal para PC con VGA.
Funciona en el ordenador y en el móvil (vertical u horizontal), con teclado,
mando o controles táctiles, se puede instalar como app y se juega sin
conexión.
Web oficial del juego original: https://wieringsoftware.nl/mario/index.html
Nuevo modo 2 PLAYERS VERSUS: Mario y Luigi juegan a la vez en la misma
pantalla (más abajo).
Índice
- El juego original
- Qué ofrece este port
- Cómo jugar
- Controles
- Panel de ajustes
- Menú del juego y LEVEL SELECT
- Editor de niveles
- Trucos del original
- Partidas guardadas y datos locales
- Cómo está hecho
- Fidelidad y diferencias con el original
- Desarrollo
- Estructura del repositorio
- Créditos y licencia
El juego original
Mario & Luigi es un clon de Super Mario Bros. con seis niveles que
Mike Wiering escribió en 1994 para practicar la programación de la VGA. Su
objetivo era un juego de PC con scroll parallax en varias capas que se
moviera con suavidad en su 486 a 25 MHz. El ejecutable ocupaba menos de
64 KB.
Algunos detalles técnicos del original, todos reproducidos en este port:
- Modo VGA 320×200 a 256 colores en modo planar ("modo X"), con
doble página y una pantalla virtual 40 píxeles más ancha que la
visible, de modo que al avanzar un píxel se dibuja un bloque entero nuevo.
- La memoria de vídeo sobrante se usa como pila para guardar el fondo
detrás de cada sprite, copiando con los latches de la VGA.
- Parallax de dos formas: las colinas se mueven redibujando solo los
píxeles que cambian, y los ladrillos y columnas del fondo se animan
rotando la paleta.
- Los niveles están escritos a mano en el código (
WORLDS.PAS): cada
carácter es un bloque.
- Los sprites se hicieron con el editor GRED del propio autor.
- La música y los efectos suenan por el altavoz del PC.
El autor publicó después el código fuente completo (para Turbo Pascal
6/7, y una versión para TP 5.5) en la web oficial:
Este repositorio incluye ese código fuente original (ver
Estructura del repositorio).
Qué ofrece este port
- Tres modos de juego: 1 PLAYER, 2 PLAYERS (por turnos, como el
original) y 2 PLAYERS VERSUS, con Mario y Luigi jugando a la vez en la
misma pantalla: vidas compartidas, reaparición, cámara que sigue a los
dos y controles propios para cada jugador (teclado, mando o táctil).
- Menú reorganizado: modo de juego → partida guardada → qué jugar
(ORIGINAL, SMB 1 o LEVEL SELECT). Las 3 partidas guardadas sirven para
los dos paquetes y los tres modos.
- Dos paquetes de niveles: ORIGINAL (el juego de 1994) y SMB 1, con
15 niveles de Super Mario Bros. (NES) adaptados al motor original.
- El juego completo: menú, los 6 niveles con sus áreas secundarias,
la segunda vuelta "turbo", 1 o 2 jugadores, partidas guardadas y la demo
automática de la pantalla de título.
- Fiel al original: la VGA se emula a nivel de memoria y el código
Pascal se tradujo casi línea a línea. La demo grabada en 1994 se
reproduce exactamente igual, frame a frame.
- Controles remapeables (dos teclas por acción, también para Player 2),
mando (uno por jugador en VERSUS) y controles táctiles: se
colocan arrastrándolos y cada botón tiene su tamaño; con un segundo juego
de botones, en verde, para Player 2.
- Mario o Luigi a elegir para cada jugador.
- LEVEL SELECT con todos los niveles: los originales, los ocultos
(áreas, segunda vuelta, mapa del título), los de SMB 1 y los que crees
con el editor, para cualquiera de los tres modos.
- Editor de niveles con todos los bloques del motor: edita los niveles
originales, los de SMB o crea los tuyos, pruébalos al instante y juégalos
desde el menú.
- Panel de ajustes con pestañas: Juego, Teclado y Táctil.
- Extras opcionales: filtro CRT, sonido mejorado y vibración en móviles.
- App instalable (PWA) con iconos hechos con los sprites del juego;
funciona sin conexión.
- Scroll suave sincronizado con el monitor y escalado sin parpadeo.
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗