Iron Clad — Neo Geo static recompilation (Windows x64)
=======================================================

Choutetsu Brikin'ger / Iron Clad (Saurus, 1996) running as a native PC
program. Its Motorola 68000 code has been statically recompiled to C by the
neogeorecomp toolkit (https://github.com/sp00nznet/neogeorecomp) and runs
against a software model of the Neo Geo MVS board. This is not an emulator:
the game code executes as native x86-64 machine code.

System requirements
-------------------
- 64-bit Windows 10 or 11.
- The Microsoft Visual C++ 2015-2022 Redistributable is normally required,
  but the needed runtime DLLs (vcruntime140.dll, vcruntime140_1.dll) are
  shipped next to this executable, so it runs as-is.
- A display for windowed play (or run with --headless for no window).

ROM files (required — not included)
-----------------------------------
You must supply your own legally obtained ROM dumps. Put them in a folder
named "roms" next to this executable (or pass --rom-path <folder>).

Game set (MAME "ironclad" prototype):
    proto_220-p1.p1      (2 MB   program)
    proto_220-s1.s1      (128 KB fix layer)
    proto_220-m1.m1      (128 KB sound driver)
    proto_220-c1.c1      (4 MB   sprites)
    proto_220-c2.c2      (4 MB   sprites)
    proto_220-c3.c3      (4 MB   sprites)
    proto_220-c4.c4      (4 MB   sprites)
    proto_220-v1.v1      (4 MB   audio samples)

System set (MAME "neogeo" — only these files are used):
    sp-s2.sp1            (128 KB system ROM, MVS Asia/Europe v2)
    sfix.sfix            (128 KB BIOS fix tiles)
    sm1.sm1              (128 KB BIOS sound driver)
    000-lo.lo            (128 KB sprite shrink table)

Expected CRC32s are listed in the project's docs/game-notes.md.

Launching
---------
Double-click ironclad.exe (it looks for ROMs in "roms" by default), or:

    ironclad.exe --rom-path C:\path\to\roms

Useful options:
    --headless                 no window; run as fast as possible
    --frames N                 stop after N frames (for testing)
    --interp                   run the whole machine in the reference
                               interpreter (correctness comparison)
    --verify                   re-run every recompiled block in the
                               interpreter and compare (slow)
    --screenshot N:file.png    save frame N
    --input file.txt           scripted input
    --record file.mp4          record video (needs ffmpeg on PATH)
    --scale N                  window scale (default 3)

Controls
--------
Keyboard:
    Arrow keys   move
    Z X C V      Neo Geo A B C D
    5            insert coin
    1 / 2        player 1 / player 2 start
    Esc          quit

Gamepad: the first pad connected is player 1, the second is player 2.
D-pad or left stick moves; A B X Y = A B C D; Start = start; Back = coin.

Verification status
-------------------
- Boots through the real MVS BIOS to the title and attract mode.
- Runs 100% natively (0 interpreted instructions) over the attract +
  ~5-minute scripted play session, after the profile pass.
- --verify: 11,062,666 recompiled blocks compared against the Musashi
  interpreter, 0 mismatches.
- Native frames are byte-identical to the interpreter.
- Audio (YM2610 FM/SSG/ADPCM) is synthesized and non-silent.

Known limitations
-----------------
- Alpha port. Stages beyond the scripted play session have not been
  exercised by a script yet; any code only they reach still runs correctly
  through the Musashi fallback (interpreter), just not natively.
- No memory card, no AES BIOS, no PAL timing (toolkit roadmap).

This package contains no game ROMs, Neo Geo BIOS images, or other
copyrighted game assets. The executable embeds a recompiled translation of
the game program, but it still requires your own legally obtained ROMs and
BIOS to run. Iron Clad / Choutetsu Brikin'ger is (c) Saurus/SNK and the Neo
Geo BIOS is (c) SNK; this is an unofficial, noncommercial project, not
affiliated with or endorsed by them.
