Back Sprites 48x48 (Like GEN 2) - pret/pokered GitHub Wiki

Add this single line to home\pics.asm:

...
; de: destination location
LoadMonFrontSprite::
	push de
	ld hl, wMonHFrontSprite - wMonHeader
	call UncompressMonSprite
	ld hl, wMonHSpriteDim
	ld a, [hli]
+LoadUncompressedBackSprite::
	ld c, a
	pop de
	; fall through

; postprocesses uncompressed sprite chunks to a 2bpp sprite and loads it into video ram
; calculates alignment parameters to place both sprite chunks in the center of the 7*7 tile sprite buffers
; de: destination location
; a,c:  sprite dimensions (in tiles of 8x8 each)
LoadUncompressedSpriteData::
...

Make these changes to HoFLoadPlayerPics: in engine\movie\hall_of_fame.asm:

...
	ld de, RedPicBack
	ld a, BANK(RedPicBack)
	call UncompressSpriteFromDE
-	predef ScaleSpriteByTwo
+	ld a, $66
	ld de, vBackPic
-	call InterlaceMergeSpriteBuffers
+	push de
+	jp LoadUncompressedBackSprite
+	nop
	ld c, $1

HoFLoadMonPlayerPicTileIDs:
...

Also make these changes to engine\battle\core.asm:

...
	ld a, BANK(RedPicBack)
	ASSERT BANK(RedPicBack) == BANK(OldManPicBack)
	call UncompressSpriteFromDE
-	predef ScaleSpriteByTwo
+	call LoadBackSpriteUnzoomed
	ld hl, wShadowOAM
	xor a
	ldh [hOAMTile], a ; initial tile number
...
...
	ld e, a
	dec b
	jr nz, .loop
-	ld de, vBackPic
-	call InterlaceMergeSpriteBuffers
	ld a, $a
	ld [MBC1SRamEnable], a
	xor a
...
...
	call ClearScreenArea
	ld hl,  wMonHBackSprite - wMonHeader
	call UncompressMonSprite
-	predef ScaleSpriteByTwo
-	ld de, vBackPic
-	call InterlaceMergeSpriteBuffers ; combine the two buffers to a single 2bpp sprite
+	call LoadBackSpriteUnzoomed
	ld hl, vSprites
	ld de, vBackPic
	ld c, (2*SPRITEBUFFERSIZE)/16 ; count of 16-byte chunks to be copied
...
...

+LoadBackSpriteUnzoomed:
+	ld a, $66
+	ld de, vBackPic
+	push de
+	jp LoadUncompressedBackSprite

Replace all in-battle 32×32 back sprites with a compatible 48×48 version. This includes Red at gfx/player/redb.png, The Old Man at gfx/battle/oldmanb.png, all 151 Pokémon species backsprites at gfx/pokemon/back, as well as any others added such as if you added Oak's backsprite as it is in Yellow or any additionally added Pokémon species.

Now that each backsprite now contains 20 additional tiles (more than doubling their size from 16 to 36), There is a very good chance that the storage banks at ROMX will overflow without re-organizing the sprites. gfx/pics.asm will need to be edited to account for this. I highly recommend following this tutorial to make this significantly easier. This tutorial adds an additional storage section/bank "Pics 7", but you may need to add more which you can simply name sequentially "Pics 8", etc.