diff --git a/Dungeons/dungeon_maps.bin b/Dungeons/dungeon_maps.bin new file mode 100644 index 0000000..4f60a54 Binary files /dev/null and b/Dungeons/dungeon_maps.bin differ diff --git a/Dungeons/dungeons.asm b/Dungeons/dungeons.asm index eb54611..f24a1e2 100644 --- a/Dungeons/dungeons.asm +++ b/Dungeons/dungeons.asm @@ -57,6 +57,29 @@ incsrc "Collision/GlobalCollisionTables.asm" pullpc ; Bank 0x33 +TransferDungeonMapGfx: +{ + REP #$20 ; A = 16, XY = 8 + + LDX #$80 : STX $2100 ; turn the screen off (required) + 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 $5800 in vram <- this need to be divided by 2 + LDA #$1801 : STA $4300 ; DMA Transfer Mode and destination register + LDA.w #MapGfx : STA $4302 ; Source address where you want gfx from ROM + LDX.b #MapGfx>>16 : STX $4304 + LDA #$2000 : STA $4305 ; size of the transfer 4 sheets of $800 each + LDX #$01 : STX $420B ; Do the DMA + + LDX #$0F : STX $2100 ; Turn the screen back on + SEP #$30 + + LDA.b #$09 : STA.b $14 + RTL + + MapGfx: + incbin dungeon_maps.bin +} + NewWaterOverlayData: ; Horizontal db $1B, $A1, $C9 ; 0x0C9: Flood water (medium) ⇲ | { 06, 28 } | Size: 0D @@ -75,6 +98,11 @@ print "End of dungeons.asm ", pc pushpc +; Transfer Dungeon Map Graphics +; Module0E_03_01_00_PrepMapGraphics +org $0AE152 +JSL TransferDungeonMapGfx + ; RoomTag_GetHeartForPrize ; Swap LW/DW check on spawn falling prize org $01C71B