Adding a stable MissingNo, and fixing a few minor things

This commit is contained in:
MementoMartha 2022-10-31 23:09:41 +00:00
parent bb319e89b3
commit 1e7613f804
28 changed files with 67 additions and 16 deletions

View file

@ -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
====

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -220,6 +220,7 @@ PokedexEntryPointers:
dw BetobebiiDexEntry
dw MagnezoneDexEntry
dw PorygonZDexEntry
dw MissingNoDexEntry
assert_table_length NUM_POKEMON_INDEXES
; string: species name

View file

@ -220,4 +220,5 @@ PokedexOrder:
db DEX_BETOBEBII
db DEX_MAGNEZONE
db DEX_PORYGONZ
db DEX_MISSINGNO
assert_table_length NUM_POKEMON_INDEXES

View file

@ -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

View file

@ -1,5 +1,6 @@
MonPartyData:
nybble_array MonPartyData
nybble ICON_MON ; MissingNo.
nybble ICON_GRASS ; Bulbasaur
nybble ICON_GRASS ; Ivysaur
nybble ICON_GRASS ; Venusaur

View file

@ -220,5 +220,6 @@ MonsterNames::
db "BETOBEBII@"
db "MAGNEZONE@"
db "PORYGON-Z@"
db "MISSINGNO."
assert_table_length NUM_POKEMON_INDEXES

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -262,7 +262,6 @@ GetPartyMonSpriteID:
predef IndexToPokedex
ld a, [wd11e]
ld c, a
dec a
srl a
ld hl, MonPartyData
ld e, a

View file

@ -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

View file

@ -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

View file

@ -516,3 +516,5 @@ 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"
MissingNoPicFront:: INCBIN "gfx/pokemon/front/missingno.pic"
MissingNoPicBack:: INCBIN "gfx/pokemon/back/missingnob.pic"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 B

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 919 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 402 B

After

Width:  |  Height:  |  Size: 651 B

BIN
gfx/trainers/chief.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 B

BIN
gfx/trainers/yujirou.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 802 B

View file

@ -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

View file

@ -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

View file

@ -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