Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Krys3000

Pages: [1] 2 3 ... 48
Emulation & ROM Hacking / Re: BGB and invalid opcodes.
« on: November 23, 2018, 01:34:08 am »
It would require a very bad quality emulator to ignore invalid opcodes. Fortunately, official material coming from big companies, like the Virtual Console, will not be that ba... WAIT
Generation II Glitch Discussion / Re: Coin case alternative in Crystal?
« on: November 17, 2018, 10:26:48 am »

Your thread is not in the good forum. Someone will probably put it in glitch discussions.
However to answer your question you can read this guide which contains the informations you need :)
Hey there,

After all this time I have a moment to test calling and received calls in all three moments of the day. Indeed, 0xAF gives Master Ball also in French games when calls in the morning, but then it executes $D5CD, not $D7CD :)

I'm trying to finish this contactdex asap to see if it is similar to english games.
You need to remove the addresses in order to make it work. It just accepts opcodes.

In other words,

You can easily answer that by copying my code into GBZ80toitems.

But i've never done conditional returns before so I'm not sure it will work. Given enough time I could try it.
What about this, to give (Exp) as last byte of exp for stored Pokémon 1 in english games:

Thunderstone x166
TM18 x4
Max Revive x(Exp)
TM01x[Any qty]

It translate into:

Code: [Select]
WRA1:D322 21 A6 DA         ld   hl,DAA6
WRA1:D325 04               inc  b
WRA1:D326 77 (Exp)         ld   (hl),(Exp)
WRA1:D32A C9               ret 

On a much more theorical note, if I understand well how conditional returns work, a code like this:

Code: [Select]
WRA1:D322 21 A6 DA         ld   hl,DAA6
WRA1:D325 01 2C 00         ld   bc,002C
WRA1:D328 3E (Exp)         ld   a,(Exp)
WRA1:D32A 16 (Nb)          ld   d,(Nb)
WRA1:D32C 77               ld   (hl),a
WRA1:D32D 09               add  hl,bc
WRA1:D32E 15               dec  d
WRA1:D32F C8               ret  z
WRA1:D330 C3 2C D3         jp   D32C

With (Nb) as number of Pokémon to change in box, would give that exp to this number of Pokémon starting with Pokémon 1. But in this form it would use many glitch items, so this is something that can be worked on.
Then sub a,d8 has to be replaced by add a,d8 (hex:C6, which is HM03). It's annoying because you won't see its quantity. There are plenty of workaround that you think of to fix this, but I still think it's a better idea to make a code that replaces exp last byte by the value you want instead of adding to the current xp, don't you think?
Well, I don't have much time to work on it and test it, but I guess that, starting from item 3, if the Pokémon to edit is in the first slot of the PC,

Thunderstone x166
TM18 x126
TM14 x(Exp to remove)
Poké Ball x119
TM01 x[Any qty]

May remove (Exp to remove) to this Pokémon.

Corresponding ASM is
Code: [Select]
WRA1:D322 21 A6 DA         ld   hl,DAA6
WRA1:D325 7E               ld   a,(hl)
WRA1:D326 D6 01            sub  a,(Exp to remove)
WRA1:D328 04               inc  b
WRA1:D329 77               ld   (hl),a
WRA1:D32A C9               ret 
Technically you could either:
- Create a code with a counter that decreases the exp of a Pokémon of a given value. Something like ld hl,a16 ; ld a,(hl) ; sub d8 ; ld (hl),a will do the trick if you want to remove less than 256.
- Directly modify that value to the final amount of exp you need (ld hl,a16 ; ld (hl),d8 if possible).
- Elaborate a more technical code that stores the current Pokémon's exp byte address in hl, the value to give to it in a, 002C in bc, and the number of Pokémon in box in d, then chains ret z, ld (hl),a ; add hl,bc ; dec d somehow ? Note sure about this.

I guess cloning mons can be done also by copying 2C bytes serially. I would use connection copier rather than writing a code I think :p
Sorry for the time before getting back on this. I was busy these days  ;D

So, I actually wrote a setup for it that uses the connection copier, which in my opinion is indeed an underrated subglitch of the item underflow, to copy 12 to $D65E. With these items and once saved and reset, the game can execute code from item 3 as long as you have the good setup, everytime you enter the Game Corner.

Item 1 ($D31D) = Hyper Potion ($12)
Item 37 quantity ($D367) = 127 ($7F)
Item 38 quantity ($D369) = 250 ($FA)
Item 43 ($D372) = Escape Rope ($1D)
Item 43 quantity ($D373) = 211 ($D3)
Item 44 ($D374) = 9F ($5E)
Item 44 quantity ($D375) = 214 ($D6)
Item 45 ($D376) = Master Ball ($01)
Item 45 quantity ($D377) = 0 ($00)

However, it still needs a glitch item (9F). If one has a series of 6 still unused slots in its regular bag (meaning 12 bytes with a value of 00), he could place the Hyper Potion right after them and use connection copying to move the 13 bytes from $D652 to $D65E. This way, we avoid the glitch item because $52 is Elixer, but it would require adapting the Item 43 to point to this data block (Super Repel if the blank spots are Item 14 to 19).

For some reason I missed your post. I hope this reply finds you now but I will post on your video also to increase the chances.

You are right, there was an issue with that specific code. It changes the ID of item 11, regardless of the version. However in the case of Crystal, the code here was 9 items long because the first two items are missing compared to G/S. You need to add 2 random items before the item you want to change, X Accuracy in this case. You can also change the quantity of Fresh Water to x2 and it will affect the 9th item instead of the 11th.

With this corrected, it should work fine the way you do it. Thanks for the report and apologies for the confusion :)
According to your method, Pallet Town script, $D5F0, can be manipulated from the expanded PC. Pallet Town Glitch Script 0x13 executes code from current player x-position ($D361) which also can be manipulated from an expanded pack.

This of course is rather hard to use in routine, but do you think that, similarly to what you said about Viridian Glitch script 0x11, it is possible to put a code at this position that would change the Celadon's Corner script to 0x12 and execute it, then go on with the Corner ACE?

Thanks  :)
Ok Evie, thanks!

Apparently yes, it seems that this item cannot be reached in the Expanded PC. If we want this method to replace the necessity for a glitch item, we could be using Pikachu Off-Screen ACE to setup $D65E to 12. This way, there would be no need for a glitch item nor performing the annoying Pikachu Off-Screen process to execute code: entering the corner would do the job. I will work more on this soon if possible :)
...or a 4F/ws m ACE without 4F/ws m.

Hello everyone,

Glitch Meta-map Script ACE is a rather poorly documentated ACE method in Pokémon Red, Blue and Yellow, which relies on using either the Trainer Escape Glitch or the Item Underflow Glitch in the PC (or any other ACE method) to change the value of the address controlling the script for a given map.

Indeed, some (all?) of these addresses can be changed directly by changing the nature or the quantity of the right item beyond the 50th slot using PC underflow.
But, as you probably all know, when performing the Trainer Escape Glitch, we change the escaped trainer's map script to 01 and change it back to 00 when coming back after facing a Pokémon and flashing the start menu (whose textbox ID on every map is 00). And, if reading another textbox than the start menu before getting back on the escaped trainer's map, we can attribute to the script address another value than 00 - the one matching the given textbox ID.

While working a bit on Glitch Metamap Script ACE I noticed that Glitch Script 0x12 of Celadon Corner in Yellow executes codes in both english and french games at $FA4C, an Echo RAM copy of $DA4C. This is the fifth character of the last Daycare Pokémon name in english games (and the safari balls count in french games, which could be noped as well as the following address controlling the presence of a Pokémon in the Daycare to reach the first character in that name).

Of course, I couldn't help but thinking about luckytyphlosion's extensive work on gm- glitch item ACE that I believe could be adapted to this. Executing code would not use gm- but just entering into the Corner!

As a proof of concept I have performed a setup that could be used aswell (of course, it should also work with gm- in R/B provinding that we adapt the jump) derived from the setup I invented for glitch item ACE using 4F. Note that similarly to 4F ACE, if your Daycare as never been used, you can use a 10/11-Stored Pokémon ws m setup and it will work with this method.

- If playing french games, make sure that during your last visit to the Safari Zone, you have come out of time or of Balls.
- Place at the Daycare an un-nicknamed Abra at lvl 80 with currently 24 HP. The O.T. of this Pokémon must be compatible with ACE (e.g.: AAAAAAA)
- If playing french games, take back that Pokémon. You can also do it if playing english games.
- Have in PC Slot 1 a Pokémon with 33 PP currently on first move, 33 PP currently on second move (38 if playing french games), 19 PP currently on third move (3 PP Up used) and no fourth move or no PP on it.
- Have in PC Slot 2 Clefairy, Male Nidoran or Spearow (or another Abra) with currently 233 HP.

This jumps to $D321 (english) or $D326 (french) which is item 3 of the pack. Enter in the Corner to execute the code.

This stays theorical. It seems impossible to Trainer Escape the Rocket in Celadon Corner (except with a glitch item maybe, Evie may know more about this), and I don't know if $D65E, which is the address for the Corner's script, is accessible through the underflow in the PC. If not, then this ACE method would be exclusively limited to the ability to use another ACE Method to setup the script!

If anyone of you has some time to work on this, don't hesitate to do it  :)
Pokémon Discussion / Re: Shiny hunting
« on: August 28, 2018, 06:20:53 am »
Hey guys,

So basically, I've been playing Pokémon since R/B/Y, but I recently made a total count of hours played on games that contain Shiny Pokémon (2G onwards).

That would be 857 Hours and 28 Minutes, distributed on 17 different games. While playing the main story, I have been doing for all this time a Living Pokédex run (for which at this time I have 803/807 Pokémon total). That to explain that I have spent a considerable amount of time attempting to encounter Pokémon.

Despite this, never in my life I have encountered a Shiny Pokémon by pure chance.

Until last night, with that little Heliolisk in the Ultra Space Wilds. It took that much time for me to finally reach that milestone  :P

Pages: [1] 2 3 ... 48