Adding a stable MissingNo, and fixing a few minor things
|
@ -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
|
||||
====
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -220,6 +220,7 @@ PokedexEntryPointers:
|
|||
dw BetobebiiDexEntry
|
||||
dw MagnezoneDexEntry
|
||||
dw PorygonZDexEntry
|
||||
dw MissingNoDexEntry
|
||||
assert_table_length NUM_POKEMON_INDEXES
|
||||
|
||||
; string: species name
|
||||
|
|
|
@ -220,4 +220,5 @@ PokedexOrder:
|
|||
db DEX_BETOBEBII
|
||||
db DEX_MAGNEZONE
|
||||
db DEX_PORYGONZ
|
||||
db DEX_MISSINGNO
|
||||
assert_table_length NUM_POKEMON_INDEXES
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
MonPartyData:
|
||||
nybble_array MonPartyData
|
||||
nybble ICON_MON ; MissingNo.
|
||||
nybble ICON_GRASS ; Bulbasaur
|
||||
nybble ICON_GRASS ; Ivysaur
|
||||
nybble ICON_GRASS ; Venusaur
|
||||
|
|
|
@ -220,5 +220,6 @@ MonsterNames::
|
|||
db "BETOBEBII@"
|
||||
db "MAGNEZONE@"
|
||||
db "PORYGON-Z@"
|
||||
db "MISSINGNO."
|
||||
|
||||
assert_table_length NUM_POKEMON_INDEXES
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
16
data/wild/maps/CinnabarIsland.asm
Normal 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
|
|
@ -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
|
||||
|
|
|
@ -262,7 +262,6 @@ GetPartyMonSpriteID:
|
|||
predef IndexToPokedex
|
||||
ld a, [wd11e]
|
||||
ld c, a
|
||||
dec a
|
||||
srl a
|
||||
ld hl, MonPartyData
|
||||
ld e, a
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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"
|
Before Width: | Height: | Size: 447 B After Width: | Height: | Size: 630 B |
Before Width: | Height: | Size: 919 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 402 B After Width: | Height: | Size: 651 B |
BIN
gfx/trainers/chief.png
Normal file
After Width: | Height: | Size: 402 B |
BIN
gfx/trainers/yujirou.png
Normal file
After Width: | Height: | Size: 802 B |
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|