Developing software targetting multiple systems

General chat related to ScummVM, adventure gaming, and so on.

Moderator: ScummVM Team

Post Reply
User avatar
dreammaster
ScummVM Developer
Posts: 398
Joined: Fri Nov 04, 2005 2:16 am
Location: San Jose, California, USA

Developing software targetting multiple systems

Post by dreammaster » Fri Nov 04, 2005 10:20 am

Hi there,

Being in awe of the SCUMMVM team, I've started work on my own SDL-based source project intended to emulate another game; hopefully to eventually enable it to run on a variety of systems. I won't go into which game specifically until I've something solid to show for my efforts.

What I was wondering is whether there are any general rules that should be followed to ensure that porting between systems would be as easy as possible? I'm already aware that endian format may be an issue when loading data into memory, I should types like UInt32 explicitly when needed, and I've decided to use SDL since ScummVM already uses it so successfully. If there are issues that came up during porting SCUMMVM that could be profitably avoided during my initial design, I'd really appreciate knowing about it.

PS: And congratulations on the recent release.

DreamMaster.

User avatar
sev
ScummVM Lead
Posts: 2008
Joined: Wed Sep 21, 2005 1:06 pm
Contact:

Post by sev » Fri Nov 04, 2005 12:43 pm

Well, nothing unusual. Use minimal set of abstractions which will hide whole platform-specific matters. In ScummVM we have OSystem (see common/system.h), filesystem abstraction (backends/fs/fs.h) and generic sound iterfaces (sound/mididrv.h and sound/mixer.h).

All new porters in ScummVM have to visit those files and implement their methods if required, or overload our SDL backend as WinCE does. We are going to write a generic small devices backend which will contain virtual keyboard, scalers, key remappers, additional sound quality settings etc, and most of our smaller backends will subclass it. It is expected to ease and unify development for those platforms.


Eugene

PS. If your project is 2D point and click adventure, you may consider joining ScummVM :)

User avatar
dreammaster
ScummVM Developer
Posts: 398
Joined: Fri Nov 04, 2005 2:16 am
Location: San Jose, California, USA

Post by dreammaster » Sun Nov 06, 2005 11:17 am

Thanks for the advice. And it's not a 2D game, so it wouldn't really fit in with the ScummVM gameset.

DreamMaster.

Post Reply