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

Main - Posts by caesur4

Pages: 1 2 3

caesur4
Posted on 05-20-14 09:04 PM, in General Megaman Hacking Thread Link | Quote | ID: 156573


Red Goomba
Level: 16

Posts: 1/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Hi there!

I am completely new here, but I just finished reading this entire thread, and it's been super helpful.

I started a MM5 hack a little while back just to mess around with sprites, but I'm looking to expand my goal now.

Kuja Killer linked this Rockman5 MMC5 mapper about halfway through the thread (http://acmlm.kafuka.org/uploader/get.php?id=4298). I tried it out on a clean Rockman5(J) rom, and on the rom I was working on: Mega Man 5 (U). Both worked fine, for the most part.

Anyway I played all the way through it, and I found one bug. And I don't have the experience to fix it. The Wily1 Boss platform shooting got messed up. If you shoot the bottom part of the boss' body, it shoots out an "invisible" platform. If you shoot the top part of the boss' body, it shoots both of the platforms out at the same time (but only the top platform is tangible). I feel like it's a pretty easy fix, but I'm not exactly sure what I'm looking for.

I got as far as finding out that $03C9 and $03CA in the RAM are written to based on whether you hit the top or bottom platform, respectively...

Any help would be really appreciated!




caesur4
Posted on 06-13-14 05:00 AM, in General Megaman Hacking Thread Link | Quote | ID: 156749


Red Goomba
Level: 16

Posts: 2/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Has anyone had a chance to look into that problem I found with the MM5 mapper patch?

I'm still struggling to find what's causing the issue.

For that matter, if anyone has the disassembled AI for the wily1 boss I'd probably be able to figure it out myself. Better yet, if someone could give me a hint as to how to isolate it, that would be awesome.

caesur4
Posted on 06-14-14 07:41 PM, in General Megaman Hacking Thread Link | Quote | ID: 156775


Red Goomba
Level: 16

Posts: 3/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Thanks Rock5easily! That fixed it.

Does changing 7C26B: 1F --> A0 cause the interrupt flag to trigger so it jumps to a different bank?

I'm trying to understand why it fixed it.

@Trinitronity
These helped me out, I'm still not awesome, but I kinda get it now...
Tutorial:
http://skilldrick.github.io/easy6502/

Emulator and list of opcodes to mess around:
http://www.6502asm.com
http://www.6502.org/tutorials/6502opcodes.html

The FCEUXD emulator has a built in debugger and hex editor, use those together to identify and edit on-the-fly.

I haven't found any completely comprehendable easy-to-learn tutorials. But there are a lot of suggestions about halfway through this thread.

caesur4
Posted on 06-15-14 05:42 AM, in General Megaman Hacking Thread Link | Quote | ID: 156784


Red Goomba
Level: 16

Posts: 4/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
@Rock5easily

That is awesome. I think I understand. One more question, how did you know that it was an IRQ problem and why did changing $C26B from $1F to $A0 fix the issue?

Was it because in the MMC3 mapper, $C26B created the raster scroll effect by accessing a relative address, so in the MMC5 mapper it needed to be adjusted to point to an absolute address? I'm still not exactly sure what I made happen.

caesur4
Posted on 06-18-14 04:32 AM, in General Megaman Hacking Thread Link | Quote | ID: 156848


Red Goomba
Level: 16

Posts: 5/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
I've been trying to use the debugger and trace logger to find the code for Mega Man's face when he blinks in MM5.

I think it has something to do with the counter at $0540 in the RAM (because it counts up from #$00 to #$0B and resets back to #$00--MM's face changes for #$0A and #$0B and then goes back to eyes-open), but that counter controls other sprite things, too.

Anyway, I'm trying to find the code for his blink so I can remove it or turn it into something else.

I saved data from the Trace Logger of two frames: before MM blinks, and when his eyes are closed. And for the most part, I don't know what I'm looking at.
http://acmlm.kafuka.org/uploader/get.php?id=4642


Also, can you add tile(s) to modify the Mega Man character sprite, instead of just modifying the existing ones? For this I imagine new ASM code would be needed to tell the tile where it goes under what circumstances.

Thanks!

caesur4
Posted on 06-18-14 02:16 PM, in General Megaman Hacking Thread (rev. 2 of 06-19-14 03:56 AM) Link | Quote | ID: 156853


Red Goomba
Level: 16

Posts: 6/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Posted by Zieldak
Posted by Vanya
If you just want to remove it you can accomplish that simply by changing the graphics to match the non blink tiles, no?

What would you do with it other than blinking?


Bass has that "gem" on his helmet which sometimes shines for a bit. The blinking can be used for that instead. Or maybe he wants to animate the mouth?


Right, I can (and have for now) just change the tile to the same one so the face doesn't change, but like Zieldak said, the blinking is very similar to other character's idle traits, (Bass' gem, or Protoman's scarf, etc.)

I could make Megaman yawn instead of blinking by just changing the tile it looks at, but I'm more interested in the rate at which it happens, and how to make the code affect other parts.


edit:
Posted by Trinitronity
Posted by Trinitronity

Ah, crap, Twitter...

I would actually prefer to just have his e-mail address, so I can ask him in through e-mail...


Still have a problem with that.

...why do I not get any help at all?


I googled "twitter dhiark" I didn't need to sign up to see his twitter page. he has a link to his personal website on his twitter page. He has his email account on his webpage.

Here's the webpage http://dhi.s54.xrea.com/

caesur4
Posted on 06-21-14 02:04 AM, in General Megaman Hacking Thread Link | Quote | ID: 156903


Red Goomba
Level: 16

Posts: 7/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Posted by rock5easily
If you want to confirm MM5 sprite animations, my tool can be used.

http://rock5easily.sakura.ne.jp/archive/r5spriteviewer_eng.zip
Screenshots:
http://rock5easily.sakura.ne.jp/tmp/r5sv01.png
http://rock5easily.sakura.ne.jp/tmp/r5sv02.png



Awesome. Thank you!

caesur4
Posted on 06-22-14 07:08 AM, in General Megaman Hacking Thread (rev. 5 of 06-22-14 07:45 AM) Link | Quote | ID: 156927


Red Goomba
Level: 16

Posts: 8/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
How could I edit the standing idle blink animation in MM5 to replace it with some other code? I found some stuff that changes what animation frame is used, and the delay between each frame (x27af8-x27b04) but I can't find a way to remove the animation frames I don't want.

edit: I'm an idiot. x27af8 is the one I was looking for.

edit again: It screws some stuff up after shooting while standing... changing x27b05 to the same thing seems to have fixed it. Something to do with the standing still animation frames needing to be the same as the standing while shooting animation frames?

caesur4
Posted on 06-22-14 07:02 PM, in General Megaman Hacking Thread (rev. 2 of 06-23-14 02:01 AM) Link | Quote | ID: 156934


Red Goomba
Level: 16

Posts: 9/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Posted by rock5easily

@caesur4

Did you change the value at $27AF8 from 0A to 09?
The number of animation frames is often referred by Megaman's routines.
So it is better is to edit the number of frames so that does not change.

For example,
27B04 : 02 -> 01


I was worried about that.
I have an odd number of animations that I want to use (3), so I couldn't just modify what the frames look like. I changed $27AF8: 0A-->02, and it altered the standing and shooting animation, so I changed $27B05: 0A-->02. I haven't done a playthrough again to see if there's anything else that got affected, but I can't think of another way to get 3 different animations used repeatedly instead of the usual.

I also can't seem to find an animation frame that isn't used anywhere else. And I'm not sure how to set up a new one yet.

caesur4
Posted on 06-25-14 06:19 AM, in General Megaman Hacking Thread (rev. 2 of 06-25-14 06:20 AM) Link | Quote | ID: 156953


Red Goomba
Level: 16

Posts: 10/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Posted by rock5easily
I upgraded Rockman5 Sprite viewer.
Data reference count can be seen in "Data Reference Info" tab.
http://rock5easily.sakura.ne.jp/archive/r5spriteviewer1.1.zip



This has already been SO helpful. Especially for finding both location of what tile was used and where it's used. Can you add a function to query? like, Find sprites that are only referenced once. Or never at all?


different question:
Matrixz's Capcom Sprite Assembler can add tiles/animations or remove them, but only for MM4. Does anyone know how I could do that (whether manually or via program) for MM5?

caesur4
Posted on 06-27-14 01:23 AM, in General Megaman Hacking Thread Link | Quote | ID: 156986


Red Goomba
Level: 16

Posts: 11/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Posted by Trinitronity
Posted by caesur4
different question:
Matrixz's Capcom Sprite Assembler can add tiles/animations or remove them, but only for MM4. Does anyone know how I could do that (whether manually or via program) for MM5?

I actually would like to have such thing for MegaMan 3 as well, since I'm gonna replace the robot masters in my MM3 hack.
However, hearing of such program in general is interesting. Where can I find the MM4 version?

There's one version, and it shows/edits the sprites (and animations) for several different capcom games.

Here's where I found it.
http://www.romhacking.net/utilities/983/

Matrixz has this file to go along with it if you want to make the assembler more complete.
http://acmlm.kafuka.org/uploader/get.php?id=4103

caesur4
Posted on 06-27-14 04:37 AM, in General Megaman Hacking Thread Link | Quote | ID: 156989


Red Goomba
Level: 16

Posts: 12/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Posted by Insectduel
Posted by caesur4
Does anyone know how I could do that (whether manually or via program) for MM5?


I did that when I turn Blues/Protoman into Rockman/Mega Man for Rockman 5/Mega Man V. You just have to memorize tile numbers in order and look into Ram and Rom offsets while using Matrixz's CSA editor. Rockman/Megaman has more tile space than Blues/Protoman when you turn them into enemies before facing Darkman.


I appreciate the response, but that isn't really giving me any new direction.

I can identify where all of the tiles are, what they look like, and what their IDs are. I'm having trouble stringing them together. For example, I know the tile IDs for MM standing still (in MM5: $25A72), and I know how to change them out for other tiles.

I don't know how to make a sprite with 9 tiles use 10 instead. I want to say that $8000 in the RAM has something to do with the sprite that ges drawn...?

caesur4
Posted on 06-28-14 02:07 AM, in General Megaman Hacking Thread (rev. 3 of 06-28-14 06:34 AM) Link | Quote | ID: 157008


Red Goomba
Level: 16

Posts: 13/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Posted by SnoruntPyro
Pretty new to romhacking, but just a question - does anyone know where the hexes...pointers...whatever (don't know what they're called; for example, $C602) are for the weapons in MM3? I've seen some small documentation of Hard Knuckle, and to a much lesser extent Shadow Blade, Magnet Missile and Search Snake in kuja killer's documents, but no dice for the others. I'd like to modify multiple parts of the weapons, but the thing most important to me is the weapon's speed. Thanks in advance.


MM's regular buster shooting speed is at $3d166 in the ROM, and it looks like the speed of at least magnet, needle, spark, shadow, and gemini are all affected if you change that. I wish I could do more to help. It's likely that ALL of the weapon data is around that 3dxxx area (actually, it looks like a lot of the weapons physics are around $38800-$38900), so you might just want to play around with Hex values around the $01-$0A range. Good luck!

edit to talk about my problem:

I think I'm onto something with my problem.
Basically every single one of my MM sprites is going to require 1 to 2 more tiles in the sprite. I think there's enough unused space that it should work.

And I think I know how the animation/spritebuilding process works in MM5 now, thanks to Rock5easily's sprite viewer (thanks!).

So the MM Blinking animation is located at $27AF8,
Hex: 0A 08 01 01 01 01 01 01 01 01 01 01 02 XX
Breakdown: First value = number of frames (-1); second value is time delay between frames; the rest of the values are the sprite/frame IDs, so in this case MM eyes open 10 times and MM eyes closed 1 time.

If I edit 0A to 0B I can get one more frame, and just change the next value in the sequence (XX) to the sprite ID I want to see. But then I've erased data for a different animation. But I can push it all forward to a point where there is unused data. BUT, if I do that then everything that used to point to the old place needs to point to somewhere new.

That's where I'm stuck. So yeah, idk, I think I've kinda got a plan.

caesur4
Posted on 06-28-14 04:12 PM, in General Megaman Hacking Thread Link | Quote | ID: 157026


Red Goomba
Level: 16

Posts: 14/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Firstly, thanks for laying all of that out, it's going to be extremely helpful!

Okay, so let me try this...

MM blinking animation (animation no. 01), located in bank12
MM eyes open:
Sprite Frame
The low pointer is 0x24011; $62
The high pointer is 0x24211; $9A
MM eyes closed:
The low pointer is 0x24012; $77
The high pointer is 0x24212; $9A
>>>> these work together to locate the data the sprite is built from; every sprite has a unique set

Location data
The low pointer is 0x24411; $D0
The high pointer is 0x24511; $87
>>>> the two points work together to define where each tile is placed in the sprite; multiple sprites use the same location data -- if these are changed, MM eyes open and MM eyes closed are both changed

animation
The low pointer is 0x24611; $E8
The high pointer is 0x24711; $BA
>>>> In the RAM $BAE8 is the animation sequence... the series of frames

So if I wanted to add one more animation frame, I change the Animation Definition at 0x27AF8
0A 08 01 01 01 01 01 01 01 01 01 01 02 0A ---> 0A 09 01 01 01 01 01 01 01 01 01 01 02 03
And move all values forward by 1 until I reach the unused space in Bank12-13, and adjust all of the pointers in bank12-13 for sprite frame, location, and animation so that they point to the correct address.

(ROM address) = Pointer(low) + Pointer(high)*0x100 + (BANK number)*0x2000 - 0x8000 + 0x10
---->
(ROM address) = newPointer(low)-0x01 + (newPointer(high)-0x01)*0x100 + (BANK number)*0x2000 - 0x8000 + 0x10

or something like that?


caesur4
Posted on 07-08-14 03:49 AM, in General Megaman Hacking Thread Link | Quote | ID: 157349


Red Goomba
Level: 16

Posts: 15/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
New MM5 question. How can I add tiles to the MM sprite in the Weapons Menu? The data is at $2633-$2656, but it's done differently:
Mega Man's face
C5 08 41 99

C5 is the Y-location
08 is the tile it uses
41 is the palette/mirroring/etc.
99 is the X-location

After the last set of four, I start editing rush coil. it doesn't look like I can insert two tiles and move everything else back. Is there a set of pointers I'm overlooking?

caesur4
Posted on 07-14-14 05:28 AM, in General Megaman Hacking Thread (rev. 3 of 07-14-14 06:09 AM) Link | Quote | ID: 157433


Red Goomba
Level: 16

Posts: 16/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Three more MM5 quetions,
1) Rockman Airslide... how can I make it so MM only airslides when he has Charge Kick equipped?
My original plan was to add some ASM before x37E80 where the new code was added in the hack. So I came up with this:
BCC $9E7D     ;unchanged
LDA $32 ;loads accumulator with 'current weapon'
CMP #$08 ;compares accumulator to $08, Charge Kick
BNE $9ED5 ;end of Airslide code
LDA #$01
STA $0041 ;Airslide uses $41 = #$01 to airslide, $41 = #$00 is regular jump ;($9E7A)
...
$9ED5:
...
LDA #$00
JMP $9E7A ;Jump back to where A is stored in $41

A5 32 C9 08 D0 5D A9 01 85 41 ... A9 00 4C 7A 9E

I've got two probelms right now. One is that the Zero flag seems to be part of how MM jumps, and I don't know how to reset it to whatever it was after the CMP. The second problem is that I don't know where the regular jump routine is. I thought there was just a part of the new "jump code" that I could skip in order to do a regular jump.

EDIT: Figured it out. I've edited the above code to show what I did.
Bit of a bug now though, a ground slide would usually take the full distance after the key presses. Now all ground slides except charge kick depend on the jump key being continually held down. I will investigate further...

2) How would I go about enabling MM to shoot when he has Charge Kick equipped?
3) I don't know where, or how to find the max bullets MM can shoot on the screen at one time. I think I went through just about the whole Rom looking at $03's and $04's, and none of them changed it... I haven't tried $05 yet though...

caesur4
Posted on 07-18-14 03:26 AM, in General Megaman Hacking Thread Link | Quote | ID: 157465


Red Goomba
Level: 16

Posts: 17/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Posted by rock5easily
Did you apply Rockman5AirSliding.ips?
The original air slide code is here



Yeah, I'll definitely be crediting it when or if I release anything to the public.

I think I got it figured out. I found the part of the code where the Airslide Flag would be pulled and used, and made it so whenever MM is jumping it's only $01 IF $0032 = $08 (otherwise it's $00). And I made everything that got affected look where it needed to look.


x362AB
20 9D 9E

x36307
20 C5 9E

x3763F
20 BF 9E

x37E80
90 05 A9 01 85 41 38 4C DF 97 20 3F EA A5 32 C9
08 D0 52 A5 41 F0 37 A5 14 29 80 F0 31 A5 16 A4
AF 39 67 90 F0 28 A9 00 85 41 4C CC 9E A5 41 D0
04 A5 35 D0 03 4C B7 E7 20 B7 E7 B0 08 A9 00 8D
D8 03 8D F0 03 A5 16 29 80 D0 02 85 35 38 60 85
41 AD 30 03 60 A9 00 85 35 4C A1 C4 A5 14 29 BF
95 14 4C C2 80 A9 00 4C 74 9E

caesur4
Posted on 07-23-14 03:30 AM, in General Megaman Hacking Thread Link | Quote | ID: 157494


Red Goomba
Level: 16

Posts: 18/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Posted by Korxroa
Insectduel, Thanks.
Change Color MegaMan's Sprite with Weapons Energy works on FceUX Hex Editor and WindHex not NES Palette Editor.
$29 $3A $2A = Hex Search type "293A2A" and press "Find" button, this error message "Sorry... The string was not found."


I found all of the charge colors using FCEUX.
Start the game, Click "Tools" --> "PPU Viewer..." --> start charging MM's buster. The bottom left palette changes with MM.
Pause the emulation "\" will advance the game one frame and pause again. Use this to look at the different hex numbers that make up the different colors. Start searching for those. The charge is a bit tricky because it's different than how other palettes work. It's an animation that runs through a series of colors...

Anyway, x07928D -- x0792AA is what you're looking for.

_____________________

I figured out, kind of, how to "enable" the buster shot for charge kick in MM5. x037580 has all of the different pointers(?) for the weapons. If I set the low/high pointers for charge kick (x037589/x037599) to the same ones as the mega buster (x037581/x037591) I can get MM to shoot while he's got charge kick equipped. But the bullet travels through enemies, and I don't know how to fix that.

Still trying to figure out how to change max buster shots per screen, but I think I'm getting closer.

caesur4
Posted on 07-25-14 05:41 AM, in General Megaman Hacking Thread Link | Quote | ID: 157508


Red Goomba
Level: 16

Posts: 19/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Posted by caesur4
Posted by Korxroa

Still trying to figure out how to change max buster shots per screen, but I think I'm getting closer.


I found it... it was a #$03. MM5 megabuster routine starts at x0370F3. x037116 is the hex value to change max number of shots/screen.

caesur4
Posted on 08-02-14 02:58 PM, in General Megaman Hacking Thread (rev. 7 of 08-02-14 07:20 PM) Link | Quote | ID: 157636


Red Goomba
Level: 16

Posts: 20/47
EXP: 19391
Next: 865

Since: 05-20-14
From: Iowa

Last post: 1753 days
Last view: 656 days
Posted by Zynk

Does anyone know how to edit this?
I need to know where the flickering colors on the Intro-train scene. The palette is located at offset 36975 (both for MMIV & RM4) .



Looks like it's here:
x03751B
11 37 37 2C 3B 37 39 3C
The face "flickers" too. 39 is the lit up front-of-the-face part.

Here's what I did:
Opened the hex editor and searched for "0F3B01" in the RAM. That took me to offset x0612. I watched it and saw $3B<-->$11 (colors changed with it). I set a write breakpoint at $0612.
I set my condition like this: "X == #3B || Y == #3B || A == #3B"
(IF X register writes $3B... OR IF Y register writes $3B... OR IF A register writes $3B... to $0612 THEN BREAK; writing conditions is a mess. They aren't intuitive at all)
I went backwards in the disassembled code one full step:
  0372C1:B9 0B 95  LDA $950B,Y @ $950F = #$3B
> 0372C4:8D 12 06 STA $0612 = #$3B

I needed to find the last place A was loaded from, so I plugged $950B into the Seek To button and got the ROM address. Then I started messing around with the hex values to see if it changed them.

Hope that helps!

Posted by Taprus the 3rd
Well I am doing a RockMan 2 Hack and I have some questions (note that I am pretty new to the rom-hacking thingy thing but I know how hex edit)so here they are :
1.-How can I remove the Breakable walls ?EDIT:
, the thing is that with Rm2edit - Rock 5 Easily it doesnt let me delete them (they appear purple and canot be moved , deleted or added)

Switch your object type from "Enemies" to "Items". Then click Remove after you select it..
Pages: 1 2 3


Main - Posts by caesur4

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

Page rendered in 0.233 seconds. (329KB of memory used)
MySQL - queries: 126, rows: 158/158, time: 0.222 seconds.