General Compressed Char Loading starts at FFF85866 -> r6 contains charset address in file, r24 the charset address in memory (bgmap offset) Compressed Char Loading starts at FFF858EA -> r6 contains charset address in file of end (end - start - 2 == length) General BGMap loading starts at FFF80AC2 -> r7 contains bgmap adress, r9 * r8 * 2 == length, r8 = chars per rwo -------------------------------------- Precaution Screen First letter in CHAR Address: 00017010 (mirror 0007D010) BGMAP Address: 0003650C -- Letter in CHAR is written at FFF806D8 Letter CHAR Data is loaded from FFFAB70C Precaution screen CHARSET starts at FFFAB6FC (File address 2B6FC) in ROM (length 0x86 * 16) -- Letter in BGMAP is written at FFF80ACE Letter BGMAP Data is loaded from FFFAC038 Precaution screen BGMAP starts at FFFABF6C (File address 2BF6C) in ROM (length 0x30*2 per row as stored in r25) 2BF6C -> Precaution screen bg map -------------------------------------- Auto Pause Selection First char in CHAR Address: 00017010 (mirror 0007D010) BGMAP Address: 00036000 (36098 first asset) -- Char is written at FFF8594C (generic char loading) Char is loaded from memory at FFF85928 -> Memory Address: 5012198 (writes to 105002198) Memory is written at FFF8590C with value from r25 Loads value into r25 at FFF85902 from address FFFAC573 (File Address 2C573 -> 2C572) (Crazy compression loading) CharData starts at FFFAC56C (File address 2C56C) in ROM -> First byte is length (Number of 16 byte steps I think) (90) -> Second byte is empty (91) -> Next 4 bytes are Alt byte masks (92-95) -> Next byte is alt byte (96) Data compression stores even and uneven bits of a short in 2 bytes. Alt mask identify bitwise if altbyte or regular data is used. 2C56C -> Auto pause selection charset -- Corner in BgMap is written at FFF80ACE Corner in BgMap is laoded from FFFACE0C Auto Pause Selection starts at FFFACD94 (File Address 2CD94) in ROM (length 0x30*2 per row as stored in r25) 2CD94 -> Auto Pause selection map -------------------------------------- Challange screen: CHAR Start: FFFA05B6 -> 205B6 -> 205B8 CHAR END: FFFA0A17 CHAR MEM POS: 7A010 BGMAP Address: FFFA0A18 -> 20A18 length = 1C * A * 2 cpr = 1C BGMAP Address: FFFA0A18 -> 20C48 length = 1C * A * 2 cpr = 1C --------------------------------------- Auto Pause 5002127 -> set to one while playing regular -> die and auto pause comes up CHAR Start: FFFA0E78 -> 20E78 -> 2 0E7A CHAR END: FFFA2370 CHAR MEM POS: 7B010 BGMAP Address: FFFA2370 -> 22370 length = 30 * 1C * 2 cpr = 30