Scummvm DS Back-end Question

Subforum for discussion and help with ScummVM's Nintendo DS port

Moderator: ScummVM Team

Post Reply
MatterEaterLad
Posts: 5
Joined: Sat Mar 31, 2007 7:57 pm

Scummvm DS Back-end Question

Post by MatterEaterLad »

Hi,

First of all, I want to say I got scummvm DS (the 0.9.1a beta) to run on my M3 simply with BASS. What an excellent program.

I read through the README and it was mentioned that scummvm uses SDL. I was wondering if:

a. The DS port maintains the SDL layer (ie, implement SDL for DS) or does it use some other technique?
b. If it does SDL for DS, is it an in-house implementation or is it using SDL DS by GPF?
c. I assume it implements a few other things as well such as file access/etc. When will the 0.9.1a source be available? DLDI support is important because I'm using a slot-1 M3 Simply. I'd like to try and compile the source.

Thanks.
agentq
ScummVM Porter
Posts: 805
Joined: Wed Dec 21, 2005 4:29 pm
Location: London, UK

Post by agentq »

ScummVM does run under SDL for some ports, but the DS port implements a custom backend without SDL. When starting the port I thought the backend interface provided by the OSystem class looked relatively easy to implement.

Also, I am unfamiliar with SDL and am not sure what performance implications it may have, how complete/stable the SDL port is, or how it might cope with using both screens.

So I went with the custom backend approach.

The latest source code for 0.9.1a is already available in ScummVM's Subversion repository. Check out branch_0_9_0.
MatterEaterLad
Posts: 5
Joined: Sat Mar 31, 2007 7:57 pm

Post by MatterEaterLad »

Hi agentq,

I don't know of any other SDL-based apps that is using SDL DS port by GPF. I tried one on his site called DefendguinDS, which is an SDL game, and it wasn't that great. There was flicker and other problems but it may be because of the game.

Could you clarify your reply a little bit more regarding ScummVM DS?

a. The architecture is scummvm -> OSystem -> SDL -> SDL port and you have ripped out the SDL layer or

b. The architecture is scummvm -> OSystem -> backend. On some ports the backend is implemented using SDL and on the DS port you are coding for the DS with no other layer?
agentq
ScummVM Porter
Posts: 805
Joined: Wed Dec 21, 2005 4:29 pm
Location: London, UK

Post by agentq »

I seem to remember a port of Super Mario War done using SDL on the DS. Apart from that, I can't remember any others.

I started on a port of the PC game Abuse using SDL. I haven't had much time to work on it in a while though, and I didn't get as far as displaying any graphics on the screen.

ScummVM DS doesn't use SDL at all. So the answer to your question is B.
MatterEaterLad
Posts: 5
Joined: Sat Mar 31, 2007 7:57 pm

Post by MatterEaterLad »

Hi agentq,

I am only asking these questions because I am interested in porting some old games to the DS. However, I'd rather not reinvent the wheel if somebody has done it already (ie, graphics/sound subsystems).

Would you say that your DS backend has good support for graphical operations of the blitter, sprites, dirty rectangles variety? I don't mean, for example, that you implement dirty rectangles to speed up animation. But that if a game/graphical engine use these concepts (blitting, sprites, etc.) in the kind of graphical functions they want, your DS backend support these types of operations.

Thanks.
agentq
ScummVM Porter
Posts: 805
Joined: Wed Dec 21, 2005 4:29 pm
Location: London, UK

Post by agentq »

I would say that the DS backend would act as a good reference to implementing similar features while porting other games. I wouldn't suggest you attempt to stick a ScummVM backend onto other types of game though, as it would probably be a lot of work.

I would suggest you try out GPF's SDL port. I would say that it should be possible to fix up anything that may not work in SDL using ScummVM's backend for reference. But really, displaying graphics for 2D games that just use the frame buffer is quite easy on the DS.

Basically, taking a look at this file:
http://svn.sourceforge.net/viewvc/scumm ... iew=markup

The important stuff for displaying graphics are almost entirely in these functions:
OSystem_DS::copyRectToScreen()
OSystem_DS::setPalette()
Post Reply