Skip to content
Xillicis edited this page Oct 21, 2022 · 5 revisions

This tutorial details how to permanently turn off the SHIFT battle style, or in other words, making the SET battle style permanent.

Open the file engine/menus/main_menu.asm and delete (or comment out) the following line.

...
.cursorInBattleStyle
        ld a, [wOptionsBattleStyleCursorX] ; battle style cursor X coordinate
-       xor $0b ; toggle between 1 and 10
        ld [wOptionsBattleStyleCursorX], a
        jp .eraseOldMenuCursor
...

This disables the ability to move the cursor in the "Battle Style" options. Next, head down a bit more and delete the word SHIFT and replace it with 5 spaces to keep SET in the correct position.

...
BattleStyleOptionText:
        db   "BATTLE STYLE"
-       next " SHIFT    SET@"
+       next "          SET@"
...

This removes the presence of SHIFT in the options menu. Next, when you start the game for the first time, you may remember that the cursor is automatically set to SHIFT mode, so we need to initialize it to SET mode. Make the following change to correct this.

...
.storeBattleAnimationCursorX
        ld [wOptionsBattleAnimCursorX], a ; battle animation cursor X coordinate
        hlcoord 0, 8
        call .placeUnfilledRightArrow
        sla c
-       ld a, 1
+       ld a, 10
        jr nc, .storeBattleStyleCursorX
        ld a, 10
...

Finally the initial value of [wOptionsBattleStyleCursorX] is also automatically set for SHIFT mode. So we force the SET battle style with the following change

...
.battleStyleSet
        set 6, d
        jr .storeOptions
.battleStyleShift
-       res 6, d
+       set 6, d
.storeOptions
        ld a, d
        ld [wOptions], a
...

Lastly, we remove the switching mechanic from the game engine so that its never called. Head to engine/battle/core.asm and make the change,

...
        cp LINK_STATE_BATTLING
 	jr z, .next4
 	ld a, [wOptions]
	bit BIT_BATTLE_SHIFT, a
-	jr nz, .next4
+	jr .next4 ; Always skip switch request
 	ld hl, TrainerAboutToUseText
 	call PrintText
 	hlcoord 0, 7
...

That's it. Now you can force yourself and others to play the real way.

Clone this wiki locally