-
Posts
742 -
Joined
-
Last visited
-
Days Won
26
Content Type
Profiles
Pokédex
Portal
Technical Documentation
Pages
Tutorials
Forums
Events
Downloads
Gallery
Blogs
Everything posted by suloku
-
Help Extraxting The Sav of The Virtual Console Version Of R/B/Y
suloku replied to Blu_MC's topic in Saves - Editing Help
So, use jksavemanager. Also, you might be interested in ghbank. -
WC6 Editor (6th Gen Wondercard Viewer) (ORAS support added 12/11/2014)
suloku replied to SciresM's topic in Saves - Tools
It is actually better to use a wc6, since that is the wc as stored in the savegame, while a wcfull6 would have to have some data modified when injecting to save (gender for example) so it becomes a legal card in the save. -
This is probably not the best place to say it, but even though we might have missed a lot of wcfull6 (wcf6? fwc6?) the data "lost" doesn't seem like something we can't recreate for most wondercards. Still missing that supposed checksum. It migjt be not the best for preservation purposes, but would work for custom distribution since the wc6 stored in game would end up the same (previous edit of the gender byte for random gender pokemon)
-
Questions about building a personal bank collection
suloku replied to drascol's topic in Saves - Editing Help
That is ambitious. I went trough the same process a couple years ago, but i'm happy with full dexes for the gen, but all english and jap event pokemon? That's a lot. My personal advise: go one game at a time, one gen at a time. For now you should skip gen 2 since you can't get them legitimately on gen 7 (yet, just wait a year...). Follow a chronollogical order, i.e: play pokemon r&s, get everything that can be got in game, then check all events released for those games. Once you have all, switch to emeral/fr&lg/colosseum/xd and repeat. Then go to gen IV and so on. Gen 3 will be the hardest for events, but there's taka's tools for jap in game events. In your list you might be missing my pokemon ranch for gen4 and battle revolution pokemon. Also, special pokemon from pokemon ranger games. Seems like a lot, but go step by step and you'll eventually get it. Btw, gen 5 is a mess just to have a complete gen 5 pokedex. -
Help Extraxting The Sav of The Virtual Console Version Of R/B/Y
suloku replied to Blu_MC's topic in Saves - Editing Help
Without custom firmware you can't. NinjHax 2.7 will probably offer support for 9.6+ encryption, so if you can't access custom firmware, wait for ninjhax 2.7. -
This is interesting. We should try those seeds in the debug rom and see if the game actually allows those tiles to be feebas tiles. From the post at smogon, it would seem the only tiles the game prevents from having feebas are tiles 1, 2 and 3.
-
I've modified the source so it will now ask to set Mirage Island Seed so it matches the first pokemon in the party, if you select yes a new save with the new seed is created. Sorry, no linux binary.
- 10 replies
-
- 3rd gen
- mirage island
-
(and 1 more)
Tagged with:
-
Tile map (Thanks to BlackShark): Tile 440 fishing spot (FeebasSpotValue's default): The package includes both images. extra note: tile 447 is actually tile 0, but since the game recognizes it as 447, the program does the same. This causes the lua script found here (https://projectpokemon.org/forums/showthread.php?16681-Gen-3-Lua-Scripts&p=189762&viewfull=1#post189762) to not correctly work (some seeds output a false tile), here's an updated version (note: tile 447 will appear as tile 0): -- Gen3 Hoenn Feebas Seed/Tile Finder -- 0 - Pokemon Emerald (U) -- 1 - Pokemon Ruby/Sapphire (U) -- Change this depending on your game local game = 0 local pointer local addend if game == 0 then pointer = 0x3005D8C addend = 0x2E6A elseif game == 1 then pointer = 0x02025734 addend = 0x2DD6 end -- Adapted from Kaphotics' RNG for LUA function rng(seed) return (0x4E6D * (seed % 65536) +((0x41C6 * (seed % 65536 )+ 0x4E6D * math.floor(seed / 65536)) % 65536) * 65536 +0x3039) % (4294967296) end -- Tux - https://www.smogon.com/forums/threads/past-gen-rng-research.61090/page-34#post-3986326 function is_feebas_tile(feebas_seed, current_tile) rng_seed = feebas_seed i = 0 tile = 0 while i <= 5 do rng_seed = rng(rng_seed) tile = (bit.rshift(rng_seed, 16)) % 0x1BF if tile >= 4 then i = i + 1 end if tile == 0 then i = i + 1 end if tile == current_tile then return true end end return false end function print_feebas_info() local feebas_pointer_address local feebas_seed if game == 0 then feebas_pointer_address = memory.readdwordunsigned(pointer) + addend elseif game == 1 then feebas_pointer_address = pointer + addend end feebas_seed = memory.readwordunsigned(feebas_pointer_address) x = 4 y = 3 gui.box(2, 2, 76, 32, "white") gui.text(x, y , "Feebas Seed: "..feebas_seed, "green") current_tile = 0 ctr = 0 y = y + 10 while current_tile <= 600 do if is_feebas_tile(feebas_seed, current_tile)then if ctr == 3 then ctr = 0 y = y + 10 x = 4 end x = x + 15 ctr = ctr + 1 gui.text(x, y, current_tile, "yellow") end current_tile = current_tile + 1 end end gui.register(print_feebas_info) DOWNLOAD:
-
Thanks, I'll try looking into it. Since it was easy, I've coded the key system editor, it is already on github. Should I make a thread? Some of the editors aren't still fully functional, but the block dumper/injector, checksum verify/update and key system editor are complete (unless I add more things). Btw it now accepts sav/dsv files, but only outputs as raw sav.
-
I wasn't planning to add items, but give how easy the structure is, I might as well add it even though pokéstock also has them. Are those offsets for BW1 or BW2? ps: I've re-discovered (or so I've been told) how the keys in the key system are stored in the savegame. EDIT: Key system structure (block 69) The first 0x27 bytes hold data regarding black tower and treehollow unlocked areas. Still need to be mapped. 0x00-0x07 - Unknown 0x08-0x17 - Seems always 0x00 0x18-0x27 - Unknown 0x28 - Easy key (W) - 0x00035691 0x2C - Challenge key (B) - 0x00018256 0x30 - Tower Key (B)/ Treehollow key (W) - 0x00059389 0x34 - Iron Key (B) - 0x00048292 0x38 - Iceberg Key (W) - 0x00009892 0x3C - Easy mode unlocked - 0x00093389 0x40 - Challenge mode unlocked - 0x00022843 0x44 - Black City / White forest unlocked - 0x00034771 0x48 - Iron chamber unlocked - 0x000AB031 0x4C - Iceberg chamber unlocked - 0x000B3818 0x50 - Difficulty config (easy 0x00031239 | normal 0x00015657 | challenge 0x00049589) 0x54 - Black city/White city config (black city 0x00034525| white city 0x00011963) 0x58 - Chamber config (rock 0x00094525 | iron 0x00081963 | iceberg 0x00038569) 0x5C - Unique ID used to xor the keys (also present in memory link block) 0x60 - Counter 0x62 - ccrit checksum To store a key/unlock in savegame, the u32 value needed is Unique ID xored with the key seed. For some reason they used the same slot for the Tower/Treehollow key, but the chamber key and difficulty key each have their own slots, allowing a single save to hold 5 keys, and probably that allows impossible transfers, like a black 2 game transfering the easy key or the iceberg key. As I only have 1 cartridge and this uses the IR feature, I can't test (but there's really no need).
-
I didn't want to, but seems the easier way is the same pockestock uses: http://puu.sh/nyfUs/94bcabeafd.png For now the entralink editor is basically a clone of pockestock's (but can edit all areas ) Pockestock has some fancy legality features, like not allowing some genders for some species (i.e tyrogue)
-
Some progress update of the tool I'm working on: Entralink forest editor: http://puu.sh/ny8PS/a2f2b04b17.png Medal editor: http://puu.sh/ny99l/6f90c8a817.jpg The app works fo both BW1 and BW2. For now the planned features are: entralink editor (with "Legit mode", only allowing pokemon and moves actually released on dream world), Medal editor (still need to find more values), Trainer records editor (still need to find more values), Other records stored in other blocks, Rival name editing (I think this can't be done in any editor), Link memory injection/editing (I'll include my own file and allow some changes, mainly trainer name, if I can find more about the structure, even import hall of fame from BW savefile). Also, if I can, I'd like to find how the key system works and allow to unlock the 3 extra keys (since it is an IR only feature). I'm researching record and high score values mostly for medal editing consistency. Basically I aim to be able to modify those things that aren't covered by pockestock/pokegen already, but the primary goal are the lost online features. ps: it's my first time working with objects, so don't expect it to be fancy, I just expect it to work as intended.
-
I'll state some facts: 1.- We part from the fact that Pokemon Bank can be used with any game, regardless of region or language. So getting the english file in a french save is legitimately possible (the exception might be the ORAS Steelix, as I don't have the japanesse demo to test, but I might test that later...) 2.- The only difference between the bank event files is the pokémon bank name string being in the language of the bank. The pokemon data itself is the very same for all. 3.- For now, all the pokémon distributed trough pokémon link will have most of their values generated when retrieved from pokemon link, that incudes region, game of origin, language... and so on. Also, I've made sure several times of what is modified in the savefile with this events: For ORAS Demo: Only the injection and the game's secure value (irrelevant) For Bank: Same as above, plus an extra 16 byte region in the savegame (in the PSS block) which I'm pretty sure is used by the bank as a secure measure when disconnecting from the server/force shutdown while on bank. These 16 bytes are completely irrelevant for the actual savegame and not related to the event distribution in any way (this region is basically a copy of the pokemon bank savefile in the 3DS). To sum up: the pokémon obtiained trough pokémon link injection have no difference with the ones legitimately obtained (nor does the save file). ps: a more correct way to identify the savegames would be to test the checksum table in the save, that would also allow to identfy corrupted savegames...but pkhex can do that and probably no user will give a corrupted save as input.
-
I think it is a good idea to include the events in the program since there are so few of them and they are virtually the same for any region and, unlike wondercards, nothing is kept in the savegame after retrieval, so having the english bank file in a french savegame is still legit (and that can be legitimately done too). Check my tool's source for auto-detection of XY or ORAS savegame: https://github.com/suloku/G6_pl_tool Basically the main files have different filesize: https://github.com/suloku/G6_pl_tool/blob/master/XYORAS%20Pokemon%20Link%20Tool/MainForm.cs#L152 . EDIT: just seen you already forbid to inject celebi to ORAS and steelix/glalie to XY
-
Pokemon Bank Celebi, and other Pokemon Link Injection! (using pkhex)
suloku replied to theSLAYER's topic in Saves - Tools
Xside: Your file is from spanish Pokemon Bank, while shinji257's is from an english pokemon bank (and is exactly the same as the one uploaded by BlackShark yesterday). The only difference (aside from the name of the pokemon bank being in spanish) is that your file (Xside) also has 15 pokémiles. I mapped the pokemon link structure long ago, the difference are pokémiles, as I said above. I plan to eventually create an editor/viewer for this pokemon link files. -
Thank you very much, I thought there might be more encrypted blocks, seems like I was only missing the 0x20400 region. I'm coding a unified tool, for now it can load a save, detect bw or bw2 and dump/inject any of the 74 blocks of bw2. It can also decryp/encrypt the forest data (area npcs). I'm working on the trainer records block. It can verify and update the checksums too. I still need to add bw offsets and bw2 dlc regions. The idea is that noe that I can handle the save regions, I can add editors for each of those regions with ease, without worrying about getting the block and putting it back to the file. https://github.com/suloku/BW_tool I'm not doing another pokegen, but rather getting the not covered features available (hidden grotto editing is already there). For now I want to make a medal editor and a "legit" forest editor (only allow to insert pokemon that were available at dream world, and highlight the special dream moves) EDIT: I've just checked 0x20400 in bw2 save and it does not seem to be encrypted in any way? (almost all 0x00).
- 43 replies
-
Seems like I messed up the files, I may have backed up a save after discovering that I had to enter entralink, then repeated the process and backed up again for personal use, but posted those two files. This is the save file that hadn't unlocked farewell beloved sister: https://www.dropbox.com/s/f34wfac57xhg5gs/Pokemon%20-%20Edicion%20Negra%202%20%5BS%5D%20-%200_memorylink.sav?dl=0 ps: how do you find out if a block is encrypted or not? Maybe if I edit a byte from each block , fix the checksums and try to load the save it will still appear as corrupted?
- 43 replies
-
I've coded a simple ntr cfw plugin that should dump the wc6 when enabled to the root of sdcard. The same plugin has the cheat for XY and the cheat for ORAS, using the ntrdebugger ram offsets posted here. I advise to backup SDcard before trying it out, just in case I messed up something and the card corrupts (I know this doesn't sound very trustful). Basically when you select the cheat, the 0x108 bytes from that memory offset are read, then written to a file in sd card. The plugin should check if the file already exists, and if it does, a new file with increased number count is created (filename may be weird, I couldn't use advanced string functions in the plugin, so it might end up as a little endian hex number in the filename...) I couldn't test since I don't have my 3ds here right now
-
They are the same, but some of the version exclusive flags will be unset for AS, for example you will still be able to catch lugia even if you already caught ho-ho.
-
No, you need custom firmware to extract/inject save
-
There's pikasav too. There should be many editors from back in the day... here's a link to pikasav 1.4, don't know if it's the latest one:https://drive.google.com/file/d/0B1OGj4xwAe9_S2JRQU9FNFFqVTQ/view