From 892e8fc6b1095c13b1134f3e5b59103d5b03f5de Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Sun, 4 Aug 2024 14:40:07 +0100 Subject: [PATCH 1/6] Summer Beach House fixes, evo moves (bugs!) Evo moves commit is unfinished and doesn't work properly. Script in evolve.asm has details. Summer Beach House now teaches Pikachu Surf and has two issues; one is that backing out of teaching Pikachu causes issues (basically, it only goes a correct way if you say yes), and the teaching menu uses tiles from the overworld because I am stupid. Are you a bad enough dude to fix these bugs? --- data/pokemon/evolution_moves.asm | 400 +++++++++++++++++++++++++++++++ data/pokemon/evos_attacks.asm | 1 + engine/events/specials.asm | 44 ++-- engine/pokemon/evolve.asm | 46 ++++ maps/DebugRoom.asm | 4 +- maps/Route19.asm | 2 +- maps/SummerBeachHouse.asm | 31 ++- 7 files changed, 505 insertions(+), 23 deletions(-) create mode 100644 data/pokemon/evolution_moves.asm diff --git a/data/pokemon/evolution_moves.asm b/data/pokemon/evolution_moves.asm new file mode 100644 index 0000000..a5ad4b0 --- /dev/null +++ b/data/pokemon/evolution_moves.asm @@ -0,0 +1,400 @@ +EvolutionMoves:: + dw NO_MOVE ;BULBASAUR ; 01 + dw NO_MOVE ;IVYSAUR ; 02 + dw NO_MOVE ;VENUSAUR ; 03 + dw NO_MOVE ;CHARMANDER ; 04 + dw NO_MOVE ;CHARMELEON ; 05 + dw NO_MOVE ;CHARIZARD ; 06 + dw NO_MOVE ;CHARMADA + dw NO_MOVE ;SQUIRTLE ; 07 + dw NO_MOVE ;WARTORTLE ; 08 + dw NO_MOVE ;TOTARTLE ; 09 + dw NO_MOVE ;CATERPIE ; 0a + dw NO_MOVE ;METAPOD ; 0b + dw NO_MOVE ;BUTTERFREE ; 0c + dw NO_MOVE ;WEEDLE ; 0d + dw NO_MOVE ;KAKUNA ; 0e + dw NO_MOVE ;BEEDRILL ; 0f + dw NO_MOVE ;GENTLARVA + dw NO_MOVE ;PUPAL + dw NO_MOVE ;CARAPTHOR + dw NO_MOVE ;KOTORA + dw NO_MOVE ;GAOTORA + dw NO_MOVE ;GOROTORA + dw NO_MOVE ;RAITORA + dw NO_MOVE ;PIDGEY ; 10 + dw NO_MOVE ;PIDGEOTTO ; 11 + dw NO_MOVE ;PIDGEOT ; 12 + dw NO_MOVE ;RATTATA ; 13 + dw NO_MOVE ;RATICATE ; 14 + dw NO_MOVE ;SPEAROW ; 15 + dw NO_MOVE ;FEAROW ; 16 + dw NO_MOVE ;EKANS ; 17 + dw NO_MOVE ;ARBOK ; 18 + dw NO_MOVE ;PIKACHU ; 19 + dw NO_MOVE ;RAICHU ; 1a + dw NO_MOVE ;GOROCHU + dw NO_MOVE ;SANDSHREW ; 1b + dw NO_MOVE ;SANDSLASH ; 1c + dw NO_MOVE ;NIDORAN_F ; 1d + dw NO_MOVE ;NIDORINA ; 1e + dw NO_MOVE ;NIDOQUEEN ; 1f + dw NO_MOVE ;NIDORAN_M ; 20 + dw NO_MOVE ;NIDORINO ; 21 + dw NO_MOVE ;NIDOKING ; 22 + dw NO_MOVE ;NIDOREIGN + dw NO_MOVE ;CLEFAIRY ; 23 + dw NO_MOVE ;CLEFABLE ; 24 + dw NO_MOVE ;VULPIII + dw NO_MOVE ;VULPIX ; 25 + dw NO_MOVE ;NINETALES ; 26 + dw NO_MOVE ;JIGGLYPUFF ; 27 + dw NO_MOVE ;WIGGLYTUFF ; 28 + dw NO_MOVE ;BITTYBAT + dw NO_MOVE ;ZUBAT ; 29 + dw NO_MOVE ;GOLBAT ; 2a + dw NO_MOVE ;ODDISH ; 2b + dw NO_MOVE ;GLOOM ; 2c + dw NO_MOVE ;VILEPLUME ; 2d + dw NO_MOVE ;PARASPOR + dw NO_MOVE ;PARAS ; 2e + dw NO_MOVE ;PARASECT ; 2f + dw NO_MOVE ;VENONAT ; 30 + dw NO_MOVE ;VENOMOTH ; 31 + dw NO_MOVE ;DIGLETT ; 32 + dw NO_MOVE ;DUGTRIO ; 33 + dw NO_MOVE ;COINPUR + dw NO_MOVE ;MEOWTH ; 34 + dw NO_MOVE ;PERSIAN ; 35 + dw NO_MOVE ;PERRSERKER + dw NO_MOVE ;PSYDUCK ; 36 + dw NO_MOVE ;WEIRDUCK + dw NO_MOVE ;GOLDUCK ; 37 + dw NO_MOVE ;MANKEY ; 38 + dw NO_MOVE ;PRIMEAPE ; 39 + dw NO_MOVE ;ANNIHILAPE + dw NO_MOVE ;PUPPERON + dw NO_MOVE ;GROWLITHE ; 3a + dw NO_MOVE ;ARCANINE ; 3b + dw NO_MOVE ;POLIWAG ; 3c + dw NO_MOVE ;POLIWHIRL ; 3d + dw NO_MOVE ;POLIWRATH ; 3e + dw NO_MOVE ;ABRA ; 3f + dw NO_MOVE ;KADABRA ; 40 + dw NO_MOVE ;ALAKAZAM ; 41 + dw NO_MOVE ;MACHOP ; 42 + dw NO_MOVE ;MACHOKE ; 43 + dw NO_MOVE ;MACHAMP ; 44 + dw NO_MOVE ;BELLSPROUT ; 45 + dw NO_MOVE ;WEEPINBELL ; 46 + dw NO_MOVE ;VICTREEBEL ; 47 + dw NO_MOVE ;BELLIGNAN + dw NO_MOVE ;TENTACOOL ; 48 + dw NO_MOVE ;TENTACRUEL ; 49 + dw NO_MOVE ;TOEDSCOOL + dw NO_MOVE ;TOEDSCRUEL + dw NO_MOVE ;BLOTTLE + dw NO_MOVE ;PENDRAKEN + dw NO_MOVE ;GEODUDE ; 4a + dw NO_MOVE ;GRAVELER ; 4b + dw NO_MOVE ;GOLEM ; 4c + dw NO_MOVE ;KOLTA + dw NO_MOVE ;PONYTA ; 4d + dw NO_MOVE ;RAPIDASH ; 4e + dw NO_MOVE ;BALUMBA + dw NO_MOVE ;SLOWPOKE ; 4f + dw NO_MOVE ;SLOWBRO ; 50 + dw NO_MOVE ;MAGNEMITE ; 51 + dw NO_MOVE ;MAGNETITE + dw NO_MOVE ;MAGNETON ; 52 + dw NO_MOVE ;MAGNEZONE + dw NO_MOVE ;GAVILLAIN + dw NO_MOVE ;CHEEP + dw NO_MOVE ;JABETTA + dw NO_MOVE ;RIBBITO + dw NO_MOVE ;CROAKOZUNA + dw NO_MOVE ;FARFETCH_D ; 53 + dw NO_MOVE ;LUXWAN + dw NO_MOVE ;DODUO ; 54 + dw NO_MOVE ;DODRIO ; 55 + dw NO_MOVE ;SEEL ; 56 + dw NO_MOVE ;DEWGONG ; 57 + dw NO_MOVE ;SMUJJ + dw NO_MOVE ;GRIMER ; 58 + dw NO_MOVE ;MUK ; 59 + dw NO_MOVE ;SHELLDER ; 5a + dw NO_MOVE ;CLOYSTER ; 5b + dw NO_MOVE ;DISTURBAN + dw NO_MOVE ;GASTLY ; 5c + dw NO_MOVE ;HAUNTER ; 5d + dw NO_MOVE ;GENGAR ; 5e + dw NO_MOVE ;ONIX ; 5f + dw NO_MOVE ;DROWZEE ; 60 + dw NO_MOVE ;HYPNO ; 61 + dw NO_MOVE ;KRABBY ; 62 + dw NO_MOVE ;KINGLER ; 63 + dw NO_MOVE ;VOLTORB ; 64 + dw NO_MOVE ;ELECTRODE ; 65 + dw NO_MOVE ;EXEGGCUTE ; 66 + dw NO_MOVE ;EXEGGUTOR ; 67 + dw NO_MOVE ;CUBONE ; 68 + dw NO_MOVE ;MAROWAK ; 69 + dw NO_MOVE ;GUARDIA + dw NO_MOVE ;HITMONLEE ; 6a + dw NO_MOVE ;HITMONCHAN ; 6b + dw NO_MOVE ;LICKITUNG ; 6c + dw NO_MOVE ;LICKILICKY + dw NO_MOVE ;LICKILORD + dw NO_MOVE ;KOFFING ; 6d + dw NO_MOVE ;WEEZING ; 6e + dw NO_MOVE ;RHYHORN ; 6f + dw NO_MOVE ;RHYDON ; 70 + dw NO_MOVE ;HAPPINY + dw NO_MOVE ;CHANSEY ; 71 + dw NO_MOVE ;BURGELA + dw NO_MOVE ;TANGELA ; 72 + dw NO_MOVE ;TANGROWTH + dw NO_MOVE ;JUNGELA + dw NO_MOVE ;KANGASKHAN ; 73 + dw NO_MOVE ;HORSEA ; 74 + dw NO_MOVE ;SEADRA ; 75 + dw NO_MOVE ;BLASTYKE + dw NO_MOVE ;BLASTOISE + dw NO_MOVE ;ORFRY + dw NO_MOVE ;GOLDEEN ; 76 + dw NO_MOVE ;SEAKING ; 77 + dw NO_MOVE ;STARYU ; 78 + dw NO_MOVE ;STARMIE ; 79 + dw NO_MOVE ;MIME_JR_ + dw NO_MOVE ;MR__MIME ; 7a + dw NO_MOVE ;SCYTHER ; 7b + dw NO_MOVE ;KLEAVOR + dw NO_MOVE ;JYNX ; 7c + dw NO_MOVE ;BUU + dw NO_MOVE ;ELECTABUZZ ; 7d + dw NO_MOVE ;ELECTIVIRE + dw NO_MOVE ;MAGMAR ; 7e + dw NO_MOVE ;MAGMORTAR + dw NO_MOVE ;PINSIR ; 7f + dw NO_MOVE ;TRICULES + dw NO_MOVE ;TAUROS ; 80 + dw NO_MOVE ;MAGIKARP ; 81 + dw NO_MOVE ;GYARADOS ; 82 + dw NO_MOVE ;MAGIPREY + dw NO_MOVE ;TERRADOS + dw NO_MOVE ;LAPRAS ; 83 + dw NO_MOVE ;DITTO ; 84 + dw NO_MOVE ;MIMMEO + dw NO_MOVE ;EEVEE ; 85 + dw NO_MOVE ;VAPOREON ; 86 + dw NO_MOVE ;JOLTEON ; 87 + dw NO_MOVE ;FLAREON ; 88 + dw NO_MOVE ;PORYGON ; 89 + dw NO_MOVE ;OMANYTE ; 8a + dw NO_MOVE ;OMASTAR ; 8b + dw NO_MOVE ;KABUTO ; 8c + dw NO_MOVE ;KABUTOPS ; 8d + dw NO_MOVE ;FERADACTYL + dw NO_MOVE ;AERODACTYL ; 8e + dw NO_MOVE ;DECILLA + dw NO_MOVE ;GAWARHED + dw NO_MOVE ;MUNCHLAX + dw NO_MOVE ;SNORLAX ; 8f + dw NO_MOVE ;ARTICUNO ; 90 + dw NO_MOVE ;ZAPDOS ; 91 + dw NO_MOVE ;MOLTRES ; 92 + dw NO_MOVE ;SQUEAMATA + dw NO_MOVE ;MINISTARE + dw NO_MOVE ;IGUANARCH + dw NO_MOVE ;DRATINI ; 93 + dw NO_MOVE ;DRAGONAIR ; 94 + dw NO_MOVE ;DRAGONITE ; 95 + dw NO_MOVE ;MEWTWO ; 96 + dw NO_MOVE ;MEW ; 97 + dw NO_MOVE ;CHIKORITA ; 98 + dw NO_MOVE ;BAYLEEF ; 99 + dw NO_MOVE ;MEGANIUM ; 9a + dw NO_MOVE ;CYNDAQUIL ; 9b + dw NO_MOVE ;QUILAVA ; 9c + dw NO_MOVE ;TYPHLOSION ; 9d + dw NO_MOVE ;TOTODILE ; 9e + dw NO_MOVE ;CROCONAW ; 9f + dw NO_MOVE ;FERALIGATR ; a0 + dw NO_MOVE ;CUBBURN + dw NO_MOVE ;FLAMBEAR + dw NO_MOVE ;BRUINOUS + dw NO_MOVE ;PALSSIO + dw NO_MOVE ;PRESSIO + dw NO_MOVE ;DONMARIN + dw NO_MOVE ;SENTRET ; a1 + dw NO_MOVE ;FURRET ; a2 + dw NO_MOVE ;HOOTHOOT ; a3 + dw NO_MOVE ;NOCTOWL ; a4 + dw NO_MOVE ;LEDYBA ; a5 + dw NO_MOVE ;LEDIAN ; a6 + dw NO_MOVE ;SPINARAK ; a7 + dw NO_MOVE ;ARIADOS ; a8 + dw NO_MOVE ;FOLAGE + dw CONFUSION ;BARREAU + dw MOONLIGHT ;CROBAT ; a9 + dw NO_MOVE ;CHINCHOU ; aa + dw NO_MOVE ;LANTURN ; ab + dw NO_MOVE ;REROAD + dw NO_MOVE ;PICHU ; ac + dw NO_MOVE ;CLEFFA ; ad + dw NO_MOVE ;IGGLYBUFF ; ae + dw NO_MOVE ;TOGEPI ; af + dw NO_MOVE ;TOGETIC ; b0 + dw NO_MOVE ;TOGEKISS + dw NO_MOVE ;NATU ; b1 + dw NO_MOVE ;QATU + dw NO_MOVE ;XATU ; b2 + dw NO_MOVE ;MOIBELLE + dw NO_MOVE ;BELLEDAM + dw NO_MOVE ;MAREEP ; b3 + dw NO_MOVE ;FLAAFFY ; b4 + dw NO_MOVE ;AMPHAROS ; b5 + dw NO_MOVE ;BELLOSSOM ; b6 + dw NO_MOVE ;AZURILL + dw NO_MOVE ;MARILL ; b7 + dw NO_MOVE ;AZUMARILL ; b8 + dw NO_MOVE ;BONSLY + dw NO_MOVE ;SUDOWOODO ; b9 + dw NO_MOVE ;POLITOED ; ba + dw NO_MOVE ;HOPPIP ; bb + dw NO_MOVE ;SKIPLOOM ; bc + dw NO_MOVE ;JUMPLUFF ; bd + dw NO_MOVE ;AIPOM ; be + dw NO_MOVE ;AMBIPOM + dw NO_MOVE ;SUNKERN ; bf + dw NO_MOVE ;SUNBUD + dw NO_MOVE ;SUNFLORA ; c0 + dw NO_MOVE ;HIPPUNK + dw NO_MOVE ;AERCROW + dw NO_MOVE ;FOXFIRE + dw NO_MOVE ;YANMA ; c1 + dw NO_MOVE ;YANMEGA + dw NO_MOVE ;PENDING03 + dw NO_MOVE ;WOOPER ; c2 + dw NO_MOVE ;QUAGSIRE ; c3 + dw NO_MOVE ;ESPEON ; c4 + dw NO_MOVE ;UMBREON ; c5 + dw NO_MOVE ;LEAFEON + dw NO_MOVE ;GLACEON + dw NO_MOVE ;SYLVEON + dw NO_MOVE ;MURKROW ; c6 + dw NO_MOVE ;HONCHKROW + dw NO_MOVE ;SLOWKING ; c7 + dw NO_MOVE ;MISDREAVUS ; c8 + dw NO_MOVE ;MISMAGIUS + dw NO_MOVE ;STROMEN + dw NO_MOVE ;PHANDARIN + dw NO_MOVE ;UNOWN ; c9 + dw NO_MOVE ;WYNAUT + dw NO_MOVE ;WOBBUFFET ; ca + dw NO_MOVE ;BIPULLA + dw NO_MOVE ;GIRAFARIG ; cb + dw NO_MOVE ;FARIGIRAF + dw NO_MOVE ;EMORDROME + dw NO_MOVE ;PINECO ; cc + dw NO_MOVE ;FORRETRESS ; cd + dw NO_MOVE ;DUNSPARCE ; ce + dw NO_MOVE ;DUDUNSPARCE + dw NO_MOVE ;GLIGAR ; cf + dw NO_MOVE ;STEELIX ; d0 + dw NO_MOVE ;SNUBBULL ; d1 + dw NO_MOVE ;GRANBULL ; d2 + dw NO_MOVE ;CARETORKER + dw NO_MOVE ;QWILFISH ; d3 + dw NO_MOVE ;KAZAPPELIN + dw NO_MOVE ;QWILFATHER + dw NO_MOVE ;SCIZOR ; d4 + dw NO_MOVE ;SHUCKLE ; d5 + dw NO_MOVE ;POCKLE + dw NO_MOVE ;HERACROSS ; d6 + dw NO_MOVE ;SNEASEL ; d7 + dw NO_MOVE ;TEDDIURSA ; d8 + dw NO_MOVE ;URSARING ; d9 + dw NO_MOVE ;URSALUNA + dw NO_MOVE ;SLUGMA ; da + dw NO_MOVE ;MAGCARGO ; db + dw NO_MOVE ;SWINUB ; dc + dw NO_MOVE ;PILOSWINE ; dd + dw NO_MOVE ;MAMOSWINE + dw NO_MOVE ;HIRSUSWINE + dw NO_MOVE ;CORSOLA ; de + dw NO_MOVE ;REMORAID ; df + dw NO_MOVE ;OCTILLERY ; e0 + dw NO_MOVE ;STRICHEEL + dw NO_MOVE ;LURREEL + dw NO_MOVE ;DELIBIRD ; e1 + dw NO_MOVE ;MANTYKE + dw NO_MOVE ;MANTINE ; e2 + dw NO_MOVE ;SKARMORY ; e3 + dw NO_MOVE ;HOUNDOUR ; e4 + dw NO_MOVE ;HOUNDOOM ; e5 + dw NO_MOVE ;KINGDRA ; e6 + dw NO_MOVE ;PHANPY ; e7 + dw NO_MOVE ;DONPHAN ; e8 + dw NO_MOVE ;PORYGON2 ; e9 + dw NO_MOVE ;PORYGON_Z + dw NO_MOVE ;STANTLER ; ea + dw NO_MOVE ;WYRDEER + dw NO_MOVE ;SMEARGLE ; eb + dw NO_MOVE ;GRENMAR + dw NO_MOVE ;TYROGUE ; ec + dw NO_MOVE ;HITMONTOP ; ed + dw NO_MOVE ;SMOOCHUM ; ee + dw NO_MOVE ;ELEBEBI + dw NO_MOVE ;ELEKID ; ef + dw NO_MOVE ;MAGBY ; f0 + dw NO_MOVE ;MILTANK ; f1 + dw NO_MOVE ;BLISSEY ; f2 + dw NO_MOVE ;WARUCHU + dw NO_MOVE ;SONEGG + dw NO_MOVE ;CACAWPHONY + dw NO_MOVE ;TREBIR + dw NO_MOVE ;SAKURAZE + dw NO_MOVE ;AMANOBI + dw NO_MOVE ;TRUSTAN + dw NO_MOVE ;KUWAGUARD + dw NO_MOVE ;TONQUITO + dw NO_MOVE ;MOLAMBINO + dw NO_MOVE ;LUANBO + dw NO_MOVE ;GRANBO + dw NO_MOVE ;ANGORE + dw NO_MOVE ;EUCALA + dw NO_MOVE ;KIWOOKED + dw NO_MOVE ;CYCLORP + dw NO_MOVE ;KITSEN + dw NO_MOVE ;WISPIRIT + dw NO_MOVE ;COATL + dw NO_MOVE ;MIMEAR + dw NO_MOVE ;INOSHIKA + dw NO_MOVE ;RUDDERNAUT + dw NO_MOVE ;XYLODON + dw NO_MOVE ;XYLOFIN + dw NO_MOVE ;DOKUROAR + dw NO_MOVE ;SCREAM_TAIL + dw NO_MOVE ;SANDY_SHOCKS + dw NO_MOVE ;GREAT_TUSK + dw NO_MOVE ;FLUTTER_MANE + dw NO_MOVE ;IRON_TREADS + dw NO_MOVE ;IRON_BUNDLE + dw NO_MOVE ;IRON_THORNS + dw NO_MOVE ;RAGING_BOLT + dw NO_MOVE ;GOUGING_FIRE + dw NO_MOVE ;WALKING_WAKE + dw NO_MOVE ;RAIKOU ; f3 + dw NO_MOVE ;ENTEI ; f4 + dw NO_MOVE ;SUICUNE ; f5 + dw NO_MOVE ;LARVITAR ; f6 + dw NO_MOVE ;PUPITAR ; f7 + dw NO_MOVE ;TYRANITAR ; f8 + dw NO_MOVE ;LUGIA ; f9 + dw NO_MOVE ;HO_OH ; fa + dw NO_MOVE ;SHI_SHI + dw NO_MOVE ;CELEBI ; fb + +;--- +_NUM_EVO_MOVES = (@ - EvolutionMoves) / 2 diff --git a/data/pokemon/evos_attacks.asm b/data/pokemon/evos_attacks.asm index 8e8898c..579bace 100644 --- a/data/pokemon/evos_attacks.asm +++ b/data/pokemon/evos_attacks.asm @@ -20,5 +20,6 @@ EvosAttacksPointers:: indirect_entries NUM_POKEMON, EvosAttacksPointers2 indirect_table_end +INCLUDE "data/pokemon/evolution_moves.asm" INCLUDE "data/pokemon/evos_attacks_kanto.asm" INCLUDE "data/pokemon/evos_attacks_johto.asm" diff --git a/engine/events/specials.asm b/engine/events/specials.asm index 81ee165..10cf094 100644 --- a/engine/events/specials.asm +++ b/engine/events/specials.asm @@ -31,35 +31,43 @@ TeachPikachuSurf: pop hl ld b, a ld de, PARTYMON_STRUCT_LENGTH - call DebugGiveMonSpecialMove.CheckForNthPokemon +.CheckForNthPokemon: +; start at the end of the party and search backwards for the last Pokemon in the party. + ld a, [hl] + cp b + jr z, .GiveMove + ld a, l + sub e + ld l, a + ld a, h + sbc d + ld h, a + dec c + jr nz, .CheckForNthPokemon + ret .GiveMove - ; BUG: Doesn't seem to find Surf properly. - ; The move DOES reach Pikachu's moveset!!!!!! However, what it learns just isn't correct. - ; Similar issue to when I tried to add evo moves ~ PvK - ld a, SURF + ; Teach Pikachu Surf + ld hl, SURF call GetMoveIDFromIndex + ld [wNamedObjectIndex], a ld [wPutativeTMHMMove], a + call GetMoveName + call CopyName1 - ; Find Pikachu again + ; Find Pikachu again to slap em in wCurPartyMon. ld bc, wPartyCount ld a, [bc] ld hl, MON_SPECIES call DebugGiveMonSpecialMove.GetNthPartyMon ld [wCurPartyMon], a - ; BUG: Doesn't load the tiles correctly because I'm stupid - ; Is it just in the wrong place? lmao - ld hl, .MenuHeader - call LoadMenuHeader - - ; Learn the move + ; Learn the move. predef LearnMove + ; BUG: Doesn't load the tiles for forgetting moves correctly because I'm stupid + ; 99.9% sure it's a bankswitch issue - ForgetMove is in a different script. + ; Needs more research. ret -.MenuHeader: - db MENU_BACKUP_TILES ; flags - menu_coords 0, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 - ; Currently only works for Pikachu but could possibly be reworked for other things in the future. 90% sure there's a better way to do this. ; TODO: Check the DVs to see if it's strong enough. I'm feeling Shiny DV total or above. CheckPikachu: @@ -79,10 +87,10 @@ CheckPikachu: endc endc jr nz, .notMon - ld a, 1 + ld a, 1 ; return 1 if Pikachu jr .done .notMon - xor a ; return 0 if not it + xor a ; return 0 if not Pikachu ld [wScriptVar], a .done ret diff --git a/engine/pokemon/evolve.asm b/engine/pokemon/evolve.asm index dfd8408..8f770fa 100644 --- a/engine/pokemon/evolve.asm +++ b/engine/pokemon/evolve.asm @@ -291,6 +291,7 @@ EvolveAfterBattle_MasterLoop: ld [wTempSpecies], a xor a ld [wMonType], a + call LearnEvolutionMove call LearnLevelMoves ld a, [wTempSpecies] call SetSeenAndCaughtMon @@ -354,6 +355,51 @@ EvolveAfterBattle_MasterLoop: call nz, RestartMapMusic ret +; BUG: Does not take in the designated move correctly, resulting in strange behaviour usually seen when GetMoveIDFromIndex takes an 8-bit index. +; Comments proceeding +LearnEvolutionMove: + ld a, [wTempSpecies] + ld [wCurPartySpecies], a + call GetPokemonIndexFromID + ld b, h + ld c, l + ld hl, EvolutionMoves + add hl, bc + add hl, bc + dec hl + dec hl + ld a, [hli] + ld h, [hl] + ld l, a ; Moves through the table by going up according to the Pokemon's ID, storing the equivalent move in hl. This is fine. + or h ; hl == 0? + ret z + + call GetMoveIDFromIndex ; grabs what's in hl (the move) and converts it to 8-bit...or something like that. anyway, it should return in register a. + push hl ; I don't actually know why it does this. Removing it produces manmade horrors beyond my comprehension, so it isn't part of the current problem. + ld d, a ; preserve a + ld hl, wPartyMon1Moves + ld a, [wCurPartyMon] + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + ld b, NUM_MOVES +.check_move + ld a, [hli] + cp d ; use preserved a to check if a move is there + jr z, .has_move + dec b + jr nz, .check_move + ld a, d ; take the preserved a and reload + ld [wPutativeTMHMMove], a ; proceed to learn the move with adequate preprep + ld [wNamedObjectIndex], a + call GetMoveName + call CopyName1 + predef LearnMove + ld a, [wCurPartySpecies] + ld [wTempSpecies], a +.has_move + pop hl + ret +; so wtf is going on UpdateSpeciesNameIfNotNicknamed: ld a, [wCurSpecies] push af diff --git a/maps/DebugRoom.asm b/maps/DebugRoom.asm index ce806a8..7df2b40 100644 --- a/maps/DebugRoom.asm +++ b/maps/DebugRoom.asm @@ -19,12 +19,12 @@ DebugPokemon1Script: DebugPokemon2Script: opentext - getmonname STRING_BUFFER_3, MACHAMP + getmonname STRING_BUFFER_3, FOLAGE writetext ReceivedDebugPokemonText playsound SFX_CAUGHT_MON waitsfx promptbutton - givepoke MACHAMP, 31, TM_ROCK_SMASH + givepoke FOLAGE, 31, RARE_CANDY closetext end diff --git a/maps/Route19.asm b/maps/Route19.asm index f38d114..152b92c 100644 --- a/maps/Route19.asm +++ b/maps/Route19.asm @@ -19,7 +19,7 @@ Route19ClearRocksCallback: changeblock 8, 6, $7a ; rock changeblock 10, 6, $7a ; rock changeblock 12, 8, $7a ; rock - changeblock 4, 8, $7a ; rock + changeblock 4, 6, $7a ; rock - changed to account for the surfin' dude's house changeblock 10, 10, $7a ; rock .Done: endcallback diff --git a/maps/SummerBeachHouse.asm b/maps/SummerBeachHouse.asm index 0c72e16..6804dcf 100644 --- a/maps/SummerBeachHouse.asm +++ b/maps/SummerBeachHouse.asm @@ -34,12 +34,17 @@ SummerBeachHouseSurfinDudeScript: cry PIKACHU waitbutton applymovement SUMMERBEACHHOUSE_PUKA, PukaMovement1 + writetext SummerBeachHouseSurfinDudeTextICanDoIt2 + waitbutton + special TeachPikachuSurf +; iffalse .StoppedLearning ; doesn't work because I'm stupid and thought simply teaching the electric rat to use a surfboard would work like yesorno. the ceiling is the floor. + writetext SummerBeachHouseSurfinDudeTextDone applymovement SUMMERBEACHHOUSE_PUKA, PukaMovement2 waitbutton closetext -; setevent EVENT_TAUGHT_PIKACHU_SURF +; setevent EVENT_TAUGHT_PIKACHU_SURF ; not yet in for testing purposes. end .NotPikachu: @@ -54,6 +59,12 @@ SummerBeachHouseSurfinDudeScript: closetext end +.StoppedLearning: + writetext SummerBeachHouseSurfinDudeStoppedLearning + waitbutton + closetext + end + PukaMovement1: step LEFT step UP @@ -92,6 +103,14 @@ SummerBeachHouseSurfinDudeTextNoHave: line "one? Aww…" done +SummerBeachHouseSurfinDudeStoppedLearning: + text "Not the right" + line "time? Alright." + + para "Come back, though," + line "ya hear?" + done + SummerBeachHouseSurfinDudeTextICanDoIt: text "Yeah! This PIKACHU" line "yearns for the" @@ -100,6 +119,14 @@ SummerBeachHouseSurfinDudeTextICanDoIt: para "PUKA, come here!" done +SummerBeachHouseSurfinDudeTextICanDoIt2: + text "This PIKACHU is" + line "as strong as you!" + + para "Let's teach it to" + line "SURF!" + done + SummerBeachHouseSurfinDudeTextDone: text "There! You can" line "SURF wherever" @@ -130,7 +157,7 @@ SummerBeachHousePoster2Text: done SummerBeachHousePoster3Script: - jumptext SummerBeachHousePoster1Text + jumptext SummerBeachHousePoster3Text SummerBeachHousePoster3Text: text "It's an old pos-" From 7d587205b5ec5a378f4f29202c3972860ea0cd6d Mon Sep 17 00:00:00 2001 From: Zeta_Null Date: Sun, 4 Aug 2024 20:30:28 -0400 Subject: [PATCH 2/6] Stromen Animation Tweak --- gfx/pokemon/stromen/front.png | Bin 1987 -> 1210 bytes maps/DebugRoom.asm | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gfx/pokemon/stromen/front.png b/gfx/pokemon/stromen/front.png index fb8da3227bc106fd2615ea552280a0aa7c53fcfe..0a3aef0646181d2ab0173e81946355b9f9771cff 100644 GIT binary patch delta 1190 zcmV;X1X=sT54s7EB!3K0OjJex|NoS8IZ8??0000HYwp_s00e1CL_t(|+U?wdlH4E& z08oVg|K|n}W3qzSxnA2j(oTDKE72&L*Q{HBzkLu9o)jUV)+j2D#J@%e7r(v@sv*R= zfJ94>TV7A7heXg-+;0|X`G(N01LaHNI)f{|UTkpvmIxeG1%Clkc@2p>iJJqB+oJ8_ zPKZZ=&)c~F`*myr0J%KZAb;;8qyp4G?tmaYB!HTg=bG>__UnLA0qM}=s?hZRy~}?jh&AsDkYpQ4GzTmz zXj+7ie)>@!*MAjoNzN#|54iw@bp_X}oTz=)p_i+@iyG({*xd2wGBrs$;M0SKXy-RC z@3;u`F1qb$4rbD0p z_AR+h8ndkTlY}M%uumNH=d||CqkJE2e;w9YfNf-*E`OZSN<242rYL6spttJDx@)JG zGy$0&(sCU%^j2e?ns!%_CdI2NNM=}nAyT|{#yBefPag%Q0@J?;ra2%3rf#e>n1->EV494T0@Kr22{640v;))2 zSbH$NDu396>20hnm=?y`faztd1el)2N`YxMR)Og^z!XSy1tuOI$b%^o)*4LcFZLdo zJO~w-3QWbN;!<&`xKvy!E)|!GOU0!EQ-P_#>)-^$Pn>u<^Jz(jXPAZ5TL zU4J(l%fJ*(&e>R7FujbWoiAgOF_wX;g&~u%2AGsH6tzf<)xp#U+vkiK3r$$6GB?1C zHNezc=Lg6!y^$CDX9XsTrp^jXJN_)dboIg4fr%V2c@YmU>5ARAlsm+_z4QQ+`=;OI zr4A+wcZfB4$;3o62O}@##58#+DW>QBxqrk|T>4+QM5c!{m*9j;s-H71z4Wu^lJUn@ z<2;uj$0d6EYRe^htos=*J)Re(xYWh;m0TK#$v$7=VkcaZkHwvFiO#shFQ0LV94^5b zm!gOzm!kQ<=2EyF>61(GNUSn$i(id{+7gs<-uS}E7;{X5v07*qoM6N<$ Ef|GPS1^@s6 literal 1987 zcmeHH{a2C)6n+T|KT}h)G!vF!=!DnFT6%_pgAjQ&)RrF8@tPmymgSHNB^RK!$Yo|8 zrCCNFuw$Z|OEZp%vNg)};Q`CcQd9Hbn>o#yX=x1mH`e{-dG5!#=icX>d*!@Xwv)Y= zJpcesoG50z6+r+%{bq}{vOe!MkF9_ea$;E6ajci~7T}lSOS`NgPa!Kwn6N)fcqmPf z39uoiwGHlIrT`a0rhZ>?dDvQFE6j~$TQeb64n#{xzE;5OX2dW6py{N;Vww#ApaCAV zon^6DD)U04qe;t!AMK+8|1$-yb{Hb9E2DOC*-VQHJM)+IPCPkG#&*%!$$pgJDbCS` zhaa%qZ}BVEm(nvT{_zWJ?NOi5>DNxzoInj0y13R>y6{NN0qhZe&>v%uB0TT8?Be6H z?X<58B58h%MD0+J>8*^{h#upPY#!LqC3i^aAV?ePSjzfG$M}t@y2jRAel!0|+jzr<9>Fd2-@_aJ~&6pnTKWTh>ukcl$CroVJIF?GXK2##OFDJcf0z z-eQjgC-{g?l*cBXi+eAq@+P>R@m0P5u_NtvOQbP)jBXT9&Rrpkb^HShPa@26v1?Kp z)yol1-7@}bwolCk-C)ik1uqd*wRu7~nlgE_kewl)ag;1zPK8{PNBi|)GV(=<1Cz6+ zy!LF$9c>FPuX$?=cOumzBWn-+P1|erl_x$AHPlv(SprSGyORnupxTfcx<#Vq!FwC7 z_w;W&i-DJ3E@rZ2*?Q|^9lRJiyaoc5p8{&vOcdCz-0NT^c<{ic(jrc8)>`Q3@1R2C=?`E0LfTb#sB`-~ zJ~(1M=uw@N2L>G*lXMZPoQb<{MS+D>MFqEq{$UK+hjFNw3hw#4D$HrO`Hk?!1kgxQ zjJrcZd*b3Y*c3HcW>G4=p%{9&qLUnKOKil}dNRO=1>!Y1`UfxSn;fB18hrRbAy%zJ zu^z94($Of;$zZRWPMtt;-JxX>kFN`KB>LR$Uf~uB&#W%07TzL<8CEszqd38WBjbttOctD3?nXB5ds;Ys9%yIX=;rBoQqdB+j|lg~}mX%_hug1<}HGFlzZ;T;3NT}W;5l_T%C4wO(U`(|c{KQkywzR^J)N}pL$?SF2H XxPXs*cx}!cu>2x9tXO7aBrN+6tcfJ# diff --git a/maps/DebugRoom.asm b/maps/DebugRoom.asm index 7df2b40..f0556b0 100644 --- a/maps/DebugRoom.asm +++ b/maps/DebugRoom.asm @@ -39,11 +39,11 @@ DebugPokemon3Script: faceplayer opentext writetext DebugTextA - cry LICKILORD + cry STROMEN pause 15 closetext loadvar VAR_BATTLETYPE, BATTLETYPE_SHINY - loadwildmon LICKILORD, 60 + loadwildmon STROMEN, 60 startbattle reloadmapafterbattle end @@ -57,11 +57,11 @@ DebugPokemon4Script: faceplayer opentext writetext DebugTextB - cry LICKILORD + cry STROMEN pause 15 closetext loadvar VAR_BATTLETYPE, BATTLETYPE_SAFARI - loadwildmon LICKILORD, 60 + loadwildmon STROMEN, 60 startbattle reloadmapafterbattle end From 5697b2e209391a6f0f6cc07e4f458d3fe714047c Mon Sep 17 00:00:00 2001 From: Zeta_Null Date: Mon, 5 Aug 2024 18:20:57 -0400 Subject: [PATCH 3/6] Sevii Map Tweaks (Also they're bins now) --- seviimap1.bin | Bin 0 -> 361 bytes seviimap1.tilemap | Bin 361 -> 0 bytes seviimap2.tilemap => seviimap2.bin | Bin 361 -> 361 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 seviimap1.bin delete mode 100644 seviimap1.tilemap rename seviimap2.tilemap => seviimap2.bin (71%) diff --git a/seviimap1.bin b/seviimap1.bin new file mode 100644 index 0000000000000000000000000000000000000000..b4afdf3f6dfc84d5e327f2b85592c50aab775349 GIT binary patch literal 361 zcmZXQy$-@K41_}mnuMrBhu|89kO3rq-v9C7F0LpjC&jWpozGVGW2a-5P8rPYhCfbL zQtg;5@apDmvnmpG76;5n7QysVk>ORNF^qD&>7YuVgH671rIMjyH_IyK{V1ehdBLNh y)EfHI5JEeGCp6#W8&8g_V1Wd1c zqDtoM$Re1tX$+|2(`c(YU>>mg)b0gd-Yiy@>Dq11X4Qj>#yTi!7O*Pj5JeVzXcx2z zEm@jEgVu&3i;pWT7=n>DofYWX!dwubdGsX6oH|>&N0p0wzOVOfFgEfyeChoB{Q;`# B9*h70 diff --git a/seviimap2.tilemap b/seviimap2.bin similarity index 71% rename from seviimap2.tilemap rename to seviimap2.bin index 40aa8cf64bb7c90ee13cf6799b08829b3b97ad42..5a5c65f4e11575d9539aaff3a00147b3c911b3c1 100644 GIT binary patch delta 24 ccmaFK^pa_VBO{Ll7)a~rYH7<%_GOd-08d^8M*si- delta 24 bcmaFK^pa_VBO{NFu9mip1O!a>Wt0H`QGNwP From 08cea5888ff027a3b89e68e08696c047de56604a Mon Sep 17 00:00:00 2001 From: Zeta_Null Date: Mon, 5 Aug 2024 18:29:02 -0400 Subject: [PATCH 4/6] move sevii maps into the right folder --- seviimap1.bin => gfx/pokegear/seviimap1.bin | Bin seviimap2.bin => gfx/pokegear/seviimap2.bin | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename seviimap1.bin => gfx/pokegear/seviimap1.bin (100%) rename seviimap2.bin => gfx/pokegear/seviimap2.bin (100%) diff --git a/seviimap1.bin b/gfx/pokegear/seviimap1.bin similarity index 100% rename from seviimap1.bin rename to gfx/pokegear/seviimap1.bin diff --git a/seviimap2.bin b/gfx/pokegear/seviimap2.bin similarity index 100% rename from seviimap2.bin rename to gfx/pokegear/seviimap2.bin From 4432dd4d2fa9bb4fe3ba141565fb8d98ecc052d5 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Tue, 6 Aug 2024 15:30:37 +0100 Subject: [PATCH 5/6] Sevii Region groundwork This adds the baseline infrastructure to account for the Sevii Islands, while also fixing a couple of bugs. Zeta, please read the commit carefully! Only real issue I noticed was that scrolling on the town map is infinite in all three new regions, implying there's something in `pokegear.asm` I haven't accounted for. I've also ret'd the ezchat order and gen1 orders out of existence to reduce the sheer amount of 8-bit warnings. This abolishes gen1 compatibility (though this was already a bit fucked) in exchange for actually being able to debug things in a reasonable timeframe. --- constants/engine_flags.asm | 7 + constants/landmark_constants.asm | 8 +- constants/map_data_constants.asm | 18 + data/events/engine_flags.asm | 7 + data/maps/flypoints.asm | 9 + data/maps/landmarks.asm | 26 +- data/maps/spawn_points.asm | 8 + data/pokemon/ezchat_order.asm | 92 +---- data/pokemon/gen1_order.asm | 401 +-------------------- data/trainers/parties.asm | 2 +- data/wild/sevii_grass.asm | 38 ++ data/wild/sevii_water.asm | 17 + engine/overworld/landmarks.asm | 2 +- engine/overworld/wildmons.asm | 40 +- engine/pokegear/pokegear.asm | 194 ++++++++-- gfx/pokegear/{seviimap1.bin => sevii1.bin} | Bin gfx/pokegear/{seviimap2.bin => sevii2.bin} | Bin home/region.asm | 14 +- main.asm | 4 +- maps/DebugRoom.asm | 2 +- maps/FiveIsland.asm | 5 + maps/FourIsland.asm | 5 + maps/OneIsland.asm | 44 ++- maps/SevenIsland.asm | 5 + maps/SixIsland.asm | 5 + maps/ThreeIsland.asm | 5 + maps/TwoIsland.asm | 5 + 27 files changed, 425 insertions(+), 538 deletions(-) create mode 100644 data/wild/sevii_grass.asm create mode 100644 data/wild/sevii_water.asm rename gfx/pokegear/{seviimap1.bin => sevii1.bin} (100%) rename gfx/pokegear/{seviimap2.bin => sevii2.bin} (100%) diff --git a/constants/engine_flags.asm b/constants/engine_flags.asm index b0bfc44..5cd615f 100644 --- a/constants/engine_flags.asm +++ b/constants/engine_flags.asm @@ -98,6 +98,13 @@ const ENGINE_FLYPOINT_LAKE_OF_RAGE const ENGINE_FLYPOINT_BLACKTHORN const ENGINE_FLYPOINT_SILVER_CAVE + const ENGINE_FLYPOINT_ONE_ISLAND + const ENGINE_FLYPOINT_TWO_ISLAND + const ENGINE_FLYPOINT_THREE_ISLAND + const ENGINE_FLYPOINT_FOUR_ISLAND + const ENGINE_FLYPOINT_FIVE_ISLAND + const ENGINE_FLYPOINT_SIX_ISLAND + const ENGINE_FLYPOINT_SEVEN_ISLAND const ENGINE_FLYPOINT_SILENT_HILLS const ENGINE_FLYPOINT_OLD const ENGINE_FLYPOINT_UNUSED diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm index 23cca5d..fbecf43 100644 --- a/constants/landmark_constants.asm +++ b/constants/landmark_constants.asm @@ -118,11 +118,13 @@ DEF KANTO_LANDMARK EQU const_value const LANDMARK_TOHJO_FALLS ; 5d const LANDMARK_ROUTE_28 ; 5e const LANDMARK_FAST_SHIP ; 5f - const LANDMARK_ONE_ISLAND +DEF SEVII_LANDMARK_1 EQU const_value + const LANDMARK_ONE_ISLAND const LANDMARK_TWO_ISLAND const LANDMARK_THREE_ISLAND const LANDMARK_FOUR_ISLAND const LANDMARK_FIVE_ISLAND +DEF SEVII_LANDMARK_2 EQU const_value const LANDMARK_SIX_ISLAND const LANDMARK_SEVEN_ISLAND DEF NIHON_LANDMARK EQU const_value @@ -148,5 +150,7 @@ DEF NUM_LANDMARKS EQU const_value const_def const JOHTO_REGION ; 0 const KANTO_REGION ; 1 - const NIHON_REGION ; 2 + const SEVII_REGION_1 ; 2 + const SEVII_REGION_2 ; 3 + const NIHON_REGION ; 4 DEF NUM_REGIONS EQU const_value diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm index 3f5fe21..188c16f 100644 --- a/constants/map_data_constants.asm +++ b/constants/map_data_constants.asm @@ -102,6 +102,15 @@ DEF NUM_FISHGROUPS EQU const_value - 1 const SPAWN_BLACKTHORN const SPAWN_MT_SILVER const SPAWN_FAST_SHIP +; sevii 1 + const SPAWN_ONE_ISLAND + const SPAWN_TWO_ISLAND + const SPAWN_THREE_ISLAND + const SPAWN_FOUR_ISLAND + const SPAWN_FIVE_ISLAND +; sevii 2 + const SPAWN_SIX_ISLAND + const SPAWN_SEVEN_ISLAND ; nihon const SPAWN_SILENT_HILLS const SPAWN_OLD_CITY @@ -139,6 +148,15 @@ DEF KANTO_FLYPOINT EQU const_value const FLY_FUCHSIA const FLY_CINNABAR const FLY_INDIGO +DEF SEVII_FLYPOINT_1 EQU const_value ; 1-5 + const FLY_ONE_ISLAND + const FLY_TWO_ISLAND + const FLY_THREE_ISLAND + const FLY_FOUR_ISLAND + const FLY_FIVE_ISLAND +DEF SEVII_FLYPOINT_2 EQU const_value ; 6-7 + const FLY_SIX_ISLAND + const FLY_SEVEN_ISLAND DEF NIHON_FLYPOINT EQU const_value const FLY_SILENT_HILLS const FLY_OLD_CITY diff --git a/data/events/engine_flags.asm b/data/events/engine_flags.asm index 9db96d5..4e3e0a7 100644 --- a/data/events/engine_flags.asm +++ b/data/events/engine_flags.asm @@ -108,6 +108,13 @@ EngineFlags: engine_flag wVisitedSpawns, SPAWN_LAKE_OF_RAGE engine_flag wVisitedSpawns, SPAWN_BLACKTHORN engine_flag wVisitedSpawns, SPAWN_MT_SILVER + engine_flag wVisitedSpawns, SPAWN_ONE_ISLAND + engine_flag wVisitedSpawns, SPAWN_TWO_ISLAND + engine_flag wVisitedSpawns, SPAWN_THREE_ISLAND + engine_flag wVisitedSpawns, SPAWN_FOUR_ISLAND + engine_flag wVisitedSpawns, SPAWN_FIVE_ISLAND + engine_flag wVisitedSpawns, SPAWN_SIX_ISLAND + engine_flag wVisitedSpawns, SPAWN_SEVEN_ISLAND engine_flag wVisitedSpawns, SPAWN_SILENT_HILLS engine_flag wVisitedSpawns, SPAWN_OLD_CITY engine_flag wVisitedSpawns, NUM_SPAWNS ; unused diff --git a/data/maps/flypoints.asm b/data/maps/flypoints.asm index 8c983cd..1400a2c 100644 --- a/data/maps/flypoints.asm +++ b/data/maps/flypoints.asm @@ -27,6 +27,15 @@ Flypoints: db LANDMARK_FUCHSIA_CITY, SPAWN_FUCHSIA db LANDMARK_CINNABAR_ISLAND, SPAWN_CINNABAR db LANDMARK_INDIGO_PLATEAU, SPAWN_INDIGO +; Sevii 1 + db LANDMARK_ONE_ISLAND, SPAWN_ONE_ISLAND + db LANDMARK_TWO_ISLAND, SPAWN_TWO_ISLAND + db LANDMARK_THREE_ISLAND, SPAWN_THREE_ISLAND + db LANDMARK_FOUR_ISLAND, SPAWN_FOUR_ISLAND + db LANDMARK_FIVE_ISLAND, SPAWN_FIVE_ISLAND + db LANDMARK_SIX_ISLAND, SPAWN_SIX_ISLAND + db LANDMARK_SEVEN_ISLAND, SPAWN_SEVEN_ISLAND +; Sevii 2 ; Nihon db LANDMARK_SILENT_HILLS, SPAWN_SILENT_HILLS db LANDMARK_OLD_CITY, SPAWN_OLD_CITY diff --git a/data/maps/landmarks.asm b/data/maps/landmarks.asm index 8279f39..71f3c69 100644 --- a/data/maps/landmarks.asm +++ b/data/maps/landmarks.asm @@ -122,13 +122,15 @@ Landmarks: landmark 20, 68, Route28Name landmark 140, 116, FastShipName ; Sevii stuff - landmark 0, 0, UnknownName ; One Island - landmark 0, 0, UnknownName ; Two Island - landmark 0, 0, UnknownName ; Three Island - landmark 0, 0, UnknownName ; Four Island - landmark 0, 0, UnknownName ; Five Island - landmark 0, 0, UnknownName ; Six Island - landmark 0, 0, UnknownName ; Seven Island + assert_table_length SEVII_LANDMARK_1 + landmark 28, 52, OneIslandName ; One Island + landmark 60, 44, TwoIslandName ; Two Island + landmark 132, 52, ThreeIslandName ; Three Island + landmark 28, 108, FourIslandName ; Four Island + landmark 116, 100, FiveIslandName ; Five Island + assert_table_length SEVII_LANDMARK_2 + landmark 44, 76, SixIslandName ; Six Island + landmark 116, 76, SevenIslandName ; Seven Island assert_table_length NIHON_LANDMARK landmark 108, 116, WinnersPathName landmark 92, 108, SilentHillsName @@ -246,6 +248,16 @@ TohjoFallsName: db "TOHJO FALLS@" UndergroundName: db "UNDERGROUND@" BattleTowerName: db "BATTLE¯TOWER@" SpecialMapName: db "SPECIAL@" +; Sevii +OneIslandName: db "ONE¯ISLAND@" +TwoIslandName: db "TWO¯ISLAND@" +ThreeIslandName: db "THREE¯ISLAND@" +FourIslandName: db "FOUR¯ISLAND@" +FiveIslandName: db "FIVE¯ISLAND@" +; these would be in cat 2 +SixIslandName: db "SIX¯ISLAND@" +SevenIslandName: db "SEVEN¯ISLAND@" +; Nihon WinnersPathName: db "WINNER'S¯PATH@" SilentHillsName: db "SILENT¯HILLS@" UnknownName: db "?????@" diff --git a/data/maps/spawn_points.asm b/data/maps/spawn_points.asm index 907f71d..a52bea3 100644 --- a/data/maps/spawn_points.asm +++ b/data/maps/spawn_points.asm @@ -39,6 +39,14 @@ SpawnPoints: spawn SILVER_CAVE_OUTSIDE, 23, 20 spawn FAST_SHIP_CABINS_SW_SSW_NW, 6, 2 + spawn ONE_ISLAND, 17, 7 + spawn TWO_ISLAND, 17, 7 ; these are placeholders and hopefully zeta will make them all good and proper them before testing + spawn THREE_ISLAND, 17, 7 + spawn FOUR_ISLAND, 17, 7 + spawn FIVE_ISLAND, 17, 7 + spawn SIX_ISLAND, 17, 7 + spawn SEVEN_ISLAND, 17, 7 + spawn SILENT_HILLS, 13, 5 spawn OLD_CITY, 27, 29 diff --git a/data/pokemon/ezchat_order.asm b/data/pokemon/ezchat_order.asm index cb9a60d..ce66cde 100644 --- a/data/pokemon/ezchat_order.asm +++ b/data/pokemon/ezchat_order.asm @@ -2,94 +2,4 @@ ; Notably, Rhydon is missing (it should be before Rhyhorn). EZChat_SortedPokemon: - dw .a - dw .i - dw .u - dw .e - dw .o - dw .ka_ga - dw .ki_gi - dw .ku_gu - dw .ke_ge - dw .ko_go - dw .sa_za - dw .shi_ji - dw .su_zu - dw .se_ze - dw .so_zo - dw .ta_da - dw .chi_dhi - dw .tsu_du - dw .te_de - dw .to_do - dw .na - dw .ni - dw .nu - dw .ne - dw .no - dw .ha_ba_pa - dw .hi_bi_pi - dw .fu_bu_pu - dw .he_be_pe - dw .ho_bo_po - dw .ma - dw .mi - dw .mu - dw .me - dw .mo - dw .ya - dw .yu - dw .yo - dw .ra - dw .ri - dw .ru - dw .re - dw .ro - dw .wa - dw .end - -.a: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, -1 -.i: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, -1 -.u: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, -1 -.e: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, -1 -.o: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, -1 -.ka_ga: db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, -1 -.ki_gi: db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, -1 -.ku_gu: db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, -1 -.ke_ge: db ABRA, GENGAR, TAUROS, -1 -.ko_go: db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, -1 -.sa_za: db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, -1 ; RHYDON should lead this list -.shi_ji: db SEADRA, SHELLDER, VAPOREON, DEWGONG, -1 -.su_zu: db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, -1 -.se_ze: db SQUIRTLE, CELEBI, -1 -.so_zo: db WOBBUFFET, -1 -.ta_da: db DUGTRIO, HORSEA, EXEGGCUTE, -1 -.chi_dhi: db CHIKORITA, CHINCHOU, -1 -.tsu_du: db SHUCKLE, -1 -.te_de: db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, -1 -.to_do: db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, -1 -.na: db ODDISH, EXEGGUTOR, -1 -.ni: db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, -1 -.nu: db QUAGSIRE, -1 -.ne: db NATU, XATU, -1 -.no: db DUNSPARCE, -1 -.ha_ba_pa: db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, -1 -.hi_bi_pi: db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, -1 -.fu_bu_pu: db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, -1 -.he_be_pe: db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, -1 -.ho_bo_po: db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, -1 -.ma: db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, -1 -.mi: db DRATINI, MEW, MEWTWO, MILTANK, -1 -.mu: db MISDREAVUS, SMOOCHUM, -1 -.me: db MEGANIUM, DITTO, TENTACOOL, MAREEP, -1 -.mo: db FLAAFFY, VENOMOTH, TANGELA, -1 -.ya: db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, -1 -.yu: db KADABRA, -1 -.yo: db LARVITAR, NOCTOWL, -1 -.ra: db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, -1 -.ri: db CHARMELEON, CHARIZARD, URSARING, -1 -.ru: db JYNX, LUGIA, -1 -.re: db MAGNETON, LEDIAN, LEDYBA, -1 -.ro: db VULPIX, -1 -.wa: db JUMPLUFF, TOTODILE, MACHOP ;, -1 -.end: db -1 + ret ; removed for space among other things diff --git a/data/pokemon/gen1_order.asm b/data/pokemon/gen1_order.asm index 1e25683..a68107c 100644 --- a/data/pokemon/gen1_order.asm +++ b/data/pokemon/gen1_order.asm @@ -1,399 +1,4 @@ Pokered_MonIndices: - table_width 1, Pokered_MonIndices - db RHYDON - db KANGASKHAN - db NIDORAN_M - db CLEFAIRY - db SPEAROW - db VOLTORB - db NIDOKING - db SLOWBRO - db IVYSAUR - db EXEGGUTOR - db LICKITUNG - db EXEGGCUTE - db GRIMER - db GENGAR - db NIDORAN_F - db NIDOQUEEN - db CUBONE - db RHYHORN - db LAPRAS - db ARCANINE - db MEW - db GYARADOS - db SHELLDER - db TENTACOOL - db GASTLY - db SCYTHER - db STARYU - db BLASTOISE - db PINSIR - db TANGELA - db SCIZOR ; MISSINGNO. - db SHUCKLE ; MISSINGNO. - db NIDOREIGN - db GROWLITHE - db ONIX - db FEAROW - db PIDGEY - db SLOWPOKE - db KADABRA - db GRAVELER - db CHANSEY - db MACHOKE - db MR__MIME - db HITMONLEE - db HITMONCHAN - db ARBOK - db PARASECT - db PSYDUCK - db DROWZEE - db GOLEM - db HERACROSS ; MISSINGNO. - db MAGMAR - db HO_OH ; MISSINGNO. - db ELECTABUZZ - db MAGNETON - db KOFFING - db SNEASEL ; MISSINGNO. - db MANKEY - db SEEL - db DIGLETT - db TAUROS - db TEDDIURSA ; MISSINGNO. - db URSARING ; MISSINGNO. - db SLUGMA ; MISSINGNO. - db FARFETCH_D - db VENONAT - db DRAGONITE - db MAGCARGO ; MISSINGNO. - db SWINUB ; MISSINGNO. - db PILOSWINE ; MISSINGNO. - db DODUO - db POLIWAG - db JYNX - db MOLTRES - db ARTICUNO - db ZAPDOS - db DITTO - db MEOWTH - db KRABBY - db CORSOLA ; MISSINGNO. - db REMORAID ; MISSINGNO. - db OCTILLERY ; MISSINGNO. - db VULPIX - db NINETALES - db PIKACHU - db RAICHU - db DELIBIRD ; MISSINGNO. - db MANTINE ; MISSINGNO. - db DRATINI - db DRAGONAIR - db KABUTO - db KABUTOPS - db HORSEA - db SEADRA - db SKARMORY ; MISSINGNO. - db HOUNDOUR ; MISSINGNO. - db SANDSHREW - db SANDSLASH - db OMANYTE - db OMASTAR - db JIGGLYPUFF - db WIGGLYTUFF - db EEVEE - db FLAREON - db JOLTEON - db VAPOREON - db MACHOP - db ZUBAT - db EKANS - db PARAS - db POLIWHIRL - db POLIWRATH - db WEEDLE - db KAKUNA - db BEEDRILL - db HOUNDOOM ; MISSINGNO. - db DODRIO - db PRIMEAPE - db DUGTRIO - db VENOMOTH - db DEWGONG - db TRICULES - db KINGDRA ; MISSINGNO. - db PHANPY ; MISSINGNO. - db CATERPIE - db METAPOD - db BUTTERFREE - db MACHAMP - db DONPHAN ; MISSINGNO. - db GOLDUCK - db HYPNO - db GOLBAT - db MEWTWO - db SNORLAX - db MAGIKARP - db PORYGON2 ; MISSINGNO. - db STANTLER ; MISSINGNO. - db MUK - db SMEARGLE ; MISSINGNO. - db KINGLER - db CLOYSTER - db TYROGUE ; MISSINGNO. - db ELECTRODE - db CLEFABLE - db WEEZING - db PERSIAN - db MAROWAK - db HITMONTOP ; MISSINGNO. - db HAUNTER - db ABRA - db ALAKAZAM - db PIDGEOTTO - db PIDGEOT - db STARMIE - db BULBASAUR - db VENUSAUR - db TENTACRUEL - db SMOOCHUM ; MISSINGNO. - db GOLDEEN - db SEAKING - db ELEKID ; MISSINGNO. - db MAGBY ; MISSINGNO. - db MILTANK ; MISSINGNO. - db BLISSEY ; MISSINGNO. - db PONYTA - db RAPIDASH - db RATTATA - db RATICATE - db NIDORINO - db NIDORINA - db GEODUDE - db PORYGON - db AERODACTYL - db BLASTYKE - db RAIKOU ; MISSINGNO. - db MAGNEMITE - db ENTEI ; MISSINGNO. - db SUICUNE ; MISSINGNO. - db CHARMANDER - db SQUIRTLE - db CHARMELEON - db WARTORTLE - db CHARIZARD - db TOTARTLE - db LARVITAR ; MISSINGNO. - db PUPITAR ; MISSINGNO. KABUTOPS FOSSIL - db TYRANITAR ; MISSINGNO. AERODACTYL FOSSIL - db LUGIA ; MISSINGNO. GHOST - db ODDISH - db GLOOM - db VILEPLUME - db BELLSPROUT - db WEEPINBELL - db VICTREEBEL - assert_table_length 194 ; gen 1 mon indexes - db CHIKORITA - db BAYLEEF - db MEGANIUM - db CYNDAQUIL - db QUILAVA - db TYPHLOSION - db TOTODILE - db CROCONAW - db FERALIGATR - db CUBBURN - db FLAMBEAR - db BRUINOUS - db PALSSIO - db PRESSIO - db DONMARIN - db SENTRET - db FURRET - db HOOTHOOT - db NOCTOWL - db LEDYBA - db LEDIAN - db SPINARAK - db ARIADOS - db CROBAT - db CHINCHOU - db LANTURN - db PICHU - db CLEFFA - db IGGLYBUFF - db TOGEPI - db TOGETIC - db TOGEKISS - db NATU - db XATU - db MOIBELLE - db BELLEDAM - db MAREEP - db FLAAFFY - db AMPHAROS - db BELLOSSOM - db MARILL - db AZUMARILL - db SUDOWOODO - db POLITOED - db HOPPIP - db SKIPLOOM - db JUMPLUFF - db AIPOM - db SUNKERN - db SUNFLORA - db AERCROW - db YANMA - db PENDING03 - db WOOPER - db QUAGSIRE - db ESPEON - db UMBREON - db MURKROW - db SLOWKING - db MISDREAVUS - db MISMAGIUS - db STROMEN - db PHANDARIN - db UNOWN - db WYNAUT - db WOBBUFFET - db BIPULLA - db GIRAFARIG - db FARIGIRAF - db EMORDROME - db PINECO - db FORRETRESS - db DUNSPARCE - db DUDUNSPARCE - db GLIGAR - db STEELIX - db SNUBBULL - db GRANBULL - db QWILFISH - db BELLIGNAN - db WALKING_WAKE - db SHI_SHI - db MUNCHLAX - db KLEAVOR - db URSALUNA - db GOROCHU - db GENTLARVA - db PUPAL - db CARAPTHOR - db KOTORA - db GAOTORA - db GOROTORA - db RAITORA - db BITTYBAT - db VULPIII - db PARASPOR - db ANNIHILAPE - db PUPPERON - db COINPUR - db PERRSERKER - db LEAFEON - db GLACEON - db SYLVEON - db LICKILICKY - db LICKILORD - db BURGELA - db TANGROWTH - db JUNGELA - db FOLAGE - db BARREAU - db RAGING_BOLT - db GOUGING_FIRE - db POCKLE - db WARUCHU - db SONEGG - db CACAWPHONY - db TREBIR - db SAKURAZE - db AMANOBI - db TRUSTAN - db KUWAGUARD - db TONQUITO - db MOLAMBINO - db LUANBO - db GRANBO - db ANGORE - db EUCALA - db KIWOOKED - db CYCLORP - db KITSEN - db WISPIRIT - db COATL - db MIMEAR - db INOSHIKA - db RUDDERNAUT - db XYLODON - db XYLOFIN - db DOKUROAR - db SCREAM_TAIL - db SANDY_SHOCKS - db GREAT_TUSK - db FLUTTER_MANE - db IRON_TREADS - db IRON_BUNDLE - db IRON_THORNS - db ORFRY - db CHEEP - db JABETTA - db RIBBITO - db CROAKOZUNA - db DISTURBAN - db REROAD - db QATU - db AZURILL - db AMBIPOM - db SUNBUD - db HIPPUNK - db FOXFIRE - db YANMEGA - db KAZAPPELIN - db QWILFATHER - db STRICHEEL - db LURREEL - db MANTYKE - db WEIRDUCK - db LUXWAN - db CHARMADA - db MAGIPREY - db TERRADOS - db TOEDSCOOL - db TOEDSCRUEL - db BLOTTLE - db PENDRAKEN - db KOLTA - db BALUMBA - db MAGNETITE - db MAGNEZONE - db GAVILLAIN - db BUU - db GRENMAR - db SMUJJ - db GUARDIA - db HAPPINY - db MIME_JR_ - db ELECTIVIRE - db MAGMORTAR - db MIMMEO - db SQUEAMATA - db MINISTARE - db IGUANARCH - db BONSLY - db HONCHKROW - db CARETORKER - db PORYGON_Z - db WYRDEER - db ELEBEBI - db FERADACTYL - db DECILLA - db GAWARHED - db MAMOSWINE - db HIRSUSWINE - assert_table_length NUM_POKEMON - 1 + ret ; this has been removed as it's unnecessary and makes debugging extremely difficult - we're removing the compatibility with KEP anyway + + ; if you want to make a new list, then go ahead, just make sure to let us know and all that diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index 049f090..512e277 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -485,7 +485,7 @@ PKMNTrainerGroup: dw PIDGEOT dw DOUBLE_EDGE, WING_ATTACK, MIRROR_MOVE, PURSUIT db 60 - db PILOSWINE ; MAMOSWINE + dw PILOSWINE ; MAMOSWINE dw EARTHQUAKE, BODY_SLAM, ROAR, ANCIENTPOWER db 60 dw SLOWKING diff --git a/data/wild/sevii_grass.asm b/data/wild/sevii_grass.asm new file mode 100644 index 0000000..9719dca --- /dev/null +++ b/data/wild/sevii_grass.asm @@ -0,0 +1,38 @@ +; Sevii Pokémon in grass + +; General philosophies: +; - Alolan Pokemon will be encounterable, as the Sevii Islands are a tropical area. +; - It's still Kanto, so we will feature more Kanto than Johto Pokemon. Basically, this will use the "classic Johto" philosophy of hiding them in the back. +; - Minimal, if any, Nihon Pokemon. + +SeviiGrassWildMons: + + def_grass_wildmons KINDLE_ROAD + db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite + ; morn + dbw 30, FEAROW + dbw 31, PERSIAN ; PERSIANA + dbw 30, GOLDUCK + dbw 31, GRAVELER ; GRAVELERA + dbw 32, RAPIDASH + dbw 32, SLOWBRO ; Could be Galarian Slowbro considering the Isle of Armor but I'm not sure, given this would mix regional variant origins... + dbw 35, SLOWKING + ; day + dbw 30, FEAROW + dbw 31, PERSIAN ; PERSIANA + dbw 30, GOLDUCK + dbw 31, GRAVELER ; GRAVELERA + dbw 32, RAPIDASH + dbw 32, SLOWBRO + dbw 35, SLOWKING + ; nite + dbw 30, NOCTOWL + dbw 31, PERSIAN + dbw 30, MURKROW + dbw 31, GRAVELER + dbw 32, RAPIDASH + dbw 32, SLOWBRO + dbw 35, SLOWKING + end_grass_wildmons + + db -1 ; end diff --git a/data/wild/sevii_water.asm b/data/wild/sevii_water.asm new file mode 100644 index 0000000..f4b6a9f --- /dev/null +++ b/data/wild/sevii_water.asm @@ -0,0 +1,17 @@ +; Sevii Pokémon in grass + +; General philosophies: +; - Alolan Pokemon will be encounterable, as the Sevii Islands are a tropical area. +; - It's still Kanto, so we will feature more Kanto than Johto Pokemon. Basically, this will use the "classic Johto" philosophy of hiding them in the back. +; - Minimal, if any, Nihon Pokemon. + +SeviiWaterWildMons: + + def_water_wildmons KINDLE_ROAD + db 4 percent ; encounter rates: morn/day/nite + dbw 30, GRENMAR ; Water/Fire, y'know, it's kinda cute + dbw 31, SEADRA + dbw 30, GYARADOS + end_water_wildmons + + db -1 ; end diff --git a/engine/overworld/landmarks.asm b/engine/overworld/landmarks.asm index 1b9ccfd..42e914d 100644 --- a/engine/overworld/landmarks.asm +++ b/engine/overworld/landmarks.asm @@ -68,7 +68,7 @@ RegionCheck: .checkagain cp NIHON_LANDMARK - jr z, .nihon + jr nc, .nihon cp KANTO_LANDMARK jr c, .johto diff --git a/engine/overworld/wildmons.asm b/engine/overworld/wildmons.asm index f2098cf..16840fb 100644 --- a/engine/overworld/wildmons.asm +++ b/engine/overworld/wildmons.asm @@ -38,8 +38,12 @@ FindNest: ld b, h ld c, l ld a, e - cp 2 + cp NIHON_REGION jr z, .nihon + cp SEVII_REGION_2 + jr z, .sevii ; these areas are small enough to that we shouldn't need two separate tables for these regions. + cp SEVII_REGION_1 + jr z, .sevii and a jr nz, .kanto decoord 0, 0 @@ -58,6 +62,13 @@ FindNest: ld hl, KantoWaterWildMons jp .FindWater +.sevii + decoord 0, 0 + ld hl, SeviiGrassWildMons + call .FindGrass + ld hl, SeviiWaterWildMons + jp .FindWater + .nihon decoord 0, 0 ld hl, NihonGrassWildMons @@ -439,7 +450,7 @@ _GrassWildmonLookup: ld hl, JohtoGrassWildMons ; Old Nihon Check from 2023. -; Testing new method. +; it's painfully broken and bad, don't use it unless you have brighter ideas for the below ; Nihon Check ; Basically, conditionally load Nihon or Kanto into de, depending on region check. ; IsInJohto returns 1 if Kanto, 2 if Nihon. @@ -463,9 +474,16 @@ _GrassWildmonLookup: ld c, a call GetWorldMapLocation cp NIHON_LANDMARK - jr nc, .skip2 + jr nc, .johto + + ; account for sevii + ld de, SeviiGrassWildMons + cp SEVII_LANDMARK_2 ; I am 90% sure this check is unnecessary when in tandem with landmark 1. + jr nc, .johto + cp SEVII_LANDMARK_1 + jr nc, .johto ld de, KantoGrassWildMons -.skip2 +.johto call _JohtoWildmonCheck ; So run this check. More commentary there. ld bc, GRASS_WILDDATA_LENGTH @@ -486,9 +504,17 @@ _WaterWildmonLookup: ld c, a call GetWorldMapLocation cp NIHON_LANDMARK - jr nc, .skip2 + jr nc, .johto + + ; account for sevii + ld de, SeviiWaterWildMons + cp SEVII_LANDMARK_2 + jr nc, .johto + cp SEVII_LANDMARK_1 + jr nc, .johto + ld de, KantoWaterWildMons -.skip2 +.johto call _JohtoWildmonCheck ld bc, WATER_WILDDATA_LENGTH @@ -1074,6 +1100,8 @@ INCLUDE "data/wild/johto_grass.asm" INCLUDE "data/wild/johto_water.asm" INCLUDE "data/wild/kanto_grass.asm" INCLUDE "data/wild/kanto_water.asm" +INCLUDE "data/wild/sevii_grass.asm" +INCLUDE "data/wild/sevii_water.asm" INCLUDE "data/wild/nihon_grass.asm" INCLUDE "data/wild/nihon_water.asm" INCLUDE "data/wild/swarm_grass.asm" diff --git a/engine/pokegear/pokegear.asm b/engine/pokegear/pokegear.asm index c9de376..2065ea0 100644 --- a/engine/pokegear/pokegear.asm +++ b/engine/pokegear/pokegear.asm @@ -19,12 +19,16 @@ DEF PHONE_DISPLAY_HEIGHT EQU 4 const POKEGEARSTATE_KANTOMAPJOYPAD ; 6 const POKEGEARSTATE_NIHONMAPINIT ; 5 const POKEGEARSTATE_NIHONMAPJOYPAD ; 6 - const POKEGEARSTATE_PHONEINIT ; 7 - const POKEGEARSTATE_PHONEJOYPAD ; 8 - const POKEGEARSTATE_MAKEPHONECALL ; 9 - const POKEGEARSTATE_FINISHPHONECALL ; a - const POKEGEARSTATE_RADIOINIT ; b - const POKEGEARSTATE_RADIOJOYPAD ; c + const POKEGEARSTATE_SEVII1MAPINIT ; 7 + const POKEGEARSTATE_SEVII1MAPJOYPAD ; 8 + const POKEGEARSTATE_SEVII2MAPINIT ; 9 + const POKEGEARSTATE_SEVII2MAPJOYPAD ; 0A + const POKEGEARSTATE_PHONEINIT ; 0B + const POKEGEARSTATE_PHONEJOYPAD ; 0C + const POKEGEARSTATE_MAKEPHONECALL ; 0D + const POKEGEARSTATE_FINISHPHONECALL ; 0E + const POKEGEARSTATE_RADIOINIT ; 0F + const POKEGEARSTATE_RADIOJOYPAD ; 10 PokeGear: ld hl, wOptions @@ -330,6 +334,10 @@ InitPokegearTilemap: jr z, .johto cp NIHON_LANDMARK jr nc, .nihon + cp SEVII_LANDMARK_1 + jr nc, .sevii1 + cp SEVII_LANDMARK_2 + jr nc, .sevii2 cp KANTO_LANDMARK jr nc, .kanto .johto @@ -339,9 +347,14 @@ InitPokegearTilemap: .kanto ld e, 1 jr .ok - -.nihon +.sevii1 ld e, 2 + jr .ok +.sevii2 + ld e, 3 + jr .ok +.nihon + ld e, 4 .ok farcall PokegearMap ld a, $07 @@ -452,6 +465,10 @@ PokegearJumptable: dw PokegearMap_Init dw PokegearMap_KantoMap dw PokegearMap_Init + dw PokegearMap_Sevii1Map + dw PokegearMap_Init + dw PokegearMap_Sevii2Map + dw PokegearMap_Init dw PokegearMap_NihonMap dw PokegearPhone_Init dw PokegearPhone_Joypad @@ -540,12 +557,18 @@ Pokegear_UpdateClock: PokegearMap_CheckRegion: ld a, [wPokegearMapPlayerIconLandmark] + ; let's check sevii first - checking the highest ones first simplifies architecture a bit. + cp LANDMARK_SEVEN_ISLAND+1 + jr c, .nihon + cp LANDMARK_FAST_SHIP+1 + jr c, .sevii1 + cp LANDMARK_FIVE_ISLAND+1 + jr c, .sevii2 cp LANDMARK_SILVER_CAVE+1 jr c, .johto cp LANDMARK_FAST_SHIP+1 jr c, .kanto - ;cp NIHON_LANDMARK - jp .nihon + jp .nihon ; if all else fails .johto ld a, POKEGEARSTATE_JOHTOMAPINIT jr .done @@ -555,7 +578,14 @@ PokegearMap_CheckRegion: ld a, POKEGEARSTATE_KANTOMAPINIT jr .done ret - +.sevii1 + ld a, POKEGEARSTATE_SEVII1MAPINIT + jr .done + ret +.sevii2 + ld a, POKEGEARSTATE_SEVII2MAPINIT + jr .done + ret .nihon ld a, POKEGEARSTATE_NIHONMAPINIT .done @@ -581,6 +611,14 @@ PokegearMap_KantoMap: call TownMap_GetKantoLandmarkLimits jr PokegearMap_ContinueMap +PokegearMap_Sevii1Map: + call TownMap_GetSevii1LandmarkLimits + jr PokegearMap_ContinueMap + +PokegearMap_Sevii2Map: + call TownMap_GetSevii2LandmarkLimits + jr PokegearMap_ContinueMap + PokegearMap_NihonMap: call TownMap_GetNihonLandmarkLimits jr PokegearMap_ContinueMap @@ -761,10 +799,24 @@ TownMap_GetKantoLandmarkLimits: ld e, LANDMARK_PALLET_TOWN ret +; BUG: For some reason, backward scrolling on the new regions is infinite! +; You end up having Red call the player's name with 9999s and stuff it's really cool actually +TownMap_GetSevii1LandmarkLimits: + ld a, [wStatusFlags] + ld d, LANDMARK_ONE_ISLAND + ld e, LANDMARK_FIVE_ISLAND ; This will need to be changed as Five Island's stuff is added. + ret + +TownMap_GetSevii2LandmarkLimits: + ld a, [wStatusFlags] + ld d, LANDMARK_SIX_ISLAND + ld e, LANDMARK_SEVEN_ISLAND ; Likewise. Veeery likewise. + ret + TownMap_GetNihonLandmarkLimits: ld a, [wStatusFlags] ld d, LANDMARK_SILENT_HILLS - ld e, LANDMARK_WHITE_CITY ; Gonna need another map. + ld e, LANDMARK_WHITE_CITY ret PokegearRadio_Init: @@ -1574,7 +1626,7 @@ RadioChannels: jr z, .johto cp LANDMARK_SILVER_CAVE+1 jr c, .johto -; kanto or nihon +; kanto or nihon (and sevii too i take it) and a ret @@ -1838,6 +1890,10 @@ _TownMap: ld a, [wTownMapPlayerIconLandmark] cp NIHON_LANDMARK jr nc, .nihon + cp SEVII_LANDMARK_1 + jr nc, .sevii1 + cp SEVII_LANDMARK_2 + jr nc, .sevii2 cp KANTO_LANDMARK jr nc, .kanto ld d, KANTO_LANDMARK - 1 @@ -1849,6 +1905,14 @@ _TownMap: call TownMap_GetKantoLandmarkLimits call .loop +.sevii1 + call TownMap_GetSevii1LandmarkLimits + call .loop + +.sevii2 + call TownMap_GetSevii2LandmarkLimits + call .loop + .nihon call TownMap_GetNihonLandmarkLimits call .loop @@ -1925,19 +1989,29 @@ _TownMap: .InitTilemap: ld a, [wTownMapPlayerIconLandmark] + cp LANDMARK_FAST_SHIP+1 + jr c, .sevii1 + cp LANDMARK_FIVE_ISLAND+1 + jr c, .sevii2 + cp LANDMARK_SEVEN_ISLAND+1 + jr c, .nihon cp LANDMARK_SILVER_CAVE + 1 ; last johto landmark + 1 jr c, .johto2 cp LANDMARK_FAST_SHIP + 1 ; last kanto landmark + 1 jr c, .kanto2 - jp .nihon2 - + jp .nihon2 ; error handler .johto2 ld e, JOHTO_REGION jr .okay_tilemap - .kanto2 ld e, KANTO_REGION jr .okay_tilemap +.sevii12 + ld e, SEVII_REGION_1 + jr .okay_tilemap +.sevii22 + ld e, SEVII_REGION_2 + jr .okay_tilemap .nihon2 ld e, NIHON_REGION .okay_tilemap @@ -2063,11 +2137,25 @@ PokegearMap: .kanto cp KANTO_REGION - jr nz, .nihon + jr nz, .sevii1 call LoadTownMapGFX call FillKantoMap ret +.sevii1 + cp SEVII_REGION_1 + jr nz, .sevii2 + call LoadTownMapGFX + call FillSevii1Map + ret + +.sevii2 + cp SEVII_REGION_2 + jr nz, .nihon + call LoadTownMapGFX + call FillSevii2Map + ret + .nihon call LoadTownMapGFX call FillNihonMap @@ -2317,8 +2405,12 @@ FlyMap: ; The first 46 locations are part of Johto. The rest are in Kanto. cp NIHON_LANDMARK jr nc, .NihonFlyMap + cp SEVII_LANDMARK_1 + jr nc, .Sevii1FlyMap + cp SEVII_LANDMARK_2 + jp nc, .Sevii2FlyMap cp KANTO_LANDMARK - jr nc, .KantoFlyMap + jp nc, .KantoFlyMap ; Johto fly map ; Note that .NoKanto should be modified in tandem with this branch push af @@ -2343,6 +2435,7 @@ FlyMap: ; To prevent both of these things from happening when the player ; enters Kanto, fly access is restricted until Indigo Plateau is ; visited and its flypoint enabled. +; the nihon and sevii areas inherit this which is probably quite iffy given winner's path exists but hey push af ld c, SPAWN_INDIGO call HasVisitedSpawn @@ -2362,14 +2455,6 @@ FlyMap: ret .NihonFlyMap: -; The event that there are no flypoints enabled in a map is not -; accounted for. As a result, if you attempt to select a flypoint -; when there are none enabled, the game will crash. Additionally, -; the flypoint selection has a default starting point that -; can be flown to even if none are enabled. -; To prevent both of these things from happening when the player -; enters Kanto, fly access is restricted until Indigo Plateau is -; visited and its flypoint enabled. push af ld c, SPAWN_SILENT_HILLS call HasVisitedSpawn @@ -2388,6 +2473,44 @@ FlyMap: call TownMapPlayerIcon ret +.Sevii1FlyMap: + push af + ld c, SPAWN_ONE_ISLAND + call HasVisitedSpawn + and a + jr z, .NoKanto +; Nihon's map is only loaded if we've visited Silent Hills + ld a, SEVII_FLYPOINT_1 ; first sevii1 flypoint + ld [wStartFlypoint], a + ld a, SEVII_FLYPOINT_2 - 1 ; last sevii1 flypoint + ld [wEndFlypoint], a + ld [wTownMapPlayerIconLandmark], a ; last one is default (Silent Hills) +; Fill out the map + call FillSevii1Map + call .MapHud + pop af + call TownMapPlayerIcon + ret + +.Sevii2FlyMap: + push af + ld c, SPAWN_FIVE_ISLAND + call HasVisitedSpawn + and a + jr z, .NoKanto +; Nihon's map is only loaded if we've visited Silent Hills + ld a, SEVII_FLYPOINT_2 ; first sevii1 flypoint + ld [wStartFlypoint], a + ld a, NIHON_FLYPOINT - 1 ; last sevii1 flypoint + ld [wEndFlypoint], a + ld [wTownMapPlayerIconLandmark], a ; last one is default (Silent Hills) +; Fill out the map + call FillSevii2Map + call .MapHud + pop af + call TownMapPlayerIcon + ret + .NoKanto: ; If Indigo Plateau hasn't been visited, we use Johto's map instead ld a, JOHTO_FLYPOINT ; first Johto flypoint @@ -2409,6 +2532,8 @@ FlyMap: ld [wTownMapCursorCoordinates + 1], a ret +; If you have trouble seeing areas for wildmons it's probably because of this +; it doesn't account for nihon or the sevii isles right now Pokedex_GetArea: ; e: Current landmark ld a, [wTownMapPlayerIconLandmark] @@ -2644,6 +2769,9 @@ Pokedex_GetArea: db 0 * 8, 0 * 8, 3 ; bottom right db $80 ; terminator +; does not account for nihon or the two seviis +; it shouldn't come up given the fast ship isn't being used for anything like this +; if an error comes up you'll need to sort it out .CheckPlayerLocation: ; Don't show the player's sprite if you're ; not in the same region as what's currently @@ -2723,6 +2851,14 @@ FillKantoMap: ld de, KantoMap jr FillTownMap +FillSevii1Map: + ld de, Sevii1Map + jr FillTownMap + +FillSevii2Map: + ld de, Sevii2Map + jr FillTownMap + FillNihonMap: ld de, NihonMap FillTownMap: @@ -2875,6 +3011,12 @@ INCBIN "gfx/pokegear/johto.bin" KantoMap: INCBIN "gfx/pokegear/kanto.bin" +Sevii1Map: +INCBIN "gfx/pokegear/sevii1.bin" + +Sevii2Map: +INCBIN "gfx/pokegear/sevii2.bin" + NihonMap: INCBIN "gfx/pokegear/nihon.bin" diff --git a/gfx/pokegear/seviimap1.bin b/gfx/pokegear/sevii1.bin similarity index 100% rename from gfx/pokegear/seviimap1.bin rename to gfx/pokegear/sevii1.bin diff --git a/gfx/pokegear/seviimap2.bin b/gfx/pokegear/sevii2.bin similarity index 100% rename from gfx/pokegear/seviimap2.bin rename to gfx/pokegear/sevii2.bin diff --git a/home/region.asm b/home/region.asm index b855bed..44e7266 100644 --- a/home/region.asm +++ b/home/region.asm @@ -21,7 +21,11 @@ IsInJohto:: .CheckRegion: cp NIHON_LANDMARK - jr z, .Nihon + jr c, .Nihon + cp SEVII_LANDMARK_1 + jr c, .sevii1 + cp SEVII_LANDMARK_2 + jr c, .sevii2 cp KANTO_LANDMARK jr nc, .Kanto @@ -33,6 +37,14 @@ IsInJohto:: ld a, KANTO_REGION ret +.sevii1: + ld a, SEVII_REGION_1 + ret + +.sevii2: + ld a, SEVII_REGION_2 + ret + .Nihon: ld a, NIHON_REGION ret diff --git a/main.asm b/main.asm index 3cf7922..72c65af 100644 --- a/main.asm +++ b/main.asm @@ -315,9 +315,11 @@ INCLUDE "engine/phone/phone.asm" INCLUDE "engine/rtc/timeset.asm" INCLUDE "engine/pokegear/pokegear.asm" INCLUDE "engine/events/fish.asm" -INCLUDE "engine/games/slot_machine.asm" INCLUDE "data/pokemon/first_stages.asm" +SECTION "bank24 spillover", ROMX +INCLUDE "engine/games/slot_machine.asm" + SECTION "Phone Scripts 1", ROMX INCLUDE "engine/phone/scripts/generic_caller.asm" diff --git a/maps/DebugRoom.asm b/maps/DebugRoom.asm index f0556b0..22043e7 100644 --- a/maps/DebugRoom.asm +++ b/maps/DebugRoom.asm @@ -398,7 +398,7 @@ DebugRoom_MapEvents: warp_event 27, 5, PEWTER_CITY, 2 warp_event 15, 2, GOLDENROD_CITY, 1 ; city warp warp_event 4, 9, SUMMER_BEACH_HOUSE, 1 ; left lab/league warp - warp_event 5, 9, PALLET_TOWN, 1 ; right lab/league warp + warp_event 5, 9, ONE_ISLAND, 1 ; right lab/league warp warp_event 35, 17, OLD_CITY, 1 ; east warp warp_event 5, 35, LAVENDER_TOWN, 1 ; southwest warp warp_event 19, 34, SAFARI_ZONE_FUCHSIA_GATE_BETA, 3 ; southern warp diff --git a/maps/FiveIsland.asm b/maps/FiveIsland.asm index f8b9370..cca6c5d 100644 --- a/maps/FiveIsland.asm +++ b/maps/FiveIsland.asm @@ -4,6 +4,11 @@ FiveIsland_MapScripts: def_scene_scripts def_callbacks + callback MAPCALLBACK_NEWMAP, FiveIslandFlypointCallback + +FiveIslandFlypointCallback: + setflag ENGINE_FLYPOINT_FIVE_ISLAND + endcallback FiveIsland_MapEvents: db 0, 0 ; filler diff --git a/maps/FourIsland.asm b/maps/FourIsland.asm index 107dd53..051181a 100644 --- a/maps/FourIsland.asm +++ b/maps/FourIsland.asm @@ -4,6 +4,11 @@ FourIsland_MapScripts: def_scene_scripts def_callbacks + callback MAPCALLBACK_NEWMAP, FourIslandFlypointCallback + +FourIslandFlypointCallback: + setflag ENGINE_FLYPOINT_FOUR_ISLAND + endcallback FourIsland_MapEvents: db 0, 0 ; filler diff --git a/maps/OneIsland.asm b/maps/OneIsland.asm index 712865e..f356f55 100644 --- a/maps/OneIsland.asm +++ b/maps/OneIsland.asm @@ -4,16 +4,54 @@ OneIsland_MapScripts: def_scene_scripts def_callbacks + callback MAPCALLBACK_NEWMAP, OneIslandFlypointCallback + +OneIslandFlypointCallback: + setflag ENGINE_FLYPOINT_ONE_ISLAND + endcallback + +OneIslandSign1: + jumptext OneIslandSign1Text + +OneIslandSign1Text: + text "Comment to be" + line "written." + done + +OneIslandSign2: + jumptext OneIslandSign2Text + +OneIslandSign2Text: + text "Comment to be" + line "written." + done + +OneIslandSailorScript: + jumptextfaceplayer OneIslandSailorText + +OneIslandSailorText: + text "Shove off! I'm" + line "workin', 'ere!" + + para "Bolt south to" + line "TREASURE BEACH" + cont "or somethin'!" + done OneIsland_MapEvents: db 0, 0 ; filler def_warp_events - warp_event 14, 19, DEBUG_ROOM, 1 - warp_event 15, 19, DEBUG_ROOM, 1 + warp_event 14, 19, DEBUG_ROOM, 1 ; port + warp_event 15, 19, DEBUG_ROOM, 1 ; port + + warp_event 17, 6, DEBUG_ROOM, 1 ; pokecenter + warp_event 11, 13, DEBUG_ROOM, 1 ; left house + warp_event 21, 11, DEBUG_ROOM, 1 ; right house def_coord_events def_bg_events - def_object_events \ No newline at end of file + def_object_events + object_event 19, 23, SPRITE_SAILOR, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, OneIslandSailorScript, -1 diff --git a/maps/SevenIsland.asm b/maps/SevenIsland.asm index f7d977d..db4e6b2 100644 --- a/maps/SevenIsland.asm +++ b/maps/SevenIsland.asm @@ -4,6 +4,11 @@ SevenIsland_MapScripts: def_scene_scripts def_callbacks + callback MAPCALLBACK_NEWMAP, SevenIslandFlypointCallback + +SevenIslandFlypointCallback: + setflag ENGINE_FLYPOINT_SEVEN_ISLAND + endcallback SevenIsland_MapEvents: db 0, 0 ; filler diff --git a/maps/SixIsland.asm b/maps/SixIsland.asm index b5122cb..ed8eed0 100644 --- a/maps/SixIsland.asm +++ b/maps/SixIsland.asm @@ -4,6 +4,11 @@ SixIsland_MapScripts: def_scene_scripts def_callbacks + callback MAPCALLBACK_NEWMAP, SixIslandFlypointCallback + +SixIslandFlypointCallback: + setflag ENGINE_FLYPOINT_SIX_ISLAND + endcallback SixIsland_MapEvents: db 0, 0 ; filler diff --git a/maps/ThreeIsland.asm b/maps/ThreeIsland.asm index b2a8c33..d1c2d59 100644 --- a/maps/ThreeIsland.asm +++ b/maps/ThreeIsland.asm @@ -4,6 +4,11 @@ ThreeIsland_MapScripts: def_scene_scripts def_callbacks + callback MAPCALLBACK_NEWMAP, ThreeIslandFlypointCallback + +ThreeIslandFlypointCallback: + setflag ENGINE_FLYPOINT_THREE_ISLAND + endcallback ThreeIsland_MapEvents: db 0, 0 ; filler diff --git a/maps/TwoIsland.asm b/maps/TwoIsland.asm index f48dc38..09ab5e1 100644 --- a/maps/TwoIsland.asm +++ b/maps/TwoIsland.asm @@ -4,6 +4,11 @@ TwoIsland_MapScripts: def_scene_scripts def_callbacks + callback MAPCALLBACK_NEWMAP, TwoIslandFlypointCallback + +TwoIslandFlypointCallback: + setflag ENGINE_FLYPOINT_TWO_ISLAND + endcallback TwoIsland_MapEvents: db 0, 0 ; filler From efd110533388468cb11967031109cef69b411fad Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Tue, 6 Aug 2024 18:00:39 +0100 Subject: [PATCH 6/6] Hirsuswine sprites Zach does it again! --- gfx/pokemon/hirsuswine/anim.asm | 12 ++++++++++++ gfx/pokemon/hirsuswine/anim_idle.asm | 2 ++ gfx/pokemon/hirsuswine/back.png | Bin 304 -> 342 bytes gfx/pokemon/hirsuswine/front.png | Bin 692 -> 1473 bytes gfx/pokemon/hirsuswine/shiny.pal | 6 ++---- 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gfx/pokemon/hirsuswine/anim.asm b/gfx/pokemon/hirsuswine/anim.asm index 875f7be..33745e2 100644 --- a/gfx/pokemon/hirsuswine/anim.asm +++ b/gfx/pokemon/hirsuswine/anim.asm @@ -1 +1,13 @@ + frame 0, 08 + frame 1, 04 + frame 2, 02 + frame 1, 02 + frame 2, 02 + frame 1, 02 + frame 2, 02 + frame 3, 01 + frame 4, 02 + frame 5, 02 + frame 6, 02 + frame 0, 16 endanim \ No newline at end of file diff --git a/gfx/pokemon/hirsuswine/anim_idle.asm b/gfx/pokemon/hirsuswine/anim_idle.asm index 875f7be..1c42e71 100644 --- a/gfx/pokemon/hirsuswine/anim_idle.asm +++ b/gfx/pokemon/hirsuswine/anim_idle.asm @@ -1 +1,3 @@ + frame 3, 04 + frame 0, 16 endanim \ No newline at end of file diff --git a/gfx/pokemon/hirsuswine/back.png b/gfx/pokemon/hirsuswine/back.png index c7216be8a6b643ae0f808a7c3d303e86af6d8dfa..bbeb93cfb30ce9c28df320cb53df55c54c69b84a 100644 GIT binary patch delta 306 zcmV-20nPrf0@ebMEq{zsb5c?O003VYX<+~W0R>4!K~#9!?UPFu!ypJn`RsqsHHe4= z6796*WD20qWry7fHiTgvT1i5q|O!i0BPg}VY-h5*#H0l07*qoM6N<$ Ef+$Ud^#A|> delta 268 zcmcb{w1H`YZvAtP;wcP35R|)99Z0d11o;L32ZCG;w@M&?tEY=&NX4zAR|5H(4S1L@ ztl0N|uKGg9g%)K-E!Xrl>Udc)j#M+hcy{sZ;@R%z|J4r2o)Gn@o9`?s(B>Z1iqF~flI-YL6oPf LAFIncr-UW|<-BQ8 diff --git a/gfx/pokemon/hirsuswine/front.png b/gfx/pokemon/hirsuswine/front.png index 512edae6e5dc47e093f7c143b0e27c00fb851a55..6b13197d13e365a3d94bae09d38015d351d98f66 100644 GIT binary patch delta 1469 zcmZvcc`(}v6vu;_P%YI%wffW5wCEbtsxunhL^r6qZxw889HrD16me5l8mf*>v93~a zpOH3eZR?67MA40ivlJCanz|ZU)7|}NXXi8X`M!Dc=Dq)3vuLLTK?Wz3DkcH~fgtZk z*AC;DrJ3z5fj~h0**e(T`mo_9>*E0ei3XY&eQz7iTq92AtSTQfvKkWzxEiVHC*F1E zYf3f!u#74Q`Pg{Vy%I1sC4zepjAcY^Q*L^1oS)!;m~9B`@xO7a+I*e4v^oT~oD|`A zl&YXqhvk{_yST1`6Bjx?x5@XaF4wfN4DS0zP@x6Mt36d)QXF4zTj7C{t$qgucf{u$ zrm{!UEiE{l<6Ao8LC@H=6t*7Yvl{>8qpC4Pev`5;!Y1ZTGwJABEt#WxyLSN&90sKsc{ zwtSwsp>KmY^I2IBS#zeYf0QSeXP>7QLak3qB9$KRy?RGK&Bnfbb$AXbMV+TGY=b1l z)XVNj)j{!hz!!(bZ#(gxRjk%OS@PhO%(ix z^1yg`+{m~_M%Hm4H2iH2L)r^s_7VM~%7JA`Yxo+)-rKy1Uw@otSMg`E)gsDlAlH{x zt-6j6HiIsr*!`Al)lnbAh7gbj{1Y*O*Zk#f;&r$pK*}IETdr&nh*y?b1;Gnx>anL} zxHctA5x?Qz^(IY(z0jAdx3949FiA0Q?ZDuiUt;7agwRiZ1;#do0&_?}488ZAGg@pm zn5|@vcea*@udQ}1vgx4F?n;a`XiM$a)KC;lG>nvMI=@4D&GzQ!+j}!@lI`Ru?VMc> z!bJCW4DD228GqsY${CLePwk5XL1mX6NQ@&k?F5KM(<0K1Y0yO@RgLzgQfOYH%?g3b>ZM?0AoEfxXu~unR zxnwO0mP>ponV~mxjXSRT+9`+*H03YRfNqZ7yw{*Xn5mkON0RTN9_XH9`;~9}4+`>g zH8g6pLY$I$Tcy?aZu%`B!|6~Sa)uk#cIsotXn=#$2v)70vpiv3ZBS#4h=NR#W5?XsCX#Y7b!$hlRia_ol) z-4_UYQ-1EzqvHcQksFvoG^4U2LbHzcQ1dZZbDAR>m%f8p9IYC~Rl|t8RHXogqCtcE z8?$2rXUqK(D=_koh%imV8;U9h;4%UEdA?tC;SD_*jw}Y{8nw({Ik(SBF%>$6T}Wl( zUO4%y>t?`Jumr|5Mie|~Nt~?|*~CNBYTq|6wH!!rGhZh|n{zXcoCYmV&1FEd?RwYpaDtrzKEQ3qJ3u7+R=V#s85itvr;v6wf z>N@t#Hgs+u*yQ7PVvtcC5b{^Xp{GePj_ZWa`!d#^ak9?>dm?!TjzA!|wM%~%4~&Rn zkNgjBU?f~9we)6}I98Wj<+(8g$k%E!ohQVxsR@lX9KsC#zjO=$I1oe2;pFcnp*n}( O7-VwG+^81r9{(4)XZOqi delta 682 zcmV;b0#*IN3$z807JmRZ2m=5B0H0XPEC2ui3{Xr|MgRZ*y_9ofQc?f_0Ge8JOaK4^ zV@X6oRCwB*mkE*rAq+*y|M$Q1KsFMZ9xZXSwBeDJkQw7LScZ%*hs?!~UE~Yw{`?cl zpQe7FGiRa=bn?5H8#F$cLcmdBYhOPW)A z3^DGpd=1_v?^yu(lH@l6(GtnNUBS~X4PPobALybdcO)I3`tT6xTcSo}E%40&7KxQ) ziB+nMby^~4Du0>BZ@3W{A<;C_odRV}JUAxjplUF2P4S50)TY?3=(Z3nK3$|#WpUWZ zk=aVu!Jk+ar##7&H%fI1G9o8Q79(||QS;?eq}-!ZVvsz_%cEYIu3Ao(rW=HS2iTJ@ zbX{eENOFD^zGb%Sis=YyL0KS~5)XlgNU8&i#87o>3V(?^qZf{lST)tl`oWoAUV1Ex zjcK5}+PK&&NO;5*RIUUvm$f`ZXll_7E5 z=WWA7q<^3ENFsCj`fQaqLueQy8XLsv^Sn5@t)wY}B*mq*yc+PzgGjmM6lOIsE+CfX z)2f)JxPsefv*e}s6uvj4)*kjpe~wNJKG!Ww QfdBvi07*qoM6N<$f(AxMDgXcg diff --git a/gfx/pokemon/hirsuswine/shiny.pal b/gfx/pokemon/hirsuswine/shiny.pal index 2d5f7f3..4de2597 100644 --- a/gfx/pokemon/hirsuswine/shiny.pal +++ b/gfx/pokemon/hirsuswine/shiny.pal @@ -1,4 +1,2 @@ - - RGB 22, 25, 10 - RGB 10, 13, 10 - + RGB 22, 19, 00 + RGB 19, 11, 00 \ No newline at end of file