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

Main - Posts by NetSplit

Pages: 1 2 3 4 5 6 7 8 9

NetSplit
Posted on 07-25-08 12:50 AM, in Dragon Warrior 1 Link | Quote | ID: 87951


Level: 32

Posts: 101/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
Having people bother to read your posts on a forum is a privilege, not a right. Knowing that something simple that you're doing when typing up a post makes it harder to read for others and doing nothing about it is stupid. No one has to read the stuff you post. Is it really that hard to put a space after punctuation? What the hell do you do when typing up any sort of document?

If you really want someone to make an editor for these games, find and post as much data for them as you can. Stats, level data, sprite data, the works. If you don't want to learn how to program and want someone else to do the work for you, then make it as easy for them as you can and maybe they will. Even then, it's not guaranteed because you're asking other people to do a significant amount of work because you won't learn how to do it yourself.

NetSplit
Posted on 08-10-08 08:44 PM, in Megaman 2 Sound Engine Document Link | Quote | ID: 88773


Level: 32

Posts: 102/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
Further reading: Mega Man 2 sound engine commented disassembly.

It apparently differs from the Mega Man 1 sound engine by only 12 bytes of optimization.

[And on a side note, nice to see data threads popping up. Good stuff]

NetSplit
Posted on 08-16-08 10:55 PM, in What Does BNE Do? Link | Quote | ID: 89050


Level: 32

Posts: 103/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
Posted by GameGenie81
Please accept my apologies for writing this, but I would like to what exactly the BNE instruction (read: branch if zero flag clear) does. OK?

If the byte following the BNE instruction byte ($D0) is $00, would that mean to branch to whatever flag has its default instruction set at anything but $00 for now?

~Ben

The instruction's been pretty well explained by now, but I've gotta ask...what does your erroneous explanation of BNE actually mean? I'm pretty fluent in 6502, but I can't make sense of it. If it's indicative of your understanding of 6502, then I recommend you read some documents on the basics of assembly so that you can understand it better. There are also documents that walk you through simple assembly hacks or general uses of a debugger. Additionally, I strongly recommend this document. I use it whenever I program in machine code, since I can't remember all 56 opcodes' hex values or every version of various operations.

NetSplit
Posted on 08-16-08 11:20 PM, in The NEW General Project Screenshot / Video Thread EX Omega Supreme++ Link | Quote | ID: 89053


Level: 32

Posts: 104/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
My opinion on ripping out-of-place graphics and levels from other games is already quite clear, so I needn't restate it. At the same time, though, if really must do that, try to be more original by not ripping stages that other hacks already have (such as temples from Zelda 2). Just...ugh. If you want to make a hack with ripped stages, make a hack dedicated to it. It doesn't fit at all with the unstated story or even style of this hack. This was a major irritation for me with Mega Man Ultra: if I recall correctly, it's telling the story between the classic and X series, but Mega Man goes to the mushroom kingdom. What the hell? Totally ruins a hack for me. If you want a hack that does nostalgia, focus on nostalgia, and otherwise don't. I think you'll find the overall product more cohesive and enjoyable.

As for reloading, what's the penalty? Is there a delay while reloading? Are there limited ammunition reserves? If neither, I don't see the point of the feature.

Looking forward to seeing more.

NetSplit
Posted on 08-17-08 02:34 AM, in Mega Man: The Return of Wily RELEASED Link | Quote | ID: 89058


Level: 32

Posts: 105/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
I'm gonna give my honest opinion and say I don't like this hack. While I do think an easytype version would improve it, I don't feel that that would address many of its problems.

I chose Guts Man's stage first, as that's the level I usually play first. The boss select screen was already a little disappointing, since the music freaks out a little when the score roulette is going. What's the deal with that?

The stage started out with a screen that I found a little difficult at first, but it's not unfair, per se. What I found a few screens later is. Your enemy placement is often such that whether you get hit is not up to skill, but rather the frame counter (ie randomness). There are times when you put me up against enemies I can typically kill and dodge with ease, but the level design makes it impossible to dodge them and I can't kill them before they hit me because they now take 3 hits instead of 1. That's bad design. The brick wall that is part solid and part air early in Guts' stage both looks bad and feels bad, as you can't tell what's air and what's not. The platform outlines do much to help, but they're not enough. If Mega Man had platforms that were like the top of ladders but didn't allow you to climb, that would work fine, but it doesn't. You need to work within the limitations of your game, and this certainly doesn't fit with this game's limitations.

Your use of repeated screens is pretty haphazard. I don't know if Rock and Roll allows you to change that, but visine certainly does. If you're going to repeat screens (I actually chose to avoid repeating screens throughout most of my MM1 hack, since I feel that a well-designed stage doesn't benefit from reused screens in most cases). Also, watch your jumps. Jumping from a hole in the wall that's 2 blocks high is bad design because MM is too damn tall. Additionally, 1-block wide holes in the floor should be avoided because Mega Man is exactly 1 block wide, so fitting into those holes can be hard. Furthermore, the game is inconsistent about that; sometimes running over those holes makes you fall into them, and other times you run right over the hole.

You have a lot of enemies in Guts Man's stage that throw their hammers off the top of the screen. If they're not able to attack Mega Man, why the hell are they there? They're just cannon fodder. It's worth it to avoid having much happen at the top of the screen, since projectiles and items fly off the top and die (although sometimes it's worth it to have things happen up there to satisfy good level design). On the subject of enemies, I should point out that your enemy ordering is wrong all over the place. If an enemy appears before another one in the game data, it should also appear to the left of them in the level. Otherwise, enemy ordering is wrong and you'll have enemies popping into existence in the middle of the screen, which is usually undesirable (it's an advanced technique that can achieve interesting and useful effects in special circumstances). I saw lots of misordered enemies in your hack. Visine has an automatic enemy-ordering feature you may want to check out.

And what's with the invincible enemies? If I can shoot an enemy and get a visual or audial response that the enemy is taking damage, they should take damage. Cut Man's level is filled with invincible wall guns, and they suck. I hate them. Those combined with the maze made me abandon that level. I was already pretty pissed about the beginning of that stage; if you don't have Guts' or Elec's weapons, you have to reset the game, which is never, ever an acceptable thing to do. Players should never be forced to abandon progress due to bad design, period.

I tried Ice Man's level and it didn't look like it was beatable. When I finally realized what I had to do, I literally said "That's fucked up." Bad, bad design.

The last straw was Bomb Man. I got to him and tried to shoot him and found that I couldn't hurt him. Great. That's not fun at all. I went through a long, difficult stage for nothing? Not cool.

I guess the main piece of advice I can give is one that every hacker should follow when making a hack: look at every feature in your hack and ask yourself "Would this ever be in a professional game?" If the answer is no, there's usually a good reason for that. Take it to heart and fix the problem.

I hope that wasn't overly negative. I appreciate seeing more hacks and especially more Mega Man hacks, but this one could certainly use some work. I look forward to seeing what else you'll be able to do in the future, especially with what you've learned from this hack.

NetSplit
Posted on 08-17-08 04:08 AM, in Mega Man: The Return of Wily RELEASED Link | Quote | ID: 89065


Level: 32

Posts: 106/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
Hey, no problems. Don't worry about it. That's the way fan made games and such go. It's always a learning experience; I definitely think this hack does more right than my early hacks! Criticism is a really great tool, but too many people abuse it; again, it's a tool, useful for learning and improvement. I hope you had fun while making the hack, since that's really what counts. Releasing a hack and having others enjoy it is just icing on the cake; what really matters is that you had fun making it. I hope my criticism didn't come across as a put down or anything, and I made sure to point out things in a lot of detail so you can learn and improve. That, in my opinion, is the best part about a public release.

Keep it up, man. I really love seeing this stuff and am confident your work will get better and better. Again, I'm looking forward to seeing more from you.

NetSplit
Posted on 08-17-08 07:44 AM, in The NEW General Project Screenshot / Video Thread EX Omega Supreme++ Link | Quote | ID: 89068


Level: 32

Posts: 107/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
Heh, your response is pretty spot on; hacking is all about enjoying what you're doing, with everything else being totally secondary. Criticism can be helpful and yield a better end product, not be what you're looking for, or be just totally wrong! It's up to you whether to listen to it or not.

Regarding ammo, I just think that that will result in people pressing up all the time while shooting. The end result is mindless button pressing with no new strategy or anything of that sort, essentially being a pointless feature; cool, maybe, but it adds no depth and may just irritate people. If reloading kept you from being able to shoot for a short period of time, boss fights or action-packed parts of stages would certainly get a lot more interesting and strategic. Having limited ammo probably wouldn't work well because you could run out during a boss fight and then have no way to deal damage (unless you could kill the boss with that small attack you mentioned as point #2). There are some really interesting possibilities, if you're willing to take the hack a little further.

Of course, do whatever you find fun.

NetSplit
Posted on 08-20-08 01:58 AM, in MM1: Spawn life energy capsule after beating rematch boss (rev. 2 of 08-20-08 02:18 AM) Link | Quote | ID: 89177


Level: 32

Posts: 108/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
This is one of the assembly hacks I've done for my MM1 hacks a few years back, albeit a more complex version. However, I'm confused by your implementation, and see some syntax problems that could cause major issues. For reference, here's the original routine, with some more comments thrown in by yours truly:

0001CAAA: A5 31     lda CurrentStage
0001CAAC: C9 07 cmp #$07
0001CAAE: F0 1E beq + ; $CACE
0001CAB0: A9 01 lda #$01
0001CAB2: 85 2F sta RefObjectNumber
0001CAB4: A9 43 lda #$43 ;Spawn a teleport if it wasn't Wily2 (Teleporter ID)
0001CAB6: A2 1F ldx #$1F
0001CAB8: 20 7B F6 jsr InitActor

0001CABB: A9 08 lda #$08 ;(Teleporter x coordinate)
0001CABD: 9D 80 04 sta ObjectPosX,x

0001CAC0: A8 tay
0001CAC1: 20 33 F5 jsr InitObjectDefaultSpeed
0001CAC4: A9 B0 lda #$B0 ;(Teleporter y coordinate)
0001CAC6: 9D 00 06 sta ObjectPosY,x

; Make object invisible and collidable with Megaman
0001CAC9: A9 22 lda #$22 ;(Teleporter flags)
0001CACB: 9D 20 04 sta ObjectFlags,x
+
0001CACE: A9 00 lda #$00
0001CAD0: 85 3E sta BossCurrentStrategy

0001CAD2: A9 F8 lda #$F8 ; Disable boss
0001CAD4: 8D 01 06 sta ObjectPosY+1

0001CAD7: A2 FF ldx #$FF
0001CAD9: 9A txs
0001CADA: 4C 5E 91 jmp $915E


I don't know if Bisqwit has changed the address format to the better format your addresses are in since I last grabbed the disassembly, but the addresses here are in ROM format without a header. I'll use the addresses the code would use.

So, if you're willing to sacrifice the teleporter, then I don't see why you can't just NOP out the first 6 bytes ($CAAA-CAAF) and modify $CAB5 to #$40, $CABC to #$80, $CAC5 to #$28, and $CACA to #$13. The way you did it is confusing; you shouldn't have to be using freespace. Furthermore, just a word of warning: be careful using space in other banks. You have to know for a fact that the bank you're using is always loaded. It may be in this case; I don't know. Just keep in mind that in many cases the game can have a different bank loaded if it wants to, which would cause the JSR you have there would probably cause a crash.

Also, if you're posing modified assembly, please change all of the comments so that they're not mis-commenting (see line $CAD3). Your labels are a mess, too; for example, at $CAD5, you have a 9D opcode (STA Absolute,X) that's labeled as a STA Absolute, and the address is labeled as ObjectPosY+1, but it should be ObjectPosX,x. Your labels are all moved to the side after the address, so any assembler trying to reassemble this would choke everywhere because it would replace the labels with addresses and then have multiple addresses per instruction. You also have a JSR at the end that's way off; + is useful for branching forward or backward without declaring labels (I use an assembler that doesn't have it. Believe me, it's a great feature I wish I had). It's used for branches, while you used a JSR here. Additionally, ++ means to branch to ++, not to +\n+. Remove the ++ and just keep $BF76 and that JSR will assemble properly...oh, and make sure your comments start with a semicolon. You could also say JSR Freespace and then put a "Freespace:" label at $BF76, and that'd assemble fine, too.

There's a definite flaw here, though. Your routine does a JSR to the code at Freespace, but does a JMP out of it. The JSR puts 2 bytes onto the stack (a return address), and if the game tries to get that data back with a PLA or something to that effect, it'll get the address instead of data and will possibly crash (and almost certainly do something unsavory when it gets to the next RTS). The JSR at $CADA should be a JMP so you don't put anything on the stack, and then you also won't need the RTS at $BF83, since there's an impassable JMP right before it. Frankly, unless there's an RTS at $CADD, I'm a bit surprised this routine seems to function properly.

Anyway, sorry for the long post. I hope you learned a bit. I think it's worth being a hardass when it comes to programming code for multiple reasons. First is that it's important to practice good programming habits, which includes minding the stack. Stack abuse is something that almost always leads to problems and crashing. Another is that you have assembly code here, but it can't be assembled. There'd be errors all over the place. Typically, if an assembler can't read it, then it will be difficult for humans to read it, too, since there's some confusing element in there. I realize you were probably using this for reference and were inputting machine code directly into a hex editor, but that's not a good excuse when posting 'functional' code.

A good start, though. You found the routine and modified it to seemingly function properly, which is great. Just mind your syntax and, more importantly, your stack, and you're good to go. Also, when modifying a routine, try to figure out more about it (like where the teleporter X and Y are coming from) so you don't have to make redundant, bloated code that requires precious freespace and uses excess precious cycles.

Now that I'm done picking that apart... The item disappears after a set amount of time, right? If you want to have some more assembly fun, you could look into why and how to stop that. I implemented that that in my hack, as well, making this a special-case item (it differs from standard energy powerups in two ways, with no timer being one of them). You can disable the timer either with another assembly hack or by changing how you handle the spawning of the item; I chose the former because the latter didn't fit my implementation.

For some beginning ASM modification, decent work.

NetSplit
Posted on 08-20-08 08:45 AM, in The NEW General Project Screenshot / Video Thread EX Omega Supreme++ Link | Quote | ID: 89196


Level: 32

Posts: 109/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
Careful at the beginning there; if the player falls between the columns that are 4 blocks tall, he'll have to reset the game.

NetSplit
Posted on 08-22-08 12:14 AM, in MM1: Spawn life energy capsule after beating rematch boss Link | Quote | ID: 89285


Level: 32

Posts: 110/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
Your ROM will certainly have a header. The address format used in your code is superior because the game's code never cares about the addresses in the .nes, but rather in loaded ROM. It's not always possible to figure out what that address will be just by looking at the .nes addresses. Bisqwit has that style of address for part of the document because that section is based on AlphaBeta's old Mega Man document.

Interesting that it caused Wily to fall through the floor. Using my method fixes that?

And yeah, learning assembly is great. It's all about diving right in and getting a lot of practice.

NetSplit
Posted on 08-22-08 04:26 PM, in The NEW General Project Screenshot / Video Thread EX Omega Supreme++ Link | Quote | ID: 89306


Level: 32

Posts: 111/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
...if there's no delay or penalty for reloading, then wouldn't auto-reload be like not having the reload feature at all?

Let me explain more clearly why I think it's an odd feature. In arcade shooting games, you typically have ammo and have to shoot off the screen to reload. This takes precious time away from blasting things on the screen and can throw off your aim when you bring your gun back, so there's a trade off and managing ammo becomes an important element for success. Say that instead you had to press a button on the gun with your thumb to reload instantly, or push a foot pedal, or jump up and down. Then it becomes less a strategic element of a game and more something that's been thrown in for no reason other than to have another feature (which is done all too often in games and products in general). Players will start pressing that thumb button all the time or holding it indefinitely, if that works just as well. They'll be pumping that foot pedal over and over, or will play the game hopping. Ultimately, it is something that will not add to the experience, but rather to the list of things players need to do to play the game. It's more complexity without any return. I think we can all agree that sometimes simpler is better, yeah? If it's not contributing in some way, it's probably detrimental.

But again, it's your hack. I'm just some guy on a message board, so I'm probably wrong.

NetSplit
Posted on 08-23-08 01:54 AM, in Sunset Riders Hacks... Link | Quote | ID: 89323


Level: 32

Posts: 112/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
I have the game for both SNES and arcade. There's also a Genesis version, I think, and it's a bit different from the SNES one.

Just because Google can't help doesn't mean there aren't any hacks for the game. There are foreign hacking communities and searching those via Google isn't the easiest thing in the world. The Japanese hackers do a lot of crazy stuff with various games, but most non-Japanese know nothing about those hacks unless someone stumbles across a gem and waves it around for everyone to see. Google is a useful tool, but at the same time, people shouldn't be berated for asking a question that could may (or may not) be answered just by using Google.

I'd guess, though, that there are no hacks for this game. It's not that mainstream and there are many other, more big-name games for the SNES that have not been hacked. Chances are they're higher priority for most hackers out there. Hacking SNES games is substantially more difficult than NES games much because the tools for it aren't as great as FCEUXD.

NetSplit
Posted on 08-29-08 01:49 PM, in Teaser #2 shows new game engine Link | Quote | ID: 89618


Level: 32

Posts: 113/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
I've not heard of that Rock 'n Maxx hack before. Especially with regard to Japanese hacks, there are way too many good hacks that most non-Japanese never hear about (like Extra Mario Bros). Perhaps there should be a thread for people to post about cool hacks they've come across? I'm sure there are a lot of good ones, and the hack release forum isn't a good place to just be like 'Hey, look at this hack I found.' Meh, just an idea.

NetSplit
Posted on 09-03-08 05:22 AM, in Awesome hacks Link | Quote | ID: 89782


Level: 32

Posts: 114/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
All of the comments I see occasionally in threads about crazy Japanese hacks that I've never heard of have me wondering what awesome hacks, Japanese or otherwise, people have come across that probably aren't widely known in these here parts.

I'll start with Extra Mario Bros., available on this page. It's an SMB1 hack that turns the game into a Metroid-style exploration game and remains my favorite hack, hands-down. I've mentioned it on the forums before, but hopefully some more people will come across it here for the first time.

So what else is out there?

NetSplit
Posted on 09-04-08 07:04 AM, in I've come accross a few interesting 6502 ASM things... Link | Quote | ID: 89843


Level: 32

Posts: 115/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
Assuming the pointers point to code, they are likely being pushed to the stack and then used with an RTS. RTS works by pulling the top two bytes from the stack and jumping to that address plus one. I used to know a bit about the reasoning for that sort of setup, but I've since forgotten. The RTS method is an important method for jumping to the proper routine; for example, if you have several weapons and need to get to the code for the right one, putting the address minus one on the stack and doing RTS is an effective method for getting there.

I don't know what to tell you about the other thing. In the event that you haven't simply read the code wrong, it's certainly possible to do JSRs that don't need to be returned from. It's possible that the game wants the address, in which case you could do a JSR and a couple of PLA instructions, followed by adding 1 to the pair if need be. One would need to examine the code, primarily after the JSR, to understand what it's doing.

NetSplit
Posted on 09-22-08 09:15 AM, in Megaman 9 Link | Quote | ID: 90945


Level: 32

Posts: 116/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
9:00 AM PST.

NetSplit
Posted on 09-23-08 06:12 AM, in Megaman 9 (rev. 2 of 09-23-08 06:13 AM) Link | Quote | ID: 90981


Level: 32

Posts: 117/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
What, all those posts and no comments now that the thing is out? For shame. I'll assume this must mean that you're all off playing the game to death like any good retro gamer because nothing else makes sense.

It's awesome. The gameplay is full of all sorts of innovative ideas not done before in Mega Man games. There are some really great enemies, and the boss battles are pretty good. The stage design is mostly excellent, especially Wily 3. The music blends with the stages pretty well, though I must admit I'm not a fan of all of the tracks (and there's certainly nothing to rival the best songs of MM2 and MM3). Also, I absolutely love the time attack and fastest clear time features. Comparing times online is wonderful; this is very much in the same spirit at Matrixz's amanzing MM5 Time Attack hack, except with NWFC compatibility for rankings. Awesome. Last I checked, I was in 3rd place with a sub-40 minute run.

Playing through this game reminded me of why I love the Mega Man series so much. Mega Man 10 can't come soon enough.


Edit: Touche. Nice timing, PSlugworth.

NetSplit
Posted on 09-28-08 11:28 PM, in Want the metal blade in Megaman 3? Here's how... (rev. 2 of 09-28-08 11:29 PM) Link | Quote | ID: 91288


Level: 32

Posts: 118/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
He was just trying to explain the order the tiles go in TLP, I think. This hack should be incredibly easy for anyone to implement; the addresses and values are all there, with the only potential for confusion being pasting in the graphics. At worst, putting the graphics in properly will take all of two tries. Do you really need a patch for this?

To be honest, I don't like having extra IPS patches flying around and I find it easier to do a small hack myself than to use an IPS patch. I'm certainly not the norm, though.

NetSplit
Posted on 09-30-08 10:38 PM, in The NEW General Project Screenshot / Video Thread EX Omega Supreme++ Link | Quote | ID: 91465


Level: 32

Posts: 119/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
I've had this on Youtube for a while because I've been interested in how many views and comments I'll get without having it linked to anywhere, but your screenshot has urged me to post it here.



Clearly we had some similar ideas for the boss select screen! I have to head out now, but I can grab data from my notes about it later if you want the data handed to you. Finding it oneself is a lot more fun, though. I'll be putting the data up somewhere anyway, since someone on Youtube expressed interest in it. Aside from the boss select screen, there are a lot of other changes in that video that I hope people will notice.

NetSplit
Posted on 09-30-08 11:59 PM, in The NEW General Project Screenshot / Video Thread EX Omega Supreme++ (rev. 2 of 10-01-08 12:05 AM) Link | Quote | ID: 91473


Level: 32

Posts: 120/178
EXP: 188118
Next: 18324

Since: 02-26-07

Last post: 2223 days
Last view: 2148 days
-----BOSS SELECTION SCREEN-----

$1B56A - The one background tile ID
$1B669 - Location for both halves and attributes for the left half of the special Guts Man attributes
$1B671 - Attributes for the right half of the special Guts Man attributes
$1BE2B-1BE4E- Boss frame design (normal)
$1BE4F-1BE72- Boss frame design (Guts Man)
$1BE73-1BE96- Boss frame design (Wily)
$1BE97-1BEA4- Table of frame locations for all 7 bosses. 2 bytes per location; the first byte plus the two lowest bits
from the next byte (as the two highest bits of the location) determine the number of tiles to skip
before drawing the frame. Second byte is always 2x.
$1BEA5-1BEAB- Table of frame background locations for all 7 bosses. 1 byte per location; format is xy.
$1BEAC-1BEB5- Some sort of attribute stuff for the flashing background
$1BEB6-1BEB9- Locations for the flashing background behind "STAGE SELECT PRESS START"
$1BEBA-1BEBF- Unknown; has to do with the flashing background
$1BEC0-1BECB- 6 entries, one per boss, of 2 bytes each telling the game what boss ID to go to next if you press right
or left, in that order; used when Dr. Wily is unavailable
$1BECC-1BED9- Just like the previous table, but with 7 entries; used when Dr. Wily is available

$1BEDA-1BEF5- 7 entries, one per boss, of 4 bytes each, telling the game the frame ID, Y position, X position, and
sprite flag, respectively, for each boss on the boss select screen
$1BEF6-1BF11- 7 entries, one per boss, of 4 bytes each, telling the game the Y velocity high, Y velocity low, X
velocity high, and X velocity low, respectively, for when the boss has been selected and is jumping
$1BF12-1BF18- 7 bytes, one per boss, saying which frame ID to use when the boss has been selected and is jumping
$1BF19-1BF1F- 7 bytes, one per boss, saying which frame ID to use when the boss lands after jumping
$1BF20-1BF26- 7 bytes, one per boss, saying which graphics to use for that boss. Format seems to be the first tile for
that boss on the pattern table, but EOR'd by 80 (?)
$1BF27-1BF2D- 7 bytes, one per boss, defining attributes for that boss
$1BF2E-1BF3B- 7 pointers, one per boss, to animation data for the animation the boss does after being selected
Animation format: 2 bytes per frame: Frame ID, delay before advancing to next frame. Terminate animation
with FF. The animation will continue until a certain time is reached.
$1BF3C-1BF6A- Animation data. Locations within the data for each boss are determined by the above pointers
$1BF6B-1BF7E- 10 text pointers. Order of pointers is 7 bosses, then STAGE SELECT, then PRESS START, then CLEAR POINTS
$1BF7F-1BFDB- Text data. Locations for text in the data are determined by the above pointers


I won't guarantee that all of this is correct; I did the hack for my boss selection screen over the course of a couple days several summers ago. I've only touched it once since then (to remove the boss name text), though I will be again in a while to pretty it up even more. I assume it's all mostly accurate. It should go without saying, but I'll say it anyway: boss order is the obvious cut/ice/bomb/fire/elec/guts/wily.

If you want to add mugshots, you'll have to find the space for both the background and sprite parts of the mugshots, and then have them either all be identical or have boss frame data for each and every boss frame. You'll also need something for displaying the sprites, which would be a total pain. I think there are a lot of reasons not to go with mugshots in this game unless you're expanding it.

Edit: Also, if you want to mess with the boss selection screen, you'll need to change the coordinates and compares for Bomb Man's bomb and Wily/Wily's saucer. I thought I noted the locations for all of that down, but apparently I didn't. I guess about all I can add regarding this is that it's a total pain to get everything pixel-perfect again after you start messing with it and I feel sorry for anyone who decides to fiddle with it.


As for Time Man and Oil Man, PSlugworth, adding them isn't a matter of finding a way, but rather willingness to do that amount of work. Ignoring the obvious difference between the PSP and NES resolutions, you'd also have to program in the AI for the bosses, muck around with the game's animation data (which is already tightly packed), expand the ROM to accommodate the extra #$2000 bytes necessary for the stages alone (and then there are extra graphics, sprite data, music, and various other things. You'd likely have to expand by #$8000 bytes or more due to the way the engine is set up), and move various data structures (because now they'll be 2 bytes bigger) and rearrange their data to allow room for the new bytes in the right places. Then you'd have to do extensive playtesting and looking through the ROM for things that relied on stages having certain ID values to ensure that they've all been properly changed to accommodate the extra two stages that were added. Do you want to do it? I sure as hell don't.
Pages: 1 2 3 4 5 6 7 8 9


Main - Posts by NetSplit

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

Page rendered in 0.231 seconds. (340KB of memory used)
MySQL - queries: 37, rows: 69/69, time: 0.223 seconds.