Points of Required Attention™
Friendly reminder: Please don't respond to spammers! Their posts inevitably get memory-holed when staff get around to, leaving behind an inexplicable tableau of you shouting at nothing and (if they otherwise would have been alone in a thread) dangling posts and wrong postcounts.
Views: 47,654,569
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 06-19-18 01:59 PM
Guest: Register | Login

0 users currently in ROM Hacking | 1 guest | 2 bots

Main - ROM Hacking - The Ultimate Mega Man 1 (U) Hacking Notepad New thread | New reply

Posted on 03-09-18 04:09 PM (rev. 4 of 06-11-18 05:51 PM) Link | Quote | ID: 166261

Level: 38

Posts: 371/375
EXP: 355155
Next: 15292

Since: 12-01-11
From: Hungary

Last post: 7 days
Last view: 7 days
The Ultimate Mega Man 1 (U) Hacking Notepad

Data in the (E) and (J) ROMs should be at the same addresses or close.


Teleport System - I mean Table of Contents. I'm going to assume you know how to use the Ctrl+F feature in your browser. Not FAQ quality, but it's better than nothing. You may also find shortcut codes with hyphens replacing the brackets, for example -LOGS-.

[TELE] - Table of Contents
[RREH] - Rock and Roll Editor Help
[SHDD] - Short Hallways / Door Data
[PABR] - Palette Animation in Boss Rooms
[CHEK] - Checkpoints
[ENMY] - Enemy weakness / damage tables
[WECD] - Weapon Energy Consume and Damage
[WEAP] - Weapon related notes
[INVU] - Boss invulnerability frames
[ENDI] - Relocating the Ending scene to make more space for Guts Man's level
[QCKA] - Quick access to Wily levels from the Stage Select for testing purposes
[GUTA] - Graphics the game loads for guts block when you equip super arm on each level
[GUTB] - Graphics the game replaces guts blocks with when picked up
[SPAL] - Structure palette data
[TITL] - Title screen notes
[LINK] - Useful links
[HELP] - Ask for help
[TBIL] - To be included later
[LOGS] - Edit logs


[RREH] - Rock and Roll Editor Help

To delete enemies in RnR, simply Ctrl+RMB on the object you wish to delete.
Shift+RMB opens up another menu:
Enemies - Let's you change the enemy type, screen number and global health (damage it deals to Mega Man)
Objects - Let's you change the block type, width and height and also the screen it's on.


[SHDD] - Short Hallways / Door Data

First and second door tables (last bytes are for Wily 5 - yes, there is an unused Wily 5 but the beginning of it is Elec Man now RIP)
15F12: 13 13 13 0F 13 0E FF FF FF FF FF - First door (Wily levels only use the second door)
15F07: 16 16 FF 12 FF 11 FF FF FF 22 20 - Second door (If the entrance is from above or below, it must be FF as they're special doors. The first three Wily doors are in the same boots.)

If everything is correctly set up, it's possible to have properly working 1 screen corridors.


Which direction is a boss room entered from. First set is RMs and second is Wily. 00 is default, 10 is up, 20 is down.
15390: 00 00 20 00 10 00
15396: 00 20 00 00 00


[PABR] - Palette Animation in Boss Rooms

Each level uses three sets of palettes. The first is the before door palettes, the second is the sprite palettes that are loaded when you start the stage, and the third one is the boss appears palettes.

Simply search for the palette you use in your level in the ROM and you should easily find it. After door palettes are stored elsewhere.


[CHEK] - Checkpoints

The Rock and Roll editor (nor Visine appearently) doesn't seem to save checkpoints correctly. All the tables for checkpoint stuff are located here, however Rock and Roll does edit the first 4 tables just fine, so that's good. I highlighted the tables that are not editable with Rock and Roll properly. Use Screen No. for reference for most of them.

Checkpoint activate table. Which rooms activate a checkpoint. This works fine in the Rock and Roll editor.
Checkpoint 1 activate: 1C2E4, 12 bytes **
Checkpoint 2 activate: 1C2F0, 12 bytes **

Screen data table. This is weird. It is only for loading the correct room graphics before teleporting. RnR edits these properly.
Initial screen: 1C2FB, 10 bytes
Checkpoint 1 respawn: 1C307, 12 bytes ** #
Checkpoint 2 respawn: 1C313, 11 bytes * ##

Room order table. The scroll editor in RnR edits these correctly. If you want to edit these manually, don't forget the first scroll point is 0.
Initial scroll point: 153B0, 12 bytes **
Checkpoint 1: 153BC, 12 bytes **
Checkpoint 2: 153C8, 11 bytes *

First screen enemy table. The enemy manager in RnR edits these correctly, however it can't edit the initial screen ones. Keep in mind you have to select the last enemy in the checkpoint room, not the last.
Initial screen: 153D3, 12 bytes **

Checkpoint 1: 153DF, 12 bytes **
Checkpoint 2: 153EB, 11 bytes *

First room of the checkpoint section. Rock and Roll does in fact edit these values, however incorrectly. Usually it saves values between A0 and CF for some reason, so it's probably a formula error. You have to edit these manually.
Checkpoint 1 first room: 1540A, 12 bytes ** #
Checkpoint 2 first room: 15416, 12 bytes ** ##

Last room of the checkpoint section. This is the last screen of the checkpoint. So if your checkpoint is on screen 0A and that section ends at 0C, you're going to write 0C here. Also, if you have a one screen long section, you're going to write the first room value. Like the first room table, RnR edits these incorrectly, and should be fairly easy to find since RnR saves the same incorrect values here too.
Checkpoint 1 first room: 15422, 12 bytes **
Checkpoint 2 first room: 1542E, 12 bytes **

* last byte is Wily 5
** last two bytes are Wily 5 and Ending
# should be the same as Checkpoint 1 activate
## should be the same as Checkpoint 2 activate

Some checkpoints actually require at least 1-4 enemies in them on the first screen, that can be edited in the first screen enemy table mentioned before. Also, try not to use FF enemies unless you know how to use them. They are used for changing PPU data, and placing them just anywhere will cause crashes.
Moving them is not a good idea, which is why I recommend either leaving them alone or just deleteing them in case you don't want to do fancy enemy set changes in long sections. By the way, these FF enemies are the cause of the Ice Man glitch too for example.

There should always be a Boss/End type scroll (00) before the start of any Wily level scroll data, or else bad stuff happens.

With all that data, you should be able to change all the checkpoints in the game without running into problems!

EDIT: Appearently this was right here on the forums for a long time. It was just buried. I mean, it's a 10 year old thread. I wish I found this when I made that crappy MM1 hack of mine. Mega Man (1) respawn points...


[ENMY] - Enemy weakness / damage tables

The global enemy health thing in RnR is not what it seems to be. It's the damage they deal to the player instead. (I'm not mentioning it here since editing them works just fine in RnR, bit it's after the tables mentioned below in the ROM)

Weapon damage data against enemies can be found at these offsets. Use RnR's to get the enemy IDs. Each enemy has 20 HP (14 in HEX) by default, and that can't be changed (at least I have not found the location for that yet). Also, each table is 59 entries long (3B in HEX), each table ends with CWU-01P's damage data.
1FC61-1FC9B: Buster
1FC9C-1FCD6: Cut
1FCD7-1FD11: Ice
1FD12-1FD4C: Bomb
1FD4D-1FD87: Fire
1FD88-1FDC2: Elec
1FDC3-1FDFD: Magnet Beam? Possibly guts block debris?

To easily find a value, just copy a table's starting offset depending on the weapon and add the Enemy's ID to it.


[WECD] - Weapon Energy Consume and Damage

168E8 - How many shots until weapon energy is consumed. Order is CIBFEGM.
168EF - How much power a weapon uses. They messed up the code during localization, so numbers other than 1 or 2 will cause an infinite ammo glitch depending on how much weapon energy you have left when you are about to run out of energy. Should make a patch for this.

Damage values against bosses can be changed in the Level Properties menu (MM head, second tab), however some values are stored elsewhere (which is the reason why some hacks have weakness inconsistencies, including even MM3 ones), like getting 10 damage from Elec Man if you have Rolling Cutter equipped, even though you've changed his damage output. (Maybe they wanted to make you weak to boss weapons if they were the weakness against the weapon's RM you had equipped at some point? I can't word.)

If you want to edit them using a hex editor, here are the offsets and the order (PCIBFEGM):
1FDFE-1FE05 - Cut
1FE06-1FE0D - Ice
1FE0E-1FE15 - Bomb
1FE16-1FE1D - Fire
1FE1E-1FE25 - Elec
1FE26-1FE2D - Guts
1FE2E-1FE35 - Yellow Devil
1FE36-1FE3D - Mega Man Clone
1FE3E-1FE45 - CWU-01P, but it doesn't use this table. Refer to the offsets below this table.
1FE46-1FE4D - Wily Phase 1
1FE4E-1FE55 - Wily Phase 2
1FE56-1FE5D - ???? (Possibly Wily 5 boss)

CWU-01P damage data. Each CWU-01P unit has 20 HP (14 in HEX), so edit them accordingly.
1FC9B: Buster
1FCD6: Cut
1FD11: Ice
1FD4C: Bomb
1FD87: Fire
1FDC2: Elec
1FDFD: Magnet Beam? Possibly guts block debris?


[WEAP] - Weapon related notes

In case you'd like to make very simple changes to the weapons.

1649A - time until bomb explodes
164A4 - number of small explosions, without modificating the spawn order of the small ones, 03 (bomberman) and 07 (round shape) are good values for less projectiles (and less lag). You might want to edit their speed though, and if you do then experiment here, but it will also affect RM explosions or MM dying:
164C3 - time until explosion disappears, must be higher than 1649A
16A21-16A26: 11 00 03 80 01 FC 0C - flag (more about flags later), vertical speed fraction, vertical speed, horizontal speed fraction, horizontal speed, spawn y pos, spawn x pos respectively

Editing the following tables affects all explosions, including both Bomb Man's and Copy Mega Man's bombs and the Killer Bullet's.
1F89A-1F8A5 - positions? No, definitely not.
1F8A6-1F8B1 - horizontal speeds for small explosions (experiment with them values)
1F8B2-1F8BD - positions? No, definitely not.
1F8BE-1F8C9 - vertical speeds for small explosions (same)

It's possible to make the bomb explode instantly, but it requires editing the throwing animation.

Guts block
169C6-169CC: 15 00 03 A0 03 F0 10 - flag, vertical speed fraction, vertical speed, horizontal speed fraction, horizontal speed, spawn y pos, spawn x pos

Guts block pieces, each column is one piece, affects Guts Man's blocks too.
1F836: 08 18 08 18 - spawn x pos
1F83A: 08 08 18 18 - spawn y pos
1F83E: 04 04 03 03 - piece horizontal speed
1F842: 02 00 02 00 - piece vertical speed
1F846: 6D 6D 6D 6D 6D 6D 56 6D 6D 6D 56 6D - sprite id for each level, including Wily 5 and the Ending.

169A9 - sprite to use, 5F is tiny explosion, 60 is default, 61 is the fireball around MM. 55 and 56 are tiny and small gutsblock pieces.
169AB-169AF: 04 00 00 00 04 - flag, vertical speed fraction, vertical speed, horizontal speed fraction, horizontal speed

Fire shield (Editing these also affects Copy Mega Man's fire shield)
1650A: 20 14 0 -14 -20 -14 0 14 - y positions
16512: 0 -14 -20 -14 0 14 20 14 - x positions
1651A: 0 -1 -1 -1 0 0 0 0 - I don't really get it but has to do something with the positions

Elec is a completely different story, each piece seems to have it's own speed and stuff (and it's made up of 6-7 objects omg).
to be included later

169D6 - sprite to use, 5E is Magnet Beam, 5F is tiny explosion
169D8-169DE - 04 00 00 00 04 00 10 - flag, vertical speed fraction, vertical speed, horizontal speed fraction, horizontal speed, spawn y pos, spawn x pos

to be included later

You can use the following values for flags for the weapons:

00 = disappears when hits enemies, doesn't detect walls and has no gravity. (Buster)
01 = collision detection
04 = no gravity
11 = affected by gravity and collision detection
14 = affected by gravity
15 = used by super arm's guts block
24 = super arm?

Flag notes

First bit of a flag:
even= no gravity
uneven= gravity
2= super arm uses it but ???
8+ even or uneven= changes how y position is calculated.

Second bit of a flag
even= no collision detection
uneven= collision detection
8+ even or uneven= changes how x position is calculated.


[INVU] - Boss invulnerability frames

1C9A4-1C9AE - Invulnerability frames for each boss. Only Cut and Elec have knockback as far as I'm aware. The last two bytes are both for the Wily Machine. It's time to make Elec Man worse.


[ENDI] - Relocating the Ending scene to make more space for Guts Man's level

Simply change:
1AB21 from 14 to 04/24 - Ending last screen (or should I say, where the house is)
1AB25 from 1E to 0E/2E - Ending first screen (where MM teleports in)
1AC5E from 10 to 00/20 - To make sure the sunset happens on these screens. (You can also "disable" the sunset effect completely with this value btw, however MM's sprite still changes when he jumps)
1ACDC from 14 to 04/24 - End the Ending (make MM jump), should be same as 1AB21

Move those rooms in Rock and Roll's Room Order Editor too. Doing this moves the ending to screens 04-0E or 24-2E depending on which column of values you used.


Moving the ending to screens 04-0E means you will need to move Guts Man's level. That is not a huge deal if you know how to edit checkpoint data properly.

Moving the ending to screens 24-2E is easier because you don't have to worry about relocating Guts Man's level, however the game doesn't forget the special objects when loads the ending cutscene, and that can cause the game to softlock, if an object is on screen 25 for example. Mega Man will run into it and the cutscene will be unable to end (unless you set 1ACDC to 25). So having that object on screens 25-2E means the ending will softlock.
If you want to have a long Wily 4, you'll probably want to move the ending to screens 04-0E, or make sure Mega Man can't get stuck on special objects.

The ending cutscene is kind of hardcoded, so these are the only options. Also, I think you also have to edit the checkpoint data for the ending level if you do this.


[QCKA] - Quick access to Wily levels from the Stage Select for testing purposes

All you have to do is changing the initial level of the Stage Select.

Simply change the value at 1B6FF from 00 to
- 06 for Wily 1
- 07 for Wily 2
- 08 for Wily 3
- 09 for Wily 4
- 0A for the unused Wily 5
- 0B for Ending (can be glitchy - sun will always flicker)

Note that the Stage Select screen will be slightly glitchy after doing so. You may save the glitchy stage select screen using savestates even after finishing the game, as it will have the same results and you'll also have all weapons if you do.

I've been messing around with it 0B a bit because glitches are fun.
- pressing left right right start loads Wily 3
- pressing left right left right left right start loads Wily 4


[GUTA] - Graphics the game loads for guts block when you equip super arm on each level

1B2F1-1B2FB - offset (increasing this by one makes it load the next 4 16x16 tiles for example, valid values are 80-BF)
1B2FC-1B306 - which bank the graphics is loaded from (valid values are 01-08, 00 crashes the game)
The last byte is for Wily 5

The level tilesets in
- bank 1 are at offsets 90-BF (Robot Master level tilesets)
- bank 3 are at offsets 90-A7 (Wily level and Ending tilesets)


[GUTB] - Graphics the game replaces guts blocks with when picked up

Regular blocks:
Structure ID to replace buts block with.
1CE4E-1CE58 - First Block Table

Blocks in boss rooms (needed for the second block table):
Which room a boss is fought in.
1CE59-1CE5F - Robot Masters
1CE60-1CE63 - Wily Bosses

Structure ID to replace guts block with in boss room (00 crashes the game)
1CE41-1CE4B - Second Block Table
1CE4C-1CE4D - ???


[TITL] - Title screen notes

Palette settings: Go to -SPAL-. I seperated it into two tables on the image, the first 4 bytes are for the text, and the second 4 are for the logo. The table is located at 10ED7-10EDE.

PPU address: Where it is drawn on the screen. Use FCEUX's Name Table Viewer for this, hover over any tiles on the top-left screen and check it's PPU address. The table for the first half of the PPU addresses is located at 10EDF-10EE5, and the second half's is at 10EE6-10EEC.

Logo - number of tiles to read: Exactly as it says, how many tiles to read for a line. For example, in the U and E versions load the first 18 tiles from the background PPU for the first line, load the next 16 for the second, load the next 14 for the third, etc.. Because of this, it's not possible to use the same tiles twice in the logo, so prepare your own logo accordingly. The table is located at 10EED-10EF3.

Text: Format is the following: Full PPU Address, Number of bytes to read, actual text data. (same length as the number of bytes to read) The data located at 10EF4-10F4F.

Unlike in the Japanese version where the text data for "TM" is right after the rest of the title screen text data (highlighted free space on the image), the trademark text "TM" is stored in the code that draws the title screen in the E and U versions.

Trademark letter "T": 1F9D9 ($94)
Trademark letter "M": 1D9DE ($8D)
Trademark PPU Address first half: 1F9CF ($21)
Trademark PPU Address second half: 1F9D4 ($D9)

Palette overwrite stuff for "TM"; Without this, "TM" would be drawn with blue letters and a green background, the same palette as the bottom corner of the logo itself.
Palette mask PPU Address first half: 1F9C0 ($23)
Palette mask PPU Address second half: 1F9C5 ($DE)
Palette mask palette data: 1F9CA ($A0)

If you want to remove the Trademark from the title screen completely, including the palette mask, simply NOP 1D9BF-1F9E1.

Amount of lines for MEGA MAN logo: 1F9A0 ($06 = 7)
Amount of text lines drawn on the title screen: 1F9E4 ($04)


[SPAL] - Structure palette data

If you're coming from -TITL- I suggest making a screenshot of the title screen and drawing a 32x32 grid on it, it helps a lot.

Since editors usually call these 32x32 blocks "structures", I'll call them structures too.

Here is a table of the possible palette combinations:
0 = [1 1]
1 = [2 1]
2 = [3 1]
3 = [4 1]
4 = [1 2]
5 = [2 2]
6 = [3 2]
7 = [4 2]
8 = [1 3]
9 = [2 3]
A = [3 3]
B = [4 3]
C = [1 4]
D = [2 4]
E = [3 4]
F = [4 4]

The first half of a byte is for the bottom two 16x16 blocks, and the second half of a byte is for the top two 16x16 blocks in a 32x32 structure. Knowing that, a structure with the value E1 for example would look like this:

[2 1]
[3 4]

All the structure palette data in the ROM is stored like this as far as I'm aware, making palettes quite easy to find.


[LINK] - A blast from the past - Useful links
How to make sure the correct special objects get "removed" when a rematch boss is defeated
Mega Man (1) respawn points... - Checkpoint stuff.
Help with Mega Man (U) Configuration Settings - Footholder and Palette animation in Fire and W2
Googie's hack thread - Contains a bit of useful info.

Let me know if there are other threads related to MM1 hacking and I'll add them.


[HELP] - Ask for help, for example if you want to:
- move Wily 2 refights to Wily 4 and edit where the teleporter spawns or you want to drop something instead when you beat a rematch boss (doesn't require free programming space.) There's no point in spawning a teleporter AND an item though (since the player could easily miss the item), so forget that. You may also go here and read the second paragraph after the code block: http://acmlm.kafuka.org/board/thread.php?pid=89177#89177, but that isn't everything you need. I'm not going to link to that certain post I made in the past about relocating the refights because it's a mess and I was really dumb back then (that didn't change though).
- I dunno, anything else. I'm still a noob at ASM though! And I will always be.


[TBIL] - Should fully research and/or include later
- CWU-01P pattern editing (vertical and horizontal travel limits found, needs to be documented, which I still have not done.)
- Door editing (Fully understood - needs to be documented. Find by searching for door mask TSA data - order: top-right, bottom right, top-left, bottom-left or using the data in -SPAL-.)
- PPU data editing (PPU data includes MM's palette when the level loads, making them fairly easy to find. Needs to be documented)
- Behind Foreground Effect editing
- Disappearing Block editing
- Guts Lift pattern editing


[LOGS] - Edit logs

Edit: More stuff.
Edit 2: I forgot to include the rest of the checkpoint stuff, and I've found more of it too! Good! Anyway, it's there now.
Edit 3: Some enemy damage data added. Also cleaned up this mess a tiny bit.
Edit 4: Added how to find the boss appears palette for the levels. It's really easy btw.
Edit 5: Corrected some mistakes.
Edit 6: Corrected some more mistakes.
Edit 7: Corrected even more mistakes.
Edit 8: Ending cutscene shenanigans added.
Edit 9: Rewrote some stuff to actually make some sense. Should add more stuff about boss rematches.
Edit 10: Added how to quickly access some Wily levels without editing the Stage Select screen too much.
Edit 11: This post is already too long so I can't include everything here so scroll back a tiny bit.
Edit 12: Some super arm and guts block related stuff and some useful links added.
Edit 13: CWU-01P and scroll order related data added. I should try removing the score system... RetroRain really should have made a standalone IPS for that!
Edit 14: I dunno. Shouldn't I make a new thread for this? I probably should...
Edit 15: Has it's own thread now!
Edit 16: Added Title screen notes.
Edit 16+1: Added structure palette data notes, updated Title screen notes, added Table of Contents and shortcut codes.

Posted on 03-14-18 07:32 PM Link | Quote | ID: 166271

Level: 61

Posts: 946/947
EXP: 1853356
Next: 23240

Since: 05-24-07

Last post: 85 days
Last view: 76 days
Very in depth, awesome contribution! :-)

Posted on 03-15-18 12:58 PM Link | Quote | ID: 166272

Level: 27

Posts: 176/184
EXP: 113530
Next: 2629

Since: 10-19-12

Last post: 53 min.
Last view: 39 min.
This is very nice. You should also include the notes on how to hack the titlescreen.


Posted on 03-26-18 09:30 PM Link | Quote | ID: 166288

Giant Red Koopa
ROM Hacking is life!
Level: 71

Posts: 1333/1340
EXP: 3155519
Next: 11595

Since: 02-19-07
From: Brooklyn, NY

Last post: 29 days
Last view: 29 days
Posted by Zynk
This is very nice. You should also include the notes on how to hack the titlescreen.

Here's something I made years ago for hacking the MM title screen.

Posted on 04-03-18 08:12 PM Link | Quote | ID: 166298

Level: 38

Posts: 374/375
EXP: 355155
Next: 15292

Since: 12-01-11
From: Hungary

Last post: 7 days
Last view: 7 days
Updated first post.

New stuff:
- MM1 Title Screen notes, incl. TM related nonsense. (I really should add a Table of Contents or something, I guess I'll do that later.)
- Nothing else because I was pretty much dead.

Posted on 06-11-18 05:50 PM Link | Quote | ID: 166380

Level: 38

Posts: 375/375
EXP: 355155
Next: 15292

Since: 12-01-11
From: Hungary

Last post: 7 days
Last view: 7 days
Finally updated this mess after more than 2 months.

Just added structure palette data notes, updated Title screen notes, added Table of Contents and shortcut codes.

kuja killer
Posted on 06-16-18 04:46 AM Link | Quote | ID: 166386

Level: 50

Posts: 585/585
EXP: 907008
Next: 40309

Since: 03-20-07
From: Lake Havasu City, Arizona

Last post: 3 days
Last view: 4 hours
thats cool, hopefully all your info will be useful to more mm1 romhackers.

and if you dont mind me saying, sorry for going off topic -- i saw all your levels in the "megaman contest 2" and they were really good. especially that underwater level with the giant fish boss at the end, was really unique. i loved it.

I thought your level there was pretty high quality. i forget what it was called "metal ocean" or something

Quick Curly
Posted on 06-19-18 09:45 AM Link | Quote | ID: 166398

Giant Red Paratroopa
Level: 72

Posts: 1423/1423
EXP: 3245682
Next: 78080

Since: 06-15-08
From: Earth

Last post: 4 hours
Last view: 4 hours
This is amazing. Thank you for your dedication and commitment towards putting all this information together. Excellent work!

Posted on 06-19-18 01:05 PM Link | Quote | ID: 166399

Level: 27

Posts: 184/184
EXP: 113530
Next: 2629

Since: 10-19-12

Last post: 53 min.
Last view: 39 min.
This small document by Insectduel on how to restore the beep sound in the titlescreen of MM1 US version should be included.



Main - ROM Hacking - The Ultimate Mega Man 1 (U) Hacking Notepad New thread | New reply

Acmlmboard 2.1+3δ (2016-01-08)
© 2005-2016 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.121 seconds. (365KB of memory used)
MySQL - queries: 73, rows: 103/0, time: 0.066 seconds.