This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
1
Other Topics and the Prerelease / Re: Chrono Cross Memory Dump Analysis
« on: January 16, 2012, 01:23:43 pm »Star related stuff:
71C74 -- max stars (2 bytes, for some reason)
71C76 -- current stars
Do you have any contextual info? Like what's around it? Because those offsets didn't match in mine. But thanks for the info!
2
Other Topics and the Prerelease / Chrono Cross Memory Dump Analysis
« on: January 16, 2012, 02:00:09 am »
Wow, I realized that it's been over five years since I've been on these forums. I bought CT for the iPhone a week or so ago and I've enjoyed replaying that, which then led to me picking up Chrono Cross again, and ultimately to me tearing apart the inner workings of Chrono Cross and sinning against the nature of the game.
I thought I'd post my discoveries, for anybody else who's interested in fiddling around with their game. All you really need is an emulator that can create save states and a hex editor. I'll get to a brief run through of that later.
Why would you even care about stuff like this? Well, I personally enjoy dissecting games like this. I love being able to manipulate it so I can do things that aren't normally possible. In the case of CC, I've found a number of interesting things to do so far. For instance, you can allocate Kid's techs to anybody else you want. So Lynx can use Pillage to steal while Kid/Fargo aren't around. Or he can even Doppelgang, although I think Sprigg still has to "learn" the monsters before they can be used by other characters. You can also allocate Elements that are restricted to innate characters, place Elements that are locked in one level in another (like Nostrums), or give yourself multiple copies of techs. The possibilities really are quite endless, at least to the point of having 96 slots maximum and 291 player elements (I haven't figured out the codes for enemy techs yet).
Just a quick sidenote before we get started that I realized after reading utunnels post below. There are technically two types of memory dumps - an in-game dump that allows you to view/edit values on the fly, and a save state dump that is created by emulators like PCSX and ePSXe. The former is universal, but I only know of one PC emulator that allows you to view dumps on the fly (Zebra or something, I think). The latter is a dump of the memory generated by the emulator with a header attached to it, making it slightly larger than the real dump. This is then compressed (usually gzip) and saved to your hard drive. Since the majority of people using emulators are using PCSX or one of its variants, almost all the save states should have the same header, ultimately differing from the actual dump by 36,896 bytes. So if you are viewing an in-game dump (I'm using PCSXbox because it offers a decent in-game editor), simply subtract 0x9020 from any of the offsets I've listed below.
On that note, I'll add some info later on how to actually get the memory dump out of the save state and mess around with it.
But first, let's take a look at the character blocks. I can't confirm if the offsets are identical in different games as I only messed around with my current game today. However, Serge/Lynx is located at offset 0x77BFC. If you don't find it there, just search for his max HP converted to hex in little endian. In other words if he has an HP of 382, then search for 7E 01 (0x17E flipped). Before that should be a 16-bit value of either 01 40 or 01 80. There are a total of 44 character blocks, each 204 bytes long, with the last being Pip at offset 0x79E40. They're listed in the order you find them in the game menu (Serge, Kid, Guile, Norris, etc.). Interestingly enough, the game updates the statistics of characters who aren't even available at the moment (like when everybody hates you after the Serge/Lynx switcheroo) and also those who are unable to be recruited because you took a different path (i.e., Glenn, Pierre, etc.). I haven't looked into it too deeply yet, but I would imagine that it is possible to "activate" characters that you're not supposed to have at the moment. You can also just switch out the models, so you can visibly be whoever you want. Anyways, the following table is the generic format of the character block as far as I've deciphered it to be. If you don't understand what offsets, bits, bytes, words, or little endian are or why it goes from 9 to A, you should probably take a look at some info about hexadecimal representations of binary files, although I'll try to give a brief overview in here somewhere.
On that note, I should mention that all the values are in little endian format, except for the 8-bit values in the beginning of course.
Offset 0x19 is a character model and info ID. In other words, each 16-bit value corresponds to a specific 3D model (both on the map and in battle), as well as their profile (visible in the status menu). Replacing them is as simple as replacing the current value with a new one. To save time, I'll just go ahead and tell you that the character model values proceed in the exact same order as how the characters are listed in the menu. Serge is 00 00, Kid is 00 01, all the way up to Pip at 00 2B. Pip's other forms cover the values 00 2C to 00 30, and the Lynx model is at 00 31. Here's a screenshot of two Lynxes fighting alongside Harle:
You can see how the second Lynx (3rd party member) is named Lynx in battle, but in the character menu it is still listed as Starky. Now unfortunately, as far as I can determine, you can only have two copies of the model in your party. I tried putting in three Kids, but the game crashed as soon as I entered battle.
Another point of interest on our tour of the memory dump is found at offset 0x7A780 where we find the Element stockpile. A theoretical total of 192 different Elements can be stored here, which is strange because there are only 126 Elements that are capable of being allocated. Beyond that, we reach 0x7A900, to discover the quantities of stockpiled Elements. While you can change the 8-bit value to 0xFF (255) and the game will reflect it if you go into the menu, it will soon reset itself to 0x63 (99) of the Element. This block is fairly straightforward, as the quantities are simply recorded in the same order as the stockpile. So if your first three Elements stockpiled are 5xFireball (07 00), 2xUplift (13 00), and 1xGravityBlow (1F 00), then the quantity block would simply read 05 02 01.
On the topic of Elements, let's bounce back to our character block. At offset 0x2D, I indicated that this was where the Elements started. There is no distinction between grid levels. The most common values you'll see are "00 00", which indicates an unfilled slot, and "00 40", which indicates a slot that hasn't yet been unlocked due to star level. To add new elements to the grid, simply replace 00 00, 00 40, or xx 00 (where x is an element value) with one from the table below. There are a few Elements that require all 16-bits, including the seven "forgotten" Elements that The Cutting Room Floor identified. To read the table, the x-axis represents the first digit in the value, while the y-axis indicates the second digit. So the ChronoCross element would be 7 on the x-axis, and E on the y-axis, making it 7E. All of these are 16-bit values as well, meaning they're followed by 00, except where noted. Elements with a "*" before them are Summons, those with a "!" before them are Traps, and those with a "@" before them are Techs.
The following table is the same format as above, but with 01 as the second byte in the 2-byte value. So @HairCutter is 17 01, not 17 00
The Cutting Room Floor points out that the "EL_127" Elements are placeholders for Pip's transformations (source).
The following -lengthy- table lists all the monster techs that are available. Unless otherwise noted, all of these are techs (preceded by the little teardrop symbol). I think *Golem and [Trap]???? are the only two exceptions. The format of this table is just like the ones above it, except that the second 8-bit value is 01 for all of them. So "Slots" is 6601, not 6600 (WhiteOut). Also, some may have a two letter abbreviation in parentheses after it. This is to indicate an Elemental color where there are multiple techs of the same name or when the monster tech differs from a player tech (such as 5901, Dash&Slash). The abbreviations are as follows: BL = blue, RD = red, GR = green, YL = yellow, WH = white, and BK = black. The handful of techs that are bold-faced are unused techs in the game, as noted by TCRF. Finally, where you see "-----", it means that an empty Element was found there, by which I mean an Element that fills a slot in your grid but has no name or description. Some of them do list single foe and all foes as their targets though. Once allocated, monster techs can be removed but not reallocated.
Just a few notes of interest about monster techs before we wrap up the Elements section (hopefully). All of these can be used in combat, but many of them may be broken because you're obviously not the monster the animation or effects was made for. Interestingly enough, *Golem (6801) has no level, innate, or full field requirements so it can be cast at any time. However, it failed when I attempted to do so, possibly because the field wasn't all yellow. ModeChange (9401), the tech SunOfAGun uses to go from creepy happy baby sun to creepy angry baby sun, is able to be cast on any enemy. Obviously it won't work because your character is incapable of going from creepy happy to creepy angry (at least visually...), but the interesting part is that some sort of debug text pops up briefly in the upper left hand side of the screen. I tried to grab a screenshot of it, but it appears very rapidly. Some of the techs have double entries, my only guess as to why is that they're different animations.
Going back to character block, starting at 0x0D we have the equipment slots. You can also find your stored equipment at offset 0x7A300 and their corresponding quantities at 0x7A600. They're virtually identical to the elemental stockpile and quantities. All of the equipment values are are 16-bit, even though they only go up to FF 00. The following table is in the same format as the one for the Elements, with the x-axis being the first digit and the y-axis the second. Where you see a "-", it means that there is nothing there. Values that are indicated by a "?" mean that there is no in-game name for it, but a description of "?" is given in the equipment menu. The few equipment names that have a "*" after them are unused equipment, also pointed out by The Cutting Room Floor. Also, all the values from 80-8F have been omitted because there's nothing there.
This is just a little tidbit of information that I had sitting in my notes and forgot to put in. It's only useful in battle and therefore, only useful if you have some way of poking values into the memory while the game is running (basically what a GameShark does). So all of these offsets pertain to an in-game dump rather than a save-state dump (although you can save in the middle of a battle). At offset 0xDDF60, 0xDDF62, and 0xDDF64 are the current HPs for character slot 1, 2, and 3 respectively. And just down the street at 0xDDF68, 0xDDF6A, and 0xDDF6C are their max HPs in the same order. The only use for this data is in creating GameShark/PAR-like cheats that force the game to never change those values. However, I'm hoping that with a little more digging, I can find where things like stamina level, current Element level, and status effects are stored.
An actually useful bit of info that I managed to dig up (with thanks to utunnels), is the location of your star level. I'm fairly certain that this is actually consistent across all games. The offset for max stars is found at 0x7AC94, while current stars is at 0x7AC96. I also found at 0x7AC98 is your current gold, which is stored in a (gasp) 32-bit value. Finally taking advantage of the full power of the PSX...
Oh, and one last thing that I pulled out of a cheat database. At offset 0xEB218 is a 16-bit value that is a save-point flag. If you are standing on a Record of Fate, at the world map, or changing discs, the value is set to 0000. But if none of the above requirements are met, it is set to 0100 which locks out the save option in the menu. Most emulators support cheatfiles which allow you to trick the game into always setting the flag to 0000 so you can save anywhere. However, you can't use the Teleporter or Smith Spirit because the save flag is only triggered when you open the menu and go to the Save/Load function.
Now this is an interesting little tidbit (no nerdy pun intended). The following offsets are given in context of an in-game dump because they're pretty much worthless outside of battle. At offset 0xDBD34 you'll find the "monster block" for monster A. 1080 bytes down from there (add 438 to the offset), you get monster B, and so on. I think the max number of monsters in battle is five, although I could be mistaken. Anyways, the structure of the block is almost identical to that of the character blocks. And those "-"s listed in the equipment table? Those are for enemy weapons and armor. One of the major differences in monster blocks and character blocks is that the first 16-bit value is either 0080 or 0040, leading me to believe that the 0180 or 0140 in the character blocks indicates that the character is an ally (most likely it's actually two 8-bit values, the first being an ally flag, the second a gender flag). Another difference is in their elemental grid. In the character block, most of the Elements are in the format xx00, while monsters' are in the format xx40. And finally, there's a ton of extra info, 876 bytes worth. The only thing of interest I've found in the extra info is that at offset 0xB5 (starting from the 0080/40 value) you find the monster's current HP. Also, you can't use monster models for characters (at least as far as I know). The game defaults to Serge in the status menu, but crashes on the field screen. And it would have been so nice to be able to play as Lavos.
Todo:
I thought I'd post my discoveries, for anybody else who's interested in fiddling around with their game. All you really need is an emulator that can create save states and a hex editor. I'll get to a brief run through of that later.
Why would you even care about stuff like this? Well, I personally enjoy dissecting games like this. I love being able to manipulate it so I can do things that aren't normally possible. In the case of CC, I've found a number of interesting things to do so far. For instance, you can allocate Kid's techs to anybody else you want. So Lynx can use Pillage to steal while Kid/Fargo aren't around. Or he can even Doppelgang, although I think Sprigg still has to "learn" the monsters before they can be used by other characters. You can also allocate Elements that are restricted to innate characters, place Elements that are locked in one level in another (like Nostrums), or give yourself multiple copies of techs. The possibilities really are quite endless, at least to the point of having 96 slots maximum and 291 player elements (I haven't figured out the codes for enemy techs yet).
Just a quick sidenote before we get started that I realized after reading utunnels post below. There are technically two types of memory dumps - an in-game dump that allows you to view/edit values on the fly, and a save state dump that is created by emulators like PCSX and ePSXe. The former is universal, but I only know of one PC emulator that allows you to view dumps on the fly (Zebra or something, I think). The latter is a dump of the memory generated by the emulator with a header attached to it, making it slightly larger than the real dump. This is then compressed (usually gzip) and saved to your hard drive. Since the majority of people using emulators are using PCSX or one of its variants, almost all the save states should have the same header, ultimately differing from the actual dump by 36,896 bytes. So if you are viewing an in-game dump (I'm using PCSXbox because it offers a decent in-game editor), simply subtract 0x9020 from any of the offsets I've listed below.
On that note, I'll add some info later on how to actually get the memory dump out of the save state and mess around with it.
But first, let's take a look at the character blocks. I can't confirm if the offsets are identical in different games as I only messed around with my current game today. However, Serge/Lynx is located at offset 0x77BFC. If you don't find it there, just search for his max HP converted to hex in little endian. In other words if he has an HP of 382, then search for 7E 01 (0x17E flipped). Before that should be a 16-bit value of either 01 40 or 01 80. There are a total of 44 character blocks, each 204 bytes long, with the last being Pip at offset 0x79E40. They're listed in the order you find them in the game menu (Serge, Kid, Guile, Norris, etc.). Interestingly enough, the game updates the statistics of characters who aren't even available at the moment (like when everybody hates you after the Serge/Lynx switcheroo) and also those who are unable to be recruited because you took a different path (i.e., Glenn, Pierre, etc.). I haven't looked into it too deeply yet, but I would imagine that it is possible to "activate" characters that you're not supposed to have at the moment. You can also just switch out the models, so you can visibly be whoever you want. Anyways, the following table is the generic format of the character block as far as I've deciphered it to be. If you don't understand what offsets, bits, bytes, words, or little endian are or why it goes from 9 to A, you should probably take a look at some info about hexadecimal representations of binary files, although I'll try to give a brief overview in here somewhere.
On that note, I should mention that all the values are in little endian format, except for the 8-bit values in the beginning of course.
Offset | What's there | Offset | What's there |
0x01 | Gender flag? | 0x8F | End of elements, usually 7B 00 32 14, although some end in 0A |
0x03 | HP | 0x93 | Padding |
0x05 | Strength | 0x95 | Unknown, but 00 04 40 00 seems to be present in available characters |
0x06 | Resistance | 0x99 | Padding |
0x07 | Accuracy | The following stats seem to be identical to those first listed, except the 8-bit stats are now 16-bit, possibly for use in battle to allow for buffs | |
0x08 | Agility | 0xA5 | HP |
0x09 | Magic | 0xA7 | Blank |
0x0A | Magic Resistance | 0xA9 | HP |
0x0B | Unknown | 0xAB | Strength |
0x0C | Stamina Regeneration | 0xAD | Accuracy |
0x0D | Weapon slot | 0xAF | Unknown |
0x0F | Armor slot | 0xB1 | Resistance |
0x11 | Accessory slots (3 of em) | 0xB3 | Agility |
0x17 | Padding | 0xB5 | Magic |
0x19 | Character ID, linked to 3D model and profile info | 0xB7 | Magic Resistance |
0x1B | Possibly a recruitment/availability flag? | 0xB9 | Unknown |
0x1D | Unknown, but seems to only be composed of a select few 16-bit values. I thought it might indicate grid layout, but that didn't seem to fit. | 0xBB | Seems to usually be 00 00, but can sometimes be 00 01 |
0x2D | Elements (00 00 indicates an unfilled slot, 00 40 indicates a spot that hasn't been made available yet | 0xBD | Padding |
0x8D | Padding | 0xCC | End |
Offset 0x19 is a character model and info ID. In other words, each 16-bit value corresponds to a specific 3D model (both on the map and in battle), as well as their profile (visible in the status menu). Replacing them is as simple as replacing the current value with a new one. To save time, I'll just go ahead and tell you that the character model values proceed in the exact same order as how the characters are listed in the menu. Serge is 00 00, Kid is 00 01, all the way up to Pip at 00 2B. Pip's other forms cover the values 00 2C to 00 30, and the Lynx model is at 00 31. Here's a screenshot of two Lynxes fighting alongside Harle:
You can see how the second Lynx (3rd party member) is named Lynx in battle, but in the character menu it is still listed as Starky. Now unfortunately, as far as I can determine, you can only have two copies of the model in your party. I tried putting in three Kids, but the game crashed as soon as I entered battle.
Another point of interest on our tour of the memory dump is found at offset 0x7A780 where we find the Element stockpile. A theoretical total of 192 different Elements can be stored here, which is strange because there are only 126 Elements that are capable of being allocated. Beyond that, we reach 0x7A900, to discover the quantities of stockpiled Elements. While you can change the 8-bit value to 0xFF (255) and the game will reflect it if you go into the menu, it will soon reset itself to 0x63 (99) of the Element. This block is fairly straightforward, as the quantities are simply recorded in the same order as the stockpile. So if your first three Elements stockpiled are 5xFireball (07 00), 2xUplift (13 00), and 1xGravityBlow (1F 00), then the quantity block would simply read 05 02 01.
On the topic of Elements, let's bounce back to our character block. At offset 0x2D, I indicated that this was where the Elements started. There is no distinction between grid levels. The most common values you'll see are "00 00", which indicates an unfilled slot, and "00 40", which indicates a slot that hasn't yet been unlocked due to star level. To add new elements to the grid, simply replace 00 00, 00 40, or xx 00 (where x is an element value) with one from the table below. There are a few Elements that require all 16-bits, including the seven "forgotten" Elements that The Cutting Room Floor identified. To read the table, the x-axis represents the first digit in the value, while the y-axis indicates the second digit. So the ChronoCross element would be 7 on the x-axis, and E on the y-axis, making it 7E. All of these are 16-bit values as well, meaning they're followed by 00, except where noted. Elements with a "*" before them are Summons, those with a "!" before them are Traps, and those with a "@" before them are Techs.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
0 | Empty | AeroSaucer | Gravitonne | *GrimReaper | BatEye | AntiWhite | Revenge | !IceBerg |
1 | AquaBeam | AeroBlaster | FreeFall | TurnBlue | GreenField | Genius | Medicine | !FrogPrince |
2 | AquaBall | Tornado | HellSoul | AntiRed | InfoScope | Imbecile | Ointment | !Earthquake |
3 | Deluge | Uplift | HellBound | Nimble | TurnYellow | Diminish | Recharge | !ThundaStorm |
4 | IceLance | Upheaval | BlackHole | Numble | AntiGreen | SealAll | Antidote | !Golem |
5 | IceBlast | Earthquake | *FrogPrince | BlueField | HiRes | Cure | Brace | !Carnivore |
6 | Iceberg | ElectroJolt | *BlueWhale | Vigora | LoRes | CurePlus | WhiteOut | !Tornado |
7 | Fireball | ElectroBolt | *RedWolf | TurnRed | YellowField | CureAll | Panacea | !Sonja |
8 | FirePillar | ThundaStorm | *Salamander | AntiBlue | PhysNegate | Heal | BlackOut | !FreeFall |
9 | Inferno | PhotonRay | *Sonja | Strengthen | TurnWhite | HealAll | Tablet | !BlackHole |
A | MagmaBomb | PhotonBeam | *Genie | Weaken | AntiBlack | HealPlus | Capsule | !MotherShip |
B | MagmaBurst | HolyLight | *Golem | RedField | StrongMinded | Purify | Nostrum | !HolyLight |
C | Volcano | Meteorite | *ThundaSnake | Ninety-Nine | WeakMinded | RecoverAll | !Inferno | !UltraNova |
D | Bushwhacker | MeteorShower | *Unicorn | TurnGreen | Magify | HolyHealing | !Volcano | !Unicorn |
E | Bushbasher | UltraNova | *Saints | AntiYellow | MagNegate | Revive | !RedWolf | ChronoCross |
F | Carnivore | GravityBlow | *MotherShip | EagleEye | TurnBlack | FullRevival | !Deluge | EL_127 |
8 | 9 | A | B | C | D | E | F | |
0 | EL_128 | @SwordStorm | @Dash&Slash | @AirForce | @BigCatch | @LongShot | @SexyWink | @CartWheel |
1 | EL_129 | @DragonSpike | @Luminaire | @FlagBearer | @Pin-UpGirl | @QuickDraw | @DanceOnAir | @HoodooGuroo |
2 | EL_130 | @WindSlash | @FlyingArrow | @SnakeEyes | @Mix&Match | @VitalEnergy | @MoonBeams | @VegeChopper |
3 | EL_131 | @DashSlash | @Pilfer | @SnakeSkin | @TestAmeba | @Pillage | @MoonShine | @VegeMight |
4 | EL_132 | @TheStare | @RedPin | @SnakeFangs | @K9-Ball | @CannonBalls | @Lunalretic | @VegOut |
5 | EL_133 | @MaxDefense | @HotShot | @DragonRider | @DoggyDunnit | @Invincible | @BeatIt | @PopPopPop |
6 | EL_134 | @GlideHook | @Wandaln | @AxialAxe | @Unleashed | @BottomsUp | @24Carrots | @SlurpSlurp |
7 | EL_135 | @FeralCats | @WandaSwords | @Axiomatic | @Raz-Star | @Folding | @What'sUpDoc | @BamBamBam |
8 | @Z-Slash | @ForeverZero | @LightninRod | @DragonRider | @Raz-Heart | @DirtyDishes | @CoughDrop | @ClothesLine |
9 | @DeltaForce | @Dash&Slash | @SpiralRay | @Gyronimo | @Raz-Flower | @Dash&Gash | @CoughMix | @Flip-Flop |
A | @DraggyRider | @SonicSword | @SunShower | @Toss&Spike | @HammerBlow | @SonicSword | @BigBreath | @GraveDigger |
B | @VitalForce | @Dive&Drive | @TopShot | @Cats'Cradle | @HammerThrow | @Dive&Drive | @StarLight | @JugglerVein |
C | @TossedSalad | @GlideHook | @GrandFinale | @StringPhone | @BallsOfIron | @MaidenHand | @StarBurst | @BalloonLoan |
D | @Flamenco | @FeralCats | @ChillOut | @WebSurfer | @SpiceOfLife | @MaidenHeart | @StarStruck | @OnARoll |
E | @DoubleTake | @ForeverZero | @LimeLight | @HeadButt | @MysteryMenu | @MaidenFaith | @Doppelgang | @LumberJack |
F | @PitchBlack | @X-Strike | @G-Force | @Hook&Sinker | @DinnerGuest | @HeadBopper | @VoodooDance | @SporeCloud |
The following table is the same format as above, but with 01 as the second byte in the 2-byte value. So @HairCutter is 17 01, not 17 00
0 | 1 | 2 | |
0 | @Myconoids | @DireaShadow | @Soothe |
1 | @WaterBreath | @HydraShadow | @Pounce |
2 | @MerMelody | @GaraiShadow | @Soothe |
3 | @SirenSong | @HighFive | @Pounce |
4 | @Snatch | @Gnarly | @Soothe |
5 | @Doodle | @HangTen | @Pounce |
6 | @Tantrum | @RocketFist | @Soothe |
7 | @RockThrow | @HairCutter | @Hell'sFury |
8 | @TailSpin | @StrongArm | @Pounce |
9 | @TripleKick | @MedalSome | @Soothe |
A | @JumpThrow | @FoiledAgain | @CanonCannon |
B | @WetPaint | @SlapOfCyrus | @Pounce |
C | @PiggyBoink | @Multipunch | @Soothe |
D | @BigDeal | @PunchDrunk | @HeavenCalls |
E | @HPShuffle | @SisterHoods | From here on down, |
F | @SwordTrick | @Pounce | ± modifiers for Elements |
The Cutting Room Floor points out that the "EL_127" Elements are placeholders for Pip's transformations (source).
The following -lengthy- table lists all the monster techs that are available. Unless otherwise noted, all of these are techs (preceded by the little teardrop symbol). I think *Golem and [Trap]???? are the only two exceptions. The format of this table is just like the ones above it, except that the second 8-bit value is 01 for all of them. So "Slots" is 6601, not 6600 (WhiteOut). Also, some may have a two letter abbreviation in parentheses after it. This is to indicate an Elemental color where there are multiple techs of the same name or when the monster tech differs from a player tech (such as 5901, Dash&Slash). The abbreviations are as follows: BL = blue, RD = red, GR = green, YL = yellow, WH = white, and BK = black. The handful of techs that are bold-faced are unused techs in the game, as noted by TCRF. Finally, where you see "-----", it means that an empty Element was found there, by which I mean an Element that fills a slot in your grid but has no name or description. Some of them do list single foe and all foes as their targets though. Once allocated, monster techs can be removed but not reallocated.
4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0 | ----- | VaryInnate | SquirtGun | Bite | HighBeam | FieryBreath | BayonetPlus | HotEdge | BugSwatter | GiddyBreath | OmegaGreen | GiddyBreath |
1 | ----- | ----- | Brimstone | Sic'em | MegatonFist | BatBeam | DarkBreath | SpinOff | JurasicBeat | BodySlam | OmegaWhite | AcidicGas |
2 | ----- | ----- | SuckBlood | Peck | Hi-HoChorus | Gnash | Downpour | BombsAway | CrunchOut | SplitNuclei | OmegaBlack | ElementShot(GR) |
3 | ----- | OwlEyes | Hypnosis | TheOld1-2-3 | ToxicBurst | Kissy-Wissy | ----- | NaturalGas | Flap | SlashAll | OmegaRed | ElementShot(WH) |
4 | ----- | ----- | StepDown | Devour | Wallop | ModeChange | ----- | Catastrophe | ----- | PowerDive | OmegaYellow | ElementShot(BK) |
5 | ----- | ----- | PaperMoon | TwinTurbo | ----- | TakeIn | TripleCut | Just4Kicks | BadBreath | HeartColor | OmegaBlue | ElementShot(RD) |
6 | ----- | GunnerGetya | Slots | IceSword | Hexahitter | ChokeSlam | WillBreaker | FlyLow | Raydiation | PeaShooter | Rage | ElementShot(YL) |
7 | Lunge | ----- | ----- | FlameSword | Whop | BackDrop | ----- | JumpStart | HolyBreath | BrightEyes | SadnessWave | ElementShot(BL) |
8 | ----- | GoBallistic | *Golem | StormBlow | SwordDance | BodyPress | Rampage | Devour | DarkEnergy | ----- | SpiritsUp | PoisonGas |
9 | ----- | Dash&Slash(BK) | BeatenEarth | AcaciaBlade | ----- | Acac.Breath | ExhaustGas | TsunamiBeam | HeatRay | ----- | WaveOfFear | DarkMist |
A | ----- | Plasmabeam(BL) | Surf'sUp | FlameKnock | Death'sOdor | Lunge | AttackAll | IceBreath | Vortex | ----- | NullState | BlackRain |
B | PutridOdor | Plasmabeam(RD) | MakeWaves | ----- | Repair | ----- | DeathSaucer | GravityBomb | Slime | ----- | CrashPulse | Goo |
C | NeedleWork | SuicideBomb | Breath | ----- | GnawBones | DevilThunda | IceTongs | Charge! | Multistab | ----- | ToxicBreath | GooeyGoo |
D | ----- | ----- | Summersolt | ----- | TripleFist | GlideHook | BugKamikaze | FireBreath | Dash&Gash | ----- | WhiteBreath | Bazooka |
E | ----- | Deluge | Pepporbox | Shadow | LavaBreath | ----- | JitterBug | ----- | SonicSword | HolyDragSwd | DarkBreath | NeedleWork |
F | ----- | DarkBeam | CrossCut | Hi-HoWarCry | LavaRush | BayonetGun | ColdBreath | Stinger | ConductaRod | BoneNeedles | FireBreath | [Trap]???? |
Just a few notes of interest about monster techs before we wrap up the Elements section (hopefully). All of these can be used in combat, but many of them may be broken because you're obviously not the monster the animation or effects was made for. Interestingly enough, *Golem (6801) has no level, innate, or full field requirements so it can be cast at any time. However, it failed when I attempted to do so, possibly because the field wasn't all yellow. ModeChange (9401), the tech SunOfAGun uses to go from creepy happy baby sun to creepy angry baby sun, is able to be cast on any enemy. Obviously it won't work because your character is incapable of going from creepy happy to creepy angry (at least visually...), but the interesting part is that some sort of debug text pops up briefly in the upper left hand side of the screen. I tried to grab a screenshot of it, but it appears very rapidly. Some of the techs have double entries, my only guess as to why is that they're different animations.
Going back to character block, starting at 0x0D we have the equipment slots. You can also find your stored equipment at offset 0x7A300 and their corresponding quantities at 0x7A600. They're virtually identical to the elemental stockpile and quantities. All of the equipment values are are 16-bit, even though they only go up to FF 00. The following table is in the same format as the one for the Elements, with the x-axis being the first digit and the y-axis the second. Where you see a "-", it means that there is nothing there. Values that are indicated by a "?" mean that there is no in-game name for it, but a description of "?" is given in the equipment menu. The few equipment names that have a "*" after them are unused equipment, also pointed out by The Cutting Room Floor. Also, all the values from 80-8F have been omitted because there's nothing there.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
0 | Blank | @Seed | Sea Swallow | Porcelain Rod | Einlanzer (2x) | Bone Axe | Steelerang | Ladle Fe26 |
1 | @Bone | @Shiny Ember | Copper Swallow | Brass Rod | Slasher | Bronze Axe | Silverang | Frypan Ag47 |
2 | @Copper | @Shiny Dew | Steel Swallow | Iron Rod | Ferrous Gun | Iron Axe | Rockerang | Saucepan SiO2 |
3 | @Iron | @Shiny Leaf | Silver Swallow | Mythril Rod | Argent Gun | Silver Axe | Prismarang | Crystalpan C6 |
4 | @Mythril | @Shiny Sand | Stone Swallow | Denadorite Rod | Denadorite Gun | Stone Axe | - | - |
5 | @Denadorite | @Shiny Salt | Spectra Swallow | Rainbow Rod | Spectral Gun | Rainbow Axe | Bone Shot* | Bone Glove |
6 | @Rainbow Shell | @Shiny Soot | Mastermune | Floral Rod | Shockwave Gun | - | Bronze Shot | Bronze Glove |
7 | @Eyeball | - | Ivory Dagger | Bone Sword | Plasma Pistol | Great Hammer | Steel Shot | Iron Glove |
8 | @Humour | - | Bronze Dagger | Bronze Sword | Porcelain Pick | Master Hammer | Silver Shot | Mythril Glove |
9 | @Feather | - | Iron Dagger | Steel Sword | Brass Pick | Bronze Lure | Stone Shot | Granite Glove |
A | @Scale | - | Mythril Dagger | Silver Sword | Iron Pick | Iron Lure | Prism Pellets | Spectral Glove |
B | @Fur | - | Denadorite Dagger | Stone Sword | Mythril Pick | Mythril Lure | Private Deck | - |
C | @Leather | - | Prism Dagger | Spectral Sword | Pebble Pick | Stone Lure | Pack of Lies | - |
D | @Fang | - | Silver Staff | Hero's Blade | Prism Pick | Prism Lure | - | - |
E | @Carapace | - | Stone Staff | Viper's Venom | Carrot | - | Spatula Ca20 | - |
F | @Screw | - | Spectral Staff | Einlanzer (1x) | Betta Carotene | Bronzerang* | Besome Cu29 | - |
9 | A | B | C | D | E | F | |
0 | - | Stone Vest | Energizer Suit | Hero's Medal | Third Eye | Earring of Light | White Brooch |
1 | - | Prism Vest | Ghetz's Shirt* | Hero's Shield | Knee Pad | Earring of Hope | Black Brooch[td/] |
2 | - | Blue Plate | ? | Ivory Helmet | Elbow Pad | Stamina Ring | Dreamer's Scarf |
3 | - | Red Plate | ? | Bronze Helmet | Waist Pad | Stamina Belt | Dreamer's Sash |
4 | - | Green Plate | ? | Iron Helmet | Silver Pendant | Resistance Ring | Trashy Tiara |
5 | - | Yellow Plate | ? | Mythril Helmet | Gold Pendant | Resistance Belt | Golden Tiara |
6 | Ivory Mail | White Plate | ? | Stone Helmet | Memento Pendant | Sea Charm | Profiteer Purse |
7 | Bronze Mail | Black Plate | ? | Prism Helmet | Dancing Shoes | Flame Charm | Moonglasses |
8 | Iron Mail | Feathery Dress | - | Power Glove | Kung-fu Shoes | Forest Charm | Sunglasses |
9 | Mythril Mail | Scaley Dress | - | Dragoon Gauntlet | Winged Shoes | Earth Charm | Pendragon Sigil C |
A | Stone Mail | Carapace Dress | Ozzie Pants | Power Seal | Dragoon's Honor | Angel Charm | Pendragon Sigil B |
B | Prism Mail | Screwy Dress | Flea Vest | Magic Ring | Dragoon's Glory | Daemon Charm | Pendragon Sigil A |
C | Ivory Vest | Diva Dress | Antitoxinal Cap | Sky Djinn Ring | Defender | Blue Brooch | Forget-me-not Pot |
D | Bronze Vest | Wisp Cape | Poultice Cap | Magic Seal | Defender Plus | Red Brooch | Star Fragment |
E | Iron Vest | Cloud Cape | Plaster Cap | Silver Loupe | Silver Earring | Green Brooch | Dreamer's Sarong |
F | Mythril Vest | Stardust Cape | Antiviral Cap | Sight Scope | Gold Earring | Yellow Brooch | ? |
This is just a little tidbit of information that I had sitting in my notes and forgot to put in. It's only useful in battle and therefore, only useful if you have some way of poking values into the memory while the game is running (basically what a GameShark does). So all of these offsets pertain to an in-game dump rather than a save-state dump (although you can save in the middle of a battle). At offset 0xDDF60, 0xDDF62, and 0xDDF64 are the current HPs for character slot 1, 2, and 3 respectively. And just down the street at 0xDDF68, 0xDDF6A, and 0xDDF6C are their max HPs in the same order. The only use for this data is in creating GameShark/PAR-like cheats that force the game to never change those values. However, I'm hoping that with a little more digging, I can find where things like stamina level, current Element level, and status effects are stored.
An actually useful bit of info that I managed to dig up (with thanks to utunnels), is the location of your star level. I'm fairly certain that this is actually consistent across all games. The offset for max stars is found at 0x7AC94, while current stars is at 0x7AC96. I also found at 0x7AC98 is your current gold, which is stored in a (gasp) 32-bit value. Finally taking advantage of the full power of the PSX...
Oh, and one last thing that I pulled out of a cheat database. At offset 0xEB218 is a 16-bit value that is a save-point flag. If you are standing on a Record of Fate, at the world map, or changing discs, the value is set to 0000. But if none of the above requirements are met, it is set to 0100 which locks out the save option in the menu. Most emulators support cheatfiles which allow you to trick the game into always setting the flag to 0000 so you can save anywhere. However, you can't use the Teleporter or Smith Spirit because the save flag is only triggered when you open the menu and go to the Save/Load function.
Now this is an interesting little tidbit (no nerdy pun intended). The following offsets are given in context of an in-game dump because they're pretty much worthless outside of battle. At offset 0xDBD34 you'll find the "monster block" for monster A. 1080 bytes down from there (add 438 to the offset), you get monster B, and so on. I think the max number of monsters in battle is five, although I could be mistaken. Anyways, the structure of the block is almost identical to that of the character blocks. And those "-"s listed in the equipment table? Those are for enemy weapons and armor. One of the major differences in monster blocks and character blocks is that the first 16-bit value is either 0080 or 0040, leading me to believe that the 0180 or 0140 in the character blocks indicates that the character is an ally (most likely it's actually two 8-bit values, the first being an ally flag, the second a gender flag). Another difference is in their elemental grid. In the character block, most of the Elements are in the format xx00, while monsters' are in the format xx40. And finally, there's a ton of extra info, 876 bytes worth. The only thing of interest I've found in the extra info is that at offset 0xB5 (starting from the 0080/40 value) you find the monster's current HP. Also, you can't use monster models for characters (at least as far as I know). The game defaults to Serge in the status menu, but crashes on the field screen. And it would have been so nice to be able to play as Lavos.
Todo:
Figure out where the obvious stuff like star level, time played, and gold is stored.Nobody really cares about time played, right?Find where Key Items are stored and their applicable IDs.Not quite, but I did find a GS code that unlocks all the Key Items.See if characters can be added and removed at will.You can swap models and weapons, effectively playing as a different character, although I don't know if the other universe's copy will respond to said character as usual.List offsets of character blocks with names.They are the same, just start with the offset given for Serge/Lynx and work down from there.Find the equipment IDs.Find all the character model IDs and see if you can have a party of three Kids.You can only have 2 Kids apparently.- Explain what the heck I'm talking about to those who aren't as computer-literate.
Laundry.Buy beer.
3
Characters, Plot, and Themes / Re: who brought Kid the hydra Humour?
« on: December 06, 2006, 10:12:27 am »
I think a more important question is since Hydra Humour is so rare, why would Norris happen to have one on him, and also just happen to go to Guldove, where a patient just so happened to need it?
Besides, the common answer of "FATE dictated it", why would he happen to have it, and be willing to part with it?
Besides, the common answer of "FATE dictated it", why would he happen to have it, and be willing to part with it?
4
Chrono / Gameplay Casual Discussion / Re: Chrono Trigger Wikipedia Article (review it!)
« on: July 23, 2006, 07:29:04 am »
Very nice article. I did some work awhile back on Chrono Cross, I think I did the Norris article, back when the articles featured complete descriptions of the characters. I'd be willing to help out again, if needed.
5
Chrono / Gameplay Casual Discussion / Re: Help is needed
« on: July 23, 2006, 07:23:33 am »
Simple answer: no.
Long answer: That little thing as you call it is an extremely strong current that only the largest ships can sail through, i.e. the S.S. Invincible. However, since FATE influences everything (until after you defeat her of course), you can't convince Fargo to sail through. And afterwards, there's no point since El Nido is just a happy little place. There is no way, even through hacking to get through the current and into the ChronoVerse and visit Porre, Zenan, Medina, etc. Although it would be nice.
Long answer: That little thing as you call it is an extremely strong current that only the largest ships can sail through, i.e. the S.S. Invincible. However, since FATE influences everything (until after you defeat her of course), you can't convince Fargo to sail through. And afterwards, there's no point since El Nido is just a happy little place. There is no way, even through hacking to get through the current and into the ChronoVerse and visit Porre, Zenan, Medina, etc. Although it would be nice.
6
General Discussion / Re: Will we ever travel at the speed of light?
« on: July 23, 2006, 06:45:15 am »
[quote authoer=Magus22]Have you heard of the release of negative energy on space? It is said to warp the space around you to make it easier/faster to travel in. This is one of the key components thrown on the table for the possibility to reach the speed of light.[/quote]
Yep. Go back a couple of pages and I posted an article from Popular Science that talks about using negative energy to compress space time in front of you and expand it behind you, thereby making it easier to travel faster than light.
On the same track, isn't there a company that now will take your DNA or something along those lines and put it into a capsule and send it out with the next long range explorer? That way if any extraterrestial beings are out there, they get to hear Elvis and they'll also have a sample of our DNA and can see what humans are like.
Yep. Go back a couple of pages and I posted an article from Popular Science that talks about using negative energy to compress space time in front of you and expand it behind you, thereby making it easier to travel faster than light.
Quote from: Magus22
Safely to say, when I die, I want all my posessions and my corpse to be flown into a blackhole. I'd rather become one with the universe than of this chaotic rock we live on.
On the same track, isn't there a company that now will take your DNA or something along those lines and put it into a capsule and send it out with the next long range explorer? That way if any extraterrestial beings are out there, they get to hear Elvis and they'll also have a sample of our DNA and can see what humans are like.
7
Chrono Trigger Modification / Re: Playable Apocolypse
« on: July 23, 2006, 06:26:50 am »
Sorry for the lack of updates, but I've been out of town all this week. Once I get back into the swing of things, I'll *hopefully* have some updates posted up here, assuming Temporal Flux cooperates with me.
And as for the info on the map from the 13th ending, it shows the one from 1000 AD, yet the time period is 1999 AD. And when they're talking about Truce, Porre, Choras, Medina all being hit, they're talking about the domes. Why they used the 1000 AD overworld map is beyond me, probably to save space. And I've accounted for the plates in the Earth shifting and the continents changing shape over 999 years due to erosion, expansion, war, etc., so 1000 AD and 1999 AD aren't exactly the same, but only a few trivial differences.
And as for the info on the map from the 13th ending, it shows the one from 1000 AD, yet the time period is 1999 AD. And when they're talking about Truce, Porre, Choras, Medina all being hit, they're talking about the domes. Why they used the 1000 AD overworld map is beyond me, probably to save space. And I've accounted for the plates in the Earth shifting and the continents changing shape over 999 years due to erosion, expansion, war, etc., so 1000 AD and 1999 AD aren't exactly the same, but only a few trivial differences.
8
Chrono Trigger Modification / Re: Is there a way to make a new overworld\time period without overwriting another?
« on: July 16, 2006, 04:18:49 pm »
There's at least eight slots for adding overworlds. You'd just have to figure out a way to draw a map and point it to there.
9
General Discussion / Re: YOUR Supergroup
« on: July 15, 2006, 02:07:15 pm »
There's my Chronoverse Supergroup.
Lead Guitar: Crono
Rhythm Guitar: Nikki
Lead Vocals: Marle and Miki
Backup vocals: The twins in Magical Dreamers
Drums: Serge
Flute: Kid
Bass: Glenn
Lead Guitar: Crono
Rhythm Guitar: Nikki
Lead Vocals: Marle and Miki
Backup vocals: The twins in Magical Dreamers
Drums: Serge
Flute: Kid
Bass: Glenn
10
General Discussion / Re: Recommended SNES RPGs
« on: July 15, 2006, 02:03:45 pm »
Games I'd like to see some sequels to:
Chrono Cross
Bahamut Lagoon
Super Mario RPG
A TRUE Final Fantasy sequel, building off either 6 or 7.
Chrono Cross
Bahamut Lagoon
Super Mario RPG
A TRUE Final Fantasy sequel, building off either 6 or 7.
11
General Discussion / Re: Recommended SNES RPGs
« on: July 15, 2006, 01:27:58 pm »
Not officially, but Dejap translated it for us and supplied an IPS patch.
http://www.dejap.com/bl.php
They also have several other games that they've translated into English.
http://www.dejap.com/bl.php
They also have several other games that they've translated into English.
12
Chrono Trigger Modification / Re: Playable Apocolypse
« on: July 15, 2006, 11:20:19 am »
Yep. But I'll figure some things out. It's not like it's a big project anyway, just something I'm doing in my spare time. Interiors would be interesting though, however those are supposed to get done.
13
Chrono Trigger Modification / Re: Playable Apocolypse
« on: July 15, 2006, 10:55:02 am »
Yeah, I figured that out since a few of the tiles from the Present tileset are missing in the 1999 tileset. Which makes things a pain. Just about everything's there, and I'm sure I could find a program to let me edit the tilesets.
14
General Discussion / Re: Recommended SNES RPGs
« on: July 15, 2006, 10:53:41 am »
If you're looking for a good, quick game, with easy leveling up, humor, and an intriguing battling system, go get Bahamut Lagoon with the translation patch. Only downside is that it is extremely linear.
FFI is great in my opinion. I didn't care for FF2/4. FF3/6 we're both excellent (since FF6 was the first Final Fantasy game I ever played). FF5 is the first game to really add interesting twists to the game with the class system and whatnot. FF7 is hands down the best. FF8 is a nice game, because it's easy to stock up on magic, which makes the rest of the game easier. FF9 is my second favorite PSX one, partially because the game is beautiful and I really liked the story line of it. FFX and XI and X-2 don't have much say in my book, as I've only played FFX. After that, my interest in FF sort of dropped.
Illusion of Gaia and Terranigma are both wonderful RPGs. Breath of Fire I and II are both some of my favorites. The Dragon Quest series has some good games in it. Any Zelda.
Oh, and I'm hurt that this hasn't been mentioned before. But Super Mario RPG? Oh, and if you have a 64, get a copy of Paper Mario. It's similar, but not quite as fun.
FFI is great in my opinion. I didn't care for FF2/4. FF3/6 we're both excellent (since FF6 was the first Final Fantasy game I ever played). FF5 is the first game to really add interesting twists to the game with the class system and whatnot. FF7 is hands down the best. FF8 is a nice game, because it's easy to stock up on magic, which makes the rest of the game easier. FF9 is my second favorite PSX one, partially because the game is beautiful and I really liked the story line of it. FFX and XI and X-2 don't have much say in my book, as I've only played FFX. After that, my interest in FF sort of dropped.
Illusion of Gaia and Terranigma are both wonderful RPGs. Breath of Fire I and II are both some of my favorites. The Dragon Quest series has some good games in it. Any Zelda.
Oh, and I'm hurt that this hasn't been mentioned before. But Super Mario RPG? Oh, and if you have a 64, get a copy of Paper Mario. It's similar, but not quite as fun.
15
Fan Project News/Updates / Re: Chrono Crisis Tiles Update 2: Xavier's Room 100% Completed
« on: July 15, 2006, 10:35:57 am »The objects at the bottom right side still lack a reflection on the floor, and the stairs are too small (I can't imagine the character walking in them, he's too big and tall), but the rest is awesome, especially the 2 televisions.
When have stairs ever been the appropriate size for characters in an RPG? Most RPG's stairs are just a representation that the character can go down them, although some (like CT) animate the character going down them.
Congratulations on all of you for doing such a good work on this. I really look forward to playing it when it comes out.