matix2267 Posted August 6, 2013 Share Posted August 6, 2013 (edited) This program will let you edit various things in Pokémon Mystery Dungeon: Explorers of Sky Features: - fix checksum if you have corrupted your save (this includes quicksave checksum although it won't let you retry -- more investigation needed) - edit pokémon (including active pokémon) - name, species, location met, all stats & attacks - all unknown values are shown so you can edit them too - import/export - edit items (held, special ep, stored, Keckleon shops stock & Croagunk swap shop stock) - edit money, team name - cut/copy/paste (including ranges) - full support for whole charset used by the game in names (use '[abc]' syntax for special characters, see src/main/resources/skyjed/resources/SkyCharset.properties) - edit trash bytes in names (after \0) - source available in downloads Planned features: - find out what are the unknowns in pokémon and items - more edit streamlining (drag-drop?, hot-keys) - edit gatekeepers scores, adventure log (already implemented, no GUI yet) - edit storyline data, possibly new game+ mode (reset all storyline but keep pokémon/items) Known bugs/limitations: - no support for Explorers of Time/Darkness (not planning to add it but maybe someone else will) - requires Java 1.7 (or newer) to run How to run SkyJEd (Windows): - Install Java 1.7 (or newer) - Double-click on bin/SkyJEd.bat. How to run SkyJEd (Unix): - Install Java 1.7 (or newer) - run: './bin/SkyJEd' from your favorite shell. Old instructions (before v0.8g): How to run SkyJEd (Windows): - Install Java 1.7 (or newer) - Double-click on SkyJEd.jar file. How to run SkyJEd (any OS): - Install Java 1.7 (or newer) - run: 'java -jar SkyJEd.jar' from your favorite shell. Changelog: v0.1: initial version v0.2: added import/export of pokémon, updated credits v0.2b: huge internal refactoring (no user visible changes though), fixed small bug where money would not be updated unless field has lost focus v0.2c: cross-platform GUI (tell me if it's not working for someone), implemented reading/editing active pokémon although not hooked into GUI yet v0.3: implemented reading/editing Keckleon shops stock v0.4: - Added combo box for selecting attacks instead of choosing attack id. - Added adventure log read/write (not hooked into GUI). Some of values there seem to be read-only (the game recomputes them on start, need to find out how to actually change it) - Fixed a bug where empty name would not get saved. Internal changes: - Added LICENSE file to explicitly make this program open source. - Changed the way character conversion works. - Removed hackish way of forcing the unknown list in ManagePokemonWindow to wrap, instead I'm just splitting that list at some arbitrary point (it will need to be changed when we get to understand what those values are) v0.5: - Updated pokemon species list with special forms (thanks to WhatHappenedToStairs) - Huge usability bump: can now cut/copy/paste items and pokemon - App will now close when main window is closed v0.5b: held items in special episodes can now be modified, fixed an exception when you click 'paste' but clipboard contents change and there's no pokemon/item in it anymore. v0.5c: - you can now edit number of adventures had - added editing active pokemon to GUI (codebase was ready from v0.2c) - added loading/storing of quicksave data, no features yet except fixing checksum v0.6: - huge GUI refactoring - implemented editing pokémon from quicksave v0.6b: fixed loading edited saves in DeSmuME v0.9.10 v0.6c: added editing active pokemon in special episodes (editing them in roster has no effect because you can't talk to Chimecho there) v0.6d: - added mouse tooltip to IQ skills in pokemon editing windows (didn't add all skills names yet) - updated license v0.7: - fixed loading files without quicksave data - clipboard access refactoring - added cut/copy/paste ranges of items and pkmn (pasting single item/pkmn to a range will paste it in every selected place) v0.7b: (whoops forgot to update SkyJEd.jar). v0.7bb: - small changes - added tool to truncate your save file if it's oversized for some reason v0.7c: fixed exceptions being quietly ignored on file load v0.7d: - updated resources (some location & IQ skill names) - added Croagunk swap shop stock editing v0.7e: - huge refactoring (use actions and .properties files) - preserve trash bytes (not editable yet) - preliminary support for better character encoding (currently characters are not 1:1 mapped between Unicode and PMD) v0.8: - researched some unknowns in pokemon data (evolution level & tactics) - better character encoding & editing of trash bytes (with colors) v0.8g: use gradle for distribution (this is so that I can easily add dependencies to project) v0.8h: use DesignGridLayout for GUI (much simpler and better overall, windows are now resizable and do not get jumbled on different platforms) v0.8i: restore native look&feel (removed in v0.2c due to GUI bugs) v0.8j: can now edit egg in Chansey's Care v0.8k: - implement friend rescue request parsing (no GUI yet) - implement friend rescue team, items and money editing (can be used to edit quicksaved rescue progress) Credits: - Big thanks to Evandixon for his work on Sky Editor and for making it open-source. - Grovyle91 (item structure) - Prof. 9 (character encoding, bit shifting) - WhatHappenedToStairs (attack id, pokemon forms) LATEST VERSION: v0.8k download older version only if you experience problems with latest one (and please tell me about your problems if you have any) SkyJEd-v0.7e.zip SkyJEd-v0.8.zip SkyJEd-0.8h.zip SkyJEd-0.8i.zip SkyJEd-0.8i-src.tar.gz SkyJEd-0.8k.zip SkyJEd-0.8k-src.tar.gz Edited October 15, 2015 by matix2267 Link to comment Share on other sites More sharing options...
Thunder Posted August 6, 2013 Share Posted August 6, 2013 (edited) Nice work. Also, for pokemon editing, do you need to put it in your active team to edit it, or do you have to make it standby to edit it? Edit: It seems that it could read the data correctly, but I'm going to test further. Edited August 8, 2013 by Thunder_Remix Link to comment Share on other sites More sharing options...
evandixon Posted August 6, 2013 Share Posted August 6, 2013 (edited) Cool. Someone has interest in my program! So basically I lost interest in developing mine because the Pokémon ID location seemed inconsistent between my save files. I'm installing Java now to try yours out. Hopefully I'll be able to use yours to expand understanding of Mystery Dungeon saves. I guess I also need to update the wiki with what I know too. What's there now isn't that impressive. http://projectpokemon.org/wiki/Pokemon_Mystery_Dungeon_Explorers_of_Sky_Save_Structure http://projectpokemon.org/wiki/Pokemon_Mystery_Dungeon_Explorers_of_Time/Darkness_Save_Structure [Edit] Tried it out and it looks great! But next time you update it, don't forget to give credit to Grovyle91 (Research of item structure) and Prof. 9 (weird bit shifting). I couldn't have made what I did without their research. [Edit 2] Turns out I was looking in the dungeon Pokémon area instead of the Pokémon area. Your program helped me find that out, thanks! One feature I think we both should implement is to export Pokémon as *.skypkm files, containing the 362 bits of data, padded by 6 zeros since files are stored in bytes. Edited August 7, 2013 by evandixon Link to comment Share on other sites More sharing options...
matix2267 Posted August 7, 2013 Author Share Posted August 7, 2013 Two posts is a little fishy to me, but it looks safe. You don't have to trust me, source code is available, you can read it and compile for yourself Turns out I was looking in the dungeon Pokémon area instead of the Pokémon area. Your program helped me find that out, thanks!One feature I think we both should implement is to export Pokémon as *.skypkm files, containing the 362 bits of data, padded by 6 zeros since files are stored in bytes. So where is this dungeon data? I cannot find it. Also i think it would be better to add that padding at beginning or just before the nickname so that the nickname is not mangled. Link to comment Share on other sites More sharing options...
evandixon Posted August 7, 2013 Share Posted August 7, 2013 (edited) It's around 0x83D8 http://projectpokemon.org/forums/showthread.php?29465-Sky-Editor-The-first-save-editor-for-Pokemon-Mystery-Dungeon-Explorers-of-Sky&p=165161&viewfull=1#post165161 There's at least 4 Pokemon there, a bit longer than the other Pokemon. I guess they're about 68 bytes plus 2 bits. I can confirm that changing the members names there works in game. There's another field that needs to be changed to change the player name on the save file. As for skypkm files, we should do whatever is easiest to plug into a SkyPkm class. New SkyPkm([bytes in the file]). Edited August 7, 2013 by evandixon Link to comment Share on other sites More sharing options...
Andibad Posted August 7, 2013 Share Posted August 7, 2013 oh great ^^ thank you and is open too Link to comment Share on other sites More sharing options...
matix2267 Posted August 7, 2013 Author Share Posted August 7, 2013 (edited) It's around 0x83D8http://projectpokemon.org/forums/showthread.php?29465-Sky-Editor-The-first-save-editor-for-Pokemon-Mystery-Dungeon-Explorers-of-Sky&p=165161&viewfull=1#post165161 There's at least 4 Pokemon there, a bit longer than the other Pokemon. I guess they're about 68 bytes plus 2 bits. I can confirm that changing the members names there works in game. There's another field that needs to be changed to change the player name on the save file. As for skypkm files, we should do whatever is easiest to plug into a SkyPkm class. New SkyPkm([bytes in the file]). Thank you. I'm currently massively reworking the way data is loaded (will be using custom boolean buffers) so that loading and saving has less code in there (most of the work will be offloaded to the new buffer classes). As for the skypkm files I did the padding in the beginning (little endian - the way game stores it), reading it is as easy as reading every 4th pokemon from roster since they are also padded with 6 bits at beginning. EDIT: They are exactly 68+2bits long, first one seems to start at 0x83d9+1bit (assuming that after nickname begins next pokemon, as with stored ones). Edited August 8, 2013 by matix2267 Link to comment Share on other sites More sharing options...
codemonkey85 Posted August 7, 2013 Share Posted August 7, 2013 Just wanted to drop in and say great job! Also I'm not sure what compatibility for Ubuntu / Linux is supposed to be like but there are some slight issues with size and placement of the form controls: (Everything looks funny because I don't think your program can handle .duc files, which is all I had to work with for the moment.) That all being said, the fact that you coded it in Java is pretty cool. Link to comment Share on other sites More sharing options...
evandixon Posted August 8, 2013 Share Posted August 8, 2013 Just wanted to drop in and say great job! Also I'm not sure what compatibility for Ubuntu / Linux is supposed to be like but there are some slight issues with size and placement of the form controls: (Everything looks funny because I don't think your program can handle .duc files, which is all I had to work with for the moment.) That all being said, the fact that you coded it in Java is pretty cool. It looks that way on my Microsoft Surface (at 125% scaling), looks fine on my desktop (no scaling). I can probably fix mine by applying a compatibility setting to whichever Java program loads jar files. As for duc files... If only you knew someone who made a converter. (The online version is still up, but was supposed to expire months ago. Might renew it later, probably not. Saves.uniquegeeks.net) Link to comment Share on other sites More sharing options...
Thunder Posted August 8, 2013 Share Posted August 8, 2013 You don't have to trust me, source code is available, you can read it and compile for yourself Sorry, didn't notice the join date. If I saw that, then I wouldn't have said what I said. Thanks for making this program. As for duc files... If only you knew someone who made a converter. (The online version is still up, but was supposed to expire months ago. Might renew it later, probably not. Saves.uniquegeeks.net) I used to have a converter, but it's lost somewhere in all my old files. EDIT: It may have been the offline converter, but I don't really know anymore. Link to comment Share on other sites More sharing options...
matix2267 Posted August 8, 2013 Author Share Posted August 8, 2013 Just wanted to drop in and say great job! Also I'm not sure what compatibility for Ubuntu / Linux is supposed to be like but there are some slight issues with size and placement of the form controls: (Everything looks funny because I don't think your program can handle .duc files, which is all I had to work with for the moment.) That all being said, the fact that you coded it in Java is pretty cool. Version 0.2c disables native look & feel which leaves us with cross-platform, ugly, but at least (should be) working everywhere GUI. Link to comment Share on other sites More sharing options...
Andibad Posted August 8, 2013 Share Posted August 8, 2013 is look fine on mint 15 . some pokemon from my old sky save is seems the stat is not correctly on your editor. I don't remember i have this pokemon on my team. i was check on the game, i can't find this pokemon. but for another is fine Link to comment Share on other sites More sharing options...
evandixon Posted August 8, 2013 Share Posted August 8, 2013 Andibad, I think you're seeing Lopunny from the special episode in the program (Gardevoir and Medicham are right after, and on mine I saw Grovyle and Dusknoir). matix2267, I can't until later, so maybe you can investigate the unknown fields to see if they're related to special episodes in any way. Link to comment Share on other sites More sharing options...
matix2267 Posted August 8, 2013 Author Share Posted August 8, 2013 (edited) Andibad, I think you're seeing Lopunny from the special episode in the program (Gardevoir and Medicham are right after, and on mine I saw Grovyle and Dusknoir).matix2267, I can't until later, so maybe you can investigate the unknown fields to see if they're related to special episodes in any way. No they are not, The first group seems to be related to evolution (as it's non-zero only for evolved pokemon), the second group probably begins with tactics setting and then there's map of IQ skills that are switched on. As for the special episodes, the game interprets first 5 pokemon specially, 1&2 is always player and partner, the next 3 slots are reserved for special episodes. Edit: can you tell me what locations ID they have? (Grovyle and Dusknoir) some pokemon from my old sky save is seems the stat is not correctly on your editor. This is not the same Lopunny, you're seeing the one from special episode. The one that you're looking for must be somewhere else on the list. -------------------- Edit 2: Implemented Keckleon shops stock editing, this was easier because most of the GUI was already implemented (needed to just add new buttons). It's a pity that 90% of coding work is GUI related. Edited August 8, 2013 by matix2267 Link to comment Share on other sites More sharing options...
WhatHappenedToStairs Posted August 11, 2013 Share Posted August 11, 2013 (edited) So, is there anything I can help with? (Explorers of Sky here obviously) Hmm... So, I checked the moves I had on my Charizard. – SmokeScreen – Fire Fang – Flamethrower – Focus Punch SkyJEd gave me this: TL – 37 TR – 522 BL - 53 BR - 75 Then I taught him TM (I had backup of the save so it didn't matter if I screwed something; plus I always could relearn it) Attract over SmokeScreen. SkyJEd gave me this: TL – 522 TR - 53 BL - 75 BR – 326 Unlike main series, new moves end up at the bottom. So 326 is Attract; 75 is Focus Punch; 53 is Flamethrower; 522 is Fire Fang and 37 is SmokeScreen... First move is at top left, second at top right, third at bottom left and fourth at bottom right. List of moves (currently up to 102) 0 - Nothing (note that is an actual, usable move, though it seems to fail every time. Description is $$$; has 99PP - dummy move?) 1 - Iron Tail 2 - Ice Ball 3 - Yawn 4 - Lovely Kiss 5 - Nightmare 6 - Morning Sun 7 - Vital Throw 8 - Dig 9 - Thrash 10 - Sweet Scent 11 - Charm 12 - Rain Dance 13 - Confuse Ray 14 - Hail 15 - Aromatherapy 16 - Bubble 17 - Encore 18 - Cut 19 - Rage 20 - Super Fang 21 - Pain Split 22 - Torment 23 - String Shot 24 - Swagger 25 - Snore 26 - Heal Bell 27 - Screech 28 - Rock Throw 29 - Rock Smash 30 - Rock Slide 31 - Weather Ball 32 - Whirlpool 33 - Fake Tears 34 - Sing 35 - Spite 36 - Air Cutter 37 - SmokeScreen 38 - Pursuit 39 - DoubleSlap 40 - Mirror Move 41 - Overheat 42 - Aurora Beam 43 - Memento 44 - Octazooka 45 - Flatter 46 - Astonish 47 - Will-O-Wisp 48 - Return 49 - Grudge 50 - Strength 51 - Counter 52 - Flame Wheel 53 - Flamethrower 54 - Odor Sleuth 55 - Sharpen 56 - Double Team 57 - Gust 58 - Harden 59 - Disable 60 - Razor Wind 61 - Bide 62 - Crunch 63 - Bite 64 - Thunder 65 - ThunderPunch 66 - Endeavor 67 - Facade 68 - Karate Chop 69 - Clamp 70 - Withdraw 71 - Constrict 72 - Brick Break 73 - Rock Tomb 74 - Focus Energy 75 - Focus Punch 76 - Giga Drain 77 - Reversal 78 - SmellingSalt 79 - Spore 80 - Leech Life 81 - Slash 82 - Silver Wind 83 - Metal Sound 84 - GrassWhistle 85 - Tickle 86 - Spider Web 87 - Crabhammer 88 - Haze 89 - Mean Look 90 - Cross Chop 91 - Outrage 92 - Low Kick 93 - AncientPower 94 - Synthesis 95 - Agility 96 - Rapid Spin 97 - Icy Wind 98 - Mind Reader 99 - Cosmic Power 100 - Sky Attack 101 - Powder Snow 102 - Follow Me 326 - Attract 522 - Fire Fang Note: You may need to look from Chimecho Assembly if the moves you modified are on the Pokémon currently in the team (didn't check how to update the list accessible from main menu with Item, Team, Job List, etc.) Edited August 11, 2013 by WhatHappenedToStairs more Link to comment Share on other sites More sharing options...
evandixon Posted August 11, 2013 Share Posted August 11, 2013 It's going to take forever to list them that way. I'll extract the move ID's from the ROM later today. [Edit] Here's the .txt containing the move names. Thanks to WhatHappenedToStairs for finding that Iron Tail is move ID 1, and Grovyle91 for making his Sky Text Editor. SkyMoves..txt Link to comment Share on other sites More sharing options...
WhatHappenedToStairs Posted August 11, 2013 Share Posted August 11, 2013 Hmm, there are few things that are odd... 361 - Works like Rock Smash. Excavate leftover? In Rescue Team, there is dummied out TM for Excavate, which works like Rock Smash. 362 - Some move. Seems to have 1-tile range; Spin Slash leftover? again, there was similar thing in Rescue Team 363 - looks like regular attack 364 - seems to be Luminous Orb 365 - has animation of Sweet Scent; inflicts Sleep 366 - Radar Orb! 367 - Rollcall Orb 368 - does absolutely nothing, not even "but move failed" thing. 467 - Bullseye! It's Judgment! Oddly enough, animation plays on user. Hits entire room ala Discharge, takes on user's primary type. (Charizard's Judgment was resisted by Kabuto and Shellder; Pikachu's was super-effective on Shellos) 561-563 - Weird. The moves are named after Pokémon; the description is of a throwing item; the straight line kind. 561 has "Grovyle, Standby 1"; 562 glitches characters; 563 has again Grovyle thing but freezes game. 564 - says "Not now." while the game oddly changes from dim to illuminated and then plays Discharge animation (minus hitting part); then freezes game if something certain happens (you opening menu, enemy using move, dunno what else) 565 - grovyle, standby1; freezes 566 - "Fujimi O-nishi"; animation goes 2 tiles instead of one. Link to comment Share on other sites More sharing options...
matix2267 Posted August 11, 2013 Author Share Posted August 11, 2013 (edited) Thank you WhatHappenedToStairs and Evandixon for that list of moves. Changelog for v0.4: - Added combo box for selecting attacks instead of choosing attack id. - Added adventure log read/write (not hooked into GUI). Some of values there seem to be read-only (the game recomputes them on start, need to find out how to actually change it) - Fixed a bug where empty name would not get saved. Internal changes: - Added LICENSE file to explicitly make this program open source. - Changed the way character conversion works. - Removed hackish way of forcing the unknown list in ManagePokemonWindow to wrap, instead I'm just splitting that list at some arbitrary point (it will need to be changed when we get to understand what those values are) ----- It seems that at 0x8A3F + 2bits begins a map of seen pokemon, next one starts at 0x8A8A + 2bits (exactly 600 bits after previous) and is 553 bits long but does not include all the pokemon from first map (mostly legendary pokemon are excluded but also for example Magnezone). My guess is that this is actually one list divided into male/female groups (adding 600 to id is how females are tracked in pokemon data too) but that doesn't explain why when you meet a pokemon both gender's flags are set at the same time (but only if that particular pokemon has genders). Can someone confirm that / shed some more light on that matter? Edited January 2, 2014 by matix2267 Link to comment Share on other sites More sharing options...
WhatHappenedToStairs Posted August 12, 2013 Share Posted August 12, 2013 Guys, I have found a bit old Notepad file when I was messing with cheat code to change Pokémon... You may want to check this or something. (The decoy thing is Arceus leftover according to SkyJEditor; note that I didn't do anything with this for almost a year so I don't really remember too much of this. In other words, I can't really say how much of this is 100% correct; and yeah, some of it is incorrect grammatically.) TESTED ON SKY. Shaymin Sky forme and Giratina origin forme might not be available in TD, not sure if this code even works in these games. Seems to take effect when player enters dungeon.Play as a Pokémon: 122B5158 00000XXX (where XXX are numbers below) This code seems to affect the leader. PERMAMENTLY. Gender can change depending on personality value. Eg. Charizard is 12.5% female and 87.5% male; therefore most of personality values will make it male, while Pikachu is 50/50. That means some male can change into female, and vice-versa if Charizard is changed into Pikachu that way, as the personality value doesn't change. 000: Freezes game upon entering dungeon. Ending day with Sentry Duty doesn't change Pokémon. 001 to 0C8: Species from #001 (BUlbasaur) to #200 (Misdreavus) 0C9 to 0E4: Unown forms alphabetically, question mark is after exclamation mark, which is after Z-shaped unown. 0E5 to 115: Species from #202 (Wobbuffet) to #250 (Ho-Oh) 116 and 117: Celebi, first is the normal one and second is the pink one 118 to 17A: Species from #252 (Treecko) to #350 (Milotic) 17B to 17E: Castform, all four in Normal forme. The three extra are likely placeholders for the forms, albeit it always starts in Normal forme. Seems to change only in weather 17F and 180: Kecleon, first green, then purple 181 to 1A1: Species from #353 (Shuppet) to #385 (Jirachi) 1A2 to 1A5: Deoxys' Defense, Speed, Attack and Normal Formes (in THAT order) 1A6 to 1BE: Species from #387 (Turtwig) to #411 (Bastiodion) 1BF to 1C1: Burmy's Sandy, Plant and Trash Cloakes (in THAT order) 1C2 to 1C4: Wormadam's Sandy, Plant and Trash Cloakes (in THAT order) 1C5 to 1CB: Species from #414 (Mothim) to #420 (Cherubi) 1CC and 1CD: Cherrim. Unlike Castform, the latter one make it starts in Sunshine Form, although it automatically reverts to Overcast if it's not sunny. 1CE and 1CF: Shellos; East Sea is first. 1D0 and 1D1: Gastrodon; East Sea is first. 1D2 to 208: Species from #424 (Ambipom) to #478 (Froslass) 209: Rotom. Only standard forme is in-game, though. 20A to 210: Species from #480 (Uxie) to #486 (Regigigas) 211: Giratina Altered Forme. 212 to 215: Species from #488 (Cresselia) to #491 (Darkrai) 216 and 217: Shaymin's Land and Sky Forme, respectively. MIGHT NOT WORK IN TIME AND DARKNESS. 218: Giratina Origin Forme 219 to 229: Decoy, has Bulbasaur portrait. It (yes, genderless) is Steel-type, has Pressure as ability, and question marks as both species and category. All are the same... but seeing as exactly 17 codes change Pokémon into Decoy, there might be something more... 22A: Kangaskhan Statue, Water-type with Drizzle. Genderless, species is Statue but category question marks. Has no animation. It's EXP curve is ridiculuosly low even for main series. Having 1 248 444 EXP at Lv. 66 (Charizard), Level up said -1 214 916; ie. 33 528 for Lv. 67 22B: Wigglytuff, but all dark. Has unknown category and exp curve is also ridiculously low. 22C to 22E: Regigigas, Bronzong and Hitmonlee (in that order), all as statues, has unknown category and no animation beside rotating (though everything else is okay). You can see these at the end of Aegis Cave. 22F: Chimecho, except this one has unknown category. Nothing else seems odd. 230: Another Wigglytuff, although this one is normal aside from the species. 231 to 233: Lake trio (Uxie, Mesprit and Azelf; in that order), with unknown category. 234: Sunflora with unknown category 235 and 236: As above, but Diglett (and then Dugtrio) instead. 237: ...now Corphish. 238: ...Loudred 239: ...Bidoof 23A: ...Chatot. It's Wigglytuff Guild, but with unknown category! 23B: ...Grovyle. Seeing as above was Wigglytuff Guild, this seems to be the one we met in storyline. 23C: ...now Dusknoir. Likely storyline related Dusknoir. 23D: ...and Sableye. 23E: Darkrai, albeit all dark, and of course unknown category. Experience curve is lower than usually. 23F: Wigglytuff's Mom, it seems. Experience curve is odd and species is Mama, category unknown as always. 240: Another Grovyle. Unknown category, odd experience curve. 241 and 242: The same but Dusknoir instead. Both have Overgrow as, oddly. 243 to 244: Ditto as Sentret, Bellossom and, has Overgrow as ability in every case and unknown category. They're obviously genderless. 245 and few higher: Seems to freeze game. 001 to 245 gives a total of 581 different characters. Oddly enough, couldn't find Primal Dialga. Link to comment Share on other sites More sharing options...
matix2267 Posted August 12, 2013 Author Share Posted August 12, 2013 Guys, I have found a bit old Notepad file when I was messing with cheat code to change Pokémon... You may want to check this or something. Thanks, I have updated the special formes info based on this (didn't bother to check myself LOL) Oddly enough, couldn't find Primal Dialga. Try 228 for Primal Dialga (228 hex = 552 dec which is Primal Dialga's id). I'll be offline (or just lurking online) until September. I hope to see some new info when I return. Link to comment Share on other sites More sharing options...
matix2267 Posted September 3, 2013 Author Share Posted September 3, 2013 (edited) I'm back and with another version. Changelog for v0.5: - Updated pokemon species list with special forms (thanks to WhatHappenedToStairs) - Huge usability bump: can now cut/copy/paste items and pokemon - App will now close when main window is closed Edited January 2, 2014 by matix2267 Link to comment Share on other sites More sharing options...
WhatHappenedToStairs Posted September 14, 2013 Share Posted September 14, 2013 You might want to check everything for yourself. That thing is really old and I can't assure what's correct and what's not. Link to comment Share on other sites More sharing options...
evandixon Posted September 14, 2013 Share Posted September 14, 2013 If you look up the Pokemon Modifier AR codes, the hex values in those should be the same as in the save. Link to comment Share on other sites More sharing options...
evandixon Posted December 20, 2013 Share Posted December 20, 2013 I was looking at your source code, giving some unused parts of it a GUI in my editor, and noticed something about how the save file must store Pokémon. There's the regular section, storing all Pokémon as shown in Chimecho's, which I believe is overwritten by the active data (PkmnEx) upon leaving the dungeon. I believe the PkmnEx/Active Pokémon data is only read once per floor. Using the Active Pokémon Storage classes to edit the kind of Pokémon only changed when I went the next floor of a dungeon, rather than when I loaded the quick save. Also, the PkmnEx class shows I have full health (44/44), when I really have 7/44. There must be a 3rd area where this is stored, specifically for quick save. Perhaps that very bottom save slot, the one after the first redundant two. I might look into this later, I just wanted to put this out there. Oh, and I am impressed with your BooleanBuffer class. It makes things so much easier to find (whereas I initially tried to do complicated bit shifting to bytes). Because of that and the additional features you decoded yourself (structure of Pokémon and adventure log), this thread is now stickied in place of mine. Well done, matix2267! (Perhaps now I'll be motivated to make even greater strides in my program, for the good of all of us, and so I can justify sticky-ing mine again.) Link to comment Share on other sites More sharing options...
matix2267 Posted December 27, 2013 Author Share Posted December 27, 2013 (edited) Thank you for sticking this thread Evandixon, it almost died since no one was actually using my editor but once you stickied this thread the download count skyrocketed. I have a new small update in v0.5b: - Held items in special episodes can now be modified - Fixed an exception when you click 'paste' but clipboard contents change and there's no pokemon/item in it anymore. There are many inconsistencies in how the game stores data, e.g. there are three different layouts for item data: held items have extended 33 bit format, shop contents use shorter 22 bit and Kangaskhan storage uses same 22 bit format but split into two 11 bit parts each in their own region (interleaved vs. planar). I still have not figured out where exactly is your current hp stored (probably in quicksave slot -- the one starting at 102400 (0x0400) bytes), the ones in PkmnEx are current max hp (after applying all bonuses from items/IQ) and base hp (same as in normal Pkmn structure). OTOH PkmnEx seems to store information about current leader. Another thing is that there are sometimes trash bytes after pokemon name (after '\0' so they are ignored). I have only been able to get them with special episode pokemon (slots 3-5). I hope they are unused, if you have those, they'll be cleaned by SkyJEd when you load&save your file (also you'll get a nice warning message about it). There's also question about how exactly does the game recompute those read-only values in adventure log (pokemon joined, kinds of pokemon battled, moves learned) and why does the game store those if they are ignored on file load (are they?). Also, could you check the map of seen pokemon that I mentioned in this post? Edited January 2, 2014 by matix2267 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now