summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gfx/tilesets/minecart/1.2bpp1
-rw-r--r--gfx/tilesets/minecart/10.2bpp1
-rw-r--r--gfx/tilesets/minecart/2.2bpp1
-rw-r--r--gfx/tilesets/minecart/3.2bpp1
-rw-r--r--gfx/tilesets/minecart/4.2bpp1
-rw-r--r--gfx/tilesets/minecart/5.2bpp1
-rw-r--r--gfx/tilesets/minecart/6.2bpp1
-rw-r--r--gfx/tilesets/minecart/7.2bpp1
-rw-r--r--gfx/tilesets/minecart/8.2bpp1
-rw-r--r--gfx/tilesets/minecart/9.2bpp1
-rw-r--r--main.asm119
11 files changed, 117 insertions, 12 deletions
diff --git a/gfx/tilesets/minecart/1.2bpp b/gfx/tilesets/minecart/1.2bpp
new file mode 100644
index 000000000..3bb46c953
--- /dev/null
+++ b/gfx/tilesets/minecart/1.2bpp
@@ -0,0 +1 @@
+€ÿ¿ÿ¿ÿ¿ÿ¿ÿ¿ÿ¿ÿ¿ÿÀ_ÿ_ßßßßßà?/ÿ/?ï?¯ï?¯ï?ðÿ÷·_÷—÷ø ÿ ë»Oû›oû \ No newline at end of file
diff --git a/gfx/tilesets/minecart/10.2bpp b/gfx/tilesets/minecart/10.2bpp
new file mode 100644
index 000000000..a1af10a55
--- /dev/null
+++ b/gfx/tilesets/minecart/10.2bpp
@@ -0,0 +1 @@
+?ÿ_ÿ¿ÿ_ÿ¿ÿÿÿÿÿÿÿÿ¯ÿ_ÿ¯ÿ_ÿÿÿÿÿÿÿÿWÿ¯ÿ×ÿ¯ÿÿÿÿÿÿÿ«ÿWÿëÿWÿ¿ÿÿÿÿÿÿUÿ«ÿuÿ«ÿßÿÿÿÿÿ \ No newline at end of file
diff --git a/gfx/tilesets/minecart/2.2bpp b/gfx/tilesets/minecart/2.2bpp
new file mode 100644
index 000000000..08d8cfd74
--- /dev/null
+++ b/gfx/tilesets/minecart/2.2bpp
@@ -0,0 +1 @@
+ðÐÿÐðßðÙößðßðÞñøèÿèøïøéþïøïøîùüôÿôü÷üõþ÷ü÷üöýþúÿúþûþûþûþûþúÿÿýÿýÿýÿýÿýÿýÿýÿ \ No newline at end of file
diff --git a/gfx/tilesets/minecart/3.2bpp b/gfx/tilesets/minecart/3.2bpp
new file mode 100644
index 000000000..e4bb79a49
--- /dev/null
+++ b/gfx/tilesets/minecart/3.2bpp
@@ -0,0 +1 @@
+¿ÿ¿ÿ¿ÿ¿ÿ¿ÿ¿ÿ¿ÿ¿ÿß_ÿ_ßßßßßï?/ÿ/?ï?¯ï?¯ï?÷ÿ÷·_÷—÷û ÿ ë»Oû›oû \ No newline at end of file
diff --git a/gfx/tilesets/minecart/4.2bpp b/gfx/tilesets/minecart/4.2bpp
new file mode 100644
index 000000000..08897f1da
--- /dev/null
+++ b/gfx/tilesets/minecart/4.2bpp
@@ -0,0 +1 @@
+ßðØ÷ÐðßðÙößðßðÞñïøèÿèøïøéþïøïøîù÷üôÿôü÷üõþ÷ü÷üöýûþúÿúþûþûþûþûþúÿýÿýÿýÿýÿýÿýÿýÿýÿ \ No newline at end of file
diff --git a/gfx/tilesets/minecart/5.2bpp b/gfx/tilesets/minecart/5.2bpp
new file mode 100644
index 000000000..f66926bab
--- /dev/null
+++ b/gfx/tilesets/minecart/5.2bpp
@@ -0,0 +1 @@
+¿ÿ¿ÿ¿ÿ¿ÿ¿ÿ¿ÿ¿ÿ¿ÿß_ÿ_ÿßÿßÿßÿßÿßÿï?/ÿoÿ¯ÿïÿïÿïÿïÿ÷ÿWÿ·ÿ÷ÿ÷ÿ÷ÿ÷ÿû ÿ[ÿ«ÿûÿûÿûÿûÿ \ No newline at end of file
diff --git a/gfx/tilesets/minecart/6.2bpp b/gfx/tilesets/minecart/6.2bpp
new file mode 100644
index 000000000..5021b1c1f
--- /dev/null
+++ b/gfx/tilesets/minecart/6.2bpp
@@ -0,0 +1 @@
+ßðØÿÕÿÚÿßÿßÿßÿßÿïøèÿíÿêÿïÿïÿïÿïÿ÷üôÿõÿöÿ÷ÿ÷ÿ÷ÿ÷ÿûþúÿûÿúÿûÿûÿûÿûÿýÿýÿýÿýÿýÿýÿýÿýÿ \ No newline at end of file
diff --git a/gfx/tilesets/minecart/7.2bpp b/gfx/tilesets/minecart/7.2bpp
new file mode 100644
index 000000000..59d6876aa
--- /dev/null
+++ b/gfx/tilesets/minecart/7.2bpp
@@ -0,0 +1 @@
+€ÿ‚ý¢Ý ß€ÿ„û„û€ÿÀÿÁþÑîÐïÀÿÂýÂýÀÿàÿàÿè÷è÷àÿáþáþàÿðÿðÿôûôûðÿðÿðÿðÿøÿøÿúýúýøÿøÿøÿøÿ \ No newline at end of file
diff --git a/gfx/tilesets/minecart/8.2bpp b/gfx/tilesets/minecart/8.2bpp
new file mode 100644
index 000000000..bb22068b8
--- /dev/null
+++ b/gfx/tilesets/minecart/8.2bpp
@@ -0,0 +1 @@
+ÿ?ß?ßÿÿ_¿_¿ÿÿïïÿÿ/ß/ßÿÿ÷÷ÿÿïïÿÿûûÿÿ ÷ ÷ÿÿýýÿÿûûÿ \ No newline at end of file
diff --git a/gfx/tilesets/minecart/9.2bpp b/gfx/tilesets/minecart/9.2bpp
new file mode 100644
index 000000000..1c206fb79
--- /dev/null
+++ b/gfx/tilesets/minecart/9.2bpp
@@ -0,0 +1 @@
+ ÿÅÿªÿÝÿêÿÝÿÿÿÿÿÐÿâÿÕÿîÿõÿîÿÿÿÿÿèÿñÿêÿ÷ÿúÿ÷ÿÿÿÿÿôÿøÿõÿûÿýÿûÿÿÿÿÿúÿüÿúÿýÿþÿýÿÿÿÿÿ \ No newline at end of file
diff --git a/main.asm b/main.asm
index e612dc339..fc2dbb05b 100644
--- a/main.asm
+++ b/main.asm
@@ -16435,16 +16435,16 @@ Tileset29Anim: ; 0xfc233
Tileset23Anim: ; 0xfc27f
; param, function
- dw $4770, $4645
- dw $4774, $4645
- dw $4768, $4645
- dw $476c, $4645
- dw $4760, $4645
- dw $4764, $4645
- dw $4758, $4645
- dw $475c, $4645
- dw $4750, $4645
- dw $4754, $4645
+ dw MinecartTilePointer9, AnimateMinecartTile
+ dw MinecartTilePointer10, AnimateMinecartTile
+ dw MinecartTilePointer7, AnimateMinecartTile
+ dw MinecartTilePointer8, AnimateMinecartTile
+ dw MinecartTilePointer5, AnimateMinecartTile
+ dw MinecartTilePointer6, AnimateMinecartTile
+ dw MinecartTilePointer3, AnimateMinecartTile
+ dw MinecartTilePointer4, AnimateMinecartTile
+ dw MinecartTilePointer1, AnimateMinecartTile
+ dw MinecartTilePointer2, AnimateMinecartTile
dw $0000, NextTileFrame
dw $0000, WaitTileAnimation
dw $0000, WaitTileAnimation
@@ -16962,7 +16962,52 @@ SafariFountainFrames: ; fc605
; fc645
-INCBIN "baserom.gbc", $fc645, $fc673 - $fc645
+AnimateMinecartTile: ; fc645
+; Read from struct at de:
+; Destination (VRAM)
+; Address of the first tile in the frame array
+
+ ld hl, [sp+0]
+ ld b, h
+ ld c, l
+
+ ld a, [TileAnimationTimer]
+ and 7
+
+; Get frame index a
+ ld hl, .frames
+ add l
+ ld l, a
+ ld a, 0
+ adc h
+ ld h, a
+ ld a, [hl]
+
+; Destination
+ ld l, e
+ ld h, d
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+
+; Add the frame index to the starting address
+ add [hl]
+ inc hl
+ ld h, [hl]
+ ld l, a
+ ld a, 0
+ adc h
+ ld h, a
+
+ ld sp, hl
+ ld l, e
+ ld h, d
+ jr WriteTile
+
+.frames
+ db $00, $10, $20, $30, $40, $30, $20, $10
+; fc673
NextTileFrame: ; fc673
@@ -17145,7 +17190,57 @@ TileAnimationPalette: ; fc6d7
ret
; fc71e
-INCBIN "baserom.gbc", $fc71e, $fcdc2 - $fc71e
+
+INCBIN "baserom.gbc", $fc71e, $fc750 - $fc71e
+
+
+MinecartTilePointers: ; fc750
+MinecartTilePointer1:
+ dw $92d0, MinecartTile1
+MinecartTilePointer2:
+ dw $92f0, MinecartTile2
+MinecartTilePointer3:
+ dw $93d0, MinecartTile3
+MinecartTilePointer4:
+ dw $93f0, MinecartTile4
+MinecartTilePointer5:
+ dw $93c0, MinecartTile5
+MinecartTilePointer6:
+ dw $92c0, MinecartTile6
+MinecartTilePointer7:
+ dw $94d0, MinecartTile7
+MinecartTilePointer8:
+ dw $94f0, MinecartTile8
+MinecartTilePointer9:
+ dw $95d0, MinecartTile9
+MinecartTilePointer10:
+ dw $95f0, MinecartTile10
+
+MinecartTile1:
+ INCBIN "gfx/tilesets/minecart/1.2bpp"
+MinecartTile2:
+ INCBIN "gfx/tilesets/minecart/2.2bpp"
+MinecartTile3:
+ INCBIN "gfx/tilesets/minecart/3.2bpp"
+MinecartTile4:
+ INCBIN "gfx/tilesets/minecart/4.2bpp"
+MinecartTile5:
+ INCBIN "gfx/tilesets/minecart/5.2bpp"
+MinecartTile6:
+ INCBIN "gfx/tilesets/minecart/6.2bpp"
+MinecartTile7:
+ INCBIN "gfx/tilesets/minecart/7.2bpp"
+MinecartTile8:
+ INCBIN "gfx/tilesets/minecart/8.2bpp"
+MinecartTile9:
+ INCBIN "gfx/tilesets/minecart/9.2bpp"
+MinecartTile10:
+ INCBIN "gfx/tilesets/minecart/10.2bpp"
+; fca98
+
+
+INCBIN "baserom.gbc", $fca98, $fcdc2 - $fca98
+
LoadTradesPointer: ; 0xfcdc2
ld d, 0