Research
This commit is contained in:
parent
28cbbe3470
commit
a9153546ae
56 changed files with 6731 additions and 258 deletions
35
scripts/dump_channel_table_at.py
Normal file
35
scripts/dump_channel_table_at.py
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#!/usr/bin/env python3
|
||||
import os
|
||||
fn = os.path.join('binary','Crusader - No Remorse Weapons Main Ram.bin')
|
||||
if not os.path.exists(fn):
|
||||
print('file missing', fn); raise SystemExit(2)
|
||||
with open(fn,'rb') as f:
|
||||
data = f.read()
|
||||
size = len(data)
|
||||
base = 0x6466A
|
||||
stride = 0x26
|
||||
|
||||
def read_name(defOff):
|
||||
end = defOff + stride
|
||||
s = ''
|
||||
for i in range(defOff, min(end, size)):
|
||||
c = data[i]
|
||||
if 32 <= c <= 126:
|
||||
s += chr(c)
|
||||
else:
|
||||
if len(s) >= 2:
|
||||
return s
|
||||
s = ''
|
||||
return s
|
||||
|
||||
for tableStart in (0x64355, 0x64340, 0x64330):
|
||||
print(f'\nDumping table @0x{tableStart:X}')
|
||||
rec = 10
|
||||
for ch in range(40):
|
||||
idxOff = tableStart + ch*rec + 9
|
||||
if idxOff >= size:
|
||||
break
|
||||
sel = data[idxOff]
|
||||
defOff = base + sel*stride
|
||||
name = read_name(defOff) if defOff < size else ''
|
||||
print(f'chan {ch:02d}: sel=0x{sel:02X} ({sel}) -> def@0x{defOff:X} -> {name} (idxOff=0x{idxOff:X})')
|
||||
Loading…
Add table
Add a link
Reference in a new issue