B1/B2: ACC table double-deref 5407c8 + chain_9_19_sim op-by-op (BLOCKMAP 620-644)
This commit is contained in:
@@ -176,6 +176,25 @@ def main():
|
||||
store['lut_G'] = struct.unpack('<f', fb4[12:16])[0]
|
||||
store['lut_mode'] = fb4[16]
|
||||
for off in SLOTS[1:]:
|
||||
if off == 0x5407c8:
|
||||
# ACC is table of pointers per-band [5407c8 + i*8] -> buf 2049 f32 each
|
||||
for bi in range(4):
|
||||
q = rd(ctx + off + 8*bi, 8)
|
||||
if not q: continue
|
||||
ptr = struct.unpack('<Q', q)[0]
|
||||
if ptr < 0x10000: continue
|
||||
ab = rd(ptr, 2049 * 4)
|
||||
if ab:
|
||||
store[hex(off) + f"_{bi}"] = np.frombuffer(ab, dtype='<f4').astype(np.float32)
|
||||
# also store raw table pointer for debug
|
||||
q = rd(ctx + off, 8)
|
||||
if q:
|
||||
ptr = struct.unpack('<Q', q)[0]
|
||||
if ptr >= 0x10000:
|
||||
ab = rd(ptr, NARR * 4)
|
||||
if ab:
|
||||
store[hex(off)] = np.frombuffer(ab, dtype='<f4').astype(np.float32)
|
||||
continue
|
||||
q = rd(ctx + off, 8)
|
||||
if not q:
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user