romdevtools 0.30.0 → 0.40.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +12 -3
- package/CHANGELOG.md +89 -13
- package/README.md +11 -2
- package/examples/gb/templates/tile_engine.c +1 -1
- package/examples/gbc/templates/tile_engine.c +1 -1
- package/examples/genesis/templates/two_plane_parallax.c +4 -4
- package/examples/nes/templates/tile_engine.c +1 -1
- package/package.json +3 -1
- package/src/analysis/analyze.js +276 -0
- package/src/analysis/decompile.js +108 -0
- package/src/analysis/decompiler/sleigh/6502.cspec +34 -0
- package/src/analysis/decompiler/sleigh/6502.ldefs +33 -0
- package/src/analysis/decompiler/sleigh/6502.pspec +16 -0
- package/src/analysis/decompiler/sleigh/6502.sla +3414 -0
- package/src/analysis/decompiler/sleigh/65816-snes.pspec +249 -0
- package/src/analysis/decompiler/sleigh/65816.cspec +17 -0
- package/src/analysis/decompiler/sleigh/65816.ldefs +15 -0
- package/src/analysis/decompiler/sleigh/65816.sla +23670 -0
- package/src/analysis/decompiler/sleigh/65c02.sla +4683 -0
- package/src/analysis/decompiler/sleigh/68000.cspec +67 -0
- package/src/analysis/decompiler/sleigh/68000.ldefs +68 -0
- package/src/analysis/decompiler/sleigh/68000.pspec +9 -0
- package/src/analysis/decompiler/sleigh/68000_register.cspec +118 -0
- package/src/analysis/decompiler/sleigh/68040.sla +81693 -0
- package/src/analysis/decompiler/sleigh/ARM.ldefs +377 -0
- package/src/analysis/decompiler/sleigh/ARM4t_le.sla +53758 -0
- package/src/analysis/decompiler/sleigh/ARM_v45.cspec +209 -0
- package/src/analysis/decompiler/sleigh/ARM_v45.pspec +40 -0
- package/src/analysis/decompiler/sleigh/ARMt_v45.pspec +43 -0
- package/src/analysis/decompiler/sleigh/HuC6280.cspec +67 -0
- package/src/analysis/decompiler/sleigh/HuC6280.ldefs +18 -0
- package/src/analysis/decompiler/sleigh/HuC6280.pspec +150 -0
- package/src/analysis/decompiler/sleigh/HuC6280.sla +7524 -0
- package/src/analysis/decompiler/sleigh/sm83.cspec +70 -0
- package/src/analysis/decompiler/sleigh/sm83.ldefs +29 -0
- package/src/analysis/decompiler/sleigh/sm83.pspec +19 -0
- package/src/analysis/decompiler/sleigh/sm83.sla +7695 -0
- package/src/analysis/decompiler/sleigh/z80.cspec +122 -0
- package/src/analysis/decompiler/sleigh/z80.ldefs +57 -0
- package/src/analysis/decompiler/sleigh/z80.pspec +43 -0
- package/src/analysis/decompiler/sleigh/z80.sla +20518 -0
- package/src/analysis/decompiler/wasm/decompile.js +2 -0
- package/src/analysis/decompiler/wasm/decompile.wasm +0 -0
- package/src/analysis/rizin.js +129 -0
- package/src/analysis/wasm/rizin.js +6032 -0
- package/src/analysis/wasm/rizin.wasm +0 -0
- package/src/http/routes.js +1 -1
- package/src/http/skill-doc.js +3 -1
- package/src/mcp/tools/cart-parts.js +5 -2
- package/src/mcp/tools/disasm.js +32 -5
- package/src/mcp/tools/font-map.js +3 -3
- package/src/mcp/tools/index.js +2 -2
- package/src/mcp/tools/project.js +1 -1
- package/src/mcp/tools/reinject.js +1 -1
- package/src/mcp/tools/symbols.js +10 -4
- package/src/mcp/tools/trace-vram-source.js +1 -1
- package/src/mcp/tools/watch-memory.js +1 -1
- package/src/platforms/_guides/ROMHACKING_PLAYBOOK.md +48 -3
- package/src/platforms/atari2600/MENTAL_MODEL.md +6 -0
- package/src/platforms/atari7800/MENTAL_MODEL.md +6 -0
- package/src/platforms/c64/MENTAL_MODEL.md +6 -0
- package/src/platforms/gb/MENTAL_MODEL.md +6 -0
- package/src/platforms/gb/lib/c/README.md +1 -1
- package/src/platforms/gba/MENTAL_MODEL.md +7 -1
- package/src/platforms/gbc/MENTAL_MODEL.md +6 -0
- package/src/platforms/gbc/lib/c/README.md +1 -1
- package/src/platforms/genesis/MENTAL_MODEL.md +8 -2
- package/src/platforms/genesis/TROUBLESHOOTING.md +2 -2
- package/src/platforms/genesis/lib/wram.s +1 -1
- package/src/platforms/gg/MENTAL_MODEL.md +6 -0
- package/src/platforms/lynx/MENTAL_MODEL.md +6 -0
- package/src/platforms/msx/MENTAL_MODEL.md +6 -0
- package/src/platforms/nes/MENTAL_MODEL.md +6 -0
- package/src/platforms/pce/MENTAL_MODEL.md +6 -0
- package/src/platforms/sms/MENTAL_MODEL.md +6 -0
- package/src/platforms/snes/MENTAL_MODEL.md +10 -4
- package/src/toolchains/_worker/wasm-worker.js +5 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
|
|
3
|
+
<compiler_spec>
|
|
4
|
+
<data_organization>
|
|
5
|
+
<pointer_size value="2" />
|
|
6
|
+
</data_organization>
|
|
7
|
+
<global>
|
|
8
|
+
<range space="ram"/>
|
|
9
|
+
<range space="io"/>
|
|
10
|
+
</global>
|
|
11
|
+
<stackpointer register="SP" space="ram"/>
|
|
12
|
+
<default_proto>
|
|
13
|
+
<prototype name="__asmA" extrapop="2" stackshift="2" strategy="register">
|
|
14
|
+
<input>
|
|
15
|
+
<pentry minsize="1" maxsize="1">
|
|
16
|
+
<register name="A"/>
|
|
17
|
+
</pentry>
|
|
18
|
+
<pentry minsize="1" maxsize="2">
|
|
19
|
+
<register name="BC"/>
|
|
20
|
+
</pentry>
|
|
21
|
+
<pentry minsize="1" maxsize="2">
|
|
22
|
+
<register name="HL"/>
|
|
23
|
+
</pentry>
|
|
24
|
+
<pentry minsize="1" maxsize="2">
|
|
25
|
+
<register name="DE"/>
|
|
26
|
+
</pentry>
|
|
27
|
+
<pentry minsize="1" maxsize="2">
|
|
28
|
+
<register name="IY"/>
|
|
29
|
+
</pentry>
|
|
30
|
+
<pentry minsize="1" maxsize="2">
|
|
31
|
+
<register name="IX"/>
|
|
32
|
+
</pentry>
|
|
33
|
+
<pentry minsize="1" maxsize="500" align="2">
|
|
34
|
+
<addr offset="2" space="stack"/>
|
|
35
|
+
</pentry>
|
|
36
|
+
</input>
|
|
37
|
+
<output>
|
|
38
|
+
<pentry minsize="1" maxsize="1">
|
|
39
|
+
<register name="A"/>
|
|
40
|
+
</pentry>
|
|
41
|
+
</output>
|
|
42
|
+
<unaffected>
|
|
43
|
+
<register name="SP"/>
|
|
44
|
+
<register name="BC_"/>
|
|
45
|
+
<register name="HL_"/>
|
|
46
|
+
<register name="DE_"/>
|
|
47
|
+
<register name="AF_"/>
|
|
48
|
+
<register name="rBBR"/>
|
|
49
|
+
<register name="DECOMPILE_MODE"/>
|
|
50
|
+
</unaffected>
|
|
51
|
+
</prototype>
|
|
52
|
+
</default_proto>
|
|
53
|
+
<prototype name="__asmAF" extrapop="2" stackshift="2" strategy="register">
|
|
54
|
+
<input>
|
|
55
|
+
<pentry minsize="1" maxsize="1">
|
|
56
|
+
<register name="A"/>
|
|
57
|
+
</pentry>
|
|
58
|
+
<pentry minsize="1" maxsize="2">
|
|
59
|
+
<register name="BC"/>
|
|
60
|
+
</pentry>
|
|
61
|
+
<pentry minsize="1" maxsize="2">
|
|
62
|
+
<register name="HL"/>
|
|
63
|
+
</pentry>
|
|
64
|
+
<pentry minsize="1" maxsize="2">
|
|
65
|
+
<register name="DE"/>
|
|
66
|
+
</pentry>
|
|
67
|
+
<pentry minsize="1" maxsize="2">
|
|
68
|
+
<register name="IY"/>
|
|
69
|
+
</pentry>
|
|
70
|
+
<pentry minsize="1" maxsize="2">
|
|
71
|
+
<register name="IX"/>
|
|
72
|
+
</pentry>
|
|
73
|
+
<pentry minsize="1" maxsize="500" align="2">
|
|
74
|
+
<addr offset="2" space="stack"/>
|
|
75
|
+
</pentry>
|
|
76
|
+
</input>
|
|
77
|
+
<output>
|
|
78
|
+
<pentry minsize="1" maxsize="2">
|
|
79
|
+
<register name="AF"/>
|
|
80
|
+
</pentry>
|
|
81
|
+
</output>
|
|
82
|
+
<unaffected>
|
|
83
|
+
<register name="SP"/>
|
|
84
|
+
<register name="rBBR"/>
|
|
85
|
+
<register name="BC_"/>
|
|
86
|
+
<register name="HL_"/>
|
|
87
|
+
<register name="DE_"/>
|
|
88
|
+
<register name="AF_"/>
|
|
89
|
+
<register name="DECOMPILE_MODE"/>
|
|
90
|
+
</unaffected>
|
|
91
|
+
</prototype>
|
|
92
|
+
<prototype name="__stdcall" extrapop="2" stackshift="2">
|
|
93
|
+
<input>
|
|
94
|
+
<pentry minsize="1" maxsize="1">
|
|
95
|
+
<register name="A"/>
|
|
96
|
+
</pentry>
|
|
97
|
+
<pentry minsize="1" maxsize="2">
|
|
98
|
+
<register name="BC"/>
|
|
99
|
+
</pentry>
|
|
100
|
+
<pentry minsize="1" maxsize="2">
|
|
101
|
+
<register name="HL"/>
|
|
102
|
+
</pentry>
|
|
103
|
+
<pentry minsize="1" maxsize="500" align="2">
|
|
104
|
+
<addr offset="2" space="stack"/>
|
|
105
|
+
</pentry>
|
|
106
|
+
</input>
|
|
107
|
+
<output>
|
|
108
|
+
<pentry minsize="1" maxsize="1">
|
|
109
|
+
<register name="AF"/>
|
|
110
|
+
</pentry>
|
|
111
|
+
</output>
|
|
112
|
+
<unaffected>
|
|
113
|
+
<register name="SP"/>
|
|
114
|
+
<register name="rBBR"/>
|
|
115
|
+
<register name="BC_"/>
|
|
116
|
+
<register name="HL_"/>
|
|
117
|
+
<register name="DE_"/>
|
|
118
|
+
<register name="AF_"/>
|
|
119
|
+
<register name="DECOMPILE_MODE"/>
|
|
120
|
+
</unaffected>
|
|
121
|
+
</prototype>
|
|
122
|
+
</compiler_spec>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
|
|
3
|
+
<language_definitions>
|
|
4
|
+
<language processor="Z80"
|
|
5
|
+
endian="little"
|
|
6
|
+
size="16"
|
|
7
|
+
variant="default"
|
|
8
|
+
version="1.0"
|
|
9
|
+
slafile="z80.sla"
|
|
10
|
+
processorspec="z80.pspec"
|
|
11
|
+
manualindexfile="../manuals/Z80.idx"
|
|
12
|
+
id="z80:LE:16:default">
|
|
13
|
+
<description>Zilog Z80</description>
|
|
14
|
+
<compiler name="default" spec="z80.cspec" id="default"/>
|
|
15
|
+
<external_name tool="gnu" name="z80"/>
|
|
16
|
+
<external_name tool="IDA-PRO" name="z80"/>
|
|
17
|
+
</language>
|
|
18
|
+
<language processor="Z80"
|
|
19
|
+
endian="little"
|
|
20
|
+
size="16"
|
|
21
|
+
variant="Z8401x"
|
|
22
|
+
version="1.0"
|
|
23
|
+
slafile="z80.sla"
|
|
24
|
+
processorspec="z8401x.pspec"
|
|
25
|
+
manualindexfile="../manuals/Z80.idx"
|
|
26
|
+
id="z8401x:LE:16:default">
|
|
27
|
+
<description>Zilog Z8401x (IPC) microcontroller</description>
|
|
28
|
+
<compiler name="default" spec="z80.cspec" id="default"/>
|
|
29
|
+
<external_name tool="gnu" name="z80"/>
|
|
30
|
+
<external_name tool="IDA-PRO" name="z80"/>
|
|
31
|
+
</language>
|
|
32
|
+
<language processor="Z180"
|
|
33
|
+
endian="little"
|
|
34
|
+
size="16"
|
|
35
|
+
variant="default"
|
|
36
|
+
version="1.0"
|
|
37
|
+
slafile="z180.sla"
|
|
38
|
+
processorspec="z180.pspec"
|
|
39
|
+
manualindexfile="../manuals/Z180.idx"
|
|
40
|
+
id="z180:LE:16:default">
|
|
41
|
+
<description>Zilog Z180</description>
|
|
42
|
+
<compiler name="default" spec="z80.cspec" id="default"/>
|
|
43
|
+
<external_name tool="IDA-PRO" name="z180"/>
|
|
44
|
+
</language>
|
|
45
|
+
<language processor="Z180"
|
|
46
|
+
endian="little"
|
|
47
|
+
size="16"
|
|
48
|
+
variant="Z182"
|
|
49
|
+
version="1.0"
|
|
50
|
+
slafile="z180.sla"
|
|
51
|
+
processorspec="z182.pspec"
|
|
52
|
+
manualindexfile="../manuals/Z180.idx"
|
|
53
|
+
id="z182:LE:16:default">
|
|
54
|
+
<description>Zilog Z182</description>
|
|
55
|
+
<compiler name="default" spec="z80.cspec" id="default"/>
|
|
56
|
+
</language>
|
|
57
|
+
</language_definitions>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
|
|
3
|
+
<processor_spec>
|
|
4
|
+
<programcounter register="PC"/>
|
|
5
|
+
|
|
6
|
+
<segmentop space="ram" userop="segment" farpointer="yes">
|
|
7
|
+
<pcode>
|
|
8
|
+
<input name="base" size="2"/>
|
|
9
|
+
<input name="inner" size="2"/>
|
|
10
|
+
<output name="res" size="2"/>
|
|
11
|
+
<body><![CDATA[
|
|
12
|
+
res = (base << 12) + inner;
|
|
13
|
+
]]></body>
|
|
14
|
+
</pcode>
|
|
15
|
+
<constresolve>
|
|
16
|
+
<register name="rBBR"/>
|
|
17
|
+
</constresolve>
|
|
18
|
+
</segmentop>
|
|
19
|
+
<context_data>
|
|
20
|
+
<tracked_set space="ram">
|
|
21
|
+
<set name="DECOMPILE_MODE" val="1"/>
|
|
22
|
+
</tracked_set>
|
|
23
|
+
</context_data>
|
|
24
|
+
|
|
25
|
+
<register_data>
|
|
26
|
+
<register name="AF_" group="Alt"/>
|
|
27
|
+
<register name="BC_" group="Alt"/>
|
|
28
|
+
<register name="DE_" group="Alt"/>
|
|
29
|
+
<register name="HL_" group="Alt"/>
|
|
30
|
+
</register_data>
|
|
31
|
+
<default_symbols>
|
|
32
|
+
<symbol name="RST0" address="ram:0000" entry="true"/>
|
|
33
|
+
<symbol name="RST1" address="ram:0008" entry="true"/>
|
|
34
|
+
<symbol name="RST2" address="ram:0010" entry="true"/>
|
|
35
|
+
<symbol name="RST3" address="ram:0018" entry="true"/>
|
|
36
|
+
<symbol name="RST4" address="ram:0020" entry="true"/>
|
|
37
|
+
<symbol name="RST5" address="ram:0028" entry="true"/>
|
|
38
|
+
<symbol name="RST6" address="ram:0030" entry="true"/>
|
|
39
|
+
<symbol name="RST7" address="ram:0038" entry="true"/>
|
|
40
|
+
|
|
41
|
+
<symbol name="NMI_ISR" address="ram:0066" entry="true"/>
|
|
42
|
+
</default_symbols>
|
|
43
|
+
</processor_spec>
|