Little Big Adventure (1994) on the Atari Jaguar, as a 6 MB cartridge.
The original game engine is Adeline's C source, released under the GPL by 2.21 and maintained by the community. It runs on the Jaguar's 68000. Around it sits a Jaguar-specific renderer: the isometric background at 640×480 interlaced, 3D bodies on the GPU (Tom), and the hero as an Object Processor sprite.
This is a work in progress, far from playable. The section below says exactly where it stands.
No game data is included, and none is needed to read the code. To build a ROM, you need your own copy of LBA1 (see Building).
Tested on BigPEmu only. The current code has not been run on real hardware yet. An earlier renderer-only build did run on a real Jaguar (details below).
- Boot → Adeline logo → main menu (a 1:1 port of
GAMEMENU.C) → New game. - The first room, the Citadel prison cell, is loaded by the original engine
(
ChangeCube/LoadScene): 23 actors and 31 zones. - The original life and track scripts run. Twinsen dresses as a prisoner through his own script, the nurse follows her track, and zones trigger.
- Walking with the pad through the original
DoDir/DoAnim. Walls block. - The opening sequence plays up to the first dialogue. Switching to Aggressive summons the nurse on the hover platform: "Stop squirming, prisoner Twinsen!". The text uses the original font, from the original text archive.
- All 120 scenes' data fits in the 6 MB cartridge without bank switching. Not all of it can be reached yet.
- You cannot leave the cell yet. This path (dialogues → door → room change) is what is being worked on now.
- Actors flicker. The background has a single visible framebuffer, and a moving actor is erased and redrawn in front of the viewer. On the emulator this shows as striped actors. The fix is to compose off-screen and copy with one blit; it needs DRAM that is not free yet.
- The full-screen snapshot the engine uses around menus and dialogue
windows (
Screen, 300 KB) does not exist. Those copies are skipped, so a window leaves traces until the next full redraw. - The behaviour menu opens, but the four Twinsen poses in it are not drawn.
- No sound. An OPL2 music synthesiser on the DSP (Jerry) exists and was measured on hardware, but it is not connected to the game yet.
- Text: English only, and only the system texts, the general game texts and the first island (Citadel) are in the cartridge.
- No intro slides, no FLA movies, no holomap, no inventory models, no save or load.
- Speed: the renderer alone measured 7.5 fps on a real Jaguar (August 2026). The full engine has not been measured, and performance work is paused until the game can be played through its first rooms.
- 640×480 interlaced output (checked with a RetroTink 4K: 525 lines at 59.95 Hz).
- The background renderer, GPU body pipeline and OP sprite hero, at 7.5 fps in the first room.
- Cartridge boot from a GameDrive, with scene loading in about 8 s.
| Button | Action |
|---|---|
| D-pad | walk / turn |
| A | action of the current behaviour (talk/search, jump, fight, hide) |
| B | throw the magic ball |
| C | talk / act, in any behaviour |
| Option | inventory |
| Pause | game menu |
| Keypad 1-4 | Normal, Athletic, Aggressive, Discreet |
| Keypad 5-8 | weapons 1-4 |
Keypad * |
behaviour menu |
Keypad # |
recentre the camera |
The layout is provisional (engine_c/port/jag_sys.c).
The build runs on Windows. Everything that depends on your machine is
configured in one file: local.cfg.
- Your own copy of Little Big Adventure. The GOG edition works. The
build reads the
.HQRarchives in itsCommonfolder, andTEXT.HQRinCommonClassic, then packs them into the cartridge image on your machine. - Python 3 (tested with 3.14). The build uses only the standard library.
- Docker, with an image called
marsdev-32xthat holds the m68k-elf toolchain: gcc 15.2 plus newlib.docker/Dockerfile.marsdevexplains how to build it from marsdev. - RMAC on your
PATH, andjaguar.inc, the Jaguar developer header from Atari's SDK. - Optional: BigPEmu, to run the ROM. With the scripting-enabled build,
tools/emu_run.ps1can drive it.
copy local.cfg.example local.cfg
rem edit local.cfg: LBA1_DIR, JAG_INC (and BIGPEMU_DIR)
build_v6.batThe build writes two ROMs:
build\jaglba_v6_emu.j64for BigPEmu;build\jaglba_v6_ferro.j64for real hardware (GameDrive and similar; ferro is Italian for "iron", the project's word for the real console).
They differ only in a few timing and interlace details that the emulator does not reproduce.
Do not distribute these ROMs. They contain the game's data, taken from your copy. This repository only distributes the code.
A clean clone plus local.cfg produces a byte-identical ROM, which was
checked when this README was written.
| Path | What |
|---|---|
engine_c/fork/ |
the LBA1 engine (C), transplanted. JAGUAR_PORT.md documents the design of the seam and lists every change made to the engine, with the reason |
engine_c/port/ |
the platform layer under the engine: video, input, time, archives, memory |
engine_c/*.c |
the Jaguar renderer: background (scene_bg.c), bodies (body_draw.c), sprites and doors, front-end |
src/ |
68000 boot and interrupt code, and the GPU/DSP kernels (RMAC) |
tools/ |
cartridge packer, reference renderers and parsers used as oracles, the life-script disassembler, emulator drivers |
docs/ |
skeleton_design.md: the architecture decisions the code cites by number (3.1-3.7) and the milestones up to S30, with the measurements taken on real hardware |
JagLBA is released under the GNU General Public License v2.0 (see LICENSE). It is a derivative of the LBA1 engine source, which 2.21 released under the same license.
The license covers the code only. Little Big Adventure's data (graphics, text, music, levels) is not part of this project and is not covered by the GPL. It remains the property of its rights holders. That is why the build reads it from your copy.
- Adeline Software International, for the game. 2.21, for releasing its source code.
- The lba1-classic-community contributors, for the maintained engine and the C translations of its assembly modules.
- The engine reached the Jaguar through this project's sibling ports, whose
fixes and 2 MB memory diet it inherits: ds-lba
(Nintendo DS), psx-lba
(PlayStation), from which it was imported, and
hs-lba (Mattel HyperScan). See
engine_c/fork/PROVENANCE.md. - Zerosquare, for the interlaced video recipe for real hardware.
- tursilion/makefastboot (BSD), which
tools/cart_header.pyfollows for the cartridge boot header. - The RMAC authors, marsdev, and BigPEmu, whose scripting made automated testing possible.