| |||
Views: 88,554,197 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 05-07-24 07:49 AM |
|
Guest: Register | Login |
Main - Posts by infidelity |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 163/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Posted by Rocketech Productions I was considering doing a hefty YouTube tutorial on how to hack Megaman 4, before everything went haywire in my personal life. I'm pretty happy with where I am ASM wise, but my skills are vastly specific to one game, not for the entire NES. What I wanted to show to people, was how to create sprites from scratch, physical and asm aspects, and also how to make them move and act in every possible way. Other hacking aspects I would discuss/explain/show, were... Rom Expansion IRQ movement Bank Switching How To Read Pointers Understanding How To JSR & JMP I would love to have the knowledge kuja posseses, especially in the area of how he was able to modify my rom from CHR-RAM to ROM. And how he was able to make it so all sprites do not require (left facing & right facing) XY positions. Megaman 5 was the first game to incorporate some sort of math engine, where you only needed one direction of XY positions for a sprite. When the sprite would turn into another direction, the rom would initiate the math to properly switch the tiles. Kuja was able to hack that engine into my rom, which gave me a ridiculous amount of space for much freedom! |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 164/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
oh and mickevincent, amazing tile work in those screenshots! I'm looking for hackers here in acmlm that would be willing to design levels for Ultra 2. Just levels, no enemy placements or anything like that, just level creation. If your ever interested, let me know. Again, very nice screenshots. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 165/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Haz, would you happen to have any screenshots of work you've done? I'm interested to see something from you. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 166/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
it's not just that guy, I have major personal issues that have derailed this. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 167/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
It's been awhile since I've been here. I'm working on a new Megaman project called, Megaman Melee.
It's a 2 player game where players can choose the following... Megaman, Protoman, ALL Robot Masters from Megaman 1-6, Even some versions of Dr.Wily. I've done some tests where I was able to alter a metools assembly code, to make it so I could make him shoot. I've been tinkering with the Megaman 5 rom, and I've figured out how to 're-enable' the 2nd contoller. Also in this process, I've found out that Megaman 5 has a 2nd contoller Debug Feature, which I'll share with everyone, a link will be posted at the end of this post. As of right now, there is no in-game footage or screenshots. I'm currently working on the fighter select screen, adding all the Mugshots, Palettes, Mughshot Sprites, etc, etc. As for levels. The levels will be 1 screen only, no scrolls, no pits. Each fighter will have they're original level as a background. I will also be adding additional features like backround enemies that can interfere with the match. One in particular I've been thinking of are the lasers from Quickman's level Various levels will contain CHR swapping, IRQ scrolls, 'want to fight Gyroman on his elevators?' I'm not the internet that much anymore due to personal issues I had earlier this year. In this post I'll include a video showing a very bare fighter select screen, showing off the usage of 2 controllers, the vast amounts of mugshots installed, and my coding of Megaman 8's stage select song. That's all for now. When I have something more complete where people can try this out, I'll make a new thread in the ROM Hacking section. Take Care everyone. -infidelity Megaman Melee Teaser NON-GAMEPLAY Megaman 5 Official Debug Feautre 2nd Controller Notes http://acmlm.kafuka.org/uploader/get.php?id=3313 |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 168/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
You will also have to adjust all of mm2's bosses x/y tile placememts, because simply placing his gfx over the bosses gfx, they wont be aligned properly. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 169/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Matrixz. Would you ever consider adding and option to megafle, where users can enable disable the 2nd controller in megaman 5? |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 170/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Posted by infidelity your going to run into issues here. your going to have to make room for the doc robot sprites, your also going to have make rom in hex for the new sizes. this also means you will have to manualy edit the hexvalues of all the bosses gfx. this is alot of work. your also going to have to edit the pointer values that point to where the bosses gfx are, cause obviously MM2's bosses range in different sizes. sorry to overwhelm you, but your looking at alot of work. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 171/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
I posted about this back in the Megaman General Sticky. I wanted to post here when I had a little more to show off, and to those that may have no vistited that sticky.
I've been taking a very long break from Ultra 2. I don't know when I'll pick it up back again. I havent rom hacked for nearly 6 months. I wanted to get back into rom hacking, but Ultra 2 was too much to bear at the time. I don't want to get into specifics on why and all that stuff, but to all of you that had a part in Ultra 2, and have waited very patiently, I want to thank you for everything. I will get back to Ultra 2, I just dont know when. Anyways, my new 'side' project is entitled, 'Megaman Melee' It's a 2 player game where you can choose either Megaman, Protoman, ALL robot masters from Megaman 1-6, Dr.Wily, Metool, Sniper Joe, and, Doc Robot. Off the top of my head, the game will consist of over 50 characters to choose from. I'm also considering adding in direction input projectiles to initiate other moves, ie: Street Fighter 2 or Mortal Kombat 1-2. For instance, Diveman, want him to dive across the screen, Tap Back Back Forward. Drillman, want him to dive underground and reappear through the ground, tap Down, Up. The Doc Robot I'm excited about. I envinison him as a Shang Tsung style fighter. So when you pick Doc Robot, you will have the ability to tap in different fighters abilities. I have alot of work ahead of me. But the exciting this is, all of this is possible, and I'm able to do the coding on my own. A big reason for this project, was to test my asm skills I've learned from kuja & Matrixz, and create something on my own with zero assistance. So far the results have been excellent. I will post 3 videos showing various things. I plan to release an ALPHA once I have all of Megaman 1's bosses coded in, and users can choose any one of them to fight against whoever. You will also notice in the vids, that I have made it possible for sprites to use the bosses health meter, to show they're current health status. Obviously this so Player 2 can see they're health. Title Screen, Fighter Selection Screen, Showing Off CHR Swapping, And Massive Sprite Usage Player Movement, Showing Off Backwards Walking, Vital For Directional Based Movements, Like Street Fighter 2 Or Mortal Kombat 1-2 Player 2 Death Test, Showing Megaman's Explosion ASM Working On Player 2 I hope you enjoy the vids. That's all I have for now. Take Care everybody. -infidelity |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 172/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Wah543 - theres a possibility i might do so down the road. Thanatos-Zero - Thanks for the links. I should be alright without sprite sheets, since im ripping the exact sprites from the roms. The problem i will run into, are the bosses that dont run, thats where ill run into problems. Jeffrey - I got your pms, and apologize for getting back to you. I lost alot of my notes and files dealing with Ultra 2, but when im ready to pick that rom up again, id love to get the spritesheet of Blazeman again. As for the Rockman Killers, are you talking about Enker, Punk, etc? If so, im not. In Ultra 2, ive always wanted to do so. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 173/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
8/18/10
infidelity This will be as far as I go in helping/explaining sprite usage in Megaman 2. $28010 - $2BFEF Sprite Bank (3FE0 Bytes) $28010 - $2820F GFX Low Byte Pointer Table (200 Bytes) $28210 - $2840F GFX High Byte pointer table (200 Bytes) $28410 - $2850F XY Low Byte Pointer Table (100 Bytes) $28510 - $2860F XY High Byte Pointer Table (100 Bytes) $3F910 - $3FA0F Sprite GFX Animation Speed/Order Low Byte Table (100 Bytes) $3FA10 - $3FB0F Sprite GFX Animation Speed/Order High Byte Table (100 Bytes) Extreme Spoonfed Explaination --------------------------------------- Following example is done using FCEUX 2.1.2, if you have no idea on how to use it, I can't help you. Have Megaman alone on the screen standing still. Have 'Code Data Logger' running. Open the 'Hex Editor' and view the hex in 'Rom File' mode. Scroll to $3FB10, you will see the following. 0A 08 04 04 04 04 04 04 04 04 04 04 05 What you see here, is Megaman's Standstill Sprite GFX Animation Speed/Order Every Sprite GFX in Megaman 2, starts with 2 bytes in this table, in the case for Megaman standing still.... 0A = How many frames/gfx, whatever you want to call it. 00 to 0A (00 counts) 08 = How fast to cycle through frames/gfx After that, comes the actual GFX Animations to display.... 04 = Megaman with eyes open 05 = Megaman with eyes closed How are these numbers (04 and 05) loading the gfx? well.... 04 is loading $28014 & $28214 (3C,87) which is $2874C, Megaman with eyes open 05 is loading $28015 & $28215 (52,87) which is $28762, Megaman with eyes closed Lets take a look at Megaman with eyes open GFX (0A00) 1A00 2900 2A00 2B00 0900 0A00 0B00 1900 1B00 0001 There is a reason why I split this up into 2 bytes a piece. (0A00) 1st byte 0A is, how many sprite tiles to load (00-09 or 01-0A however you want to read it) 2nd byte 00 is, XY Order. How is the number (00) loading the xy? well.... 00 is loading $28410 & $27510 (B4,AA) which is $2AAC6, Megaman with eyes open XY (For some reason in Megaman 2, the pointer is 2 bytes lower than the actual address, no idea why, that's just the case for ONLY xy values being loaded, so be careful) FCFC 04F4 04FC 0404 F4F4 F4FC F404 FCF4 FC04 FAFB (00) (01) (02) (03) (04) (05) (06) (07) (08) (09) or, however you want to read it FCFC 04F4 04FC 0404 F4F4 F4FC F404 FCF4 FC04 FAFB (01) (02) (03) (04) (05) (06) (07) (08) (09) (0A) Lets look at FCFC 1st byte = Vertical Position (Y) 2nd byte = Horizontal Position (X) Now lets go back to, 1A00 2900 2A00 2B00 0900 0A00 0B00 1900 1B00 0001 These numbers represent the Sprite Tiles, and Palettes Open up the PPU Viewer The left window, holds all sprite tiles Lets look at, 1A00 1A = Sprite Tile 1A (take your mouse cursor, and drag it over the left PPU window, below the window you will see 'Tile:' Drag the cursor over the tiles till you see 1A appear, this is what Sprite Tile 1A is) 00 = Load 1st Sprite Palette. (palettes are loaded in this order, 00,01,02,03) The most part, this is the typical in-game usage 00 = Megaman 01 = Face of Megaman and other faces for sprites 02 = Enemy/Boss 03 = Enemy/Boss You will notice bosses using 01, that's where they get the color for they're faces as well, not just Megaman So lets recap on, 0A00 1A00 2900 2A00 2B00 0900 0A00 0B00 1900 1B00 0001 This is how 0A works 0A00 1A00 2900 2A00 2B00 0900 0A00 0B00 1900 1B00 0001 (01) (02) (03) (04) (05) (06) (07) (08) (09) (0A) or if you read it differently... 0A00 1A00 2900 2A00 2B00 0900 0A00 0B00 1900 1B00 0001 (00) (01) (02) (03) (04) (05) (06) (07) (08) (09) That's the end of my spoonfed explination. Now, from what I see, $2BB46 - $2BFEF contains ALOT of free space for sprite modifications/additions. (4AA bytes worth) And, from what I see as well, $3FF97 - $3FFEF contains some free space for speed gfx & speed order modifications/additions Good Luck -infidelity |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 174/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 175/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Huff, you mention me in this thread, but i have no idea what your asking of me. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 176/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
each level has one of those TSA's hard coded. I forget how I did that, 'talking 4 to 5 years since I did it'
I'll see if I can figure it out again |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 177/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Curious. With a ROM that only has $0010-$8000 PRG-ROM (8000-FFFF) and has no bankswap routine, can you create a routine for it? Like if you expand the PRG and want to access the new banks. Or, do you need to change the mapper for that? Thank You. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 178/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Yes im talking about the NES. Ive expanded other roms before, and i was tinkering with a mapper 0 rom, and started getting curious. Thank you for the info. :-) |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 179/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
I understand Push and Pull Accumulator, and how it pertains to the stack. Why do we need it if you have empty unused registers in a rom? Why bother transfering? Why are those sometimes needed to make certain code work. And where does 6C0000go, to $0000? |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 180/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Your 6C example makes perfect sense. But, are there 6C's that have the last byte either 01-FF or does it always have to be a zero, for it to read 2 registers to do the jmp properly? And i find it strange too, why not just perform a regular 4C jmp instead. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 181/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Cant you do the exact same thing with 4Cxxxx as it goes with jumping to AI and IRQ code and what not. Does 6Cxxxx really need to be used to do specific jumps, cause i just keep thinking 4C can do it too. 6C loads registers for adrss, 4C you enter manual. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 182/968 EXP: 2370134 Next: 91717 Since: 05-24-07 Last post: 969 days Last view: 825 days |
Main - Posts by infidelity |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 133, rows: 165/165, time: 4.051 seconds. |