
It's a speed-oriented platformer featuring 4 main levels and one, long, secret level to close them all.
Have fun if you play it (DS linker or desmume 0.9.11+ recommended)
The engine is open source (LGPL), by the way.
Well, I really haven't designed the pixel art to use 16-color palettes. It might still fit on a GBA, but when I checked for a SNES or a Genesis port, it was disappointing. I don't know how well the soundtrack would survive, either: my brother used quite much of the 16 tracks the NDS offers.tepples wrote:Do you foresee any significant issues that would block a port to Game Boy Advance?
What were the main bottlenecks? I haven't played the game, but I don't see anything that looks too challenging in that GIF.PypeBros wrote:when I checked for a SNES or a Genesis port, it was disappointing.
Then it might take someone with pixel art skills to color-reduce it to 4bpp so that the playfield background tiles can fit into 32K (1,024 4bpp tiles), the parallax background tiles into 16K (512 4bpp tiles), and the sprites into 32K (1,024 4bpp tiles). It shouldn't be that hard, as I discovered in 2002 that there's more than enough DMA bandwidth to stream sprite cels from ROM or from a decompression buffer in EWRAM to VRAM.PypeBros wrote:Well, I really haven't designed the pixel art to use 16-color palettes.
GBA has software mixing: more channels just mean more CPU time. Or there are tech demos that decompress streamed audio in real time as if it were a PlayStation game.PypeBros wrote:I don't know how well the soundtrack would survive, either: my brother used quite much of the 16 tracks the NDS offers.
It really depends on which parts of the C++ language a particular code base uses. One often associates the GBA with the C language, but C in practice is also a subset of C++.* There are parts of C++ you can use without runtime cost, and there are parts you need to avoid if you're on anything smaller than a PC or smartphone <cough>iostream</cough>.PypeBros wrote:And the final thing is that I used C++ for the code base. I haven't heard much about succesful C++ coding on the GBA.
Ah ? I didn't knew about that. Then yes, it would make perfect sense. So far the game is essentially using little 3D, almost none of the advanced background effects (unlike the tools) and only A+B+L+R for the input (Y and X mirroring A and B), so a port could be envisioned.The big reason I asked about GBA is that there are countries where, due to technicalities of copyright law, GBA homebrew is legal but DS homebrew is not.
It should be manageable with 16x16 palettes for sprites and 16x16 palettes for backgrounds, indeed. The tiles count could work too, although only 512 tiles could mean some "advanced" backgrounds (in the secret level) would have to be dropped (that's ok). After checks, the thing that blocked me was that Mega-drive (which had my focus in the previous "demake" study) has only 4 palettes for both sprites and backgrounds and that was ... wel... not so appealing.tepples wrote:Then it might take someone with pixel art skills to color-reduce it to 4bpp so that the playfield background tiles can fit into 32K (1,024 4bpp tiles), the parallax background tiles into 16K (512 4bpp tiles), and the sprites into 32K (1,024 4bpp tiles). It shouldn't be that hard, as I discovered in 2002 that there's more than enough DMA bandwidth to stream sprite cels from ROM or from a decompression buffer in EWRAM to VRAM.PypeBros wrote:Well, I really haven't designed the pixel art to use 16-color palettes.
so that will all depend on how much CPU time I can save on the game logic. So far it is partly interpreted, partly running compiled code. On the GBA, there would be no stylus and no wifi to edit the game logic live, so it is perfectly ok to convert the interpreted part into compiled part as well.GBA has software mixing: more channels just mean more CPU time. Or there are tech demos that decompress streamed audio in real time as if it were a PlayStation game.
A large part of the engine likely only use the 'no runtime cost' subset of C++. That is the code that runs once the level is loaded. The level and state machine scripts parsing, on the other hand, relies on vectors, lists and even key-to-value maps that C++ offers. But I've detailed the plans for that part above already.It really depends on which parts of the C++ language a particular code base uses. One often associates the GBA with the C language, but C in practice is also a subset of C++. There are parts of C++ you can use without runtime cost, and there are parts you need to avoid.
May I suggest desmume emulator?Rahsennor wrote:Don't have anything to play it on ATM, but it looks pretty slick.
we can hardly call it "a scene" anymore, although there have been some other people doing NDS homebrew games too over the year.Banshaku wrote: I could try it again someday but I didn't touch since 2008 so I have no idea what changed in the nds scene since.
I remember using the ff4 tileset and make a quick map, just for fun and some snow falling (always liked to do that under dos) but this is as far as I went
Nice ^_^. One thing I had in mind to ease the porting towards other platforms was to merge the C++ logic of the code with an NDS emulator. We'd still have emulated sound & graphics, but the CPU wouldn't need emulation because there would be native code instead. Is that something GBE+ would make possible / easier than hacking desmume source code ?I'm in the process of improving the NDS core of my emulator, and any sort of ROM I can use for testing is appreciated, especially interesting games. Despite the somewhat "meh" state of NDS emulation in GBE+, School Rush manages to run without crashing. Very impressive work you've done here, keep it up.
I think the wifi demo functionality can be used, but only for small apps since they load to RAM.Banshaku wrote:Now if I could find a way to test some code without a flashcart (it mostly died by now), I could try it again someday but I didn't touch since 2008 so I have no idea what changed in the nds scene since.