Generate ALttP (USA) port from ROM via snesrecomp
- Recompiled LoROM 1MB USA dump (crc32=777aac2f) with snesrecomp v2 (ef0b3ff7) - 4 analysis roots emitted to src/gen (bank00 + dispatch/module/stubs) - ALttP title adapter hooks left in src/game_rtl.c for integration
This commit is contained in:
1 parent
0cd0e5555c
commit
62c92e2b45
8 files changed
+1776
No files matched your search
@@ -8,4 +8,8 @@ tier_down_stubs
|
||||
# Reset vector $8000, native NMI $80c9 (from the cartridge header).
|
||||
|
||||
# >>> BEGIN symbols.toml (generated — do not edit)
|
||||
symbol 008000 I_RESET
|
||||
force_lle 008000
|
||||
symbol 0080c9 I_NMI
|
||||
force_lle 0080c9
|
||||
# <<< END symbols.toml
|
||||
Whitespace-only changes.
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"analysis_input_digest": "1700f681ffb0ccea26a5e3dc7bbbc4fc633c06c567c077ca1eff3b1cd33f8a91",
|
||||
"bank_outputs": {
|
||||
"00": [
|
||||
"bank00_v2.c"
|
||||
]
|
||||
},
|
||||
"bank_symbols": {
|
||||
"00": [
|
||||
"I_IRQ"
|
||||
]
|
||||
},
|
||||
"banks": {
|
||||
"00": "999b5fac0f986e8ee1e55aae8b0aa8ec3160ef735cf41e063c68cda5d5ab5920"
|
||||
},
|
||||
"config_digest": "eb0b2df3e65c9a852e41fed1ced0eb5828510c6d60239bfce5d015794f63579c",
|
||||
"format_version": 5,
|
||||
"generator_digest": "d506070caed26ffc0b0cb275ea5f2c38e2570b864896bf3bfb711de89d63e4ef",
|
||||
"module": {
|
||||
"id": "main",
|
||||
"prefix": ""
|
||||
},
|
||||
"outputs": {
|
||||
"bank00_v2.c": "8c80d6c214ddf7229ffd8dc259908675f85a177190c6dc0204dd26d4ad8241f4",
|
||||
"dispatch_v2.c": "e1993bb58129574e5fc3eb225a30708ac0883aff87a97c378d2db942269d6ca8",
|
||||
"module_v2.c": "95a59b7f03333ab70ab3b8644f28bf76b0adbaa1c5d3b7fdc9ed2e5e60784e5c",
|
||||
"program_manifest.json": "613ba97f57adfef1b31a722cde80b1f40f6c8a74b5b5a6d21611b09b953083c6",
|
||||
"unresolved_stubs_v2.c": "47085f485c3e8d488d105e0aa641f1300af226efabf3dd2147b09c137edb49b7"
|
||||
},
|
||||
"stats": {
|
||||
"banks": 1,
|
||||
"emitted_variants": 4,
|
||||
"lle_variants": 0,
|
||||
"roots": 4
|
||||
}
|
||||
}
|
||||
+1590
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,21 @@
|
||||
/* Auto-generated from the authoritative LLE/AOT manifest. */
|
||||
#include "cpu_state.h"
|
||||
|
||||
RecompReturn I_IRQ_M0X0(CpuState *cpu);
|
||||
RecompReturn I_IRQ_M0X1(CpuState *cpu);
|
||||
RecompReturn I_IRQ_M1X0(CpuState *cpu);
|
||||
RecompReturn I_IRQ_M1X1(CpuState *cpu);
|
||||
|
||||
const DispatchEntry g_dispatch_table[] = {
|
||||
{ 0x0082D8u, { I_IRQ_M0X0, I_IRQ_M0X1, I_IRQ_M1X0, I_IRQ_M1X1 }, 0 }, /* I_IRQ */
|
||||
};
|
||||
|
||||
const unsigned g_dispatch_table_count =
|
||||
(unsigned)(sizeof(g_dispatch_table) / sizeof(g_dispatch_table[0]));
|
||||
|
||||
const RamRoutineGuard g_ram_routine_guards[] = {
|
||||
{ 0xFFFFFFFFu, 0u, 0u },
|
||||
};
|
||||
|
||||
const unsigned g_ram_routine_guard_count =
|
||||
(unsigned)(sizeof(g_ram_routine_guards) / sizeof(g_ram_routine_guards[0]));
|
||||
@@ -0,0 +1,39 @@
|
||||
/* Auto-generated by snesrecomp v2 program_emit. Do NOT hand-edit.
|
||||
*
|
||||
* Program module `main`.
|
||||
* Registers this generated tree's dispatch/guard tables with the
|
||||
* runtime module registry (runner/src/program_module.h) so a host
|
||||
* can select it by id. */
|
||||
#include <string.h>
|
||||
|
||||
#include "cpu_state.h"
|
||||
#include "program_module.h"
|
||||
|
||||
extern const DispatchEntry g_dispatch_table[];
|
||||
extern const unsigned g_dispatch_table_count;
|
||||
extern const RamRoutineGuard g_ram_routine_guards[];
|
||||
extern const unsigned g_ram_routine_guard_count;
|
||||
|
||||
SnesProgramModule g_program_module;
|
||||
|
||||
SNES_PROGRAM_MODULE_CONSTRUCTOR(snes_program_module_register_generated) {
|
||||
g_program_module.id = "main";
|
||||
g_program_module.symbol_prefix = "";
|
||||
g_program_module.program_digest = "613ba97f57adfef1b31a722cde80b1f40f6c8a74b5b5a6d21611b09b953083c6";
|
||||
g_program_module.build_digest = "b7cae10b1c212cb9fd725d1ddfa3c61092a2ff25d71a96363c8a71bd72df64f8";
|
||||
g_program_module.dispatch = g_dispatch_table;
|
||||
g_program_module.dispatch_count = g_dispatch_table_count;
|
||||
g_program_module.guards = g_ram_routine_guards;
|
||||
g_program_module.guard_count = g_ram_routine_guard_count;
|
||||
g_program_module.rom_size = 1048576u;
|
||||
{
|
||||
static const uint8_t digest[32] = {
|
||||
0x66, 0x87, 0x1d, 0x66, 0xbe, 0x19, 0xad, 0x2c,
|
||||
0x34, 0xc9, 0x27, 0xd6, 0xb1, 0x4c, 0xd8, 0xeb,
|
||||
0x6f, 0xc3, 0x18, 0x19, 0x65, 0xb6, 0xe5, 0x17,
|
||||
0xcb, 0x36, 0x1f, 0x73, 0x16, 0x00, 0x9c, 0xfb,
|
||||
};
|
||||
memcpy(g_program_module.rom_sha256, digest, sizeof(digest));
|
||||
}
|
||||
snes_program_module_register(&g_program_module);
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"exit_mode_sets": {},
|
||||
"exit_modes": {},
|
||||
"format_version": 3,
|
||||
"nodes": {
|
||||
"0082D8:M0X0": {
|
||||
"demands": [],
|
||||
"digest": "native",
|
||||
"disposition": "aot_eligible",
|
||||
"instruction_count": 49,
|
||||
"key": {
|
||||
"m": 0,
|
||||
"pc24": 33496,
|
||||
"x": 0
|
||||
},
|
||||
"max_pc24": 33586,
|
||||
"min_pc24": 33496,
|
||||
"reasons": []
|
||||
},
|
||||
"0082D8:M0X1": {
|
||||
"demands": [],
|
||||
"digest": "native",
|
||||
"disposition": "aot_eligible",
|
||||
"instruction_count": 49,
|
||||
"key": {
|
||||
"m": 0,
|
||||
"pc24": 33496,
|
||||
"x": 1
|
||||
},
|
||||
"max_pc24": 33586,
|
||||
"min_pc24": 33496,
|
||||
"reasons": []
|
||||
},
|
||||
"0082D8:M1X0": {
|
||||
"demands": [],
|
||||
"digest": "native",
|
||||
"disposition": "aot_eligible",
|
||||
"instruction_count": 49,
|
||||
"key": {
|
||||
"m": 1,
|
||||
"pc24": 33496,
|
||||
"x": 0
|
||||
},
|
||||
"max_pc24": 33586,
|
||||
"min_pc24": 33496,
|
||||
"reasons": []
|
||||
},
|
||||
"0082D8:M1X1": {
|
||||
"demands": [],
|
||||
"digest": "native",
|
||||
"disposition": "aot_eligible",
|
||||
"instruction_count": 49,
|
||||
"key": {
|
||||
"m": 1,
|
||||
"pc24": 33496,
|
||||
"x": 1
|
||||
},
|
||||
"max_pc24": 33586,
|
||||
"min_pc24": 33496,
|
||||
"reasons": []
|
||||
}
|
||||
},
|
||||
"roots": [
|
||||
{
|
||||
"m": 0,
|
||||
"pc24": 33496,
|
||||
"x": 0
|
||||
},
|
||||
{
|
||||
"m": 0,
|
||||
"pc24": 33496,
|
||||
"x": 1
|
||||
},
|
||||
{
|
||||
"m": 1,
|
||||
"pc24": 33496,
|
||||
"x": 0
|
||||
},
|
||||
{
|
||||
"m": 1,
|
||||
"pc24": 33496,
|
||||
"x": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
/* Manifest-driven generation: unresolved execution remains LLE. */
|
||||
Reference in new issue
Block a user