Jump to content

Pokemon Sun/Moon Invalid Species Index (0x0 / 0x323 - 0xFFFF)


Recommended Posts

So I came across a thread on the Glitch City forums involving what happens when a Pokemon with an invalid species index gets hacked into the game. And, from what I've seen so far, it produces some pretty interesting results:

Pokemon in a box that have invalid species indexes (0x323 - 0x340)

Spoiler

e86904b5cfd85f2d3108a263f96e0c65.png

EDIT: I forgot to mention that I nicknamed all these MissingNo. So don't be freaked out haha.

So, for any of you that are scratching their heads at what's going on, allow me to shed some light on it. Programmed into the game is a list of Pokemon species with their associated index number to reference them easier. The list in Sun/Moon starts at hexadecimal value 0x1 (Bulbasaur), and ends at value 0x322 (Marshadow). Pokemon that have an index value outside of this range will actually still appear in the game, although they are very glitchy. As you can see in the image above, some of them have an egg sprite when in the PC, and others get stuck with the loading symbol, because the game doesn't know how to process them. There is one I found (index 0x323) that has the battle model of an egg, "Egg" as its species name, and an egg sprite when put into the box. However, rather than being an egg that hatches, it has stats, a nature, an ability, attacks, et cetera, so it can technically go into battle*. It's things like this that I find make this world of Gen VII glitch Pokemon interesting.

* Actually, the game crashes when it's sent or switched into battle (which may or may not be possible to fix via a ROM patch), but you get the gist.

 

So what can and can't I do with these Glitched Pokemon?

Alright, so there are obviously things that you can't do with these Pokemon, and I'll try to outline them as much as I can. If I'm missing or forgetting something, let me know.

You CAN:

  • Manage these Pokemon in your PC boxes and your party (although it has been reported to crash the game at higher indexes)
  • View the summary and quick details if in the PC (same as above)
  • Use items on them (including Rare Candies)
  • View them in Pokemon Refresh
  • Put them in Poke Bank (with a chance of getting banned)
  • Not much else, but a lot of things are untested, so I'll put them in a separate list below.

You CAN'T:

  • Battle with these Pokemon (crashes)
  • Go online using the Pokemon (Wonder Trade, GTS, etc.)
  • Tell me if you find anything else!

Untested:

  • Putting these Pokemon into the day-care
  • Infrared / Local trading
  • Other things I haven't thought of yet.

 

Okay, cool, so how do I obtain such Pokemon?

Since PkHex limits the species indexes to only valid ones, we will need to use a modded version that allows us to create invalid Pokemon. I'm not sure if it's against the rules to put a direct link to this program, so I'll put a link to the Glitch City thread that has it: http://forums.glitchcity.info/index.php?topic=7730.0 (Created by Wack0. Scroll down to find the post with the Google Sites mirror, since the original host is dead).

Everything is the same, despite it being an old build, except in the species and attack selectors, you can choose every single possible index number, all the way up to 0xFFFF. We can select one, and place the resulting Pokemon into a slot in our save's box. Import the save using your preferred save manager, and that's all there is to it!

KEEP IN MIND: This modded version of PkHex has to load and sort through 66,338 entries in the species drop-down (0x0 - 0xFFFF plus every pokemon species), and even more in the attack drop-downs. As such, this version is EXTREMELY laggy for all computers. I might create a new program to circumvent this, but in the meantime, this is all we have. I'd suggest not even going into the attacks tab and leave it as the default moveset, just because it takes so long to load.

 

Let me know what you think of this concept! Thank you for reading, and have a nice day! :D

Edited by AlphonseElric
Link to comment
Share on other sites

In addition, here's a warning. Don't save/load with these invalid mons in the party or your game will be bricked. Luckily, this is reversible if you edit the mons out of your party.

Admittedly I've only tried this back in ORAS when I was impatient and wanted to reset out of Contest testing. I don't think they would change this behaviour for SM, but who knows. If you have the means to inject these in then you should be able to take them out anyway, so I guess this wasn't as big of a warning as I thought. Hopefully trading isn't possible so that these mons can't be spread around locally.

In my ORAS testing, Pokebank froze when viewing one of these glitchmons iirc. I've seen a video with invalid moves with contest animations or battle intros sometimes, but I don't know if that would be very interesting in SM.

Edited by Flametix
info
Link to comment
Share on other sites

IMPORTANT UPDATE: While I was debugging Pokemon Moon in Citra / IDA Pro, trying to see where exactly the game crashes at when you enter a battle, I found something rather odd:

e3cf9dddb91c350537269241cff57bf3.png

I managed to get invalid Pokemon 0x323 (which happens to have an egg model) into battle with the use of Citra. It has no animations, but you can actually attack with it and do everything else you would be able to do with a normal Pokemon.

Now the problem is finding out where the disconnect is between the ROM and the hardware.

EDIT:

[ 259.106932] HW.Memory <Error> core\memory.cpp:Memory::Read:154: unmapped Read32 @ 0x00000008

There are a bunch of those in the Citra console as soon as I start the battle. However, everything is allowed to continue.

Edited by AlphonseElric
Link to comment
Share on other sites

4 hours ago, hacks said:

What happens if you try to inject an utlra sun and moon pokemon into sun and moon?

Essentially the same thing, except it will have the stats and moves of the US/UM pokemon. Because the index numbers just go one by one through the pokedex, having an US/UM pokemon with a pokedex number of 803 (I forget which one that is) will produce the same glitch pokemon in my update, since the identifier remains the same at 0x323.

Link to comment
Share on other sites

Aww yes the missingno mons. Actually awhile back I was playing around with them with a modified build of PkHeX. Anything beyond the 2 or more above the existing range will actually crash PokeBank when you try to access the game's data if these mons are present in the boxes/party. (first mon is the battle egg you shown, the next is a bulbasuar but uses egg icon. The rest appear to be mostly bulbasuar models)

This was back with the 6th gen mons. Not sure if they fixed that now. (was able to deposite "Egg" into pokebank too. This was before the 7th gen update though)

 

Note that "Egg" does not crash any of the gen 6 games when you use them in battle. They do however crash when certain moves like Iron Head are used. No idea why that happens. Also I found that in pk3ds in the personal editor the "--" entry above Bulbasoar appears to defines it's stats. It normally has no ability assigned and has base zero stats (and is a normal type). Doesn't learn any moves or TMs. You can use pk3DS to assign it TMs and give it better stats. But it doesn't have a proper species entry so I don't think you can assign a level up move pool to it. This "--" entry (which I dont' know if current builds of pk3DS still allow you to alter or not) may not be specific to "Egg" but maybe a default entry for any mons that appear beyond defined ranges. So editing this may also impact all other missingno mons.

As for 7th gen...Not sure why the crash happens. It's not related to the model/animation data. I swapped the model files around and made Smeargle appear as Egg. (I did also replace animation files and what not too so it was a full swap. Only thing not changed is the model used in Pokemon Refresh...not sure where those are stored) works perfectly fine. Probably missing species data or something. (Perhaps entry animation/camera/bounding box size/etc causing the problem. Something new gen 7 introduced perhaps that this mon isn't playing well with.)

 

I have not tried making Egg appear as a wild mon in 7th gen yet. maybe it doesn't crash in that instance. But like in 6th gen where i did make it appear, it will have no ability or moves and will struggle itself to death. I think it's catch rate is null too so you pretty much need to use a masterball to catch it.

Edited by Apache Thunder
Spelling fixes and rewording of a few sentances...
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...