summaryrefslogtreecommitdiff
path: root/engine/battle/scale_sprites.asm
diff options
context:
space:
mode:
authorluckytyphlosion <alan.rj.huang@gmail.com>2015-11-29 15:09:32 -0500
committerluckytyphlosion <alan.rj.huang@gmail.com>2015-11-29 15:09:32 -0500
commit6dc1f939e1e97563928c22950d8fa618d892c32d (patch)
tree9f9f19eac7a40d9d66fb259da8b1e377826360be /engine/battle/scale_sprites.asm
parent2e3b58e6207997315cd69bf50968494b3b2b982b (diff)
bankB misc functions
ScaleSpriteByTwo, DisplayEffectiveness and CheckIfMoveIsKnown
Diffstat (limited to 'engine/battle/scale_sprites.asm')
-rw-r--r--engine/battle/scale_sprites.asm17
1 files changed, 12 insertions, 5 deletions
diff --git a/engine/battle/scale_sprites.asm b/engine/battle/scale_sprites.asm
index ed227984..3d4c0e0b 100644
--- a/engine/battle/scale_sprites.asm
+++ b/engine/battle/scale_sprites.asm
@@ -1,7 +1,14 @@
; scales both uncompressed sprite chunks by two in every dimension (creating 2x2 output pixels per input pixel)
; assumes that input sprite chunks are 4x4 tiles, and the rightmost and bottommost 4 pixels will be ignored
; resulting in a 7*7 tile output sprite chunk
-ScaleSpriteByTwo: ; 2fe40 (b:7e40)
+ScaleSpriteByTwo: ; 2fd79 (b:7d79)
+ ld a, $0
+ call SwitchSRAMBankAndLatchClockData
+ call ScaleSpriteByTwo_
+ call PrepareRTCDataAndDisableSRAM
+ ret
+
+ScaleSpriteByTwo_: ; 2fd85 (b:7d85)
ld de, S_SPRITEBUFFER1 + (4*4*8) - 5 ; last byte of input data, last 4 rows already skipped
ld hl, S_SPRITEBUFFER0 + SPRITEBUFFERSIZE - 1 ; end of destination buffer
call ScaleLastSpriteColumnByTwo ; last tile column is special case
@@ -10,7 +17,7 @@ ScaleSpriteByTwo: ; 2fe40 (b:7e40)
ld hl, S_SPRITEBUFFER1 + SPRITEBUFFERSIZE - 1 ; end of destination buffer
call ScaleLastSpriteColumnByTwo ; last tile column is special case
-ScaleFirstThreeSpriteColumnsByTwo: ; 2fe55 (b:7e55)
+ScaleFirstThreeSpriteColumnsByTwo: ; 2fd9a (b:7d9a)
ld b, $3 ; 3 tile columns
.columnLoop
ld c, 4*8 - 4 ; $1c, 4 tiles minus 4 unused rows
@@ -39,7 +46,7 @@ ScaleFirstThreeSpriteColumnsByTwo: ; 2fe55 (b:7e55)
jr nz, .columnLoop
ret
-ScaleLastSpriteColumnByTwo: ; 2fe7d (b:7e7d)
+ScaleLastSpriteColumnByTwo: ; 2fdc2 (b:7dc2)
ld a, 4*8 - 4 ; $1c, 4 tiles minus 4 unused rows
ld [H_SPRITEINTERLACECOUNTER], a
ld bc, -1
@@ -61,7 +68,7 @@ ScaleLastSpriteColumnByTwo: ; 2fe7d (b:7e7d)
; scales the given 4 bits in a (4x1 pixels) to 2 output bytes (8x2 pixels)
; hl: destination pointer
; bc: destination pointer offset (added after the two bytes have been written)
-ScalePixelsByTwo: ; 2fe97 (b:7e97)
+ScalePixelsByTwo: ; 2fddc (b:7ddc)
push hl
and $f
ld hl, DuplicateBitsTable
@@ -78,7 +85,7 @@ ScalePixelsByTwo: ; 2fe97 (b:7e97)
ret
; repeats each input bit twice
-DuplicateBitsTable: ; 2fea8 (b:7ea8)
+DuplicateBitsTable: ; 2fded (b:7ded)
db $00, $03, $0c, $0f
db $30, $33, $3c, $3f
db $c0, $c3, $cc, $cf