Chrono Cross(c) Square, 1999 Save State Hacking Guide Copyright 2010 Carlos Eugenio ****************************************************************************** This guide is licensed under the Creative Commons Attribution-Sharealike, avaiable here http://creativecommons.org/licenses/by-sa/2.0/legalcode. Simplifying the legalese, that means that you are free to copy, print, distribute, and otherwise use this guide any way you want as long as you don't violate the license i.e. give credit where it is due! :) Derivative works of this guide are allowed provided that you credit me for the original work *AND* release it under this same license or other free, copyleft license compatible with Creative Commons Attribution-Sharealike. If you indeed produce a derivate, kindly inform me after it's done so I can enjoy it too and maybe even improve this guide (you will be credited for it too of course!) ****************************************************************************** Version History ------------------------------------ 2010 April 9: v. 0.9 -First Version, still a lot to do. Probaly a lot of wrong offsets and values too... and typos... but hey I'm releasing it before prime time bear with me okay? :D 2010 April 14: v. 0.91 -Added the money offsets. NOW you can be filthy rich, at least inside the game :D 2010 April 16: v. 0.95 -Improved way to handle the save state files!! -Figured out the Elements/Tech offsets & completed their lists. Most work probably been done... but still missing the remaining char's offsets & their grids with equipped Elements, and some minor stuff ------------------------------------ This is a save state hacking guide for Chrono Cross, a classic PSX RPG by Square. Why I bothered writing this stuff? Well... this game is GOOD I can tell you, and you probably know it if you are reading this! I've beaten it beginning to end a handful of times but oh well... there's a lot of stuff that requires far too many time to accomplish (i.e. get all summon elements is one of them)... the game isn't hard but it ain't a pushover too and sometimes you just want to breeze through it... I could go on but I guess you got my idea right? :) So I did fiddle a little with a hexeditor, a diff tool, some save states and now I want to share it with you, my dear lazy classic RPG gamer. Enjoy :) PS: This guide won't teach you hex editing. There are plenty of other guides who'll teach you better than me. PS2: I used ePSXe. State hacking with ePSXe is a bit tricky but I'll explain it in detail on section 1.0. PS3: Use this guide with moderation! You can ruin your fun if you go overboard and max out everything. In fact, I recommend that you beat the game first without cheating, and in subsequent replays hexedit away. And, before anyone bug me with annoying accusations, I played on a emulator yes, but I DO OWN a copy of this game! Well, on to the guide... Index 1.0 Save state? 1.1 Char stats offsets 1.2 Money 1.3 Items 1.4 Elements/Techs 1.5 Lists 1.5.1 Materials List 1.5.2 Weapons List 1.5.3.Armor List 1.5.4 Accessories List 1.5.5 Elements List 1.5.6 Techs List 1.6 Thanks & contact info 1.0 Save state? Save state is a file with a snapshot of the game progress on a given instant. More specifically, its the CPU & Memory data on a given instant. This guide was made and tested on ePSXe for Linux (stated above, before the index). I guess that the files structure are the same on Linux and Windows but I cannot be certain, since I can't and won't install Windows EVER AGAIN :P EDIT: in fact the save states works in both versions. Just tested the Windows version using wine. (and, surprise! running the Windows version via wine is way better than playing the native Linux version. Go figure...) As I said earlier it takes some effort to hack the states. First thing, ePSXe save states are compressed using gzip, so before you edit anything at all you must decompress it (used gunzip but I guess 7-Zip, WinRAR, etc should do the trick on Windows). Then you load the file on your hexeditor, edit whatever you want, then recompress the file. Remember to remove any file extension that gets added to the recompressed file, if any. Now you can load the save state on the emulator. A word of warning, it seems that ePSXe somehow keeps the save state in memory, so to edit it you must close it before. Phew! I said it was tricky :) EDIT: I recently used ePSXe 1.7 -- wine emulation :P -- and there's no need to gzip the file again after you're done editing it... just load it (no need to restart the emulator too!!) So, to be clearer, that's how I (used) to do it myself: $ mv SCUS_942.54.001 SCUS_942.54.001.gz $ gunzip SCUS_942.54.001.gz #decompressing the file $ bless SCUS_942.54.001 #loading on the hexeditor $ gzip SCUS_942.54.001 #done editing, recompressing it $ mv SCUS_942.54.001.gz SCUS_942.54.001 #removing file extension $ cd .. $ ./epsxe #play away Since now there's no need to gzip again the file neither restart the emulator it may be already running... SO here's the improved way: $ wine ePSXe.exe & #yeah the windows version IS better :P $ cd sstates/ $ mv SCUS_942.54.001 SCUS_942.54.001.gz #save state name of course $ gunzip SCUS_942.54.001.gz #decompress file $ bless SCUS_942.54.001 #load it on hexeditor #reload it on ePSXe and play away BACKUP YOUR FILES before you edit them to save yourself a lot of grief in case something goes wrong! Saving in two or more slots and editing one does the trick neatly. 1.1 Chars stats offsets BEFORE you get frustrated, let me say that the status won't change immediately after you change them. If you played before you remember that after you grab a star your stats raise a bit an then a little more with battles after it. It's the same thing here, you raise a stat then you must fight some random battles, then it'll reach the value you hacked in. TODO not all chars done!! read below. You probably know that there's a ton of chars in the game. I plan to beat the game to test it, but for now if you don't wanna wait it out you can (at *your* own risk of course!) try to raise the other char's stats. Each char seems to be described by 204 bytes, that always start as: 0x40 0x00 0x40 0x00 0x40 0x00 SO, I guess that all stats positions are the same for every char -- i.e Max HP is 124 bytes off the char start offset, and so on. Have fun!! :D ALSO you can send me your results if you don't mind... getting all the possible characters requires at least some four playthroughs you know... that's A LOT of work!! So help me out, ya? Pretty please? :D 1st char (Serge/Lynx) Max HP 0x6EE3E Current HP 0x6EE3A STR. 0x6EE42 ACC. 0x6EE44 RES. 0x6EE46 MAG. 0x6EE48 AGI. 0x6EE4A M.RES 0x6EE4C Stamina Recovery (seems to be fixed by char, have to investigate further) 1.2 Money Money offsets are reversed i.e. the most significant digit is the last one. As a little example, say you want 150000G (wow that's a lot right!) 150000(decimal) = 0x249F0. You should fill the offsets like this: F0-49-02. Money offsets: 0x71B62 - 0x71B63 - 0x71B64 1.3 Items There's only one inventory, shared by **all** equippable items and materials. It works like this: there's an offset where you define which item you want, and another where you define its quantity. Quite simple huh? But mind that in the definition offsets you must space the items with a 0x00 between them, like this: --first offset: 0x7149A, say you want a @Rainbow Shell: 0x06 0x7149A -- 0x06 --let's say you want forty of them (plenty huh) 0x7179A -- 0x28 --now you want five Sunglasses 'cause they rock so much: 0xF7 0x7149B -- leave empty, 0x00 0x7149C -- 0xF7 --five of them right? 0x7179B -- 0x05 Inventory -- items, weapons, etc Item definition offsets (start): 0x7149A Item quantities offsets (start): 0x7179A So simple right? Now go nuts with the @Shiny materials that are SO damned boring to create... :) 1.4 Elements/Techs Elements are just like inventory items: there are two relevant offsets, one defines the element and the other its quantity. Element definitions are spaced with one empty offset 0x00 just like the inventory ones. As a example, say you want 10 Volcanoes and 12 Black Holes: --first offset: 0x7191A, Volcano is 0x0C 0x7191A -- 0x0C -- ten of them... 0x71A9A -- 0x0A -- now the Black Holes: 0x7191B -- leave empty, 0x00 0x7191C -- 0x24 --...12 Black Holes 0x71A9B -- 0x0C Techs show as regular elements too, but you won't be able to use most of them, at least until I find out the equipped Elements offsets of course -- IF it is possible to use a Tech that wasn't designed for a given char that is. But it will be very fun to find out!! :) EDIT: it is possible to equip Serge's skills on Lynx!!!! The game doesn't lock but the animation sprites look quite odd -- see it for yourself! ALSO as they are White-innate they do great damage (as Lynx)... Using the MasterMune with FlyingArrow shows Masa&Mune as your 'shadow'... if the sprites didn't look so messed up you bet I would use it all the time :D Elements -- all of them (attack, healing, consumables, traps, techs...) Element definition offsets (start): 0x7191A Element quantities offsets (start): 0x71A9A 1.5 Lists As far as I know this section is complete! (unless I made a mistake somewhere, kindly mail me if you find something wrong) 1.5.1 Materials List @Bone 01 @Copper 02 @Iron 03 @Mythril 04 @Denadorite 05 @Rainbow Shell 06 @Eyeball 07 @Humour 08 @Feather 09 @Scale 0A @Fur 0B @Leather 0C @Fang 0D @Carapace 0E @Screw 0F @Seed 10 @Shiny Ember 11 @Shiny Dew 12 @Shiny Leaf 13 @Shiny Sand 14 @Shiny Salt 15 @Shiny Soot 16 Invalid materials -- 17 to 30 1.5.2 Weapons List Brass Rod 31 Iron Rod 32 Mythril Rod 33 Denadorite Rod 34 Rainbow Rod 35 Floral Rod 36 Bone Sword 37 Bronze Sword 38 Steel Sword 39 Silver Sword 3A Stone Sword 3B Spectral Sword 3C Hero's Blade 3D Viper's Venom 3E Einlanzer (1st) 3F Einlanzer (2nd) 40 Slasher 41 Ferrous Gun 42 Argent Gun 43 Denadorite Gun 44 Spectral Gun 45 Shockwave Gun 46 Plasma Pistol 47 Porcelain Pick 48 Brass Pick 49 Iron Pick 4A Mythril Pick 4B Pebble Pick 4C Prism Pick 4D Carrot 4E Betta Carotene 4F Bone Axe 50 Bronze Axe 51 Iron Axe 52 Silver Axe 53 Stone Axe 54 Rainbow Axe 55 *invalid* 56 Great Hammer 57 Master Hammer 58 Bronze Lure 59 Iron Lure 5A Mythril Lure 5B Stone Lure 5C Prism Lure 5D *invalid* 5E Bronzerang 5F Steelrang 60 Silverang 61 Rockerang 62 Prismarang 63 *invalid* 64 Bone Shot 65 Bronze Shot 66 Steel Shot 67 Silver Shot 68 Stone Shot 69 Prism Pellets 6A Private Deck 6B Pack of Lies 6C *invalid* 6D Spatula Ca20 6E Besom Cu29 6F Ladle Fe26 70 Frypan Ag47 71 Saucepan SiO2 72 Crystalpan C6 73 *invalid* 74 Bone Glove 75 Bronze Glove 76 Iron Glove 77 Mythril Glove 78 Granite Glove 79 Spectral Glove 7A *nothing* 7B-95 Porre army(WTF?) FF 1.5.3.Armor List Ivory Mail 96 Bronze Mail 97 Iron Mail 98 Mythril Mail 99 Stone Mail 9A Prism Mail 9B Ivory Vest 9C Bronze Vest 9D Iron Vest 9E Mythril Vest 9F Stone Vest A0 Prism Vest A1 Blue Plate A2 Red Plate A3 Yellow Plate A4 Green Plate A5 Black Plate A6 White Plate A7 Feathery Dress A8 Scaley Dress A9 Carapace Dress AA Screwy Dress AB Diva Dress AC Wisp Cape AD Cloud Cape AE Stardust Cape AF Energizer Suit B0 Ghetz's Shirt B1 *nothing* B2-B9 1.5.4 Accessories List Ozzie Pants BA Flea Vest BB Antitoxinal Cap BC Poultice Cap BD Plaster Cap BE Antiviral Cap BF Hero's Medal C0 Hero's Shield C1 Ivory Helmet C2 Bronze Helmet C3 Iron Helmet C4 Mythril Helmet C5 Stone Helmet C6 Prism Helmet C7 Power Glove C8 Dragoon Gauntlet C9 Power Seal CA Magic Ring CB Sky Djinn Ring CC Magic Seal CD Silver Loupe CE Sight Scope CF Third Eye D0 Knee Pad D1 Elbow Pad D2 Waist Pad D3 Silver Pendant D4 Gold Pendant D5 Memento Pendant D6 Dancing Shoes D7 Kung-fu Shoes D8 Winged Shoes D9 Dragoon's Honor DA Dragoon's Glory DB Defender DC Defender Plus DD Silver Earring DE Gold Earring DF Earring of LightE0 Earring of Hope E1 Stamina Ring E2 Stamina Belt E3 Resistance Ring E4 Resistance Belt E5 Sea Charm E6 Flame Charm E7 Forest Charm E8 Earth Charm E9 Angel Charm EA Daemon Charm EB Blue Brooch EC Red Brooch ED Green Brooch EE Yellow Brooch EF White Brooch F0 Black Brooch F1 Dreamer's Scarf F2 Dreamer's Sash F3 Trashy Tiara F4 Golden Tiara F5 Profiteer Purse F6 Moonglasses F7 Sunglasses F8 Pendragon SigilC F9 Pendragon SigilB FA Pendragon SigilA FB Forget-me-not Pot FC Star Fragment FD Dreamer's Sarong FE 1.5.5 Elements List (legend: *-Summon, [-Consumable, >-Trap AquaBeam 01 AquaBall 02 Deluge 03 IceLance 04 IceBlast 05 Iceberg 06 Fireball 07 FirePillar 08 Inferno 09 MagmaBomb 0A MagmaBurst 0B Volcano 0C Bushwhacker 0D Bushbasher 0E Carnivore 0F AeroSaucer 10 AeroBlaster 11 Tornado 12 Uplift 13 Upheaval 14 Earthquake 15 ElectroJolt 16 ElectroBolt 17 ThundaStorm 18 PhotonRay 19 PhotonBeam 1A HolyLight 1B Meteorite 1C MeteorShower 1D UltraNova 1E GravityBlow 1F Gravitonne 20 FreeFall 21 HellSoul 22 HellBound 23 BlackHole 24 *FrogPrince 25 *BlueWhale 26 *RedWolf 27 *Salamander 28 *Sonja 29 *Genie 2A *Golem 2B *ThundaSnake 2C *Unicorn 2D *Saints 2E *MotherShip 2F *GrimReaper 30 TurnBlue 31 AntiRed 32 Nimble 33 Numble 34 BlueField 35 Vigora 36 TurnRed 37 AntiBlue 38 Strengthen 39 Weaken 3A RedField 3B Ninety-Nine 3C TurnGreen 3D AntiYellow 3E EagleEye 3F BatEye 40 GreenField 41 InfoScope 42 TurnYellow 43 AntiGreen 44 HiRes 45 LoRes 46 YellowField 47 PhysNegate 48 TurnWhite 49 AntiBlack 4A StrongMinded 4B WeakMinded 4C Magnify 4D MagNegate 4E TurnBlack 4F AntiWhite 50 Genius 51 Imbecile 52 Diminish 53 SealAll 54 Cure 55 CurePlus 56 CureAll 57 Heal 58 HealAll 59 HealPlus 5A Purify 5B RecoverAll 5C HolyHealing 5D Revive 5E FullRevival 5F Revenge 60 [Medicine 61 [Ointment 62 [Recharge 63 [Antidote 64 [Brace 65 [WhiteOut 66 [Panacea 67 [BlackOut 68 [Tablet 69 [Capsule 6A [Nostrum 6B >Inferno 6C >Volcano 6D >RedWolf 6E >Deluge 6F >Iceberg 70 >FrogPrince 71 >Earthquake 72 >ThundaStorm 73 >Golem 74 >Carnivore 75 >Tornado 76 >Sonja 77 >FreeFall 78 >BlackHole 79 >MotherShip 7A >HolyLight 7B >UltraNova 7C >Unicorn 7D ChronoCross 7E *invalid techs!!* 7F - 87 1.5.6 Techs List Z-Slash 88 DeltaForce 89 DraggyRider 8A VitalForce 8B TossedSalad 8C Flamenco 8D DoubleTake 8E PitchBlack 8F SwordStorm 90 DragonSpike 91 WindSlash 92 DashSlash 93 TheStare 94 MaxDefense 95 GlideHook 96 FeralCats 97 ForeverZero 98 Dash&Slash 99 SonicSword 9A Dive&Drive 9B GlideHook(2) 9C FeralCats(2) 9D ForeverZero 9E X-Strike 9F Dash&Slash A0 Luminaire A1 FlyingArrow A2 Pilfer A3 RedPin A4 HotShot A5 WandaIn A6 WandaSwords A7 LightninRod A8 SpiralRay A9 SunShower AA TopShot AB GrandFinale AC ChillOut AD LimeLight AE G-Force AF AirForce B0 FlagBearer B1 SnakeEyes B2 SnakeSkin B3 SnakeFangs B4 DragonRider B5 AxialAxe B6 Axiomatic B7 DragonRider(2) B8 Gyronimo B9 Toss&Spike BA Cat'sCradle BB StringPhone BC WebSurfer BD HeadButt BE Hook&Sinker BF BigCatch C0 Pin-Up Girl C1 Mix&Match C2 TestAmeba C3 K9-Ball C4 DoggyDunnit C5 Unleashed C6 Raz-Star C7 Raz-Heart C8 Raz-Flower C9 HammerBlow CA HammerThrow CB BallsOfIron CC SpiceOfLife CD MysteryMenu CE DinnerGuest CF LongShot D0 QuickDraw D1 VitalEnergy D2 Pillage D3 CannonBalls D4 Invincible D5 BottomsUp D6 Folding D7 DirtyDishes D8 Dash&Gash D9 SonicSword DA Dive&Drive DB MaidenHand DC MaidenHeart DD MaidenFaith DE HeadBopper DF SexyWink E0 DanceOnAir E1 MoonBeams E2 MoonShine E3 Lunairetic E4 BeatIt E5 24Carrots E6 What'sUpDoc E7 CoughDrop E8 CoughMix E9 BigBreath EA StarLight EB StarBurst EC StarStruck ED Doppelgang EE VoodooDance EF CartWheel F0 HoodooGuroo F1 VegeChopper F2 VegeMight F3 VegOut F4 PopPopPop F5 SlurpSlurp F6 BamBamBam F7 ClothesLine F8 Flip-flop F9 GraveDigger FA JugglerVein FB BalloonLoan FC OnARoll FD LumberJack FE SporeCloud FF Myconoids 001 *invalid gibberish* 002-??? *going beyond 0x003 here crashes emulator!* BUT I think that Monster Techs are in that range, if you want to try it out, be my guest... IF you find anything interesting mail me so I can update this list! You will be credited for it of course :) 1.6 Thanks & contact info -Thanks to Square, for this wonderful game, I enjoy it to this day! -Thanks to the free & open source software people! -Thanks to the GameFAQs people! -Thanks to anyone who deserves a thanks but I forgot to mention! You can reach me on demonsword at gmail dot com. Please, if you want to mail me, write in proper English so I can understand you. Offensive mails won't get replied. And please, I'm a busy man, so if I don't reply to you the same day/month/year/century don't be mad at me ok? :) ---EOF