Tuesday, December 4, 2012

SPMP_SendSignal() Research (and ScummVM)

I did some rote work and added a new header file (mcatch_cmd.h) to the library that defines all the commands SPMP_SendSignal() accepts, 128 in total. I tried my best to guess reasonable names, but the only ones we can be sure about are those that are mentioned in debug strings. There is some really interesting stuff in there: power management, TV out, system update(!), SD card detection, various audio settings (speaker switching, volume, equalizer, Dolby), FM radio control, LCD panel control (suspend/resume, brightness), camera control, media playing, and much more.

SPMP_SendSignal() most often gets a pointer to a parameter structure that is used as input and/or output. So far I have only figured out the one used to read the real-time clock, in order to give ScummVM save games the proper timestamp.

And with that we come to our main attraction: ScummVM for SPMP8000 devices. This build only contains the SCUMM v1-v6 engine (memory is tight on this platform), but supports most features already, including sound and save games. The major feature that is not supported yet is compression, both for save games and game data. This is not difficult to fix, I simply haven't gotten around to it yet. Another feature I absolutely want to add is touchscreen support, but that will have to wait a bit; my A3300 is still in flight from China. :)

I have tested this build with Fate of Atlantis (VGA/Floppy) and Maniac Mansion (Enhanced), and they both work fine. It is quite conceivable that bigger games might not run due to a lack of memory, but that remains to be tested. Source code is at the usual place. Have fun!

[UPDATE: Here's the key mapping.

  • F5 -> START (brings up the in-game menu)
  • ESC -> SELECT (skip cutscenes)
  • Mouse cursor -> d-pad
  • Left mouse button -> O
  • Right mouse button -> X
]

3 comments:

  1. Its realy great, but work only some games with I have tested (in .lfl extension). Work here any other extensions?

    ReplyDelete
  2. Hi, we launched Sam & Max Hit the Road
    (Sam & Max Hit the Road CD-ROM VERSION ~432MB )
    I can not say it well in general, but the game is started and at first I did not notice bugs.
    need more tests.
    This is a very good job really!

    ReplyDelete
  3. ScummVM works well! Setsret of Monkey Island works fine! I have a request. In the emulator has an excellent file manager! You can create a separate program from Copy / Cut / Paste, and multiple select? By type of Norton Commander.

    ReplyDelete