Guides:Mail Writer Codes: Difference between revisions
→Setting up an OAM DMA hijack
Line 1,828:
===Setting up an OAM DMA hijack===
Every frame, the game will execute an OAM DMA routine. The instructions for this routine is kept in HRAM, in the area between $FF80 and $FF89. By removing the final return instruction and inserting a custom jump instruction, the game will execute up to 15 bytes of custom code.
In addition, the OAM DMA hijack for Crystal contains additional logic to prevent custom code from being executed when the current active WRAM bank isn't WRAM bank 01.
This code only enables the OAM DMA hijack and will not have any immediately visible effects on gameplay. After executing this code, another code needs to be used to insert a custom byte code so that it can be executed on every frame. Codes that do this can be found further on in this section.
Line 1,840 ⟶ 1,842:
||
01 03 00 11 8A FF 21 6B DD CD 1A 31 3E C9 EA 21
DF AF EA 89 FF C9 C3 01 DF
||
01
C0
C0 C3 00 C0
|-
! scope="row" | French
||
01 03 00 11 8A FF 21 6B DD CD 2C 31 3E C9 EA 21
DF AF EA 89 FF C9 C3 01 DF
||
01
C0
C0 C3 00 C0
|-
! scope="row"| German
||
01 03 00 11 8A FF 21 6B DD CD 47 31 3E C9 EA 21
DF AF EA 89 FF C9 C3 01 DF
||
01
C0
C0 C3 00 C0
|-
! scope="row"| Italian
||
01 03 00 11 8A FF 21 6B DD CD 3F 31 3E C9 EA 21
DF AF EA 89 FF C9 C3 01 DF
||
01
C0
C0 C3 00 C0
|-
! scope="row"| Spanish
||
01 03 00 11 8A FF 21 6B DD CD 3E 31 3E C9 EA 21
DF AF EA 89 FF C9 C3 01 DF
||
01
C0
C0 C3 00 C0
|-
! scope="row"| Japanese
||
01 03 00 11 8A FF 21 DC DC CD D6 30 3E C9 EA 21
DF AF EA 89 FF C9 C3 01 DF
||
01
C0
C0 C3 00 C0
|-
! scope="row"| Korean
||
01 03 00 11 8A FF 21 68 DE CD C2 31 3E C9 EA 12
D8 AF EA 89 FF C9 C3 F2 D7
|}
|