Hi, this is my first post.
I joined because I couldn't find a Game Genie code to get something done that I wanted, so, I set out to hack the game myself.
The game is Crystalis (NES) and what I'm trying to do is quadruple the amount of experience you get from killing enemies. This should make the game more enjoyable, because you won't have to spend so much time grinding.
And you HAVE to grind in Crystalis:
1. The levels are pretty small areas and the enemies are sparse
2. The experience point rewards are small compared to the gaps between level-ups
3. You have to level-up or you can't even damage enemies in upcoming areas (including bosses)
I figure if you can earn four times as much as you are intended to, the game will seem more naturally "linear" and you won't feel like you're wasting time running in circles, respawning enemies and running into them with rapid-fire held down. 4x XP should make it so you might have to stop off and dispatch one or two extra enemies, but for the most part by the time you kill everything in sight directly on your way to wherever you're headed, you should have earned the necessary level ups to continue damaging things (including the requisite bosses).
Another benefit would be that you won't be super-rich from all the wealth offered by the dead enemies, and purchases will have to be more carefully thought out and usage of consumable items more carefully guarded and planned.
Anyways. So on to the hack:
I got as far as finding that the experience is stored at $0704, and created a break looking for writes to $0704. Sure enough it breaks every time I kill an enemy. Specifically at line "OD:9254", a three-byte command to put the accumulator into $0704. Shortly before that, in line 0d:924a, there is an RTS, so I'm assuming that the subroutine that puts your new experience value in starts at :924b. I looked around for JMP to 924b but couldn't find anything.
Well, I'm stumped. I don't know much about assembly, this is my first foray into seriously trying to reverse-engineer any program, and I'm not sure what to do, next.
Ultimately what I want to do is:
1. find where the game gets the XP value of the kill
2. find where the game adds that to your current XP and puts the result in the accumulator
3. get in the middle of that and rotate the XP value left twice (to multiply by four)
Am I thinking about this the right way? Hopefully somebody will be able to help me out.
-- Eyenot
I joined because I couldn't find a Game Genie code to get something done that I wanted, so, I set out to hack the game myself.
The game is Crystalis (NES) and what I'm trying to do is quadruple the amount of experience you get from killing enemies. This should make the game more enjoyable, because you won't have to spend so much time grinding.
And you HAVE to grind in Crystalis:
1. The levels are pretty small areas and the enemies are sparse
2. The experience point rewards are small compared to the gaps between level-ups
3. You have to level-up or you can't even damage enemies in upcoming areas (including bosses)
I figure if you can earn four times as much as you are intended to, the game will seem more naturally "linear" and you won't feel like you're wasting time running in circles, respawning enemies and running into them with rapid-fire held down. 4x XP should make it so you might have to stop off and dispatch one or two extra enemies, but for the most part by the time you kill everything in sight directly on your way to wherever you're headed, you should have earned the necessary level ups to continue damaging things (including the requisite bosses).
Another benefit would be that you won't be super-rich from all the wealth offered by the dead enemies, and purchases will have to be more carefully thought out and usage of consumable items more carefully guarded and planned.
Anyways. So on to the hack:
I got as far as finding that the experience is stored at $0704, and created a break looking for writes to $0704. Sure enough it breaks every time I kill an enemy. Specifically at line "OD:9254", a three-byte command to put the accumulator into $0704. Shortly before that, in line 0d:924a, there is an RTS, so I'm assuming that the subroutine that puts your new experience value in starts at :924b. I looked around for JMP to 924b but couldn't find anything.
Well, I'm stumped. I don't know much about assembly, this is my first foray into seriously trying to reverse-engineer any program, and I'm not sure what to do, next.
Ultimately what I want to do is:
1. find where the game gets the XP value of the kill
2. find where the game adds that to your current XP and puts the result in the accumulator
3. get in the middle of that and rotate the XP value left twice (to multiply by four)
Am I thinking about this the right way? Hopefully somebody will be able to help me out.
-- Eyenot

Comment