[Scummvm-devel] Possible new backend features

Eugene Sandulenko sev at scummvm.org
Sat Apr 1 10:38:05 CEST 2006


On Sat, 01 Apr 2006 18:47:00 +0100
Neil Millstone <neil at millstone.demon.co.uk> wrote:

> I haven't had as much time to work on my DS port as I had originally 
> hoped, but I have made a fair bit of progress.
Great. But I also suggest you to follow SVN changes, or better do your
development right in the tree and do svn update from time to time.
Some behaviour you're talking about below was already changed in
ScummVM.

> I have added an extra 
> config dialog which which I can show using the 'Select' key on the
> DS, which means I could remove the hacks to the options menus which I
> had previously put in, this works ok, but perhaps isn't the most
> logical place for it to be from the user's point of view.
Preferably this should be turned into generic way. Many backends need
additional options and dialogs. I think we could create additional
backend-specific tab and you provide a hook from your backend to call
function which will process it.

> I've also used ConfMan.get("gameid") to find out the id of the
> running game, removing my other hack to the main source tree.
Nice. We extensively use ConfMan in our backends, so that's IMHO a
feasible solution.

> I'm  not sure if this could be done a more
> generic way that would be useful to other ports, but at least it
> doesn't require a hack in the ScummVM source.
I don't really think this would be possible since hardware controls
vary considerably. However, maybe you're aware about KeysDialog
which you can turn on by defining a misleading now SMALL_SCREEN_DEVICE
define. Properly name for it would be something like
BACKEND_NEEDS_KEYMAPPING. Generally all of those should be put in
order, so we avoid scary looking

  #if defined (_WIN32_WCE) || defined (__SYMBIAN32__) ||
    defined(PALMOS_MODE) || defined(__GP32__) || defined (__MAEMO__)

those should be turn into generic form in a manner of

  BACKEND_NEEDS_BLAH
  DEVICE_LACKS_KEYBOARD

or something like that.

> involve how the port handles the touch screen, so it's not really
> applicable to other ports (except perhaps Symbian or other ports that
> have touch screens, but I imaging they want to have their own way of
> solving these issues).
Currently touch screen is present in SymbianOS, WinCE and Maemo
(Nokia770) ports. DS in on the way. I'd say it is quite generic then.

> Another feature that I have realised I need quite a lot is something
> to allow deleting of savegames.  A hasFeature() call could detect
> whether the backend supports this, and then a delete() call could be
> added to Common::SaveFileManager to perform the delete.   I could
> have a go at adding this if you want, it looks like a simple change.
We have this feature request:

  https://sourceforge.net/tracker/index.php?func=detail&aid=1217640&group_id=37116&atid=418823

This will be a really really useful feature. So, please, submit this as
a patch for further discussion. Please, pay attention to new widgets in
GUI theme.

> Another small thing is the case-sensitive file searching implemented
> in Common::fopenNoCase().  It tries to open every file with a variety
> of different modifications to how it is capitalised.
Recently it has been completely rewritten, and although it still tries
to open files with different capitalization, that is a last-chance
fallback. Now it scans directories only once at engine instance
creation and caches all file names. That should definitely speed up
things on slower FSes like in your case.


Eugene




More information about the Scummvm-devel mailing list