Difference between revisions of "Shippu Mahou Daisakusen/Reverse engineering notes"
Jump to navigation
Jump to search
(Initial draft) |
m |
||
| Line 1: | Line 1: | ||
TODO: clean up addresses below pointing directly to bytes when code is operating on them as words. e.g., P1 lives @ 100555.b is probably referenced in the code as 100554.w | TODO: clean up addresses below pointing directly to bytes when code is operating on them as words. e.g., P1 lives @ 100555.b is probably referenced in the code as 100554.w | ||
| − | 1006C6 - seems to consistently hold boss HP value when one is on screen | + | * 1006C6 - seems to consistently hold boss HP value when one is on screen |
| − | 1006AA - base address of the boss enemy object | + | * 1006AA - base address of the boss enemy object |
| − | object+$04 - animation frame | + | * object+$04 - animation frame |
| − | object+$06 - animation related flags (sprite rotation, hit flash and/or palette?, etc.) | + | * object+$06 - animation related flags (sprite rotation, hit flash and/or palette?, etc.) |
| − | object+$08 - y-coord | + | * object+$08 - y-coord |
| − | object+$0A - x-coord | + | * object+$0A - x-coord |
| − | object+$1C - HP value for enemies. Damage value for projectiles/player, to apply against target enemy up to their specified durability cap | + | * object+$1C - HP value for enemies. Damage value for projectiles/player, to apply against target enemy up to their specified durability cap |
| − | object+$36 - i-frames | + | * object+$36 - i-frames |
| − | Code @ 13D78 - damage calculation for durable enemies | + | * Code @ 13D78 - damage calculation for durable enemies |
| − | Code @ 13F6A - damage calculation for zakos (uncapped) | + | * Code @ 13F6A - damage calculation for zakos (uncapped) |
| − | 100551 - current play state? | + | * 100551 - current play state? |
| − | 100553 - current play flags? | + | * 100553 - current play flags? |
| − | 100555 - current P1 lives | + | * 100555 - current P1 lives |
| − | 10058C = current calculated rank | + | * 10058C = current calculated rank |
| − | 10058E = base rank for current stage | + | * 10058E = base rank for current stage |
| − | 100590 = survival rank (resets on stage start or player death) | + | * 100590 = survival rank (resets on stage start or player death) |
| − | 1006A4 = survival rank increment timer (does not reset on stage start) | + | * 1006A4 = survival rank increment timer (does not reset on stage start) |
| − | 102C4A + $44 (102C8E) = base scroll speed? | + | * 102C4A + $44 (102C8E) = base scroll speed? |
| − | 102C4A + $46 (102C90) = | + | * 102C4A + $46 (102C90) = |
| − | 102C4A + $22 (102c6c) = speedometer? | + | * 102C4A + $22 (102c6c) = speedometer? |
| − | 1012DA = P1 sub-weapon type | + | * 1012DA = P1 sub-weapon type |
| − | 1012D8 = P1 sub-weapon power | + | * 1012D8 = P1 sub-weapon power |
| − | 1005B1 - current stage | + | * 1005B1 - current stage |
| − | 1005B3 - current track | + | * 1005B3 - current track |
| − | 1005B5 - current loop (0 = first, 1 = second) | + | * 1005B5 - current loop (0 = first, 1 = second) |
| − | 100656 - table of P1 track times | + | * 100656 - table of P1 track times |
| − | 10066E - table of track selections | + | * 10066E - table of track selections |
Revision as of 03:42, 2 April 2026
TODO: clean up addresses below pointing directly to bytes when code is operating on them as words. e.g., P1 lives @ 100555.b is probably referenced in the code as 100554.w
- 1006C6 - seems to consistently hold boss HP value when one is on screen
- 1006AA - base address of the boss enemy object
- object+$04 - animation frame
- object+$06 - animation related flags (sprite rotation, hit flash and/or palette?, etc.)
- object+$08 - y-coord
- object+$0A - x-coord
- object+$1C - HP value for enemies. Damage value for projectiles/player, to apply against target enemy up to their specified durability cap
- object+$36 - i-frames
- Code @ 13D78 - damage calculation for durable enemies
- Code @ 13F6A - damage calculation for zakos (uncapped)
- 100551 - current play state?
- 100553 - current play flags?
- 100555 - current P1 lives
- 10058C = current calculated rank
- 10058E = base rank for current stage
- 100590 = survival rank (resets on stage start or player death)
- 1006A4 = survival rank increment timer (does not reset on stage start)
- 102C4A + $44 (102C8E) = base scroll speed?
- 102C4A + $46 (102C90) =
- 102C4A + $22 (102c6c) = speedometer?
- 1012DA = P1 sub-weapon type
- 1012D8 = P1 sub-weapon power
- 1005B1 - current stage
- 1005B3 - current track
- 1005B5 - current loop (0 = first, 1 = second)
- 100656 - table of P1 track times
- 10066E - table of track selections