Repository navigation
Stage Catalog Fire
Scope: Stage-local catalog for Fire, compact selector
5/ native stage ID5. Shared record grammar, resource notation, evidence labels, and safety rules are owned by Stage catalogs. Global loader/materializer conclusions and literal allocation ownership are deliberately linked rather than redefined here.
- Static-confirmed: all 16 ordinary pickup records, all 27 stock outer slots, and the recognized resource records below are decoded from the clean USA N64 ROM.
-
Runtime-confirmed: the Fire resource-file mapping was matched against captured runtime memory at
0x80224C88. - Runtime-confirmed: representative Fire ordinary-pickup collection/persistence is established, but all 16 Fire records have not been individually exhausted one by one in runtime testing.
- Fire's three icon pickups call stage-qualified overlay VA
0x802F0EBC. That address is Fire-overlay evidence and must not be treated as a globally resident callback identity. -
Runtime-confirmed, proof-only: a bounded Fire foreign-item proof populated stock logical slot
5with a Prison Level 1 key resource and relocated/expanded the Fire resource file. Its exact Fire-local ranges are preserved below.
| Property | Value |
|---|---|
| Stage ID | 5 |
| Global resource file ID | 0x3C |
| File-table entry ROM | 0x000A52E0 |
| Resource ROM range | 0x00388260..0x0038A78F |
| File size |
0x2530 (9520 bytes) |
| File-table flag | 0 |
| Verified runtime base | 0x80224C88 |
| Outer slots | 27 |
| Outer-table end | 0x6C |
| First descriptor | 0x6C |
| Empty logical slots | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 |
| Unknown/nonstandard slots | none |
| Pickup records | 16 |
| # | Decoded identity | ROM base | RDRAM base | X | Y | Z | +0C | +10 type | +14 parameter | +18 callback | +1C | +20 | +24 slot | +28 presentation | +2C collected | Token | Requires |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Potion | 0x000E6218 |
0x802F14C8 |
0xFFFE0ADF |
0xFFFFAD00 |
0x00000000 |
0x00000004 |
0x0000000B |
0x00000000 |
0x800388FC |
0x00000020 |
0x00000020 |
0x00000018 |
0x800B1BAC |
0x00000000 |
— | — |
| 2 | Formula | 0x000E6248 |
0x802F14F8 |
0x000C8E72 |
0xFFFFAD00 |
0x00000000 |
0x00000004 |
0x00000009 |
0x00000000 |
0x8003898C |
0x00000020 |
0x00000020 |
0x00000019 |
0x800B1D38 |
0x00000000 |
— | — |
| 3 | Health urn | 0x000E6098 |
0x802F1348 |
0x001925CA |
0xFFFFAD00 |
0x00000000 |
0x00000004 |
0x00000006 |
0x00000000 |
0x800389EC |
0x00000020 |
0x00000020 |
0x0000001A |
0x800B1D38 |
0x00000000 |
— | — |
| 4 | Herbs | 0x000E6308 |
0x802F15B8 |
0x001F25E6 |
0xFFFF2B00 |
0x00000000 |
0x00000004 |
0x00000001 |
0x00000000 |
0x800389BC |
0x00000020 |
0x00000020 |
0x00000015 |
0x800B1D38 |
0x00000000 |
— | — |
| 5 | Fire icon param 0 | 0x000E60F8 |
0x802F13A8 |
0x0024B2E6 |
0xFFFE4500 |
0x00000000 |
0x00000004 |
0x00000000 |
0x00000000 |
0x802F0EBC |
0x00000020 |
0x00000020 |
0x00000000 |
0x800B1D18 |
0x00000000 |
fire-triangle-up |
— |
| 6 | Health urn | 0x000E60C8 |
0x802F1378 |
0x00342508 |
0xFFFFA918 |
0x00000000 |
0x00000004 |
0x00000006 |
0x00000000 |
0x800389EC |
0x00000020 |
0x00000020 |
0x0000001A |
0x800B1D38 |
0x00000000 |
— | — |
| 7 | Shield | 0x000E6368 |
0x802F1618 |
0x005BCA4F |
0x00019100 |
0x00000000 |
0x00000004 |
0x00000007 |
0x00000000 |
0x8003892C |
0x00000020 |
0x00000020 |
0x00000016 |
0x800B1D38 |
0x00000000 |
— | — |
| 8 | Herbs | 0x000E6338 |
0x802F15E8 |
0x005D2E1D |
0x00019100 |
0x00000000 |
0x00000004 |
0x00000001 |
0x00000000 |
0x800389BC |
0x00000020 |
0x00000020 |
0x00000015 |
0x800B1D38 |
0x00000000 |
— | — |
| 9 | Extra life | 0x000E6278 |
0x802F1528 |
0x0059085E |
0x00037D00 |
0x00000000 |
0x00000004 |
0x00000002 |
0x00000000 |
0x80038A1C |
0x00000020 |
0x00000020 |
0x00000014 |
0x800B1D38 |
0x00000000 |
— | — |
| 10 | Fire icon param 1 | 0x000E61B8 |
0x802F1468 |
0x004FC5F6 |
0x00037D00 |
0x00000000 |
0x00000004 |
0x00000000 |
0x00000001 |
0x802F0EBC |
0x00000020 |
0x00000020 |
0x00000001 |
0x800B1D18 |
0x00000000 |
fire-two-bars |
— |
| 11 | Extra life | 0x000E6398 |
0x802F1648 |
0x006D7ADF |
0x00013100 |
0x00000000 |
0x00000004 |
0x00000002 |
0x00000000 |
0x80038A1C |
0x00000020 |
0x00000020 |
0x00000014 |
0x800B1D38 |
0x00000000 |
— | — |
| 12 | Eye | 0x000E62A8 |
0x802F1558 |
0x007EBAAB |
0xFFFFAD00 |
0x00000000 |
0x00000004 |
0x0000000A |
0x00000000 |
0x8003895C |
0x00000020 |
0x00000020 |
0x00000017 |
0x800B1D38 |
0x00000000 |
— | — |
| 13 | Potion | 0x000E62D8 |
0x802F1588 |
0x00B06090 |
0xFFFF7600 |
0x00000000 |
0x00000004 |
0x0000000B |
0x00000000 |
0x800388FC |
0x00000020 |
0x00000020 |
0x00000018 |
0x800B1BAC |
0x00000000 |
— | — |
| 14 | Herbs | 0x000E63C8 |
0x802F1678 |
0x00A76398 |
0xFFFFB100 |
0x00000000 |
0x00000004 |
0x00000001 |
0x00000000 |
0x800389BC |
0x00000020 |
0x00000020 |
0x00000015 |
0x800B1D38 |
0x00000000 |
— | — |
| 15 | Fire icon param 2 | 0x000E61E8 |
0x802F1498 |
0x00A5E5F0 |
0xFFFFB100 |
0x00000000 |
0x00000004 |
0x00000000 |
0x00000002 |
0x802F0EBC |
0x00000020 |
0x00000020 |
0x00000002 |
0x800B1D18 |
0x00000000 |
fire-triangle-down |
— |
| 16 | Herbs | 0x000E63F8 |
0x802F16A8 |
0x00BAE3A4 |
0xFFFDC700 |
0x00000000 |
0x00000004 |
0x00000001 |
0x00000000 |
0x800389BC |
0x00000020 |
0x00000020 |
0x00000015 |
0x800B1D38 |
0x00000000 |
— | — |
| ROM base | Callback | Parameter | Slot | Presentation |
|---|---|---|---|---|
0x000E6218 |
0x800388FC |
0x00000000 |
0x00000018 |
0x800B1BAC |
0x000E6248 |
0x8003898C |
0x00000000 |
0x00000019 |
0x800B1D38 |
0x000E6098 |
0x800389EC |
0x00000000 |
0x0000001A |
0x800B1D38 |
0x000E6308 |
0x800389BC |
0x00000000 |
0x00000015 |
0x800B1D38 |
0x000E60F8 |
0x802F0EBC |
0x00000000 |
0x00000000 |
0x800B1D18 |
0x000E60C8 |
0x800389EC |
0x00000000 |
0x0000001A |
0x800B1D38 |
0x000E6368 |
0x8003892C |
0x00000000 |
0x00000016 |
0x800B1D38 |
0x000E6338 |
0x800389BC |
0x00000000 |
0x00000015 |
0x800B1D38 |
0x000E6278 |
0x80038A1C |
0x00000000 |
0x00000014 |
0x800B1D38 |
0x000E61B8 |
0x802F0EBC |
0x00000001 |
0x00000001 |
0x800B1D18 |
0x000E6398 |
0x80038A1C |
0x00000000 |
0x00000014 |
0x800B1D38 |
0x000E62A8 |
0x8003895C |
0x00000000 |
0x00000017 |
0x800B1D38 |
0x000E62D8 |
0x800388FC |
0x00000000 |
0x00000018 |
0x800B1BAC |
0x000E63C8 |
0x800389BC |
0x00000000 |
0x00000015 |
0x800B1D38 |
0x000E61E8 |
0x802F0EBC |
0x00000002 |
0x00000002 |
0x800B1D18 |
0x000E63F8 |
0x800389BC |
0x00000000 |
0x00000015 |
0x800B1D38 |
| Slot | Name | Outer offset | Format | Frames | Pickup users |
|---|---|---|---|---|---|
| 0 | Fire icon, parameter 0 | 0x6C |
embedded-data-bundle | 8 | 1 |
| 1 | Fire icon, parameter 1 | 0x94 |
embedded-data-bundle | 8 | 1 |
| 2 | Fire icon, parameter 2 | 0xBC |
embedded-data-bundle | 8 | 1 |
| 3 | Non-pickup/unknown resource | 0x128 |
zero-terminated-external-list | 7 | 0 |
| 4 | Non-pickup/unknown resource | 0xE4 |
embedded-data-bundle-mode0-selector | 8 | 0 |
| 5 | Unused logical slot | 0 |
empty | — | 0 |
| 6 | Unused logical slot | 0 |
empty | — | 0 |
| 7 | Unused logical slot | 0 |
empty | — | 0 |
| 8 | Unused logical slot | 0 |
empty | — | 0 |
| 9 | Unused logical slot | 0 |
empty | — | 0 |
| 10 | Unused logical slot | 0 |
empty | — | 0 |
| 11 | Unused logical slot | 0 |
empty | — | 0 |
| 12 | Unused logical slot | 0 |
empty | — | 0 |
| 13 | Unused logical slot | 0 |
empty | — | 0 |
| 14 | Unused logical slot | 0 |
empty | — | 0 |
| 15 | Unused logical slot | 0 |
empty | — | 0 |
| 16 | Unused logical slot | 0 |
empty | — | 0 |
| 17 | Unused logical slot | 0 |
empty | — | 0 |
| 18 | Unused logical slot | 0 |
empty | — | 0 |
| 19 | Unused logical slot | 0 |
empty | — | 0 |
| 20 | Extra-life urn | 0x83C |
external-resource-id-bundle | 8 | 2 |
| 21 | Herbs | 0x148 |
embedded-data-bundle | 8 | 4 |
| 22 | Shield | 0x6AC |
external-resource-id-bundle | 8 | 1 |
| 23 | Eye | 0x5E4 |
external-resource-id-bundle | 8 | 1 |
| 24 | Potion | 0x774 |
external-resource-id-bundle | 8 | 2 |
| 25 | Formula | 0x51C |
external-resource-id-bundle | 8 | 1 |
| 26 | Health urn | 0x904 |
external-resource-id-bundle | 4 | 2 |
| Slot | Frame | Record | Storage | Resource/data value | Inferred end | Dimensions words |
|---|---|---|---|---|---|---|
| 0 | 0 | 0x170 |
embedded-data | 0x11A0 |
0x1200 |
0x0006000F / 0x00020007
|
| 0 | 1 | 0x184 |
embedded-data | 0x1200 |
0x1274 |
0x000A000F / 0x00040007
|
| 0 | 2 | 0x198 |
embedded-data | 0x1274 |
0x12F4 |
0x000D000F / 0x00060007
|
| 0 | 3 | 0x1AC |
embedded-data | 0x12F4 |
0x137C |
0x0010000F / 0x00070007
|
| 0 | 4 | 0x1C0 |
embedded-data | 0x137C |
0x13FC |
0x0010000F / 0x00070007
|
| 0 | 5 | 0x1D4 |
embedded-data | 0x13FC |
0x1488 |
0x0010000F / 0x00070007
|
| 0 | 6 | 0x1E8 |
embedded-data | 0x1488 |
0x1518 |
0x000D000F / 0x00050007
|
| 0 | 7 | 0x1FC |
embedded-data | 0x1518 |
0x1598 |
0x000A000F / 0x00040007
|
| 1 | 0 | 0x210 |
embedded-data | 0x1598 |
0x15E0 |
0x0006000C / 0x00020005
|
| 1 | 1 | 0x224 |
embedded-data | 0x15E0 |
0x163C |
0x000B000C / 0x00050005
|
| 1 | 2 | 0x238 |
embedded-data | 0x163C |
0x16AC |
0x000E000C / 0x00060005
|
| 1 | 3 | 0x24C |
embedded-data | 0x16AC |
0x170C |
0x0010000B / 0x00070005
|
| 1 | 4 | 0x260 |
embedded-data | 0x170C |
0x1770 |
0x0012000A / 0x00080004
|
| 1 | 5 | 0x274 |
embedded-data | 0x1770 |
0x17D0 |
0x0010000B / 0x00070005
|
| 1 | 6 | 0x288 |
embedded-data | 0x17D0 |
0x1840 |
0x000E000C / 0x00060005
|
| 1 | 7 | 0x29C |
embedded-data | 0x1840 |
0x18B8 |
0x000B000C / 0x00040005
|
| 2 | 0 | 0x2B0 |
embedded-data | 0x18B8 |
0x1900 |
0x0006000F / 0x00020007
|
| 2 | 1 | 0x2C4 |
embedded-data | 0x1900 |
0x196C |
0x0009000F / 0x00040007
|
| 2 | 2 | 0x2D8 |
embedded-data | 0x196C |
0x19F4 |
0x000D000F / 0x00060007
|
| 2 | 3 | 0x2EC |
embedded-data | 0x19F4 |
0x1A80 |
0x0010000F / 0x00070007
|
| 2 | 4 | 0x300 |
embedded-data | 0x1A80 |
0x1AFC |
0x0010000E / 0x00070007
|
| 2 | 5 | 0x314 |
embedded-data | 0x1AFC |
0x1B80 |
0x0010000F / 0x00070007
|
| 2 | 6 | 0x328 |
embedded-data | 0x1B80 |
0x1C08 |
0x000D000F / 0x00050007
|
| 2 | 7 | 0x33C |
embedded-data | 0x1C08 |
0x1C88 |
0x000A000F / 0x00040007
|
| 3 | 0 | 0x3F0 |
external-resource-id | 0x38E |
`` |
0x00280024 / 0x00160016
|
| 3 | 1 | 0x404 |
external-resource-id | 0x38F |
`` |
0x002E0028 / 0x001A0019
|
| 3 | 2 | 0x418 |
external-resource-id | 0x390 |
`` |
0x00320031 / 0x001C001B
|
| 3 | 3 | 0x42C |
external-resource-id | 0x391 |
`` |
0x00330036 / 0x001D001E
|
| 3 | 4 | 0x440 |
external-resource-id | 0x392 |
`` |
0x00370039 / 0x00210021
|
| 3 | 5 | 0x454 |
external-resource-id | 0x393 |
`` |
0x003A0039 / 0x00230023
|
| 3 | 6 | 0x468 |
external-resource-id | 0x394 |
`` |
0x00380039 / 0x00220026
|
| 4 | 0 | 0x350 |
embedded-data | 0x96C |
0xA70 |
0x00160016 / 0x000A000A
|
| 4 | 1 | 0x364 |
embedded-data | 0xA70 |
0xB8C |
0x00160015 / 0x000A000A
|
| 4 | 2 | 0x378 |
embedded-data | 0xB8C |
0xC7C |
0x00160013 / 0x000A000A
|
| 4 | 3 | 0x38C |
embedded-data | 0xC7C |
0xD5C |
0x00160013 / 0x000A000A
|
| 4 | 4 | 0x3A0 |
embedded-data | 0xD5C |
0xE40 |
0x00160013 / 0x000A000A
|
| 4 | 5 | 0x3B4 |
embedded-data | 0xE40 |
0xF3C |
0x00160014 / 0x000A000B
|
| 4 | 6 | 0x3C8 |
embedded-data | 0xF3C |
0x1074 |
0x00160017 / 0x000A000E
|
| 4 | 7 | 0x3DC |
embedded-data | 0x1074 |
0x11A0 |
0x00160017 / 0x000A000E
|
| 20 | 0 | 0x864 |
external-resource-id | 0x287 |
`` |
0x00110018 / 0x0008000D
|
| 20 | 1 | 0x878 |
external-resource-id | 0x288 |
`` |
0x00110018 / 0x0008000D
|
| 20 | 2 | 0x88C |
external-resource-id | 0x289 |
`` |
0x00100018 / 0x0007000D
|
| 20 | 3 | 0x8A0 |
external-resource-id | 0x28A |
`` |
0x00100018 / 0x0007000D
|
| 20 | 4 | 0x8B4 |
external-resource-id | 0x28B |
`` |
0x000F0018 / 0x0007000D
|
| 20 | 5 | 0x8C8 |
external-resource-id | 0x28C |
`` |
0x000F0018 / 0x0008000D
|
| 20 | 6 | 0x8DC |
external-resource-id | 0x28D |
`` |
0x00100018 / 0x0008000D
|
| 20 | 7 | 0x8F0 |
external-resource-id | 0x28E |
`` |
0x00110018 / 0x0008000D
|
| 21 | 0 | 0x47C |
embedded-data | 0x1C88 |
0x1D6C |
0x00110017 / 0x0008000F
|
| 21 | 1 | 0x490 |
embedded-data | 0x1D6C |
0x1E6C |
0x00110017 / 0x0008000F
|
| 21 | 2 | 0x4A4 |
embedded-data | 0x1E6C |
0x1F7C |
0x00100017 / 0x0007000F
|
| 21 | 3 | 0x4B8 |
embedded-data | 0x1F7C |
0x2094 |
0x00100017 / 0x0008000F
|
| 21 | 4 | 0x4CC |
embedded-data | 0x2094 |
0x21B8 |
0x00110017 / 0x0008000F
|
| 21 | 5 | 0x4E0 |
embedded-data | 0x21B8 |
0x22D8 |
0x00100017 / 0x0007000F
|
| 21 | 6 | 0x4F4 |
embedded-data | 0x22D8 |
0x23E4 |
0x00100017 / 0x0008000F
|
| 21 | 7 | 0x508 |
embedded-data | 0x23E4 |
0x2530 |
0x00100017 / 0x0008000F
|
| 22 | 0 | 0x6D4 |
external-resource-id | 0x26F |
`` |
0x0009001A / 0x0004000D
|
| 22 | 1 | 0x6E8 |
external-resource-id | 0x270 |
`` |
0x0009001A / 0x0004000D
|
| 22 | 2 | 0x6FC |
external-resource-id | 0x271 |
`` |
0x000C001A / 0x0006000D
|
| 22 | 3 | 0x710 |
external-resource-id | 0x272 |
`` |
0x0010001A / 0x0007000D
|
| 22 | 4 | 0x724 |
external-resource-id | 0x273 |
`` |
0x0011001A / 0x0007000D
|
| 22 | 5 | 0x738 |
external-resource-id | 0x274 |
`` |
0x000F001A / 0x0006000D
|
| 22 | 6 | 0x74C |
external-resource-id | 0x275 |
`` |
0x000C001A / 0x0005000D
|
| 22 | 7 | 0x760 |
external-resource-id | 0x276 |
`` |
0x0009001A / 0x0004000D
|
| 23 | 0 | 0x60C |
external-resource-id | 0x267 |
`` |
0x0012000E / 0x00080006
|
| 23 | 1 | 0x620 |
external-resource-id | 0x268 |
`` |
0x0011000E / 0x00070006
|
| 23 | 2 | 0x634 |
external-resource-id | 0x269 |
`` |
0x0010000E / 0x00060006
|
| 23 | 3 | 0x648 |
external-resource-id | 0x26A |
`` |
0x000D000E / 0x00050006
|
| 23 | 4 | 0x65C |
external-resource-id | 0x26B |
`` |
0x000C000E / 0x00050006
|
| 23 | 5 | 0x670 |
external-resource-id | 0x26C |
`` |
0x000D000E / 0x00060006
|
| 23 | 6 | 0x684 |
external-resource-id | 0x26D |
`` |
0x0010000E / 0x00070006
|
| 23 | 7 | 0x698 |
external-resource-id | 0x26E |
`` |
0x0012000E / 0x00080006
|
| 24 | 0 | 0x79C |
external-resource-id | 0x27F |
`` |
0x00110017 / 0x0008000F
|
| 24 | 1 | 0x7B0 |
external-resource-id | 0x280 |
`` |
0x00110017 / 0x0008000F
|
| 24 | 2 | 0x7C4 |
external-resource-id | 0x281 |
`` |
0x00100017 / 0x0007000F
|
| 24 | 3 | 0x7D8 |
external-resource-id | 0x282 |
`` |
0x000F0017 / 0x0007000F
|
| 24 | 4 | 0x7EC |
external-resource-id | 0x283 |
`` |
0x000F0017 / 0x0007000F
|
| 24 | 5 | 0x800 |
external-resource-id | 0x284 |
`` |
0x000F0017 / 0x0007000F
|
| 24 | 6 | 0x814 |
external-resource-id | 0x285 |
`` |
0x00100017 / 0x0008000F
|
| 24 | 7 | 0x828 |
external-resource-id | 0x286 |
`` |
0x00100017 / 0x0008000F
|
| 25 | 0 | 0x544 |
external-resource-id | 0x277 |
`` |
0x000C0018 / 0x0006000D
|
| 25 | 1 | 0x558 |
external-resource-id | 0x278 |
`` |
0x000D0018 / 0x0007000D
|
| 25 | 2 | 0x56C |
external-resource-id | 0x279 |
`` |
0x000E0019 / 0x0008000D
|
| 25 | 3 | 0x580 |
external-resource-id | 0x27A |
`` |
0x000F0019 / 0x0008000D
|
| 25 | 4 | 0x594 |
external-resource-id | 0x27B |
`` |
0x000F0019 / 0x0008000D
|
| 25 | 5 | 0x5A8 |
external-resource-id | 0x27C |
`` |
0x000E0019 / 0x0007000D
|
| 25 | 6 | 0x5BC |
external-resource-id | 0x27D |
`` |
0x000D0019 / 0x0006000D
|
| 25 | 7 | 0x5D0 |
external-resource-id | 0x27E |
`` |
0x000C0018 / 0x0006000D
|
| 26 | 0 | 0x91C |
external-resource-id | 0x28F |
`` |
0x00110011 / 0x00070009
|
| 26 | 1 | 0x930 |
external-resource-id | 0x290 |
`` |
0x00100011 / 0x00060009
|
| 26 | 2 | 0x944 |
external-resource-id | 0x291 |
`` |
0x000F0011 / 0x00060009
|
| 26 | 3 | 0x958 |
external-resource-id | 0x292 |
`` |
0x00100011 / 0x00070009
|
- Stock Fire has 15 empty logical outer slots, selectors
5..19, in the 27-word table. This is Static-confirmed selector-table capacity only. It is not evidence of 15 free physical payload regions, unused RDRAM, or production-safe allocation space, and the foreign-key proof below runtime-tested only one of those logical slots. - Slots
20..26are stock ordinary-item resources. Fire Potion (slot24) uses external IDs0x27F..0x286; Fire Health urn (slot26) uses external IDs0x28F..0x292. Formula, Eye, Shield, Extra-life urn, and Health urn also preserve their exact external-ID records in the table above. Cross-stage storage-form equivalence and external-to-embedded conversion are owned by Global item materialization and solvability. - Early raw Prison-to-Fire identity copy — Rejected / failed in this bounded route: copying the Prison identity without destination resource materialization produced no usable item because the source selector was not meaningful against Fire's stage resource file.
-
Foreign Prison Level 1 key proof — Runtime-confirmed, proof-only: clean stock slot
5was populated with the imported key bundle. The appended descriptor began at file-relative0x2530; appended resource records occupied exact file-relative interval0x2558..0x25F7. The proof resource file expanded from stock size0x2530to0x2BE8, so the full appended proof-only file-relative region is0x2530..0x2BE7. - That expanded proof file was relocated to ROM
0x00F00000..0x00F02BE7. A dedicated native callback at VA0x8008EAEC/ ROM0x0008F6ECawarded Prison Level 1 key inventory ID0x1A. The foreign model rendered and awarded correctly while Fire's original Herbs resource remained intact. - The foreign-key proof reused one existing empty stock selector; it did not add a 28th stock-table entry and did not establish selectors
6..19as runtime-proven import slots. The ROM relocation, appended0x2530..0x2BE7region, and callback placement are disposable proof facts, not production allocations. - External-ID-only Potion transplant — Rejected / failed: an earlier Fire Potion transplant that relied on external-resource IDs produced corrupted graphics. The generalized reason and the successful self-contained conversion strategy are owned by the global materialization page.
- Fire ordinary-enemy stream/resource-loading research is canonically owned by Enemy randomization. This catalog does not duplicate the global constructor/resource-table mechanics or turn the enemy-import proof's arena arithmetic into Fire resource-file allocation claims.
- Current limits remain bounded: the foreign-key proof establishes one imported key/resource/callback composition in Fire, not arbitrary foreign item families, generic destination-safe key/crystal awards, or production-safe reuse of the proof ROM placement. The 15 stock empty selectors remain logical-capacity facts only.
-
Fire key checkpoint suppression v01 — Runtime-confirmed bounded: native Fire callback
0x802F0EBCwas left intact except for NOPing its direct0x80062D60presentation-process JAL at ROM0xE5C28and its pickup-created0x802C18F8 = s0+2respawn-selector store at ROM0xE5C50. On the tested route no key-created checkpoint event appeared; death returned to natural Fire stage start; the stage remained completable through Fire God and next-stage transition. The stock award path remained in place. This is proof evidence for Fire only, not a generic callback implementation. -
Fire selector/location ownership closure (2026-10-01, Static-confirmed): raw Fire overlay file
0x9Dis ROM[0xE1B80,0xE6610)at runtime base0x802ECE30. A direct halfword-store census finds exactly three Fire-overlay writes to selector0x802C18F8: ROM0xE1C78increments the current selector on the overlay initialization path, ROM0xE34B4writes absolute selector5from scene/activation-record subtype2, and the ordinary Fire-key callback at ROM0xE5C50writes absoluteparameter + 2. The superficially similar stores at ROM0xE1C1Cand0xE33D8target overlay-local0x802F18F8, not the global stage selector. Parameter0/1/2therefore binds the three physical Fire key locations to checkpoint targets 2 / 3 / 4. Fire's five-entry stage spawn table begins at0x800A007C: selector-2 coordinates0x002502A0 / 0xFFFE1C00sit at the Triangle-Up pickup region0x0024B2E6 / 0xFFFE4500; selector-3 X is exactly the Two-Bars pickup X0x004FC5F6(spawn Y0x00035400, pickup Y0x00037D00); selector-4 coordinates0x00A5EA94 / 0xFFFF8800sit at the Triangle-Down pickup region0x00A5E5F0 / 0xFFFFB100. Selector5is separately stage-owned: normal Fire entry testsselector == 5at0x80010EF0..0x80010F10, invokes the normal Fire boss helper0x80065428, and skips ordinary Fire overlay initialization. Thus the pickup targets2/3/4and the later boss-route state5have distinct owners. -
Accepted Fire destination-wrapper rule (2026-10-01): logical Fire Triangle-Up / Two-Bars / Triangle-Down rewards are checkpoint-free. Their three physical stock locations retain destination checkpoint targets
2/3/4respectively, but each wrapper must be monotonic: when current Fire selector is below the location target, commit that absolute target and request checkpoint presentation; when current selector is already equal or later, award the randomized logical reward without lowering the selector or replaying the checkpoint. Leave the overlay initialization transition and selector-5 boss-route handoff stock-owned. Fire pickup callback0x802F0EBChas no separate Fire-local credential write to preserve; native completion remains independently owned by0x8007206C. Stock scans IDs0x17..0x19only in the ten-slot LIVE window; the four-box correction preserves its native use-site gate and completion action but searches the contiguous 40-word authoritative backing inventory so the three Fire keys may reside in different boxes. Runtime-confirmed bounded in v03: with the real production box-switch path active, the maintainer manually verified the three Fire keys across separate boxes; the positive control opened the Fire gate and the matched negative control with one key absent did not. The proof bypassed the unchanged physical use-site gate for fast placement, so the confirmed claim is the corrected 40-slot ownership test. - Audio note: one initial v01 run developed crunchy/noisy audio near the second-key area. The symptom did not reproduce in a stock-Fire-callback control, either one-edit split control, or a later v01 retest. It is retained as a non-reproducible observation, not a confirmed Fire-v01 regression.
The TEST LAB line reused Fire's native resource-file architecture as a destination materialization harness. These are proof-local runtime findings; they do not change stock Fire ownership.
- v26 Runtime-confirmed the existing stock-empty selector-5 Prison Level-1-key import inside TEST LAB beside native Herbs controls.
- v27 Runtime-confirmed a ten-distinct-item composition while preserving native Fire selectors and filling multiple stock-empty Fire selector entries with complete foreign embedded bundles.
- v31/v33 loaded a larger Fire resource containing the broader imported bundle set and successfully instantiated 15 non-Earth pickups; Earth actors remained deferred.
- native Fire key selectors/resources were intentionally left untouched in the successful low-RAM static-poster proofs, which is why the three Fire keys continued to animate while imported keys were static.
- Fortress crystal records require their crystal-specific presentation pointer
0x800B1BD0; the generic Fire-key presentation shell used in v27 made those crystals look wrong even when their imported image data was present. - stock-empty selector entries are logical selector capacity only. The successful proofs relocated/expanded the file for payload storage; they do not establish free bytes behind a zero selector.
The detailed chronology belongs to TEST LAB proof history, and production materializer semantics belong to Global item materialization and solvability.
- Stage catalogs — shared schema, notation, safety rules, and eight-stage index.
-
Data structures and encodings — ordinary
0x30-byte record grammar. - Resource and overlay system — global file-table, loader, overlay, and selector/resource grammar.
- Memory and allocation map — literal ROM/RDRAM ownership, lifecycle, and proof/production allocation boundaries.
- Address and patch-site registry — exact guarded ROM edit sites.
- Pickups and stage-local randomization — current production ordinary-pickup behavior and modeled stage dependencies.
- Global item materialization and solvability — extension-selector/materializer mechanics, external-to-embedded interpretation, planner/deduplication, solver rules, and full proof chronology.
- Persistence, inventory, and lifecycle — collected-state persistence and stage-transition lifecycle.
- Enemy randomization — Fire ordinary-enemy stream/resource-import architecture and proof history.
MKMSZR current documentation · Wiki source: wiki/ · Evidence/archive: ChatGPT Library MKMSZR Research · Product source: smeagol44/MKMSZ-Randomizer
Orientation / Project
- Home
- Contributor start here
- Project status
- 1.0 requirements and roadmap
- Runtime validation status
- Architecture overview
- Research methodology and evidence
- Glossary
Core Technical Reference
- Core runtime and native payload
- Memory and allocation map
- Function registry
- Address and patch-site registry
- Data structures and encodings
- Resource and overlay system
- Address quick reference
- Testing and CI
Randomizer / Product Systems
- Stage flow and selector
- Pickups and stage-local randomization
- Global item materialization and solvability
- Persistence, inventory and lifecycle
- Lifecycle static closure / unbuilt v05
- XP and progression
- Native HUD and UI
- Presentation and branding
- Audio system
- Palette and recoloring
- Web patcher and product
Stage Reference
Gameplay / Enemy / Donor Research
- Enemy randomization
- Player actions and special moves
- MKT compatibility overview
- MKT adapter primitives
- MKT fighter asset translation
- Sub-Zero ↔ Sektor animation mapping
- Sektor takeover proof history
- Toasty audio research
- Toasty visual research
- PS1 research
- N64–PS1 comparison
- N64 -> PS1 port planning and strategy
History / Failures / Superseded Material