#!/usr/bin/env python3 """ probe_laye.py — find where 9024 and 5120 are actually stored in a pm4n file, and dump LAYE + Mode sections in detail. Run: python3 probe_laye.py Dummy.pm4n """ import struct, sys path = sys.argv[1] data = open(path, 'rb').read() fsize = len(data) print(f"File: {path} ({fsize} bytes)\n") # Search for 9024 and 5120 as u32 LE, u16 LE, and as floats targets = { 'u32 9024': struct.pack('= 0: print(f"LAYE raw (first 160 bytes from 0x{laye_off:06X}):") for i in range(0, 160, 16): row = data[laye_off+i : laye_off+i+16] if not row: break hex_p = ' '.join(f'{b:02X}' for b in row) interp = [] for j in range(0, len(row)-3, 4): u = struct.unpack_from('= 0: print(f"Mode raw (first 96 bytes from 0x{mode_off:06X}):") for i in range(0, 96, 16): row = data[mode_off+i : mode_off+i+16] if not row: break hex_p = ' '.join(f'{b:02X}' for b in row) interp = [] for j in range(0, len(row)-3, 4): u = struct.unpack_from('