Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by suloku

  1. So it's stored in the save? Then a single person can go and retrieve all the wondercards in one go via save backup/restore, I hope someone goes.
  2. I wonder how that works...it stores mac address? Trainer? Will it use the ID 0 wondercard? This seems like the gen 3 egg wondercards: you could toss the card to get another egg (no time limit though).
  3. Here are the savestates. I've included a readme about how to use them and how to use VBA to change OT/TID/SID. They are for japanese emerald, of course. Flawless_Mew_savestates_japEmerald.zip EDIT: Also, I've looked into clearing the flags for the static encounters via a wondercard script, and so far it worked fine for rayquaza, a regi and mew. I'm not sure if I feel like searching for groundon/kyogre right now, but I'll see if just clearing the encounter flag is enough for the event to be re-played. REBATTLE FLAGS -------------- 0x1BB : Player has encountered Regirock 0x1BC : Player has encountered Regice 0x1BD : Player has encountered Registeel 0x1BE : Player has battled Kyogre 0x1BF : Player has battled Groundon 0x1C0 : Player has battled Rayquaza 0x1C1 : set after voltorb pokeball new mauville 0x1C2 : set after voltorb pokeball new mauville 0x1C3 : set after voltorb pokeball new mauville 0x1C4 : set after electrode pokeball new mauville 0x1C5 : set after electrode pokeball new mauville 0x1C6 : Player has battled Sudowoodo Battle Frontier 0x1C9 : Player has encountered Lati Southern Island 0x1CA : Player has battled Mew 0x1AD : Player has battled Deoxys Source: https://www.pokecommunity.com/showthread.php?t=330008 (the flags are the same ones for any game region, unlike AR codes which are ROM specific). EDIT 2: seems groudon/kyogre need an additional variable: "setvar 0x4001 0x1" --> this re-enables the kyogre/groudon post-game "roaming caves", so it is needed in addition to the encounter flags to actually be able to re-battle them (unless you warp to them map, but the point is re-enabling the battles with a wondercard. I should see what the game uses to see if elite 4 have been beaten and add it to the script, I don't want to enable kyogre/groudon before post-game (or maybe the game already handles it by itself...), in any case seems there's already a flag for that used in secret bases so... EDIT 3: the savestates need this emulator (re-recording, which also supports lua scripts). I'm linking the one I used, but I'm not sure if it's the latest one (works for our purposes though): http://adelikat.tasvideos.org/emulatordownloads/vba-rerecording/vba-rerecording-svn480-win32.7z
  4. The "official" nintendo SDK "CONFIG" app can change the raw rtc clock, thus not triggering the games "time protection" (or whatever is called). (Also, why not just use a cfw?) I have a question of my own: is rufflet/vullaby available in the pelago for moon/sun respectively (they are version exclusives, but I'm not sure about the pelago...)
  5. I could craft a custom wondercard that re-enables all battles in emerald, easier than AR codes and can be traded over wifi adaptor too. I misscalculated yesterday, but frame 174 million now, so almost there. EDIT: hit 176, but I must go, I'll rng it in about 5 hours. I'll upload the savestates and offsets for TID/OT then.
  6. Did you build the script from scratch? The export and import as XSE file are only really meant to export a wondercard script, edit it and re-import. they expect a .gba file with the 4 first bytes being a pointer to the offset where the script is in the gba file (the same offset shown when you export for XSE). The non xse script import/export expect a 996 byte file or less, the script starting at the begining of the file. XSE is though for roms, and for some reason you can't rename a script file to gba, load it on XSE and set offset 0x000000 for editing, the minimum seems to be 0x0000004, so in order to edit a plain script you need to add a 4 byte padding, and in order to import, you need to remove that padding. I could make it so when importing the program skips all 0x00 bytes on the file, assuming that the first non 0x00 byte is where the actual script starts in the file, but this would only remove the need to manually delete the padding. As an alternative, get a wondercard, export the script as XSE and use it as a template: in xse remove the script and put your own, this way you will be able to import back with your script. The scripts found in the rom are a little different from the final scripts nintendo used for distribution (just some word changed here and there). In fact, for example, they messed up the Spanish Aurora ticket from emerald: it still tells you to go to vermillion city, while the one found in the rom is correct. This seems to indicate that they used the FRLG wondercard as template for the emerald cards (also explains why the official cards talk about the man in green, while he wears blue in emerald), and they didn't notice because the distribution wasn't actually held in spain (but could be downloaded at some later events in germany, or sending to nintendo of italy which is what we did). In the rom there's also the egg present scripts (which are embedded in the editor for easy usage) and some others, like the altering cave event script, which was probably scrapped due to only being able to hold 1 wondercard at a time and it works by changing the pokémon in the cave each time you talk to the deliveryman (I guess they should have hardcoded the event and just use the wondercard to trigger a flag as a solution, but meh). I should include an altered cave wondercard maybe...
  7. Yes, the entire files are in the "dl_regulation" files (albeit the latest ruleset is NOT there, but the other 2 previous are, so I imagine the one you uploaded is outdated). EDIT: we still would need a way to use them in the future, that's why I asked about how other regions name the files in extdata.
  8. I've seen those, but they are actually different from what you actually get downloaded on your 3DS. Unless there's a way to set a local broadcast server at home from which one can download the rulesets, those files can actually be directly used. I've only downloaded 3 rulesets so far, and according to serebii only 3 have been available. All 3 are still downloadable, so we can still get them in all languages. I've tried comparing some of the files you got from boss with the actual rules stored in my 3DS and I've found a match for two of the rulesets in the dl_regulation_EU_S file. The third ruleset (alola friendly competition) is missing, so my guess is that they update the dl_regulation files when new rulesets are added. What I get from this: - We can dump the rulesets from the dl_regulation files - We need to know if all region use the same filenames in the extdata (012, 013 and 014 for current downloadable rulesets) - The dl_regulation files should be update when new ruleset downloads become available. If you have a 3DS with a game set as non-spanish region (japanese or USA would be the best), could you post the contents of your REG folder in the EXT Data? You may browse them with FBI, this way we can see if they use different filenames for different region rulesets or the filename is tied to the ruleset as some kind of ID ( I haven't been able to find any relationship with the filenames within the regulation files).
  9. There's a sample old sea map wondercard for all non-jap emerald games in the download. It uses the script found in the english rom, you may edit the WC text to your liking. I didn't do one for each language because it is not an official thing and the english one works just as fine for all the other languages, so for those who only want to get the Mew should be more than enough. When exporting the script for XSE you get a GBA file (to load into XSE) and popup window with the offset you need to input in XSE.
  10. Frame 130 million. I expect to hit 175 million in about 10 hours. I never realized this same frame/seed could be used to get any other of the emerald legendaries... unfortunately the savefile I'm currently using already caught rayquaza, but re-enabling the event in the savestate would be quite easy. In fact, I don't know why there's nothing to re-enable legendary battles on gen 3, they are only some flags that can easily be found with a script editor. I may research this at some point, now I want a shiny flawless rayquaza for the battle tree (still need to get myself to beat it, I never really bothered with the battle towers/zones, but this time there's a passport seal so...)
  11. I think for the mew, 45 days is somewhat reasonable, but half a year... I may check gen 4, which may have an easier way to get a flawless ditto. BTW, fram 104 millon right now, so maybe tomorrow night...
  12. Remember when I suggested that downloadable tournament rulesets should be preserved, since they are stored locally in the Extdata folder for Sun/Moon and can be used in local combat? Well, I tried restoring with no luck with JKSaveManager on a 3DS with new SD card, but manually copying the ruleset files into the Sun/Moon Extdata "reg" folder did the trick. I used FBI for this, but since this is userland, we could use the old exdata app for 3ds, since it copyies things to exdata given a text file with the paths and instructions (or someone could go and fix jksavemanager...). In any case, the rules are downloaded in each console depending on the region of the game, so here are the 3 downloadable rulesets that have been available for the spanish language. SunMoonRulesets_Spanish.zip
  13. Yes, it's not exactly 60hz (which is also why the gameboy player on NGC repeats a frame every so often (to sync) and feels so sloppy, something that homebrew is able to do better, check out Game Boy Interface by extrems). Currently on frame 86 million, so almost halfway trough, should have the save state ready for the end of the week. Also, I've been keeping savestates around every 8 hours, which may come useful for other crazy frames like this one. ps: do you have any frame for RNG a flawless ditto? I'm really interested on this one. BTW, I'll use this oportunity to get them from gen 3 up to gen 7, then compare with pkhex conversion 3->7, si if the same file outputs (since it's a pain, I'd prefer to get as many as possible to gen 7 at once).
  14. Excuse me sir, but the first Toys R Us distributions (the YOSHIRA/YOSHIBA OTs) did use trading based distribution, I personally contacted two former employees that confirmed this (each by his own), and the Mew from the "Mew machine" is nicknamed, while the cart based ones aren't. You may check yourself here: The distribution in spain also was a direct trade (although there's obscure data about that one...) Also, nobody really knows how those "send nintendo your cartridge" distributions worked for gen 1. They might have had just a cart full of mews and they traded over manually... who knows. ps: Also, at the very first Mew machine distribution in the US, the very first day, since the machines were still under testing, the employees got the mew transfered to their cart, then they traded it via link cable to the attendants (I guess this didn't last much, but as a curiosity even mew machine mews were officially distribute via trade). ps2: yes, I still need to write my document about everything I've learnt about the mew distributions (it's not much more than what I've already posted here and there, but I want it compiled and for anyone interested to check). ps3: do you know if japanese Mew Machine mews also had the "fixed DVs" ?
  15. Mewtwo is a static encounter, so it can have any DVs in gen 1 (theoretically).
  16. I've looked into the Stadium 2 savefile to locate registered teams and also coded a dumper that exports the registered pokémon as pk2 files ready to use with pkhex. This may help some people get their original pokémon back, if they ever registered them on Stadium 2. As a bonus, this can be used to dump the rental pokémon if you register them. Note about the dumps: registered pokémon lose the extra 0x50 terminators in the nickname (when a pokémon is never nicknamed, all extra bytes are set as 0x50, when nicknamed they are set to 0x00). This has no real impact, but it's a pitty they aren't 1:1 copies. (The status condition is also lost, but that isn't important either so...). UPDATE 11/04/2021: Pkhex supports all pokémon stadium savegames as of now, but since it seems I missed many registered teams in the initial release, I've updated the dumper so it dumps all teams in pk2 and sk2 format, optionally it will put RENT as OT name for rental pokémon in case someone wants to use them in a gen 2 game withouth manually inserting an OT. I've also included ED64-Saveswap in the file for convenience. UPDATE 14/03/2020: It seems Stadium 2 never actually stores the "full" name of the pokémon. The name is stored only until a 0x50 terminator is found. This makes depositing the pokémon in stadium 2 become "nicknamed". This doesn't make any actual different, but on the GBC games this wouldn't happen as the game seems to keep copying the bytes 0x50 bytes. Because pokémon data in boxes in the GB games isn't actually erased but rather the box slot is marked as "empty" when you withdraw/release/move pokémon, there is a chance that when you return the pokémon to GB the pokémon will become unnicknamed again, depending on the pokémon that was stored in that slot before. If one would like to return the pokémon to the "unnicknamed status", the easiest would be to have an unnicknamed evolved or wild muk stored in the box (because it's the shortest pokémon name and all chars besides the first 3 will be 0x50). Then put a pokémon from stadium 2 into that box in the same slot muk was. This is easiest done in a box with 19 pokemon, deposit muk in GB, withdraw, then deposit pokémon from stadium 2 into that box. This doesn't happen with OT name, it is fully copied. I suspect this is done so only full OT name + ID can nicnkame a pokémon (the pokémon being marked as nicknamed or not is irrelevant). Thus, this finding makes any registered pokémon recovered with the dumper be actually the same one you had back in your day. Registered teams start at 0x4000 in the savefile, here's the structure: Registered parties are 0x180 each: 0x10 header + six 0x3C pokemon structures + 2 bytes padding, 4 byte footer and 2 byte checksum 0x00 Header: 0x0 1 True if team is present (0x00 if no team) 0x1 1 Padding 0x00 0x2 2 trainer ID (default 0x0000) 0x4 12 Trainer name (GB encoding, 0x50 terminated + 1 byte padding 0x00) (default 0x5000) 0x10 Start of party pkmn, 0x3C each; uses a similar GB storage format: 0x00 1 species 0x01 1 held item 0x02 1 move 1 0x03 1 move 2 0x04 1 move 3 0x05 1 move 4 0x06 2 OT ID *0x08 4 EXP (1 byte extra padding) 0x0C 2 HP exp 0x0E 2 Atk exp 0x10 2 Def exp 0x12 2 Spd exp 0x14 2 Spc exp 0x16 2 DVs 0x18 1 PP 1 0x19 1 PP 2 0x1A 1 PP 3 0x1B 1 PP 4 0x1C 1 friendship 0x1D 1 level 0x1E 1 status condition? (status is set to 0 when the pokémon is registered) (might be padding) 0x20 2 Caught data 0x22 1 Padding? (might be status condition) *0x24 12 nickname (GB encoding, 0x50 terminated) (1 extra padding byte) *0x30 12 OT name? (GB encoding, 0x50 terminated; 0 if rental) (1 extra padding byte) 0x178 2 Padding? always 0x0000 0x17A 4 Footer 'P3v0' (0x50337630) 0x17E 2 Checksum (UByte 8 bit) Computes Header + party data + footer Download (source code included): stadium2dumper.zip Stadium2Dumper_0.2.zip
  17. I see. I did test it a little and the patch seems to do frame advancing a 12% faster. I'm not really sure how the frame-seed relationship works, for what I've read it shouldn't impact method 1 pokémon generation, but for the sake of legality (as long as running on an emulator is concerned) i'll keep using the unmodifyied rom, since it seems it the vblank patch would only yield a ~10h for what I've tested. ps: I was including the terminator when counting OT name characters, and nicknames are allowed more characters than OT, at least in international versions.
  18. Been searching at smogon and seems someone already researched how pokéwalker generation works... http://www.smogon.com/forums/members/romsstar.33244/ With the propper tools, coding a generator would be possible. What I'm seeing right now is a program that loads your save (to read things like OT name, TID/SID, game of origin, language... then you can select course and pokémon, which gets generated randomly (or not, depending on user's will) from a set of the possible frames. I guess I should start a new thread for this. EDIT: this is more complete, seems the japanese did research it thoroughly, a generator should be possible. http://www.smogon.com/forums/threads/past-gen-rng-research.61090/page-10#post-2634864
  19. Are you asking about the file? It only has the ENG pokémon. I've found the thread, apparently the uploader also got one of each for the unrelesaed courses. Thinking more about it, maybe the best solution would be a romhack that triggers the game into generating pokéwalker pokémon when selecting a course, without actually needing a pokéwalker... If I just knew how to RE (not that it means I could do it, but it would help), and I don't think there's lots of interest in gen 4 to RE how the pokewalker works.
  20. There's a file in the forums with one of each ENG pokéwalker pkm file. I wanted to produce the spanish set at some point. It would be great if the generation method could be REd, then implement it in some android app that tracks steps (or just a pc app that produces them at random).
  21. My computer got to 14million in about 8 hours, how do I enable that vblank patch? It's not like I'm in a hurry or anything, but it seems at my current state it will take 100 h to get to the frame (edit: it may just be my computer being slow, it's the last quad core model intel made so...) I'll upload the savestate when I reach a reasonable close frame for RNG with the offset for trainer name editing (I'm using my own savefile on which I put a japanese valid name for it, wiht only 6 chars etc). I'll test your script assap.
  22. That would need to know beforehand the generation method that pokémon used right? Also, it doesn't make it technically illegal, it would just mean it was generated with help of some tools to know when to press A, it would still be theoretically posible to get on real hardware (at least if we stick to reasonable amounts of time, and leaving a gba running for a month seems like the edge of reasonable) Well, that's actually a lot better. Gonna start running the emulator and using savestates, I'll get to the frame at some point. 35 days is on the borderline of what I would call legit, but could be done on real hardware with lots of patience so.... (but imagine if you fail, lol). BTW, the ditto frame (should work for any slot 2 pokémon in emerald, of course I haven't tested it, ~157 days): Frame: 816994389 Occidentary: 816994416 Time: 226942:53.15 Encounter Slot: 2 PID: E85091A9 Nature: Docile Ability: 1 IV: 6x31 50% F: M 12.5%F: M 25% F: M 75% F: F TID: 12336 SID: 07657
  23. Wait, isn't the RNG reporter time expressed in "hours:minutes,seconds"? That would be almost 6 years, not 5 weeks. If I'm wrong I'll try to get the emu running this week, most likely won't be done in just a day, but with savestates+a couple days I'll hit the seed. ps: I wonder how you reached that combo? Probably backtracking the pid generation formula to get the frame right? I'd like to do the same to get a flawless (shiny) IV ditto in gen 3, so I can use it on all generations (I did find a valid frame and tid/sid combo, but would take 25 years so...)
  24. Yes, I asked for an exampe of an AR code. I guess the most convenient code type would be the one that changes the slot 1 pokémon? For what I see they are just command-value-adress, but I don't quite get what those "end code" are used for in the OT/nickname, unless they are just to make sure the code inputs a terminator character and they typed it that way so people don't forget it. If that's all there is to it, the program is really trivial, I've wrapped this up real quick: just drag and drop a pk2 file (make it with pkhex) onto the exe and an ar.txt file will be generated. Please tell me if the code worked, currently it generates an AR code for pokémon crystal to change the pokémon in the first party slot with the pk2 file. If it works fine I'll make some executables for the other games. poke2ar.zip
  25. You may be referring to pikasav: I know there were some more save editors back in the day, but this seems to be the only that survived, probably because it was the one with more features? Maybe it is the one with AR code generation. In any case, it should be easy to write a program that converts pk1/pk2 files to an AR code, as it's just a bunch of addresses + the pk file bytes. Do you have any example for gen 1 and gen 2? The only problem I see is that the boxes have a byte to know how many pokémon are stored, but maybe what the codes did was simply to replace the first pokémon in the current box with the one in the AR code (which frankly, seems the easiest).
  • Create New...