How to get vertical scrolling working for a Megaman game.

Started by Thanatos-Zero, February 11, 2017, 03:29:27 PM

Previous topic - Next topic

Thanatos-Zero

Greetings.
It has been a while since I posted here.
Now to come straight to the point. Despite everyone may thinking, the Megaman Odyssey Project is still alive (we are afterall taking things slow).

We like the assistance of people who have experience with Super Mario Bros 3's vertical scrolling. In short, we like to impliment something like this in order to do stuff like in this particular video.

https://www.youtube.com/watch?v=O0dcRCf0lRI

So, the question is if there is someone who can help us in this regard.
Kuja Killer gave up on vertical scrolling, because for him it was a task, he never could figure out. As he himself says, it is way too difficult.

Disch

"I want something like SMB3.  <links to Super Metroid>"   :P

If you just want a quick scrolling section that does nothing else (like the linked video), that's not TOO difficult.  Though if you're talking 8-way free-form scrolling like most SNES platformers and most of SMB3, that'll be significantly more difficult.

Either way you'll undoubtedly have to write entirely new drawing routines.  In the case of the quick-scroll, all your new code can probably be localized to just that one effect without having to touch the main game code much, if even at all.


Which MM game is this for?
And are you just looking for advice, or are you trying to recruit someone?

Thanatos-Zero

Both actually for Kuja Killer's megaman odyssey project.
We have started to undo our mistakes with the 2 stages per robot master thing, as it became too tiresome and too complicated for us.
So we went back to square one with Bolt Man's stage which is a tower.

Disch

So how much flexibility you have depends a lot on how some information is stored in the game.

The actual drawing and scrolling shouldn't be too hard.  I'm not familiar with whatever game this is (MM3?  MM4?  which one?  You never specified) but most games I've looked at have a sort of drawing buffer, which gets dumped into the PPU in the NMI handler.  You need to figure out how that buffer works, and where the game updates the scrolling regs -- and you've pretty much got the drawing part down.

The harder part is in-game objects and collision detection.  It's likely that objects only have 1 byte for their Y coordinate, which may no longer be enough.  Getting around that might involve some heavy code rewrites (this is probably the most difficult part of this I can think of).


That's about all I got.  Sorry for the slow reply but this is kind of a vague question and I'm not entirely sure what you're looking for.

Thanatos-Zero

Thank you for answering Disch.
I think this might help Kuja a bit, though we decided to make during your absence a cutscene instead,
which just scrolls the same screen over and over with different speed settings,
in order to create the illusion of a long vertical section.

Megaman Odyssey is based on Megaman 3.

kuja killer

#5
http://www.mediafire.com/file/thcw5zg4du2sivk/Megaman+3+Sources.zip

I made this for original megaman 3, and Megaman 3 Improvement if anyone is interested in looking. It's only just for the "fixed bank" area though, and probably a very bad attempt of even making any sort of source code out of a game, heh. :| Its for "asm6" assembler, and the disasm6 dissasembler program.

I have little to no experience at all with these assemblers and such yet, but i thought of just trying this out for the first time though.

Im not interested in doing the mario3 "vertical only" levels stuff myself cause it's just impossible really to add to mm3. But maybe someone out there might be, so thats kind of why i started on a source code documenting project sort of in case someone else wanted to try someday. All the screen/scrolling related stuff is between 3E100 to about 3F000 (7E100-7F000 for mm3 improvement), and the RAM registers are $20-2E RAM, and $780-$7FF

Every time i add a label for a RAM address or some place in the ROM in C000-FFFF, i would run the disasm6 batch script again so that it automatically changes JSR's/jmps and all of that stuff to readable names.