From ScummVM :: Wiki
Revision as of 22:26, 17 November 2014 by Digitall (talk | contribs) (→‎Notes on CD mastering: Add basic linux script for doing this.)
Jump to navigation Jump to search
dc.png Dreamcast Port
Latest Released Version 2.8.1
Supported Audio Options MP3, Uncompressed
Additional Webpage(s) None
Maintainer(s) Zeldin
Packager(s) Zeldin
Forum Port Forum
Status Maintained
First Official Version 0.3.0b


ScummVM was also ported to the Sega Dreamcast platform. The Dreamcast port uses it's own custom Graphical User Interface, which automatically scans the disc for games, and adds the games to the list through ScummVM's built-in autodetection. This usually works well, but sometimes games will show up on the list twice, incorrect games will show up with the correct game (especially true with the early V1 and V2 SCUMM games), and quite rarely the game will not show up on the list at all. ScummVM for the Dreamcast supports disc swapping from the GUI, and will rescan once a new disc is inserted and repopulate the gameslist. There is currently no way to manually add games to the gameslist in ScummVM for Dreamcast.

The mouse cursor can be controlled with the standard Dreamcast controller. The D-pad supplies slow cursor movement, and the analog stick provides faster cursor movement. The A button acts as the right mouse button, and the B button acts as the left mouse button. There is a virtual keyboard that can be brought up by pressing the left trigger button, that will emulate keyboard input. The Dreamcast mouse and keyboard peripherals are also supported. The Visual Memory Unit is supported for saving and loading savegames. Autosave is enabled on the Dreamcast, so each game will use some memory blocks (between 2 and 13) for the autosave in save slot 0, as well as save blocks for any user specified save game. When a game is saved, the VMU beeps, and a prompt is displayed on the screen letting you know that the game has been saved (this occurs with autosaves as well).

The Dreamcast has no external storage medium, and only has 16MB of RAM. As such, the Dreamcast port of ScummVM does not support The Curse of Monkey Island, nor the Dig. The resources required for these games are too great for the Dreamcast to handle. Full Throttle is not completable. Every other game supported by ScummVM should be completable with the Dreamcast port.

Controls for ScummVM on the Dreamcast

 Game Controller Mapping:
Button Action Notes
Joystick Move Pointer
Directional pad Move Pointer (slowly) Also controls the on-screen keyboard
A Left Click
B Right Click
Y Space Pause
Start F5 Load and save
Left trigger Bring up/remove the on-screen keyboard
X 5 For boxing in Indy 3
D-Pad + X 1, 2, 3, 4, 6, 7, 8, 9 Likewise

Notes on CD mastering

Some games (e.g. SPY Fox 1: Dry Cereal) use filenames which are incompatible with the ISO 9660 filesystem standard. Because the Dreamcast port does not support filename extensions like RockRidge or Joliet, the CD mastering software needs to be instructed not to mangle the filenames to comply to ISO 9660, or the engine will not be able to open the files. In the case of mkisofs, this can be achieved by using the -relaxed-filenames option to allow any ASCII character in filenames, -d option to omit trailing periods from filenames with no suffix (violates ISO9660) and -l to allow filenames of up to 31 characters in length. For other authoring software, please consult your user manual.

Since the v1.2.1 release, the combined size of the engine plugins is larger than the available memory and thus a disc including all plugins will not work correctly. Only include the plugins for the engines needed when mastering a CD.

On Linux, the following script should burn a suitable CD from the contents of "cd-image-folder" and IP.BIN, though it may need tweaks depending on the cdrecord version used:

dd if=/dev/zero bs=2352 count=300 of=audio.raw
cdrecord dev=/dev/cdrom -multi -audio audio.raw
cdrecord dev=/dev/cdrom -msinfo
# Replace 0,11702 with values from previous command
mkisofs -l -d -relaxed-filenames -C 0,11702 -o tmp.iso cd-image-folder
( cat IP.BIN ; dd if=tmp.iso bs=2048 skip=16 ) > data.raw
# Need to use -xa, NOT -xa1 to ensure that 2048 byte blocks are used. This may vary on different versions of cdrecord
cdrecord dev=/dev/cdrom -multi -xa data.raw

Running Debug Builds

Unlike release builds, development builds can be configured for serial port debugging. If you are compiling yourself, then this can be enabled by passing "--enable-debug" to the configure script.

However, if this is enabled and there is no serial cable attached, or a terminal program is not running on this port, ScummVM _will_ hang at the "SEGA" logo screen or a black screen due to RS232 flow control (the Dreamcast fails to get Clear-To-Send).

If you don't have a serial debugging cable, then you can use the development builds from here which are not marked "with Serial Debug".

Also, the development build plugins are usually larger than the release ones i.e. unstripped/debugging symbols. Thus as previously noted, if the combined size of the engine plugins on the CD is larger than the available memory, this will manifest as either a lock up of ScummVM or as a system reset before the selection menu appears. To confirm this, you can try opening the drive lid either during the "SEGA" screen (in which case no plugins will be loaded), or during the plugin loading (in which case you'd get some of the plugins). If this fixes the issue, too many plugins on the disc is the most likely explanation.

External links