PORTCLUB
Cabecera de BattleTanx (Game Boy Color)
Port nativo

BattleTanx (Game Boy Color)

Port nativo de BattleTanx (Game Boy Color) para PC.

BattleTanx (Game Boy Color)

Port nativo basado en thegh0stship/battletanx-gbc.

README del repositorio

BattleTanx — Game Boy Color matching disassembly

Reconstruction Functions Code Data Verify License: GPL-3.0

This repository contains a byte-exact RGBDS disassembly of BattleTanx for Game Boy Color (USA). All 1,048,576 cartridge bytes are reconstructed from the committed source tree and assets. All 288 catalogued function entries have reviewed names, every ROM byte belongs to a checked range, and generated gap decoding contributes zero bytes.

This is deliberately described as a disassembly and source reconstruction, not a high-level-language decompilation. Its authoritative program source remains human-reviewed SM83 assembly. Catalogs whose schemas use decomp as an umbrella category may list it there, but that metadata does not change the source form.

Binary reconstruction is complete; semantic recovery is still active. A matching cartridge proves that the source preserves the original bytes, not that every table, variable, routine, timing dependency, or original defect is fully understood.

Supported cartridge

  • Title: BATTLETANX
  • Game code: AVNE
  • Region: USA
  • Hardware: Game Boy Color only, MBC5
  • Size: 1 MiB, 64 banks (60 populated and four $FF banks)
  • SHA-1: 5078584e86c0b6f4687c424cc00bbd762ba6573a
  • SHA-256: b449bab1b0a422fdb462d0dc5c55fbc8e50d8c18a5e2fd836e7db016ee63aa62
  • MD5: 4ca71b12d89a5bcfcc52095081ae9f51

Quick start

Requires Python 3 and RGBDS 1.0.4.

make battletanx.gbc  # builds entirely from committed source and assets
make verify-source  # no retail cartridge required

cp /path/to/BattleTanx.gbc baserom.gbc
make check          # complete comparison, structure and round-trip suite

make compare verifies that the output is identical to the supported retail cartridge. make check additionally validates every asset slice, range map, control-flow invariant, relocation case, and lossless graphics/map export.

Current status

cartridge   [████████████████████] 100.00%  1,048,576 / 1,048,576 bytes
code        [████████████████████] 100.00%     39,359 /    39,359 bytes
data        [████████████████████] 100.00%  1,009,217 / 1,009,217 bytes
functions   [████████████████████] 100.00%        288 /       288 named

The code total is the byte-match report's program and RAM-executed-code scope. The trace separately reports 35,303 bytes reached from architectural roots and recovered tables, 3,265 reviewed standalone bytes, 206 callerless bytes, and zero heuristic bytes. These measurements answer different questions and are deliberately not merged.

The whole-ROM range map currently contains 2,411 non-overlapping ranges: 892,269 bytes under reviewed names and 156,307 bytes of padding or bank markers, with no neutral/address-placeholder ranges. Twelve explicitly preserved unreferenced bytes still have unknown original purpose. See docs/STATUS.md for the live recovery ledger and open work.

Source strategy

Human-readable SM83 assembly is the authoritative target. The game depends on SM83 register behavior, MBC5 banking, interrupt timing, CGB VRAM/WRAM banks, and routines copied from ROM into WRAM or HRAM. Keeping those operations explicit preserves both meaning and the exact cartridge image.

Large graphics and data ranges remain committed as typed binary source assets when that is the clearest lossless representation. Their ROM ranges, sizes, hashes, consumers, and round trips are checked. An opaque inclusion is never presented as fully understood merely because it rebuilds correctly.

See the architecture contract, source-maturity policy, and research provenance before changing source labels or formats.

For a clean-checkout setup with exact commands and expected output, follow the reproduction manual. The separate completeness statement explains why a 100% byte match does not mean every byte's gameplay meaning is known.

Repository map

  • src/ — authoritative RGBDS source, one file per ROM bank plus recovered shared data modules.
  • include/ — hardware constants, memory symbols, record layouts and macros.
  • assets/ — committed typed source assets used by the exact build.
  • assets.txt and asset_slices.txt — extraction origins and placed-slice ledger.
  • reports/ — deterministic range, operand, asset and semantic inventories.
  • tools/ — tracing, assembly emission, extraction, validation and reporting.
  • docs/STATUS.md — concise progress and unresolved-work ledger.
  • docs/REPRODUCTION.md — legal-ROM setup, asset recovery, build, validation, and expected outputs.
  • docs/COMPLETENESS.md — exact boundary between reconstruction and semantic recovery.
  • docs/PASSWORDS.txt — ROM-derived canonical passwords and recovered format.
  • docs/HIDDEN_FEATURES.md — audited reset chord, menus, and unreachable development remnants.
  • docs/research/ — detailed evidence for each recovered subsystem.
  • .recomp.json — public project metadata for compatible catalogs.

The tool and target reference explains the major commands and which outputs are authoritative, generated, diagnostic, or one-time-only.

Progress reporting

make report writes an objdiff v2 report with separate code and data totals. The default-branch workflow publishes it as USA_report for compatible trackers. The report measures exact reconstruction only; it does not turn unknown data into understood source.

The exact hashes, category definitions, latest gate expectations, and report contract are recorded in the verification guide.

Important editing rule

make disasm regenerates src/ from the supported cartridge and overwrites reviewed edits. It is a bootstrap and generator-development command, not part of ordinary source maintenance. The checked-in src/ tree is authoritative.

License

Project-authored material is licensed under GNU GPL version 3; see LICENSE. Committed extracted game resources are included for reconstruction and research and remain subject to the rights of their original owners. BattleTanx and its copyrights and trademarks remain the property of their respective holders.

Comentarios (0)

Inicia sesión para dejar un comentario.

Sé el primero en comentar sobre este juego.