Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,478,490
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 04-24-24 06:14 PM
Guest: Register | Login

0 users currently in ROM Hacking | 2 guests | 1 bot

Main - ROM Hacking - Rockman 2 Wily 1 question New thread | New reply


32x1000
Posted on 05-30-15 05:22 PM Link | Quote | ID: 160217


Koopa
Level: 24

Posts: 92/116
EXP: 76727
Next: 1398

Since: 12-27-13
From: Florida

Last post: 2037 days
Last view: 1482 days
I'm having problems with rockman 2. When I get to wily stage one it looks like it's suppose to (in my hack anyway )



If i go to the right the stage proceeds as normal, but if I take one step to the left, this happens.



Or this...



If I shoot the megaman it shows the dragon boss exploding, and then I move on to the next stage as normal. I have absolutely no clue what's going on, or how to fix it. If anybody has a clue please let me know, thanks

NetSplit
Posted on 06-04-15 12:10 PM Link | Quote | ID: 160251


Level: 32

Posts: 174/178
EXP: 188006
Next: 18436

Since: 02-26-07

Last post: 2215 days
Last view: 2140 days
I don't know all that much about Mega Man 2, but it's heavily based on Mega Man 1 and the checkpoints have a lot in common. In Mega Man 1, there is a table of which enemy index to start on for a given checkpoint. The way enemies are loaded is that they keep an index of the next enemy slot on the right and the left and check only those enemy slots when you scroll right and left. When an enemy enters or leaves the screen, it adjusts the indices accordingly. This is why if you put enemies out of order (a lower index enemy to the right of a higher index enemy), the higher index enemy doesn't load until the lower index one has come onscreen.

When you start at any checkpoint (start/mid/end), the game sets the indices based on a value in a table. If this value is wrong, then as soon as you move, the game will load everything between the current index and where the index should be. I think the problem in your hack is caused by this value being too high; as soon as you move left, it loads every sprite from the end of the stage to the start. I haven't looked in an editor, but I assume the dragon boss is a sprite, which is why the boss loads as though you're at the end of the stage.

I dug around and found that the byte you're looking for is at $3B1F in the US ROM. I haven't tested it, but the data looks identical in the Japanese ROM, so it should work there, too. This byte is part of a table that actually starts at $3B1C. Each level bank contains one of these tables at the same offset, and I assume there are 8 (one for each of the first 8 stages). The index is the checkpoint number, so the first 3 bytes are the start, mid, and endpoints of that stage (the first byte should always be #$00). The next 2 bytes are for the Wily stage checkpoints. Because data is shared between the stages, the starting index for the Wily stage enemy data is not #$00. You'll need to adjust it to the appropriate value, whatever it is. That will depend on your hack. You might be able to figure it out by counting the sprites in the corresponding stage, or you could look in the enemy data table if you know where it is and see at what index the first Wily 1 enemy is.

Hopefully that helps. If you'd find it useful, I'm happy to post how I figured this out.

32x1000
Posted on 06-05-15 02:32 AM Link | Quote | ID: 160261


Koopa
Level: 24

Posts: 93/116
EXP: 76727
Next: 1398

Since: 12-27-13
From: Florida

Last post: 2037 days
Last view: 1482 days
Thanks that fixed it! I really appreciate this, I though no one would reply

Main - ROM Hacking - Rockman 2 Wily 1 question New thread | New reply

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.018 seconds. (339KB of memory used)
MySQL - queries: 42, rows: 65/65, time: 0.015 seconds.