gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

Announcements And Comments > New Mega Man GBA project

#33898 - Miniboss - Mon Jan 10, 2005 11:52 pm

Hi everyone. I'm a bit new to the forums, but I've been coming to the site for a long time. I just wanted to tell you guys that I've begun working on a Mega Man GBA project using the classic Mega Man sprites, backgrounds, sounds, and music. I'll be keeping a "development diary" of everything that I do, as well as constantly uploading the latest source code, ROM files, and screenshots. I thought it might be interesting to some of you who would like to see the workings of a project from the very beginning.

The project site is at http://mma.mini-boss.com. Any and all comments or suggestions are welcome. I've dabbled around with GBA programming before, but this will be my first full-fledged attempt at a project, so it should be an interesting journey. Thanks!

#33900 - ScottLininger - Tue Jan 11, 2005 12:02 am

Cool...

Be sure to keep us posted of progress through this forum, 'cause I know I'll forget to keep an eye on your site.

Good luck!

Scott

#33905 - tepples - Tue Jan 11, 2005 12:54 am

Miniboss wrote:
So basically, my plan for loading in the tiles, and just copying them into a common place in VRAM when I need to show them on the screen will actually work. I'm hoping the performance hit won't be too bad. I plan on using the hardware DMA to do all of this copying during the vblank.

So you're going to use 32x32-pixel, 16-color cels and swap them into VRAM every time a sprite changes animation frames. I've written a white paper proving that this technique does in fact fit into VRAM, whether with DMA or with the 'ldmia/stmia' loop that is CpuFastSet().
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#33915 - Miniboss - Tue Jan 11, 2005 2:12 am

tepples wrote:
Miniboss wrote:
So basically, my plan for loading in the tiles, and just copying them into a common place in VRAM when I need to show them on the screen will actually work. I'm hoping the performance hit won't be too bad. I plan on using the hardware DMA to do all of this copying during the vblank.

So you're going to use 32x32-pixel, 16-color cels and swap them into VRAM every time a sprite changes animation frames. I've written a white paper proving that this technique does in fact fit into VRAM, whether with DMA or with the 'ldmia/stmia' loop that is CpuFastSet().


Thanks for the link! Though I'm a bit concerned about the way I worded that first sentence, heh. Anyways, that actually makes me much more comfortable with doing the DMA copies, but it also makes me realize that the method I was thinking of using (just pre-loading all of the cels into VRAM, and then accessing them when needed) probably won't work. But, according to your paper, this shouldn't be a problem at all, and the method I originally wanted to do (but feared to do because of speed reasons) will actually work (meaning, copying the cels directly from ROM).

Thanks very very much for that. :)

#33918 - tepples - Tue Jan 11, 2005 3:18 am

Miniboss wrote:
it also makes me realize that the method I was thinking of using (just pre-loading all of the cels into VRAM, and then accessing them when needed) probably won't work.

That's how the NES and Game Boy games worked. They pre-loaded up to 256 tiles into background tile VRAM and up to 256 tiles into sprite cel VRAM, and then at major scene changes, they blanked the screen (or just the sprites other than Mega Man) and loaded new tiles.

Another thing to think about: What happens when Capcom finds out?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#33919 - Miniboss - Tue Jan 11, 2005 3:47 am

tepples wrote:
Miniboss wrote:
it also makes me realize that the method I was thinking of using (just pre-loading all of the cels into VRAM, and then accessing them when needed) probably won't work.

That's how the NES and Game Boy games worked. They pre-loaded up to 256 tiles into background tile VRAM and up to 256 tiles into sprite cel VRAM, and then at major scene changes, they blanked the screen (or just the sprites other than Mega Man) and loaded new tiles.

Another thing to think about: What happens when Capcom finds out?


I see. I think I'm just overestimating how many tiles I'll actually have in memory. I think my test case was a little large, but never hurts to be cautious.

As for Capcom, heh, well if they want me to stop, I will. I'm just simply a fan of the games, and felt like doing a little project for my own personal enjoyment. Of course, I don't actually know the legalities involved in something like this, so any tips would actually be much appreciated.