Re-posting a bunch of stuff from another forum, so it doesn't become lost to hackers and such.
Experience Multiplier
D002E3D4 F809
8002E3D6 2402
D002E3D4 F809
8002E3D4 000?
The values increase in powers of two.
1 - 2x
2 - 4x
3 - 8x
4 - 16x
etc.
As an interesting side note, Fortune Runes were designed to stack in this game for some reason. I think you can only get one of them, and I don't recall if it's a head-only rune or something like that, so it's probably a moot point. In any case, at a very high level the ? in this code is the number of Fortune Runes your character appears to be wearing with the code on. It doesn't actually change your runes or anything; the game just counts up the Fortune Runes your character is wearing as part of the experience calculation, and the code simply replaces the actual counting with the specified value.
Oh, and Prosperity Runes would stack as well.
While I was searching for this, I made another code I hadn't really planned to.
Characters Have 999 Max HP
80073ED4 270F
80073ED6 2484
Sort of unnecessary. I was just trying to rule out a particular routine, and the end result was a somewhat curious effect. As characters are evaluated their maximum HP is set to 999 (after a fashion). It probably affects enemies as well, so I'd turn it off if you're about to fight something that can heal itself. For the most part it doesn't hurt, since it has no effect on current HP. Probably not too useful, but it might help another hacker find something he's looking for.
Preface for Drop Codes
In this game, you can only ever get one drop per battle. Each enemy can have up to three drops that are evaluated simultaneously. Each one is assigned some range of numbers that will trigger it, commensurate with its probability. If you hit the range for a particular drop, that's what you get. Each enemy is evaluated as it is killed. So if you want a particular enemy's drops, kill it first.
Enemies Always Drop #?
D002E09A 1040
8002E152 1000
D002E09A 1040
8002E154 00??
96 - First Drop item
98 - Second
9A - Third
If the enemy doesn't have a drop in the position selected, you get nothing.
Edit: I can't submit the 100% random drop code. Every time it's in the post, I get the CGI error. I can't see anything about the text that would cause problems, aside from being about 20 lines of 13-15 characters each, depending on how you count.
Encounter Chimeras in Tenzan Pass
D01363EC 6328
801363D8 637C
D01363EC 6328
801363E0 6398
D01363EC 6328
801363EC 63B4
This is a normally inaccessible enemy. I was surprised to find that it's fully defined. That is, it has sprites, stats, attacks, and every bit of data necessary for it to be used during gameplay. Not only that, but the data is actually loaded when you reach the area, so I can't see any reason why this thing isn't available. (I know the sprite is a reuse, but I was a little concerned it would reference a non-existent palette.) Even more mystifying is the fact that the Tenzan Chimera is in three of the nine enemy party formations in Tenzan Pass. The only reason you can't fight it is that the table of active encounters (10 of them) has no references to it, and instead has four duplicate references to formations made up of only the familiar Minotaur and Magus that haunt the area.
It's a simple matter to restore the Chimera to its proper place, by inserting its formations into the table. Then you can hunt it to your heart's content. They drop a Cyclone orb with a probability of about 1/127. As I understand it, the Cyclone rune is one-of-a-kind otherwise. To me, that gives this a bit of value, for the simple fact that it's not exactly cheating to restore something the programmers put into the game. So this gives purists a method for farming the only rune of this sort that was inexplicably made unique.
Recruited Characters Join at Level ??
800726CC 00??
800726CE 3412
Fix Recruit at 99 Bug
D00A236C CF89
800A237E 83A2
D00A236C CF89
800A238A 83A2
There is a bug where Stars of Destiny that typically join at a level based on the Hero's, or some other party member's, level will join at level 99. Most of them are Hero's Level + 5, but one is +10 and another -10, I think. Long story short, the bug is that one game routine stores the hero's level as a byte value at pointer to the calling routine's stack, but the recruit code (calling routine) loads it as 32-bit word. The upper three bytes are just whatever garbage the last routine that used the space left behind. This modifies the recruitment procedure to treat the level value it gets back as a byte/char rather than a word/int. I think it'll work for every recruit, but it may miss some things. If there are characters that use other scripts and differently located procedures, they may still be subject to the bug. You can do this a bit more "scorched earth" by modifying the routine that actually stores the byte value, but I've seen it called where they handed it half-word alignment, so you can't simply change it to store a word, and there's no guarantee that a routine somewhere won't be using every byte of stack space it allocated to hold values.
Editing the rest in, bit-by-bit. I keep getting a CGI error when I submit the full text.
Experience Multiplier
D002E3D4 F809
8002E3D6 2402
D002E3D4 F809
8002E3D4 000?
The values increase in powers of two.
1 - 2x
2 - 4x
3 - 8x
4 - 16x
etc.
As an interesting side note, Fortune Runes were designed to stack in this game for some reason. I think you can only get one of them, and I don't recall if it's a head-only rune or something like that, so it's probably a moot point. In any case, at a very high level the ? in this code is the number of Fortune Runes your character appears to be wearing with the code on. It doesn't actually change your runes or anything; the game just counts up the Fortune Runes your character is wearing as part of the experience calculation, and the code simply replaces the actual counting with the specified value.
Oh, and Prosperity Runes would stack as well.
While I was searching for this, I made another code I hadn't really planned to.
Characters Have 999 Max HP
80073ED4 270F
80073ED6 2484
Sort of unnecessary. I was just trying to rule out a particular routine, and the end result was a somewhat curious effect. As characters are evaluated their maximum HP is set to 999 (after a fashion). It probably affects enemies as well, so I'd turn it off if you're about to fight something that can heal itself. For the most part it doesn't hurt, since it has no effect on current HP. Probably not too useful, but it might help another hacker find something he's looking for.
Preface for Drop Codes
In this game, you can only ever get one drop per battle. Each enemy can have up to three drops that are evaluated simultaneously. Each one is assigned some range of numbers that will trigger it, commensurate with its probability. If you hit the range for a particular drop, that's what you get. Each enemy is evaluated as it is killed. So if you want a particular enemy's drops, kill it first.
Enemies Always Drop #?
D002E09A 1040
8002E152 1000
D002E09A 1040
8002E154 00??
96 - First Drop item
98 - Second
9A - Third
If the enemy doesn't have a drop in the position selected, you get nothing.
Edit: I can't submit the 100% random drop code. Every time it's in the post, I get the CGI error. I can't see anything about the text that would cause problems, aside from being about 20 lines of 13-15 characters each, depending on how you count.
Encounter Chimeras in Tenzan Pass
D01363EC 6328
801363D8 637C
D01363EC 6328
801363E0 6398
D01363EC 6328
801363EC 63B4
This is a normally inaccessible enemy. I was surprised to find that it's fully defined. That is, it has sprites, stats, attacks, and every bit of data necessary for it to be used during gameplay. Not only that, but the data is actually loaded when you reach the area, so I can't see any reason why this thing isn't available. (I know the sprite is a reuse, but I was a little concerned it would reference a non-existent palette.) Even more mystifying is the fact that the Tenzan Chimera is in three of the nine enemy party formations in Tenzan Pass. The only reason you can't fight it is that the table of active encounters (10 of them) has no references to it, and instead has four duplicate references to formations made up of only the familiar Minotaur and Magus that haunt the area.
It's a simple matter to restore the Chimera to its proper place, by inserting its formations into the table. Then you can hunt it to your heart's content. They drop a Cyclone orb with a probability of about 1/127. As I understand it, the Cyclone rune is one-of-a-kind otherwise. To me, that gives this a bit of value, for the simple fact that it's not exactly cheating to restore something the programmers put into the game. So this gives purists a method for farming the only rune of this sort that was inexplicably made unique.
Recruited Characters Join at Level ??
800726CC 00??
800726CE 3412
Fix Recruit at 99 Bug
D00A236C CF89
800A237E 83A2
D00A236C CF89
800A238A 83A2
There is a bug where Stars of Destiny that typically join at a level based on the Hero's, or some other party member's, level will join at level 99. Most of them are Hero's Level + 5, but one is +10 and another -10, I think. Long story short, the bug is that one game routine stores the hero's level as a byte value at pointer to the calling routine's stack, but the recruit code (calling routine) loads it as 32-bit word. The upper three bytes are just whatever garbage the last routine that used the space left behind. This modifies the recruitment procedure to treat the level value it gets back as a byte/char rather than a word/int. I think it'll work for every recruit, but it may miss some things. If there are characters that use other scripts and differently located procedures, they may still be subject to the bug. You can do this a bit more "scorched earth" by modifying the routine that actually stores the byte value, but I've seen it called where they handed it half-word alignment, so you can't simply change it to store a word, and there's no guarantee that a routine somewhere won't be using every byte of stack space it allocated to hold values.
Editing the rest in, bit-by-bit. I keep getting a CGI error when I submit the full text.
Comment