Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Posts posted by suloku

  1. https://github.com/pret/pokecrystal/blob/c75d121c78324077bd058c179c94c596c6457f77/ram/wram.asm#L3207

    That's the location on wram, I checked and it is saved in the sram (savegame). So yes, the swarm can be edited on savegame/cheatcode.

    It seems this is noy in pkhex, I can search the swarm locations and try to make a plugin to edit them.

    If you sre on emulator you could also use a cheatcode, not sure if there's any.

    Edit: it seems in gold/silver it is a little more complicated as it isn't handles by a single flag and there's grass and fiahing swarms

  2. https://github.com/suloku/PKHeXThreeFinderPlugin

    This plugin will add a dropdown menu option in "Tools" when a gen 9 savegame is loaded.


    After clickling, the program will run trough every pokémon in the savegame (party + boxes) in order to find a Dunsparce or Tandemaus whose encription constant is divisible by 100 with no remainder. This means the dunsparce/tandemaus will evolve into the 1/100 rare form (3 segmented / family of three). A simple text output will tell you if any of the rare-form have been found and where. The report will be copied to the clipboard, so you can paste it onto any text editor.

    note: the case were output is longer than screen height is not handled, if it happens just press enter/escape to close the textbox. You can still check the whole output as it was copied to the clipboard.

    Since there's no mass release and eggs can't be released, I'm currenty getting a full batch of eggs for dunsparce  (all I can get within the 30 minute egg powerup), then checking the save on pkhex. If there's no 3 segmented, I'm restoring my previous savegame and making another batch of eggs, saving a lot of time hatching and releasing.

    Not sure if this will be useful to anyone, but here it is nontheless.


    Kaphotics for PKHeX and PKHeXPluginExample
    BlackShark for PKHeXMirageIslandPlugin


    1.01 (improvements by foohyfooh)
    Store copy of the Pokémon at the party and boxes indexes
    Remove extra lines if no viable Pokémon was found
    Make clipboard copy optional
    - Initial release


    Get latest version here: https://github.com/suloku/PKHeXThreeFinderPlugin/releases


    • Like 3
  3. EDIT: after further testing this method WON'T WORK! None of the batch commands below will work and I haven't found any way to use the batch editor as a means to locate the dunsparce/tandemaus. It turns out when changing species form is by default set to the first one, regardless of the one corresponding to the encription constant, so you won't be abe to use the method I describe below. I'm not sure if there is a way to do this with pkhex batch editor, but in any case I coded a simple pkhex plugin that will easily tell you if you have any dunsparce/tandemause that evolves into the rare form: 



    Thanks for the tip. Even though I'm in the latest version, I can't find that legality information about what it will evolve into, besides changing the species and seeing the form it gets.

    In any case, using the batch editor (tools->data->batch editor) I found a way to easily identify if one has any pokemon (including eggs) that can evolve into the rare form.

    ALWAYS BACKUP YOUR SAVES! This is only meant as a means for quick consultation, for example after making 30 eggs, to see if any is the alternate form, no changes to the save should be saved as these will result in illegal eggs/pokemon.

    The following two batch editor commands need to be input:

    - First command will turn all dunsparce/tandemaus into dudunsparce/maushold (even if they are eggs)
    - Second command will give all 3 segmented/family forms a masterball so the pokemon can be easily identified in the boxes. If after running the batch command 0 pokemon have been modified, none were a 3 segmented/family form. (keep in mind that if you already had any rare forms in the save, it will also be modified)

    note: I'm using species name in the codes rather than pokedex number because it seems pkhex internal IDs and national dex numbers differ.

    1st command:


    2nd commnad:


    For tandemaus:


    2nd command:


    ps: turns out the first tandemaus I caught was a 3 family one...

  4. Then I wonder why this "seems" to work on emulator but not on real hardware :S

    Not sure if this has any use here, but GB gameshark codetypes come in this format: 0ZYYXXXX

    YY: value

    XXXX: address

    Z: apparently it's the bank? I can't find much documentation about this.


    Also, I noticed pkhex doesn't support this kind of event flag. I'll check. BTW I recallviewng patch file from the VC versions being online, it would be interesting to see how they exactly they enable the event in the VC versions. I think it just hooks the endgame function and enables the flag...

  5. On 8/29/2021 at 12:00 PM, DaseR said:

    Hi suloku

    did you find the solution why this works in emulator and not in original cartridge?

    Thanks!! 😄


    On 3/22/2021 at 11:32 AM, ajxpk said:

    At this point I wouldn't recommend using GameShark Codes in Pokémon Crystal, because the game switches SRAM banks, the activation flag for the GS Ball event is at loc 0x0000 of bank 5 (loc 0xA000 in the SRAM file). Now the problem is you can't see which bank is currently in memory so when you just write 0x0B at memory loc 0xA000 it could end up in any bank and cause chaos. I removed the content of my old posts...

    ajxpk already answered. Probably on emulator there's not as much bank swapping. If there was a way to know which SRAM bank is currently in use...I don't know if GBC gameshark can have button-enabled codes, but if that was the case a more compicated code could be made so that the value is only written when bank 5 is in use....

    Not sure if this can be tested on emulator, I don't own any gameshark devices for GB/GBC/GBA

  6. Sorry for the necropost, but I think I won't be the only one stumbling into this problem and searching got me to this thread, which doesn't have a clear (user friendly) answer to the issue.

    Problem is that project64 (and probably other n64 emulators) don't round up savefiles to full n64 savetype filesize. In the case of pokémon stadium 2, as Kaphotics stated, project64 creates a 0x1FF00 file (130816 bytes) while PkHex expects a 0x20000 file for (USA/INT) stadium 1 and 2 savefiles  (131072 bytes). One can manually solve this manually with any hex editor or file padder.

    I went ahead and coded a simple app that will pad n64 savegames to the nearest savetype (depending on the input savefile). Originally I only intended to make it pad the stadium savegames, then I saw Japanese Stadium 1 (or stadium 0) uses a different savetype, so I went ahead and made a more general app that can work with any n64 savegames.

    Just drag and drop a savefile onto the .exe file and you will get a file with the "_pad" suffix added to it.


    • Like 3
  7. Seems my program only dumped "Gym Leader Castle" registered teams. For some reason I did find the correct Pokérus byte and caught data bytes, but didn't update the file structure (neither here or in the main.c file), but pk2 dumps should be correct.

    Thanks @ShadowMario3 for the detailed teams structure. Pkhex now supports all stadium savefiles, including registered teams, but I tested it earlier and seems to have some bugs (I tested registering a celebi, then dumping and the dumped file became japanese somehow).

    I'll post an issue in pkhex's github, for now I've updated the dumper code to dump all registered teams, both in sk2 (direct dump pkhex compatible) and pk2 file format.


    EDIT: seems the bug in pkhex was related to importing sk2 files when it couldn't decide if the file was jap or international (OT and Name both being lesd than 5 characters). Seems it is already fixed at github.

    • Like 1
  8. It have been brought to my attention that the gameshark code doesn't work on real hardware, which I find really strange. I do not own a gameshark, is there anyone around here witha  gameshark and hardware to transfer savegames to PC? If someoen is interested I can analize the savegame after the code is used and see what may be failing on real hardware,

    Or if someoen knows why the code works on emulator but not on real hardware... I'm puzzled there. @ajxpk

  9. Since I did stumble upon prop case flags while trying to improve memory link, I decided it wouldn't hurt to code a simple prop case editor since pkHex doesn't seem to have one.


    16 march 2021 17:45 (BUILD 2021316_17468)
    * Added Prop case editor for BW and B2W2 (thanks to bulbapedia for listing them in order and hosting the sprites)
    * Fixed crash when changing flags in Memory Link
    * Grotto table images are now embedded (no need for grotto tables folder and files)


    • Like 2
  10. A wild update appeared!

    EDIT: I found where props are stored, so I went and added an unlock all button for memory link and props will be imported from BW savegame (if for some reason you wouldn't want every prop...)

    Some fixes I got pointed out, dream radar and memory link should properly work now. I may look into prop case editing since I've noticed pkhex is missing it (or maybe I just couldn't find it). No promises. Unfortunately, medal editing and join avenue are as buggy and incomplete as prior release.


    13 march 2021 22:45 (BUILD 2021313_224710)
    * Memory Link:
    Props are now imported from BW savegame
    Added button to unlock all props

    13 march 2021 21:00 (BUILD 20211313_21124)
    * Dream Radar: Fixed item logic. Works propperly now. Amount limit is 255.
    * Memory Link:
    Now fully trainer name/id/sid (also when importing from BW) which fixes prop case event showing the wrong name. (Thanks Black Shark from almost 4 years ago).
    Added starter pokémon editing and importing from BW savefile.
    * Block dumper:
    Added info for what BW blocks are.
    Enabled decrypting for BW block 38
    * Grotto editor: no longer crashes if grotto tables are missing


    • Like 2
    • Thanks 1
  11. So I've been researching a little. Fortunately pkhex already has starter editing for bw which made my life easier to locate starter in memory link data.

    About block 38 decrypting code in BW being commented out: if I recall correctly, I copy pasted code fro B2W2, which were the games I was interested in when I coded the functionality (or more like copied from pkhex). To be more precise, I was interested in entralink forest. Since each encrypted block needs some known data to be decrypted (start, lenght, and seed position) and I did not know where those were for BW the code was left commented. I have now enabled it and seems they used the same structure for BW1 and BW2, so it should work now.

    I want to test a little more the memory link feature, I was reported some strange behaviour and want to make sure cheren and bianca team's change when I change the starter pokémon in the edited memory link, afterwards I'll update the app at github.

    BTW, doesn't pkhex have support to edit the info in block 38 anyways?

    Also, keep in mind that I coded this mainly for myself and there are a bunch of "features" coded in for research purposes. Join Avenue and Medal editting would require more research and work. The other editors should work as intended, but don't expect them to be bug free. I'm not a programmer, everything I have coded has been for fun and self interest, whith a mindset of "making it work". The code is hacky, ugly and poorly documented, and I'm sorry for anyone trying to understand it.

    Just use pkhex whenever it's possible. Of course the best route would be to recode everything as pkhex plugins, but I don't have neither the time or skill to do so.

    ps: if for some reason you need to decrypt block 38 right now tell me via pm and I'll send some binaries, but it shouldn't take long for me to update on github

    EDIT: https://github.com/suloku/BW_tool/releases/tag/20211313_21124


    • Like 1
    • Thanks 1
  12. I simply did not have any information about which blocks where encrypted or which weren't for BW1 or BW2. The ones I knew were encrypted are hard coded to be able to decript and re-encript.

    If you have a list of which blocks are encrypted for bw (and bw2) that would be helpful.

    I was reported the memory link feature is missing the starter pokémon data and I'm trying to find where it is stored both in memory link and BW1 savegame, so I could uptade to support all known encryped blocks for bw and bw2

    • Like 1
  13. Thank you very much for this contribution. As someone who never got a legit mew or celebi myself back in the day (got traded a most likely glitched/sharked one), it is always a joy to see more of these rare mew getting preserved, and the feeling of getting yet another one (and an european one to say the least!) is still as fresh as with the first one.

    • Like 1
  14. On 7/21/2020 at 8:45 AM, Santoz said:

    Hi I have a question,I have a german pokemon fire red can i still use the english events so i can get the mystic ticket? If yes can this corrupt my save game or the game itself?

    You can use the english events, in fact we have reports from mexico, were the games were sold in english and the event there was held in english, that it could be received in spanish cartridges (the event being still in english). The reason is because mexican people often imported spanish language games from europe.

    We also tested this with a different event rom. Only incompatibility is japanese<->other languages.

  15. On 3/28/2020 at 2:51 AM, Sabresite said:

    This one looks hacked... Nicknamed, 0 catch rate.

    It was on pokémon stadium 2 and gen 2. 0 catch rate due to item used/removed, nicknamed due to a "bug"(?) in stadium 2 (and I think stadium 1, but I have yet to test it) not reading the full name, but stopping at the first 0x50 terminator. When pokemon comes back to the GB cartridge data present alredy in the box/party gets "added" to the remaining characters. This doesn't happen with OT.

    EDIT: also, YaniM told me that the mew had been in stadium 2 and gold before I even asked about it. When trasnfered to gen 2 mew holds a bitter berry. The mew was used and brought up to level 100, being confused at some point is very likely (and thus the item being consumed).

    • Like 3
  16. So coincidental this has been brought back. I already made all those calculations some years ago and also came to the conclusion that the NINTEN mew in the picture did not have the standard DVs.

    Only piece of evidence I have is in this thread at Azure-Heights, the information being in the second post made by MewtwoSama:


    Every official Mew I have, have the same max stats. I dont remember the stats exactly.

    Except for the "NINTEN" Mew i have. THat one has some bugs in it. Its max GENES are 20 points off.

    User ryuko2002 (who has recently contributed de Spanish EUROPE and australian NAL mews) was registered there, I asked him to reach MewtwoSama in the hopes he still has the mew/backed up the savegame/calculated the DVs.

    There are other possible explanations:
    - Nintendo Power Magazine actually used gameshark to get the screenshots ( I think it may have been common practice in order to easily get trough the games and get the job done)
    - It was a test mew just for the magazine?
    - The NINTEN mew MetwoSama owned did have the normal stats, but it reached level 100 before being fully EV trained, thus preventing stat updates (read more here: https://www.math.miami.edu/~jam/azure/compendium/boxtrick.htm)

    ryuko2002 has tried in my stead to reach MewtwoSama at AzureHeights, let's cross fingers.

    • Like 4
  17. Just realized I forgot to post the translation of the letter.... here it goes


    Pokémon Celebi Tour

    I wish this letter isn't any bother for you.

    My name is Bill. I'm the person in charge of the Pokémon Center's Pokémon Storage System. We already had the chance to meet at ECRUTEAK CITY. I hope you still remember me. I write this letter because I need your help.

    Some days ago, an unknown person sent to my COMPUTER a big amount of Pokémon. After taking a look... I realized it was the legendary Pokémon "CELEBI"!
    They came by dozens. My heart was beating a hundred times per hour, my legs were shaking... I was observing CELEBI when, suddenly, I received an electronic mail which said the following:

    Dear Bill:

    I can't reveal my identity for the time being. I have just sent you my CELEBI that as you might know are legendary Pokémon which existence is doubted by many people. For many reasons I have to find lots of trustworthy Trainers capable of taking care of these CELEBI. I would like to entrust them to you. Could you search for Pokémon Trainers who whish to take care of these CELEBI? I don't know how much time I have left...

    Someone who loves Pokémon

    I imagine this person has his reasons. I'm glad to know that CELEBI really exists, but I alone I'm unable of look after so many Pokémon. Also, I can't stop taking care of the Pokémon Storage System. When I read this message, the first person that came to mind was you. I saw the affection you hold for Pokémon when I first met you in the midst of your adventure. During the Pokémon Stadium Tournament, you also showed you pasion for Pokémon, so I'm certain that I can entrust you with these CELEBI.

    I'm sorry for the inconvenience this might case you, but would you be so kind to help me find the Pokémon Trainers that will take care of these CELEBI? There's a total of 20 CELEBI. Please, deliver these 20 CELEBI to your friends for them to look after them. It's not an easy task, but I would eternally be grateful for your help.

    The only way to deliver the CELEBI to your friends is through Pokémon trading. CELEBI is a unique Pokémon. I think a Pokémon as special as this one shouldn't be traded for any pokémon. So I'm attaching a list of the Pokémon it can be traded for. They are the ones following next:

    The number of the Pokémon is to the left and the name, to the right.


    I'm thanking you in advance for your help.

    August 2001
    Foreman of the Pokémon Storage System

    • Like 3
  • Create New...