diff --git a/README.md b/README.md index c9229c89..6075ead2 100644 --- a/README.md +++ b/README.md @@ -256,12 +256,9 @@ and more! Known Bugs ==== Comprehensive list can be found on Discord. -- Only portions of spinner tiles animate. - Occasionally, menu text sets itself to scroll. - The Tradeback Tutor doesn't work properly with Rhydon for reasons likely related to its index number of 1. - Fake Tears and Nasty Plot don't quite look right when done from the opponent's side. -- The door mat tiles added recently warp the player when they walk on another (Citrine mats, arrow tiles...) -- James doesn't check for Max DVs when Hyper Training. - Citrine Dock's warp doesn't work, meaning you have to leave Citrine using Fly - LAST_MAP isn't updated properly when sailing from Vermilion to Citrine - After reloading the game after beating the Elite Four, Pallet Town's correct palette isn't loaded in until after leaving the house. diff --git a/data/maps/hide_show_data.asm b/data/maps/hide_show_data.asm index 88e58235..70970176 100644 --- a/data/maps/hide_show_data.asm +++ b/data/maps/hide_show_data.asm @@ -358,12 +358,6 @@ PokemonTower2FHS: db POKEMON_TOWER_2F, $01, SHOW ; HS_POKEMON_TOWER_2F_RIVAL BrunswickGrottoHS: db BRUNSWICK_GROTTO, $01, HIDE ; HS_BRUNSWICK_ZAPDOS_G_2 -;PokemonTower3FHS: -; db POKEMON_TOWER_3F, $04, SHOW ; HS_POKEMON_TOWER_3F_ITEM -;PokemonTower4FHS: -; db POKEMON_TOWER_4F, $04, SHOW ; HS_POKEMON_TOWER_4F_ITEM_1 -; db POKEMON_TOWER_4F, $05, SHOW ; HS_POKEMON_TOWER_4F_ITEM_2 -; db POKEMON_TOWER_4F, $06, SHOW ; HS_POKEMON_TOWER_4F_ITEM_3 PokemonTower5FHS: db POKEMON_TOWER_5F, $06, SHOW ; HS_POKEMON_TOWER_5F_ITEM PokemonTower6FHS: @@ -499,9 +493,9 @@ SilphCo7FHS: SilphCo10FHS: db SILPH_CO_10F, $01, SHOW ; HS_SILPH_CO_10F_1 db SILPH_CO_10F, $02, SHOW ; HS_SILPH_CO_10F_2 - db SILPH_CO_10F, $03, SHOW ; HS_SILPH_CO_10F_3 - db SILPH_CO_10F, $04, SHOW ; HS_SILPH_CO_10F_ITEM_1 - db SILPH_CO_10F, $05, SHOW ; HS_SILPH_CO_10F_ITEM_2 + db SILPH_CO_10F, $03, SHOW ; HS_SILPH_CO_10F_ITEM_1 + db SILPH_CO_10F, $04, SHOW ; HS_SILPH_CO_10F_ITEM_2 + db SILPH_CO_10F, $05, SHOW ; HS_SILPH_CO_10F_ITEM_3 SilphCo11FHS: db SILPH_CO_11F, $03, SHOW ; Giovanni db SILPH_CO_11F, $04, SHOW ; James diff --git a/data/maps/objects/CinnabarVolcano.asm b/data/maps/objects/CinnabarVolcano.asm index 704a36bf..89d6ed8f 100644 --- a/data/maps/objects/CinnabarVolcano.asm +++ b/data/maps/objects/CinnabarVolcano.asm @@ -2,11 +2,11 @@ CinnabarVolcano_Object: db $7d ; border block def_warp_events - warp_event 13, 21, CINNABAR_VOLCANO_FLOORS, 9 + warp_event 15, 21, CINNABAR_VOLCANO_FLOORS, 9 def_bg_events def_object_events - object_event 14, 8, SPRITE_BIRD, STAY, UP, 1, MOLTRES, 50 | OW_POKEMON + object_event 15, 7, SPRITE_BIRD, STAY, UP, 1, MOLTRES, 50 | OW_POKEMON def_warps_to CINNABAR_VOLCANO diff --git a/data/maps/objects/CinnabarVolcanoFloors.asm b/data/maps/objects/CinnabarVolcanoFloors.asm index 4ffa3afd..1b5a07ad 100644 --- a/data/maps/objects/CinnabarVolcanoFloors.asm +++ b/data/maps/objects/CinnabarVolcanoFloors.asm @@ -10,7 +10,7 @@ CinnabarVolcanoFloors_Object: warp_event 5, 13, CINNABAR_VOLCANO_FLOORS, 5 warp_event 5, 3, CINNABAR_VOLCANO_FLOORS, 8 warp_event 5, 25, CINNABAR_VOLCANO_FLOORS, 7 - warp_event 13, 25, CINNABAR_VOLCANO, 1 + warp_event 12, 24, CINNABAR_VOLCANO, 1 def_bg_events diff --git a/data/maps/objects/CitrineCity.asm b/data/maps/objects/CitrineCity.asm index b273fd8d..f284de91 100644 --- a/data/maps/objects/CitrineCity.asm +++ b/data/maps/objects/CitrineCity.asm @@ -2,17 +2,17 @@ CitrineCity_Object: db $43 ; border block def_warp_events - warp_event 9, 27, CITRINE_ROCKET_HOUSE, 1 + warp_event 9, 25, CITRINE_ROCKET_HOUSE, 1 warp_event 9, 17, CITRINE_TRADEBACK_HOUSE, 1 warp_event 15, 17, CITRINE_POKECENTER, 1 - warp_event 15, 27, CITRINE_MART, 1 + warp_event 15, 25, CITRINE_MART, 1 warp_event 23, 5, CELESTE_HILL_GATE, 4 warp_event 11, 7, BATTLE_TENT, 1 warp_event 26, 31, CITRINE_FERRY_DOCK, 1 warp_event 27, 31, CITRINE_FERRY_DOCK, 1 def_bg_events - bg_event 16, 27, 5 ; Citrine Shop + bg_event 16, 25, 5 ; Citrine Shop bg_event 16, 17, 6 ; Pokecenter bg_event 20, 22, 7 ; Billboard 1 bg_event 5, 18, 8 ; Billboard 2 diff --git a/data/tilesets/spinner_tiles.asm b/data/tilesets/spinner_tiles.asm index 9ce3deb3..f7549203 100644 --- a/data/tilesets/spinner_tiles.asm +++ b/data/tilesets/spinner_tiles.asm @@ -13,17 +13,17 @@ FacilitySpinnerArrows: spinner SpinnerArrowAnimTiles, 1, $21 spinner SpinnerArrowAnimTiles, 2, $30 spinner SpinnerArrowAnimTiles, 3, $31 - spinner Facility_GFX, $20, $20 - spinner Facility_GFX, $21, $21 - spinner Facility_GFX, $30, $30 - spinner Facility_GFX, $31, $31 + spinner SpinnerArrowAnimTiles, 4, $20 + spinner SpinnerArrowAnimTiles, 5, $21 + spinner SpinnerArrowAnimTiles, 6, $30 + spinner SpinnerArrowAnimTiles, 7, $31 GymSpinnerArrows: spinner SpinnerArrowAnimTiles, 1, $3c spinner SpinnerArrowAnimTiles, 3, $3d spinner SpinnerArrowAnimTiles, 0, $4c spinner SpinnerArrowAnimTiles, 2, $4d - spinner Gym_GFX, $3c, $3c - spinner Gym_GFX, $3d, $3d - spinner Gym_GFX, $4c, $4c - spinner Gym_GFX, $4d, $4d + spinner SpinnerArrowAnimTiles, 5, $3c + spinner SpinnerArrowAnimTiles, 7, $3d + spinner SpinnerArrowAnimTiles, 4, $4c + spinner SpinnerArrowAnimTiles, 6, $4d diff --git a/engine/gfx/palettes.asm b/engine/gfx/palettes.asm index 75190ab1..8700199a 100644 --- a/engine/gfx/palettes.asm +++ b/engine/gfx/palettes.asm @@ -161,8 +161,6 @@ SetPal_Overworld: jr z, .pachinko cp GAME_CORNER_PRIZE_ROOM jr z, .pachinko - cp SILPH_GAUNTLET_1F - jr z, .faraway cp CELESTE_HILL_OUTSIDE jr z, .celeste cp CELESTE_HILL @@ -212,6 +210,8 @@ SetPal_Overworld: jr z, .garnet cp ROCK_TUNNEL_B1F + 1 jr c, .caveDefault + cp CELESTE_HILL_CAVE + jr z, .celeste .caveDefault ld a, PAL_CAVE - 1 jr .town @@ -230,9 +230,6 @@ SetPal_Overworld: .celeste ld a, PAL_CELESTE - 1 jr .town -.faraway - ld a, PAL_ROUTE - 1 - jr .town .seafoam ld a, PAL_CYANMON - 1 jr .town @@ -249,6 +246,30 @@ SetPal_Overworld: ld a, PAL_FUCHSIA - 1 jr .town +; these can't be added without a more efficient solution +; cp ROCKET_HIDEOUT_B1F +; jr z, .pachinko +; cp ROCKET_HIDEOUT_B2F +; jr z, .pachinko +; cp ROCKET_HIDEOUT_B3F +; jr z, .pachinko +; cp ROCKET_HIDEOUT_B4F +; jr z, .pachinko +; cp ROCKET_HIDEOUT_ELEVATOR +; jr z, .pachinko +; cp FARAWAY_ISLAND_OUTSIDE +; jr z, .faraway +; cp FARAWAY_ISLAND_INSIDE +; jr z, .faraway +; cp SILPH_GAUNTLET_1F +; jr z, .faraway +;.pachinko +; ld a, PAL_CASINO - 1 +; jr .town +;.faraway +; ld a, PAL_ROUTE - 1 +; jr .town + ; used when a Pokemon is the only thing on the screen ; such as evolution, trading and the Hall of Fame SetPal_PokemonWholeScreen: diff --git a/engine/overworld/spinners.asm b/engine/overworld/spinners.asm index dddd1b69..721ada0b 100644 --- a/engine/overworld/spinners.asm +++ b/engine/overworld/spinners.asm @@ -20,7 +20,7 @@ LoadSpinnerArrowTiles:: ld de, 6 * 4 add hl, de .alternateGraphics - ld a, 1 + ld a, $4 ld bc, $0 .loop push af @@ -38,7 +38,8 @@ LoadSpinnerArrowTiles:: ld a, [hli] ld h, [hl] ld l, a - call CopyVideoData + ;call CopyVideoData + call CopySpinnerTiles pop bc ld a, $6 add c @@ -47,6 +48,54 @@ LoadSpinnerArrowTiles:: pop af dec a jr nz, .loop + call DelayFrame ;Delay a frame because CopySpinnerTiles does not do this like CopyVideoData + ret + +CopySpinnerTiles: + di ;prevent vblank functions from running + + ;back up destination address + ld b, h + ld c, l + ;back up stack pointer + ld hl, sp + 0 + ld a, h + ld [hstemp], a + ld a, l + ld [hstemp + 1], a + ;set stack pointer to source address + ld h, d + ld l, e + ld sp, hl + ;restore destination address + ld h, b + ld l, c + + ;Stack Pointer = tile source address + ;HL = tile destination address + + ld c, 8 +.loop + pop de +.waitVRAM + ldh a, [rSTAT] ;read from stat register to get the mode + and %10 + jr nz, .waitVRAM + ld [hl], e + inc l + ld [hl], d + inc l + dec c + jr nz, .loop + + ;restore stack spointer + ld a, [hstemp] + ld h, a + ld a, [hstemp + 1] + ld l, a + ld sp, hl + + ei ;re-enable vblank functions ret INCLUDE "data/tilesets/spinner_tiles.asm" diff --git a/gfx/blocksets/citrine.bst b/gfx/blocksets/citrine.bst index 2e490878..27d39867 100644 --- a/gfx/blocksets/citrine.bst +++ b/gfx/blocksets/citrine.bst @@ -41,7 +41,7 @@ KKKK KKK -KKK,,,,,,,,,,*+,,:;!##!############!##!99NO99^_99999999*+:;99999999*+*+:;:;*+*+:;:;*+,,:;,,*+:;TTTT22222T2T2T2T[[[[[[%& +KKK,,,,,,,,,,*+,,:;!##!############!##!99NO99^_99999999,,,,,,,,*+,,:;,,99999999*+*+:;:;*+*+:;:;*+,,:;,,*+:;TTTT22222T2T2T2T[[[[[[%& KKK diff --git a/gfx/overworld/spinners.png b/gfx/overworld/spinners.png index 534ae610..472c7d8e 100644 Binary files a/gfx/overworld/spinners.png and b/gfx/overworld/spinners.png differ diff --git a/maps/CelesteHillCave.blk b/maps/CelesteHillCave.blk index 65b364da..1e6cd213 100644 --- a/maps/CelesteHillCave.blk +++ b/maps/CelesteHillCave.blk @@ -1,2 +1,2 @@ ,+,<,+,a+,+,.........................................0b N  - r'jk„r ,+|)f-) " "^$^ \ No newline at end of file + r'jkr ,+|)f-) " "^$^ \ No newline at end of file diff --git a/maps/CinnabarVolcano.blk b/maps/CinnabarVolcano.blk index 0f7b8427..5c199531 100644 --- a/maps/CinnabarVolcano.blk +++ b/maps/CinnabarVolcano.blk @@ -1 +1 @@ -..............}vvvvvvvvvvvv}Qvvvvvvvvvvvv}vvvvvvvvvvvvvvvvvvv+,vvv+,vvNvv-vvR}vvvv vvvv}N}vvv>vvv}}}}Q}}}}}}}QN \ No newline at end of file +..............}vvvvvvvvvvvv}Qvvvvvvvvvvvv}vvvvvvvvvvvvvvvvvvvv !" !"vvv+,vvvv !" !!"vvNvvv)vvR}vvvv vvv}N}vvv>vv}}}}Q}}}}}}QN \ No newline at end of file diff --git a/maps/CinnabarVolcanoFloors.blk b/maps/CinnabarVolcanoFloors.blk index 39acf9e0..aa7ffbcf 100644 --- a/maps/CinnabarVolcanoFloors.blk +++ b/maps/CinnabarVolcanoFloors.blk @@ -1,4 +1,4 @@ -,€€€€€€€+,€€€€€€€+|__b "+ +,+,+|__b "+  vvvfvvvvvvv-vvvvfvvv-v |fyvr - _,€€€€€€€+,€€€€€€€+|‚'  r€+vvvvvv)vvvvvvvvvvv vvvvr-tfvvvv_ + _,+,+|#'  r+vvvvvvvvvvvvvvvvv vvvvr-tfvvvv_  " ___$ \ No newline at end of file diff --git a/maps/CitrineCity.blk b/maps/CitrineCity.blk index 1111512c..149d3edc 100644 --- a/maps/CitrineCity.blk +++ b/maps/CitrineCity.blk @@ -16,14 +16,14 @@ t e,+,)+vvvvv+vv+vvnn+v)vL%+77zt%--%+r+sf+s s%+~kkkk[[o>~kk[o \ No newline at end of file +,+,+>,+,)+vvvvv+vv+vvnn+v)vL+,zt--+r+,sfs s+~kkkk[[o>~kk[o \ No newline at end of file diff --git a/ram/hram.asm b/ram/hram.asm index 29a582b4..3c404d1b 100644 --- a/ram/hram.asm +++ b/ram/hram.asm @@ -343,7 +343,7 @@ hUnlockedSilphCoDoors:: ; the first tile ID in a sequence of tile IDs that increase by 1 each step hStartTileID:: db - ds 2 +hstemp:: dw hNewPartyLength:: db diff --git a/text/FuchsiaGym.asm b/text/FuchsiaGym.asm index c05d27b5..ca746d6d 100644 --- a/text/FuchsiaGym.asm +++ b/text/FuchsiaGym.asm @@ -1,5 +1,5 @@ _KogaBeforeBattleText:: - text "KOGA: Fwahahaha!" + text "Fwahahaha!" para "A mere child like" line "you dares to" diff --git a/text/ViridianPreGym.asm b/text/ViridianPreGym.asm index 20b08f9a..af3a7504 100644 --- a/text/ViridianPreGym.asm +++ b/text/ViridianPreGym.asm @@ -65,7 +65,7 @@ _YujirouAfterBattleText2:: para "..." para "I had all the" - line "best normal-" + line "best NORMAL-" cont "type #MON." para "Maybe it's me?" @@ -75,7 +75,7 @@ _YujirouAfterBattleText2:: _ViridianPreGymBattleText1:: text "Did you know that" line "the best #MON" - cont "are normal-type?" + cont "are NORMAL-type?" done _ViridianPreGymEndBattleText1::