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.