Main Menu
Main Page
Forums
Recent changes
Random page
Help

Databases
GlitchDex
AttackDex
ItemDex
TrainerDex
TypeDex
UnownDex
More

Major Glitches
Trainer escape glitch
Old man trick
Celebi Egg trick
Select glitches (Japan)
SRAM glitch
CoolTrainer♀ corruption
LOL glitch
Rival LOL glitch
Super Glitch
ZZAZZ glitch
Pomeg corruption glitch (Glitzer Popping)
Tweaking
Elite Four door glitch (Japan)
Pokémon merge glitch
Pokémon cloning
Time Capsule exploit
Arbitrary code execution
Coin Case glitches
More

Other Glitch Categories
Glitches by generation
Glitches between two generations
Japan-only/language specific glitches
Music glitches
Natural glitches
Non-core series glitches
Non-Pokémon glitches
Officially acknowledged glitches
Recurring glitches
Dead glitches

References
Pokémon GameShark codes
The Big HEX List
Glitch Pokémon cries
GB programming
Curiosities
Debugging features
Easter eggs
Error traps
Glitch areas
Glitch myths
Non-glitch exploits
Placeholder texts
Pokémon glitch terminology
Unused content and prerelease information

Useful Tools
8F Helper
GBz80 to Items
Old man trick name generator
PATH (Prama's Advanced Tweaking Heaven)
Save file editors
Special stat/Pokémon converter
Trainer escape Trainer Pokémon finder

Affiliates
Legendary Star Blob 2 (Hakuda)
Pokémon Speedruns wiki
PRAMA Initiative
Become an affiliate!

Technical
Site Source Code

Search Wiki

 

Search Forums

 

Recent Posts

Pages: [1] 2 3 ... 10
1
Ah, all right, I get it. The code starts from the third item. I'll give it a shot, thanks a ton.

It's not irrelevant to question the position of 8F in a given code. The code indeed starts at third item, but the identity and quantity of items 1 and 2 can actually be important, if the code uses their value to do something. The most common case of this is a code that uses a specific quantity of any item in position 2 and then stores this quantity into A for some utility later in the code (for example by starting the code with the opcode 'dec l' followed by 'ld a,(hl)', or by starting with 'ld a,(hld)' a.k.a. 'ld a,(hl-)' or 'ldd a,(hl)' which loads (HL) into A then decrement HL, then any opcode to load (HL) into A again).
Many tricks involving the second item exists, including codes to actually change what the second item is. None of this is the case in what Couldntthinkofaname gave you, but it's a good reaction to actually pay attention to the availability of item 2.

The best is always to understand codes, so you can be sure of what to do. It doesn't require insane programming skills most of the times. I say a lot that even though this board is made to help people (and we are very happy too) most questions asked about code execution could have been solved by the user if he just tried to understand a bit how it works by reading already available explanations. Your question was of course a bit technical, but if it can help, here is, for your information, how a '8F noob' could have solved this problem on its own:

You already did the whole difficult job by pointing out that:
- A Pokémon is shiny when all of its DV are 10, except for the Attack, which can be several values (but never lower than 2)
- Any Pokémon with an attack DV of 2 is female, except for the very specific class of Pokémon with a 7:1 male:female ratio.
- As a result, these Pokémon will never be shiny AND female, but any other shiny Pokémon with an attack DV of 2 will be female.

As pointed out in dozens of posts in this very thread (the last time was 14 days ago: http://forums.glitchcity.info/index.php?topic=6638.msg207657#msg207657) there is a generic 8F code that changes a game data. Using it, you would have found out that, for example, the Attack and Defense DV of Stored Pokémon 1 is controlled by $DAB1. Problem: it is not explained how to differenciate between Attack and Defense DV... Well, the answer is given two posts after the previous one: DVs are coded in half-bytes, meaning that the value of $DAB1 for both DV to be 10 would be AA (as A is 10 in hexadecimal) and therefore, 2A would give an attack DV of 2 and a defense DV of 10.

With this in mind, you could have figured out this item list for yourself:
Item 1: any item
Item 2: 8F
Item 3: Lemonade x42 (2 Attack, A [10] Defense)
Item 4: X Accuracy x177 (decimal equivalent of B1)
Item 5: Carbos x218 (decimal equivalent of DA)
Item 6: Poké Ball x119
Item 7: Fresh Water x201

Of course, this solves the problem by changing an already shinyfied Pokémon to a female. It doesn't change the Speed/Special DV, unlike the code given by Couldntthinkofaname which makes 2/10/10/10 (and therefore should not be used if you want a male shiny). I used no knowledge AT ALL in opcodes to write this to show that anyone could have done that, but to create a code like the one he did, you would indeed need some basics. Maybe I can advise you to read the relevant informations in section IV.10 of the newcomers guide to 2G ACE since opcodes are exactly the same in the first generation, obviously :)

A last note: in the generic code that changes ONE value, by having 34 Poké Ball and following with a quantity of Max Revive, you can directly change the value of the following address as well.
Item 1: any item
Item 2: 8F
Item 3: Lemonade x(value to give to address)
Item 4: X Accuracy x('last two numbers' of the address)
Item 5: Carbos x('first two numbers' of the address)
Item 6: Poké Ball x34
Item 7: Max Revive x(value to give to the following address)
Item 7: Fresh Water x201

Which in our case can be solved by using 42 Lemonade, 177 X Accuracy, 218 Carbos and 170 Max Revive so that it does the same thing than couldntthinkofaname's code.

Hope it helps. Have fun with ACE!
2
The invalid build of PKHeX hasn't been updated for US/UM yet.
3
Just use the "Gameshark code" with arbitrary values. Fuzz with them a bit !

You could do that.

You could also do this:

8f
Any item xany
Poke ball x33
TM11 x255
Ice Heal x42
TM45 x42
X Attack x111
TM41 x103
TM40 x212
Max ether x119
TM01 xany

This writes an entirely random byte to an entirely random location. Be very careful, there is nothing stopping this thing from writing into SRAM and invalidating checksums.
Back up your save before using
Messing around with gameshark codes is fun too, you never know what you might find! :)
4
Just use the "Gameshark code" with arbitrary values. Fuzz with them a bit !
5
Quite interesting indeed. I'll take a look at the disassembly for any difference.

Also, if this could be moved to Gen I Glitch Discussion, please.
6
woah, this is actually pretty cool! i never realized why some people saw different sprites, and i always saw just one. i think maybe the game is hardcoded to choose from the bank Pikachu (Oak) or Weedle (Old Man) is in.

interestingly enough, for h poke i see a different sprite than you do for regular battles, what is the crc32 of your rom? maybe i've just been playing a different one for all these years. :p
you could see five or six sprites, or just one. *pose*

EDIT: on further investigation, the game chooses the bank for the sprite based on $d058, but the data for the pokemon based on $cfd7, which would explain this. if you walk into the grass, the pokemon will always be pikachu, therefore it will talke the sprite data from the bank of wherever pikachu is. if you watch the old man, the sprite will take from the bank of wherever weedle is. this also works with normal battles, if you walk into pallet town with the code 01c6d7cf on, it will sometimes show the normal sprite, and sometimes show slowpoke's, due to having pokemon in different banks show up. this works with any pokemon whose sprite is sourced from $4000-$8000.
7
Polls / Re: Which starters are your favorites?
« Last post by 44HyXpert on Yesterday at 09:42:05 am »
I chose the Gen V starters because they're the only ones I had a hard time choosing from! Even though Bulbasaur will always be my favorite starter, I love all 3 of the Gen V starters (but Snivy is my fave!).
8
Hi  :)

So i was just re-documenting some Gen1 Pokémon on all different Inernational Versions. And today when i was gonna go encounter all Glitch Pokémon in Japanese Yellow I thought just for fun that it would be funny to try encounter them with Prof.Oak in the "cutscene" when Pikachu attacks you at edge of Pallet Town with the Wild Pokémon Encounter modifyer game shark code

So i Encountered a couple of Glitch Pokémon, did my usual thing and just took screenshots of them and took notes and moved on to the next one and so on...

Then i realized midway that it was kind of dumb to use Oak in the first place since then i could actually get the Pokédex entries for all glitch pokémons which i also wanted to document. So i switched back to not using Oak and just encountering them on my own like usuall with the Wild Pokémon Encounter modifyer game shark code.

But then; I realized all of the Sprites for Every Glitch Pokémon turned out different from when i encountered them with Prof.Oak.


I thought at first that this alone was quite intresting, so i tried it with English Pokémon Yellow too and it worked there aswell; Different Sprites for each Glitch Pokémon when encountering them normally and with Prof.Oak.

But then i thought, "Wait, There's the Old Man i Viridian City, too. I wonder if the Sprites will turn out different with the Old Man too?". And yep, they did. And i also tried it with English Red/Blue & Japanese Red/green, the Old Man also made Glitch Pokémon appear with different sprites than if you'd encounter them regulary.

I attached a comparison between different sprites that i compiled in one .png-image just as example, so the HEX index i used for the examples doesn't really matter, i just picked a glitch pokémons HEX without choosing a specific one, it does work with almost all of them.


Also Worth noting is that this must most likely happend in all other versions of Gen1 such as Red/Blue & Yellow in German, Spanish, Italian & French Versions too, i just tried with English & Japanese so far...


Pls tell me if you have any input, ideas or explanations. Because I'm not 100% sure yet why all this is the case.

That's all, thanks

//coloradohugge ;D
9
Want an ace way of making the game glitch itself how would you run code that changes a random byte in the wram.
10
A somewhat similar cause. In Dokashira door, the end terminator is placed before the game's expectations, causing a very large Pokémon menu. Since one of the "Pokémon" are considered poisoned, an address somewhere is constantly being decremented upon taking 4 steps.

This is probably what's happening here, an address is being decremented somewhere. Q is considered an end terminator due to it being Hex $FF.

I think it's probably something similar, although I don't think it's from poison, as I've never seen the poison flashing effect from it. It seems like two areas of the game are conflicting somehow. Sort of like the game's reaction to Q in a fusion / hybridization: In battle, a Q is completely useable and shows up as active on the party list; but when viewed by the PC, it is registered as just a stopping point.
Pages: [1] 2 3 ... 10