Skip to content
PORTSNATIVE.
HomeCatalog
Web GamesEmulatorsToolsNews
PORTSNATIVE.

A catalog for discovering ports and related projects. We link to official sources and do not host original game files.

ExploreCatalogMy list
InformationAbout usSuggest a portSupportDonationsLegal notice
© 2026 PortsNative
Back to catalog
Aerobiz Supersonic (Disassembly)
PORTSNATIVE

Aerobiz Supersonic (Disassembly)

NATIVE PORTPLATFORMERWINDOWSLINUXMACOSALPHA

Aerobiz Supersonic (Disassembly)

Aerobiz Supersonic

OriginSega Mega Drive / Genesis

TechnologyNative C/C++ port (engine reimplementation)

Available forWindows, Linux, macOS

View official project

About the project

Aerobiz Supersonic, conocido como Air Management II: Kōkū Ō wo Mezase en Japón, es un videojuego de simulador de negocios lanzado por Koei en agosto de 1994, disponible para Super Nintendo y Mega Drive. Es la secuela del anterior juego de Koei, Aerobiz.

Official project information

Author's original READMEOpen on GitHub ↗

Aerobiz Supersonic -- Sega Genesis Disassembly

A full disassembly and reassembly project for Aerobiz Supersonic (USA) on the Sega Genesis / Mega Drive.

PlatformSega Genesis / Mega Drive
CPUMotorola 68000 @ 7.67 MHz
SoundZilog Z80 @ 3.58 MHz, YM2612 FM, SN76489 PSG
PublisherKOEI (T-76)
ReleaseDecember 1994
ROM size1 MB
RegionUSA
Product codeGM T-76136 -00

Goal

Produce a fully documented, byte-identical reassembly of the original ROM from 68000 assembly source. All code translated to mnemonics, all functions named and documented, all data tables identified.

Building

Requires vasmm68k_mot (Motorola-syntax 68000 assembler). The toolchain is included in tools/.

make all          # Assemble ROM -> build/aerobiz.bin
make verify       # Compare MD5 against original ROM
make clean        # Remove build artifacts

Place the original ROM as Aerobiz Supersonic (USA).gen in the project root for verification.

Project Structure

aerobiz-disasm/
  disasm/
    aerobiz.asm                  # Main entry point (includes everything)
    modules/
      shared/definitions.asm     # Hardware register equates
      68k/<category>/*.asm       # 801 translated 68K modules (13 categories)
    sections/
      header.asm                 # Vector table + ROM header ($000000-$0001FF)
      section_XXXXXX.asm         # ROM sections (data + include directives)
  analysis/
    ROM_MAP.md                   # ROM layout (code/data/padding)
    RAM_MAP.md                   # Work RAM variables and data structures
    DATA_STRUCTURES.md           # Field-level layouts for game structs
    DATA_TABLES.md               # ROM data tables (53 tables with field layouts)
    FUNCTION_REFERENCE.md        # All identified functions
    CALL_GRAPH.md                # Cross-reference index (who calls what)
    SYSTEM_EXECUTION_FLOW.md     # Boot, main loop, V-INT, game states
    GAME_PHASE_FLOW.md           # Gameplay flow: turns, quarters, win/loss
  docs/                          # Hardware reference documentation (symlinked)
  tools/                         # Assembler and disassembler (symlinked)
  agents/                        # AI agent team definitions
  BACKLOG.md                     # Task queue
  KNOWN_ISSUES.md                # Pitfalls and gotchas

ROM Layout

RangeSizeDescription
$000000-$0000FF256 BException vector table (64 longwords)
$000100-$0001FF256 BROM header (console name, title, checksum, SRAM info)
$000200-$0FFFFF~1 MBGame code and data

Key Addresses

AddressPurpose
$000200Entry point (reset vector, TMSS boot)
$0002FAPost-boot initialization (work RAM setup, HW init calls)
$000F84-$000FE1Exception handlers (14 IDs + common handler + halt)
$001480EXT interrupt handler (Level 2, unused -- nop + rte)
$001484H-Blank interrupt handler (Level 4, raster scroll effect)
$0014E6V-Blank interrupt handler (Level 6, main per-frame handler)
$00D5B6Main game entry
$00D608Main game loop (iterates forever)
$002696-$003BE7Z80 sound driver (5,458 bytes, custom)
$03E1AC-$041FFFGame text strings (ASCII, null-terminated, printf-style)
$200001-$203FFFSRAM (battery-backed save data, ~8 KB)

Progress

PhaseDescriptionStatus
1. Initial dumpROM as raw dc.w data, vector table labeledDone
2. Code discoveryTrace execution, map ROM regions, identify functionsDone
3. Function translationdc.w → 68K mnemonics, name functions, symbolize callsDone
4. Data analysisIdentify tables, strings, graphics dataDone
5. Full understandingComplete documentation, byte-identical rebuildDone

By the Numbers

MetricCount
Code translated~252,000 bytes (all translatable blocks)
Functions translated860
Functions named595 (0 unnamed)
Functions described595 (one-line descriptions for every function)
Functions extracted to modules801 (13 categories)
Call sites symbolized3,696 (jsr, bsr.w, jsr (d16,PC))
ROM data tables documented53 (field-level layouts)
RAM variables mapped50+ variables, 30+ named regions
Data structures documented6 (player records, route slots, char stats, + 3 auxiliary)

Phase 3 — Code Translation

All translatable code blocks converted from raw dc.w to 68000 mnemonics via automated capstone-to-vasm translation (B-046). All 595 functions named via docs-based analysis and code-pattern inference (B-047, B-053). All 3,691 raw call instructions replaced with symbolic mnemonics:

  • 2,869 jsr abs.l calls (B-049): dc.w $4EB9,$HHHH,$LLLL → jsr FunctionName
  • 490 jsr (d16,PC) calls (B-050): dc.w $4EBA,$XXXX → jsr (FunctionName,PC)
  • 337 bsr.w calls (B-051, B-053): dc.w $6100,$XXXX → bsr.w FunctionName

Only data tables remain as dc.w.

Phase 4 — Data Analysis

Work RAM map: 50+ variables and 30+ named regions traced from PackSaveState and cross-referenced functions. Data structure field layouts for player records (12 fields), route slots (13 fields), char stat records (12 fields), and 3 auxiliary tables. String/text tables labeled. Game phase flow documented: initialization, main loop, turn sequence, quarterly processing, win/loss conditions.

See RAM_MAP.md, DATA_STRUCTURES.md, GAME_PHASE_FLOW.md.

Phase 5 — Full Understanding

Every function has a one-line description explaining what it does (B-055, B-057, B-058 — 538 TODOs resolved across 4 section files). Cross-reference index generated: 605 unique callees, 3,698 call sites, 366 leaf functions (B-056). 53 ROM data tables documented with field layouts, accessor functions, and decoded examples — covering string pools, city/route/region tables, aircraft stats, character compatibility matrices, and graphics data (B-059). 31 misleading function names corrected based on actual behavior analysis (B-061).

All 801 translated functions extracted from monolithic section files into individual module files at disasm/modules/68k/<category>/ (B-060). Section files now contain only data tables and include directives.

CategoryCountPurpose
game551Game logic, UI, AI, turn processing, characters, routes, economy
graphics92Tile/sprite drawing, animation, display refresh
input27Controller polling, input processing, wait/delay
vdp23VDP register access, DMA routines
display22Screen management, fading, display modes
util20Stubs, checksums, error handling, misc
math20Arithmetic, division, random numbers
text16Printf, text rendering, string formatting
vint10V-INT/H-INT handlers, subsystem updates
memory8Memory fill, copy, clear
sound7Z80 communication, sound driver interface
boot4Hardware init, early startup
main-loop1Main game loop

Deep inline annotations added to ~135 of the most complex functions (B-062, B-065, B-066, B-067, B-068): phase block markers, struct field names, magic number explanations, ROM address identifications, and algorithm descriptions. B-062 covers the AI decision tree, turn sequencing, route economics, save serialization, character management, alliance system, and quarterly processing. B-065 extends coverage to the rendering pipeline, world map animation, TMSS boot screen, input handling, and the text renderer. B-066 through B-068 continue widening coverage into the graphics, game logic, display, and input categories — annotating functions in the 203-330 line range.

See CALL_GRAPH.md, DATA_TABLES.md.

License

This repository contains no copyrighted ROM data. You must supply your own legally obtained ROM file to build. The disassembly source, tooling, and documentation are provided for educational and preservation purposes.

View official project
CALIFICACIÓN
—
Loading votes…
Advertisement

PROJECT FILE

Project type
NATIVE PORT
Genre
Platformer
Status
alpha
Original platform
Sega Mega Drive / Genesis
Technology
Native C/C++ port (engine reimplementation)
Version
—
Updated
—

Target platforms 3

Windows
Linux
macOS
View on GitHub
Advertisement