From 1e7613f804546faa0f994bca75b38b438900dd16 Mon Sep 17 00:00:00 2001 From: MementoMartha Date: Mon, 31 Oct 2022 23:09:41 +0000 Subject: [PATCH] Adding a stable MissingNo, and fixing a few minor things --- README.md | 3 ++- constants/pokedex_constants.asm | 5 +++-- constants/pokemon_constants.asm | 1 + data/maps/objects/RocketHideoutB1F.asm | 2 +- data/pokemon/base_stats.asm | 5 ++++- data/pokemon/cries.asm | 1 + data/pokemon/dex_entries.asm | 1 + data/pokemon/dex_order.asm | 1 + data/pokemon/evos_moves.asm | 7 +++++++ data/pokemon/menu_icons.asm | 1 + data/pokemon/names.asm | 1 + data/pokemon/palettes.asm | 2 +- data/trainers/parties.asm | 4 +++- data/wild/grass_water.asm | 3 ++- data/wild/maps/CinnabarIsland.asm | 16 ++++++++++++++++ engine/events/give_pokemon.asm | 2 ++ engine/gfx/mon_icons.asm | 1 - engine/items/item_effects.asm | 2 ++ engine/pokemon/add_mon.asm | 4 +++- gfx/pics.asm | 4 +++- gfx/pokemon/back/missingnob.png | Bin 447 -> 630 bytes gfx/trainer_card/badges.png | Bin 919 -> 1125 bytes gfx/trainers/blaine.png | Bin 402 -> 651 bytes gfx/trainers/chief.png | Bin 0 -> 402 bytes gfx/trainers/yujirou.png | Bin 0 -> 802 bytes home/pokemon.asm | 11 +++++++++-- ram/wram.asm | 4 ++-- scripts/CeladonMansion3F.asm | 2 +- 28 files changed, 67 insertions(+), 16 deletions(-) create mode 100644 data/wild/maps/CinnabarIsland.asm create mode 100644 gfx/trainers/chief.png create mode 100644 gfx/trainers/yujirou.png diff --git a/README.md b/README.md index 78aec956..d1185a87 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ New areas QoL Enhancements ==== -- All 212 (current) Pokemon can be obtained without the use of trading or glitches, including Mew! +- All 217 (current) Pokemon can be obtained without the use of trading or glitches, including Mew! - Fast text has no frame delay between text scrolling, doubling the scroll speed. It's also been made the default option, so you don't need to go into the Options menu for it. - Trainer DVs are perfect-15s. - The protagonist is referred to in a gender neutral manner. @@ -133,6 +133,7 @@ Known Bugs - Occasionally, menu text sets itself to scroll. - Some sprites in the Celadon University area spawn bugged out on certain emulators. - Battling multiple of the trainers in Celadon University causes a crash when attempting to go to Route 16 +- The lone Rocket in Viridian Gym's basement needs to be directly spoken to to be battled Credits ==== diff --git a/constants/pokedex_constants.asm b/constants/pokedex_constants.asm index 199147ae..119736ae 100644 --- a/constants/pokedex_constants.asm +++ b/constants/pokedex_constants.asm @@ -3,7 +3,8 @@ ; - BaseStats (see data/pokemon/base_stats.asm) ; - MonPartyData (see data/pokemon/menu_icons.asm) ; - MonsterPalettes (see data/pokemon/palettes.asm) - const_def 1 + const_def + const DEX_MISSINGNO ; 0 const DEX_BULBASAUR ; 1 const DEX_IVYSAUR ; 2 const DEX_VENUSAUR ; 3 @@ -225,4 +226,4 @@ const DEX_MEWTWO ; 150 const DEX_MEW ; 151 -DEF NUM_POKEMON EQU const_value - 1 +DEF NUM_POKEMON EQU const_value diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index fa9246b1..811c17fb 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -240,6 +240,7 @@ ; const MIME_JR ; $E7 ; const HAPPINY ; $E8 ; const MUNCHLAX ; $E9 + const MISSINGNO ; $EA DEF NUM_POKEMON_INDEXES EQU const_value - 1 diff --git a/data/maps/objects/RocketHideoutB1F.asm b/data/maps/objects/RocketHideoutB1F.asm index de9617df..c100c0b7 100644 --- a/data/maps/objects/RocketHideoutB1F.asm +++ b/data/maps/objects/RocketHideoutB1F.asm @@ -2,7 +2,7 @@ RocketHideoutB1F_Object: db $2e ; border block def_warp_events - warp_event 5, 4, VIRIDIAN_GYM, 2 + warp_event 5, 4, VIRIDIAN_GYM, 3 warp_event 17, 4, VIRIDIAN_CITY, 6 def_bg_events diff --git a/data/pokemon/base_stats.asm b/data/pokemon/base_stats.asm index 64987101..549c9e10 100644 --- a/data/pokemon/base_stats.asm +++ b/data/pokemon/base_stats.asm @@ -217,4 +217,7 @@ INCLUDE "data/pokemon/base_stats/dragonair.asm" INCLUDE "data/pokemon/base_stats/dragonite.asm" INCLUDE "data/pokemon/base_stats/mewtwo.asm" INCLUDE "data/pokemon/base_stats/mew.asm" - assert_table_length NUM_POKEMON + assert_table_length NUM_POKEMON - 1 ; discount MissingNo + +MissingnoBaseStats:: +INCLUDE "data/pokemon/base_stats/missingno.asm" diff --git a/data/pokemon/cries.asm b/data/pokemon/cries.asm index 48e5b469..cfd56dbf 100644 --- a/data/pokemon/cries.asm +++ b/data/pokemon/cries.asm @@ -239,4 +239,5 @@ CryData:: ; mon_cry SFX_CRY_00, $00, $00 ; Mime Jr. ; mon_cry SFX_CRY_00, $00, $00 ; Happiny ; mon_cry SFX_CRY_00, $00, $00 ; Munchlax + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. assert_table_length NUM_POKEMON_INDEXES diff --git a/data/pokemon/dex_entries.asm b/data/pokemon/dex_entries.asm index 11227c57..9504e797 100644 --- a/data/pokemon/dex_entries.asm +++ b/data/pokemon/dex_entries.asm @@ -220,6 +220,7 @@ PokedexEntryPointers: dw BetobebiiDexEntry dw MagnezoneDexEntry dw PorygonZDexEntry + dw MissingNoDexEntry assert_table_length NUM_POKEMON_INDEXES ; string: species name diff --git a/data/pokemon/dex_order.asm b/data/pokemon/dex_order.asm index 1b520504..1fa4f4a1 100644 --- a/data/pokemon/dex_order.asm +++ b/data/pokemon/dex_order.asm @@ -220,4 +220,5 @@ PokedexOrder: db DEX_BETOBEBII db DEX_MAGNEZONE db DEX_PORYGONZ + db DEX_MISSINGNO assert_table_length NUM_POKEMON_INDEXES diff --git a/data/pokemon/evos_moves.asm b/data/pokemon/evos_moves.asm index 2943b97a..2c249735 100644 --- a/data/pokemon/evos_moves.asm +++ b/data/pokemon/evos_moves.asm @@ -223,6 +223,7 @@ EvosMovesPointerTable: dw BetobebiiEvosMoves dw MagnezoneEvosMoves dw PorygonZEvosMoves + dw MissingNoEvosMoves assert_table_length NUM_POKEMON_INDEXES RhydonEvosMoves: @@ -2824,6 +2825,12 @@ PorygonZEvosMoves: db 50, AMNESIA ; will replace with nasty plot db 0 +MissingNoEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + ;ArticunoGEvosMoves: ; Evolutions ; db 0 diff --git a/data/pokemon/menu_icons.asm b/data/pokemon/menu_icons.asm index d90d83eb..a1f08a78 100644 --- a/data/pokemon/menu_icons.asm +++ b/data/pokemon/menu_icons.asm @@ -1,5 +1,6 @@ MonPartyData: nybble_array MonPartyData + nybble ICON_MON ; MissingNo. nybble ICON_GRASS ; Bulbasaur nybble ICON_GRASS ; Ivysaur nybble ICON_GRASS ; Venusaur diff --git a/data/pokemon/names.asm b/data/pokemon/names.asm index de2402a5..79c3f21c 100644 --- a/data/pokemon/names.asm +++ b/data/pokemon/names.asm @@ -220,5 +220,6 @@ MonsterNames:: db "BETOBEBII@" db "MAGNEZONE@" db "PORYGON-Z@" + db "MISSINGNO." assert_table_length NUM_POKEMON_INDEXES diff --git a/data/pokemon/palettes.asm b/data/pokemon/palettes.asm index c049aa53..caea95fc 100644 --- a/data/pokemon/palettes.asm +++ b/data/pokemon/palettes.asm @@ -218,4 +218,4 @@ MonsterPalettes: db PAL_BROWNMON ; DRAGONITE db PAL_MEWMON ; MEWTWO db PAL_MEWMON ; MEW - assert_table_length NUM_POKEMON + 1 + assert_table_length NUM_POKEMON diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index 906c35d1..ea929f1a 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -323,7 +323,9 @@ EngineerData: db 18, MAGNEMITE, MAGNEMITE, MAGNETON, 0 UnusedJugglerData: -; none + ; db $FF, 7, KONYA, 7, EEVEE, 10, LICKITUNG, 0 +; post-game rematch team (currently unused) + ; db $FF, 66, PERSIAN, 67, TAUROS, 67, MADAAMU, 66, BLISSEY, 67, SNORLAX, 70, LICKILICKY, 0 FisherData: ; SS Anne 2F Rooms diff --git a/data/wild/grass_water.asm b/data/wild/grass_water.asm index 8a86d79d..ea2295f3 100644 --- a/data/wild/grass_water.asm +++ b/data/wild/grass_water.asm @@ -8,7 +8,7 @@ WildDataPointers: dw NothingWildMons ; VERMILION_CITY dw NothingWildMons ; CELADON_CITY dw NothingWildMons ; FUCHSIA_CITY - dw NothingWildMons ; CINNABAR_ISLAND + dw CinnabarWildMons ; CINNABAR_ISLAND dw NothingWildMons ; INDIGO_PLATEAU dw NothingWildMons ; SAFFRON_CITY dw NothingWildMons ; CITRINE_CITY @@ -263,6 +263,7 @@ WildDataPointers: ; level, species (ten times) INCLUDE "data/wild/maps/nothing.asm" +INCLUDE "data/wild/maps/CinnabarIsland.asm" INCLUDE "data/wild/maps/Route1.asm" INCLUDE "data/wild/maps/Route2.asm" INCLUDE "data/wild/maps/Route22.asm" diff --git a/data/wild/maps/CinnabarIsland.asm b/data/wild/maps/CinnabarIsland.asm new file mode 100644 index 00000000..b4747a4b --- /dev/null +++ b/data/wild/maps/CinnabarIsland.asm @@ -0,0 +1,16 @@ +CinnabarWildMons: ; This is used purely for testing MissingNo. + def_grass_wildmons 0 ; encounter rate + end_grass_wildmons + + def_water_wildmons 20 ; encounter rate + db 80, MISSINGNO + db 80, MISSINGNO + db 80, MISSINGNO + db 80, MISSINGNO + db 80, MISSINGNO + db 80, MISSINGNO + db 80, MISSINGNO + db 80, MISSINGNO + db 80, MISSINGNO + db 80, MISSINGNO + end_water_wildmons diff --git a/engine/events/give_pokemon.asm b/engine/events/give_pokemon.asm index f2374e1e..d6bce061 100644 --- a/engine/events/give_pokemon.asm +++ b/engine/events/give_pokemon.asm @@ -57,6 +57,8 @@ SetPokedexOwnedFlag: ld [wd11e], a predef IndexToPokedex ld a, [wd11e] + and a + ret z ; do nothing for missingno dec a ld c, a ld hl, wPokedexOwned diff --git a/engine/gfx/mon_icons.asm b/engine/gfx/mon_icons.asm index 80ee40b6..3a7923ac 100644 --- a/engine/gfx/mon_icons.asm +++ b/engine/gfx/mon_icons.asm @@ -262,7 +262,6 @@ GetPartyMonSpriteID: predef IndexToPokedex ld a, [wd11e] ld c, a - dec a srl a ld hl, MonPartyData ld e, a diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm index c9baa2aa..1981f8ab 100644 --- a/engine/items/item_effects.asm +++ b/engine/items/item_effects.asm @@ -540,6 +540,8 @@ ItemUseBall: ; Add the caught Pokémon to the Pokédex. predef IndexToPokedex ld a, [wd11e] + and a ; is it missingno? + jr z, .skipShowingPokedexData ; don't mark in pokedex if so dec a ld c, a ld b, FLAG_TEST diff --git a/engine/pokemon/add_mon.asm b/engine/pokemon/add_mon.asm index 611aebf4..2a117b64 100644 --- a/engine/pokemon/add_mon.asm +++ b/engine/pokemon/add_mon.asm @@ -86,6 +86,8 @@ _AddPartyMon:: predef IndexToPokedex pop de ld a, [wd11e] + and a + jr z, .noMarkSeen ; if it's missingno don't do any pokedex actions dec a ld c, a ld b, FLAG_TEST @@ -102,7 +104,7 @@ _AddPartyMon:: pop bc ld hl, wPokedexSeen call FlagAction - +.noMarkSeen pop hl push hl diff --git a/gfx/pics.asm b/gfx/pics.asm index ffd8b504..7145a4d9 100644 --- a/gfx/pics.asm +++ b/gfx/pics.asm @@ -515,4 +515,6 @@ BetobebiiPicBack:: INCBIN "gfx/pokemon/back/betobebiib.pic" MagnezonePicFront:: INCBIN "gfx/pokemon/front/magnezone.pic" MagnezonePicBack:: INCBIN "gfx/pokemon/back/magnezoneb.pic" PorygonZPicFront:: INCBIN "gfx/pokemon/front/porygonz.pic" -PorygonZPicBack:: INCBIN "gfx/pokemon/back/porygonzb.pic" \ No newline at end of file +PorygonZPicBack:: INCBIN "gfx/pokemon/back/porygonzb.pic" +MissingNoPicFront:: INCBIN "gfx/pokemon/front/missingno.pic" +MissingNoPicBack:: INCBIN "gfx/pokemon/back/missingnob.pic" \ No newline at end of file diff --git a/gfx/pokemon/back/missingnob.png b/gfx/pokemon/back/missingnob.png index 6b2557a9399b928b8b5c82cdc3561524195bcb21..19464f106607c96c99443090a3ae95322d34a683 100644 GIT binary patch literal 630 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk`Bp75C+I9jdmUKs7M+SzC{oH>NSwWJ?9znhg z3{`3j3=J&|48MRv4KElNN(~qoUL`OvSj}Ky5HFasE6@fg!Ib3f?!v%q+)~s54nJ@ErkR#;MwT(m+A>5>H=O_Geu3Vp?Y3D!WyHLX7!Eej$wK7nRQfa#TxPBT7;d zOH!?pi&B9UgOP!ek*=YEuCZZ=k&%^&k(H^jwt<0_fx$Qb8I33!a`RI%(<*UmXctnj z1!{;&jqptK^<~fkvN;%78HE^_fhhhHK1yM0mUSYP!CiG z0vc21ON?N3bQ(Tz(hc-oy5vGZ`j>i-S5PrK}m zlhC+vBwoMc+j=QADK@UAUu(~=sBb!GC>Y{>HGau(cHG$^y45je^~OcAi@ctPML8$k zUCH-kMg?cB{Uz=s39oJKRui9w=w}`|wB_W1DKmVISg@^r^INjsqedw4X1(xAyB}Kd zolE~r6H~k8GH2fF7w>vIF8OZPcj^$S`BQD~_i|>ua)|kjYsyL6rv9iYp1$Hvyyf#} mopXO2c{NM$&u#lp%oEPf6TB~fZZ0qc7(8A5T-G@yGywn;=fvCq delta 417 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 literal 0 HcmV?d00001 diff --git a/gfx/trainers/yujirou.png b/gfx/trainers/yujirou.png new file mode 100644 index 0000000000000000000000000000000000000000..02a8cc231de97ed2c43df8f6488a0685225742ca GIT binary patch literal 802 zcmV+-1Ks?IP)2wc5e^B5R6exRrQzX`+OFM7CHivNfEqno0vA=4zd?TeG=Ql52l}-9V?awO zrIhTalsp5}sKYR|*6bx9K0_?}gosG36>IuuRjswwT5qZ-%5Il)D6NinJ)x3DDR+Pp z7QK^IBv4u&k4#ldAvHcwnNAQP9@!7@Xek8{d+%GHw$^}5RcXHq4RlgD##nI}O8;_< zL1QK9=|nxiaRStP=jbU76xpzKw|DeuqNP+?Zz{T>Y>a`Itu>!dV~mOOx0#+z|Aa;T z(v#~w?&;Gh2GVxT79@yOAS*?N&mR1E107uOTB7zpxz9V@VgS}PDww`Tmfgzl$RKf^ zx>(mx8ql>L@Zlk^suo0<01B*Aq?&U9Vr#P%5ObD_M~S{z$z%FB9uElO;M{qs6iQV^ z_I%u@yr1mg1Y1Fq$&@C1u#e{33w>v|DQZ7Yj)>pAIEP+L@&5I?Z>$fJllMqGozq_t+Y z9AltHa43a7E>EYCZ2)X9B0cDw#z%m9K&Pm+@%~(zk|*!*Q5bWzF(!PBZqZn?e6ksB zPI>&Vh;Q$oU74XL6Me7v*LC0Gfi~xtK3ZgH>8Gy{qEnva?rk1`ZsTt{{n6YccU%t; zADcaK+(fJ6fqDd|4nvm<(eJ(=4PJ7r!@lp5Oq|nOYiQU`>h*QVrfvD9l$ad9^m^oa z%!G_lOADm%g>L`pTa#&`B)Po9M@ZO6lm^16j729ty4Gq~<3x6n^v*o2c*j1CBrHlM glRXfdHq)$07*qoM6N<$f;WD9WdHyG literal 0 HcmV?d00001 diff --git a/home/pokemon.asm b/home/pokemon.asm index 948ee0be..0462d5a4 100644 --- a/home/pokemon.asm +++ b/home/pokemon.asm @@ -100,9 +100,8 @@ LoadFrontSpriteByMonIndex:: ld [hl], b and a pop hl - jr z, .invalidDexNumber ; dex #0 invalid cp NUM_POKEMON + 1 - jr c, .validDexNumber ; dex >#151 invalid + jr c, .validDexNumber ; dex numbers over normal limit invalid .invalidDexNumber ld a, RHYDON ; $1 ld [wcf91], a @@ -379,6 +378,8 @@ GetMonHeader:: jr z, .specialID predef IndexToPokedex ; convert pokemon ID in [wd11e] to pokedex number ld a, [wd11e] + and a + jr z, .missingno ; index of 0 is missingno dec a ld bc, BASE_DATA_SIZE ld hl, BaseStats @@ -387,6 +388,12 @@ GetMonHeader:: ld bc, BASE_DATA_SIZE call CopyData jr .done +.missingno + ld hl, MissingnoBaseStats + ld bc, BASE_DATA_SIZE + ld de, wMonHeader + call CopyData + jr .done .specialID ld hl, wMonHSpriteDim ld [hl], b ; write sprite dimensions diff --git a/ram/wram.asm b/ram/wram.asm index 53fe0f7d..546db26b 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -1735,10 +1735,10 @@ SECTION "Main Data", WRAM0 wMainDataStart:: -wPokedexOwned:: flag_array NUM_POKEMON +wPokedexOwned:: flag_array NUM_POKEMON - 1 ; discount MissingNo wPokedexOwnedEnd:: -wPokedexSeen:: flag_array NUM_POKEMON +wPokedexSeen:: flag_array NUM_POKEMON - 1 ; discount MissingNo wPokedexSeenEnd:: ds 28 ;;;;;;; moved bag code lower down to make bigger bag space diff --git a/scripts/CeladonMansion3F.asm b/scripts/CeladonMansion3F.asm index f8972793..5f6278b5 100644 --- a/scripts/CeladonMansion3F.asm +++ b/scripts/CeladonMansion3F.asm @@ -29,7 +29,7 @@ DirectorText: ld b, wPokedexOwnedEnd - wPokedexOwned call CountSetBits ld a, [wNumSetBits] - cp NUM_POKEMON - 1 ; discount Mew + cp NUM_POKEMON - 1 jr nc, .completed_dex ld hl, .GameDesignerText jr .done