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.
Developing software targetting multiple systems
Moderator: ScummVM Team
- dreammaster
- ScummVM Developer
- Posts: 568
- Joined: Fri Nov 04, 2005 2:16 am
- Location: San Jose, California, USA
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
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

- dreammaster
- ScummVM Developer
- Posts: 568
- Joined: Fri Nov 04, 2005 2:16 am
- Location: San Jose, California, USA