It is currently Wed Dec 12, 2018 3:44 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 32 posts ]  Go to page 1, 2, 3  Next
Author Message
 Post subject: [NDS] Bilou School Rush
PostPosted: Sun Dec 02, 2018 3:50 am 
Offline
User avatar

Joined: Sat Nov 10, 2018 7:35 am
Posts: 26
This is the game I've been working on the last 5 years, using my DS game tools.
Image

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.

_________________
Image - may the source be with you.


Top
 Profile  
 
PostPosted: Sun Dec 02, 2018 8:02 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20854
Location: NE Indiana, USA (NTSC)
Do you foresee any significant issues that would block a port to Game Boy Advance?


Top
 Profile  
 
PostPosted: Sun Dec 02, 2018 3:40 pm 
Offline
User avatar

Joined: Sat Nov 10, 2018 7:35 am
Posts: 26
tepples wrote:
Do you foresee any significant issues that would block a port to Game Boy Advance?

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.

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.

_________________
Image - may the source be with you.


Top
 Profile  
 
PostPosted: Sun Dec 02, 2018 4:06 pm 
Offline

Joined: Thu Aug 20, 2015 3:09 am
Posts: 424
Don't have anything to play it on ATM, but it looks pretty slick.


Top
 Profile  
 
PostPosted: Sun Dec 02, 2018 6:35 pm 
Offline
User avatar

Joined: Tue Jun 24, 2008 8:38 pm
Posts: 2124
Location: Fukuoka, Japan
Look nice!


Top
 Profile  
 
PostPosted: Sun Dec 02, 2018 7:07 pm 
Offline

Joined: Fri Jul 04, 2014 9:31 pm
Posts: 991
PypeBros wrote:
when I checked for a SNES or a Genesis port, it was disappointing.

What were the main bottlenecks? I haven't played the game, but I don't see anything that looks too challenging in that GIF.

But yeah, C++ probably isn't going to go well on the SNES (I'm not even sure the tools exist for anything beyond plain C, and they aren't good even for that). You'd have to convert performance-sensitive code to assembly. Which isn't incredibly hard on such a simple processor, but it might be more effort than you're willing to put in considering the game already works on a newer system three times as many people bought...


Top
 Profile  
 
PostPosted: Sun Dec 02, 2018 8:17 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20854
Location: NE Indiana, USA (NTSC)
PypeBros wrote:
Well, I really haven't designed the pixel art to use 16-color palettes.

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:
I don't know how well the soundtrack would survive, either: my brother used quite much of the 16 tracks the NDS offers.

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:
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.

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>.

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.


* Or more rigorously: The common subset of C and C++ purposely resembles C so closely that it's practical to write polyglot programs that mean the same thing in C and C++ by using C idioms as is.


Top
 Profile  
 
PostPosted: Mon Dec 03, 2018 9:57 am 
Offline
User avatar

Joined: Sat Nov 10, 2018 7:35 am
Posts: 26
Quote:
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.


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.

tepples wrote:
PypeBros wrote:
Well, I really haven't designed the pixel art to use 16-color palettes.

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.

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.

Quote:
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.

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.

Quote:
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.

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.

I don't think I've been using iostream in this project. Mostly good old iprintf /siscanf.

So if it was the game-of-my-life, I'd definitely consider a GBA port right now. But it is just a subset of that game. Right now, porting School Rush to GBA is competing against doing a game in the Castle Zone and one in the Desert Zone, and then one in the Lost Temple Zone on the NDS... I cannot tell yet what will win.

Of course, if some seasoned GBA developer is willing to port the engine, I'd be more than happy to teamwork so that the game itself gets ported as well ;)

_________________
Image - may the source be with you.


Last edited by PypeBros on Mon Dec 03, 2018 10:02 am, edited 1 time in total.

Top
 Profile  
 
PostPosted: Mon Dec 03, 2018 10:00 am 
Offline
User avatar

Joined: Sat Nov 10, 2018 7:35 am
Posts: 26
Rahsennor wrote:
Don't have anything to play it on ATM, but it looks pretty slick.

May I suggest desmume emulator?

_________________
Image - may the source be with you.


Top
 Profile  
 
PostPosted: Mon Dec 03, 2018 5:39 pm 
Offline

Joined: Sun Jan 26, 2014 9:31 am
Posts: 292
Looks pretty good! It's nice to see polished homebrew for the NDS. Feels like the heyday for that was mid 2000s/early2010s, so it's great to see people still making things for the handheld.

Mostly just wanted to say thanks for your efforts. 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.


Last edited by Shonumi on Mon Dec 03, 2018 6:04 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Mon Dec 03, 2018 5:56 pm 
Offline
User avatar

Joined: Tue Jun 24, 2008 8:38 pm
Posts: 2124
Location: Fukuoka, Japan
The interest may have waned but like retro console, it should have a surge someday when people rediscover them ;) 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.

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 :lol:


Top
 Profile  
 
PostPosted: Tue Dec 04, 2018 1:00 am 
Offline
User avatar

Joined: Sat Nov 10, 2018 7:35 am
Posts: 26
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 :lol:

we can hardly call it "a scene" anymore, although there have been some other people doing NDS homebrew games too over the year.

What I find nice about it is that (like any other console), it will never completely die: the hardware was fixed and so you can have emulators for it. Running MS-DOS games nowadays is still much more complicated than running NDS games, esp. if the developer had funny hardware, or was using CD-ROM, or hadn't foreseen MHz speed increase, etc. I don't even want to think about emulating early Win95 games like Lion King (although I might discover it isn't as hard as I think).

Quote:
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.


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 ?

_________________
Image - may the source be with you.


Top
 Profile  
 
PostPosted: Tue Dec 04, 2018 4:53 am 
Offline

Joined: Tue Oct 06, 2015 10:16 am
Posts: 845
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.

I think the wifi demo functionality can be used, but only for small apps since they load to RAM.


Top
 Profile  
 
PostPosted: Tue Dec 04, 2018 6:56 am 
Offline
User avatar

Joined: Tue Jun 24, 2008 8:38 pm
Posts: 2124
Location: Fukuoka, Japan
@calima

Ha yes, I think I even asked a question about it ^^;;; For now what I do would be just pure testing so I guess that could be more than enough. I should get another flash cart someday but I would prefer one for either famicom/gameboy first since this is the one that I'm the most active at the moment (gameboy, maybe soon, I'm curious).


Top
 Profile  
 
PostPosted: Tue Dec 04, 2018 11:15 am 
Offline

Joined: Tue Oct 06, 2015 10:16 am
Posts: 845
You're just a bit too late, krikzz's black friday sale was 1.5 weeks ago.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 32 posts ]  Go to page 1, 2, 3  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group