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

Main - Posts by Gavzilla1000

Pages: 1 2 3 4

Gavzilla1000
Posted on 02-16-14 10:03 PM, in General Megaman Hacking Thread Link | Quote | ID: 155692


Red Paragoomba
Level: 18

Posts: 41/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
Ok, I'm confused with a ASM command "EOR". According to the 6502.txt document a lot of people like to site, it says, ""Exclusive-Or" Memory with Accumulator".

Well that explains EVERYTHING! (sarcasm) I tried Googling what this means, but nothing comes up.

Does anyone know exactly what this command does? And can they explain it to me?

Gavzilla1000
Posted on 02-17-14 03:57 AM, in General Megaman Hacking Thread Link | Quote | ID: 155698


Red Paragoomba
Level: 18

Posts: 42/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
Thanks for the clear up! That really helps a lot!

Time for another question! Again... hurray? (At least I'm keeping this board active?)

How exactly do I figure out the ASM for the Boss Select's pointer? You know... the cursor that highlights the boss you want to select? Yea, that thing. Do any of you know the procedure you have to go through to figure out where that is located? And the ASM that tells the game what level to go to when you selected a certain boss?

Thanks again for your guy's help last time!

Gavzilla1000
Posted on 02-28-14 10:39 PM, in General Megaman Hacking Thread Link | Quote | ID: 155876


Red Paragoomba
Level: 18

Posts: 43/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
I've been getting a little bit more active in making a Megaman 5 hack, so I decided to try making some funky levels.
I have two question regarding this topic.

1) How do I make the scrolling sorta like Ducktales? Being able to jump down a pit, or climbing up a ladder and the screen centering on Megaman. I see this is multiple hacks, and it bothers me for not being able to do this.

2) How do I make the background scroll slower / not scroll at all? I could use this to make some pretty cool level designs, but I don't know how to do it. Example being Megaman Odyssey in Boltman's stage.

Gavzilla1000
Posted on 03-14-14 09:32 PM, in General Megaman Hacking Thread Link | Quote | ID: 156095


Red Paragoomba
Level: 18

Posts: 44/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
Recently I've been transforming MM7 & 8 bosses into 8-bit via YY-CHR, and want to implement them into my hack in one way, shape, or form.

My issue; the three color pallet restriction. Now, I have been able to make the robots in such a way that I only needed three colors. Take Tengu Man for example.



I simply just removed his legs, and WHALA! 8-Bit Tengu Man was born! Although... I also had to remove the sword that was originally behind his back. It just didn't look right in all white.

Same thing goes for Cloud Man.



Sadly, can't say that about other robot masters that I made...



YACK! *shivers* It looks HORRIBLE!

I'm trying to stay away from the MM7 & 8 8-bit remakes because I want to test my 8-bit making skills.
Now on to my question.
According to MegaFLE, there are 377 sprites. (0xFF) BUT! There are 60 blank and "-" named sprites. (0x3C)
Can any of you guys explain to me how I can find where these blank sprites are located in the rom, and how to give them an actual CHR sprite? I don't want to give them a hit box or anything like that. I just want to use them so I can make better detailed sprites of the MM7 & 8 robot masters using the Sprite Layering technique.

Gavzilla1000
Posted on 03-23-14 11:16 PM, in General Megaman Hacking Thread Link | Quote | ID: 156186


Red Paragoomba
Level: 18

Posts: 45/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
For the past three weeks, I've been working on a very special "project." And just today I finished the FIRST screen of the stage. It's just a small one level hack, but, I'm putting a lot of effort into it.

Take a guess on what the level is based off of.



If you can't guess it, then I'll tell you. It's based off of the Robot Museum level from Megaman 7!
It's been a PAIN trying to "convert" SNES graphics to 8-bit. Lets take the Mettaur bushes for example.



I tried to to "8-bitify" it, but it just never looked right. So, I just simply made them a little detail in the wall.



Don't get me started on the CHR bank. It took one, YES ONE! whole CHR bank JUST for this screen! AUGH!



The only saving grace is that this simply is just a "remake" of the Robot Museum, so I can use the other level's CHR banks.
The boss from the original Robot Museum isn't going to be in this stage. (As a boss anyway) I have NO experience in sprites / AI so making this dude work would be a PAIN! Maybe in the future tho...

There's going to be a LOT more in this level then the original Robot Museum tho. I have LOTS of ideas that I perfected, and are going to implemented in this stage.

When I'm finished, I'll upload a IPS patch for you guys so download.

But now on to my final question...

What do you guys think? Does the screen shot of the first screen look good? Do the colors look good? Do the graphics look like there SNES counter part? Any feed back would be appreciated.

Gavzilla1000
Posted on 03-29-14 12:23 AM, in Help programing Parallax Scrolling in Megaman 5. Link | Quote | ID: 156235


Red Paragoomba
Level: 18

Posts: 46/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
So lately, if you follow the Megaman Hacking Thread, I made a post saying that I was making a mini one-level hack of the robot museum in Megaman 7. Now, just because this is a small one level hack, doesn't mean that I won't put any effort into it, and I want to simulate the multiple background layers that the Robot Museum has.

I've been trying to find a way to have certain parts of the background move, but not the rest. Sort of like the train in Charge Man's stage in Megaman 5, Boltman's stage from Megaman Odyssey, or even Gemini's Man stage in Megaman 3 with the star's in the back ground.

I tried googling tutorials on how to program Parallax Scrolling, but most of them dealt with Super Mario World, and never from a ASM tutorial were they did it by scratch. But, I did learn some thing from that post tho, and I want to know of this is the same for NES too.

According to the post, there will have to be SOME type of modification to either the scrolling code, or the background code for that certain lever. (The post didn't specify, I'm just guessing on this one.) And that the "second layer" of the back ground will have to be pre-made, and I'm fine with that.

I have little to no experience with big ASM "hacks" like this, but if anyone can help point me in the right direction, that would be very appreciated.

Gavzilla1000
Posted on 03-29-14 05:41 PM, in Help programing Parallax Scrolling in Megaman 5. Link | Quote | ID: 156243


Red Paragoomba
Level: 18

Posts: 47/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
Thank you DurfarC for that patch! I will sure use it in the future.

But to what kuja killer said, when I re-downloaded Megaman Odyssey to check out the graphics thing, I also played a little bit of Boltman's stage again. The background scrolling that you programmed is EXACTLY what I was looking for! The only issue with Anandastoon's patch, is that EVERYTHING scrolls. (Depending on what its set too.) But for Bolt Man's stage, anything in the "foreground" scrolls normally, while the back ground scrolls a little slower.

I don't know how to study the scrolling programing for that level, so I have no clue what the heck you did that made it do that. I also wonder, did you have to use 16-bit pointers for 80010 - 100010?

Thanks for the help!

Gavzilla1000
Posted on 03-30-14 10:53 PM, in General Megaman Hacking Thread Link | Quote | ID: 156253


Red Paragoomba
Level: 18

Posts: 48/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
Is there by chance a Tutorial some where about how to program Sprite AI in ASM? Can't seem to find one anywhere. :/

Gavzilla1000
Posted on 04-03-14 02:10 AM, in Help with custom ASM coding in Megaman 5. Link | Quote | ID: 156264


Red Paragoomba
Level: 18

Posts: 49/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
I'm SO close until I FINALLY have this ASM *thing* down! So what I'm trying to do is try to insert this custom ASM sequence in Megaman 5. (Which may or may not need working itself.) This deals with gravity switching that's available in Gravity Man's stage.

What I mostly need help / advice on is where in the ROM I can put this custom ASM code in. I tried to find a place where I could place a subroutine to E010. (Gravity Man's Boss Code. I just deleted it for my testing.) It's pretty hard to the untrained person trying to find three bytes of open space, where the processor is constantly going over, for the subroutine.

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

LDA $16
; Loads buttons held on pad 1
CMP #$4 ; Compares if the button help is 4 --> D-Pad = Down
BNE ; If you aren't holding down, it will skip to the RTS
LDA #$1 ; Loads one in the accumulator
STA $AF ; Stores it in AF, which is what makes Megaman go upside down
RTS ; Hoping / Planning on this being a subroutine.

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

(Tried bolding the ASM so you can read it better.)

Just going to repeat what this does in case reading the ";" is kind of confusing.
When the player hold / presses down on the D-Pad, it will load 1 into $AF, which is what makes Megaman go upside down.

Does anyone have any tips / advice / tutorial on how to input custom ASM? I don't think this will involve TO much re-engineering, but I really don't know.

Gavzilla1000
Posted on 04-03-14 11:20 PM, in Help with custom ASM coding in Megaman 5. Link | Quote | ID: 156268


Red Paragoomba
Level: 18

Posts: 50/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
Thanks kuja killer! I'll study the code to try and figure out how it works...

Now for some questions! (Your most FAVORITE part huh?)
Why did you change CMP #$4 to AND #$4, and BNE to BEQ? BEQ means branch on result zero, so if you are holding down, it doesn't activate the rest of the code. So why does it work? Is it because you did AND instead of CMP?
I would use the debugger, but I can't find the address inside the debugger + when I put a break point at the address I want, it doesn't work.
Also, what's up with $A8F5? That appears multiple times. What is it supposed to do? It's times like these when I really wish the debugger wasn't so picky with its break points...

Anyway,

I'll try to figure out how you can change gravity when your upside down, and have Megaman's proper sprite. Thanks for the help Kuja Killer!

Gavzilla1000
Posted on 04-12-14 02:24 AM, in OAM Help with Megaman 5. Link | Quote | ID: 156339


Red Paragoomba
Level: 18

Posts: 51/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
So recently I started playing around with 200 - 2FF, which is where the OAM is located. I realized that I could change the pointers to Megaman's sprite! I put a break point down on the value that holds Megaman's Right part of his helmet, but all I got was this;

03E1AD: F0 60 BEQ $E1FF
03E1AF: C8 INY
03E1B0: B1 02 LDA ($02),Y @ $9A73 = #$06
> 03E1B2: 9D 01 02 STA $0201,X @ $0221 = #$00
03E1B5: B1 05 LDA ($05),Y @ $87DE = #$04
03E1B7: 85 07 STA $0007 = #$04
03E1B9: A5 10 LDA $0010 = #$40

I only go back three addresses, so if you need to see more, just tell me.

What boggles my mind is that no matter what address I put a break at, us sends me to this exact address. Is there another way of changing the pointers? I've been trying for the past two days on trying to find a solution, but now I had to give in.

Sorry...

Gavzilla1000
Posted on 07-15-14 06:27 PM, in Help with Hijacking a Routine! Link | Quote | ID: 157440


Red Paragoomba
Level: 18

Posts: 52/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
So lately I've been interested in trying to conquer the beast that is NES ASM. So, what I did was download the Megaman Update Patch, and tried doing some ASM related things on that. The thing is, I failed. Miserably.

From what the title reads, I need help trying to hijack a routine. I don't really know where to start. In the .txt document relating to the Megaman Update Patch, it says that the author added tons of extra ASM space, but didn't give any addresses on where it's located.

I fired up the debugger & code / data logger, and just messed around for a little bit in Cut Man's stage. (I wanted to make sure the code was going to be active when Megaman was playing) When looking through the debugger, I didn't find anything I could replace so I could hijack a routine to my custom ASM code. I had the code at $1360 (because there was nothing but 0's there). It was simply going to be the JMP code I would replace. All I wanted was to put a break at that address and see if it actually worked before I start doing more stuff with it.

Sorry for the long post, there really isn't any tutorials for this kind of stuff, so I'm sticking with the places I know that could help me. Doesn't really help that the author of the patch converted it to MMC3, so I have to deal with Bank Swapping too.

Oh well,

Gavzilla1000
Posted on 07-16-14 01:39 AM, in Help with Hijacking a Routine! Link | Quote | ID: 157447


Red Paragoomba
Level: 18

Posts: 53/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
Well, I just wanted to start with some very basic things.

My first idea was going to be constantly checking Megaman's health and keep checking it until it got to a certain point, including every variable below it (Not counting death of course). Then it would JMP to the "get health capsule" routine, and then two RTS would send it back to the routine I took it from.

Like I said, I just wanted to start with little ASM programing like this, then I would try bigger things. But, yea, that was my idea I was going to try.

Gavzilla1000
Posted on 07-17-14 05:52 AM, in Help with Hijacking a Routine! Link | Quote | ID: 157457


Red Paragoomba
Level: 18

Posts: 54/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
I want to thank both of you guys for helping me out, but this reply is for RetroRain.

*cough* *cough*

So, the main reason why I wanted to use your Upgrade Patch was because of the MMC3. (I know, I made it sound bad in my original post) I know what MMC3 is, so that means more programming space for my ASM coding.

An issue that I had while doing this was finding the bank that the game was using. For reference, all of my tests and coding are going to be in Cutman's stage.

From what you said, each MMC3 bank is about 4000bytes. Using a programming calculator, I subtracted 0x400F by 0x10, which equals 3FFFbytes. So, I did the same with the addresses 0x800F and 0x4010, and still got the answer 3FFF. I see that you added a byte to the last address, (It goes from 400F to 4010, which makes sense) so I made a nice equation because I can!

(x + 1) + 3FFF

x = the ending address of the bank.

Using this convenient equation I made, I determined all 8 Banks.

;Bank 0 0x10 - 0x400F
;Bank 1 0x4010 - 0x800F
;Bank 2 0x8010 - 0xC00F
;Bank 3 0xC010 - 0x1000F
;Bank 4 0x10010 - 0x1400F
;Bank 5 0x14010 - 0x1800F
;Bank 6 0x18010 - 0x1C00F
;Bank 7 0x1C010 - 0x2000F

This didn't quite make sense to me because it didn't line up with the Hard Wired bank you gave in your reply. So... I looked up a wiki page talking about MMC3 itself. Including its Banks.

http://wiki.nesdev.com/w/index.php/MMC3#Banks

What then I came to realize is that this was originally a MMC1 ROM, so no wonder my "equation" and the Wiki Page itself didn't line up with the Hardwired bank you gave in the your reply. But still comment on if this is right or not. Its no use if I can't get the banks right.

After this, my next challenge was to figure out what Bank loaded when I played Cutman's level. So, using my non-existent genius, I decided to put a break at $FF00 using the debugger to see if I could see what the accumulator was so I could see what bank it was. But... that didn't work. And... there really wasn't anything on the internet that told me how I could figure it out. BUT! I used the code data logger and played through the stage. The debugger started at 14010! (Bank 6) After the RAM of course, so I got really excited! I thought that the bank was 6, so I went into the FCEUX Hex Editor, and tried to find empty space. I was looking for stuff highlighted in Yellow because that's programming, plus I can only assume that's what the CPU reads when in game.

I found an JMP routine that I hijacked, but I didn't have to use a Bank Swap, because there was about 5A empty bytes at the end of the bank. Literately right next to the JMP routine I wanted to use. I still had to use a JMP command to get to that empty space. I knew that I couldn't use the actually address that the Hex Editor said I was at, so I replaced the Bank's ending address, 1800F, with 400F. Then, I subtracted 5A from 400F to get my address. $3FA5. Did I do that the right way? Or was I completely off? I think I was completely off.

Anyway, then I started writing my ASM. Which is written below.

----
Start of ASM Code
----


JMP $3FAF <--- Jumps to the code under the RTS. The LDA $6A
RTS <--- This is activated last

LDA $6A <--- Megaman's Life Value
CMP #$1C <--- Compare of Megaman has Full Health
BNE originalcode <--- If not zero skip to the original code

==
This code is taken from the Megaman Disassembly you told me to get
==

LDA CapsuleObtained (#$40) <--- RAM address is $AD | In this instance I did a Large Capsule so its #$40
AND #$7F
STA MiscCounter1 <--- RAM address is $3C

originalcode: <--- I did some math to figure out the actual value, but forgot it, and I forgot to save the ASM file I was using during this three hour process!
(Original code from the JMP routine goes here.)
RTS

----
End of ASM Code
----

What this is supposed to do, is if Megaman's health is under 1C (Max) is was going to freeze the game like Megaman was picking up a capsule. ( P.S It was pretty dumb, because if it worked I wouldn't know because it was supposed to pause.... I'm pretty dumb)

So, I reset the game, and it didn't crash... yet. But the title screen showed up, and everything was all good until I got to those wall things in Cutman's stage.

BUT! That's a good thing! I know that there's something wrong with my code I need to fix, AND that my code is being read / executed by the CPU!

At this point I've been working on this for about three hours, and really needed a break. So, that's all I really did.

There's probably tons of stuff I did wrong here, SO PLEASE CORRECT MY MISTAKES! Don't worry about the ASM code too much, I want to work on that alone, but everything else you can yell at me for!

Also, does the RAM addresses listed in the disassembly document of Megaman still work with this Patch too? Or are the RAM addresses different? Sorry if this reply seems confusing and unorganized, I can only work for a few hours before getting a headache, and writing this for the past hour didn't help...

Sorry for the long reply.... again...

Gavzilla1000
Posted on 07-27-14 02:03 AM, in Creating a disassembly doc for Megaman 1 Link | Quote | ID: 157526


Red Paragoomba
Level: 18

Posts: 55/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
So today I've started a Disassembly Document in Google Docs. This Document will go through the steps of Reverse-engineering the enemy Beak from the original Megaman.

Here's the link;

http://goo.gl/7OPs4L

(Sorry for the shortened link, and I also apologize if using Google Docs was a bad idea too.)

This document contains pictures, gifs, (Hence the 56k warning) and humor. I tried to make this somewhat entertaining. Didn't want it to sound like some boring lecture like some docs feel like.

Please read through it, and make sure that the information written is accurate, and is easy to follow. Prier knowledge of ASM and Rom hacking are required.

I go into detail about certain things, but not others. Should I do that? I'm making the Doc for the soul purpose of educating new guys like me, but I'm not sure if I should go into 100% detail about everything.

Motivated by the last thread I made about RetroRain's MMC3 Upgrade patch for the original Megaman.

Link here;

http://acmlm.kafuka.org/board/thread.php?id=8003

Gavzilla1000
Posted on 07-27-14 09:23 PM, in Creating a disassembly doc for Megaman 1 Link | Quote | ID: 157534


Red Paragoomba
Level: 18

Posts: 56/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
I know... this is simply a more in depth look at enemy AI, and a step by step process of re-engineering it.

If you read the document, I even reference the disassembly, and use it throughout the doc.

Gavzilla1000
Posted on 07-30-15 07:40 PM, in Megaman 4: What's the deal the sprite banks? (rev. 2 of 07-30-15 07:41 PM) Link | Quote | ID: 160536


Red Paragoomba
Level: 18

Posts: 57/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
So, there's a thread called, "Mega Man 4 : Switching graphics banks fast," and in that thread I learned that Megaman 4 doesn't switch graphic and sprite banks as fast as Megaman 3 and 5 do. Well, problem is, I WANT to use Megaman 4 due to Matrix's Capcom Sprite Assembler, allowing me to add and delete frames from any animation.

So, here's my question; I want to change Megaman's sprite, but the bank his sprite is in (Bank 2 I believe) doesn't contain enough room. Is it possible to relocate Megaman's bank somewhere else for his intro, teleportation animation (that takes up the most room) at the start of a level, THEN swap back to the original bank with all of his animations? Matrix also posted a document about the inner working of Megaman 4, but I can't seem to find any Bank Swap routine I could hijack and take advantage of.

Any help would be appreciated!

Gavzilla1000
Posted on 08-04-15 11:25 PM, in The Mystery of ToadMan's Stage - An ASM Hacking Tutorial *COMPLETED* (rev. 3 of 08-05-15 09:24 PM) Link | Quote | ID: 160554


Red Paragoomba
Level: 18

Posts: 58/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
The Mystery of ToadMan's stage! It's not a mystery no more with the help of ASM. In this tutorial I show you the basics of ASM such as;

- Locating code
- Disassembling code
- Finding Empty Space in a ROM Bank
- Reverse engineering code
- Maybe more?...

Here's the link; https://docs.google.com/document/d/1mBj6xx7KFdENgU4Lj7pJMlbw0skKRNEnTj_aT7u3KCI/edit?usp=sharing

Experienced ROM Hackers may find this tutorial over simplified, to detailed, and boring. I wrote this tutorial for newcomers who needed a little "push" in the right direction. Good ASM Hacking doesn't come in just one tutorial. It takes time. Experience and Knowledge make a good ASM Hacker, and it took me a whole two years to figure that out. Finally, after years of research of trial and error, I managed to execute my own custom ASM code, and this document explains exactly how I did it.

Gavzilla1000
Posted on 08-11-15 12:05 AM, in The General Project Screenshot/Videos Thread... Link | Quote | ID: 160622


Red Paragoomba
Level: 18

Posts: 59/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
Hey all! Quick question, how do I program Parallax Scrolling? I want to add an effect similar of that in ChargeMan's stage with the moving train in the background in my Megaman 4 hack. I located the code of the effect in Megaman 5, and tried to copy it perfectly, but It doesn't work. The screen does indeed scroll to the speed that I choose, but it scrolls almost the entire screen instead of just the top of the screen, like I want.

I've read the NesDev article on PPU scrolling, and I understand the main registers, but that still doesn't help me.

Can someone give me a rundown of Parallax Scrolling?

Gavzilla1000
Posted on 02-01-19 02:10 AM, in Archived demos for Rockman 4 Minus Infinity? Link | Quote | ID: 166882


Red Paragoomba
Level: 18

Posts: 60/60
EXP: 29387
Next: 510

Since: 05-22-13

Last post: 1918 days
Last view: 1842 days
Hey guys! Been a while since I posted on this board, but I have a question:

Has anyone archived all the demos for Rockman 4 Minus Infinity? I would like to create a time line of sorts for the development of this game that I might propose be added to the Rockman 4 Minus Infinity google site. I think that Rockman 4 MI is an important aspect of the Megaman Hacking community and would like to preserve its history.

The Wayback machine only has recordings of Puresabe's website from 2014 onward, which captures only the 0.02 release of MI, but I remember demos being released as early as 2009, if I'm not mistaken.

If anyone is able to assist in this effort, that would be appreciative!

Or, if there's already something of the like, then I would love to be directed towards it.
Pages: 1 2 3 4


Main - Posts by Gavzilla1000

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

Page rendered in 0.267 seconds. (329KB of memory used)
MySQL - queries: 135, rows: 167/167, time: 0.256 seconds.