Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - Kirby's Adventure (NES) Hack | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Datahax
Newcomer
Level: 3

Posts: 1/9
EXP: 88
For next: 40

Since: 10-22-05
From: Maine, USA

Since last post: 3 days
Last activity: 6 hours
Posted on 10-22-05 10:38 PM Link | Quote
Nothing really special to you probably but It's my first REAL hack and I thought it was pretty neat. Every new game Kirby starts with 99 Lives.

http://datahax.zapto.org/misc/Kirby's%20Adventure%20%5bHACK-99%20Lives%5d.rar

More correctly I guess this is my first "Successful Attempt" at anything to do with ASM, anyway tell me what you think.

-Datahax
kuja killer

Rat
Level: 11

Posts: 56/80
EXP: 4582
For next: 1403

Since: 09-22-05
From: Lake Havasu City, Arizona

Since last post: 10 hours
Last activity: 1 hour
Posted on 10-23-05 12:17 AM Link | Quote
That's cool man. Although it may only just be a simple lives counter change as your first attempt, I totally respect that.

I mean, when I started ASM in the past month with megaman games...i started off with learning how to control the lives you start off with too. Since I knew absolutely no ASM ..but I'm really learning alot now thanks to reading a chat log from Dahrk Diaz' website. (and reading/understanding 6502 tutorials).

Keep at it and you'll eventually learn more too.



(edited by kuja killer on 10-22-05 03:41 PM)
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 7945/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 10-23-05 12:46 AM Link | Quote
I think this would be more appropriate as a Game Genie code than a hack. Congratulations though. I remember when I made my first successful ASM hack, which was pretty much the same thing - an Infinite HP hack for Pokémon Silver. You've passed the first big lump, so learning more ASM should be pretty much downhill (or at least straight) from here.
Datahax
Newcomer
Level: 3

Posts: 2/9
EXP: 88
For next: 40

Since: 10-22-05
From: Maine, USA

Since last post: 3 days
Last activity: 6 hours
Posted on 10-23-05 01:34 AM Link | Quote
Hey, thanks for the support everyone!

Ok I have a question, is there a faster way of locating a ASM instruction in a hex editor and changing it than searching out every single hex-equivilant of the instruction and changing it and then checking to see if it did what you wanted?

Like when I altered the lives, I had to keep searching for A904 (LDA #$04) and went through about 5 or 6 before I found the correct one.

Is there a way to determine it's exact location? I know that there's a little address before each instruction ($XXXX) but going directly to that doesn't seem to have what I'm looking for.

Thanks,

-Datahax


(edited by Datahax on 10-22-05 04:38 PM)
NetSplit

Koopa
Level: 19

Posts: 112/117
EXP: 30378
For next: 5399

Since: 04-05-04

Since last post: 1 day
Last activity: 1 hour
Posted on 10-23-05 02:09 AM Link | Quote
Assuming you're using FCEUXD or some later variant, do some cheat searches to find out where the lives are in RAM (Start a cheat search, get an extra life, select Greater Than, lose a life, select Less Than, select Equal a few times to weed out some unwanted addresses, lather, rinse, repeat) and then set a breakpoint for writes to that RAM address in the debugger. Start up the game from the beginning and the debugger will snap, causing the game to stop, when the lives counter is written to. Hit the up arrow a few times in the debugger window and you'll find your A9xx instruction that controls how many lives you start with. You can go ahead and put your mouse cursor to the left of the instruction and the debugger should tell you the ROM address of that instruction. That's the fast, easy way.

Note that that's assuming that it snapped on the right thing. If the game uses that lives counter prior to gameplay for something else, then you'll have to pass it by by hitting Run. Simply put, make sure that what value it is writing to the lives counter makes sense!


(edited by NetSplit on 10-22-05 05:12 PM)
Datahax
Newcomer
Level: 3

Posts: 3/9
EXP: 88
For next: 40

Since: 10-22-05
From: Maine, USA

Since last post: 3 days
Last activity: 6 hours
Posted on 10-23-05 02:21 AM Link | Quote
Good Idea! Why didn't I think of that.....probably because I barely know what I'm doing *smacks self*

I want to see if I can find what controls the energy, and then if possible though I've had no luck with it, what controls the current power Kirby has.

Thanks everyone.....you guys are pretty decent. Most places would sooner spit on you than help you in my experiance.
kuja killer

Rat
Level: 11

Posts: 59/80
EXP: 4582
For next: 1403

Since: 09-22-05
From: Lake Havasu City, Arizona

Since last post: 10 hours
Last activity: 1 hour
Posted on 10-23-05 02:34 AM Link | Quote
Are you by any chance using 0599 as your Write breakpoint in the debugger Datahax ?
Cause that seems to be a pointer for the lives counter, and I don't get the same results as you do.

(i'm not really sure how to know when to work with the "read" or "execute" yet )


(edited by kuja killer on 10-22-05 05:34 PM)
(edited by kuja killer on 10-22-05 05:36 PM)
NetSplit

Koopa
Level: 19

Posts: 113/117
EXP: 30378
For next: 5399

Since: 04-05-04

Since last post: 1 day
Last activity: 1 hour
Posted on 10-23-05 02:40 AM Link | Quote
Datahax: This place commonly does give people help, but it also very often spits on people, too.

kuja killer: Yes, that is the correct RAM address, kuja.

Edit: Oh, well, a Read breakpoint is when an address is read from (USUALLY by some sort of Load instruction), and execute is when the game executes the code located at an instruction. As for the RAM address, the 04 is stored to it right when the game begins. Change that ROM address from A904 to A9xx where xx is the number of initial lives you want and that'll be how many you start with. You can also stick in a new value for A when the debugger is snapped right before it's written to 599 and it'll use that as the number of lives.


(edited by NetSplit on 10-22-05 05:45 PM)
Datahax
Newcomer
Level: 3

Posts: 4/9
EXP: 88
For next: 40

Since: 10-22-05
From: Maine, USA

Since last post: 3 days
Last activity: 6 hours
Posted on 10-23-05 02:58 AM Link | Quote
I think I'm gona break away from Kirby, it's mind numbingly annoying to mess with. And the cheat option itself is enough to drive me crazy. It seems lacking in features and just plain annoying......but that's probably because Artmoney Spoiled me.

This is a longshot but is there a Genesis/Megadrive equivilant of FCEUXD? Or some tools that would let me play with that? I'd like to take a crack at Shining Force and the like but I can't find alot of information or tools for that sort of thing. Probably because the console with my luck, is horrifically complicated.


(edited by Datahax on 10-22-05 05:58 PM)
kuja killer

Rat
Level: 11

Posts: 60/80
EXP: 4582
For next: 1403

Since: 09-22-05
From: Lake Havasu City, Arizona

Since last post: 10 hours
Last activity: 1 hour
Posted on 10-23-05 03:00 AM Link | Quote
I must be doing something wrong.

Cause, when I do a common write to 0599 ...it doesn't actually snap when starting the game and how it loads the 4 lives that you see in the bottom right hand corner of the game.

only snaps when I die so I end up with ...generally around this area:

$E4B6:A9 FF LDA #$FF
$E4B8:8D 5F 05 STA $055F = #$00
$E4BB:4C 5D E4 JMP $E45D
$E4BE:CA DEX
$E4BF0 16 BNE $E4D7
$E4C1:CE 99 05 DEC $0599 = #$04
$E4C4:10 06 BPL $E4CC
$E4C6:4C 66 E5 JMP $E566
$E4C9:AD 96 05 LDA $0596 = #$2F
$E4CC:8D 97 05 STA $0597 = #$2F

I know it's going to "DEC"rement the #$04 by 1 ..to 03 within this line:
$E4C1:CE 99 05 DEC $0599 = #$04 ..
but nothing is loaded into the A, X or Y registers at the time. :-/
That's what i'm not understanding

When I try a Read breakpoint instead....i come up with this:
$B41E:AD 99 05 LDA $0599 = #$04
$B421:C9 63 CMP #$63
$B423:90 05 BCC $B42A
$B425:A9 63 LDA #$63
$B427:8D 99 05 STA $0599 = #$04
$B42A:CD E8 66 CMP $66E8 = #$04
$B42D:F0 46 BEQ $B475
$B42F:8D E8 66 STA $66E8 = #$04
$B432:85 00 STA $00 = #$00

I don't see any A904 anywhere (specifically)

I hate when i get stumped
I guess this game is just designed far differently and a little more complicated than other games..considering how it's a largest NES ROM file.
Anyway, going to go back to working on my megaman hack now.


(edited by kuja killer on 10-22-05 06:12 PM)
(edited by kuja killer on 10-22-05 06:13 PM)
(edited by kuja killer on 10-22-05 06:14 PM)
Datahax
Newcomer
Level: 3

Posts: 5/9
EXP: 88
For next: 40

Since: 10-22-05
From: Maine, USA

Since last post: 3 days
Last activity: 6 hours
Posted on 10-23-05 04:05 AM Link | Quote
Personally I have no idea, I was so excited about getting it working I didn't save any info about that >.<

I do remember logging the actions to file and then looking it up in the .log file....that's all I remember though.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 7953/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 10-23-05 04:22 AM Link | Quote
In just about every case, you can use simple math to convert a ROM address (like you'd see in a debugger) to a file address (like in a hex editor) and back; usually you can get tools for this as well. In the case that you can't easily determine what file address might contain the code you're editing (usually on systems that copy code into memory before using it, like N64 and CD systems), you can search as you did, but include a few surrounding bytes. For example, suppose you're modifying an 'LDA #$42' instruction (A9 42), and after it is a JMP $1075 (4C 75 10). Even if you don't plan to modify the JMP, include it in your search - the more bytes you search for, the less likely you are to find things that aren't related. (Maybe A9 42 comes up often, but A9 42 4C 75 10 is probably a lot less common.)
NetSplit

Koopa
Level: 19

Posts: 114/117
EXP: 30378
For next: 5399

Since: 04-05-04

Since last post: 1 day
Last activity: 1 hour
Posted on 10-23-05 05:04 AM Link | Quote
kuja killer: Firstly, since you're looking for something that sets the initial value of the lives, you're looking for a write, NOT a read, because it's writing the initial value to $0599. Next, if the lives aren't initialized anytime after you select the save file (and you can even check address $0599 to see that there is already an #$04 there), you have to look earlier. Start at the beginning of the game and see what happens (reset the game with the write breakpoint enabled). Maybe you'll find it then.
kuja killer

Rat
Level: 11

Posts: 61/80
EXP: 4582
For next: 1403

Since: 09-22-05
From: Lake Havasu City, Arizona

Since last post: 10 hours
Last activity: 1 hour
Posted on 10-23-05 06:34 AM Link | Quote
Originally posted by NetSplit
kuja killer: Firstly, since you're looking for something that sets the initial value of the lives, you're looking for a write, NOT a read, because it's writing the initial value to $0599. Next, if the lives aren't initialized anytime after you select the save file (and you can even check address $0599 to see that there is already an #$04 there), you have to look earlier. Start at the beginning of the game and see what happens (reset the game with the write breakpoint enabled). Maybe you'll find it then.


I understand. Maybe I'll mess with it later. I'm not really interested in the kirby game, just thought I'd try to help out the guy a little.
But I'm just focusing on my own hack obviously right now.

Just recently within the past few hours gathered every single known piece of text in megaman 3 (well, most of it) Game Credits, Ending, in-game text, etc.
Just for the hell of it.
All between $13000 - $1E100 or something.


(edited by kuja killer on 10-22-05 09:35 PM)
(edited by kuja killer on 10-22-05 09:36 PM)
(edited by kuja killer on 10-23-05 03:18 AM)
Darkmatt

Red Cheep-cheep
Level: 24

Posts: 212/212
EXP: 75447
For next: 2678

Since: 03-15-04
From: Clarkston, WA

Since last post: 9 days
Last activity: 10 hours
Posted on 10-24-05 01:01 AM Link | Quote
Hmm, I would really like it if it was possible to disable floating. It seems to make the game alot more harder.

And somewhere in the distant future where there's a Kirby editor, I would love to play a Kirby game where you can't float, and the levels are tweaked so it's possible to get through them all without floating.

Like a hard mode or something.
aioria1981

Ninji
Level: 20

Posts: 225/234
EXP: 36701
For next: 5738

Since: 07-20-05
From: Viña del Mar, Chile

Since last post: 5 days
Last activity: 5 days
Posted on 10-24-05 10:52 PM Link | Quote
Then the tornado weapon should be disabled too as you can go up very hugh with that. Or make the levels hard when using that weapon (i.e, small platforms that make landing very difficult). I remember another weapon called jump or something that helps reach higher heights

Keep up the good work Datahax
KTurbo

Paragoomba
Level: 15

Posts: 78/78
EXP: 15418
For next: 966

Since: 06-19-04
From: Swe

Since last post: 8 days
Last activity: 30 min.
Posted on 10-24-05 11:02 PM Link | Quote
Originally posted by aioria1981
Then the tornado weapon should be disabled too as you can go up very hugh with that. Or make the levels hard when using that weapon (i.e, small platforms that make landing very difficult). I remember another weapon called jump or something that helps reach higher heights

Keep up the good work Datahax


High jump?

It's a pretty neat hack.
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - Kirby's Adventure (NES) Hack | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.019 seconds.