Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Gecko Code (NTSC):
- Base:
- 064FCE3C 0000000C
- 00000003 0000000F
- 00000002 00000000
- 004FCE2F 00000000
- 004FCE5F 00000032
- 064FCF00 00000016
- 5820506F 733A2025
- 66207C20 5A20506F
- 733A2025 66000000
- 064FCF18 00000016
- 58204D61 783A2025
- 66207C20 5A204D61
- 783A2025 66000000
- 004FCEA6 000000FF
- Logic:
- 00001810-00001814 target registers
- 2A3DD31A 00000060
- 0400180C 00000000
- E2000001 00000000
- 2000180C 00000000
- 283DD31A 00000060
- 0400180C 00000001
- 204FCE64 00000000
- 004FCE64 00000001
- E2100000 00000000
- 004FCE64 00000000
- 00001810 00070000 --clear display floats
- 00001818 00070000 --clear temp floats
- 04001820 00000000 --clear counter
- E2000003 00000000
- 0400644C 60000000
- 223DCE54 00000000 --if link ptr set
- 204FCE64 00000001 --if console visible
- 0400644C 4BFFCA4D --set hook
- 48000000 803DCE54
- 20001818 00000000 -temp floats not yet set
- 92210004 00000000
- 92210005 00000008
- E2000001 00000000
- 24001820 0000001D
- 84210004 00001810
- 84210005 00001814
- 04001820 00000000
- 92210004 00000000
- 92210005 00000008
- E2000003 00000000
- -check every 30 frames, reset counter and reset temp floats to curr pos, copy temp floats to display floats
- Assembly:
- 06002E98 000000EC
- 9421FFF0 7C0802A6
- 90010014 3CA0803D
- 38A5672A 38A5672A
- 80A50000 C0050000
- FC200090 FC800840
- C0450008 3C80804F
- 38846780 38846780
- 3C60804F 38636735
- 38636734 48363601
- 3CA08000 38A50C08
- 38A50C08 C0050000
- FC200090 FC800840
- C0450004 3C80804F
- 3884678C 3884678C
- 3C60804F 38636753
- 38636754 483635C9
- 3C608000 38630C10
- 38630C10 80830000
- 38840001 90830000
- 3C608000 38630C0C
- 38630C0C C0030000
- C0230004 3C80803D
- 3884672A 3884672A
- 80840000 C0440000
- C0640008 FC020040
- 40810008 D0430000
- FC030840 40810008
- D0630004 80010014
- 7C0803A6 38210010
- 4E800020 00000000
- Memory Map Doc:
- geckocodes.org/index.php?arsenal=1#E2
- 0x80001800 - 0x80002fff unused/reserved (*)
- Code (Gekko Assembler):
- https://github.com/CryZe/GekkoAssembler/blob/master/README.md
- https://github.com/CryZe/GekkoAssembler/blob/master/Documentation/README.md
- 0x804FCE3C:
- .u32 3 ; Console X Coordinate
- .u32 15 ; Console Y Coordinate
- .u32 2 ; Console Max Line Count
- 0x804FCE2F:
- .u8 0 ; Console Scroll Amount
- 0x804FCE5F:
- .u8 50 ; Console Opacity
- 0x804FCF00:
- .str "X Pos: %f | " ; Line 1 X Text ; gets written to 0x804FCE69
- .str "Z Pos: %f" ; Line 1 Z Text
- .u8 0x0 ; Null Terminator
- 0x804FCF18:
- .str "X Max: %f | " ; Line 2 X Max ; gets written to 0x804FCEA7
- .str "Z Max: %f" ; Line 2 Z Max
- .u8 0x0 ; Null Terminator
- 0x804FCEA6:
- .u8 0xFF ; Line Break 1
- 0x803DD31A:
- !u16unequal 0x60 ; check for R+L NOT pressed
- 0x8000180C:
- .u32 0x00 ; status flag to 0
- !end
- 0x8000180C:
- !u32equal 0x0 ; check for status flag = 0
- 0x803DD31A:
- !u16equal 0x0060 ; check for R+L pressed
- 0x8000180C:
- .u32 0x01 ; status flag to 1
- 0x804FCE64:
- !u8equal 0x0 ; check for console not visible
- 0x8000180C:
- .u32 0x02 ; status flag to 2
- 0x804FCE64:
- .u8 1 ; Console Visible
- !end
- 0x8000180C:
- !u32unequal 0x02 ; check for status flag not 2
- 0x804FCE64:
- .u8 0 ; Console not Visible
- !end
- !end
- !end
- 0x803DCE54:
- !u32unequal 0x0
- 0x8000644C:
- bl 0x80002E98 ; Inject the function call
- !end
- 0x803DCE54:
- !u32equal 0x0
- 0x8000644C:
- nop ; remove the function call since link ptr is not set
- !end
- 0x80002E98:
- stwu sp, -0x10 (sp)
- mflr r0
- stw r0, 0x14 (sp)
- ; sprintf x/z pos (0x804FCE69, "X Pos: %f | Z Pos: %f" /*804FCF00*/, 0x0 (803DCE54), 0x8 (803DCE54))
- lis r5, 0x803D
- addi r5, r5, 0x672A
- addi r5, r5, 0x672A
- lwz r5, 0x0 (r5)
- lfs fr0, 0x0 (r5)
- fmr fr1, fr0
- fcmpo cor1, fr0, fr1
- lfs fr2, 0x8 (r5)
- lis r4, 0x804F
- addi r4, r4, 0x6780
- addi r4, r4, 0x6780
- lis r3, 0x804F
- addi r3, r3, 0x6735
- addi r3, r3, 0x6734
- bl 0x803664dc
- ; sprintf x/z change (0x804FCEA7, "X Change: %f | Z Change: %f" /*804FCF18*/, 80001810, 80001814)
- lis r5, 0x8000
- addi r5, r5, 0xC08
- addi r5, r5, 0xC08
- lfs fr0, 0x0 (r5)
- fmr fr1, fr0
- fcmpo cor1, fr0, fr1
- lfs fr2, 0x4 (r5)
- lis r4, 0x804F
- addi r4, r4, 0x678C
- addi r4, r4, 0x678C
- lis r3, 0x804F
- addi r3, r3, 0x6753
- addi r3, r3, 0x6754
- bl 0x803664dc
- lis r3, 0x8000
- addi, r3, r3, 0xC10
- addi, r3, r3, 0xC10
- lwz, r4, 0x0 (r3)
- addi, r4, r4, 0x01
- stw, r4, 0x0 (r3)
- lis r3, 0x8000
- addi, r3, r3, 0xC0C
- addi, r3, r3, 0xC0C
- lfs fr0, 0x0(r3)
- lfs fr1, 0x4(r3)
- lis r4, 0x803D
- addi r4, r4, 0x672A
- addi r4, r4, 0x672A
- lwz r4, 0x0 (r4)
- lfs fr2, 0x0 (r4)
- lfs fr3, 0x8 (r4)
- fcmpo crb0, fr2, fr0
- ble 0x08 (0x40810008)
- stfs, fr2, 0x0 (r3)
- fcmpo crb0, fr3, fr1
- ble 0x08 (0x40810008)
- stfs, fr3, 0x4 (r3)
- lwz r0, 0x14 (sp)
- mtlr r0
- addi sp, sp, 16
- blr
- BACKUP:
- 06002E98 000000EC
- 9421FFF0 7C0802A6
- 90010014 3CA0803D
- 38A5672A 38A5672A
- 80A50000 C0050000
- FC200090 FC800840
- C0450008 3C80804F
- 38846780 38846780
- 3C60804F 38636735
- 38636734 48363601
- 3CA08000 38A50C08
- 38A50C08 C0050000
- FC200090 FC800840
- C0450004 3C80804F
- 3884678C 3884678C
- 3C60804F 38636753
- 38636754 483635C9
- 3C600800 38630C10
- 38630C10 80830000
- 38840001 90830000
- 3C608000 38630C0C
- 38630C0C C0030000
- C0230004 3C80803D
- 3884672A 3884672A
- 80840000 C0440000
- C0640008 FC801040
- 40810008 D0430000
- FC811840 40810008
- D0630004 80010014
- 7C0803A6 38210010
- 4E800020 00000000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement