Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HotelMarioRecomp

Hotel Mario (USA) running as a native Philips CD-i build on the sibling cdirecomp static-recompilation engine.

⚠️ Very early development

This is a research preview. The real CD-RTOS BIOS boots, the player shell opens the disc, the Philips Interactive Media bumper plays with decoded XA audio, and Hotel Mario reaches its title card. Gameplay is not yet reachable — no level is playable and a full playthrough is not certified. Expect rough edges and breaking changes.

Hotel Mario title card running through HotelMarioRecomp

Hotel Mario reaching its title card as native recompiled code — booted through the real CD-i system ROM.

How it works

This repo is thin. It contains only game-specific build glue, identity metadata, and acceptance tooling — it builds the cdirecomp runtime with a Hotel-Mario-specific product identity and asset contract. It does not contain a CD-i BIOS, any Hotel Mario disc data, generated game code, or any emulator/tooling forks. All of the interesting work lives in cdirecomp, whose philosophy is low-level, static, native-first: the whole CD-RTOS system ROM is recompiled and executed as native C (no OS-9 HLE), and the game boots on top of it exactly as on hardware.

What you must supply

You provide both, from your own legally dumped media (see DISC.md for the verified identities):

  1. A 512 KiB CD-i player BIOS (cdi490a.rom).
  2. A Hotel Mario (USA) raw Mode-2 .cue + .bin image (select the .cue).

The runtime validates both at startup and never embeds either one in the executable.

Building & running

Place this repo beside cdirecomp:

Projects/
├── cdirecomp/
└── HotelMarioRecomp/

Requirements: CMake, Ninja (or another generator), a C11 compiler, and SDL2.

./tools/build.ps1     # builds build/HotelMarioRecomp.exe against ../cdirecomp
./tools/launch.ps1    # first run asks for the BIOS + disc, then remembers them

The first launch saves the chosen paths in git-ignored bios.cfg / disc.cfg sidecars; later launches reuse them.

Controls: on Windows the mouse controls Hotel Mario directly — it drives the CD-i pointer and both buttons through the recompiled runtime's input model, in-game as well as in the shell. Arrows/WASD also move the pointer; Enter/Space/Z is button 1; Backspace/X is button 2; F11/Alt+Enter toggles fullscreen; Esc exits.

Acceptance gate

With your own BIOS and disc:

./tools/accept-attract.ps1 -Bios path/to/cdi490a.rom -Disc path/to/HotelMario.cue

It enters through the real player-shell input path and checks the pixel-exact title, populated intro planes, clean bumper/intro XA audio with zero drops, expected disc progress, zero native dispatch misses, and real-time field pacing. See ISSUES.md for the intentionally narrow current certification.

License

PolyForm Noncommercial License 1.0.0 — © 2026 Matthew Stan. Covers this repository's build glue and tooling only. It grants no rights to Nintendo, Philips, or any other third-party intellectual property; you must supply your own legally obtained BIOS and disc image.

About

No description or website provided.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages