(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-05-24 10:40 AM
0 users currently in ROM Hacking.
Acmlm's Board - I3 Archive - ROM Hacking - Help in MegaMan (Mappings and other things) New poll | |
Add to favorites | Next newer thread | Next older thread
User Post
ShadowTails

Grizzo








Since: 11-20-05
From: C:\My Documents\ShadowTails\My House\My Room

Last post: 6307 days
Last view: 6285 days
Posted on 09-09-06 06:22 PM Link | Quote
Ok, I am doing a hack for MegaMan, and I need to know if I can do anything at all to edit the mappings for MegaMan, in my hack my character moves their head in the form that would be equivelant to Sonic in Sonic the Hedghog 2, and I want to use the face from the "shooting while on a ladder" face because the view that the character is running in the frame is completly facing left/right.

So, is this possible? and can I get any more info on MegaMan as far as being able to delete unwanted objects in levels, and other mappings for like... say the Robot Masters... I'm thinking I'll edit them, but I really want to program my own in place.

But I'm also having second thoughts because I think maybe MegaMan 2 would be a better rom to start in, because it has more graphical features that'd help out the overall look of my hack...

Then again I guess that's for me to decide. I have come up with many unique Robot Masters, but I have no clue how to do ASM, but I have been trying to learn. Also now that I think about it, could I also program things to be like they are in MegaMan 2 and beyond as far as a portrait for the Robot Masters? and maybe adding more in?... I'm really trying to think of what I can do for this hack, and I want it to be good.
NetSplit

Paratroopa


 





Since: 11-18-05

Last post: 6447 days
Last view: 6447 days
Posted on 09-09-06 08:06 PM Link | Quote
It sounds like you want to change the sprite frame data, which isn't the easiest thing in the world to work with. I've figured out most of MM1 and even programmed new enemies and reprogrammed a lot of stuff already present in the game to make it better, but I cringe whenever I have to change the frame data because it's so complex and compact.

Changing the face tile in a single frame, however, would not be a difficult thing to do. $18816 (headered) is the address of the sprite frame data for non-enemies, which includes Mega Man and his running frames. The format is simple: each frame starts with a byte saying how many tiles are in the frame, then a byte saying which sprite frame pattern data to use, and then sets of 2 bytes per tile in the frame. The number of sets depends, obviously, on the number of tiles. Each set is 2 bytes, which the first byte saying what tile to use and the second what attributes to use (ie which of the 4 sprite palettes, how to mirror the tile, and what background priority to have. You probably will only be concerned with values 00-03, which define which palette to use, since the lowest 2 bits are for palette). You'll want to locate the frame that you want to change and change Mega Man's face in that frame from tile ID 00 (the set is always 0001 because 00 is the ID and 01 is the attribute used) to 7D, since 7D is the ID of the sideways face used on the ladder. You will not want to concern yourself with sprite frame pattern data, since pattern data is a bitch and changing it will lead you through table after table and make you want to delete your ROM and never touch the game again. Trust me.

I've not worked with boss AI before, but it looks to be very, very complex. I intend to work on it eventually, but right now I'm a little worried to touch it because the routines are all so long and doing a lot of stuff I don't yet understand (I recall the one time I tried to mess with AI by making Elec Man respond to controller 2 input and cringe at the terrifying and inexplicable results). Enemy AI isn't so bad; for the most part, it's pretty straightforward and not doing too much crazy stuff (though that's not to say that messing with it is easy!). Bosses are much more confusing. Since you have no clue how to do ASm, steer clear of changing AI.

I assume that all 'mapping' questions are questions about frame data? Is there anything else in specific that you wish to know? You should be able to figure out the frame data stuff I already gave you pretty easily, but anything else would seriously be horrible to mess with. MM1 is a small ROM; they had to conserve space at times by doing things that make me want to track down the programmers and yell at them. That's not to say there's no unused space in the game, and at times they did stuff that takes up more space than it should, but overall, it's pretty compact. Messing with the frame pattern data (which is where each tile in a frame is displayed in relation to a sprite's coordinates) is really a nightmare.

As for if Mega Man 2 is a better game to start with, I think MM1 is easier to deal with because it's a smaller ROM and isn't as complex. Each game has its ups and downs, and MM2 may be easier for you to deal with because it won't be crashing for unknown reasons depending on what you do, etc etc. For those with ASM knowledge, I think MM1 is a great game to hack. I don't think I can really recommend one game over the other for you, though.

And regarding doing the portraits on the boss select screen in MM1, you won't really be able to do that without overhauling the entire boss select screen design (I've done a massive overhaul of it, but not to that extent). You'd need to find the graphic space for the portraits, probably set it up to display both background and sprites, make sure that the flashing background stuff used for the text and flashing border for the currently highlighted boss doesn't mess up the portraits, and tell it how to assemble the portraits. The beauty of how the thing is set up by default is that all of the sprite stuff is done easily because they're all normal sprite data that is being stuck there, for the most part. There are 2 special-case windows, used for Wily and Guts so that there aren't too many sprites onscreen. Doing a special case for each boss, though? I don't think that's easily doable at all. I recommend you not even try it unless you become very fluent in assembly and knowledgeable in the workings of Mega Man 1.

Oh, and what do you mean by deleting 'unwanted objects' in levels? I am unclear on your terminology.

Anyway, I hope that was helpful. Got any other questions? I'd be happy to answer them.
ShadowTails

Grizzo








Since: 11-20-05
From: C:\My Documents\ShadowTails\My House\My Room

Last post: 6307 days
Last view: 6285 days
Posted on 09-09-06 10:05 PM Link | Quote
I did what you recommended and all it seemed to do was make the first step frame use an odd thing on it, instead of the main face, for when you take a small step, either I picked the wrong frame or something >.>

I kind of figured bosses would be very hard to make or work with, that's the way it is in every game isn't it? =\ I remember a person called LOst trying to program bosses, he said it was a pain in the arse for Sonic games especially, but he did some pretty cool stuff, like the egg drill from Sonic 2 in Sonic 3 (but it didn't have any hit collision) and the DEZ boss from Sonic 2 in Sonic 1.

As for the other frames and things, what I meant was, how can I change how, and where the mappings load on the sprites, for example in Sonic 2, Tails' tails and body are seperate, and they had to tell the game where to load the frames for Tails' Tail's, much like the game has to tell where to load MegaMans face.

as for the "unwanted objects" I meant could I go through hex and get rid of objects that I don't want to use at the begging of levels. Now that I think about it, is there any way to change where MegaMan loads onto a level?

the only thing I've ever read on NES ASM was how it works, but I never got into actually learning how to program with it, but I imagine programing a boss takes a lot of agonizing work and dedication, but Rome wasn't built in a day either =\ then again it takes quite some time to build ROMs...

I guess I could just edit the Robot Masters sprites for the time being, I have some that actually fit in where the originals powers fit in with their attacks. I know some impressive things have been done with data in games that originally looked bland, mostly title screens, (I'd actually like to know if you have any data on how I could make a picture on it, like in RockMan, I know the data is still in their, so would it be possible to load it instead of the bland US title screen?)

I guess I could atleast learn ASM and toy around with things, but I wouldn't know what to do first in which game... XD
Zepper

Paragoomba








Since: 09-04-06
From: Brazil

Last post: 6286 days
Last view: 6285 days
Posted on 09-10-06 09:03 AM Link | Quote
Hmm... Think about writting your own game. What's the difference between hacking drastically a certain game and creating your own from scratch? The efforts to hack must be something to improve/modify a few aspects of the game, and NOT the entire game engine. Rockman engine does NOT fit a possible Sonic engine. Rockman shoots, climb ladders... Sonic jumps and rolls like crazy, heh... very different context.

Anyway, Rockman engine isn't the best one, as Netsplit can confirm this. In other words, it's buggy. Its fixing is possible, but requires attention. Well, that's it. ;;..
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6287 days
Last view: 6287 days
Posted on 09-10-06 04:51 PM Link | Quote
Originally posted by Zepper

What's the difference between hacking drastically a certain game and creating your own from scratch?



hacking drastically requires knowing the game in question. you also have most of your code already written for you, so finding space is the biggest issue. starting from scratch takes knowing how the underlying hardware works and you are only limited by the hardware. neither is an easy thing to do.


(edited by never-obsolete on 09-10-06 03:52 PM)
Zepper

Paragoomba








Since: 09-04-06
From: Brazil

Last post: 6286 days
Last view: 6285 days
Posted on 09-10-06 11:14 PM Link | Quote
Indeed. I don't think that a Rockman game would fit a Sonic hack, or even to throw cold water... ;;..
ShadowTails

Grizzo








Since: 11-20-05
From: C:\My Documents\ShadowTails\My House\My Room

Last post: 6307 days
Last view: 6285 days
Posted on 09-11-06 04:23 PM Link | Quote
Originally posted by Zepper
Indeed. I don't think that a Rockman game would fit a Sonic hack, or even to throw cold water... ;;..

Actually, I'm not putting Sonic in MegaMan... I'm putting a brand new character in, but the best way I could describe the way she walks is how Sonic turns his head when he walks, and I wanted her to do that, Sonic is in no way or form in this hack.

Originally posted by ShadowTails
in my hack my character moves their head in the form that would be equivelant to Sonic in Sonic the Hedghog 2

Edit2: This is my character, I want to call the hack "MegaWoman" but that's not the name of the character... I want to name her something, but I'm not sure what...
and this would be the face problem being fixed, but I want it to look like what I have on the left, I was wondering if that would be possible by changing where the face loads... any idea? (by the way it was 7C not 7D and I had the wrong frame before.)
Edit3: I got the right picture up for the 2nd edit 2nd picture...


(edited by ShadowTails on 09-11-06 06:31 PM)
(edited by ShadowTails on 09-11-06 06:50 PM)
never-obsolete

Paragoomba








Since: 05-14-06
From: AZ

Last post: 6287 days
Last view: 6287 days
Posted on 09-11-06 09:24 PM Link | Quote
first figure out which page sprite dma is stored in. it'll most likely be somewhere in the $0000-$07FF range. place a break point where $4014 (sprite dma register) is written to and the value written is the page number.

next you need to figure out which sprite (or sprites) on the dma page is for the face. once you do that, trace in the debugger where that sprite is written to and in the routine that makes the write, edit it to get the face to line up. thats about as much detail i can offer because each game controls sprites differently and im not familiar with this one.
kuja killer

Rope


 





Since: 11-17-05
From: Lake Havasu City, AZ

Last post: 6330 days
Last view: 6285 days
Posted on 09-11-06 09:40 PM Link | Quote
Originally posted by never-obsolete
first figure out which page sprite dma is stored in. it'll most likely be somewhere in the $0000-$07FF range. place a break point where $4014 (sprite dma register) is written to and the value written is the page number.



200-2FF for MM1.
infidelity

Paragoomba








Since: 11-19-05

Last post: 6286 days
Last view: 6285 days
Posted on 09-12-06 12:37 PM Link | Quote
This sounds promising
Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - ROM Hacking - Help in MegaMan (Mappings and other things) |


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.018 seconds; used 404.91 kB (max 500.83 kB)