Skip to content

Remove Artificial Save Delay

Daniel Harding edited this page Jun 29, 2022 · 8 revisions

Pokemon Red saves quicker than Pokemon Crystal on its own. However, it, like Crystal, uses an artificial delay. This is a much simpler fix than Pokemon Crystal's, and here it is:

Open up engine/menus/save.asm and scroll down to about line 143, and you will have to change these lines:

SaveSAV: 
...

.save
	call SaveSAVtoSRAM
	coord hl, 1, 13
	lb bc, 4, 18
	call ClearScreenArea
	coord hl, 1, 14
-	ld de, NowSavingString
-	call PlaceString
-	ld c, 120
-	call DelayFrames
	ld hl, GameSavedText
	call PrintText
	ld a, SFX_SAVE
	call PlaySoundWaitForCurrent
	call WaitForSoundToFinish
-	ld c, 30
+	ld c, 10 ; Shorter time than before
	jp DelayFrames

-NowSavingString:
-	db "Now saving...@"

SaveSAVConfirm:
	call PrintText
	coord hl, 0, 7
...

What that does is it removes the part of the code where the "Now saving..." text is drawn, as well as removing the delay during which that text is displayed. It also shortens the delay for after it says "Player saved the game!"

Also, you could edit engine/menus/main_menu.asm, line 395:

	ld [H_AUTOBGTRANSFERENABLED], a
-	ld c, 30
+	ld c, 5 ; shorter time while displaying stats
	jp DelayFrames

This part makes the game pause for a shorter time after displaying player stats before it saves. If you feel like this time is too short, you can change that 5 we added into a higher number.

Optionally, if you want to remove the "Would you like to save the game?" part, you could also remove these:

engine/menus/save.asm:

SaveSAV: 
	farcall PrintSaveScreenText
-	ld hl, WouldYouLikeToSaveText
-	call SaveSAVConfirm
-	and a   ;|0 = Yes|1 = No|
-	ret nz
	ld a, [wSaveFileStatus]
	dec a

along with this (line 189):

-WouldYouLikeToSaveText:
-	TX_FAR _WouldYouLikeToSaveText
-	db "@"

and data/text/text_3.asm (line 6):

-_WouldYouLikeToSaveText::
-	text "Would you like to"
-	line "SAVE the game?"
-	done

This optional change completely removes the "Would you like to SAVE the game?" choice, as well as the text and text pointer for it.

Done! The game should save quickly without going through that useless menu. Enjoy!

Clone this wiki locally