The Final Fantasy Legend

From Data Crystal
Jump to navigation Jump to search

Title Screen

The Final Fantasy Legend

Also known as: Makai Toushi Sa・Ga (JP)
Developer: Square
Publishers: Square (JP), Squaresoft (US)
Platform: Game Boy
Released in JP: December 15, 1989
Released in US: September 30, 1990


ROMIcon.png ROM map
RAMIcon.png RAM map
Cactisprite.png TCRF
The Final Fantasy Legend
Internal Name SAGA
Region Code Not Japan
Type DMG
SGB Support No
Cartridge Type ROM + MBC2 + Battery
License Code OLD $C3 (SQUARESOFT)
ROM Size 128 KiB
ROM Checksum $BE66
SRAM Size 0 KiB
Header Checksum $FF


Sub-pages

Read about development information and materials for this game.
ROM map
Read about prototype versions of this game that have been released or dumped.
RAM map

Technical Overview

The Final Fantasy Legend uses an MBC2 memory bank controller with 8 switchable 16 KiB ROM banks (128 KiB total). The game features a deterministic RNG system where seeds at $C300-$C37F are consumed in a fixed order, causing identical outcomes on fresh saves when performing the same sequence of actions. Text encoding uses tile indices with DTE (Double Tile Encoding) compression for common character sequences.

Notable Technical Features

  • RNG System: 128-byte RNG seed table at WRAM $C300-$C37F, with each address used for specific game events (mutant growth, encounters, item effects). See [TASVideos GameResources: Final Fantasy Legend](https://tasvideos.org/GameResources/GB/FinalFantasyLegend) for complete semantics.
  • Text Encoding: Tile-based text system with DTE compression. Text routines at Bank 6 CPU $6008 (copy $DE00→$C600) and $63DE (copy $C600→VRAM $9900).
  • Battle System: Post-battle mutation effects handled via dispatch loop at ROM $193BF (Bank 6). Character/monster data table at $1AAE8 (200 entries, 8 bytes each).
  • Save Format: Battery-backed External RAM (A000-BFFF). Single save slot with 64 bytes per party member × 4 slots = 256 bytes, plus inventory and progress data.

Known Technical Issues

  • Multiple documented combat bugs (SAW logic reversal, multi-hit Agility bug, drain counter bug) - see Fledermaus fmtweaks.txt for fixes
  • Deterministic RNG behavior on fresh saves (same actions produce same results)
  • Text display timing issues in some scenarios (window/tilemap synchronization)

Version Information

  • USA Version: ROM checksum $BE66, 128 KiB ROM
  • DX Version: Expanded to 256 KiB ROM (16 banks), adds colorization support
  • Japanese Version: Makai Toushi Sa・Ga - may have different ROM layout

Data Tables

Key ROM data locations (see ROM map for complete listing):

  • Character/Monster Table: $1AAE8 (200 entries, 8 bytes each)
  • Ability Data: $1B700 (255 entries)
  • HP Values: $1B254 (2 bytes per monster, 16-bit LE)
  • Character Names: $14000
  • Ability Names: $14640
  • Mutation Data: $1BF00-$1BFFF (frequency, values, abilities)

Save File Format

  • Location: External RAM A000-BFFF (8 KiB)
  • Structure:
 ** A000-A03F: Party Slot 1 (64 bytes)
 ** A040-A07F: Party Slot 2 (64 bytes)
 ** A080-A0BF: Party Slot 3 (64 bytes)
 ** A0C0-A0FF: Party Slot 4 (64 bytes)
 ** A100-A1FF: Inventory (256 bytes)
 ** A200-AFFF: Progress data (event flags, world state)
  • Runtime Gold: WRAM $CC8E-$CC8F (packed BCD)

External links

  • Disassembly Projects:
    • saga1dx (GitHub) — RGBDS disassembly and colorization patch; layout.link, rom.asm, wram0/wram1 (primary source for map labels).
    • ffl1-color (GitHub) — WLA-DX colorization disassembly; available for comparison.
  • ROM Editor:
    • Fledermaus (RHDN) — Includes formffl.txt with 239 documented labels and offsets
  • Technical Dumps:
    • Tower Reversed — Meat transformation theory, text dumps, flag documentation
  • RNG Documentation:
  • Miscellaneous: