diff --git a/Overworld/custom_gfx.asm b/Overworld/custom_gfx.asm index 8c1de07..72b6faa 100644 --- a/Overworld/custom_gfx.asm +++ b/Overworld/custom_gfx.asm @@ -12,6 +12,7 @@ CheckForChangeGraphicsNormalLoadBoat: LDA $8A : CMP.b #$30 : BNE .boat_area PHB : PHK : PLB JSR ApplyGraphics1 + JSR ApplyGraphics2 PLB RTL .boat_area @@ -56,6 +57,26 @@ ApplyGraphics1: incbin gfx/boat.bin } +ApplyGraphics2: +{ + REP #$20 ; A = 16, XY = 8 + LDX #$80 : STX $2115 ; Set the video port register every time we write it increase by 1 + LDA #$5000 : STA $2116 ; Destination of the DMA $7800 in vram <- this need to be divided by 2 + LDA #$1801 : STA $4300 ; DMA Transfer Mode and destination register + ; "001 => 2 registers write once (2 bytes: p, p+1)" + LDA.w #AdditionalBitmap : STA $4302 ; Source address where you want gfx from ROM + LDX.b #AdditionalBitmap>>16 : STX $4304 + LDA #$2000 : STA $4305 ; size of the transfer 4 sheets of $800 each + LDX #$01 : STX $420B ; Do the DMA + + SEP #$30 + + RTS + + AdditionalBitmap: + incbin gfx/boat2.bin +} + ; ============================================================================== ApplyKorokSpriteSheets: diff --git a/Overworld/gfx/boat2.bin b/Overworld/gfx/boat2.bin new file mode 100644 index 0000000..b200810 Binary files /dev/null and b/Overworld/gfx/boat2.bin differ