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

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

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


Zieldak
Posted on 03-09-18 04:09 PM (rev. 9 of 09-25-18 06:13 PM) Link | Quote | ID: 166261


Crow
Level: 42

Posts: 371/387
EXP: 512435
Next: 8927

Since: 12-01-11
From: Hungary

Last post: 1312 days
Last view: 1203 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
[FIRE] - Fire Pillar position tables
[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
[TITL] - Title screen notes
[SPAL] - Structure palette data
[DOOR] - Door Animation editing {NEW!}
[LIFT] - Guts Lift notes {NEW!}
[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 of all, you have to edit the scroll data and make the 3 screen halls only 1 screen long, and edit the rooms IDs in the Room Editor accordingly.
Secondly, fix the incorrectly saved checkpoint data using the information found at -CHEK- below, otherwise you'll most likely run into some problems.
Then you have to move the door animations too to the correct screens in these tables:

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.)

The previous two tables will also be mentioned later again.

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

--------------------

[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 first 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. 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 **


Legend:
* 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...

--------------------

[FIRE] - Fire pillar position tables

1768E: Pillar Position Table Fire Man Pointer
176A1: Pillar Position Table Wily 1 Pointer

176A8-176B6: Fire Man Pillar Positions
176B7-176BE: Wily 1 Pillar Positions

Bit 1 = Column
Bit 1 and 2 = Screen No.

How to calculate pillar positions:

1. Get Screen No. of pillar
2. Add tile distance from left side of the room to the first bit

And moving Fire Pillars should no longer be a problem!

--------------------

[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: Guts

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. 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. Have a fix for it, but I used LEVEL DATA as programming space to implement it. Is there any free space in this bank?

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?)

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: Guts

--------------------

[WEAP] - Weapon related notes

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

Bomb
162DA - time until bomb/orbs starts testing hits. If it's set lower than the value at 1649A, the bomb itself will be able to cause damage too, and no explosions will be spawned if the bomb hits something. If it's higher, then the hit tests will be delayed by the same amount as the difference. If this value is higher than 164C3, the bomb will be unable to deal damage.

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 explosion.
1F89A-1F8A5 - mirroring?
1F8A6-1F8B1 - horizontal speeds for small explosions (experiment with them values)
1F8B2-1F8BD - mirroring?
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.


Fire
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


Ice
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


Cut
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.

Important!

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": 1F9DE ($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.

--------------------

[DOOR] - Door Animation editing

Which rooms the animated doors are in.
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.)

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


Door animation data locations (F50+4000*(banknumber-1))
Cut Man & Wily 1: F50-100F
Ice Man & Wily 2: 4F50-500F
Bomb Man & Wily 3: 8F50-900F
Fire Man & Wily 4: CF50-D00F
Elec Man: 10F50-1100F
Guts Man: 14F50-1500F


Each animation data code block consists of:

- Structure data: F50-F7F (30 bytes in hex from F50)
There is space for 12 different structures. Each structure is 4 bytes long, each byte is a TSA.
The TSA order is the following: top-left, bottom-left, top-right, bottom-right

- Palette data: F80-F8B (C bytes in hex from F80)
Go to -SPAL- for a detailed explanation.

- Unused space: F8C-F8F (4 bytes in hex from F8C)
Since there are only 12 structures, these bytes are left unused.

- Frame data: F90-100F (80 bytes in hex from F90)
Quite easy to read. I may or may not have used this space for other code.


More about frame data:
Let's take this record as an example: 04 F000 F001 EC00 EC01

1st byte represents how many edits there are. Depending on this value, it reads the consequent pairs of bytes. For example if the number of edits is 3, it reads the next 6 bytes.
- 1st byte: location to draw
- 2nd byte: ID of structure to draw


Which animation is loaded when a door is opening or closing can be changed at the following locations:

First door opening animation data indexes: 1D07E-1D083
Only for Robot Master stages.

Second door opening animation data indexes: 1D08C-1D096
First 6 bytes are for the Robot Master stages.
The rest is for Wily 1-5.

Boss door closing animation data indexes: 1D097-1D0A1
First 6 bytes are for the Robot Master stages.
The rest is for Wily 1-5.


Before anyone asks, yes, it's possible to expand the structure, palette and frame datatables. All it requires is moving the data around and changing the following pointers accordingly. A lot of them.
I did add 4 more structure slots to my hack I'm working on because I desperately needed them. I couldn't add more though, because I'm actually using the rest of the free space in a bank for something. I had to rearrange all that because I was 1 byte of space short...

Door animation data pointer (also the pointer to TSA data):
- 1D0DC: 8F40
- 1D0E2: 40; 1D0E6: 8F (while it's not exactly a pointer, it basically is one. Needs to be changed, must be the same as the first pointer, otherwise funny things will happen)

Palette data pointer...s. Many of them actually, at the following locations:
- 1D0B9: 8F70
- 1D0CF: 8F70
- 1D0DC: 8F70
- 1D0F7: 8F70

Frame data pointer:
- 1D0F4: 8F80


For those who have a hard time figuring out the order of blocks, I've made some templates:

TSA data:
- Opening double door: zzxxzzxxxxxxxxxxyyxxyyxx
- Opening boss door: xxxxzzxxxxxxxxxxyyxxzzxxyyxxyyxx
- Closing boss door: zzxxxxxxzzzzxxxx(zzxxxxxxzzzzxxxx)

xx = Normal TSA
yy = Shadowed TSA
zz = Door TSA

No frame or palette data templates though, you can't really make ones for those.

Usual locations of doors: Left - F0, EC; Right - 0C, 10 (not including vertical and horizontal doors)

--------------------

[LIFT] - Guts Lift notes

1DA99: Check the current level's ID. If it's the same then load Set 1, load Set 2 if not. Default: $05 (Guts Man)

;Set 1
1DA9C: How many lifts to spawn in the level set at 1DA88. Default: $02 (3 lifts)
1DA9E: Which byte to start reading from 1DAE4. Default: $00 (the beginning of the data)

;Set 2
1DAA2: Which byte to start reading from 1DAE4. Default: $15 (4th record, the last record of the data)
1DAA4: How many lifts to spawn in any levels other than 1DA99. Default: $00 (1 lift)

1DAF6-1DB11: Where to spawn each lift. Each record is 7 byte long.
1st byte = x position
2nd byte = screen number
3rd byte = y position
4th byte = 00 = move left, 40 = move right
5th byte = maybe initial status? (can you stand on it or not) In Bisqwit's disassembly it's called ObjectYSpeedFraction (?)
6th byte = lift index
7th byte = enemy index (if the object 2C is the tenth enemy in the whole level, then it's 0B for example, because the first index is 0) If you see a missing enemy or object or the game spawns lifts again when you scroll enemy 2C on the screen again, then you have not set the correct index.

17A3C-17A41: Bytes somehow affecting lift movement
17A3C: 00 FF FF
17A3F: 00 01 00
//
1st byte = speed fraction
2nd byte = speed
3nd byte = how many screens to move when the lift reaches one end

17A42-17A51: Where do the lifts change directions
17A42: 0802 1803 (top lift in Guts Man)
17A46: 8802 9803 (middle lift in Guts Man)
17A4A: 0803 6804 (bottom lift in Guts Man)
17A4E: 581B F01C (Wily 4 lift)
//
1st byte = x position
2nd byte = screen number

17A52-17A59: Pointers to 17A5A, 17A5B, 17A64, 17A79

17A5A-17A7D: Where to change lift status
17A5A: FF (no action; top lift)
17A5B: 02F0 0300 0370 0380 FF (middle lift)
17A64: 0340 0350 0380 0390 03C0 03D0 0400 0410 0440 0450 FF (bottom lift)
17A79: 1BC0 1C20 FF (Wily 4 lift)
//
1st byte = screen number
2nd byte = x position

--------------------

[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.
Romhacking.net - Documents - Mega Man Title Screen Sound Code - Restoring the pressed start sound effect in Mega Man (U) title screen.

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

- Infinite Weapon Energy glitch fix - aka. the glitch that happens when a weapon uses more energy than 2. (fix fill be included once I find free space in the vanilla ROM)
- Patch to remove the score system? (also repurposing score counter as a life counter & limited max lives to 9; half done, have not removed all the unused code)

--------------------

[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.
Edit 9*2: Added a new useful link -LINK-. (Mega Man Title Screen Sound Code)
Edit XIX: Forgot to add the previous edit log. Oops. Also fixed some nonsense here and there. Some new stuff in -TBIL-.
Edit Twenty: Added Door Animation editing and Guts Lift notes, check -TELE- or search those names.
Edit 21: Added Fire Pillar location table stuff. -FIRE-

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


Fuzz Ball
Level: 66

Posts: 946/968
EXP: 2368193
Next: 93658

Since: 05-24-07

Last post: 959 days
Last view: 815 days
Very in depth, awesome contribution! :-)

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


Purple Leever
Level: 32

Posts: 176/209
EXP: 195992
Next: 10450

Since: 10-19-12

Last post: 81 days
Last view: 14 hours
This is very nice. You should also include the notes on how to hack the titlescreen.

____________________

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


Giant Red Paratroopa
Level: 77

Posts: 1333/1407
EXP: 4181340
Next: 9789

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

Last post: 10 days
Last view: 9 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.

____________________
My Linktree

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


Crow
Level: 42

Posts: 374/387
EXP: 512435
Next: 8927

Since: 12-01-11
From: Hungary

Last post: 1312 days
Last view: 1203 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.

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


Crow
Level: 42

Posts: 375/387
EXP: 512435
Next: 8927

Since: 12-01-11
From: Hungary

Last post: 1312 days
Last view: 1203 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: 55

Posts: 585/628
EXP: 1243948
Next: 70241

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

Last post: 282 days
Last view: 8 days
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: 77

Posts: 1423/1443
EXP: 4172616
Next: 18513

Since: 06-15-08
From: Earth

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

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


Purple Leever
Level: 32

Posts: 184/209
EXP: 195992
Next: 10450

Since: 10-19-12

Last post: 81 days
Last view: 14 hours
This small document by Insectduel on how to restore the beep sound in the titlescreen of MM1 US version should be included.

http://www.romhacking.net/documents/411/

____________________

dreamerman
Posted on 06-19-18 04:34 PM Link | Quote | ID: 166400


Red Paragoomba
Level: 18

Posts: 49/52
EXP: 27093
Next: 2804

Since: 01-10-10
From: Santiago

Last post: 950 days
Last view: 950 days
its possible add Timeman and Oilman?

Zieldak
Posted on 07-09-18 07:00 PM Link | Quote | ID: 166425


Crow
Level: 42

Posts: 376/387
EXP: 512435
Next: 8927

Since: 12-01-11
From: Hungary

Last post: 1312 days
Last view: 1203 days
Posted by kuja killer
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
MM1 needs more love.
Thanks. Too bad I never got to finish the Null and Void ones (which are appearently not implemented properly). I messed up Gigabgyo's code too. Oh well, honestly I don't even care at this point, the game has been out for a very long time now. I wonder if I'll be able to participate in the third one, but I highly doubt that.

Posted by Zynk
This small document by Insectduel on how to restore the beep sound in the titlescreen of MM1 US version should be included.

http://www.romhacking.net/documents/411/
Added.

Posted by Quick Curly
This is amazing. Thank you for your dedication and commitment towards putting all this information together. Excellent work!
And there's still a lot more to document.

Posted by dreamerman
its possible add Timeman and Oilman?
Well, I wouldn't say it's impossible but you'd have to rewrite pretty much the whole game if you wanna do that.

Zieldak
Posted on 08-25-18 01:07 AM (rev. 3 of 09-02-18 02:02 AM) Link | Quote | ID: 166491


Crow
Level: 42

Posts: 378/387
EXP: 512435
Next: 8927

Since: 12-01-11
From: Hungary

Last post: 1312 days
Last view: 1203 days
Double post yay!

Added Guts Lift and Door Animation stuff and fixed several dumb mistakes.

I'll add some Yellow Devil stuff next time. Pattern editing is quite easy.

Edit: I promised Yellow Devil, but I added FIRE PILLAR stuff instead. Didn't want to triple post.

DannyPlaysSomeGames
Posted on 09-18-18 10:08 PM (rev. 5 of 09-19-18 12:46 AM) Link | Quote | ID: 166528


Octorok
Level: 12

Posts: 3/29
EXP: 7070
Next: 851

Since: 09-16-18
From: Somewhere

Last post: 1706 days
Last view: 191 days
Honestly, this seems pretty useful. I'll probably use this as a reference for hacking the game. Thanks!

EDIT: You should also add or at least check out this document, although I have no idea if it's useful, since it's partly in spanish, with some english here and there. Maybe I could translate it? I dunno. Regardless, just a suggestion.

https://www.romhacking.net/documents/92/

EDIT 2: noticed a typo:


Trademark letter "T": 1F9D9 ($94)
Trademark letter "M": 1D9DE ($8D)


When it should be:


Trademark letter "T": 1F9D9 ($94)
Trademark letter "M": 1F9DE ($8D)


____________________
Hey there

DannyPlaysSomeGames
Posted on 09-25-18 12:50 AM Link | Quote | ID: 166533


Octorok
Level: 12

Posts: 4/29
EXP: 7070
Next: 851

Since: 09-16-18
From: Somewhere

Last post: 1706 days
Last view: 191 days
Sorry for the double post, but I ran into a problem:
I was tinkering around with Bomb Man's weapon and now it no longer does damage. I think editing the delay of when the bomb goes off and when the explosion disappears might screw around with its hitbox, although I'm unsure.

1649A was 42 (time until bomb explodes)
164A4 was 03 (explosion sprites after bomb explodes)
164C3 was 62 (time until explosion disappears)

____________________
Hey there

Zieldak
Posted on 09-25-18 06:07 PM (rev. 4 of 09-25-18 06:14 PM) Link | Quote | ID: 166534


Crow
Level: 42

Posts: 384/387
EXP: 512435
Next: 8927

Since: 12-01-11
From: Hungary

Last post: 1312 days
Last view: 1203 days
Posted by DannyPlaysSomeGames
Sorry for the double post, but I ran into a problem:
I was tinkering around with Bomb Man's weapon and now it no longer does damage. I think editing the delay of when the bomb goes off and when the explosion disappears might screw around with its hitbox, although I'm unsure.

1649A was 42 (time until bomb explodes)
164A4 was 03 (explosion sprites after bomb explodes)
164C3 was 62 (time until explosion disappears)


I think I know why. Because I forgot to include a very important value.
What basically happened is it didn't test if the orbs hit anything at all, because 1649A was set to 98 frames, but 162DA remained at $92 which is 146 frames. So the orbs disappeared before it could even start testing hits.

Change 162DA too to 42. If you set it lower than the value at 1649A, the bomb itself will cause damage instead, and no explosions will be spawned. If it's higher, then the hit tests will be delayed by the same amount as the difference.

Also fixed the typo, thanks.

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

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

Page rendered in 0.028 seconds. (367KB of memory used)
MySQL - queries: 104, rows: 139/141, time: 0.018 seconds.