[Scummvm-cvs-logs] scummvm refs/tags/closed/branch-1-3 -> dfe0c78f27a39cc0901e6375eb9becb728363c53

wjp wjp at usecode.org
Mon Nov 14 10:41:33 CET 2011


This automated email contains information about 74 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
f8d5744a90 TOON: Fix crash #3308220
9b74ad191b BUILD: Add missing include
784a6f4caa IPHONE: Updated xcode project
a2bb8a02ba IPHONE: Fixed a COMI crash and some minor gfx glitches
c831c7243d AGI: Fix Broken Predictive Text Input.
1e41c47cfe COMMON: Add (another) Eclipse project file to .gitignore
be5b4fad02 SCALERS: Fix for compiling for ARM without using ASM scalers
1dd8d1eb1e ARM: Fix normal2x scaler for width % 4 != 0
05025987cb WINCE: Fix mouse coordinate scaling when ARM scaler support is active
42f8f397f5 OPENPANDORA: Use the SDL plugin provider not the main POSIX one.
60bc0c84df WINCE: Some cleanup (public vs. private scopes), fix freelook
6e48fe2aa3 SCUMM: possible fix for #3315631
89affc9209 WINCE: Add support for language auto-detection in WinCE
ba53696d45 SCALERS: Fix Normal1xAspect scaler bug reported in bug #3313709
187b3770fb AUDIO: fix device detection (missing rom files for MT-32 emu)
247c28e0a2 KYRA: fix audio detection
3c83d9ab1f AUDIO: replace GUIErrorMessage()
cc4809a8cb AUDIO: replaced kDriverName in MidiDriver::detectDevice()
8cc6dad747 AUDIO: cleanup MidiDriver::detectDevice()
eab87fa196 I18N: Make MidiDriver detection errors translatable.
e6b671e659 AUDIO: some more text tweaks
6efc829f3a AUDIO: improved warnings in detectDevice()
ec8e6162c0 AUDIO: Remove dead code
1c9f7fdd01 SCUMM: fix engine destructor
6cb3cd58b6 SCUMM: some cleanup in gfx_towns.cpp
2443bc6d1f SCUMM FM-TOWNS: add number of color check in TownsScreen::updateOutputBuffer()
e2b3e39bc9 SCUMM: fix bug #3316738
d19b9ba8ed SCUMM: hopefully fix 16bit mode support for SCUMM FM-TOWNS games and LOOM PCE on Android
3c26c9b24d SCUMM: change comment in last commit
cc9bcd01d1 SCUMM: slightly changed behavior of 16bit mode detection
d09701e705 SCUMM: fix bug in cb661d63d0cd45d1231435a593b74dfc51872a0f
87e525932c SCUMM: fix FM-TOWNS graphics output for ARM devices
d9f6aea085 NEWS: start 1.3.1 section
6804df0f89 SCUMM: make sure asmDrawStripToScreen is not called in 16bit mode
77571fab08 SCUMM: regenerate 16bit palette after loading a savegame in LOOM PCE
e17a33c81e SCUMM: fix SCUMM3 FM-TOWNS font rendering glitch in Japanese mode
712579f4af TINSEL: Fix/comment CORO_KILL_SELF macro.
ee6765aab9 NEWS: Fix 1.3.1 news entry.
fc5c25e36e NEWS: Mention Tinsel fix.
0568c9540e SCI: Added the Spanish version of EcoQuest 2 (bug #3313962)
4a8bda6461 SCI: Fixed script bug #3313962 - "ECOQUEST2 Spanish: Crash near beginning"
6bfaddd70b WINCE: Hide toolbar when returning to game list
2165c6887a SCI: Added the Mac versions of LSL1, LSL5 and Dr. Brain 1
41359c7f32 SAGA: Fix Bug #3323722 ("IHNM: Crash to desktop in Ellen's Adventure")
7a60ce4040 SAGA: Fix for Bug #3324850 ("ITE (SAGA): crash in dog sewers")
c0c33ea78c MOHAWK: Add a bunch of LB detection entries.
1954c0c8e9 NEWS: Mention SAGA fixes, new Mohawk detection entries.
563a7065e1 SCI: Fixed bug #3325512: "EcoQuest 1: Audio settings are not saved"
de1dbba660 Updated NEWS with the latest SCI changes
cca706126e NEWS: Removed superfluous whitespace
ec56debc2a WINCE: Fix timer manager
ceec203ab3 WINCE: Added option to disable panel toggling with double tap on top of screen
0991ae0cc1 SCI: Fixed script bug #3292327 - "SCI: HOYLE4: Cribbage bug"
c271f09f48 SAMSUNGTV: Change save path. Requested by aquadran.
6ac4eda522 WINCE: Update port specific README
0d864a245e SCUMM: Fix first parameter in FontSJIS::drawChar call.
3861584c3e SCUMM: fix crash in digital iMuse games when using RTL and restarting
ee3f24a882 RELEASE: Set 1.3.1 release date
9b2c2dbfee Removed $URL$ and $Id$, as they don't get expanded by git.
4752c35272 Merge branch 'branch-1-3' of git at github.com:scummvm/scummvm into branch-1-3
584da65a1d AUDIO: fix issue in detectDevice when config manager setting is missing
97674b66b8 REDHAT: Update list of packaged data files
3595529c43 BUILD: Update the windows installer script.
67426720dd AUDIO: add registerDefault for music_driver
7ee067a8dd KYRA: fix ingame menu save slots
e70f1aae92 SCI: Added Missing Detection Entry for "Slater And Charlie Go Camping"
5d741212c6 TEENAGENT: Allocate large buffers on the heap instead of the stack
26f5d57bf5 WINCE: Change default values for "FM_high_quality" & "high_sample_rate"
6a93430db1 WINCE: Update port specific README
9096b3dc50 WINCE: Replace custom massadd with the global one (shows progress now)
a6d5d801b8 WINCE: Move initialization of TimerManager to overloaded init() method.
46d15c5203 WINCE: Change keymapping for AGI and Simon 1 & 2
7d9320e04c GRAPHICS: Allocate Common::PEResources on the heap in WinFont::loadFromPE()
dfe0c78f27 WINCE: Update port specific README


Commit: f8d5744a90e2b58861080056b903feb5b28145ab
    https://github.com/scummvm/scummvm/commit/f8d5744a90e2b58861080056b903feb5b28145ab
Author: sylvaintv (sylvaintv at gmail.com)
Date: 2011-06-02T07:29:41-07:00

Commit Message:
TOON: Fix crash #3308220

Bug #3308220: "Crashes"
Added clipping to magnifier effect
(cherry picked from commit 3429a14c119752daa8d17c499dbffb27a3fe23a5)

Changed paths:
    engines/toon/toon.cpp



diff --git a/engines/toon/toon.cpp b/engines/toon/toon.cpp
index 297390c..93e0aef 100644
--- a/engines/toon/toon.cpp
+++ b/engines/toon/toon.cpp
@@ -470,20 +470,24 @@ void ToonEngine::doMagnifierEffect() {
 
 	byte tempBuffer[25 * 25];
 	for (int32 y = -12; y <= 12; y++) {
+		int32 cy = CLIP<int32>(posY + y, 0, TOON_BACKBUFFER_HEIGHT-1);
 		for (int32 x = -12; x <= 12; x++) {
+			int32 cx = CLIP<int32>(posX + x, 0, TOON_BACKBUFFER_WIDTH-1);
 			int32 destPitch = surface.pitch;
-			uint8 *curRow = (uint8 *)surface.pixels + (posY + y) * destPitch + (posX + x);
+			uint8 *curRow = (uint8 *)surface.pixels + cy * destPitch + cx;
 			tempBuffer[(y + 12) * 25 + x + 12] = *curRow;
 		}
 	}
 
 	for (int32 y = -12; y <= 12; y++) {
+		int32 cy = CLIP<int32>(posY + y, 0, TOON_BACKBUFFER_HEIGHT-1);
 		for (int32 x = -12; x <= 12; x++) {
 			int32 dist = y * y + x * x;
 			if (dist > 144)
 				continue;
+			int32 cx = CLIP<int32>(posX + x, 0, TOON_BACKBUFFER_WIDTH-1);
 			int32 destPitch = surface.pitch;
-			uint8 *curRow = (uint8 *)surface.pixels + (posY + y) * destPitch + (posX + x);
+			uint8 *curRow = (uint8 *)surface.pixels + cy * destPitch + cx;
 			int32 lerp = (512 + intSqrt[dist] * 256 / 12);
 			*curRow = tempBuffer[(y * lerp / 1024 + 12) * 25 + x * lerp / 1024 + 12];
 		}


Commit: 9b74ad191b46283f477fb02ffe2576646f76ecc4
    https://github.com/scummvm/scummvm/commit/9b74ad191b46283f477fb02ffe2576646f76ecc4
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2011-06-04T06:50:34-07:00

Commit Message:
BUILD: Add missing include

This is in the mpeg2 player, so was completely unused and harmless.
Still fixing it to avoid confusion should we do a 1.3.1. (Bug #3311446)

Changed paths:
    video/mpeg_player.cpp



diff --git a/video/mpeg_player.cpp b/video/mpeg_player.cpp
index f583853..5b37cda 100644
--- a/video/mpeg_player.cpp
+++ b/video/mpeg_player.cpp
@@ -90,6 +90,7 @@
 #include "common/file.h"
 #include "common/system.h"
 #include "common/util.h"
+#include "common/textconsole.h"
 
 namespace Video {
 


Commit: 784a6f4caa73ea1bba416d38af57c5f5da6651be
    https://github.com/scummvm/scummvm/commit/784a6f4caa73ea1bba416d38af57c5f5da6651be
Author: Oystein Eftevaag (oystein at geheb.com)
Date: 2011-06-04T20:33:58-07:00

Commit Message:
IPHONE: Updated xcode project

Changed paths:
    dists/iphone/scummvm.xcodeproj/project.pbxproj



diff --git a/dists/iphone/scummvm.xcodeproj/project.pbxproj b/dists/iphone/scummvm.xcodeproj/project.pbxproj
index 6e44f35..894c218 100755
--- a/dists/iphone/scummvm.xcodeproj/project.pbxproj
+++ b/dists/iphone/scummvm.xcodeproj/project.pbxproj
@@ -36,7 +36,6 @@
 		8CB5A9E41253FDF500CB6BC7 /* teenagent.dat in Resources */ = {isa = PBXBuildFile; fileRef = 8CB5A9D81253FDF500CB6BC7 /* teenagent.dat */; };
 		8CD1ED0B126202AB00FA198C /* detection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECC6126202AA00FA198C /* detection.cpp */; };
 		8CD1ED0C126202AB00FA198C /* display.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECC7126202AA00FA198C /* display.cpp */; };
-		8CD1ED0D126202AB00FA198C /* engine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECC9126202AA00FA198C /* engine.cpp */; };
 		8CD1ED0E126202AB00FA198C /* file.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECCB126202AA00FA198C /* file.cpp */; };
 		8CD1ED0F126202AB00FA198C /* hugo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECCF126202AA00FA198C /* hugo.cpp */; };
 		8CD1ED10126202AB00FA198C /* intro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECD1126202AA00FA198C /* intro.cpp */; };
@@ -68,7 +67,6 @@
 		8CD1ED2E126202AB00FA198C /* toon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ED09126202AA00FA198C /* toon.cpp */; };
 		8CD1ED2F126202AB00FA198C /* detection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECC6126202AA00FA198C /* detection.cpp */; };
 		8CD1ED30126202AB00FA198C /* display.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECC7126202AA00FA198C /* display.cpp */; };
-		8CD1ED31126202AB00FA198C /* engine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECC9126202AA00FA198C /* engine.cpp */; };
 		8CD1ED32126202AB00FA198C /* file.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECCB126202AA00FA198C /* file.cpp */; };
 		8CD1ED33126202AB00FA198C /* hugo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECCF126202AA00FA198C /* hugo.cpp */; };
 		8CD1ED34126202AB00FA198C /* intro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECD1126202AA00FA198C /* intro.cpp */; };
@@ -100,7 +98,6 @@
 		8CD1ED52126202AB00FA198C /* toon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ED09126202AA00FA198C /* toon.cpp */; };
 		8CD1ED53126202AB00FA198C /* detection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECC6126202AA00FA198C /* detection.cpp */; };
 		8CD1ED54126202AB00FA198C /* display.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECC7126202AA00FA198C /* display.cpp */; };
-		8CD1ED55126202AB00FA198C /* engine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECC9126202AA00FA198C /* engine.cpp */; };
 		8CD1ED56126202AB00FA198C /* file.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECCB126202AA00FA198C /* file.cpp */; };
 		8CD1ED57126202AB00FA198C /* hugo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECCF126202AA00FA198C /* hugo.cpp */; };
 		8CD1ED58126202AB00FA198C /* intro.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD1ECD1126202AA00FA198C /* intro.cpp */; };
@@ -190,6 +187,7 @@
 		8CD80D13126272A0001C6C87 /* surface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD80CDA126272A0001C6C87 /* surface.cpp */; };
 		8CD80D14126272A0001C6C87 /* surface_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD80CDC126272A0001C6C87 /* surface_list.cpp */; };
 		8CD80D15126272A0001C6C87 /* teenagent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CD80CDE126272A0001C6C87 /* teenagent.cpp */; };
+		DF06D400139B29F700049EF7 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = DF06D3FF139B29F700049EF7 /* libz.dylib */; };
 		DF093E5F0F63CAD4002D821E /* pn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF093E5C0F63CAD4002D821E /* pn.cpp */; };
 		DF093E600F63CAD4002D821E /* script_pn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF093E5D0F63CAD4002D821E /* script_pn.cpp */; };
 		DF093E610F63CAD4002D821E /* vga_pn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF093E5E0F63CAD4002D821E /* vga_pn.cpp */; };
@@ -238,41 +236,14 @@
 		DF093EA80F63CB26002D821E /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477910D81F4E900B6D1FB /* console.cpp */; };
 		DF093EA90F63CB26002D821E /* debugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477940D81F4E900B6D1FB /* debugger.cpp */; };
 		DF093EAA0F63CB26002D821E /* dialog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477960D81F4E900B6D1FB /* dialog.cpp */; };
-		DF093EAB0F63CB26002D821E /* editable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477980D81F4E900B6D1FB /* editable.cpp */; };
-		DF093EAC0F63CB26002D821E /* EditTextWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE4779A0D81F4E900B6D1FB /* EditTextWidget.cpp */; };
 		DF093EAD0F63CB26002D821E /* Key.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE4779E0D81F4E900B6D1FB /* Key.cpp */; };
 		DF093EAE0F63CB26002D821E /* launcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477A20D81F4E900B6D1FB /* launcher.cpp */; };
-		DF093EAF0F63CB26002D821E /* ListWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477A40D81F4E900B6D1FB /* ListWidget.cpp */; };
 		DF093EB00F63CB26002D821E /* massadd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477A60D81F4E900B6D1FB /* massadd.cpp */; };
 		DF093EB10F63CB26002D821E /* message.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477A80D81F4E900B6D1FB /* message.cpp */; };
 		DF093EB20F63CB26002D821E /* object.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477AD0D81F4E900B6D1FB /* object.cpp */; };
 		DF093EB30F63CB26002D821E /* options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477AF0D81F4E900B6D1FB /* options.cpp */; };
-		DF093EB40F63CB26002D821E /* PopUpWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477B10D81F4E900B6D1FB /* PopUpWidget.cpp */; };
-		DF093EB50F63CB26002D821E /* ScrollBarWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477B30D81F4E900B6D1FB /* ScrollBarWidget.cpp */; };
-		DF093EB60F63CB26002D821E /* TabWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477B50D81F4E900B6D1FB /* TabWidget.cpp */; };
 		DF093EB70F63CB26002D821E /* themebrowser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477BA0D81F4E900B6D1FB /* themebrowser.cpp */; };
 		DF093EB80F63CB26002D821E /* widget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477C40D81F4E900B6D1FB /* widget.cpp */; };
-		DF093EBB0F63CB26002D821E /* audiocd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477CB0D81F4E900B6D1FB /* audiocd.cpp */; };
-		DF093EBC0F63CB26002D821E /* audiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477CD0D81F4E900B6D1FB /* audiostream.cpp */; };
-		DF093EBE0F63CB26002D821E /* fmopl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477D10D81F4E900B6D1FB /* fmopl.cpp */; };
-		DF093EC00F63CB26002D821E /* mididrv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477D50D81F4E900B6D1FB /* mididrv.cpp */; };
-		DF093EC10F63CB26002D821E /* midiparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477D70D81F4E900B6D1FB /* midiparser.cpp */; };
-		DF093EC20F63CB26002D821E /* midiparser_smf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477D90D81F4E900B6D1FB /* midiparser_smf.cpp */; };
-		DF093EC30F63CB26002D821E /* midiparser_xmidi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477DA0D81F4E900B6D1FB /* midiparser_xmidi.cpp */; };
-		DF093EC40F63CB26002D821E /* mixer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477DB0D81F4E900B6D1FB /* mixer.cpp */; };
-		DF093EC50F63CB26002D821E /* infogrames.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477DE0D81F4E900B6D1FB /* infogrames.cpp */; };
-		DF093EC60F63CB26002D821E /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E00D81F4E900B6D1FB /* module.cpp */; };
-		DF093EC70F63CB26002D821E /* paula.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E20D81F4E900B6D1FB /* paula.cpp */; };
-		DF093EC80F63CB26002D821E /* protracker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E40D81F4E900B6D1FB /* protracker.cpp */; };
-		DF093EC90F63CB26002D821E /* rjp1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E60D81F4E900B6D1FB /* rjp1.cpp */; };
-		DF093ECA0F63CB26002D821E /* soundfx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E80D81F4E900B6D1FB /* soundfx.cpp */; };
-		DF093ECC0F63CB26002D821E /* mpu401.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477ED0D81F4E900B6D1FB /* mpu401.cpp */; };
-		DF093ECD0F63CB26002D821E /* null.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477EF0D81F4E900B6D1FB /* null.cpp */; };
-		DF093ECE0F63CB26002D821E /* rate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477F00D81F4E900B6D1FB /* rate.cpp */; };
-		DF093ECF0F63CB26002D821E /* adlib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477F70D81F4E900B6D1FB /* adlib.cpp */; };
-		DF093ED00F63CB26002D821E /* fluidsynth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477F90D81F4E900B6D1FB /* fluidsynth.cpp */; };
-		DF093ED10F63CB26002D821E /* pcspk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE478210D81F4E900B6D1FB /* pcspk.cpp */; };
-		DF093ED20F63CB26002D821E /* ym2612.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE478230D81F4E900B6D1FB /* ym2612.cpp */; };
 		DF093ED60F63CB26002D821E /* memorypool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFD511460DF3383500854012 /* memorypool.cpp */; };
 		DF093ED70F63CB26002D821E /* seq.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFD517E10DF33CAC00854012 /* seq.cpp */; };
 		DF093ED80F63CB26002D821E /* scaler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFD5183B0DF3411800854012 /* scaler.cpp */; };
@@ -900,7 +871,6 @@
 		DF09417A0F63CB26002D821E /* archive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF842A400E7BBBB400F5680E /* archive.cpp */; };
 		DF09417B0F63CB26002D821E /* unarj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF842A450E7BBBB400F5680E /* unarj.cpp */; };
 		DF09417C0F63CB26002D821E /* stdiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF842A6B0E7BBD5700F5680E /* stdiostream.cpp */; };
-		DF09417D0F63CB26002D821E /* musicplugin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF842A6F0E7BBDB200F5680E /* musicplugin.cpp */; };
 		DF09417E0F63CB26002D821E /* saveload.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7E8BF00ED5FC77001CB19F /* saveload.cpp */; };
 		DF09417F0F63CB26002D821E /* ThemeEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7E8BF40ED5FC77001CB19F /* ThemeEngine.cpp */; };
 		DF0941800F63CB26002D821E /* ThemeEval.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7E8BF60ED5FC77001CB19F /* ThemeEval.cpp */; };
@@ -917,7 +887,6 @@
 		DF09418B0F63CB26002D821E /* thumbnail_intern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFAAB0010F011392003E9390 /* thumbnail_intern.cpp */; };
 		DF09418C0F63CB26002D821E /* dither.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFB900F485D890006E566 /* dither.cpp */; };
 		DF0941920F63CB26002D821E /* debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFBD10F485DFB0006E566 /* debug.cpp */; };
-		DF0941930F63CB26002D821E /* gui-manager.hcpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFBD50F485E360006E566 /* gui-manager.hcpp */; };
 		DF0941940F63CB26002D821E /* posix-saves.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFBF80F4860A60006E566 /* posix-saves.cpp */; };
 		DF0941950F63CB26002D821E /* bmv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFC1F0F4862520006E566 /* bmv.cpp */; };
 		DF0941960F63CB26002D821E /* dialogs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFC200F4862520006E566 /* dialogs.cpp */; };
@@ -989,12 +958,9 @@
 		DF09420D0F63CB26002D821E /* timer_lol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF573CBD0F5A85E100961A72 /* timer_lol.cpp */; };
 		DF0942100F63CB26002D821E /* sprites_lol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF89C2870F62D55C00D756B6 /* sprites_lol.cpp */; };
 		DF0942110F63CB26002D821E /* script.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF89C2A30F62D79E00D756B6 /* script.cpp */; };
-		DF0942140F63CB26002D821E /* timestamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF89C2B80F62D91000D756B6 /* timestamp.cpp */; };
 		DF0942150F63CB26002D821E /* pn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF093E5C0F63CAD4002D821E /* pn.cpp */; };
 		DF0942160F63CB26002D821E /* script_pn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF093E5D0F63CAD4002D821E /* script_pn.cpp */; };
 		DF0942170F63CB26002D821E /* vga_pn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF093E5E0F63CAD4002D821E /* vga_pn.cpp */; };
-		DF0942430F63CB9A002D821E /* events.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF0942350F63CB9A002D821E /* events.cpp */; };
-		DF0942450F63CB9A002D821E /* graphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF0942370F63CB9A002D821E /* graphics.cpp */; };
 		DF0942470F63CB9A002D821E /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF0942390F63CB9A002D821E /* main.cpp */; };
 		DF09424A0F63CB9A002D821E /* sdl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF09423C0F63CB9A002D821E /* sdl.cpp */; };
 		DF0943730F63D1DA002D821E /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF842A170E7BB34E00F5680E /* CoreFoundation.framework */; };
@@ -1029,9 +995,255 @@
 		DF0E303A1252C5BD0082D593 /* cms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF0E30391252C5BD0082D593 /* cms.cpp */; };
 		DF0E303B1252C5BD0082D593 /* cms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF0E30391252C5BD0082D593 /* cms.cpp */; };
 		DF0E303C1252C5BD0082D593 /* cms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF0E30391252C5BD0082D593 /* cms.cpp */; };
-		DF0E30411252C6090082D593 /* cms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF0E303F1252C6090082D593 /* cms.cpp */; };
-		DF0E30421252C6090082D593 /* cms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF0E303F1252C6090082D593 /* cms.cpp */; };
-		DF0E30431252C6090082D593 /* cms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF0E303F1252C6090082D593 /* cms.cpp */; };
+		DF203F471380C06E0056300A /* gui-manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F461380C06E0056300A /* gui-manager.cpp */; };
+		DF203F481380C06E0056300A /* gui-manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F461380C06E0056300A /* gui-manager.cpp */; };
+		DF203F491380C06E0056300A /* gui-manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F461380C06E0056300A /* gui-manager.cpp */; };
+		DF203F631380C2750056300A /* avi_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F531380C2740056300A /* avi_decoder.cpp */; };
+		DF203F641380C2750056300A /* coktel_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F551380C2740056300A /* coktel_decoder.cpp */; };
+		DF203F651380C2750056300A /* dxa_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F571380C2740056300A /* dxa_decoder.cpp */; };
+		DF203F661380C2750056300A /* flic_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F591380C2740056300A /* flic_decoder.cpp */; };
+		DF203F681380C2750056300A /* qt_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F5D1380C2740056300A /* qt_decoder.cpp */; };
+		DF203F691380C2750056300A /* smk_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F5F1380C2750056300A /* smk_decoder.cpp */; };
+		DF203F6A1380C2750056300A /* video_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F611380C2750056300A /* video_decoder.cpp */; };
+		DF203F6B1380C2750056300A /* avi_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F531380C2740056300A /* avi_decoder.cpp */; };
+		DF203F6C1380C2750056300A /* coktel_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F551380C2740056300A /* coktel_decoder.cpp */; };
+		DF203F6D1380C2750056300A /* dxa_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F571380C2740056300A /* dxa_decoder.cpp */; };
+		DF203F6E1380C2750056300A /* flic_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F591380C2740056300A /* flic_decoder.cpp */; };
+		DF203F701380C2750056300A /* qt_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F5D1380C2740056300A /* qt_decoder.cpp */; };
+		DF203F711380C2750056300A /* smk_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F5F1380C2750056300A /* smk_decoder.cpp */; };
+		DF203F721380C2750056300A /* video_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F611380C2750056300A /* video_decoder.cpp */; };
+		DF203F731380C2750056300A /* avi_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F531380C2740056300A /* avi_decoder.cpp */; };
+		DF203F741380C2750056300A /* coktel_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F551380C2740056300A /* coktel_decoder.cpp */; };
+		DF203F751380C2750056300A /* dxa_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F571380C2740056300A /* dxa_decoder.cpp */; };
+		DF203F761380C2750056300A /* flic_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F591380C2740056300A /* flic_decoder.cpp */; };
+		DF203F781380C2750056300A /* qt_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F5D1380C2740056300A /* qt_decoder.cpp */; };
+		DF203F791380C2750056300A /* smk_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F5F1380C2750056300A /* smk_decoder.cpp */; };
+		DF203F7A1380C2750056300A /* video_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F611380C2750056300A /* video_decoder.cpp */; };
+		DF203F951380C2920056300A /* cdtoons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F7C1380C2920056300A /* cdtoons.cpp */; };
+		DF203F961380C2920056300A /* cinepak.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F7E1380C2920056300A /* cinepak.cpp */; };
+		DF203F971380C2920056300A /* indeo3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F811380C2920056300A /* indeo3.cpp */; };
+		DF203F981380C2920056300A /* mjpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F831380C2920056300A /* mjpeg.cpp */; };
+		DF203F991380C2920056300A /* msrle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F851380C2920056300A /* msrle.cpp */; };
+		DF203F9A1380C2920056300A /* msvideo1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F871380C2920056300A /* msvideo1.cpp */; };
+		DF203F9B1380C2920056300A /* qdm2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F891380C2920056300A /* qdm2.cpp */; };
+		DF203F9C1380C2920056300A /* qtrle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F8C1380C2920056300A /* qtrle.cpp */; };
+		DF203F9D1380C2920056300A /* rpza.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F8E1380C2920056300A /* rpza.cpp */; };
+		DF203F9E1380C2920056300A /* smc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F901380C2920056300A /* smc.cpp */; };
+		DF203F9F1380C2920056300A /* truemotion1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F921380C2920056300A /* truemotion1.cpp */; };
+		DF203FA01380C2920056300A /* cdtoons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F7C1380C2920056300A /* cdtoons.cpp */; };
+		DF203FA11380C2920056300A /* cinepak.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F7E1380C2920056300A /* cinepak.cpp */; };
+		DF203FA21380C2920056300A /* indeo3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F811380C2920056300A /* indeo3.cpp */; };
+		DF203FA31380C2920056300A /* mjpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F831380C2920056300A /* mjpeg.cpp */; };
+		DF203FA41380C2920056300A /* msrle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F851380C2920056300A /* msrle.cpp */; };
+		DF203FA51380C2920056300A /* msvideo1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F871380C2920056300A /* msvideo1.cpp */; };
+		DF203FA61380C2920056300A /* qdm2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F891380C2920056300A /* qdm2.cpp */; };
+		DF203FA71380C2920056300A /* qtrle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F8C1380C2920056300A /* qtrle.cpp */; };
+		DF203FA81380C2920056300A /* rpza.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F8E1380C2920056300A /* rpza.cpp */; };
+		DF203FA91380C2920056300A /* smc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F901380C2920056300A /* smc.cpp */; };
+		DF203FAA1380C2920056300A /* truemotion1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F921380C2920056300A /* truemotion1.cpp */; };
+		DF203FAB1380C2920056300A /* cdtoons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F7C1380C2920056300A /* cdtoons.cpp */; };
+		DF203FAC1380C2920056300A /* cinepak.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F7E1380C2920056300A /* cinepak.cpp */; };
+		DF203FAD1380C2920056300A /* indeo3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F811380C2920056300A /* indeo3.cpp */; };
+		DF203FAE1380C2920056300A /* mjpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F831380C2920056300A /* mjpeg.cpp */; };
+		DF203FAF1380C2920056300A /* msrle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F851380C2920056300A /* msrle.cpp */; };
+		DF203FB01380C2920056300A /* msvideo1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F871380C2920056300A /* msvideo1.cpp */; };
+		DF203FB11380C2920056300A /* qdm2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F891380C2920056300A /* qdm2.cpp */; };
+		DF203FB21380C2920056300A /* qtrle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F8C1380C2920056300A /* qtrle.cpp */; };
+		DF203FB31380C2920056300A /* rpza.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F8E1380C2920056300A /* rpza.cpp */; };
+		DF203FB41380C2920056300A /* smc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F901380C2920056300A /* smc.cpp */; };
+		DF203FB51380C2920056300A /* truemotion1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203F921380C2920056300A /* truemotion1.cpp */; };
+		DF203FD51380C3BC0056300A /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC01380C3BC0056300A /* console.cpp */; };
+		DF203FD61380C3BC0056300A /* dialogs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC21380C3BC0056300A /* dialogs.cpp */; };
+		DF203FD71380C3BC0056300A /* file_v1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC41380C3BC0056300A /* file_v1d.cpp */; };
+		DF203FD81380C3BC0056300A /* file_v1w.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC51380C3BC0056300A /* file_v1w.cpp */; };
+		DF203FD91380C3BC0056300A /* file_v2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC61380C3BC0056300A /* file_v2d.cpp */; };
+		DF203FDA1380C3BC0056300A /* file_v2w.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC71380C3BC0056300A /* file_v2w.cpp */; };
+		DF203FDB1380C3BC0056300A /* file_v3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC81380C3BC0056300A /* file_v3d.cpp */; };
+		DF203FDC1380C3BC0056300A /* object_v1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC91380C3BC0056300A /* object_v1d.cpp */; };
+		DF203FDD1380C3BC0056300A /* object_v1w.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCA1380C3BC0056300A /* object_v1w.cpp */; };
+		DF203FDE1380C3BC0056300A /* object_v2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCB1380C3BC0056300A /* object_v2d.cpp */; };
+		DF203FDF1380C3BC0056300A /* object_v3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCC1380C3BC0056300A /* object_v3d.cpp */; };
+		DF203FE01380C3BC0056300A /* object.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCD1380C3BC0056300A /* object.cpp */; };
+		DF203FE11380C3BC0056300A /* parser_v1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCF1380C3BC0056300A /* parser_v1d.cpp */; };
+		DF203FE21380C3BC0056300A /* parser_v1w.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FD01380C3BC0056300A /* parser_v1w.cpp */; };
+		DF203FE31380C3BC0056300A /* parser_v2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FD11380C3BC0056300A /* parser_v2d.cpp */; };
+		DF203FE41380C3BC0056300A /* parser_v3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FD21380C3BC0056300A /* parser_v3d.cpp */; };
+		DF203FE51380C3BC0056300A /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FD31380C3BC0056300A /* text.cpp */; };
+		DF203FE61380C3BC0056300A /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC01380C3BC0056300A /* console.cpp */; };
+		DF203FE71380C3BC0056300A /* dialogs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC21380C3BC0056300A /* dialogs.cpp */; };
+		DF203FE81380C3BC0056300A /* file_v1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC41380C3BC0056300A /* file_v1d.cpp */; };
+		DF203FE91380C3BC0056300A /* file_v1w.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC51380C3BC0056300A /* file_v1w.cpp */; };
+		DF203FEA1380C3BC0056300A /* file_v2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC61380C3BC0056300A /* file_v2d.cpp */; };
+		DF203FEB1380C3BC0056300A /* file_v2w.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC71380C3BC0056300A /* file_v2w.cpp */; };
+		DF203FEC1380C3BC0056300A /* file_v3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC81380C3BC0056300A /* file_v3d.cpp */; };
+		DF203FED1380C3BC0056300A /* object_v1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC91380C3BC0056300A /* object_v1d.cpp */; };
+		DF203FEE1380C3BC0056300A /* object_v1w.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCA1380C3BC0056300A /* object_v1w.cpp */; };
+		DF203FEF1380C3BC0056300A /* object_v2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCB1380C3BC0056300A /* object_v2d.cpp */; };
+		DF203FF01380C3BC0056300A /* object_v3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCC1380C3BC0056300A /* object_v3d.cpp */; };
+		DF203FF11380C3BC0056300A /* object.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCD1380C3BC0056300A /* object.cpp */; };
+		DF203FF21380C3BC0056300A /* parser_v1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCF1380C3BC0056300A /* parser_v1d.cpp */; };
+		DF203FF31380C3BC0056300A /* parser_v1w.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FD01380C3BC0056300A /* parser_v1w.cpp */; };
+		DF203FF41380C3BC0056300A /* parser_v2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FD11380C3BC0056300A /* parser_v2d.cpp */; };
+		DF203FF51380C3BC0056300A /* parser_v3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FD21380C3BC0056300A /* parser_v3d.cpp */; };
+		DF203FF61380C3BC0056300A /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FD31380C3BC0056300A /* text.cpp */; };
+		DF203FF71380C3BC0056300A /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC01380C3BC0056300A /* console.cpp */; };
+		DF203FF81380C3BC0056300A /* dialogs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC21380C3BC0056300A /* dialogs.cpp */; };
+		DF203FF91380C3BC0056300A /* file_v1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC41380C3BC0056300A /* file_v1d.cpp */; };
+		DF203FFA1380C3BC0056300A /* file_v1w.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC51380C3BC0056300A /* file_v1w.cpp */; };
+		DF203FFB1380C3BC0056300A /* file_v2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC61380C3BC0056300A /* file_v2d.cpp */; };
+		DF203FFC1380C3BC0056300A /* file_v2w.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC71380C3BC0056300A /* file_v2w.cpp */; };
+		DF203FFD1380C3BC0056300A /* file_v3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC81380C3BC0056300A /* file_v3d.cpp */; };
+		DF203FFE1380C3BC0056300A /* object_v1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FC91380C3BC0056300A /* object_v1d.cpp */; };
+		DF203FFF1380C3BC0056300A /* object_v1w.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCA1380C3BC0056300A /* object_v1w.cpp */; };
+		DF2040001380C3BC0056300A /* object_v2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCB1380C3BC0056300A /* object_v2d.cpp */; };
+		DF2040011380C3BC0056300A /* object_v3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCC1380C3BC0056300A /* object_v3d.cpp */; };
+		DF2040021380C3BC0056300A /* object.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCD1380C3BC0056300A /* object.cpp */; };
+		DF2040031380C3BC0056300A /* parser_v1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FCF1380C3BC0056300A /* parser_v1d.cpp */; };
+		DF2040041380C3BC0056300A /* parser_v1w.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FD01380C3BC0056300A /* parser_v1w.cpp */; };
+		DF2040051380C3BC0056300A /* parser_v2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FD11380C3BC0056300A /* parser_v2d.cpp */; };
+		DF2040061380C3BC0056300A /* parser_v3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FD21380C3BC0056300A /* parser_v3d.cpp */; };
+		DF2040071380C3BC0056300A /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF203FD31380C3BC0056300A /* text.cpp */; };
+		DF20402E1380C8B70056300A /* editable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040221380C8B70056300A /* editable.cpp */; };
+		DF20402F1380C8B70056300A /* edittext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040241380C8B70056300A /* edittext.cpp */; };
+		DF2040301380C8B70056300A /* list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040261380C8B70056300A /* list.cpp */; };
+		DF2040311380C8B70056300A /* popup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040281380C8B70056300A /* popup.cpp */; };
+		DF2040321380C8B70056300A /* scrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20402A1380C8B70056300A /* scrollbar.cpp */; };
+		DF2040331380C8B70056300A /* tab.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20402C1380C8B70056300A /* tab.cpp */; };
+		DF2040341380C8B70056300A /* editable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040221380C8B70056300A /* editable.cpp */; };
+		DF2040351380C8B70056300A /* edittext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040241380C8B70056300A /* edittext.cpp */; };
+		DF2040361380C8B70056300A /* list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040261380C8B70056300A /* list.cpp */; };
+		DF2040371380C8B70056300A /* popup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040281380C8B70056300A /* popup.cpp */; };
+		DF2040381380C8B70056300A /* scrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20402A1380C8B70056300A /* scrollbar.cpp */; };
+		DF2040391380C8B70056300A /* tab.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20402C1380C8B70056300A /* tab.cpp */; };
+		DF20403A1380C8B70056300A /* editable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040221380C8B70056300A /* editable.cpp */; };
+		DF20403B1380C8B70056300A /* edittext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040241380C8B70056300A /* edittext.cpp */; };
+		DF20403C1380C8B70056300A /* list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040261380C8B70056300A /* list.cpp */; };
+		DF20403D1380C8B70056300A /* popup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040281380C8B70056300A /* popup.cpp */; };
+		DF20403E1380C8B70056300A /* scrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20402A1380C8B70056300A /* scrollbar.cpp */; };
+		DF20403F1380C8B70056300A /* tab.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20402C1380C8B70056300A /* tab.cpp */; };
+		DF20405E1380CA230056300A /* audiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040471380CA230056300A /* audiostream.cpp */; };
+		DF20405F1380CA230056300A /* fmopl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040491380CA230056300A /* fmopl.cpp */; };
+		DF2040601380CA230056300A /* mididrv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20404B1380CA230056300A /* mididrv.cpp */; };
+		DF2040611380CA230056300A /* midiparser_smf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20404D1380CA230056300A /* midiparser_smf.cpp */; };
+		DF2040621380CA230056300A /* midiparser_xmidi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20404E1380CA230056300A /* midiparser_xmidi.cpp */; };
+		DF2040631380CA230056300A /* midiparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20404F1380CA230056300A /* midiparser.cpp */; };
+		DF2040641380CA230056300A /* midiplayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040511380CA230056300A /* midiplayer.cpp */; };
+		DF2040651380CA230056300A /* mixer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040541380CA230056300A /* mixer.cpp */; };
+		DF2040661380CA230056300A /* mpu401.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040561380CA230056300A /* mpu401.cpp */; };
+		DF2040671380CA230056300A /* musicplugin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040581380CA230056300A /* musicplugin.cpp */; };
+		DF2040681380CA230056300A /* rate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20405A1380CA230056300A /* rate.cpp */; };
+		DF2040691380CA230056300A /* timestamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20405C1380CA230056300A /* timestamp.cpp */; };
+		DF20406A1380CA230056300A /* audiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040471380CA230056300A /* audiostream.cpp */; };
+		DF20406B1380CA230056300A /* fmopl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040491380CA230056300A /* fmopl.cpp */; };
+		DF20406C1380CA230056300A /* mididrv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20404B1380CA230056300A /* mididrv.cpp */; };
+		DF20406D1380CA230056300A /* midiparser_smf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20404D1380CA230056300A /* midiparser_smf.cpp */; };
+		DF20406E1380CA230056300A /* midiparser_xmidi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20404E1380CA230056300A /* midiparser_xmidi.cpp */; };
+		DF20406F1380CA230056300A /* midiparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20404F1380CA230056300A /* midiparser.cpp */; };
+		DF2040701380CA230056300A /* midiplayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040511380CA230056300A /* midiplayer.cpp */; };
+		DF2040711380CA230056300A /* mixer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040541380CA230056300A /* mixer.cpp */; };
+		DF2040721380CA230056300A /* mpu401.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040561380CA230056300A /* mpu401.cpp */; };
+		DF2040731380CA230056300A /* musicplugin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040581380CA230056300A /* musicplugin.cpp */; };
+		DF2040741380CA230056300A /* rate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20405A1380CA230056300A /* rate.cpp */; };
+		DF2040751380CA230056300A /* timestamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20405C1380CA230056300A /* timestamp.cpp */; };
+		DF2040761380CA230056300A /* audiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040471380CA230056300A /* audiostream.cpp */; };
+		DF2040771380CA230056300A /* fmopl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040491380CA230056300A /* fmopl.cpp */; };
+		DF2040781380CA230056300A /* mididrv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20404B1380CA230056300A /* mididrv.cpp */; };
+		DF2040791380CA230056300A /* midiparser_smf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20404D1380CA230056300A /* midiparser_smf.cpp */; };
+		DF20407A1380CA230056300A /* midiparser_xmidi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20404E1380CA230056300A /* midiparser_xmidi.cpp */; };
+		DF20407B1380CA230056300A /* midiparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20404F1380CA230056300A /* midiparser.cpp */; };
+		DF20407C1380CA230056300A /* midiplayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040511380CA230056300A /* midiplayer.cpp */; };
+		DF20407D1380CA230056300A /* mixer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040541380CA230056300A /* mixer.cpp */; };
+		DF20407E1380CA230056300A /* mpu401.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040561380CA230056300A /* mpu401.cpp */; };
+		DF20407F1380CA230056300A /* musicplugin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040581380CA230056300A /* musicplugin.cpp */; };
+		DF2040801380CA230056300A /* rate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20405A1380CA230056300A /* rate.cpp */; };
+		DF2040811380CA230056300A /* timestamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20405C1380CA230056300A /* timestamp.cpp */; };
+		DF20409A1380CA400056300A /* adpcm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040841380CA400056300A /* adpcm.cpp */; };
+		DF20409B1380CA400056300A /* aiff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040861380CA400056300A /* aiff.cpp */; };
+		DF20409C1380CA400056300A /* flac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040881380CA400056300A /* flac.cpp */; };
+		DF20409D1380CA400056300A /* iff_sound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20408A1380CA400056300A /* iff_sound.cpp */; };
+		DF20409E1380CA400056300A /* mac_snd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20408C1380CA400056300A /* mac_snd.cpp */; };
+		DF20409F1380CA400056300A /* mp3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20408E1380CA400056300A /* mp3.cpp */; };
+		DF2040A01380CA400056300A /* raw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040901380CA400056300A /* raw.cpp */; };
+		DF2040A11380CA400056300A /* vag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040921380CA400056300A /* vag.cpp */; };
+		DF2040A21380CA400056300A /* voc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040941380CA400056300A /* voc.cpp */; };
+		DF2040A31380CA400056300A /* vorbis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040961380CA400056300A /* vorbis.cpp */; };
+		DF2040A41380CA400056300A /* wave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040981380CA400056300A /* wave.cpp */; };
+		DF2040A51380CA400056300A /* adpcm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040841380CA400056300A /* adpcm.cpp */; };
+		DF2040A61380CA400056300A /* aiff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040861380CA400056300A /* aiff.cpp */; };
+		DF2040A71380CA400056300A /* flac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040881380CA400056300A /* flac.cpp */; };
+		DF2040A81380CA400056300A /* iff_sound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20408A1380CA400056300A /* iff_sound.cpp */; };
+		DF2040A91380CA400056300A /* mac_snd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20408C1380CA400056300A /* mac_snd.cpp */; };
+		DF2040AA1380CA400056300A /* mp3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20408E1380CA400056300A /* mp3.cpp */; };
+		DF2040AB1380CA400056300A /* raw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040901380CA400056300A /* raw.cpp */; };
+		DF2040AC1380CA400056300A /* vag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040921380CA400056300A /* vag.cpp */; };
+		DF2040AD1380CA400056300A /* voc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040941380CA400056300A /* voc.cpp */; };
+		DF2040AE1380CA400056300A /* vorbis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040961380CA400056300A /* vorbis.cpp */; };
+		DF2040AF1380CA400056300A /* wave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040981380CA400056300A /* wave.cpp */; };
+		DF2040B01380CA400056300A /* adpcm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040841380CA400056300A /* adpcm.cpp */; };
+		DF2040B11380CA400056300A /* aiff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040861380CA400056300A /* aiff.cpp */; };
+		DF2040B21380CA400056300A /* flac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040881380CA400056300A /* flac.cpp */; };
+		DF2040B31380CA400056300A /* iff_sound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20408A1380CA400056300A /* iff_sound.cpp */; };
+		DF2040B41380CA400056300A /* mac_snd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20408C1380CA400056300A /* mac_snd.cpp */; };
+		DF2040B51380CA400056300A /* mp3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF20408E1380CA400056300A /* mp3.cpp */; };
+		DF2040B61380CA400056300A /* raw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040901380CA400056300A /* raw.cpp */; };
+		DF2040B71380CA400056300A /* vag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040921380CA400056300A /* vag.cpp */; };
+		DF2040B81380CA400056300A /* voc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040941380CA400056300A /* voc.cpp */; };
+		DF2040B91380CA400056300A /* vorbis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040961380CA400056300A /* vorbis.cpp */; };
+		DF2040BA1380CA400056300A /* wave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040981380CA400056300A /* wave.cpp */; };
+		DF2040CC1380CA810056300A /* infogrames.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040BC1380CA810056300A /* infogrames.cpp */; };
+		DF2040CD1380CA810056300A /* maxtrax.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040BE1380CA810056300A /* maxtrax.cpp */; };
+		DF2040CE1380CA810056300A /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C01380CA810056300A /* module.cpp */; };
+		DF2040CF1380CA810056300A /* paula.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C21380CA810056300A /* paula.cpp */; };
+		DF2040D01380CA810056300A /* protracker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C41380CA810056300A /* protracker.cpp */; };
+		DF2040D11380CA810056300A /* rjp1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C61380CA810056300A /* rjp1.cpp */; };
+		DF2040D21380CA810056300A /* soundfx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C81380CA810056300A /* soundfx.cpp */; };
+		DF2040D31380CA810056300A /* tfmx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040CA1380CA810056300A /* tfmx.cpp */; };
+		DF2040D41380CA810056300A /* infogrames.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040BC1380CA810056300A /* infogrames.cpp */; };
+		DF2040D51380CA810056300A /* maxtrax.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040BE1380CA810056300A /* maxtrax.cpp */; };
+		DF2040D61380CA810056300A /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C01380CA810056300A /* module.cpp */; };
+		DF2040D71380CA810056300A /* paula.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C21380CA810056300A /* paula.cpp */; };
+		DF2040D81380CA810056300A /* protracker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C41380CA810056300A /* protracker.cpp */; };
+		DF2040D91380CA810056300A /* rjp1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C61380CA810056300A /* rjp1.cpp */; };
+		DF2040DA1380CA810056300A /* soundfx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C81380CA810056300A /* soundfx.cpp */; };
+		DF2040DB1380CA810056300A /* tfmx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040CA1380CA810056300A /* tfmx.cpp */; };
+		DF2040DC1380CA810056300A /* infogrames.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040BC1380CA810056300A /* infogrames.cpp */; };
+		DF2040DD1380CA810056300A /* maxtrax.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040BE1380CA810056300A /* maxtrax.cpp */; };
+		DF2040DE1380CA810056300A /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C01380CA810056300A /* module.cpp */; };
+		DF2040DF1380CA810056300A /* paula.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C21380CA810056300A /* paula.cpp */; };
+		DF2040E01380CA810056300A /* protracker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C41380CA810056300A /* protracker.cpp */; };
+		DF2040E11380CA810056300A /* rjp1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C61380CA810056300A /* rjp1.cpp */; };
+		DF2040E21380CA810056300A /* soundfx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040C81380CA810056300A /* soundfx.cpp */; };
+		DF2040E31380CA810056300A /* tfmx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040CA1380CA810056300A /* tfmx.cpp */; };
+		DF2040F41380CAA40056300A /* adlib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040E51380CAA40056300A /* adlib.cpp */; };
+		DF2040F51380CAA40056300A /* appleiigs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040E61380CAA40056300A /* appleiigs.cpp */; };
+		DF2040F61380CAA40056300A /* cms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040E71380CAA40056300A /* cms.cpp */; };
+		DF2040F71380CAA40056300A /* eas.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040E91380CAA40056300A /* eas.cpp */; };
+		DF2040F81380CAA40056300A /* fluidsynth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040EB1380CAA40056300A /* fluidsynth.cpp */; };
+		DF2040F91380CAA40056300A /* mt32.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040EC1380CAA40056300A /* mt32.cpp */; };
+		DF2040FA1380CAA40056300A /* pcspk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040ED1380CAA40056300A /* pcspk.cpp */; };
+		DF2040FB1380CAA40056300A /* sid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040EF1380CAA40056300A /* sid.cpp */; };
+		DF2040FC1380CAA40056300A /* wave6581.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040F11380CAA40056300A /* wave6581.cpp */; };
+		DF2040FD1380CAA40056300A /* ym2612.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040F21380CAA40056300A /* ym2612.cpp */; };
+		DF2040FE1380CAA40056300A /* adlib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040E51380CAA40056300A /* adlib.cpp */; };
+		DF2040FF1380CAA40056300A /* appleiigs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040E61380CAA40056300A /* appleiigs.cpp */; };
+		DF2041001380CAA40056300A /* cms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040E71380CAA40056300A /* cms.cpp */; };
+		DF2041011380CAA40056300A /* eas.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040E91380CAA40056300A /* eas.cpp */; };
+		DF2041021380CAA40056300A /* fluidsynth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040EB1380CAA40056300A /* fluidsynth.cpp */; };
+		DF2041031380CAA40056300A /* mt32.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040EC1380CAA40056300A /* mt32.cpp */; };
+		DF2041041380CAA40056300A /* pcspk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040ED1380CAA40056300A /* pcspk.cpp */; };
+		DF2041051380CAA40056300A /* sid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040EF1380CAA40056300A /* sid.cpp */; };
+		DF2041061380CAA40056300A /* wave6581.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040F11380CAA40056300A /* wave6581.cpp */; };
+		DF2041071380CAA40056300A /* ym2612.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040F21380CAA40056300A /* ym2612.cpp */; };
+		DF2041081380CAA40056300A /* adlib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040E51380CAA40056300A /* adlib.cpp */; };
+		DF2041091380CAA40056300A /* appleiigs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040E61380CAA40056300A /* appleiigs.cpp */; };
+		DF20410A1380CAA40056300A /* cms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040E71380CAA40056300A /* cms.cpp */; };
+		DF20410B1380CAA40056300A /* eas.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040E91380CAA40056300A /* eas.cpp */; };
+		DF20410C1380CAA40056300A /* fluidsynth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040EB1380CAA40056300A /* fluidsynth.cpp */; };
+		DF20410D1380CAA40056300A /* mt32.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040EC1380CAA40056300A /* mt32.cpp */; };
+		DF20410E1380CAA40056300A /* pcspk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040ED1380CAA40056300A /* pcspk.cpp */; };
+		DF20410F1380CAA40056300A /* sid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040EF1380CAA40056300A /* sid.cpp */; };
+		DF2041101380CAA40056300A /* wave6581.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040F11380CAA40056300A /* wave6581.cpp */; };
+		DF2041111380CAA40056300A /* ym2612.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2040F21380CAA40056300A /* ym2612.cpp */; };
 		DF224E040FB23BC500C8E453 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF224E020FB23BC500C8E453 /* OpenGLES.framework */; };
 		DF224E050FB23BC500C8E453 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF224E020FB23BC500C8E453 /* OpenGLES.framework */; };
 		DF2EC3E510E6490800765801 /* browser_osx.mm in Sources */ = {isa = PBXBuildFile; fileRef = DF2EC3E410E6490800765801 /* browser_osx.mm */; };
@@ -1053,15 +1265,8 @@
 		DF2EC50B10E64DB300765801 /* textconsole.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2EC50910E64DB300765801 /* textconsole.cpp */; };
 		DF2EC50C10E64DB300765801 /* textconsole.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2EC50910E64DB300765801 /* textconsole.cpp */; };
 		DF2EC50D10E64DB300765801 /* textconsole.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2EC50910E64DB300765801 /* textconsole.cpp */; };
-		DF2EC51210E64E3100765801 /* sid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2EC51010E64E3100765801 /* sid.cpp */; };
-		DF2EC51310E64E3100765801 /* sid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2EC51010E64E3100765801 /* sid.cpp */; };
-		DF2EC51410E64E3100765801 /* sid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2EC51010E64E3100765801 /* sid.cpp */; };
-		DF2EC51810E64EE600765801 /* wave6581.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2EC51710E64EE600765801 /* wave6581.cpp */; };
-		DF2EC51910E64EE600765801 /* wave6581.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2EC51710E64EE600765801 /* wave6581.cpp */; };
-		DF2EC51A10E64EE600765801 /* wave6581.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2EC51710E64EE600765801 /* wave6581.cpp */; };
 		DF2FFB930F485D890006E566 /* dither.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFB900F485D890006E566 /* dither.cpp */; };
 		DF2FFBD30F485DFB0006E566 /* debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFBD10F485DFB0006E566 /* debug.cpp */; };
-		DF2FFBD90F485E360006E566 /* gui-manager.hcpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFBD50F485E360006E566 /* gui-manager.hcpp */; };
 		DF2FFBFC0F4860A60006E566 /* posix-saves.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFBF80F4860A60006E566 /* posix-saves.cpp */; };
 		DF2FFC290F4862520006E566 /* bmv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFC1F0F4862520006E566 /* bmv.cpp */; };
 		DF2FFC2A0F4862520006E566 /* dialogs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFC200F4862520006E566 /* dialogs.cpp */; };
@@ -1109,36 +1314,6 @@
 		DF2FFD2B0F48717F0006E566 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = DF2FFD290F48717F0006E566 /* Default.png */; };
 		DF2FFD2C0F48717F0006E566 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = DF2FFD2A0F48717F0006E566 /* icon.png */; };
 		DF2FFD2D0F48719E0006E566 /* scummclassic.zip in Resources */ = {isa = PBXBuildFile; fileRef = DF2FFBDB0F485E480006E566 /* scummclassic.zip */; };
-		DF45B11F116627DA009B85CC /* adpcm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B0F7116627DA009B85CC /* adpcm.cpp */; };
-		DF45B121116627DA009B85CC /* aiff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B0FA116627DA009B85CC /* aiff.cpp */; };
-		DF45B123116627DA009B85CC /* flac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B0FD116627DA009B85CC /* flac.cpp */; };
-		DF45B125116627DA009B85CC /* iff_sound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B100116627DA009B85CC /* iff_sound.cpp */; };
-		DF45B127116627DA009B85CC /* mp3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B103116627DA009B85CC /* mp3.cpp */; };
-		DF45B129116627DA009B85CC /* raw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B106116627DA009B85CC /* raw.cpp */; };
-		DF45B12B116627DA009B85CC /* vag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B109116627DA009B85CC /* vag.cpp */; };
-		DF45B12D116627DA009B85CC /* voc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B10C116627DA009B85CC /* voc.cpp */; };
-		DF45B12F116627DA009B85CC /* vorbis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B10F116627DA009B85CC /* vorbis.cpp */; };
-		DF45B131116627DA009B85CC /* wave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B112116627DA009B85CC /* wave.cpp */; };
-		DF45B13D116627DA009B85CC /* adpcm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B0F7116627DA009B85CC /* adpcm.cpp */; };
-		DF45B13F116627DA009B85CC /* aiff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B0FA116627DA009B85CC /* aiff.cpp */; };
-		DF45B141116627DA009B85CC /* flac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B0FD116627DA009B85CC /* flac.cpp */; };
-		DF45B143116627DA009B85CC /* iff_sound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B100116627DA009B85CC /* iff_sound.cpp */; };
-		DF45B145116627DA009B85CC /* mp3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B103116627DA009B85CC /* mp3.cpp */; };
-		DF45B147116627DA009B85CC /* raw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B106116627DA009B85CC /* raw.cpp */; };
-		DF45B149116627DA009B85CC /* vag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B109116627DA009B85CC /* vag.cpp */; };
-		DF45B14B116627DA009B85CC /* voc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B10C116627DA009B85CC /* voc.cpp */; };
-		DF45B14D116627DA009B85CC /* vorbis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B10F116627DA009B85CC /* vorbis.cpp */; };
-		DF45B14F116627DA009B85CC /* wave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B112116627DA009B85CC /* wave.cpp */; };
-		DF45B15B116627DA009B85CC /* adpcm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B0F7116627DA009B85CC /* adpcm.cpp */; };
-		DF45B15D116627DA009B85CC /* aiff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B0FA116627DA009B85CC /* aiff.cpp */; };
-		DF45B15F116627DA009B85CC /* flac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B0FD116627DA009B85CC /* flac.cpp */; };
-		DF45B161116627DA009B85CC /* iff_sound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B100116627DA009B85CC /* iff_sound.cpp */; };
-		DF45B163116627DA009B85CC /* mp3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B103116627DA009B85CC /* mp3.cpp */; };
-		DF45B165116627DA009B85CC /* raw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B106116627DA009B85CC /* raw.cpp */; };
-		DF45B167116627DA009B85CC /* vag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B109116627DA009B85CC /* vag.cpp */; };
-		DF45B169116627DA009B85CC /* voc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B10C116627DA009B85CC /* voc.cpp */; };
-		DF45B16B116627DA009B85CC /* vorbis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B10F116627DA009B85CC /* vorbis.cpp */; };
-		DF45B16D116627DA009B85CC /* wave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B112116627DA009B85CC /* wave.cpp */; };
 		DF45B1CA116628A5009B85CC /* animate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B176116628A5009B85CC /* animate.cpp */; };
 		DF45B1CB116628A5009B85CC /* cache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B178116628A5009B85CC /* cache.cpp */; };
 		DF45B1CC116628A5009B85CC /* compare.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B17A116628A5009B85CC /* compare.cpp */; };
@@ -1229,6 +1404,137 @@
 		DF45B244116628A5009B85CC /* music.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B1C1116628A5009B85CC /* music.cpp */; };
 		DF45B245116628A5009B85CC /* soundcmd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B1C3116628A5009B85CC /* soundcmd.cpp */; };
 		DF45B246116628A5009B85CC /* seq_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF45B1C6116628A5009B85CC /* seq_decoder.cpp */; };
+		DF46B6F31381E18900D08723 /* coroutine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6F21381E18900D08723 /* coroutine.cpp */; };
+		DF46B6F41381E18900D08723 /* coroutine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6F21381E18900D08723 /* coroutine.cpp */; };
+		DF46B6F51381E18900D08723 /* coroutine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6F21381E18900D08723 /* coroutine.cpp */; };
+		DF46B6FF1381E1FF00D08723 /* towns_audio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6F71381E1FF00D08723 /* towns_audio.cpp */; };
+		DF46B7001381E1FF00D08723 /* towns_euphony.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6F91381E1FF00D08723 /* towns_euphony.cpp */; };
+		DF46B7011381E1FF00D08723 /* towns_pc98_driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6FB1381E1FF00D08723 /* towns_pc98_driver.cpp */; };
+		DF46B7021381E1FF00D08723 /* towns_pc98_fmsynth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6FD1381E1FF00D08723 /* towns_pc98_fmsynth.cpp */; };
+		DF46B7031381E1FF00D08723 /* towns_audio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6F71381E1FF00D08723 /* towns_audio.cpp */; };
+		DF46B7041381E1FF00D08723 /* towns_euphony.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6F91381E1FF00D08723 /* towns_euphony.cpp */; };
+		DF46B7051381E1FF00D08723 /* towns_pc98_driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6FB1381E1FF00D08723 /* towns_pc98_driver.cpp */; };
+		DF46B7061381E1FF00D08723 /* towns_pc98_fmsynth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6FD1381E1FF00D08723 /* towns_pc98_fmsynth.cpp */; };
+		DF46B7071381E1FF00D08723 /* towns_audio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6F71381E1FF00D08723 /* towns_audio.cpp */; };
+		DF46B7081381E1FF00D08723 /* towns_euphony.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6F91381E1FF00D08723 /* towns_euphony.cpp */; };
+		DF46B7091381E1FF00D08723 /* towns_pc98_driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6FB1381E1FF00D08723 /* towns_pc98_driver.cpp */; };
+		DF46B70A1381E1FF00D08723 /* towns_pc98_fmsynth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B6FD1381E1FF00D08723 /* towns_pc98_fmsynth.cpp */; };
+		DF46B7191381E27000D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B70F1381E27000D08723 /* console.cpp */; };
+		DF46B71A1381E27000D08723 /* databases.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7111381E27000D08723 /* databases.cpp */; };
+		DF46B71B1381E27000D08723 /* dbase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7131381E27000D08723 /* dbase.cpp */; };
+		DF46B71C1381E27000D08723 /* iniconfig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7151381E27000D08723 /* iniconfig.cpp */; };
+		DF46B71D1381E27000D08723 /* init_v7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7171381E27000D08723 /* init_v7.cpp */; };
+		DF46B71E1381E27000D08723 /* inter_inca2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7181381E27000D08723 /* inter_inca2.cpp */; };
+		DF46B71F1381E27000D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B70F1381E27000D08723 /* console.cpp */; };
+		DF46B7201381E27000D08723 /* databases.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7111381E27000D08723 /* databases.cpp */; };
+		DF46B7211381E27000D08723 /* dbase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7131381E27000D08723 /* dbase.cpp */; };
+		DF46B7221381E27000D08723 /* iniconfig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7151381E27000D08723 /* iniconfig.cpp */; };
+		DF46B7231381E27000D08723 /* init_v7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7171381E27000D08723 /* init_v7.cpp */; };
+		DF46B7241381E27000D08723 /* inter_inca2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7181381E27000D08723 /* inter_inca2.cpp */; };
+		DF46B7251381E27000D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B70F1381E27000D08723 /* console.cpp */; };
+		DF46B7261381E27000D08723 /* databases.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7111381E27000D08723 /* databases.cpp */; };
+		DF46B7271381E27000D08723 /* dbase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7131381E27000D08723 /* dbase.cpp */; };
+		DF46B7281381E27000D08723 /* iniconfig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7151381E27000D08723 /* iniconfig.cpp */; };
+		DF46B7291381E27000D08723 /* init_v7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7171381E27000D08723 /* init_v7.cpp */; };
+		DF46B72A1381E27000D08723 /* inter_inca2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7181381E27000D08723 /* inter_inca2.cpp */; };
+		DF46B7441381E40500D08723 /* log.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7421381E40500D08723 /* log.cpp */; };
+		DF46B7451381E40500D08723 /* log.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7421381E40500D08723 /* log.cpp */; };
+		DF46B7461381E40500D08723 /* log.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7421381E40500D08723 /* log.cpp */; };
+		DF46B7491381E40F00D08723 /* modular-backend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7471381E40F00D08723 /* modular-backend.cpp */; };
+		DF46B74A1381E40F00D08723 /* modular-backend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7471381E40F00D08723 /* modular-backend.cpp */; };
+		DF46B74B1381E40F00D08723 /* modular-backend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7471381E40F00D08723 /* modular-backend.cpp */; };
+		DF46B7541381E46700D08723 /* player_v2base.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7511381E46700D08723 /* player_v2base.cpp */; };
+		DF46B7551381E46700D08723 /* player_v2base.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7511381E46700D08723 /* player_v2base.cpp */; };
+		DF46B7561381E46700D08723 /* player_v2base.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7511381E46700D08723 /* player_v2base.cpp */; };
+		DF46B75E1381E4A400D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B75B1381E4A400D08723 /* console.cpp */; };
+		DF46B75F1381E4A400D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B75B1381E4A400D08723 /* console.cpp */; };
+		DF46B7601381E4A400D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B75B1381E4A400D08723 /* console.cpp */; };
+		DF46B7631381E4D400D08723 /* robot_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7611381E4D400D08723 /* robot_decoder.cpp */; };
+		DF46B7641381E4D400D08723 /* robot_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7611381E4D400D08723 /* robot_decoder.cpp */; };
+		DF46B7651381E4D400D08723 /* robot_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7611381E4D400D08723 /* robot_decoder.cpp */; };
+		DF46B7671381E4E400D08723 /* vm_types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7661381E4E400D08723 /* vm_types.cpp */; };
+		DF46B7681381E4E400D08723 /* vm_types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7661381E4E400D08723 /* vm_types.cpp */; };
+		DF46B7691381E4E400D08723 /* vm_types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7661381E4E400D08723 /* vm_types.cpp */; };
+		DF46B77B1381E54200D08723 /* dcl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B76F1381E54200D08723 /* dcl.cpp */; };
+		DF46B77C1381E54200D08723 /* iff_container.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7721381E54200D08723 /* iff_container.cpp */; };
+		DF46B77D1381E54200D08723 /* winexe_ne.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7751381E54200D08723 /* winexe_ne.cpp */; };
+		DF46B77E1381E54200D08723 /* winexe_pe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7771381E54200D08723 /* winexe_pe.cpp */; };
+		DF46B77F1381E54200D08723 /* winexe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7791381E54200D08723 /* winexe.cpp */; };
+		DF46B7801381E54200D08723 /* dcl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B76F1381E54200D08723 /* dcl.cpp */; };
+		DF46B7811381E54200D08723 /* iff_container.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7721381E54200D08723 /* iff_container.cpp */; };
+		DF46B7821381E54200D08723 /* winexe_ne.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7751381E54200D08723 /* winexe_ne.cpp */; };
+		DF46B7831381E54200D08723 /* winexe_pe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7771381E54200D08723 /* winexe_pe.cpp */; };
+		DF46B7841381E54200D08723 /* winexe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7791381E54200D08723 /* winexe.cpp */; };
+		DF46B7851381E54200D08723 /* dcl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B76F1381E54200D08723 /* dcl.cpp */; };
+		DF46B7861381E54200D08723 /* iff_container.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7721381E54200D08723 /* iff_container.cpp */; };
+		DF46B7871381E54200D08723 /* winexe_ne.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7751381E54200D08723 /* winexe_ne.cpp */; };
+		DF46B7881381E54200D08723 /* winexe_pe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7771381E54200D08723 /* winexe_pe.cpp */; };
+		DF46B7891381E54200D08723 /* winexe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7791381E54200D08723 /* winexe.cpp */; };
+		DF46B7931381E58000D08723 /* png.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B78F1381E58000D08723 /* png.cpp */; };
+		DF46B7941381E58000D08723 /* wincursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7911381E58000D08723 /* wincursor.cpp */; };
+		DF46B7951381E58000D08723 /* png.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B78F1381E58000D08723 /* png.cpp */; };
+		DF46B7961381E58000D08723 /* wincursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7911381E58000D08723 /* wincursor.cpp */; };
+		DF46B7971381E58000D08723 /* png.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B78F1381E58000D08723 /* png.cpp */; };
+		DF46B7981381E58000D08723 /* wincursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7911381E58000D08723 /* wincursor.cpp */; };
+		DF46B79F1381E5B500D08723 /* winfont.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B79D1381E5B500D08723 /* winfont.cpp */; };
+		DF46B7A01381E5B500D08723 /* winfont.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B79D1381E5B500D08723 /* winfont.cpp */; };
+		DF46B7A11381E5B500D08723 /* winfont.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B79D1381E5B500D08723 /* winfont.cpp */; };
+		DF46B7A51381E5D900D08723 /* sdl-timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7A31381E5D900D08723 /* sdl-timer.cpp */; };
+		DF46B7A91381E5F100D08723 /* header.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7A81381E5F100D08723 /* header.cpp */; };
+		DF46B7AA1381E5F100D08723 /* header.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7A81381E5F100D08723 /* header.cpp */; };
+		DF46B7AB1381E5F100D08723 /* header.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7A81381E5F100D08723 /* header.cpp */; };
+		DF46B7B41381E67800D08723 /* sdl-mutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7B21381E67800D08723 /* sdl-mutex.cpp */; };
+		DF46B7B51381E67800D08723 /* sdl-mutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7B21381E67800D08723 /* sdl-mutex.cpp */; };
+		DF46B7B61381E67800D08723 /* sdl-mutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7B21381E67800D08723 /* sdl-mutex.cpp */; };
+		DF46B7BD1381E6C000D08723 /* object.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7BB1381E6C000D08723 /* object.cpp */; };
+		DF46B7BE1381E6C000D08723 /* object.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7BB1381E6C000D08723 /* object.cpp */; };
+		DF46B7BF1381E6C000D08723 /* object.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7BB1381E6C000D08723 /* object.cpp */; };
+		DF46B7C81381E72500D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7C61381E72500D08723 /* console.cpp */; };
+		DF46B7C91381E72500D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7C61381E72500D08723 /* console.cpp */; };
+		DF46B7CA1381E72500D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7C61381E72500D08723 /* console.cpp */; };
+		DF46B7CF1381E76300D08723 /* sdl-events.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7CD1381E76300D08723 /* sdl-events.cpp */; };
+		DF46B7D61381E7C600D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7D41381E7C600D08723 /* console.cpp */; };
+		DF46B7D71381E7C600D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7D41381E7C600D08723 /* console.cpp */; };
+		DF46B7D81381E7C600D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B7D41381E7C600D08723 /* console.cpp */; };
+		DF46B83C1381F13500D08723 /* saveload_v7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B83B1381F13500D08723 /* saveload_v7.cpp */; };
+		DF46B83D1381F13500D08723 /* saveload_v7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B83B1381F13500D08723 /* saveload_v7.cpp */; };
+		DF46B83E1381F13500D08723 /* saveload_v7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B83B1381F13500D08723 /* saveload_v7.cpp */; };
+		DF46B8441381F35500D08723 /* saveload_inca2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8431381F35500D08723 /* saveload_inca2.cpp */; };
+		DF46B8451381F35500D08723 /* saveload_inca2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8431381F35500D08723 /* saveload_inca2.cpp */; };
+		DF46B8461381F35500D08723 /* saveload_inca2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8431381F35500D08723 /* saveload_inca2.cpp */; };
+		DF46B8481381F38700D08723 /* inter_v7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8471381F38700D08723 /* inter_v7.cpp */; };
+		DF46B8491381F38700D08723 /* inter_v7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8471381F38700D08723 /* inter_v7.cpp */; };
+		DF46B84A1381F38700D08723 /* inter_v7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8471381F38700D08723 /* inter_v7.cpp */; };
+		DF46B84D1381F39E00D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B84B1381F39E00D08723 /* console.cpp */; };
+		DF46B84E1381F39E00D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B84B1381F39E00D08723 /* console.cpp */; };
+		DF46B84F1381F39E00D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B84B1381F39E00D08723 /* console.cpp */; };
+		DF46B8521381F3B400D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8501381F3B400D08723 /* console.cpp */; };
+		DF46B8531381F3B400D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8501381F3B400D08723 /* console.cpp */; };
+		DF46B8541381F3B400D08723 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8501381F3B400D08723 /* console.cpp */; };
+		DF46B8601381F44E00D08723 /* dbopl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B85A1381F44E00D08723 /* dbopl.cpp */; };
+		DF46B8611381F44E00D08723 /* dosbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B85C1381F44E00D08723 /* dosbox.cpp */; };
+		DF46B8621381F44E00D08723 /* mame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B85E1381F44E00D08723 /* mame.cpp */; };
+		DF46B8631381F44E00D08723 /* dbopl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B85A1381F44E00D08723 /* dbopl.cpp */; };
+		DF46B8641381F44E00D08723 /* dosbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B85C1381F44E00D08723 /* dosbox.cpp */; };
+		DF46B8651381F44E00D08723 /* mame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B85E1381F44E00D08723 /* mame.cpp */; };
+		DF46B8661381F44E00D08723 /* dbopl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B85A1381F44E00D08723 /* dbopl.cpp */; };
+		DF46B8671381F44E00D08723 /* dosbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B85C1381F44E00D08723 /* dosbox.cpp */; };
+		DF46B8681381F44E00D08723 /* mame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B85E1381F44E00D08723 /* mame.cpp */; };
+		DF46B8711381F4A200D08723 /* sdl-audiocd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B86F1381F4A200D08723 /* sdl-audiocd.cpp */; };
+		DF46B8721381F4A200D08723 /* sdl-audiocd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B86F1381F4A200D08723 /* sdl-audiocd.cpp */; };
+		DF46B8731381F4A200D08723 /* sdl-audiocd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B86F1381F4A200D08723 /* sdl-audiocd.cpp */; };
+		DF46B87D1381F4F200D08723 /* default-audiocd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B87B1381F4F200D08723 /* default-audiocd.cpp */; };
+		DF46B87E1381F4F200D08723 /* default-audiocd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B87B1381F4F200D08723 /* default-audiocd.cpp */; };
+		DF46B87F1381F4F200D08723 /* default-audiocd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B87B1381F4F200D08723 /* default-audiocd.cpp */; };
+		DF46B8891381F5D800D08723 /* sdl-provider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8871381F5D800D08723 /* sdl-provider.cpp */; };
+		DF46B88A1381F5D800D08723 /* sdl-provider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8871381F5D800D08723 /* sdl-provider.cpp */; };
+		DF46B88B1381F5D800D08723 /* sdl-provider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8871381F5D800D08723 /* sdl-provider.cpp */; };
+		DF46B8921381F62B00D08723 /* adpcm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8901381F62B00D08723 /* adpcm.cpp */; };
+		DF46B8931381F62B00D08723 /* adpcm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8901381F62B00D08723 /* adpcm.cpp */; };
+		DF46B8941381F62B00D08723 /* adpcm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8901381F62B00D08723 /* adpcm.cpp */; };
+		DF46B89B1381F6C400D08723 /* null.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8991381F6C400D08723 /* null.cpp */; };
+		DF46B89C1381F6C400D08723 /* null.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8991381F6C400D08723 /* null.cpp */; };
+		DF46B89D1381F6C400D08723 /* null.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF46B8991381F6C400D08723 /* null.cpp */; };
 		DF573C080F5A81EA00961A72 /* state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF573C010F5A81EA00961A72 /* state.cpp */; };
 		DF573CBB0F5A85B300961A72 /* exec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF573CBA0F5A85B300961A72 /* exec.cpp */; };
 		DF573CBE0F5A85E100961A72 /* timer_lol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF573CBD0F5A85E100961A72 /* timer_lol.cpp */; };
@@ -1253,20 +1559,10 @@
 		DF6118550FE3A8990042AD3F /* disk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118540FE3A8990042AD3F /* disk.cpp */; };
 		DF6118560FE3A8990042AD3F /* disk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118540FE3A8990042AD3F /* disk.cpp */; };
 		DF6118570FE3A8990042AD3F /* disk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118540FE3A8990042AD3F /* disk.cpp */; };
-		DF6118680FE3A9410042AD3F /* dxa_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118600FE3A9410042AD3F /* dxa_decoder.cpp */; };
-		DF6118690FE3A9410042AD3F /* flic_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118620FE3A9410042AD3F /* flic_decoder.cpp */; };
-		DF61186A0FE3A9410042AD3F /* smk_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118640FE3A9410042AD3F /* smk_decoder.cpp */; };
-		DF61186D0FE3A9410042AD3F /* dxa_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118600FE3A9410042AD3F /* dxa_decoder.cpp */; };
-		DF61186E0FE3A9410042AD3F /* flic_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118620FE3A9410042AD3F /* flic_decoder.cpp */; };
-		DF61186F0FE3A9410042AD3F /* smk_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118640FE3A9410042AD3F /* smk_decoder.cpp */; };
-		DF6118720FE3A9410042AD3F /* dxa_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118600FE3A9410042AD3F /* dxa_decoder.cpp */; };
-		DF6118730FE3A9410042AD3F /* flic_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118620FE3A9410042AD3F /* flic_decoder.cpp */; };
-		DF6118740FE3A9410042AD3F /* smk_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118640FE3A9410042AD3F /* smk_decoder.cpp */; };
 		DF6118890FE3A9AA0042AD3F /* saveconverter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118790FE3A9AA0042AD3F /* saveconverter.cpp */; };
 		DF61188A0FE3A9AA0042AD3F /* saveconverter_v2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187B0FE3A9AA0042AD3F /* saveconverter_v2.cpp */; };
 		DF61188B0FE3A9AA0042AD3F /* saveconverter_v3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187C0FE3A9AA0042AD3F /* saveconverter_v3.cpp */; };
 		DF61188C0FE3A9AA0042AD3F /* saveconverter_v4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187D0FE3A9AA0042AD3F /* saveconverter_v4.cpp */; };
-		DF61188D0FE3A9AA0042AD3F /* saveconverter_v6.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187E0FE3A9AA0042AD3F /* saveconverter_v6.cpp */; };
 		DF61188E0FE3A9AA0042AD3F /* savefile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187F0FE3A9AA0042AD3F /* savefile.cpp */; };
 		DF61188F0FE3A9AA0042AD3F /* savehandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118810FE3A9AA0042AD3F /* savehandler.cpp */; };
 		DF6118900FE3A9AA0042AD3F /* saveload.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118830FE3A9AA0042AD3F /* saveload.cpp */; };
@@ -1278,7 +1574,6 @@
 		DF6118960FE3A9AA0042AD3F /* saveconverter_v2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187B0FE3A9AA0042AD3F /* saveconverter_v2.cpp */; };
 		DF6118970FE3A9AA0042AD3F /* saveconverter_v3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187C0FE3A9AA0042AD3F /* saveconverter_v3.cpp */; };
 		DF6118980FE3A9AA0042AD3F /* saveconverter_v4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187D0FE3A9AA0042AD3F /* saveconverter_v4.cpp */; };
-		DF6118990FE3A9AA0042AD3F /* saveconverter_v6.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187E0FE3A9AA0042AD3F /* saveconverter_v6.cpp */; };
 		DF61189A0FE3A9AA0042AD3F /* savefile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187F0FE3A9AA0042AD3F /* savefile.cpp */; };
 		DF61189B0FE3A9AA0042AD3F /* savehandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118810FE3A9AA0042AD3F /* savehandler.cpp */; };
 		DF61189C0FE3A9AA0042AD3F /* saveload.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118830FE3A9AA0042AD3F /* saveload.cpp */; };
@@ -1290,7 +1585,6 @@
 		DF6118A20FE3A9AA0042AD3F /* saveconverter_v2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187B0FE3A9AA0042AD3F /* saveconverter_v2.cpp */; };
 		DF6118A30FE3A9AA0042AD3F /* saveconverter_v3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187C0FE3A9AA0042AD3F /* saveconverter_v3.cpp */; };
 		DF6118A40FE3A9AA0042AD3F /* saveconverter_v4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187D0FE3A9AA0042AD3F /* saveconverter_v4.cpp */; };
-		DF6118A50FE3A9AA0042AD3F /* saveconverter_v6.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187E0FE3A9AA0042AD3F /* saveconverter_v6.cpp */; };
 		DF6118A60FE3A9AA0042AD3F /* savefile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF61187F0FE3A9AA0042AD3F /* savefile.cpp */; };
 		DF6118A70FE3A9AA0042AD3F /* savehandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118810FE3A9AA0042AD3F /* savehandler.cpp */; };
 		DF6118A80FE3A9AA0042AD3F /* saveload.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118830FE3A9AA0042AD3F /* saveload.cpp */; };
@@ -1317,9 +1611,6 @@
 		DF6118C80FE3AABD0042AD3F /* player_v2cms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118C60FE3AABD0042AD3F /* player_v2cms.cpp */; };
 		DF6118C90FE3AABD0042AD3F /* player_v2cms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118C60FE3AABD0042AD3F /* player_v2cms.cpp */; };
 		DF6118CC0FE3AAFD0042AD3F /* hardwarekeys.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118CB0FE3AAFD0042AD3F /* hardwarekeys.cpp */; };
-		DF6118D10FE3AB560042AD3F /* mame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118CF0FE3AB560042AD3F /* mame.cpp */; };
-		DF6118D20FE3AB560042AD3F /* mame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118CF0FE3AB560042AD3F /* mame.cpp */; };
-		DF6118D30FE3AB560042AD3F /* mame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6118CF0FE3AB560042AD3F /* mame.cpp */; };
 		DF6BF4C410529DA50069811F /* conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6BF4C010529DA50069811F /* conversion.cpp */; };
 		DF6BF4C510529DA50069811F /* jpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6BF4C210529DA50069811F /* jpeg.cpp */; };
 		DF6BF4C610529DA50069811F /* conversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6BF4C010529DA50069811F /* conversion.cpp */; };
@@ -1353,12 +1644,6 @@
 		DF6BF4FF10529F140069811F /* EventRecorder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6BF4F810529F140069811F /* EventRecorder.cpp */; };
 		DF6BF50010529F140069811F /* EventDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6BF4F710529F140069811F /* EventDispatcher.cpp */; };
 		DF6BF50110529F140069811F /* EventRecorder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6BF4F810529F140069811F /* EventRecorder.cpp */; };
-		DF6BF50610529F540069811F /* maxtrax.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6BF50210529F540069811F /* maxtrax.cpp */; };
-		DF6BF50710529F540069811F /* tfmx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6BF50410529F540069811F /* tfmx.cpp */; };
-		DF6BF50810529F540069811F /* maxtrax.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6BF50210529F540069811F /* maxtrax.cpp */; };
-		DF6BF50910529F540069811F /* tfmx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6BF50410529F540069811F /* tfmx.cpp */; };
-		DF6BF50A10529F540069811F /* maxtrax.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6BF50210529F540069811F /* maxtrax.cpp */; };
-		DF6BF50B10529F540069811F /* tfmx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6BF50410529F540069811F /* tfmx.cpp */; };
 		DF7585CE100CB66E00CC3324 /* expression.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7585C3100CB66E00CC3324 /* expression.cpp */; };
 		DF7585CF100CB66E00CC3324 /* hotspots.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7585C5100CB66E00CC3324 /* hotspots.cpp */; };
 		DF7585D0100CB66E00CC3324 /* init_v6.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7585C7100CB66E00CC3324 /* init_v6.cpp */; };
@@ -1435,9 +1720,6 @@
 		DF7F289311FF247300159131 /* translation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7F289111FF247300159131 /* translation.cpp */; };
 		DF7F289511FF247300159131 /* translation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7F289111FF247300159131 /* translation.cpp */; };
 		DF7F289711FF247300159131 /* translation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7F289111FF247300159131 /* translation.cpp */; };
-		DF7F28A011FF24B000159131 /* mac_snd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7F289E11FF24B000159131 /* mac_snd.cpp */; };
-		DF7F28A111FF24B000159131 /* mac_snd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7F289E11FF24B000159131 /* mac_snd.cpp */; };
-		DF7F28A211FF24B000159131 /* mac_snd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7F289E11FF24B000159131 /* mac_snd.cpp */; };
 		DF7F28A511FF24C400159131 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7F28A311FF24C400159131 /* console.cpp */; };
 		DF7F28A611FF24C400159131 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7F28A311FF24C400159131 /* console.cpp */; };
 		DF7F28A711FF24C400159131 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7F28A311FF24C400159131 /* console.cpp */; };
@@ -2067,28 +2349,9 @@
 		DF842A470E7BBBB400F5680E /* archive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF842A400E7BBBB400F5680E /* archive.cpp */; };
 		DF842A490E7BBBB400F5680E /* unarj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF842A450E7BBBB400F5680E /* unarj.cpp */; };
 		DF842A6D0E7BBD5700F5680E /* stdiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF842A6B0E7BBD5700F5680E /* stdiostream.cpp */; };
-		DF842A710E7BBDB200F5680E /* musicplugin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF842A6F0E7BBDB200F5680E /* musicplugin.cpp */; };
-		DF895BFE124C24350077F6E8 /* coktel_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895BFC124C24350077F6E8 /* coktel_decoder.cpp */; };
-		DF895BFF124C24350077F6E8 /* coktel_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895BFC124C24350077F6E8 /* coktel_decoder.cpp */; };
-		DF895C00124C24350077F6E8 /* coktel_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895BFC124C24350077F6E8 /* coktel_decoder.cpp */; };
 		DF895C03124C24680077F6E8 /* player_towns.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C01124C24680077F6E8 /* player_towns.cpp */; };
 		DF895C04124C24680077F6E8 /* player_towns.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C01124C24680077F6E8 /* player_towns.cpp */; };
 		DF895C05124C24680077F6E8 /* player_towns.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C01124C24680077F6E8 /* player_towns.cpp */; };
-		DF895C09124C24B60077F6E8 /* appleiigs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C08124C24B50077F6E8 /* appleiigs.cpp */; };
-		DF895C0A124C24B60077F6E8 /* appleiigs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C08124C24B50077F6E8 /* appleiigs.cpp */; };
-		DF895C0B124C24B60077F6E8 /* appleiigs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C08124C24B50077F6E8 /* appleiigs.cpp */; };
-		DF895C15124C24C10077F6E8 /* towns_audio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C0D124C24C00077F6E8 /* towns_audio.cpp */; };
-		DF895C16124C24C10077F6E8 /* towns_euphony.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C0F124C24C00077F6E8 /* towns_euphony.cpp */; };
-		DF895C17124C24C10077F6E8 /* towns_pc98_driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C11124C24C00077F6E8 /* towns_pc98_driver.cpp */; };
-		DF895C18124C24C10077F6E8 /* towns_pc98_fmsynth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C13124C24C00077F6E8 /* towns_pc98_fmsynth.cpp */; };
-		DF895C19124C24C10077F6E8 /* towns_audio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C0D124C24C00077F6E8 /* towns_audio.cpp */; };
-		DF895C1A124C24C10077F6E8 /* towns_euphony.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C0F124C24C00077F6E8 /* towns_euphony.cpp */; };
-		DF895C1B124C24C10077F6E8 /* towns_pc98_driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C11124C24C00077F6E8 /* towns_pc98_driver.cpp */; };
-		DF895C1C124C24C10077F6E8 /* towns_pc98_fmsynth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C13124C24C00077F6E8 /* towns_pc98_fmsynth.cpp */; };
-		DF895C1D124C24C10077F6E8 /* towns_audio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C0D124C24C00077F6E8 /* towns_audio.cpp */; };
-		DF895C1E124C24C10077F6E8 /* towns_euphony.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C0F124C24C00077F6E8 /* towns_euphony.cpp */; };
-		DF895C1F124C24C10077F6E8 /* towns_pc98_driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C11124C24C00077F6E8 /* towns_pc98_driver.cpp */; };
-		DF895C20124C24C10077F6E8 /* towns_pc98_fmsynth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C13124C24C00077F6E8 /* towns_pc98_fmsynth.cpp */; };
 		DF895C25124C25150077F6E8 /* init_fascin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C24124C25150077F6E8 /* init_fascin.cpp */; };
 		DF895C26124C25150077F6E8 /* init_fascin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C24124C25150077F6E8 /* init_fascin.cpp */; };
 		DF895C27124C25150077F6E8 /* init_fascin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895C24124C25150077F6E8 /* init_fascin.cpp */; };
@@ -2101,27 +2364,8 @@
 		DF895C41124C271F0077F6E8 /* icon4.png in Resources */ = {isa = PBXBuildFile; fileRef = DF895C40124C271F0077F6E8 /* icon4.png */; };
 		DF895C42124C271F0077F6E8 /* icon4.png in Resources */ = {isa = PBXBuildFile; fileRef = DF895C40124C271F0077F6E8 /* icon4.png */; };
 		DF895C43124C271F0077F6E8 /* icon4.png in Resources */ = {isa = PBXBuildFile; fileRef = DF895C40124C271F0077F6E8 /* icon4.png */; };
-		DF895CB8124E58980077F6E8 /* indeo3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CAB124E58980077F6E8 /* indeo3.cpp */; };
-		DF895CB9124E58980077F6E8 /* mjpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CAD124E58980077F6E8 /* mjpeg.cpp */; };
-		DF895CBA124E58980077F6E8 /* qdm2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CAF124E58980077F6E8 /* qdm2.cpp */; };
-		DF895CBB124E58980077F6E8 /* qtrle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CB2124E58980077F6E8 /* qtrle.cpp */; };
-		DF895CBC124E58980077F6E8 /* rpza.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CB4124E58980077F6E8 /* rpza.cpp */; };
-		DF895CBD124E58990077F6E8 /* smc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CB6124E58980077F6E8 /* smc.cpp */; };
-		DF895CBE124E58990077F6E8 /* indeo3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CAB124E58980077F6E8 /* indeo3.cpp */; };
-		DF895CBF124E58990077F6E8 /* mjpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CAD124E58980077F6E8 /* mjpeg.cpp */; };
-		DF895CC0124E58990077F6E8 /* qdm2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CAF124E58980077F6E8 /* qdm2.cpp */; };
-		DF895CC1124E58990077F6E8 /* qtrle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CB2124E58980077F6E8 /* qtrle.cpp */; };
-		DF895CC2124E58990077F6E8 /* rpza.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CB4124E58980077F6E8 /* rpza.cpp */; };
-		DF895CC3124E58990077F6E8 /* smc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CB6124E58980077F6E8 /* smc.cpp */; };
-		DF895CC4124E58990077F6E8 /* indeo3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CAB124E58980077F6E8 /* indeo3.cpp */; };
-		DF895CC5124E58990077F6E8 /* mjpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CAD124E58980077F6E8 /* mjpeg.cpp */; };
-		DF895CC6124E58990077F6E8 /* qdm2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CAF124E58980077F6E8 /* qdm2.cpp */; };
-		DF895CC7124E58990077F6E8 /* qtrle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CB2124E58980077F6E8 /* qtrle.cpp */; };
-		DF895CC8124E58990077F6E8 /* rpza.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CB4124E58980077F6E8 /* rpza.cpp */; };
-		DF895CC9124E58990077F6E8 /* smc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF895CB6124E58980077F6E8 /* smc.cpp */; };
 		DF89C2880F62D55C00D756B6 /* sprites_lol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF89C2870F62D55C00D756B6 /* sprites_lol.cpp */; };
 		DF89C2A40F62D79E00D756B6 /* script.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF89C2A30F62D79E00D756B6 /* script.cpp */; };
-		DF89C2BB0F62D91000D756B6 /* timestamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF89C2B80F62D91000D756B6 /* timestamp.cpp */; };
 		DF90E9BF10AEDA9B00C8F93F /* selector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF90E9BD10AEDA9B00C8F93F /* selector.cpp */; };
 		DF90E9C110AEDA9B00C8F93F /* selector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF90E9BD10AEDA9B00C8F93F /* selector.cpp */; };
 		DF90E9C310AEDA9B00C8F93F /* selector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF90E9BD10AEDA9B00C8F93F /* selector.cpp */; };
@@ -2131,12 +2375,6 @@
 		DF90EAAD10B0236F00C8F93F /* staticres.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF90EAAB10B0236F00C8F93F /* staticres.cpp */; };
 		DF90EAAE10B0236F00C8F93F /* staticres.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF90EAAB10B0236F00C8F93F /* staticres.cpp */; };
 		DF90EAAF10B0236F00C8F93F /* staticres.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF90EAAB10B0236F00C8F93F /* staticres.cpp */; };
-		DF90EAB810B023D100C8F93F /* avi_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF90EAB610B023D100C8F93F /* avi_decoder.cpp */; };
-		DF90EAB910B023D100C8F93F /* avi_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF90EAB610B023D100C8F93F /* avi_decoder.cpp */; };
-		DF90EABA10B023D100C8F93F /* avi_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF90EAB610B023D100C8F93F /* avi_decoder.cpp */; };
-		DF90EAC310B023F400C8F93F /* msvideo1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF90EAC110B023F400C8F93F /* msvideo1.cpp */; };
-		DF90EAC410B023F400C8F93F /* msvideo1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF90EAC110B023F400C8F93F /* msvideo1.cpp */; };
-		DF90EAC510B023F400C8F93F /* msvideo1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF90EAC110B023F400C8F93F /* msvideo1.cpp */; };
 		DF9B9248118E46730069C19D /* error.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF9B9246118E46730069C19D /* error.cpp */; };
 		DF9B9249118E46730069C19D /* error.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF9B9246118E46730069C19D /* error.cpp */; };
 		DF9B924A118E46730069C19D /* error.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF9B9246118E46730069C19D /* error.cpp */; };
@@ -2151,15 +2389,6 @@
 		DFAAAFFC0F0112DF003E9390 /* detection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFAAAFFB0F0112DF003E9390 /* detection.cpp */; };
 		DFAAB0020F011392003E9390 /* thumbnail_intern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFAAB0010F011392003E9390 /* thumbnail_intern.cpp */; };
 		DFAAD23D0F50120E00C3A4E2 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFAAD2390F50120E00C3A4E2 /* console.cpp */; };
-		DFB0576811B753AF0015AE65 /* mpeg_player.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0576211B753AF0015AE65 /* mpeg_player.cpp */; };
-		DFB0576911B753AF0015AE65 /* qt_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0576411B753AF0015AE65 /* qt_decoder.cpp */; };
-		DFB0576A11B753AF0015AE65 /* video_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0576611B753AF0015AE65 /* video_decoder.cpp */; };
-		DFB0576B11B753AF0015AE65 /* mpeg_player.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0576211B753AF0015AE65 /* mpeg_player.cpp */; };
-		DFB0576C11B753AF0015AE65 /* qt_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0576411B753AF0015AE65 /* qt_decoder.cpp */; };
-		DFB0576D11B753AF0015AE65 /* video_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0576611B753AF0015AE65 /* video_decoder.cpp */; };
-		DFB0576E11B753AF0015AE65 /* mpeg_player.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0576211B753AF0015AE65 /* mpeg_player.cpp */; };
-		DFB0576F11B753AF0015AE65 /* qt_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0576411B753AF0015AE65 /* qt_decoder.cpp */; };
-		DFB0577011B753AF0015AE65 /* video_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0576611B753AF0015AE65 /* video_decoder.cpp */; };
 		DFB0577611B753DA0015AE65 /* rational.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0577411B753DA0015AE65 /* rational.cpp */; };
 		DFB0577711B753DA0015AE65 /* rational.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0577411B753DA0015AE65 /* rational.cpp */; };
 		DFB0577811B753DA0015AE65 /* rational.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0577411B753DA0015AE65 /* rational.cpp */; };
@@ -2175,9 +2404,6 @@
 		DFB0579111B7547D0015AE65 /* pict.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0578F11B7547D0015AE65 /* pict.cpp */; };
 		DFB0579211B7547D0015AE65 /* pict.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0578F11B7547D0015AE65 /* pict.cpp */; };
 		DFB0579311B7547D0015AE65 /* pict.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0578F11B7547D0015AE65 /* pict.cpp */; };
-		DFB0579811B7549C0015AE65 /* cinepak.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0579611B7549C0015AE65 /* cinepak.cpp */; };
-		DFB0579911B7549C0015AE65 /* cinepak.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0579611B7549C0015AE65 /* cinepak.cpp */; };
-		DFB0579A11B7549C0015AE65 /* cinepak.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFB0579611B7549C0015AE65 /* cinepak.cpp */; };
 		DFC831210F48AF19005EF03C /* detection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFC8301A0F48AF18005EF03C /* detection.cpp */; };
 		DFC831240F48AF19005EF03C /* gc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFC8301E0F48AF18005EF03C /* gc.cpp */; };
 		DFC831270F48AF19005EF03C /* kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFC830230F48AF18005EF03C /* kernel.cpp */; };
@@ -2207,9 +2433,6 @@
 		DFCDC6F711662AAB00A7D2A0 /* resource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFCDC6F611662AAB00A7D2A0 /* resource.cpp */; };
 		DFCDC6F811662AAB00A7D2A0 /* resource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFCDC6F611662AAB00A7D2A0 /* resource.cpp */; };
 		DFCDC6F911662AAB00A7D2A0 /* resource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFCDC6F611662AAB00A7D2A0 /* resource.cpp */; };
-		DFCDC6FE11662AD700A7D2A0 /* msrle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFCDC6FC11662AD700A7D2A0 /* msrle.cpp */; };
-		DFCDC6FF11662AD700A7D2A0 /* msrle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFCDC6FC11662AD700A7D2A0 /* msrle.cpp */; };
-		DFCDC70011662AD700A7D2A0 /* msrle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFCDC6FC11662AD700A7D2A0 /* msrle.cpp */; };
 		DFCDC70411662B0200A7D2A0 /* saveload_fascin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFCDC70311662B0200A7D2A0 /* saveload_fascin.cpp */; };
 		DFCDC70511662B0200A7D2A0 /* saveload_fascin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFCDC70311662B0200A7D2A0 /* saveload_fascin.cpp */; };
 		DFCDC70611662B0200A7D2A0 /* saveload_fascin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFCDC70311662B0200A7D2A0 /* saveload_fascin.cpp */; };
@@ -2268,41 +2491,14 @@
 		DFE47C200D81F4E900B6D1FB /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477910D81F4E900B6D1FB /* console.cpp */; };
 		DFE47C210D81F4E900B6D1FB /* debugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477940D81F4E900B6D1FB /* debugger.cpp */; };
 		DFE47C220D81F4E900B6D1FB /* dialog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477960D81F4E900B6D1FB /* dialog.cpp */; };
-		DFE47C230D81F4E900B6D1FB /* editable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477980D81F4E900B6D1FB /* editable.cpp */; };
-		DFE47C240D81F4E900B6D1FB /* EditTextWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE4779A0D81F4E900B6D1FB /* EditTextWidget.cpp */; };
 		DFE47C260D81F4E900B6D1FB /* Key.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE4779E0D81F4E900B6D1FB /* Key.cpp */; };
 		DFE47C280D81F4E900B6D1FB /* launcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477A20D81F4E900B6D1FB /* launcher.cpp */; };
-		DFE47C290D81F4E900B6D1FB /* ListWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477A40D81F4E900B6D1FB /* ListWidget.cpp */; };
 		DFE47C2A0D81F4E900B6D1FB /* massadd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477A60D81F4E900B6D1FB /* massadd.cpp */; };
 		DFE47C2B0D81F4E900B6D1FB /* message.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477A80D81F4E900B6D1FB /* message.cpp */; };
 		DFE47C2E0D81F4E900B6D1FB /* object.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477AD0D81F4E900B6D1FB /* object.cpp */; };
 		DFE47C2F0D81F4E900B6D1FB /* options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477AF0D81F4E900B6D1FB /* options.cpp */; };
-		DFE47C300D81F4E900B6D1FB /* PopUpWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477B10D81F4E900B6D1FB /* PopUpWidget.cpp */; };
-		DFE47C310D81F4E900B6D1FB /* ScrollBarWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477B30D81F4E900B6D1FB /* ScrollBarWidget.cpp */; };
-		DFE47C320D81F4E900B6D1FB /* TabWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477B50D81F4E900B6D1FB /* TabWidget.cpp */; };
 		DFE47C350D81F4E900B6D1FB /* themebrowser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477BA0D81F4E900B6D1FB /* themebrowser.cpp */; };
 		DFE47C3B0D81F4E900B6D1FB /* widget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477C40D81F4E900B6D1FB /* widget.cpp */; };
-		DFE47C3E0D81F4E900B6D1FB /* audiocd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477CB0D81F4E900B6D1FB /* audiocd.cpp */; };
-		DFE47C3F0D81F4E900B6D1FB /* audiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477CD0D81F4E900B6D1FB /* audiostream.cpp */; };
-		DFE47C410D81F4E900B6D1FB /* fmopl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477D10D81F4E900B6D1FB /* fmopl.cpp */; };
-		DFE47C430D81F4E900B6D1FB /* mididrv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477D50D81F4E900B6D1FB /* mididrv.cpp */; };
-		DFE47C440D81F4E900B6D1FB /* midiparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477D70D81F4E900B6D1FB /* midiparser.cpp */; };
-		DFE47C450D81F4E900B6D1FB /* midiparser_smf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477D90D81F4E900B6D1FB /* midiparser_smf.cpp */; };
-		DFE47C460D81F4E900B6D1FB /* midiparser_xmidi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477DA0D81F4E900B6D1FB /* midiparser_xmidi.cpp */; };
-		DFE47C470D81F4E900B6D1FB /* mixer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477DB0D81F4E900B6D1FB /* mixer.cpp */; };
-		DFE47C480D81F4E900B6D1FB /* infogrames.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477DE0D81F4E900B6D1FB /* infogrames.cpp */; };
-		DFE47C490D81F4E900B6D1FB /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E00D81F4E900B6D1FB /* module.cpp */; };
-		DFE47C4A0D81F4E900B6D1FB /* paula.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E20D81F4E900B6D1FB /* paula.cpp */; };
-		DFE47C4B0D81F4E900B6D1FB /* protracker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E40D81F4E900B6D1FB /* protracker.cpp */; };
-		DFE47C4C0D81F4E900B6D1FB /* rjp1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E60D81F4E900B6D1FB /* rjp1.cpp */; };
-		DFE47C4D0D81F4E900B6D1FB /* soundfx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E80D81F4E900B6D1FB /* soundfx.cpp */; };
-		DFE47C500D81F4E900B6D1FB /* mpu401.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477ED0D81F4E900B6D1FB /* mpu401.cpp */; };
-		DFE47C510D81F4E900B6D1FB /* null.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477EF0D81F4E900B6D1FB /* null.cpp */; };
-		DFE47C520D81F4E900B6D1FB /* rate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477F00D81F4E900B6D1FB /* rate.cpp */; };
-		DFE47C570D81F4E900B6D1FB /* adlib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477F70D81F4E900B6D1FB /* adlib.cpp */; };
-		DFE47C580D81F4E900B6D1FB /* fluidsynth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477F90D81F4E900B6D1FB /* fluidsynth.cpp */; };
-		DFE47C740D81F4E900B6D1FB /* pcspk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE478210D81F4E900B6D1FB /* pcspk.cpp */; };
-		DFE47C750D81F4E900B6D1FB /* ym2612.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE478230D81F4E900B6D1FB /* ym2612.cpp */; };
 		DFE47C870D81F86900B6D1FB /* kyra.dat in Resources */ = {isa = PBXBuildFile; fileRef = DFE47C810D81F86900B6D1FB /* kyra.dat */; };
 		DFE47C880D81F86900B6D1FB /* lure.dat in Resources */ = {isa = PBXBuildFile; fileRef = DFE47C820D81F86900B6D1FB /* lure.dat */; };
 		DFE47C890D81F86900B6D1FB /* queen.tbl in Resources */ = {isa = PBXBuildFile; fileRef = DFE47C830D81F86900B6D1FB /* queen.tbl */; };
@@ -2318,11 +2514,6 @@
 		DFEC5D361166C67300C90552 /* savestate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFEC5D341166C67300C90552 /* savestate.cpp */; };
 		DFEC5D371166C67300C90552 /* savestate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFEC5D341166C67300C90552 /* savestate.cpp */; };
 		DFEC5D381166C67300C90552 /* savestate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFEC5D341166C67300C90552 /* savestate.cpp */; };
-		DFEC5D3F1166C6B400C90552 /* dbopl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFEC5D3D1166C6B400C90552 /* dbopl.cpp */; };
-		DFEC5D401166C6B400C90552 /* dbopl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFEC5D3D1166C6B400C90552 /* dbopl.cpp */; };
-		DFEC5D411166C6B400C90552 /* dbopl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFEC5D3D1166C6B400C90552 /* dbopl.cpp */; };
-		DFF958AF0FB222F300A3EC78 /* dosbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFF958A90FB222F300A3EC78 /* dosbox.cpp */; };
-		DFF958B20FB222F300A3EC78 /* dosbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFF958A90FB222F300A3EC78 /* dosbox.cpp */; };
 		DFF959050FB22D3000A3EC78 /* libmad.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DFD6476C0F49F7EF008E18EF /* libmad.a */; };
 		DFF959060FB22D3100A3EC78 /* libFLAC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DFD6476B0F49F7EF008E18EF /* libFLAC.a */; };
 		DFF959080FB22D3300A3EC78 /* libvorbisidec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DFD6476F0F49F7EF008E18EF /* libvorbisidec.a */; };
@@ -2375,41 +2566,14 @@
 		DFF9593E0FB22D5700A3EC78 /* console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477910D81F4E900B6D1FB /* console.cpp */; };
 		DFF9593F0FB22D5700A3EC78 /* debugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477940D81F4E900B6D1FB /* debugger.cpp */; };
 		DFF959400FB22D5700A3EC78 /* dialog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477960D81F4E900B6D1FB /* dialog.cpp */; };
-		DFF959410FB22D5700A3EC78 /* editable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477980D81F4E900B6D1FB /* editable.cpp */; };
-		DFF959420FB22D5700A3EC78 /* EditTextWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE4779A0D81F4E900B6D1FB /* EditTextWidget.cpp */; };
 		DFF959430FB22D5700A3EC78 /* Key.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE4779E0D81F4E900B6D1FB /* Key.cpp */; };
 		DFF959440FB22D5700A3EC78 /* launcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477A20D81F4E900B6D1FB /* launcher.cpp */; };
-		DFF959450FB22D5700A3EC78 /* ListWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477A40D81F4E900B6D1FB /* ListWidget.cpp */; };
 		DFF959460FB22D5700A3EC78 /* massadd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477A60D81F4E900B6D1FB /* massadd.cpp */; };
 		DFF959470FB22D5700A3EC78 /* message.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477A80D81F4E900B6D1FB /* message.cpp */; };
 		DFF959480FB22D5700A3EC78 /* object.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477AD0D81F4E900B6D1FB /* object.cpp */; };
 		DFF959490FB22D5700A3EC78 /* options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477AF0D81F4E900B6D1FB /* options.cpp */; };
-		DFF9594A0FB22D5700A3EC78 /* PopUpWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477B10D81F4E900B6D1FB /* PopUpWidget.cpp */; };
-		DFF9594B0FB22D5700A3EC78 /* ScrollBarWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477B30D81F4E900B6D1FB /* ScrollBarWidget.cpp */; };
-		DFF9594C0FB22D5700A3EC78 /* TabWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477B50D81F4E900B6D1FB /* TabWidget.cpp */; };
 		DFF9594D0FB22D5700A3EC78 /* themebrowser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477BA0D81F4E900B6D1FB /* themebrowser.cpp */; };
 		DFF9594E0FB22D5700A3EC78 /* widget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477C40D81F4E900B6D1FB /* widget.cpp */; };
-		DFF959510FB22D5700A3EC78 /* audiocd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477CB0D81F4E900B6D1FB /* audiocd.cpp */; };
-		DFF959520FB22D5700A3EC78 /* audiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477CD0D81F4E900B6D1FB /* audiostream.cpp */; };
-		DFF959540FB22D5700A3EC78 /* fmopl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477D10D81F4E900B6D1FB /* fmopl.cpp */; };
-		DFF959560FB22D5700A3EC78 /* mididrv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477D50D81F4E900B6D1FB /* mididrv.cpp */; };
-		DFF959570FB22D5700A3EC78 /* midiparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477D70D81F4E900B6D1FB /* midiparser.cpp */; };
-		DFF959580FB22D5700A3EC78 /* midiparser_smf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477D90D81F4E900B6D1FB /* midiparser_smf.cpp */; };
-		DFF959590FB22D5700A3EC78 /* midiparser_xmidi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477DA0D81F4E900B6D1FB /* midiparser_xmidi.cpp */; };
-		DFF9595A0FB22D5700A3EC78 /* mixer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477DB0D81F4E900B6D1FB /* mixer.cpp */; };
-		DFF9595B0FB22D5700A3EC78 /* infogrames.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477DE0D81F4E900B6D1FB /* infogrames.cpp */; };
-		DFF9595C0FB22D5700A3EC78 /* module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E00D81F4E900B6D1FB /* module.cpp */; };
-		DFF9595D0FB22D5700A3EC78 /* paula.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E20D81F4E900B6D1FB /* paula.cpp */; };
-		DFF9595E0FB22D5700A3EC78 /* protracker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E40D81F4E900B6D1FB /* protracker.cpp */; };
-		DFF9595F0FB22D5700A3EC78 /* rjp1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E60D81F4E900B6D1FB /* rjp1.cpp */; };
-		DFF959600FB22D5700A3EC78 /* soundfx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477E80D81F4E900B6D1FB /* soundfx.cpp */; };
-		DFF959620FB22D5700A3EC78 /* mpu401.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477ED0D81F4E900B6D1FB /* mpu401.cpp */; };
-		DFF959630FB22D5700A3EC78 /* null.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477EF0D81F4E900B6D1FB /* null.cpp */; };
-		DFF959640FB22D5700A3EC78 /* rate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477F00D81F4E900B6D1FB /* rate.cpp */; };
-		DFF959650FB22D5700A3EC78 /* adlib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477F70D81F4E900B6D1FB /* adlib.cpp */; };
-		DFF959660FB22D5700A3EC78 /* fluidsynth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE477F90D81F4E900B6D1FB /* fluidsynth.cpp */; };
-		DFF959670FB22D5700A3EC78 /* pcspk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE478210D81F4E900B6D1FB /* pcspk.cpp */; };
-		DFF959680FB22D5700A3EC78 /* ym2612.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFE478230D81F4E900B6D1FB /* ym2612.cpp */; };
 		DFF9596C0FB22D5700A3EC78 /* memorypool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFD511460DF3383500854012 /* memorypool.cpp */; };
 		DFF9596D0FB22D5700A3EC78 /* seq.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFD517E10DF33CAC00854012 /* seq.cpp */; };
 		DFF9596E0FB22D5700A3EC78 /* scaler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFD5183B0DF3411800854012 /* scaler.cpp */; };
@@ -3040,7 +3204,6 @@
 		DFF95C0F0FB22D5700A3EC78 /* archive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF842A400E7BBBB400F5680E /* archive.cpp */; };
 		DFF95C100FB22D5700A3EC78 /* unarj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF842A450E7BBBB400F5680E /* unarj.cpp */; };
 		DFF95C110FB22D5700A3EC78 /* stdiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF842A6B0E7BBD5700F5680E /* stdiostream.cpp */; };
-		DFF95C120FB22D5700A3EC78 /* musicplugin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF842A6F0E7BBDB200F5680E /* musicplugin.cpp */; };
 		DFF95C130FB22D5700A3EC78 /* saveload.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7E8BF00ED5FC77001CB19F /* saveload.cpp */; };
 		DFF95C140FB22D5700A3EC78 /* ThemeEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7E8BF40ED5FC77001CB19F /* ThemeEngine.cpp */; };
 		DFF95C150FB22D5700A3EC78 /* ThemeEval.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF7E8BF60ED5FC77001CB19F /* ThemeEval.cpp */; };
@@ -3057,7 +3220,6 @@
 		DFF95C200FB22D5700A3EC78 /* thumbnail_intern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFAAB0010F011392003E9390 /* thumbnail_intern.cpp */; };
 		DFF95C210FB22D5700A3EC78 /* dither.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFB900F485D890006E566 /* dither.cpp */; };
 		DFF95C270FB22D5700A3EC78 /* debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFBD10F485DFB0006E566 /* debug.cpp */; };
-		DFF95C280FB22D5700A3EC78 /* gui-manager.hcpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFBD50F485E360006E566 /* gui-manager.hcpp */; };
 		DFF95C290FB22D5700A3EC78 /* posix-saves.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFBF80F4860A60006E566 /* posix-saves.cpp */; };
 		DFF95C2A0FB22D5700A3EC78 /* bmv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFC1F0F4862520006E566 /* bmv.cpp */; };
 		DFF95C2B0FB22D5700A3EC78 /* dialogs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2FFC200F4862520006E566 /* dialogs.cpp */; };
@@ -3129,7 +3291,6 @@
 		DFF95C920FB22D5700A3EC78 /* timer_lol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF573CBD0F5A85E100961A72 /* timer_lol.cpp */; };
 		DFF95C940FB22D5700A3EC78 /* sprites_lol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF89C2870F62D55C00D756B6 /* sprites_lol.cpp */; };
 		DFF95C950FB22D5700A3EC78 /* script.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF89C2A30F62D79E00D756B6 /* script.cpp */; };
-		DFF95C980FB22D5700A3EC78 /* timestamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF89C2B80F62D91000D756B6 /* timestamp.cpp */; };
 		DFF95C990FB22D5700A3EC78 /* pn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF093E5C0F63CAD4002D821E /* pn.cpp */; };
 		DFF95C9A0FB22D5700A3EC78 /* script_pn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF093E5D0F63CAD4002D821E /* script_pn.cpp */; };
 		DFF95C9B0FB22D5700A3EC78 /* vga_pn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF093E5E0F63CAD4002D821E /* vga_pn.cpp */; };
@@ -3144,7 +3305,6 @@
 		DFF95CB30FB22D5700A3EC78 /* inter_fascin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF09CC0F0FAC4E1900A5AFD7 /* inter_fascin.cpp */; };
 		DFF95CB40FB22D5700A3EC78 /* script_v3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF09CC260FAC4EAB00A5AFD7 /* script_v3.cpp */; };
 		DFF95CB50FB22D5700A3EC78 /* script_v4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF09CC270FAC4EAB00A5AFD7 /* script_v4.cpp */; };
-		DFF95CB70FB22D5700A3EC78 /* dosbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFF958A90FB222F300A3EC78 /* dosbox.cpp */; };
 		DFF95CBC0FB22D5700A3EC78 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF842A160E7BB34E00F5680E /* CoreAudio.framework */; };
 		DFF95CBD0FB22D5700A3EC78 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF842A170E7BB34E00F5680E /* CoreFoundation.framework */; };
 		DFF95CBE0FB22D5700A3EC78 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF842A180E7BB34E00F5680E /* Foundation.framework */; };
@@ -3203,12 +3363,9 @@
 		8CD1ECC6126202AA00FA198C /* detection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = detection.cpp; sourceTree = "<group>"; };
 		8CD1ECC7126202AA00FA198C /* display.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = display.cpp; sourceTree = "<group>"; };
 		8CD1ECC8126202AA00FA198C /* display.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = display.h; sourceTree = "<group>"; };
-		8CD1ECC9126202AA00FA198C /* engine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = engine.cpp; sourceTree = "<group>"; };
-		8CD1ECCA126202AA00FA198C /* engine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = engine.h; sourceTree = "<group>"; };
 		8CD1ECCB126202AA00FA198C /* file.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file.cpp; sourceTree = "<group>"; };
 		8CD1ECCC126202AA00FA198C /* file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = file.h; sourceTree = "<group>"; };
 		8CD1ECCD126202AA00FA198C /* game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = game.h; sourceTree = "<group>"; };
-		8CD1ECCE126202AA00FA198C /* global.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = global.h; sourceTree = "<group>"; };
 		8CD1ECCF126202AA00FA198C /* hugo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hugo.cpp; sourceTree = "<group>"; };
 		8CD1ECD0126202AA00FA198C /* hugo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hugo.h; sourceTree = "<group>"; };
 		8CD1ECD1126202AA00FA198C /* intro.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = intro.cpp; sourceTree = "<group>"; };
@@ -3301,12 +3458,11 @@
 		8CD80CDE126272A0001C6C87 /* teenagent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = teenagent.cpp; sourceTree = "<group>"; };
 		8CD80CDF126272A0001C6C87 /* teenagent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = teenagent.h; sourceTree = "<group>"; };
 		8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		DF06D3FF139B29F700049EF7 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
 		DF093E5C0F63CAD4002D821E /* pn.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pn.cpp; sourceTree = "<group>"; };
 		DF093E5D0F63CAD4002D821E /* script_pn.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = script_pn.cpp; sourceTree = "<group>"; };
 		DF093E5E0F63CAD4002D821E /* vga_pn.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vga_pn.cpp; sourceTree = "<group>"; };
 		DF09422A0F63CB26002D821E /* ScummVM.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ScummVM.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		DF0942350F63CB9A002D821E /* events.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = events.cpp; sourceTree = "<group>"; };
-		DF0942370F63CB9A002D821E /* graphics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = graphics.cpp; sourceTree = "<group>"; };
 		DF0942390F63CB9A002D821E /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = "<group>"; };
 		DF09423C0F63CB9A002D821E /* sdl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sdl.cpp; sourceTree = "<group>"; };
 		DF09423D0F63CB9A002D821E /* sdl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sdl.h; sourceTree = "<group>"; };
@@ -3339,8 +3495,156 @@
 		DF09CC260FAC4EAB00A5AFD7 /* script_v3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = script_v3.cpp; sourceTree = "<group>"; };
 		DF09CC270FAC4EAB00A5AFD7 /* script_v4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = script_v4.cpp; sourceTree = "<group>"; };
 		DF0E30391252C5BD0082D593 /* cms.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cms.cpp; sourceTree = "<group>"; };
-		DF0E303F1252C6090082D593 /* cms.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cms.cpp; sourceTree = "<group>"; };
-		DF0E30401252C6090082D593 /* cms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cms.h; sourceTree = "<group>"; };
+		DF203F461380C06E0056300A /* gui-manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "gui-manager.cpp"; sourceTree = "<group>"; };
+		DF203F531380C2740056300A /* avi_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = avi_decoder.cpp; path = ../../video/avi_decoder.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F541380C2740056300A /* avi_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = avi_decoder.h; path = ../../video/avi_decoder.h; sourceTree = SOURCE_ROOT; };
+		DF203F551380C2740056300A /* coktel_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = coktel_decoder.cpp; path = ../../video/coktel_decoder.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F561380C2740056300A /* coktel_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = coktel_decoder.h; path = ../../video/coktel_decoder.h; sourceTree = SOURCE_ROOT; };
+		DF203F571380C2740056300A /* dxa_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dxa_decoder.cpp; path = ../../video/dxa_decoder.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F581380C2740056300A /* dxa_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dxa_decoder.h; path = ../../video/dxa_decoder.h; sourceTree = SOURCE_ROOT; };
+		DF203F591380C2740056300A /* flic_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = flic_decoder.cpp; path = ../../video/flic_decoder.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F5A1380C2740056300A /* flic_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = flic_decoder.h; path = ../../video/flic_decoder.h; sourceTree = SOURCE_ROOT; };
+		DF203F5D1380C2740056300A /* qt_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = qt_decoder.cpp; path = ../../video/qt_decoder.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F5E1380C2750056300A /* qt_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = qt_decoder.h; path = ../../video/qt_decoder.h; sourceTree = SOURCE_ROOT; };
+		DF203F5F1380C2750056300A /* smk_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = smk_decoder.cpp; path = ../../video/smk_decoder.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F601380C2750056300A /* smk_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = smk_decoder.h; path = ../../video/smk_decoder.h; sourceTree = SOURCE_ROOT; };
+		DF203F611380C2750056300A /* video_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = video_decoder.cpp; path = ../../video/video_decoder.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F621380C2750056300A /* video_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = video_decoder.h; path = ../../video/video_decoder.h; sourceTree = SOURCE_ROOT; };
+		DF203F7C1380C2920056300A /* cdtoons.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cdtoons.cpp; path = ../../video/codecs/cdtoons.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F7D1380C2920056300A /* cdtoons.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cdtoons.h; path = ../../video/codecs/cdtoons.h; sourceTree = SOURCE_ROOT; };
+		DF203F7E1380C2920056300A /* cinepak.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cinepak.cpp; path = ../../video/codecs/cinepak.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F7F1380C2920056300A /* cinepak.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cinepak.h; path = ../../video/codecs/cinepak.h; sourceTree = SOURCE_ROOT; };
+		DF203F801380C2920056300A /* codec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = codec.h; path = ../../video/codecs/codec.h; sourceTree = SOURCE_ROOT; };
+		DF203F811380C2920056300A /* indeo3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = indeo3.cpp; path = ../../video/codecs/indeo3.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F821380C2920056300A /* indeo3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = indeo3.h; path = ../../video/codecs/indeo3.h; sourceTree = SOURCE_ROOT; };
+		DF203F831380C2920056300A /* mjpeg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mjpeg.cpp; path = ../../video/codecs/mjpeg.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F841380C2920056300A /* mjpeg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mjpeg.h; path = ../../video/codecs/mjpeg.h; sourceTree = SOURCE_ROOT; };
+		DF203F851380C2920056300A /* msrle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = msrle.cpp; path = ../../video/codecs/msrle.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F861380C2920056300A /* msrle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = msrle.h; path = ../../video/codecs/msrle.h; sourceTree = SOURCE_ROOT; };
+		DF203F871380C2920056300A /* msvideo1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = msvideo1.cpp; path = ../../video/codecs/msvideo1.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F881380C2920056300A /* msvideo1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = msvideo1.h; path = ../../video/codecs/msvideo1.h; sourceTree = SOURCE_ROOT; };
+		DF203F891380C2920056300A /* qdm2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = qdm2.cpp; path = ../../video/codecs/qdm2.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F8A1380C2920056300A /* qdm2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = qdm2.h; path = ../../video/codecs/qdm2.h; sourceTree = SOURCE_ROOT; };
+		DF203F8B1380C2920056300A /* qdm2data.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = qdm2data.h; path = ../../video/codecs/qdm2data.h; sourceTree = SOURCE_ROOT; };
+		DF203F8C1380C2920056300A /* qtrle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = qtrle.cpp; path = ../../video/codecs/qtrle.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F8D1380C2920056300A /* qtrle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = qtrle.h; path = ../../video/codecs/qtrle.h; sourceTree = SOURCE_ROOT; };
+		DF203F8E1380C2920056300A /* rpza.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rpza.cpp; path = ../../video/codecs/rpza.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F8F1380C2920056300A /* rpza.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rpza.h; path = ../../video/codecs/rpza.h; sourceTree = SOURCE_ROOT; };
+		DF203F901380C2920056300A /* smc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = smc.cpp; path = ../../video/codecs/smc.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F911380C2920056300A /* smc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = smc.h; path = ../../video/codecs/smc.h; sourceTree = SOURCE_ROOT; };
+		DF203F921380C2920056300A /* truemotion1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = truemotion1.cpp; path = ../../video/codecs/truemotion1.cpp; sourceTree = SOURCE_ROOT; };
+		DF203F931380C2920056300A /* truemotion1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = truemotion1.h; path = ../../video/codecs/truemotion1.h; sourceTree = SOURCE_ROOT; };
+		DF203F941380C2920056300A /* truemotion1data.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = truemotion1data.h; path = ../../video/codecs/truemotion1data.h; sourceTree = SOURCE_ROOT; };
+		DF203FC01380C3BC0056300A /* console.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = console.cpp; sourceTree = "<group>"; };
+		DF203FC11380C3BC0056300A /* console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = console.h; sourceTree = "<group>"; };
+		DF203FC21380C3BC0056300A /* dialogs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dialogs.cpp; sourceTree = "<group>"; };
+		DF203FC31380C3BC0056300A /* dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dialogs.h; sourceTree = "<group>"; };
+		DF203FC41380C3BC0056300A /* file_v1d.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_v1d.cpp; sourceTree = "<group>"; };
+		DF203FC51380C3BC0056300A /* file_v1w.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_v1w.cpp; sourceTree = "<group>"; };
+		DF203FC61380C3BC0056300A /* file_v2d.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_v2d.cpp; sourceTree = "<group>"; };
+		DF203FC71380C3BC0056300A /* file_v2w.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_v2w.cpp; sourceTree = "<group>"; };
+		DF203FC81380C3BC0056300A /* file_v3d.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_v3d.cpp; sourceTree = "<group>"; };
+		DF203FC91380C3BC0056300A /* object_v1d.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = object_v1d.cpp; sourceTree = "<group>"; };
+		DF203FCA1380C3BC0056300A /* object_v1w.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = object_v1w.cpp; sourceTree = "<group>"; };
+		DF203FCB1380C3BC0056300A /* object_v2d.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = object_v2d.cpp; sourceTree = "<group>"; };
+		DF203FCC1380C3BC0056300A /* object_v3d.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = object_v3d.cpp; sourceTree = "<group>"; };
+		DF203FCD1380C3BC0056300A /* object.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = object.cpp; sourceTree = "<group>"; };
+		DF203FCE1380C3BC0056300A /* object.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = object.h; sourceTree = "<group>"; };
+		DF203FCF1380C3BC0056300A /* parser_v1d.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parser_v1d.cpp; sourceTree = "<group>"; };
+		DF203FD01380C3BC0056300A /* parser_v1w.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parser_v1w.cpp; sourceTree = "<group>"; };
+		DF203FD11380C3BC0056300A /* parser_v2d.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parser_v2d.cpp; sourceTree = "<group>"; };
+		DF203FD21380C3BC0056300A /* parser_v3d.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parser_v3d.cpp; sourceTree = "<group>"; };
+		DF203FD31380C3BC0056300A /* text.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = text.cpp; sourceTree = "<group>"; };
+		DF203FD41380C3BC0056300A /* text.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = text.h; sourceTree = "<group>"; };
+		DF2040221380C8B70056300A /* editable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = editable.cpp; path = widgets/editable.cpp; sourceTree = "<group>"; };
+		DF2040231380C8B70056300A /* editable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = editable.h; path = widgets/editable.h; sourceTree = "<group>"; };
+		DF2040241380C8B70056300A /* edittext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = edittext.cpp; path = widgets/edittext.cpp; sourceTree = "<group>"; };
+		DF2040251380C8B70056300A /* edittext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = edittext.h; path = widgets/edittext.h; sourceTree = "<group>"; };
+		DF2040261380C8B70056300A /* list.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = list.cpp; path = widgets/list.cpp; sourceTree = "<group>"; };
+		DF2040271380C8B70056300A /* list.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = list.h; path = widgets/list.h; sourceTree = "<group>"; };
+		DF2040281380C8B70056300A /* popup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = popup.cpp; path = widgets/popup.cpp; sourceTree = "<group>"; };
+		DF2040291380C8B70056300A /* popup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = popup.h; path = widgets/popup.h; sourceTree = "<group>"; };
+		DF20402A1380C8B70056300A /* scrollbar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = scrollbar.cpp; path = widgets/scrollbar.cpp; sourceTree = "<group>"; };
+		DF20402B1380C8B70056300A /* scrollbar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = scrollbar.h; path = widgets/scrollbar.h; sourceTree = "<group>"; };
+		DF20402C1380C8B70056300A /* tab.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tab.cpp; path = widgets/tab.cpp; sourceTree = "<group>"; };
+		DF20402D1380C8B70056300A /* tab.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tab.h; path = widgets/tab.h; sourceTree = "<group>"; };
+		DF2040471380CA230056300A /* audiostream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = audiostream.cpp; path = ../../audio/audiostream.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040481380CA230056300A /* audiostream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = audiostream.h; path = ../../audio/audiostream.h; sourceTree = SOURCE_ROOT; };
+		DF2040491380CA230056300A /* fmopl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fmopl.cpp; path = ../../audio/fmopl.cpp; sourceTree = SOURCE_ROOT; };
+		DF20404A1380CA230056300A /* fmopl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fmopl.h; path = ../../audio/fmopl.h; sourceTree = SOURCE_ROOT; };
+		DF20404B1380CA230056300A /* mididrv.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mididrv.cpp; path = ../../audio/mididrv.cpp; sourceTree = SOURCE_ROOT; };
+		DF20404C1380CA230056300A /* mididrv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mididrv.h; path = ../../audio/mididrv.h; sourceTree = SOURCE_ROOT; };
+		DF20404D1380CA230056300A /* midiparser_smf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = midiparser_smf.cpp; path = ../../audio/midiparser_smf.cpp; sourceTree = SOURCE_ROOT; };
+		DF20404E1380CA230056300A /* midiparser_xmidi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = midiparser_xmidi.cpp; path = ../../audio/midiparser_xmidi.cpp; sourceTree = SOURCE_ROOT; };
+		DF20404F1380CA230056300A /* midiparser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = midiparser.cpp; path = ../../audio/midiparser.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040501380CA230056300A /* midiparser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = midiparser.h; path = ../../audio/midiparser.h; sourceTree = SOURCE_ROOT; };
+		DF2040511380CA230056300A /* midiplayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = midiplayer.cpp; path = ../../audio/midiplayer.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040521380CA230056300A /* midiplayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = midiplayer.h; path = ../../audio/midiplayer.h; sourceTree = SOURCE_ROOT; };
+		DF2040531380CA230056300A /* mixer_intern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mixer_intern.h; path = ../../audio/mixer_intern.h; sourceTree = SOURCE_ROOT; };
+		DF2040541380CA230056300A /* mixer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mixer.cpp; path = ../../audio/mixer.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040551380CA230056300A /* mixer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mixer.h; path = ../../audio/mixer.h; sourceTree = SOURCE_ROOT; };
+		DF2040561380CA230056300A /* mpu401.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mpu401.cpp; path = ../../audio/mpu401.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040571380CA230056300A /* mpu401.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mpu401.h; path = ../../audio/mpu401.h; sourceTree = SOURCE_ROOT; };
+		DF2040581380CA230056300A /* musicplugin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = musicplugin.cpp; path = ../../audio/musicplugin.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040591380CA230056300A /* musicplugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = musicplugin.h; path = ../../audio/musicplugin.h; sourceTree = SOURCE_ROOT; };
+		DF20405A1380CA230056300A /* rate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rate.cpp; path = ../../audio/rate.cpp; sourceTree = SOURCE_ROOT; };
+		DF20405B1380CA230056300A /* rate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rate.h; path = ../../audio/rate.h; sourceTree = SOURCE_ROOT; };
+		DF20405C1380CA230056300A /* timestamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = timestamp.cpp; path = ../../audio/timestamp.cpp; sourceTree = SOURCE_ROOT; };
+		DF20405D1380CA230056300A /* timestamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = timestamp.h; path = ../../audio/timestamp.h; sourceTree = SOURCE_ROOT; };
+		DF2040831380CA400056300A /* adpcm_intern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = adpcm_intern.h; path = ../../audio/decoders/adpcm_intern.h; sourceTree = SOURCE_ROOT; };
+		DF2040841380CA400056300A /* adpcm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = adpcm.cpp; path = ../../audio/decoders/adpcm.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040851380CA400056300A /* adpcm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = adpcm.h; path = ../../audio/decoders/adpcm.h; sourceTree = SOURCE_ROOT; };
+		DF2040861380CA400056300A /* aiff.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = aiff.cpp; path = ../../audio/decoders/aiff.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040871380CA400056300A /* aiff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aiff.h; path = ../../audio/decoders/aiff.h; sourceTree = SOURCE_ROOT; };
+		DF2040881380CA400056300A /* flac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = flac.cpp; path = ../../audio/decoders/flac.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040891380CA400056300A /* flac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = flac.h; path = ../../audio/decoders/flac.h; sourceTree = SOURCE_ROOT; };
+		DF20408A1380CA400056300A /* iff_sound.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = iff_sound.cpp; path = ../../audio/decoders/iff_sound.cpp; sourceTree = SOURCE_ROOT; };
+		DF20408B1380CA400056300A /* iff_sound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iff_sound.h; path = ../../audio/decoders/iff_sound.h; sourceTree = SOURCE_ROOT; };
+		DF20408C1380CA400056300A /* mac_snd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mac_snd.cpp; path = ../../audio/decoders/mac_snd.cpp; sourceTree = SOURCE_ROOT; };
+		DF20408D1380CA400056300A /* mac_snd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mac_snd.h; path = ../../audio/decoders/mac_snd.h; sourceTree = SOURCE_ROOT; };
+		DF20408E1380CA400056300A /* mp3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mp3.cpp; path = ../../audio/decoders/mp3.cpp; sourceTree = SOURCE_ROOT; };
+		DF20408F1380CA400056300A /* mp3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mp3.h; path = ../../audio/decoders/mp3.h; sourceTree = SOURCE_ROOT; };
+		DF2040901380CA400056300A /* raw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = raw.cpp; path = ../../audio/decoders/raw.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040911380CA400056300A /* raw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = raw.h; path = ../../audio/decoders/raw.h; sourceTree = SOURCE_ROOT; };
+		DF2040921380CA400056300A /* vag.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vag.cpp; path = ../../audio/decoders/vag.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040931380CA400056300A /* vag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vag.h; path = ../../audio/decoders/vag.h; sourceTree = SOURCE_ROOT; };
+		DF2040941380CA400056300A /* voc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = voc.cpp; path = ../../audio/decoders/voc.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040951380CA400056300A /* voc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = voc.h; path = ../../audio/decoders/voc.h; sourceTree = SOURCE_ROOT; };
+		DF2040961380CA400056300A /* vorbis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vorbis.cpp; path = ../../audio/decoders/vorbis.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040971380CA400056300A /* vorbis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vorbis.h; path = ../../audio/decoders/vorbis.h; sourceTree = SOURCE_ROOT; };
+		DF2040981380CA400056300A /* wave.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = wave.cpp; path = ../../audio/decoders/wave.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040991380CA400056300A /* wave.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wave.h; path = ../../audio/decoders/wave.h; sourceTree = SOURCE_ROOT; };
+		DF2040BC1380CA810056300A /* infogrames.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = infogrames.cpp; path = ../../audio/mods/infogrames.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040BD1380CA810056300A /* infogrames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = infogrames.h; path = ../../audio/mods/infogrames.h; sourceTree = SOURCE_ROOT; };
+		DF2040BE1380CA810056300A /* maxtrax.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = maxtrax.cpp; path = ../../audio/mods/maxtrax.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040BF1380CA810056300A /* maxtrax.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = maxtrax.h; path = ../../audio/mods/maxtrax.h; sourceTree = SOURCE_ROOT; };
+		DF2040C01380CA810056300A /* module.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = module.cpp; path = ../../audio/mods/module.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040C11380CA810056300A /* module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = module.h; path = ../../audio/mods/module.h; sourceTree = SOURCE_ROOT; };
+		DF2040C21380CA810056300A /* paula.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = paula.cpp; path = ../../audio/mods/paula.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040C31380CA810056300A /* paula.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = paula.h; path = ../../audio/mods/paula.h; sourceTree = SOURCE_ROOT; };
+		DF2040C41380CA810056300A /* protracker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = protracker.cpp; path = ../../audio/mods/protracker.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040C51380CA810056300A /* protracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = protracker.h; path = ../../audio/mods/protracker.h; sourceTree = SOURCE_ROOT; };
+		DF2040C61380CA810056300A /* rjp1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rjp1.cpp; path = ../../audio/mods/rjp1.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040C71380CA810056300A /* rjp1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rjp1.h; path = ../../audio/mods/rjp1.h; sourceTree = SOURCE_ROOT; };
+		DF2040C81380CA810056300A /* soundfx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = soundfx.cpp; path = ../../audio/mods/soundfx.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040C91380CA810056300A /* soundfx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soundfx.h; path = ../../audio/mods/soundfx.h; sourceTree = SOURCE_ROOT; };
+		DF2040CA1380CA810056300A /* tfmx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tfmx.cpp; path = ../../audio/mods/tfmx.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040CB1380CA810056300A /* tfmx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tfmx.h; path = ../../audio/mods/tfmx.h; sourceTree = SOURCE_ROOT; };
+		DF2040E51380CAA40056300A /* adlib.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = adlib.cpp; path = ../../audio/softsynth/adlib.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040E61380CAA40056300A /* appleiigs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = appleiigs.cpp; path = ../../audio/softsynth/appleiigs.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040E71380CAA40056300A /* cms.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cms.cpp; path = ../../audio/softsynth/cms.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040E81380CAA40056300A /* cms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cms.h; path = ../../audio/softsynth/cms.h; sourceTree = SOURCE_ROOT; };
+		DF2040E91380CAA40056300A /* eas.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = eas.cpp; path = ../../audio/softsynth/eas.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040EA1380CAA40056300A /* emumidi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = emumidi.h; path = ../../audio/softsynth/emumidi.h; sourceTree = SOURCE_ROOT; };
+		DF2040EB1380CAA40056300A /* fluidsynth.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fluidsynth.cpp; path = ../../audio/softsynth/fluidsynth.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040EC1380CAA40056300A /* mt32.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mt32.cpp; path = ../../audio/softsynth/mt32.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040ED1380CAA40056300A /* pcspk.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = pcspk.cpp; path = ../../audio/softsynth/pcspk.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040EE1380CAA40056300A /* pcspk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pcspk.h; path = ../../audio/softsynth/pcspk.h; sourceTree = SOURCE_ROOT; };
+		DF2040EF1380CAA40056300A /* sid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = sid.cpp; path = ../../audio/softsynth/sid.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040F01380CAA40056300A /* sid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sid.h; path = ../../audio/softsynth/sid.h; sourceTree = SOURCE_ROOT; };
+		DF2040F11380CAA40056300A /* wave6581.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = wave6581.cpp; path = ../../audio/softsynth/wave6581.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040F21380CAA40056300A /* ym2612.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ym2612.cpp; path = ../../audio/softsynth/ym2612.cpp; sourceTree = SOURCE_ROOT; };
+		DF2040F31380CAA40056300A /* ym2612.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ym2612.h; path = ../../audio/softsynth/ym2612.h; sourceTree = SOURCE_ROOT; };
 		DF224E020FB23BC500C8E453 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
 		DF2EC3E410E6490800765801 /* browser_osx.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = browser_osx.mm; sourceTree = "<group>"; };
 		DF2EC3F610E64C0C00765801 /* dialogs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dialogs.cpp; sourceTree = "<group>"; };
@@ -3354,16 +3658,12 @@
 		DF2EC50010E64D7C00765801 /* player_sid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = player_sid.h; sourceTree = "<group>"; };
 		DF2EC50910E64DB300765801 /* textconsole.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = textconsole.cpp; sourceTree = "<group>"; };
 		DF2EC50A10E64DB300765801 /* textconsole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = textconsole.h; sourceTree = "<group>"; };
-		DF2EC51010E64E3100765801 /* sid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sid.cpp; sourceTree = "<group>"; };
-		DF2EC51110E64E3100765801 /* sid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sid.h; sourceTree = "<group>"; };
-		DF2EC51710E64EE600765801 /* wave6581.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wave6581.cpp; sourceTree = "<group>"; };
 		DF2FFB900F485D890006E566 /* dither.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dither.cpp; sourceTree = "<group>"; };
 		DF2FFB910F485D890006E566 /* dither.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dither.h; sourceTree = "<group>"; };
 		DF2FFB920F485D890006E566 /* pixelformat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pixelformat.h; sourceTree = "<group>"; };
 		DF2FFBD10F485DFB0006E566 /* debug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = debug.cpp; sourceTree = "<group>"; };
 		DF2FFBD20F485DFB0006E566 /* debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = debug.h; sourceTree = "<group>"; };
-		DF2FFBD50F485E360006E566 /* gui-manager.hcpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gui-manager.hcpp; sourceTree = "<group>"; };
-		DF2FFBD60F485E360006E566 /* gui-manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gui-manager.h; sourceTree = "<group>"; };
+		DF2FFBD60F485E360006E566 /* gui-manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gui-manager.h"; sourceTree = "<group>"; };
 		DF2FFBDB0F485E480006E566 /* scummclassic.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; path = scummclassic.zip; sourceTree = "<group>"; };
 		DF2FFBF80F4860A60006E566 /* posix-saves.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "posix-saves.cpp"; sourceTree = "<group>"; };
 		DF2FFBF90F4860A60006E566 /* posix-saves.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "posix-saves.h"; sourceTree = "<group>"; };
@@ -3441,26 +3741,6 @@
 		DF2FFD0F0F4870E50006E566 /* tucker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tucker.h; sourceTree = "<group>"; };
 		DF2FFD290F48717F0006E566 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
 		DF2FFD2A0F48717F0006E566 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = "<group>"; };
-		DF45B0F7116627DA009B85CC /* adpcm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adpcm.cpp; sourceTree = "<group>"; };
-		DF45B0F8116627DA009B85CC /* adpcm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = adpcm.h; sourceTree = "<group>"; };
-		DF45B0FA116627DA009B85CC /* aiff.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = aiff.cpp; sourceTree = "<group>"; };
-		DF45B0FB116627DA009B85CC /* aiff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiff.h; sourceTree = "<group>"; };
-		DF45B0FD116627DA009B85CC /* flac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flac.cpp; sourceTree = "<group>"; };
-		DF45B0FE116627DA009B85CC /* flac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flac.h; sourceTree = "<group>"; };
-		DF45B100116627DA009B85CC /* iff_sound.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = iff_sound.cpp; sourceTree = "<group>"; };
-		DF45B101116627DA009B85CC /* iff_sound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iff_sound.h; sourceTree = "<group>"; };
-		DF45B103116627DA009B85CC /* mp3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mp3.cpp; sourceTree = "<group>"; };
-		DF45B104116627DA009B85CC /* mp3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mp3.h; sourceTree = "<group>"; };
-		DF45B106116627DA009B85CC /* raw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = raw.cpp; sourceTree = "<group>"; };
-		DF45B107116627DA009B85CC /* raw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = raw.h; sourceTree = "<group>"; };
-		DF45B109116627DA009B85CC /* vag.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vag.cpp; sourceTree = "<group>"; };
-		DF45B10A116627DA009B85CC /* vag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vag.h; sourceTree = "<group>"; };
-		DF45B10C116627DA009B85CC /* voc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = voc.cpp; sourceTree = "<group>"; };
-		DF45B10D116627DA009B85CC /* voc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = voc.h; sourceTree = "<group>"; };
-		DF45B10F116627DA009B85CC /* vorbis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vorbis.cpp; sourceTree = "<group>"; };
-		DF45B110116627DA009B85CC /* vorbis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vorbis.h; sourceTree = "<group>"; };
-		DF45B112116627DA009B85CC /* wave.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wave.cpp; sourceTree = "<group>"; };
-		DF45B113116627DA009B85CC /* wave.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wave.h; sourceTree = "<group>"; };
 		DF45B176116628A5009B85CC /* animate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = animate.cpp; sourceTree = "<group>"; };
 		DF45B177116628A5009B85CC /* animate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = animate.h; sourceTree = "<group>"; };
 		DF45B178116628A5009B85CC /* cache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cache.cpp; sourceTree = "<group>"; };
@@ -3523,6 +3803,97 @@
 		DF45B1C4116628A5009B85CC /* soundcmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = soundcmd.h; sourceTree = "<group>"; };
 		DF45B1C6116628A5009B85CC /* seq_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = seq_decoder.cpp; sourceTree = "<group>"; };
 		DF45B1C7116628A5009B85CC /* seq_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = seq_decoder.h; sourceTree = "<group>"; };
+		DF46B6F21381E18900D08723 /* coroutine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = coroutine.cpp; sourceTree = "<group>"; };
+		DF46B6F71381E1FF00D08723 /* towns_audio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = towns_audio.cpp; path = ../../audio/softsynth/fmtowns_pc98/towns_audio.cpp; sourceTree = SOURCE_ROOT; };
+		DF46B6F81381E1FF00D08723 /* towns_audio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = towns_audio.h; path = ../../audio/softsynth/fmtowns_pc98/towns_audio.h; sourceTree = SOURCE_ROOT; };
+		DF46B6F91381E1FF00D08723 /* towns_euphony.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = towns_euphony.cpp; path = ../../audio/softsynth/fmtowns_pc98/towns_euphony.cpp; sourceTree = SOURCE_ROOT; };
+		DF46B6FA1381E1FF00D08723 /* towns_euphony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = towns_euphony.h; path = ../../audio/softsynth/fmtowns_pc98/towns_euphony.h; sourceTree = SOURCE_ROOT; };
+		DF46B6FB1381E1FF00D08723 /* towns_pc98_driver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = towns_pc98_driver.cpp; path = ../../audio/softsynth/fmtowns_pc98/towns_pc98_driver.cpp; sourceTree = SOURCE_ROOT; };
+		DF46B6FC1381E1FF00D08723 /* towns_pc98_driver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = towns_pc98_driver.h; path = ../../audio/softsynth/fmtowns_pc98/towns_pc98_driver.h; sourceTree = SOURCE_ROOT; };
+		DF46B6FD1381E1FF00D08723 /* towns_pc98_fmsynth.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = towns_pc98_fmsynth.cpp; path = ../../audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.cpp; sourceTree = SOURCE_ROOT; };
+		DF46B6FE1381E1FF00D08723 /* towns_pc98_fmsynth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = towns_pc98_fmsynth.h; path = ../../audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.h; sourceTree = SOURCE_ROOT; };
+		DF46B70F1381E27000D08723 /* console.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = console.cpp; sourceTree = "<group>"; };
+		DF46B7101381E27000D08723 /* console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = console.h; sourceTree = "<group>"; };
+		DF46B7111381E27000D08723 /* databases.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = databases.cpp; sourceTree = "<group>"; };
+		DF46B7121381E27000D08723 /* databases.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = databases.h; sourceTree = "<group>"; };
+		DF46B7131381E27000D08723 /* dbase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dbase.cpp; sourceTree = "<group>"; };
+		DF46B7141381E27000D08723 /* dbase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dbase.h; sourceTree = "<group>"; };
+		DF46B7151381E27000D08723 /* iniconfig.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = iniconfig.cpp; sourceTree = "<group>"; };
+		DF46B7161381E27000D08723 /* iniconfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iniconfig.h; sourceTree = "<group>"; };
+		DF46B7171381E27000D08723 /* init_v7.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = init_v7.cpp; sourceTree = "<group>"; };
+		DF46B7181381E27000D08723 /* inter_inca2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inter_inca2.cpp; sourceTree = "<group>"; };
+		DF46B7421381E40500D08723 /* log.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = log.cpp; path = log/log.cpp; sourceTree = "<group>"; };
+		DF46B7431381E40500D08723 /* log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = log.h; path = log/log.h; sourceTree = "<group>"; };
+		DF46B7471381E40F00D08723 /* modular-backend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "modular-backend.cpp"; sourceTree = "<group>"; };
+		DF46B7481381E40F00D08723 /* modular-backend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "modular-backend.h"; sourceTree = "<group>"; };
+		DF46B7501381E46700D08723 /* actor_he.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = actor_he.h; sourceTree = "<group>"; };
+		DF46B7511381E46700D08723 /* player_v2base.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = player_v2base.cpp; sourceTree = "<group>"; };
+		DF46B7521381E46700D08723 /* player_v2base.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = player_v2base.h; sourceTree = "<group>"; };
+		DF46B7531381E46700D08723 /* player_v2cms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = player_v2cms.h; sourceTree = "<group>"; };
+		DF46B75B1381E4A400D08723 /* console.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = console.cpp; sourceTree = "<group>"; };
+		DF46B75C1381E4A400D08723 /* console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = console.h; sourceTree = "<group>"; };
+		DF46B75D1381E4A400D08723 /* detection_tables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = detection_tables.h; sourceTree = "<group>"; };
+		DF46B7611381E4D400D08723 /* robot_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = robot_decoder.cpp; sourceTree = "<group>"; };
+		DF46B7621381E4D400D08723 /* robot_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = robot_decoder.h; sourceTree = "<group>"; };
+		DF46B7661381E4E400D08723 /* vm_types.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vm_types.cpp; sourceTree = "<group>"; };
+		DF46B76E1381E54200D08723 /* bufferedstream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bufferedstream.h; sourceTree = "<group>"; };
+		DF46B76F1381E54200D08723 /* dcl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dcl.cpp; sourceTree = "<group>"; };
+		DF46B7701381E54200D08723 /* dcl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dcl.h; sourceTree = "<group>"; };
+		DF46B7711381E54200D08723 /* forbidden.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = forbidden.h; sourceTree = "<group>"; };
+		DF46B7721381E54200D08723 /* iff_container.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = iff_container.cpp; sourceTree = "<group>"; };
+		DF46B7731381E54200D08723 /* substream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = substream.h; sourceTree = "<group>"; };
+		DF46B7741381E54200D08723 /* translation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = translation.h; sourceTree = "<group>"; };
+		DF46B7751381E54200D08723 /* winexe_ne.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = winexe_ne.cpp; sourceTree = "<group>"; };
+		DF46B7761381E54200D08723 /* winexe_ne.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = winexe_ne.h; sourceTree = "<group>"; };
+		DF46B7771381E54200D08723 /* winexe_pe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = winexe_pe.cpp; sourceTree = "<group>"; };
+		DF46B7781381E54200D08723 /* winexe_pe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = winexe_pe.h; sourceTree = "<group>"; };
+		DF46B7791381E54200D08723 /* winexe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = winexe.cpp; sourceTree = "<group>"; };
+		DF46B77A1381E54200D08723 /* winexe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = winexe.h; sourceTree = "<group>"; };
+		DF46B78E1381E58000D08723 /* palette.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = palette.h; sourceTree = "<group>"; };
+		DF46B78F1381E58000D08723 /* png.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = png.cpp; sourceTree = "<group>"; };
+		DF46B7901381E58000D08723 /* png.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = png.h; sourceTree = "<group>"; };
+		DF46B7911381E58000D08723 /* wincursor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wincursor.cpp; sourceTree = "<group>"; };
+		DF46B7921381E58000D08723 /* wincursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wincursor.h; sourceTree = "<group>"; };
+		DF46B79D1381E5B500D08723 /* winfont.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = winfont.cpp; sourceTree = "<group>"; };
+		DF46B79E1381E5B500D08723 /* winfont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = winfont.h; sourceTree = "<group>"; };
+		DF46B7A31381E5D900D08723 /* sdl-timer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "sdl-timer.cpp"; path = "sdl/sdl-timer.cpp"; sourceTree = "<group>"; };
+		DF46B7A41381E5D900D08723 /* sdl-timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "sdl-timer.h"; path = "sdl/sdl-timer.h"; sourceTree = "<group>"; };
+		DF46B7A81381E5F100D08723 /* header.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = header.cpp; sourceTree = "<group>"; };
+		DF46B7B21381E67800D08723 /* sdl-mutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "sdl-mutex.cpp"; path = "mutex/sdl/sdl-mutex.cpp"; sourceTree = "<group>"; };
+		DF46B7B31381E67800D08723 /* sdl-mutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "sdl-mutex.h"; path = "mutex/sdl/sdl-mutex.h"; sourceTree = "<group>"; };
+		DF46B7BB1381E6C000D08723 /* object.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = object.cpp; sourceTree = "<group>"; };
+		DF46B7BC1381E6C000D08723 /* object.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = object.h; sourceTree = "<group>"; };
+		DF46B7C61381E72500D08723 /* console.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = console.cpp; sourceTree = "<group>"; };
+		DF46B7C71381E72500D08723 /* console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = console.h; sourceTree = "<group>"; };
+		DF46B7CD1381E76300D08723 /* sdl-events.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "sdl-events.cpp"; path = "events/sdl/sdl-events.cpp"; sourceTree = "<group>"; };
+		DF46B7CE1381E76300D08723 /* sdl-events.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "sdl-events.h"; path = "events/sdl/sdl-events.h"; sourceTree = "<group>"; };
+		DF46B7D41381E7C600D08723 /* console.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = console.cpp; sourceTree = "<group>"; };
+		DF46B7D51381E7C600D08723 /* console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = console.h; sourceTree = "<group>"; };
+		DF46B83B1381F13500D08723 /* saveload_v7.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = saveload_v7.cpp; sourceTree = "<group>"; };
+		DF46B8431381F35500D08723 /* saveload_inca2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = saveload_inca2.cpp; sourceTree = "<group>"; };
+		DF46B8471381F38700D08723 /* inter_v7.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = inter_v7.cpp; sourceTree = "<group>"; };
+		DF46B84B1381F39E00D08723 /* console.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = console.cpp; sourceTree = "<group>"; };
+		DF46B84C1381F39E00D08723 /* console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = console.h; sourceTree = "<group>"; };
+		DF46B8501381F3B400D08723 /* console.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = console.cpp; sourceTree = "<group>"; };
+		DF46B8511381F3B400D08723 /* console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = console.h; sourceTree = "<group>"; };
+		DF46B85A1381F44E00D08723 /* dbopl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dbopl.cpp; path = ../../audio/softsynth/opl/dbopl.cpp; sourceTree = SOURCE_ROOT; };
+		DF46B85B1381F44E00D08723 /* dbopl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dbopl.h; path = ../../audio/softsynth/opl/dbopl.h; sourceTree = SOURCE_ROOT; };
+		DF46B85C1381F44E00D08723 /* dosbox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dosbox.cpp; path = ../../audio/softsynth/opl/dosbox.cpp; sourceTree = SOURCE_ROOT; };
+		DF46B85D1381F44E00D08723 /* dosbox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dosbox.h; path = ../../audio/softsynth/opl/dosbox.h; sourceTree = SOURCE_ROOT; };
+		DF46B85E1381F44E00D08723 /* mame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mame.cpp; path = ../../audio/softsynth/opl/mame.cpp; sourceTree = SOURCE_ROOT; };
+		DF46B85F1381F44E00D08723 /* mame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mame.h; path = ../../audio/softsynth/opl/mame.h; sourceTree = SOURCE_ROOT; };
+		DF46B86F1381F4A200D08723 /* sdl-audiocd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "sdl-audiocd.cpp"; path = "audiocd/sdl/sdl-audiocd.cpp"; sourceTree = "<group>"; };
+		DF46B8701381F4A200D08723 /* sdl-audiocd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "sdl-audiocd.h"; path = "audiocd/sdl/sdl-audiocd.h"; sourceTree = "<group>"; };
+		DF46B87B1381F4F200D08723 /* default-audiocd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "default-audiocd.cpp"; path = "audiocd/default/default-audiocd.cpp"; sourceTree = "<group>"; };
+		DF46B87C1381F4F200D08723 /* default-audiocd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "default-audiocd.h"; path = "audiocd/default/default-audiocd.h"; sourceTree = "<group>"; };
+		DF46B8801381F4FF00D08723 /* audiocd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = audiocd.h; path = audiocd/audiocd.h; sourceTree = "<group>"; };
+		DF46B8851381F56400D08723 /* util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = util.h; sourceTree = "<group>"; };
+		DF46B8871381F5D800D08723 /* sdl-provider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "sdl-provider.cpp"; path = "sdl/sdl-provider.cpp"; sourceTree = "<group>"; };
+		DF46B8881381F5D800D08723 /* sdl-provider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "sdl-provider.h"; path = "sdl/sdl-provider.h"; sourceTree = "<group>"; };
+		DF46B8901381F62B00D08723 /* adpcm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adpcm.cpp; sourceTree = "<group>"; };
+		DF46B8911381F62B00D08723 /* adpcm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = adpcm.h; sourceTree = "<group>"; };
+		DF46B8991381F6C400D08723 /* null.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = null.cpp; path = ../../audio/null.cpp; sourceTree = SOURCE_ROOT; };
+		DF46B89A1381F6C400D08723 /* null.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = null.h; path = ../../audio/null.h; sourceTree = SOURCE_ROOT; };
 		DF573BFE0F5A81EA00961A72 /* kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kernel.h; sourceTree = "<group>"; };
 		DF573BFF0F5A81EA00961A72 /* script.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = script.h; sourceTree = "<group>"; };
 		DF573C000F5A81EA00961A72 /* seg_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = seg_manager.h; sourceTree = "<group>"; };
@@ -3546,19 +3917,11 @@
 		DF6118450FE3A8250042AD3F /* resource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = resource.cpp; sourceTree = "<group>"; };
 		DF6118460FE3A8250042AD3F /* resource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resource.h; sourceTree = "<group>"; };
 		DF6118540FE3A8990042AD3F /* disk.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = disk.cpp; sourceTree = "<group>"; };
-		DF6118590FE3A9020042AD3F /* helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = helper.h; sourceTree = "<group>"; };
-		DF6118600FE3A9410042AD3F /* dxa_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dxa_decoder.cpp; sourceTree = "<group>"; };
-		DF6118610FE3A9410042AD3F /* dxa_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dxa_decoder.h; sourceTree = "<group>"; };
-		DF6118620FE3A9410042AD3F /* flic_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flic_decoder.cpp; sourceTree = "<group>"; };
-		DF6118630FE3A9410042AD3F /* flic_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flic_decoder.h; sourceTree = "<group>"; };
-		DF6118640FE3A9410042AD3F /* smk_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = smk_decoder.cpp; sourceTree = "<group>"; };
-		DF6118650FE3A9410042AD3F /* smk_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = smk_decoder.h; sourceTree = "<group>"; };
 		DF6118790FE3A9AA0042AD3F /* saveconverter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = saveconverter.cpp; sourceTree = "<group>"; };
 		DF61187A0FE3A9AA0042AD3F /* saveconverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = saveconverter.h; sourceTree = "<group>"; };
 		DF61187B0FE3A9AA0042AD3F /* saveconverter_v2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = saveconverter_v2.cpp; sourceTree = "<group>"; };
 		DF61187C0FE3A9AA0042AD3F /* saveconverter_v3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = saveconverter_v3.cpp; sourceTree = "<group>"; };
 		DF61187D0FE3A9AA0042AD3F /* saveconverter_v4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = saveconverter_v4.cpp; sourceTree = "<group>"; };
-		DF61187E0FE3A9AA0042AD3F /* saveconverter_v6.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = saveconverter_v6.cpp; sourceTree = "<group>"; };
 		DF61187F0FE3A9AA0042AD3F /* savefile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = savefile.cpp; sourceTree = "<group>"; };
 		DF6118800FE3A9AA0042AD3F /* savefile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = savefile.h; sourceTree = "<group>"; };
 		DF6118810FE3A9AA0042AD3F /* savehandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = savehandler.cpp; sourceTree = "<group>"; };
@@ -3577,8 +3940,6 @@
 		DF6118B70FE3AA280042AD3F /* text_lol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = text_lol.h; sourceTree = "<group>"; };
 		DF6118C60FE3AABD0042AD3F /* player_v2cms.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = player_v2cms.cpp; sourceTree = "<group>"; };
 		DF6118CB0FE3AAFD0042AD3F /* hardwarekeys.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hardwarekeys.cpp; sourceTree = "<group>"; };
-		DF6118CF0FE3AB560042AD3F /* mame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mame.cpp; sourceTree = "<group>"; };
-		DF6118D00FE3AB560042AD3F /* mame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mame.h; sourceTree = "<group>"; };
 		DF6BF4C010529DA50069811F /* conversion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conversion.cpp; sourceTree = "<group>"; };
 		DF6BF4C110529DA50069811F /* conversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conversion.h; sourceTree = "<group>"; };
 		DF6BF4C210529DA50069811F /* jpeg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = jpeg.cpp; sourceTree = "<group>"; };
@@ -3597,10 +3958,6 @@
 		DF6BF4F910529F140069811F /* EventRecorder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventRecorder.h; sourceTree = "<group>"; };
 		DF6BF4FA10529F140069811F /* list_intern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = list_intern.h; sourceTree = "<group>"; };
 		DF6BF4FB10529F140069811F /* serializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = serializer.h; sourceTree = "<group>"; };
-		DF6BF50210529F540069811F /* maxtrax.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = maxtrax.cpp; sourceTree = "<group>"; };
-		DF6BF50310529F540069811F /* maxtrax.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maxtrax.h; sourceTree = "<group>"; };
-		DF6BF50410529F540069811F /* tfmx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tfmx.cpp; sourceTree = "<group>"; };
-		DF6BF50510529F540069811F /* tfmx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tfmx.h; sourceTree = "<group>"; };
 		DF7585C3100CB66E00CC3324 /* expression.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = expression.cpp; sourceTree = "<group>"; };
 		DF7585C4100CB66E00CC3324 /* expression.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = expression.h; sourceTree = "<group>"; };
 		DF7585C5100CB66E00CC3324 /* hotspots.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hotspots.cpp; sourceTree = "<group>"; };
@@ -3661,8 +4018,6 @@
 		DF7F288911FF244F00159131 /* Tooltip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Tooltip.cpp; sourceTree = "<group>"; };
 		DF7F288A11FF244F00159131 /* Tooltip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tooltip.h; sourceTree = "<group>"; };
 		DF7F289111FF247300159131 /* translation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = translation.cpp; sourceTree = "<group>"; };
-		DF7F289E11FF24B000159131 /* mac_snd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mac_snd.cpp; sourceTree = "<group>"; };
-		DF7F289F11FF24B000159131 /* mac_snd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mac_snd.h; sourceTree = "<group>"; };
 		DF7F28A311FF24C400159131 /* console.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = console.cpp; sourceTree = "<group>"; };
 		DF7F28A411FF24C400159131 /* console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = console.h; sourceTree = "<group>"; };
 		DF841FD90E7BA61800F5680E /* iphone_keyboard.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = iphone_keyboard.m; sourceTree = "<group>"; };
@@ -4705,54 +5060,21 @@
 		DF842A4C0E7BBBEB00F5680E /* posix-fs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "posix-fs.h"; sourceTree = "<group>"; };
 		DF842A6B0E7BBD5700F5680E /* stdiostream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stdiostream.cpp; sourceTree = "<group>"; };
 		DF842A6C0E7BBD5700F5680E /* stdiostream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stdiostream.h; sourceTree = "<group>"; };
-		DF842A6F0E7BBDB200F5680E /* musicplugin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = musicplugin.cpp; sourceTree = "<group>"; };
-		DF842A700E7BBDB200F5680E /* musicplugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = musicplugin.h; sourceTree = "<group>"; };
-		DF895BFC124C24350077F6E8 /* coktel_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = coktel_decoder.cpp; sourceTree = "<group>"; };
-		DF895BFD124C24350077F6E8 /* coktel_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = coktel_decoder.h; sourceTree = "<group>"; };
 		DF895C01124C24680077F6E8 /* player_towns.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = player_towns.cpp; sourceTree = "<group>"; };
 		DF895C02124C24680077F6E8 /* player_towns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = player_towns.h; sourceTree = "<group>"; };
-		DF895C08124C24B50077F6E8 /* appleiigs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = appleiigs.cpp; sourceTree = "<group>"; };
-		DF895C0D124C24C00077F6E8 /* towns_audio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = towns_audio.cpp; sourceTree = "<group>"; };
-		DF895C0E124C24C00077F6E8 /* towns_audio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = towns_audio.h; sourceTree = "<group>"; };
-		DF895C0F124C24C00077F6E8 /* towns_euphony.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = towns_euphony.cpp; sourceTree = "<group>"; };
-		DF895C10124C24C00077F6E8 /* towns_euphony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = towns_euphony.h; sourceTree = "<group>"; };
-		DF895C11124C24C00077F6E8 /* towns_pc98_driver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = towns_pc98_driver.cpp; sourceTree = "<group>"; };
-		DF895C12124C24C00077F6E8 /* towns_pc98_driver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = towns_pc98_driver.h; sourceTree = "<group>"; };
-		DF895C13124C24C00077F6E8 /* towns_pc98_fmsynth.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = towns_pc98_fmsynth.cpp; sourceTree = "<group>"; };
-		DF895C14124C24C00077F6E8 /* towns_pc98_fmsynth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = towns_pc98_fmsynth.h; sourceTree = "<group>"; };
 		DF895C23124C25150077F6E8 /* detection_tables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = detection_tables.h; sourceTree = "<group>"; };
 		DF895C24124C25150077F6E8 /* init_fascin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = init_fascin.cpp; sourceTree = "<group>"; };
 		DF895C28124C25350077F6E8 /* kernel_tables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kernel_tables.h; sourceTree = "<group>"; };
 		DF895C29124C25350077F6E8 /* script_patches.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = script_patches.cpp; sourceTree = "<group>"; };
 		DF895C33124C26660077F6E8 /* icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-72.png"; sourceTree = "<group>"; };
 		DF895C40124C271F0077F6E8 /* icon4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon4.png; sourceTree = "<group>"; };
-		DF895CAB124E58980077F6E8 /* indeo3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = indeo3.cpp; sourceTree = "<group>"; };
-		DF895CAC124E58980077F6E8 /* indeo3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = indeo3.h; sourceTree = "<group>"; };
-		DF895CAD124E58980077F6E8 /* mjpeg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mjpeg.cpp; sourceTree = "<group>"; };
-		DF895CAE124E58980077F6E8 /* mjpeg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mjpeg.h; sourceTree = "<group>"; };
-		DF895CAF124E58980077F6E8 /* qdm2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = qdm2.cpp; sourceTree = "<group>"; };
-		DF895CB0124E58980077F6E8 /* qdm2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = qdm2.h; sourceTree = "<group>"; };
-		DF895CB1124E58980077F6E8 /* qdm2data.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = qdm2data.h; sourceTree = "<group>"; };
-		DF895CB2124E58980077F6E8 /* qtrle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = qtrle.cpp; sourceTree = "<group>"; };
-		DF895CB3124E58980077F6E8 /* qtrle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = qtrle.h; sourceTree = "<group>"; };
-		DF895CB4124E58980077F6E8 /* rpza.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rpza.cpp; sourceTree = "<group>"; };
-		DF895CB5124E58980077F6E8 /* rpza.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rpza.h; sourceTree = "<group>"; };
-		DF895CB6124E58980077F6E8 /* smc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = smc.cpp; sourceTree = "<group>"; };
-		DF895CB7124E58980077F6E8 /* smc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = smc.h; sourceTree = "<group>"; };
 		DF89C2870F62D55C00D756B6 /* sprites_lol.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sprites_lol.cpp; sourceTree = "<group>"; };
 		DF89C2A30F62D79E00D756B6 /* script.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = script.cpp; sourceTree = "<group>"; };
-		DF89C2B80F62D91000D756B6 /* timestamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = timestamp.cpp; sourceTree = "<group>"; };
-		DF89C2B90F62D91000D756B6 /* timestamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = timestamp.h; sourceTree = "<group>"; };
 		DF90E9B410AEDA5300C8F93F /* detection_tables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = detection_tables.h; sourceTree = "<group>"; };
 		DF90E9BD10AEDA9B00C8F93F /* selector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = selector.cpp; sourceTree = "<group>"; };
 		DF90EAA310B0234300C8F93F /* draw_playtoons.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = draw_playtoons.cpp; sourceTree = "<group>"; };
 		DF90EAAB10B0236F00C8F93F /* staticres.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = staticres.cpp; sourceTree = "<group>"; };
 		DF90EAAC10B0236F00C8F93F /* staticres.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = staticres.h; sourceTree = "<group>"; };
-		DF90EAB610B023D100C8F93F /* avi_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = avi_decoder.cpp; sourceTree = "<group>"; };
-		DF90EAB710B023D100C8F93F /* avi_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = avi_decoder.h; sourceTree = "<group>"; };
-		DF90EAC010B023F400C8F93F /* codec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = codec.h; sourceTree = "<group>"; };
-		DF90EAC110B023F400C8F93F /* msvideo1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = msvideo1.cpp; sourceTree = "<group>"; };
-		DF90EAC210B023F400C8F93F /* msvideo1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = msvideo1.h; sourceTree = "<group>"; };
 		DF9B9246118E46730069C19D /* error.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = error.cpp; sourceTree = "<group>"; };
 		DF9B9247118E46730069C19D /* error.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = error.h; sourceTree = "<group>"; };
 		DF9B924F118E46A00069C19D /* fontsjis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fontsjis.cpp; sourceTree = "<group>"; };
@@ -4765,12 +5087,6 @@
 		DFAAB0010F011392003E9390 /* thumbnail_intern.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = thumbnail_intern.cpp; sourceTree = "<group>"; };
 		DFAAD2390F50120E00C3A4E2 /* console.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = console.cpp; sourceTree = "<group>"; };
 		DFAAD23A0F50120E00C3A4E2 /* console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = console.h; sourceTree = "<group>"; };
-		DFB0576211B753AF0015AE65 /* mpeg_player.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mpeg_player.cpp; sourceTree = "<group>"; };
-		DFB0576311B753AF0015AE65 /* mpeg_player.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mpeg_player.h; sourceTree = "<group>"; };
-		DFB0576411B753AF0015AE65 /* qt_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = qt_decoder.cpp; sourceTree = "<group>"; };
-		DFB0576511B753AF0015AE65 /* qt_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = qt_decoder.h; sourceTree = "<group>"; };
-		DFB0576611B753AF0015AE65 /* video_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = video_decoder.cpp; sourceTree = "<group>"; };
-		DFB0576711B753AF0015AE65 /* video_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = video_decoder.h; sourceTree = "<group>"; };
 		DFB0577311B753DA0015AE65 /* debug-channels.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "debug-channels.h"; sourceTree = "<group>"; };
 		DFB0577411B753DA0015AE65 /* rational.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rational.cpp; sourceTree = "<group>"; };
 		DFB0577511B753DA0015AE65 /* rational.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rational.h; sourceTree = "<group>"; };
@@ -4781,8 +5097,6 @@
 		DFB0578911B754570015AE65 /* maciconbar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maciconbar.h; sourceTree = "<group>"; };
 		DFB0578F11B7547D0015AE65 /* pict.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pict.cpp; sourceTree = "<group>"; };
 		DFB0579011B7547D0015AE65 /* pict.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pict.h; sourceTree = "<group>"; };
-		DFB0579611B7549C0015AE65 /* cinepak.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cinepak.cpp; sourceTree = "<group>"; };
-		DFB0579711B7549C0015AE65 /* cinepak.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cinepak.h; sourceTree = "<group>"; };
 		DFC8301A0F48AF18005EF03C /* detection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = detection.cpp; sourceTree = "<group>"; };
 		DFC8301E0F48AF18005EF03C /* gc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gc.cpp; sourceTree = "<group>"; };
 		DFC8301F0F48AF18005EF03C /* gc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gc.h; sourceTree = "<group>"; };
@@ -4811,8 +5125,6 @@
 		DFCDC6D7116629CE00A7D2A0 /* kparse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = kparse.cpp; sourceTree = "<group>"; };
 		DFCDC6D8116629CE00A7D2A0 /* selector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = selector.h; sourceTree = "<group>"; };
 		DFCDC6F611662AAB00A7D2A0 /* resource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = resource.cpp; sourceTree = "<group>"; };
-		DFCDC6FC11662AD700A7D2A0 /* msrle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = msrle.cpp; sourceTree = "<group>"; };
-		DFCDC6FD11662AD700A7D2A0 /* msrle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = msrle.h; sourceTree = "<group>"; };
 		DFCDC70311662B0200A7D2A0 /* saveload_fascin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = saveload_fascin.cpp; sourceTree = "<group>"; };
 		DFCDC70911662B6B00A7D2A0 /* macresman.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = macresman.cpp; sourceTree = "<group>"; };
 		DFCDC70A11662B6B00A7D2A0 /* macresman.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macresman.h; sourceTree = "<group>"; };
@@ -4942,16 +5254,10 @@
 		DFE477950D81F4E900B6D1FB /* debugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = debugger.h; sourceTree = "<group>"; };
 		DFE477960D81F4E900B6D1FB /* dialog.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dialog.cpp; sourceTree = "<group>"; };
 		DFE477970D81F4E900B6D1FB /* dialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dialog.h; sourceTree = "<group>"; };
-		DFE477980D81F4E900B6D1FB /* editable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = editable.cpp; sourceTree = "<group>"; };
-		DFE477990D81F4E900B6D1FB /* editable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = editable.h; sourceTree = "<group>"; };
-		DFE4779A0D81F4E900B6D1FB /* EditTextWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EditTextWidget.cpp; sourceTree = "<group>"; };
-		DFE4779B0D81F4E900B6D1FB /* EditTextWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditTextWidget.h; sourceTree = "<group>"; };
 		DFE4779E0D81F4E900B6D1FB /* Key.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Key.cpp; sourceTree = "<group>"; };
 		DFE4779F0D81F4E900B6D1FB /* Key.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Key.h; sourceTree = "<group>"; };
 		DFE477A20D81F4E900B6D1FB /* launcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = launcher.cpp; sourceTree = "<group>"; };
 		DFE477A30D81F4E900B6D1FB /* launcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = launcher.h; sourceTree = "<group>"; };
-		DFE477A40D81F4E900B6D1FB /* ListWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ListWidget.cpp; sourceTree = "<group>"; };
-		DFE477A50D81F4E900B6D1FB /* ListWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListWidget.h; sourceTree = "<group>"; };
 		DFE477A60D81F4E900B6D1FB /* massadd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = massadd.cpp; sourceTree = "<group>"; };
 		DFE477A70D81F4E900B6D1FB /* massadd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = massadd.h; sourceTree = "<group>"; };
 		DFE477A80D81F4E900B6D1FB /* message.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = message.cpp; sourceTree = "<group>"; };
@@ -4960,54 +5266,10 @@
 		DFE477AE0D81F4E900B6D1FB /* object.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = object.h; sourceTree = "<group>"; };
 		DFE477AF0D81F4E900B6D1FB /* options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = options.cpp; sourceTree = "<group>"; };
 		DFE477B00D81F4E900B6D1FB /* options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = options.h; sourceTree = "<group>"; };
-		DFE477B10D81F4E900B6D1FB /* PopUpWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PopUpWidget.cpp; sourceTree = "<group>"; };
-		DFE477B20D81F4E900B6D1FB /* PopUpWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PopUpWidget.h; sourceTree = "<group>"; };
-		DFE477B30D81F4E900B6D1FB /* ScrollBarWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollBarWidget.cpp; sourceTree = "<group>"; };
-		DFE477B40D81F4E900B6D1FB /* ScrollBarWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollBarWidget.h; sourceTree = "<group>"; };
-		DFE477B50D81F4E900B6D1FB /* TabWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TabWidget.cpp; sourceTree = "<group>"; };
-		DFE477B60D81F4E900B6D1FB /* TabWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TabWidget.h; sourceTree = "<group>"; };
 		DFE477BA0D81F4E900B6D1FB /* themebrowser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = themebrowser.cpp; sourceTree = "<group>"; };
 		DFE477BB0D81F4E900B6D1FB /* themebrowser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = themebrowser.h; sourceTree = "<group>"; };
 		DFE477C40D81F4E900B6D1FB /* widget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = widget.cpp; sourceTree = "<group>"; };
 		DFE477C50D81F4E900B6D1FB /* widget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = widget.h; sourceTree = "<group>"; };
-		DFE477CB0D81F4E900B6D1FB /* audiocd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audiocd.cpp; sourceTree = "<group>"; };
-		DFE477CC0D81F4E900B6D1FB /* audiocd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audiocd.h; sourceTree = "<group>"; };
-		DFE477CD0D81F4E900B6D1FB /* audiostream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audiostream.cpp; sourceTree = "<group>"; };
-		DFE477CE0D81F4E900B6D1FB /* audiostream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audiostream.h; sourceTree = "<group>"; };
-		DFE477D10D81F4E900B6D1FB /* fmopl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fmopl.cpp; sourceTree = "<group>"; };
-		DFE477D20D81F4E900B6D1FB /* fmopl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fmopl.h; sourceTree = "<group>"; };
-		DFE477D50D81F4E900B6D1FB /* mididrv.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mididrv.cpp; sourceTree = "<group>"; };
-		DFE477D60D81F4E900B6D1FB /* mididrv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mididrv.h; sourceTree = "<group>"; };
-		DFE477D70D81F4E900B6D1FB /* midiparser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midiparser.cpp; sourceTree = "<group>"; };
-		DFE477D80D81F4E900B6D1FB /* midiparser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = midiparser.h; sourceTree = "<group>"; };
-		DFE477D90D81F4E900B6D1FB /* midiparser_smf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midiparser_smf.cpp; sourceTree = "<group>"; };
-		DFE477DA0D81F4E900B6D1FB /* midiparser_xmidi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midiparser_xmidi.cpp; sourceTree = "<group>"; };
-		DFE477DB0D81F4E900B6D1FB /* mixer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mixer.cpp; sourceTree = "<group>"; };
-		DFE477DC0D81F4E900B6D1FB /* mixer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mixer.h; sourceTree = "<group>"; };
-		DFE477DE0D81F4E900B6D1FB /* infogrames.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = infogrames.cpp; sourceTree = "<group>"; };
-		DFE477DF0D81F4E900B6D1FB /* infogrames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = infogrames.h; sourceTree = "<group>"; };
-		DFE477E00D81F4E900B6D1FB /* module.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = module.cpp; sourceTree = "<group>"; };
-		DFE477E10D81F4E900B6D1FB /* module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = module.h; sourceTree = "<group>"; };
-		DFE477E20D81F4E900B6D1FB /* paula.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = paula.cpp; sourceTree = "<group>"; };
-		DFE477E30D81F4E900B6D1FB /* paula.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = paula.h; sourceTree = "<group>"; };
-		DFE477E40D81F4E900B6D1FB /* protracker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = protracker.cpp; sourceTree = "<group>"; };
-		DFE477E50D81F4E900B6D1FB /* protracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = protracker.h; sourceTree = "<group>"; };
-		DFE477E60D81F4E900B6D1FB /* rjp1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rjp1.cpp; sourceTree = "<group>"; };
-		DFE477E70D81F4E900B6D1FB /* rjp1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rjp1.h; sourceTree = "<group>"; };
-		DFE477E80D81F4E900B6D1FB /* soundfx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = soundfx.cpp; sourceTree = "<group>"; };
-		DFE477E90D81F4E900B6D1FB /* soundfx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = soundfx.h; sourceTree = "<group>"; };
-		DFE477ED0D81F4E900B6D1FB /* mpu401.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mpu401.cpp; sourceTree = "<group>"; };
-		DFE477EE0D81F4E900B6D1FB /* mpu401.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mpu401.h; sourceTree = "<group>"; };
-		DFE477EF0D81F4E900B6D1FB /* null.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = null.cpp; sourceTree = "<group>"; };
-		DFE477F00D81F4E900B6D1FB /* rate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rate.cpp; sourceTree = "<group>"; };
-		DFE477F10D81F4E900B6D1FB /* rate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rate.h; sourceTree = "<group>"; };
-		DFE477F70D81F4E900B6D1FB /* adlib.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adlib.cpp; sourceTree = "<group>"; };
-		DFE477F80D81F4E900B6D1FB /* emumidi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = emumidi.h; sourceTree = "<group>"; };
-		DFE477F90D81F4E900B6D1FB /* fluidsynth.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fluidsynth.cpp; sourceTree = "<group>"; };
-		DFE478210D81F4E900B6D1FB /* pcspk.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pcspk.cpp; sourceTree = "<group>"; };
-		DFE478220D81F4E900B6D1FB /* pcspk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pcspk.h; sourceTree = "<group>"; };
-		DFE478230D81F4E900B6D1FB /* ym2612.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ym2612.cpp; sourceTree = "<group>"; };
-		DFE478240D81F4E900B6D1FB /* ym2612.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ym2612.h; sourceTree = "<group>"; };
 		DFE47C810D81F86900B6D1FB /* kyra.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = kyra.dat; sourceTree = "<group>"; };
 		DFE47C820D81F86900B6D1FB /* lure.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = lure.dat; sourceTree = "<group>"; };
 		DFE47C830D81F86900B6D1FB /* queen.tbl */ = {isa = PBXFileReference; lastKnownFileType = file; path = queen.tbl; sourceTree = "<group>"; };
@@ -5022,11 +5284,7 @@
 		DFEC5D0F1166C5CF00C90552 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = "<group>"; };
 		DFEC5D341166C67300C90552 /* savestate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = savestate.cpp; sourceTree = "<group>"; };
 		DFEC5D351166C67300C90552 /* savestate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = savestate.h; sourceTree = "<group>"; };
-		DFEC5D3D1166C6B400C90552 /* dbopl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dbopl.cpp; sourceTree = "<group>"; };
-		DFEC5D3E1166C6B400C90552 /* dbopl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dbopl.h; sourceTree = "<group>"; };
 		DFF4DFFC0F4B449F00C50BC7 /* Info.plist.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = Info.plist.in; sourceTree = "<group>"; };
-		DFF958A90FB222F300A3EC78 /* dosbox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dosbox.cpp; sourceTree = "<group>"; };
-		DFF958AA0FB222F300A3EC78 /* dosbox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dosbox.h; sourceTree = "<group>"; };
 		DFF95CCA0FB22D5700A3EC78 /* ScummVM.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ScummVM.app; sourceTree = BUILT_PRODUCTS_DIR; };
 /* End PBXFileReference section */
 
@@ -5046,6 +5304,7 @@
 				DFF959080FB22D3300A3EC78 /* libvorbisidec.a in Frameworks */,
 				DFF95CCF0FB22D8500A3EC78 /* libmpeg2.a in Frameworks */,
 				DF224E040FB23BC500C8E453 /* OpenGLES.framework in Frameworks */,
+				DF06D400139B29F700049EF7 /* libz.dylib in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -5102,6 +5361,7 @@
 				DF842A170E7BB34E00F5680E /* CoreFoundation.framework */,
 				DF842A180E7BB34E00F5680E /* Foundation.framework */,
 				DF842A190E7BB34E00F5680E /* UIKit.framework */,
+				DF06D3FF139B29F700049EF7 /* libz.dylib */,
 			);
 			name = "Linked Frameworks";
 			sourceTree = "<group>";
@@ -5126,6 +5386,8 @@
 		29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
 			isa = PBXGroup;
 			children = (
+				DF2040461380C9ED0056300A /* audio */,
+				DF203F521380C2470056300A /* video */,
 				DF9B9277118E475D0069C19D /* games */,
 				DFD6476A0F49F7D2008E18EF /* libs */,
 				DF841FF50E7BA6A600F5680E /* engines */,
@@ -5134,7 +5396,6 @@
 				DFE473950D81F4E800B6D1FB /* common */,
 				DFE477520D81F4E900B6D1FB /* graphics */,
 				DFE477880D81F4E900B6D1FB /* gui */,
-				DFE477C60D81F4E900B6D1FB /* sound */,
 				29B97317FDCFA39411CA2CEA /* Resources */,
 				DFA2A57A118E433A00344DFD /* Resources-iPad */,
 				29B97323FDCFA39411CA2CEA /* Frameworks */,
@@ -5187,15 +5448,33 @@
 		8CD1ECC5126202AA00FA198C /* hugo */ = {
 			isa = PBXGroup;
 			children = (
+				DF203FC01380C3BC0056300A /* console.cpp */,
+				DF203FC11380C3BC0056300A /* console.h */,
+				DF203FC21380C3BC0056300A /* dialogs.cpp */,
+				DF203FC31380C3BC0056300A /* dialogs.h */,
+				DF203FC41380C3BC0056300A /* file_v1d.cpp */,
+				DF203FC51380C3BC0056300A /* file_v1w.cpp */,
+				DF203FC61380C3BC0056300A /* file_v2d.cpp */,
+				DF203FC71380C3BC0056300A /* file_v2w.cpp */,
+				DF203FC81380C3BC0056300A /* file_v3d.cpp */,
+				DF203FC91380C3BC0056300A /* object_v1d.cpp */,
+				DF203FCA1380C3BC0056300A /* object_v1w.cpp */,
+				DF203FCB1380C3BC0056300A /* object_v2d.cpp */,
+				DF203FCC1380C3BC0056300A /* object_v3d.cpp */,
+				DF203FCD1380C3BC0056300A /* object.cpp */,
+				DF203FCE1380C3BC0056300A /* object.h */,
+				DF203FCF1380C3BC0056300A /* parser_v1d.cpp */,
+				DF203FD01380C3BC0056300A /* parser_v1w.cpp */,
+				DF203FD11380C3BC0056300A /* parser_v2d.cpp */,
+				DF203FD21380C3BC0056300A /* parser_v3d.cpp */,
+				DF203FD31380C3BC0056300A /* text.cpp */,
+				DF203FD41380C3BC0056300A /* text.h */,
 				8CD1ECC6126202AA00FA198C /* detection.cpp */,
 				8CD1ECC7126202AA00FA198C /* display.cpp */,
 				8CD1ECC8126202AA00FA198C /* display.h */,
-				8CD1ECC9126202AA00FA198C /* engine.cpp */,
-				8CD1ECCA126202AA00FA198C /* engine.h */,
 				8CD1ECCB126202AA00FA198C /* file.cpp */,
 				8CD1ECCC126202AA00FA198C /* file.h */,
 				8CD1ECCD126202AA00FA198C /* game.h */,
-				8CD1ECCE126202AA00FA198C /* global.h */,
 				8CD1ECCF126202AA00FA198C /* hugo.cpp */,
 				8CD1ECD0126202AA00FA198C /* hugo.h */,
 				8CD1ECD1126202AA00FA198C /* intro.cpp */,
@@ -5305,8 +5584,6 @@
 			isa = PBXGroup;
 			children = (
 				DF6118CB0FE3AAFD0042AD3F /* hardwarekeys.cpp */,
-				DF0942350F63CB9A002D821E /* events.cpp */,
-				DF0942370F63CB9A002D821E /* graphics.cpp */,
 				DF0942390F63CB9A002D821E /* main.cpp */,
 				DF09423C0F63CB9A002D821E /* sdl.cpp */,
 				DF09423D0F63CB9A002D821E /* sdl.h */,
@@ -5327,28 +5604,189 @@
 			path = demos;
 			sourceTree = "<group>";
 		};
-		DF2FFB940F485D950006E566 /* video */ = {
+		DF203F521380C2470056300A /* video */ = {
 			isa = PBXGroup;
 			children = (
-				DF90EAB610B023D100C8F93F /* avi_decoder.cpp */,
-				DF90EAB710B023D100C8F93F /* avi_decoder.h */,
-				DF90EABF10B023F300C8F93F /* codecs */,
-				DF895BFC124C24350077F6E8 /* coktel_decoder.cpp */,
-				DF895BFD124C24350077F6E8 /* coktel_decoder.h */,
-				DF6118600FE3A9410042AD3F /* dxa_decoder.cpp */,
-				DF6118610FE3A9410042AD3F /* dxa_decoder.h */,
-				DF6118620FE3A9410042AD3F /* flic_decoder.cpp */,
-				DF6118630FE3A9410042AD3F /* flic_decoder.h */,
-				DFB0576211B753AF0015AE65 /* mpeg_player.cpp */,
-				DFB0576311B753AF0015AE65 /* mpeg_player.h */,
-				DFB0576411B753AF0015AE65 /* qt_decoder.cpp */,
-				DFB0576511B753AF0015AE65 /* qt_decoder.h */,
-				DF6118640FE3A9410042AD3F /* smk_decoder.cpp */,
-				DF6118650FE3A9410042AD3F /* smk_decoder.h */,
-				DFB0576611B753AF0015AE65 /* video_decoder.cpp */,
-				DFB0576711B753AF0015AE65 /* video_decoder.h */,
+				DF203F7B1380C27A0056300A /* codecs */,
+				DF203F531380C2740056300A /* avi_decoder.cpp */,
+				DF203F541380C2740056300A /* avi_decoder.h */,
+				DF203F551380C2740056300A /* coktel_decoder.cpp */,
+				DF203F561380C2740056300A /* coktel_decoder.h */,
+				DF203F571380C2740056300A /* dxa_decoder.cpp */,
+				DF203F581380C2740056300A /* dxa_decoder.h */,
+				DF203F591380C2740056300A /* flic_decoder.cpp */,
+				DF203F5A1380C2740056300A /* flic_decoder.h */,
+				DF203F5D1380C2740056300A /* qt_decoder.cpp */,
+				DF203F5E1380C2750056300A /* qt_decoder.h */,
+				DF203F5F1380C2750056300A /* smk_decoder.cpp */,
+				DF203F601380C2750056300A /* smk_decoder.h */,
+				DF203F611380C2750056300A /* video_decoder.cpp */,
+				DF203F621380C2750056300A /* video_decoder.h */,
 			);
-			path = video;
+			name = video;
+			sourceTree = "<group>";
+		};
+		DF203F7B1380C27A0056300A /* codecs */ = {
+			isa = PBXGroup;
+			children = (
+				DF203F7C1380C2920056300A /* cdtoons.cpp */,
+				DF203F7D1380C2920056300A /* cdtoons.h */,
+				DF203F7E1380C2920056300A /* cinepak.cpp */,
+				DF203F7F1380C2920056300A /* cinepak.h */,
+				DF203F801380C2920056300A /* codec.h */,
+				DF203F811380C2920056300A /* indeo3.cpp */,
+				DF203F821380C2920056300A /* indeo3.h */,
+				DF203F831380C2920056300A /* mjpeg.cpp */,
+				DF203F841380C2920056300A /* mjpeg.h */,
+				DF203F851380C2920056300A /* msrle.cpp */,
+				DF203F861380C2920056300A /* msrle.h */,
+				DF203F871380C2920056300A /* msvideo1.cpp */,
+				DF203F881380C2920056300A /* msvideo1.h */,
+				DF203F891380C2920056300A /* qdm2.cpp */,
+				DF203F8A1380C2920056300A /* qdm2.h */,
+				DF203F8B1380C2920056300A /* qdm2data.h */,
+				DF203F8C1380C2920056300A /* qtrle.cpp */,
+				DF203F8D1380C2920056300A /* qtrle.h */,
+				DF203F8E1380C2920056300A /* rpza.cpp */,
+				DF203F8F1380C2920056300A /* rpza.h */,
+				DF203F901380C2920056300A /* smc.cpp */,
+				DF203F911380C2920056300A /* smc.h */,
+				DF203F921380C2920056300A /* truemotion1.cpp */,
+				DF203F931380C2920056300A /* truemotion1.h */,
+				DF203F941380C2920056300A /* truemotion1data.h */,
+			);
+			name = codecs;
+			sourceTree = "<group>";
+		};
+		DF2040211380C8A60056300A /* widgets */ = {
+			isa = PBXGroup;
+			children = (
+				DF2040221380C8B70056300A /* editable.cpp */,
+				DF2040231380C8B70056300A /* editable.h */,
+				DF2040241380C8B70056300A /* edittext.cpp */,
+				DF2040251380C8B70056300A /* edittext.h */,
+				DF2040261380C8B70056300A /* list.cpp */,
+				DF2040271380C8B70056300A /* list.h */,
+				DF2040281380C8B70056300A /* popup.cpp */,
+				DF2040291380C8B70056300A /* popup.h */,
+				DF20402A1380C8B70056300A /* scrollbar.cpp */,
+				DF20402B1380C8B70056300A /* scrollbar.h */,
+				DF20402C1380C8B70056300A /* tab.cpp */,
+				DF20402D1380C8B70056300A /* tab.h */,
+			);
+			name = widgets;
+			sourceTree = "<group>";
+		};
+		DF2040461380C9ED0056300A /* audio */ = {
+			isa = PBXGroup;
+			children = (
+				DF46B8991381F6C400D08723 /* null.cpp */,
+				DF46B89A1381F6C400D08723 /* null.h */,
+				DF2040E41380CA8C0056300A /* softsynth */,
+				DF2040BB1380CA5C0056300A /* mods */,
+				DF2040821380CA280056300A /* decoders */,
+				DF2040471380CA230056300A /* audiostream.cpp */,
+				DF2040481380CA230056300A /* audiostream.h */,
+				DF2040491380CA230056300A /* fmopl.cpp */,
+				DF20404A1380CA230056300A /* fmopl.h */,
+				DF20404B1380CA230056300A /* mididrv.cpp */,
+				DF20404C1380CA230056300A /* mididrv.h */,
+				DF20404D1380CA230056300A /* midiparser_smf.cpp */,
+				DF20404E1380CA230056300A /* midiparser_xmidi.cpp */,
+				DF20404F1380CA230056300A /* midiparser.cpp */,
+				DF2040501380CA230056300A /* midiparser.h */,
+				DF2040511380CA230056300A /* midiplayer.cpp */,
+				DF2040521380CA230056300A /* midiplayer.h */,
+				DF2040531380CA230056300A /* mixer_intern.h */,
+				DF2040541380CA230056300A /* mixer.cpp */,
+				DF2040551380CA230056300A /* mixer.h */,
+				DF2040561380CA230056300A /* mpu401.cpp */,
+				DF2040571380CA230056300A /* mpu401.h */,
+				DF2040581380CA230056300A /* musicplugin.cpp */,
+				DF2040591380CA230056300A /* musicplugin.h */,
+				DF20405A1380CA230056300A /* rate.cpp */,
+				DF20405B1380CA230056300A /* rate.h */,
+				DF20405C1380CA230056300A /* timestamp.cpp */,
+				DF20405D1380CA230056300A /* timestamp.h */,
+			);
+			name = audio;
+			sourceTree = "<group>";
+		};
+		DF2040821380CA280056300A /* decoders */ = {
+			isa = PBXGroup;
+			children = (
+				DF2040831380CA400056300A /* adpcm_intern.h */,
+				DF2040841380CA400056300A /* adpcm.cpp */,
+				DF2040851380CA400056300A /* adpcm.h */,
+				DF2040861380CA400056300A /* aiff.cpp */,
+				DF2040871380CA400056300A /* aiff.h */,
+				DF2040881380CA400056300A /* flac.cpp */,
+				DF2040891380CA400056300A /* flac.h */,
+				DF20408A1380CA400056300A /* iff_sound.cpp */,
+				DF20408B1380CA400056300A /* iff_sound.h */,
+				DF20408C1380CA400056300A /* mac_snd.cpp */,
+				DF20408D1380CA400056300A /* mac_snd.h */,
+				DF20408E1380CA400056300A /* mp3.cpp */,
+				DF20408F1380CA400056300A /* mp3.h */,
+				DF2040901380CA400056300A /* raw.cpp */,
+				DF2040911380CA400056300A /* raw.h */,
+				DF2040921380CA400056300A /* vag.cpp */,
+				DF2040931380CA400056300A /* vag.h */,
+				DF2040941380CA400056300A /* voc.cpp */,
+				DF2040951380CA400056300A /* voc.h */,
+				DF2040961380CA400056300A /* vorbis.cpp */,
+				DF2040971380CA400056300A /* vorbis.h */,
+				DF2040981380CA400056300A /* wave.cpp */,
+				DF2040991380CA400056300A /* wave.h */,
+			);
+			name = decoders;
+			sourceTree = "<group>";
+		};
+		DF2040BB1380CA5C0056300A /* mods */ = {
+			isa = PBXGroup;
+			children = (
+				DF2040BC1380CA810056300A /* infogrames.cpp */,
+				DF2040BD1380CA810056300A /* infogrames.h */,
+				DF2040BE1380CA810056300A /* maxtrax.cpp */,
+				DF2040BF1380CA810056300A /* maxtrax.h */,
+				DF2040C01380CA810056300A /* module.cpp */,
+				DF2040C11380CA810056300A /* module.h */,
+				DF2040C21380CA810056300A /* paula.cpp */,
+				DF2040C31380CA810056300A /* paula.h */,
+				DF2040C41380CA810056300A /* protracker.cpp */,
+				DF2040C51380CA810056300A /* protracker.h */,
+				DF2040C61380CA810056300A /* rjp1.cpp */,
+				DF2040C71380CA810056300A /* rjp1.h */,
+				DF2040C81380CA810056300A /* soundfx.cpp */,
+				DF2040C91380CA810056300A /* soundfx.h */,
+				DF2040CA1380CA810056300A /* tfmx.cpp */,
+				DF2040CB1380CA810056300A /* tfmx.h */,
+			);
+			name = mods;
+			sourceTree = "<group>";
+		};
+		DF2040E41380CA8C0056300A /* softsynth */ = {
+			isa = PBXGroup;
+			children = (
+				DF46B8591381F43100D08723 /* opl */,
+				DF46B6F61381E1D100D08723 /* fmtowns_pc98 */,
+				DF2040E51380CAA40056300A /* adlib.cpp */,
+				DF2040E61380CAA40056300A /* appleiigs.cpp */,
+				DF2040E71380CAA40056300A /* cms.cpp */,
+				DF2040E81380CAA40056300A /* cms.h */,
+				DF2040E91380CAA40056300A /* eas.cpp */,
+				DF2040EA1380CAA40056300A /* emumidi.h */,
+				DF2040EB1380CAA40056300A /* fluidsynth.cpp */,
+				DF2040EC1380CAA40056300A /* mt32.cpp */,
+				DF2040ED1380CAA40056300A /* pcspk.cpp */,
+				DF2040EE1380CAA40056300A /* pcspk.h */,
+				DF2040EF1380CAA40056300A /* sid.cpp */,
+				DF2040F01380CAA40056300A /* sid.h */,
+				DF2040F11380CAA40056300A /* wave6581.cpp */,
+				DF2040F21380CAA40056300A /* ym2612.cpp */,
+				DF2040F31380CAA40056300A /* ym2612.h */,
+			);
+			name = softsynth;
 			sourceTree = "<group>";
 		};
 		DF2FFBF50F4860A60006E566 /* posix */ = {
@@ -5399,6 +5837,8 @@
 		DF2FFD040F4870E50006E566 /* tucker */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B7D41381E7C600D08723 /* console.cpp */,
+				DF46B7D51381E7C600D08723 /* console.h */,
 				DF2FFD050F4870E50006E566 /* detection.cpp */,
 				DF2FFD060F4870E50006E566 /* graphics.cpp */,
 				DF2FFD070F4870E50006E566 /* graphics.h */,
@@ -5413,35 +5853,6 @@
 			path = tucker;
 			sourceTree = "<group>";
 		};
-		DF45B0EB116627D9009B85CC /* decoders */ = {
-			isa = PBXGroup;
-			children = (
-				DF45B0F7116627DA009B85CC /* adpcm.cpp */,
-				DF45B0F8116627DA009B85CC /* adpcm.h */,
-				DF45B0FA116627DA009B85CC /* aiff.cpp */,
-				DF45B0FB116627DA009B85CC /* aiff.h */,
-				DF45B0FD116627DA009B85CC /* flac.cpp */,
-				DF45B0FE116627DA009B85CC /* flac.h */,
-				DF45B100116627DA009B85CC /* iff_sound.cpp */,
-				DF45B101116627DA009B85CC /* iff_sound.h */,
-				DF7F289E11FF24B000159131 /* mac_snd.cpp */,
-				DF7F289F11FF24B000159131 /* mac_snd.h */,
-				DF45B103116627DA009B85CC /* mp3.cpp */,
-				DF45B104116627DA009B85CC /* mp3.h */,
-				DF45B106116627DA009B85CC /* raw.cpp */,
-				DF45B107116627DA009B85CC /* raw.h */,
-				DF45B109116627DA009B85CC /* vag.cpp */,
-				DF45B10A116627DA009B85CC /* vag.h */,
-				DF45B10C116627DA009B85CC /* voc.cpp */,
-				DF45B10D116627DA009B85CC /* voc.h */,
-				DF45B10F116627DA009B85CC /* vorbis.cpp */,
-				DF45B110116627DA009B85CC /* vorbis.h */,
-				DF45B112116627DA009B85CC /* wave.cpp */,
-				DF45B113116627DA009B85CC /* wave.h */,
-			);
-			path = decoders;
-			sourceTree = "<group>";
-		};
 		DF45B175116628A5009B85CC /* graphics */ = {
 			isa = PBXGroup;
 			children = (
@@ -5541,15 +5952,129 @@
 		DF45B1C5116628A5009B85CC /* video */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B7611381E4D400D08723 /* robot_decoder.cpp */,
+				DF46B7621381E4D400D08723 /* robot_decoder.h */,
 				DF45B1C6116628A5009B85CC /* seq_decoder.cpp */,
 				DF45B1C7116628A5009B85CC /* seq_decoder.h */,
 			);
 			path = video;
 			sourceTree = "<group>";
 		};
+		DF46B6F61381E1D100D08723 /* fmtowns_pc98 */ = {
+			isa = PBXGroup;
+			children = (
+				DF46B6F71381E1FF00D08723 /* towns_audio.cpp */,
+				DF46B6F81381E1FF00D08723 /* towns_audio.h */,
+				DF46B6F91381E1FF00D08723 /* towns_euphony.cpp */,
+				DF46B6FA1381E1FF00D08723 /* towns_euphony.h */,
+				DF46B6FB1381E1FF00D08723 /* towns_pc98_driver.cpp */,
+				DF46B6FC1381E1FF00D08723 /* towns_pc98_driver.h */,
+				DF46B6FD1381E1FF00D08723 /* towns_pc98_fmsynth.cpp */,
+				DF46B6FE1381E1FF00D08723 /* towns_pc98_fmsynth.h */,
+			);
+			name = fmtowns_pc98;
+			sourceTree = "<group>";
+		};
+		DF46B7411381E3F200D08723 /* log */ = {
+			isa = PBXGroup;
+			children = (
+				DF46B7421381E40500D08723 /* log.cpp */,
+				DF46B7431381E40500D08723 /* log.h */,
+			);
+			name = log;
+			sourceTree = "<group>";
+		};
+		DF46B7A21381E5CC00D08723 /* sdl */ = {
+			isa = PBXGroup;
+			children = (
+				DF46B7A31381E5D900D08723 /* sdl-timer.cpp */,
+				DF46B7A41381E5D900D08723 /* sdl-timer.h */,
+			);
+			name = sdl;
+			sourceTree = "<group>";
+		};
+		DF46B7B01381E64E00D08723 /* mutex */ = {
+			isa = PBXGroup;
+			children = (
+				DF46B7B11381E66000D08723 /* sdl */,
+			);
+			name = mutex;
+			sourceTree = "<group>";
+		};
+		DF46B7B11381E66000D08723 /* sdl */ = {
+			isa = PBXGroup;
+			children = (
+				DF46B7B21381E67800D08723 /* sdl-mutex.cpp */,
+				DF46B7B31381E67800D08723 /* sdl-mutex.h */,
+			);
+			name = sdl;
+			sourceTree = "<group>";
+		};
+		DF46B7CC1381E74D00D08723 /* sdl */ = {
+			isa = PBXGroup;
+			children = (
+				DF46B7CD1381E76300D08723 /* sdl-events.cpp */,
+				DF46B7CE1381E76300D08723 /* sdl-events.h */,
+			);
+			name = sdl;
+			path = ..;
+			sourceTree = "<group>";
+		};
+		DF46B8591381F43100D08723 /* opl */ = {
+			isa = PBXGroup;
+			children = (
+				DF46B85A1381F44E00D08723 /* dbopl.cpp */,
+				DF46B85B1381F44E00D08723 /* dbopl.h */,
+				DF46B85C1381F44E00D08723 /* dosbox.cpp */,
+				DF46B85D1381F44E00D08723 /* dosbox.h */,
+				DF46B85E1381F44E00D08723 /* mame.cpp */,
+				DF46B85F1381F44E00D08723 /* mame.h */,
+			);
+			name = opl;
+			sourceTree = "<group>";
+		};
+		DF46B86D1381F47B00D08723 /* audiocd */ = {
+			isa = PBXGroup;
+			children = (
+				DF46B8801381F4FF00D08723 /* audiocd.h */,
+				DF46B8781381F4C500D08723 /* default */,
+				DF46B86E1381F48D00D08723 /* sdl */,
+			);
+			name = audiocd;
+			sourceTree = "<group>";
+		};
+		DF46B86E1381F48D00D08723 /* sdl */ = {
+			isa = PBXGroup;
+			children = (
+				DF46B86F1381F4A200D08723 /* sdl-audiocd.cpp */,
+				DF46B8701381F4A200D08723 /* sdl-audiocd.h */,
+			);
+			name = sdl;
+			sourceTree = "<group>";
+		};
+		DF46B8781381F4C500D08723 /* default */ = {
+			isa = PBXGroup;
+			children = (
+				DF46B87B1381F4F200D08723 /* default-audiocd.cpp */,
+				DF46B87C1381F4F200D08723 /* default-audiocd.h */,
+			);
+			name = default;
+			sourceTree = "<group>";
+		};
+		DF46B8861381F5C600D08723 /* sdl */ = {
+			isa = PBXGroup;
+			children = (
+				DF46B8871381F5D800D08723 /* sdl-provider.cpp */,
+				DF46B8881381F5D800D08723 /* sdl-provider.h */,
+			);
+			name = sdl;
+			sourceTree = "<group>";
+		};
 		DF6118780FE3A9AA0042AD3F /* save */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B8431381F35500D08723 /* saveload_inca2.cpp */,
+				DF46B83B1381F13500D08723 /* saveload_v7.cpp */,
 				DFCDC70311662B0200A7D2A0 /* saveload_fascin.cpp */,
 				DF7585F0100CB70600CC3324 /* saveload_playtoons.cpp */,
 				DF6118790FE3A9AA0042AD3F /* saveconverter.cpp */,
@@ -5557,7 +6082,6 @@
 				DF61187B0FE3A9AA0042AD3F /* saveconverter_v2.cpp */,
 				DF61187C0FE3A9AA0042AD3F /* saveconverter_v3.cpp */,
 				DF61187D0FE3A9AA0042AD3F /* saveconverter_v4.cpp */,
-				DF61187E0FE3A9AA0042AD3F /* saveconverter_v6.cpp */,
 				DF61187F0FE3A9AA0042AD3F /* savefile.cpp */,
 				DF6118800FE3A9AA0042AD3F /* savefile.h */,
 				DF6118810FE3A9AA0042AD3F /* savehandler.cpp */,
@@ -5575,6 +6099,7 @@
 		DF841FF50E7BA6A600F5680E /* engines */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B8851381F56400D08723 /* util.h */,
 				DF2FFC4C0F4863560006E566 /* advancedDetector.cpp */,
 				DF2FFC4D0F4863560006E566 /* advancedDetector.h */,
 				DF841FF60E7BA6A600F5680E /* agi */,
@@ -5757,6 +6282,9 @@
 		DF8420640E7BA6A600F5680E /* cine */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B75B1381E4A400D08723 /* console.cpp */,
+				DF46B75C1381E4A400D08723 /* console.h */,
+				DF46B75D1381E4A400D08723 /* detection_tables.h */,
 				DF8420650E7BA6A600F5680E /* anim.cpp */,
 				DF8420660E7BA6A600F5680E /* anim.h */,
 				DF8420670E7BA6A600F5680E /* bg.cpp */,
@@ -5892,6 +6420,17 @@
 		DF8421170E7BA6A700F5680E /* gob */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B8471381F38700D08723 /* inter_v7.cpp */,
+				DF46B70F1381E27000D08723 /* console.cpp */,
+				DF46B7101381E27000D08723 /* console.h */,
+				DF46B7111381E27000D08723 /* databases.cpp */,
+				DF46B7121381E27000D08723 /* databases.h */,
+				DF46B7131381E27000D08723 /* dbase.cpp */,
+				DF46B7141381E27000D08723 /* dbase.h */,
+				DF46B7151381E27000D08723 /* iniconfig.cpp */,
+				DF46B7161381E27000D08723 /* iniconfig.h */,
+				DF46B7171381E27000D08723 /* init_v7.cpp */,
+				DF46B7181381E27000D08723 /* inter_inca2.cpp */,
 				DF84211B0E7BA6A700F5680E /* dataio.cpp */,
 				DF84211C0E7BA6A700F5680E /* dataio.h */,
 				DF09CC060FAC4E1900A5AFD7 /* demos */,
@@ -5918,7 +6457,6 @@
 				DF8421300E7BA6A700F5680E /* goblin_v2.cpp */,
 				DF8421310E7BA6A700F5680E /* goblin_v3.cpp */,
 				DF8421320E7BA6A700F5680E /* goblin_v4.cpp */,
-				DF6118590FE3A9020042AD3F /* helper.h */,
 				DF7585C5100CB66E00CC3324 /* hotspots.cpp */,
 				DF7585C6100CB66E00CC3324 /* hotspots.h */,
 				DF8421330E7BA6A700F5680E /* init.cpp */,
@@ -6265,6 +6803,8 @@
 		DF8422C90E7BA6A900F5680E /* made */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B8501381F3B400D08723 /* console.cpp */,
+				DF46B8511381F3B400D08723 /* console.h */,
 				DF8422CA0E7BA6A900F5680E /* database.cpp */,
 				DF8422CB0E7BA6A900F5680E /* database.h */,
 				DF8422CC0E7BA6A900F5680E /* detection.cpp */,
@@ -6463,6 +7003,10 @@
 		DF84237B0E7BA6AA00F5680E /* scumm */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B7501381E46700D08723 /* actor_he.h */,
+				DF46B7511381E46700D08723 /* player_v2base.cpp */,
+				DF46B7521381E46700D08723 /* player_v2base.h */,
+				DF46B7531381E46700D08723 /* player_v2cms.h */,
 				DF84237C0E7BA6AA00F5680E /* actor.cpp */,
 				DF84237D0E7BA6AA00F5680E /* actor.h */,
 				DF84237E0E7BA6AA00F5680E /* akos.cpp */,
@@ -6738,6 +7282,8 @@
 		DF84244E0E7BA6AB00F5680E /* sword1 */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B7C61381E72500D08723 /* console.cpp */,
+				DF46B7C71381E72500D08723 /* console.h */,
 				DF84244F0E7BA6AB00F5680E /* animation.cpp */,
 				DF8424500E7BA6AB00F5680E /* animation.h */,
 				DF8424510E7BA6AB00F5680E /* collision.h */,
@@ -6783,6 +7329,7 @@
 		DF8424770E7BA6AB00F5680E /* sword2 */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B7A81381E5F100D08723 /* header.cpp */,
 				DF8424780E7BA6AB00F5680E /* animation.cpp */,
 				DF8424790E7BA6AB00F5680E /* animation.h */,
 				DF84247A0E7BA6AB00F5680E /* anims.cpp */,
@@ -6839,6 +7386,9 @@
 		DF8424AA0E7BA6AB00F5680E /* tinsel */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B8901381F62B00D08723 /* adpcm.cpp */,
+				DF46B8911381F62B00D08723 /* adpcm.h */,
+				DF46B6F21381E18900D08723 /* coroutine.cpp */,
 				DF8424AB0E7BA6AB00F5680E /* actors.cpp */,
 				DF8424AC0E7BA6AB00F5680E /* actors.h */,
 				DF8424AD0E7BA6AB00F5680E /* anim.cpp */,
@@ -6933,6 +7483,8 @@
 		DF8424FC0E7BA6AB00F5680E /* touche */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B84B1381F39E00D08723 /* console.cpp */,
+				DF46B84C1381F39E00D08723 /* console.h */,
 				DF8424FD0E7BA6AB00F5680E /* detection.cpp */,
 				DF8424FE0E7BA6AB00F5680E /* graphics.cpp */,
 				DF8424FF0E7BA6AB00F5680E /* graphics.h */,
@@ -6949,48 +7501,6 @@
 			path = touche;
 			sourceTree = "<group>";
 		};
-		DF895C0C124C24C00077F6E8 /* fmtowns_pc98 */ = {
-			isa = PBXGroup;
-			children = (
-				DF895C0D124C24C00077F6E8 /* towns_audio.cpp */,
-				DF895C0E124C24C00077F6E8 /* towns_audio.h */,
-				DF895C0F124C24C00077F6E8 /* towns_euphony.cpp */,
-				DF895C10124C24C00077F6E8 /* towns_euphony.h */,
-				DF895C11124C24C00077F6E8 /* towns_pc98_driver.cpp */,
-				DF895C12124C24C00077F6E8 /* towns_pc98_driver.h */,
-				DF895C13124C24C00077F6E8 /* towns_pc98_fmsynth.cpp */,
-				DF895C14124C24C00077F6E8 /* towns_pc98_fmsynth.h */,
-			);
-			path = fmtowns_pc98;
-			sourceTree = "<group>";
-		};
-		DF90EABF10B023F300C8F93F /* codecs */ = {
-			isa = PBXGroup;
-			children = (
-				DFB0579611B7549C0015AE65 /* cinepak.cpp */,
-				DFB0579711B7549C0015AE65 /* cinepak.h */,
-				DF90EAC010B023F400C8F93F /* codec.h */,
-				DF895CAB124E58980077F6E8 /* indeo3.cpp */,
-				DF895CAC124E58980077F6E8 /* indeo3.h */,
-				DF895CAD124E58980077F6E8 /* mjpeg.cpp */,
-				DF895CAE124E58980077F6E8 /* mjpeg.h */,
-				DFCDC6FC11662AD700A7D2A0 /* msrle.cpp */,
-				DFCDC6FD11662AD700A7D2A0 /* msrle.h */,
-				DF90EAC110B023F400C8F93F /* msvideo1.cpp */,
-				DF90EAC210B023F400C8F93F /* msvideo1.h */,
-				DF895CAF124E58980077F6E8 /* qdm2.cpp */,
-				DF895CB0124E58980077F6E8 /* qdm2.h */,
-				DF895CB1124E58980077F6E8 /* qdm2data.h */,
-				DF895CB2124E58980077F6E8 /* qtrle.cpp */,
-				DF895CB3124E58980077F6E8 /* qtrle.h */,
-				DF895CB4124E58980077F6E8 /* rpza.cpp */,
-				DF895CB5124E58980077F6E8 /* rpza.h */,
-				DF895CB6124E58980077F6E8 /* smc.cpp */,
-				DF895CB7124E58980077F6E8 /* smc.h */,
-			);
-			path = codecs;
-			sourceTree = "<group>";
-		};
 		DF9B9277118E475D0069C19D /* games */ = {
 			isa = PBXGroup;
 			children = (
@@ -7036,6 +7546,9 @@
 		DFC8301B0F48AF18005EF03C /* engine */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B7BB1381E6C000D08723 /* object.cpp */,
+				DF46B7BC1381E6C000D08723 /* object.h */,
+				DF46B7661381E4E400D08723 /* vm_types.cpp */,
 				DFCDC6D5116629CE00A7D2A0 /* features.cpp */,
 				DFCDC6D6116629CE00A7D2A0 /* features.h */,
 				DFC8301E0F48AF18005EF03C /* gc.cpp */,
@@ -7132,6 +7645,11 @@
 		DFE470D50D81F4E700B6D1FB /* backends */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B86D1381F47B00D08723 /* audiocd */,
+				DF46B7B01381E64E00D08723 /* mutex */,
+				DF46B7471381E40F00D08723 /* modular-backend.cpp */,
+				DF46B7481381E40F00D08723 /* modular-backend.h */,
+				DF46B7411381E3F200D08723 /* log */,
 				DF2FFC5B0F4866E70006E566 /* base-backend.cpp */,
 				DF2FFC5C0F4866E70006E566 /* base-backend.h */,
 				DFE470D60D81F4E700B6D1FB /* events */,
@@ -7149,6 +7667,7 @@
 		DFE470D60D81F4E700B6D1FB /* events */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B7CC1381E74D00D08723 /* sdl */,
 				DFE470D70D81F4E700B6D1FB /* default */,
 			);
 			path = events;
@@ -7228,6 +7747,7 @@
 		DFE4737B0D81F4E800B6D1FB /* plugins */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B8861381F5C600D08723 /* sdl */,
 				DFE4737F0D81F4E800B6D1FB /* dynamic-plugin.h */,
 				DFE473800D81F4E800B6D1FB /* posix */,
 			);
@@ -7265,6 +7785,7 @@
 		DFE473910D81F4E800B6D1FB /* timer */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B7A21381E5CC00D08723 /* sdl */,
 				DFE473920D81F4E800B6D1FB /* default */,
 			);
 			path = timer;
@@ -7282,6 +7803,19 @@
 		DFE473950D81F4E800B6D1FB /* common */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B76E1381E54200D08723 /* bufferedstream.h */,
+				DF46B76F1381E54200D08723 /* dcl.cpp */,
+				DF46B7701381E54200D08723 /* dcl.h */,
+				DF46B7711381E54200D08723 /* forbidden.h */,
+				DF46B7721381E54200D08723 /* iff_container.cpp */,
+				DF46B7731381E54200D08723 /* substream.h */,
+				DF46B7741381E54200D08723 /* translation.h */,
+				DF46B7751381E54200D08723 /* winexe_ne.cpp */,
+				DF46B7761381E54200D08723 /* winexe_ne.h */,
+				DF46B7771381E54200D08723 /* winexe_pe.cpp */,
+				DF46B7781381E54200D08723 /* winexe_pe.h */,
+				DF46B7791381E54200D08723 /* winexe.cpp */,
+				DF46B77A1381E54200D08723 /* winexe.h */,
 				DFE473980D81F4E800B6D1FB /* algorithm.h */,
 				DF842A400E7BBBB400F5680E /* archive.cpp */,
 				DF842A410E7BBBB400F5680E /* archive.h */,
@@ -7368,6 +7902,11 @@
 		DFE477520D81F4E900B6D1FB /* graphics */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B78E1381E58000D08723 /* palette.h */,
+				DF46B78F1381E58000D08723 /* png.cpp */,
+				DF46B7901381E58000D08723 /* png.h */,
+				DF46B7911381E58000D08723 /* wincursor.cpp */,
+				DF46B7921381E58000D08723 /* wincursor.h */,
 				DFE477530D81F4E900B6D1FB /* colormasks.h */,
 				DF6BF4C010529DA50069811F /* conversion.cpp */,
 				DF6BF4C110529DA50069811F /* conversion.h */,
@@ -7404,7 +7943,6 @@
 				DF7E8C080ED5FCAF001CB19F /* VectorRenderer.h */,
 				DF7E8C090ED5FCAF001CB19F /* VectorRendererSpec.cpp */,
 				DF7E8C0A0ED5FCAF001CB19F /* VectorRendererSpec.h */,
-				DF2FFB940F485D950006E566 /* video */,
 			);
 			name = graphics;
 			path = ../../graphics;
@@ -7413,6 +7951,8 @@
 		DFE4775C0D81F4E900B6D1FB /* fonts */ = {
 			isa = PBXGroup;
 			children = (
+				DF46B79D1381E5B500D08723 /* winfont.cpp */,
+				DF46B79E1381E5B500D08723 /* winfont.h */,
 				DFE4775D0D81F4E900B6D1FB /* consolefont.cpp */,
 				DFE4775E0D81F4E900B6D1FB /* newfont.cpp */,
 				DFE4775F0D81F4E900B6D1FB /* newfont_big.cpp */,
@@ -7424,6 +7964,8 @@
 		DFE477880D81F4E900B6D1FB /* gui */ = {
 			isa = PBXGroup;
 			children = (
+				DF2040211380C8A60056300A /* widgets */,
+				DF203F461380C06E0056300A /* gui-manager.cpp */,
 				DFE477890D81F4E900B6D1FB /* about.cpp */,
 				DFE4778A0D81F4E900B6D1FB /* about.h */,
 				DFE4778B0D81F4E900B6D1FB /* Actions.cpp */,
@@ -7440,20 +7982,13 @@
 				DFE477950D81F4E900B6D1FB /* debugger.h */,
 				DFE477960D81F4E900B6D1FB /* dialog.cpp */,
 				DFE477970D81F4E900B6D1FB /* dialog.h */,
-				DFE477980D81F4E900B6D1FB /* editable.cpp */,
-				DFE477990D81F4E900B6D1FB /* editable.h */,
-				DFE4779A0D81F4E900B6D1FB /* EditTextWidget.cpp */,
-				DFE4779B0D81F4E900B6D1FB /* EditTextWidget.h */,
 				DF9B9246118E46730069C19D /* error.cpp */,
 				DF9B9247118E46730069C19D /* error.h */,
-				DF2FFBD50F485E360006E566 /* gui-manager.hcpp */,
 				DF2FFBD60F485E360006E566 /* gui-manager.h */,
 				DFE4779E0D81F4E900B6D1FB /* Key.cpp */,
 				DFE4779F0D81F4E900B6D1FB /* Key.h */,
 				DFE477A20D81F4E900B6D1FB /* launcher.cpp */,
 				DFE477A30D81F4E900B6D1FB /* launcher.h */,
-				DFE477A40D81F4E900B6D1FB /* ListWidget.cpp */,
-				DFE477A50D81F4E900B6D1FB /* ListWidget.h */,
 				DFE477A60D81F4E900B6D1FB /* massadd.cpp */,
 				DFE477A70D81F4E900B6D1FB /* massadd.h */,
 				DFE477A80D81F4E900B6D1FB /* message.cpp */,
@@ -7462,14 +7997,8 @@
 				DFE477AE0D81F4E900B6D1FB /* object.h */,
 				DFE477AF0D81F4E900B6D1FB /* options.cpp */,
 				DFE477B00D81F4E900B6D1FB /* options.h */,
-				DFE477B10D81F4E900B6D1FB /* PopUpWidget.cpp */,
-				DFE477B20D81F4E900B6D1FB /* PopUpWidget.h */,
 				DF7E8BF00ED5FC77001CB19F /* saveload.cpp */,
 				DF7E8BF10ED5FC77001CB19F /* saveload.h */,
-				DFE477B30D81F4E900B6D1FB /* ScrollBarWidget.cpp */,
-				DFE477B40D81F4E900B6D1FB /* ScrollBarWidget.h */,
-				DFE477B50D81F4E900B6D1FB /* TabWidget.cpp */,
-				DFE477B60D81F4E900B6D1FB /* TabWidget.h */,
 				DFE477BA0D81F4E900B6D1FB /* themebrowser.cpp */,
 				DFE477BB0D81F4E900B6D1FB /* themebrowser.h */,
 				DF7E8BF40ED5FC77001CB19F /* ThemeEngine.cpp */,
@@ -7499,98 +8028,6 @@
 			path = themes;
 			sourceTree = "<group>";
 		};
-		DFE477C60D81F4E900B6D1FB /* sound */ = {
-			isa = PBXGroup;
-			children = (
-				DFE477CB0D81F4E900B6D1FB /* audiocd.cpp */,
-				DFE477CC0D81F4E900B6D1FB /* audiocd.h */,
-				DFE477CD0D81F4E900B6D1FB /* audiostream.cpp */,
-				DFE477CE0D81F4E900B6D1FB /* audiostream.h */,
-				DF45B0EB116627D9009B85CC /* decoders */,
-				DFE477D10D81F4E900B6D1FB /* fmopl.cpp */,
-				DFE477D20D81F4E900B6D1FB /* fmopl.h */,
-				DFE477D50D81F4E900B6D1FB /* mididrv.cpp */,
-				DFE477D60D81F4E900B6D1FB /* mididrv.h */,
-				DFE477D70D81F4E900B6D1FB /* midiparser.cpp */,
-				DFE477D80D81F4E900B6D1FB /* midiparser.h */,
-				DFE477D90D81F4E900B6D1FB /* midiparser_smf.cpp */,
-				DFE477DA0D81F4E900B6D1FB /* midiparser_xmidi.cpp */,
-				DFE477DB0D81F4E900B6D1FB /* mixer.cpp */,
-				DFE477DC0D81F4E900B6D1FB /* mixer.h */,
-				DFE477DD0D81F4E900B6D1FB /* mods */,
-				DFE477ED0D81F4E900B6D1FB /* mpu401.cpp */,
-				DFE477EE0D81F4E900B6D1FB /* mpu401.h */,
-				DF842A6F0E7BBDB200F5680E /* musicplugin.cpp */,
-				DF842A700E7BBDB200F5680E /* musicplugin.h */,
-				DFE477EF0D81F4E900B6D1FB /* null.cpp */,
-				DFE477F00D81F4E900B6D1FB /* rate.cpp */,
-				DFE477F10D81F4E900B6D1FB /* rate.h */,
-				DFE477F60D81F4E900B6D1FB /* softsynth */,
-				DF89C2B80F62D91000D756B6 /* timestamp.cpp */,
-				DF89C2B90F62D91000D756B6 /* timestamp.h */,
-			);
-			name = sound;
-			path = ../../sound;
-			sourceTree = SOURCE_ROOT;
-		};
-		DFE477DD0D81F4E900B6D1FB /* mods */ = {
-			isa = PBXGroup;
-			children = (
-				DFE477DE0D81F4E900B6D1FB /* infogrames.cpp */,
-				DFE477DF0D81F4E900B6D1FB /* infogrames.h */,
-				DF6BF50210529F540069811F /* maxtrax.cpp */,
-				DF6BF50310529F540069811F /* maxtrax.h */,
-				DFE477E00D81F4E900B6D1FB /* module.cpp */,
-				DFE477E10D81F4E900B6D1FB /* module.h */,
-				DFE477E20D81F4E900B6D1FB /* paula.cpp */,
-				DFE477E30D81F4E900B6D1FB /* paula.h */,
-				DFE477E40D81F4E900B6D1FB /* protracker.cpp */,
-				DFE477E50D81F4E900B6D1FB /* protracker.h */,
-				DFE477E60D81F4E900B6D1FB /* rjp1.cpp */,
-				DFE477E70D81F4E900B6D1FB /* rjp1.h */,
-				DFE477E80D81F4E900B6D1FB /* soundfx.cpp */,
-				DFE477E90D81F4E900B6D1FB /* soundfx.h */,
-				DF6BF50410529F540069811F /* tfmx.cpp */,
-				DF6BF50510529F540069811F /* tfmx.h */,
-			);
-			path = mods;
-			sourceTree = "<group>";
-		};
-		DFE477F60D81F4E900B6D1FB /* softsynth */ = {
-			isa = PBXGroup;
-			children = (
-				DFE477F70D81F4E900B6D1FB /* adlib.cpp */,
-				DF895C08124C24B50077F6E8 /* appleiigs.cpp */,
-				DF0E303F1252C6090082D593 /* cms.cpp */,
-				DF0E30401252C6090082D593 /* cms.h */,
-				DFE477F80D81F4E900B6D1FB /* emumidi.h */,
-				DFE477F90D81F4E900B6D1FB /* fluidsynth.cpp */,
-				DF895C0C124C24C00077F6E8 /* fmtowns_pc98 */,
-				DFF958A80FB222F300A3EC78 /* opl */,
-				DFE478210D81F4E900B6D1FB /* pcspk.cpp */,
-				DFE478220D81F4E900B6D1FB /* pcspk.h */,
-				DF2EC51010E64E3100765801 /* sid.cpp */,
-				DF2EC51110E64E3100765801 /* sid.h */,
-				DF2EC51710E64EE600765801 /* wave6581.cpp */,
-				DFE478230D81F4E900B6D1FB /* ym2612.cpp */,
-				DFE478240D81F4E900B6D1FB /* ym2612.h */,
-			);
-			path = softsynth;
-			sourceTree = "<group>";
-		};
-		DFF958A80FB222F300A3EC78 /* opl */ = {
-			isa = PBXGroup;
-			children = (
-				DFEC5D3D1166C6B400C90552 /* dbopl.cpp */,
-				DFEC5D3E1166C6B400C90552 /* dbopl.h */,
-				DFF958A90FB222F300A3EC78 /* dosbox.cpp */,
-				DFF958AA0FB222F300A3EC78 /* dosbox.h */,
-				DF6118CF0FE3AB560042AD3F /* mame.cpp */,
-				DF6118D00FE3AB560042AD3F /* mame.h */,
-			);
-			path = opl;
-			sourceTree = "<group>";
-		};
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
@@ -7788,41 +8225,14 @@
 				DFE47C200D81F4E900B6D1FB /* console.cpp in Sources */,
 				DFE47C210D81F4E900B6D1FB /* debugger.cpp in Sources */,
 				DFE47C220D81F4E900B6D1FB /* dialog.cpp in Sources */,
-				DFE47C230D81F4E900B6D1FB /* editable.cpp in Sources */,
-				DFE47C240D81F4E900B6D1FB /* EditTextWidget.cpp in Sources */,
 				DFE47C260D81F4E900B6D1FB /* Key.cpp in Sources */,
 				DFE47C280D81F4E900B6D1FB /* launcher.cpp in Sources */,
-				DFE47C290D81F4E900B6D1FB /* ListWidget.cpp in Sources */,
 				DFE47C2A0D81F4E900B6D1FB /* massadd.cpp in Sources */,
 				DFE47C2B0D81F4E900B6D1FB /* message.cpp in Sources */,
 				DFE47C2E0D81F4E900B6D1FB /* object.cpp in Sources */,
 				DFE47C2F0D81F4E900B6D1FB /* options.cpp in Sources */,
-				DFE47C300D81F4E900B6D1FB /* PopUpWidget.cpp in Sources */,
-				DFE47C310D81F4E900B6D1FB /* ScrollBarWidget.cpp in Sources */,
-				DFE47C320D81F4E900B6D1FB /* TabWidget.cpp in Sources */,
 				DFE47C350D81F4E900B6D1FB /* themebrowser.cpp in Sources */,
 				DFE47C3B0D81F4E900B6D1FB /* widget.cpp in Sources */,
-				DFE47C3E0D81F4E900B6D1FB /* audiocd.cpp in Sources */,
-				DFE47C3F0D81F4E900B6D1FB /* audiostream.cpp in Sources */,
-				DFE47C410D81F4E900B6D1FB /* fmopl.cpp in Sources */,
-				DFE47C430D81F4E900B6D1FB /* mididrv.cpp in Sources */,
-				DFE47C440D81F4E900B6D1FB /* midiparser.cpp in Sources */,
-				DFE47C450D81F4E900B6D1FB /* midiparser_smf.cpp in Sources */,
-				DFE47C460D81F4E900B6D1FB /* midiparser_xmidi.cpp in Sources */,
-				DFE47C470D81F4E900B6D1FB /* mixer.cpp in Sources */,
-				DFE47C480D81F4E900B6D1FB /* infogrames.cpp in Sources */,
-				DFE47C490D81F4E900B6D1FB /* module.cpp in Sources */,
-				DFE47C4A0D81F4E900B6D1FB /* paula.cpp in Sources */,
-				DFE47C4B0D81F4E900B6D1FB /* protracker.cpp in Sources */,
-				DFE47C4C0D81F4E900B6D1FB /* rjp1.cpp in Sources */,
-				DFE47C4D0D81F4E900B6D1FB /* soundfx.cpp in Sources */,
-				DFE47C500D81F4E900B6D1FB /* mpu401.cpp in Sources */,
-				DFE47C510D81F4E900B6D1FB /* null.cpp in Sources */,
-				DFE47C520D81F4E900B6D1FB /* rate.cpp in Sources */,
-				DFE47C570D81F4E900B6D1FB /* adlib.cpp in Sources */,
-				DFE47C580D81F4E900B6D1FB /* fluidsynth.cpp in Sources */,
-				DFE47C740D81F4E900B6D1FB /* pcspk.cpp in Sources */,
-				DFE47C750D81F4E900B6D1FB /* ym2612.cpp in Sources */,
 				DFD511480DF3383500854012 /* memorypool.cpp in Sources */,
 				DFD517E20DF33CAC00854012 /* seq.cpp in Sources */,
 				DFD5183D0DF3411800854012 /* scaler.cpp in Sources */,
@@ -8453,7 +8863,6 @@
 				DF842A470E7BBBB400F5680E /* archive.cpp in Sources */,
 				DF842A490E7BBBB400F5680E /* unarj.cpp in Sources */,
 				DF842A6D0E7BBD5700F5680E /* stdiostream.cpp in Sources */,
-				DF842A710E7BBDB200F5680E /* musicplugin.cpp in Sources */,
 				DF7E8BFD0ED5FC77001CB19F /* saveload.cpp in Sources */,
 				DF7E8BFF0ED5FC77001CB19F /* ThemeEngine.cpp in Sources */,
 				DF7E8C000ED5FC77001CB19F /* ThemeEval.cpp in Sources */,
@@ -8470,7 +8879,6 @@
 				DFAAB0020F011392003E9390 /* thumbnail_intern.cpp in Sources */,
 				DF2FFB930F485D890006E566 /* dither.cpp in Sources */,
 				DF2FFBD30F485DFB0006E566 /* debug.cpp in Sources */,
-				DF2FFBD90F485E360006E566 /* gui-manager.hcpp in Sources */,
 				DF2FFBFC0F4860A60006E566 /* posix-saves.cpp in Sources */,
 				DF2FFC290F4862520006E566 /* bmv.cpp in Sources */,
 				DF2FFC2A0F4862520006E566 /* dialogs.cpp in Sources */,
@@ -8542,7 +8950,6 @@
 				DF573CBE0F5A85E100961A72 /* timer_lol.cpp in Sources */,
 				DF89C2880F62D55C00D756B6 /* sprites_lol.cpp in Sources */,
 				DF89C2A40F62D79E00D756B6 /* script.cpp in Sources */,
-				DF89C2BB0F62D91000D756B6 /* timestamp.cpp in Sources */,
 				DF093E5F0F63CAD4002D821E /* pn.cpp in Sources */,
 				DF093E600F63CAD4002D821E /* script_pn.cpp in Sources */,
 				DF093E610F63CAD4002D821E /* vga_pn.cpp in Sources */,
@@ -8557,20 +8964,15 @@
 				DF09CC1B0FAC4E1900A5AFD7 /* inter_fascin.cpp in Sources */,
 				DF09CC2A0FAC4EAB00A5AFD7 /* script_v3.cpp in Sources */,
 				DF09CC2B0FAC4EAB00A5AFD7 /* script_v4.cpp in Sources */,
-				DFF958B20FB222F300A3EC78 /* dosbox.cpp in Sources */,
 				DF61183E0FE3A8080042AD3F /* kmisc.cpp in Sources */,
 				DF61183F0FE3A8080042AD3F /* segment.cpp in Sources */,
 				DF61184C0FE3A8250042AD3F /* decompressor.cpp in Sources */,
 				DF61184D0FE3A8250042AD3F /* resource.cpp in Sources */,
 				DF6118560FE3A8990042AD3F /* disk.cpp in Sources */,
-				DF61186D0FE3A9410042AD3F /* dxa_decoder.cpp in Sources */,
-				DF61186E0FE3A9410042AD3F /* flic_decoder.cpp in Sources */,
-				DF61186F0FE3A9410042AD3F /* smk_decoder.cpp in Sources */,
 				DF6118950FE3A9AA0042AD3F /* saveconverter.cpp in Sources */,
 				DF6118960FE3A9AA0042AD3F /* saveconverter_v2.cpp in Sources */,
 				DF6118970FE3A9AA0042AD3F /* saveconverter_v3.cpp in Sources */,
 				DF6118980FE3A9AA0042AD3F /* saveconverter_v4.cpp in Sources */,
-				DF6118990FE3A9AA0042AD3F /* saveconverter_v6.cpp in Sources */,
 				DF61189A0FE3A9AA0042AD3F /* savefile.cpp in Sources */,
 				DF61189B0FE3A9AA0042AD3F /* savehandler.cpp in Sources */,
 				DF61189C0FE3A9AA0042AD3F /* saveload.cpp in Sources */,
@@ -8584,7 +8986,6 @@
 				DF6118BE0FE3AA280042AD3F /* sound_pcspk.cpp in Sources */,
 				DF6118BF0FE3AA280042AD3F /* text_lol.cpp in Sources */,
 				DF6118C80FE3AABD0042AD3F /* player_v2cms.cpp in Sources */,
-				DF6118D30FE3AB560042AD3F /* mame.cpp in Sources */,
 				DF7585DA100CB66E00CC3324 /* expression.cpp in Sources */,
 				DF7585DB100CB66E00CC3324 /* hotspots.cpp in Sources */,
 				DF7585DC100CB66E00CC3324 /* init_v6.cpp in Sources */,
@@ -8609,31 +9010,15 @@
 				DF6BF4F410529EE40069811F /* player_v4a.cpp in Sources */,
 				DF6BF4FE10529F140069811F /* EventDispatcher.cpp in Sources */,
 				DF6BF4FF10529F140069811F /* EventRecorder.cpp in Sources */,
-				DF6BF50810529F540069811F /* maxtrax.cpp in Sources */,
-				DF6BF50910529F540069811F /* tfmx.cpp in Sources */,
 				DF90E9C310AEDA9B00C8F93F /* selector.cpp in Sources */,
 				DF90EAA610B0234300C8F93F /* draw_playtoons.cpp in Sources */,
 				DF90EAAF10B0236F00C8F93F /* staticres.cpp in Sources */,
-				DF90EABA10B023D100C8F93F /* avi_decoder.cpp in Sources */,
-				DF90EAC510B023F400C8F93F /* msvideo1.cpp in Sources */,
 				DF2EC3F910E64C0C00765801 /* dialogs.cpp in Sources */,
 				DF2EC3FF10E64C4300765801 /* animator_tim.cpp in Sources */,
 				DF2EC40610E64C8000765801 /* event.cpp in Sources */,
 				DF2EC50310E64D7C00765801 /* player_pce.cpp in Sources */,
 				DF2EC50410E64D7C00765801 /* player_sid.cpp in Sources */,
 				DF2EC50C10E64DB300765801 /* textconsole.cpp in Sources */,
-				DF2EC51310E64E3100765801 /* sid.cpp in Sources */,
-				DF2EC51910E64EE600765801 /* wave6581.cpp in Sources */,
-				DF45B11F116627DA009B85CC /* adpcm.cpp in Sources */,
-				DF45B121116627DA009B85CC /* aiff.cpp in Sources */,
-				DF45B123116627DA009B85CC /* flac.cpp in Sources */,
-				DF45B125116627DA009B85CC /* iff_sound.cpp in Sources */,
-				DF45B127116627DA009B85CC /* mp3.cpp in Sources */,
-				DF45B129116627DA009B85CC /* raw.cpp in Sources */,
-				DF45B12B116627DA009B85CC /* vag.cpp in Sources */,
-				DF45B12D116627DA009B85CC /* voc.cpp in Sources */,
-				DF45B12F116627DA009B85CC /* vorbis.cpp in Sources */,
-				DF45B131116627DA009B85CC /* wave.cpp in Sources */,
 				DF45B1CA116628A5009B85CC /* animate.cpp in Sources */,
 				DF45B1CB116628A5009B85CC /* cache.cpp in Sources */,
 				DF45B1CC116628A5009B85CC /* compare.cpp in Sources */,
@@ -8667,25 +9052,19 @@
 				DFCDC6D9116629CE00A7D2A0 /* features.cpp in Sources */,
 				DFCDC6DA116629CE00A7D2A0 /* kparse.cpp in Sources */,
 				DFCDC6F711662AAB00A7D2A0 /* resource.cpp in Sources */,
-				DFCDC6FE11662AD700A7D2A0 /* msrle.cpp in Sources */,
 				DFCDC70411662B0200A7D2A0 /* saveload_fascin.cpp in Sources */,
 				DFCDC70B11662B6B00A7D2A0 /* macresman.cpp in Sources */,
 				DFEC5D121166C5CF00C90552 /* random.cpp in Sources */,
 				DFEC5D131166C5CF00C90552 /* tokenizer.cpp in Sources */,
 				DFEC5D371166C67300C90552 /* savestate.cpp in Sources */,
-				DFEC5D401166C6B400C90552 /* dbopl.cpp in Sources */,
 				DF9B9249118E46730069C19D /* error.cpp in Sources */,
 				DF9B9254118E46A00069C19D /* fontsjis.cpp in Sources */,
 				DF9B9263118E46FE0069C19D /* error.cpp in Sources */,
-				DFB0576B11B753AF0015AE65 /* mpeg_player.cpp in Sources */,
-				DFB0576C11B753AF0015AE65 /* qt_decoder.cpp in Sources */,
-				DFB0576D11B753AF0015AE65 /* video_decoder.cpp in Sources */,
 				DFB0577711B753DA0015AE65 /* rational.cpp in Sources */,
 				DFB0578211B7541F0015AE65 /* resource_audio.cpp in Sources */,
 				DFB0578311B7541F0015AE65 /* util.cpp in Sources */,
 				DFB0578B11B754570015AE65 /* maciconbar.cpp in Sources */,
 				DFB0579211B7547D0015AE65 /* pict.cpp in Sources */,
-				DFB0579911B7549C0015AE65 /* cinepak.cpp in Sources */,
 				DF7F286211FF23D500159131 /* amigamac.cpp in Sources */,
 				DF7F286911FF23EF00159131 /* kvideo.cpp in Sources */,
 				DF7F286A11FF23EF00159131 /* workarounds.cpp in Sources */,
@@ -8696,25 +9075,11 @@
 				DF7F288311FF243B00159131 /* sound_sarien.cpp in Sources */,
 				DF7F288C11FF244F00159131 /* Tooltip.cpp in Sources */,
 				DF7F289511FF247300159131 /* translation.cpp in Sources */,
-				DF7F28A111FF24B000159131 /* mac_snd.cpp in Sources */,
 				DF7F28A611FF24C400159131 /* console.cpp in Sources */,
-				DF895BFE124C24350077F6E8 /* coktel_decoder.cpp in Sources */,
 				DF895C03124C24680077F6E8 /* player_towns.cpp in Sources */,
-				DF895C09124C24B60077F6E8 /* appleiigs.cpp in Sources */,
-				DF895C15124C24C10077F6E8 /* towns_audio.cpp in Sources */,
-				DF895C16124C24C10077F6E8 /* towns_euphony.cpp in Sources */,
-				DF895C17124C24C10077F6E8 /* towns_pc98_driver.cpp in Sources */,
-				DF895C18124C24C10077F6E8 /* towns_pc98_fmsynth.cpp in Sources */,
 				DF895C25124C25150077F6E8 /* init_fascin.cpp in Sources */,
 				DF895C2A124C25350077F6E8 /* script_patches.cpp in Sources */,
-				DF895CB8124E58980077F6E8 /* indeo3.cpp in Sources */,
-				DF895CB9124E58980077F6E8 /* mjpeg.cpp in Sources */,
-				DF895CBA124E58980077F6E8 /* qdm2.cpp in Sources */,
-				DF895CBB124E58980077F6E8 /* qtrle.cpp in Sources */,
-				DF895CBC124E58980077F6E8 /* rpza.cpp in Sources */,
-				DF895CBD124E58990077F6E8 /* smc.cpp in Sources */,
 				DF0E303B1252C5BD0082D593 /* cms.cpp in Sources */,
-				DF0E30421252C6090082D593 /* cms.cpp in Sources */,
 				8CB5A9CB1253FD6900CB6BC7 /* m4_scene.cpp in Sources */,
 				8CB5A9CC1253FD6900CB6BC7 /* mads_logic.cpp in Sources */,
 				8CB5A9CD1253FD6900CB6BC7 /* mads_player.cpp in Sources */,
@@ -8722,7 +9087,6 @@
 				8CB5A9CF1253FD6900CB6BC7 /* mads_views.cpp in Sources */,
 				8CD1ED53126202AB00FA198C /* detection.cpp in Sources */,
 				8CD1ED54126202AB00FA198C /* display.cpp in Sources */,
-				8CD1ED55126202AB00FA198C /* engine.cpp in Sources */,
 				8CD1ED56126202AB00FA198C /* file.cpp in Sources */,
 				8CD1ED57126202AB00FA198C /* hugo.cpp in Sources */,
 				8CD1ED58126202AB00FA198C /* intro.cpp in Sources */,
@@ -8771,6 +9135,132 @@
 				8CD80D13126272A0001C6C87 /* surface.cpp in Sources */,
 				8CD80D14126272A0001C6C87 /* surface_list.cpp in Sources */,
 				8CD80D15126272A0001C6C87 /* teenagent.cpp in Sources */,
+				DF203F481380C06E0056300A /* gui-manager.cpp in Sources */,
+				DF203F6B1380C2750056300A /* avi_decoder.cpp in Sources */,
+				DF203F6C1380C2750056300A /* coktel_decoder.cpp in Sources */,
+				DF203F6D1380C2750056300A /* dxa_decoder.cpp in Sources */,
+				DF203F6E1380C2750056300A /* flic_decoder.cpp in Sources */,
+				DF203F701380C2750056300A /* qt_decoder.cpp in Sources */,
+				DF203F711380C2750056300A /* smk_decoder.cpp in Sources */,
+				DF203F721380C2750056300A /* video_decoder.cpp in Sources */,
+				DF203FA01380C2920056300A /* cdtoons.cpp in Sources */,
+				DF203FA11380C2920056300A /* cinepak.cpp in Sources */,
+				DF203FA21380C2920056300A /* indeo3.cpp in Sources */,
+				DF203FA31380C2920056300A /* mjpeg.cpp in Sources */,
+				DF203FA41380C2920056300A /* msrle.cpp in Sources */,
+				DF203FA51380C2920056300A /* msvideo1.cpp in Sources */,
+				DF203FA61380C2920056300A /* qdm2.cpp in Sources */,
+				DF203FA71380C2920056300A /* qtrle.cpp in Sources */,
+				DF203FA81380C2920056300A /* rpza.cpp in Sources */,
+				DF203FA91380C2920056300A /* smc.cpp in Sources */,
+				DF203FAA1380C2920056300A /* truemotion1.cpp in Sources */,
+				DF203FE61380C3BC0056300A /* console.cpp in Sources */,
+				DF203FE71380C3BC0056300A /* dialogs.cpp in Sources */,
+				DF203FE81380C3BC0056300A /* file_v1d.cpp in Sources */,
+				DF203FE91380C3BC0056300A /* file_v1w.cpp in Sources */,
+				DF203FEA1380C3BC0056300A /* file_v2d.cpp in Sources */,
+				DF203FEB1380C3BC0056300A /* file_v2w.cpp in Sources */,
+				DF203FEC1380C3BC0056300A /* file_v3d.cpp in Sources */,
+				DF203FED1380C3BC0056300A /* object_v1d.cpp in Sources */,
+				DF203FEE1380C3BC0056300A /* object_v1w.cpp in Sources */,
+				DF203FEF1380C3BC0056300A /* object_v2d.cpp in Sources */,
+				DF203FF01380C3BC0056300A /* object_v3d.cpp in Sources */,
+				DF203FF11380C3BC0056300A /* object.cpp in Sources */,
+				DF203FF21380C3BC0056300A /* parser_v1d.cpp in Sources */,
+				DF203FF31380C3BC0056300A /* parser_v1w.cpp in Sources */,
+				DF203FF41380C3BC0056300A /* parser_v2d.cpp in Sources */,
+				DF203FF51380C3BC0056300A /* parser_v3d.cpp in Sources */,
+				DF203FF61380C3BC0056300A /* text.cpp in Sources */,
+				DF2040341380C8B70056300A /* editable.cpp in Sources */,
+				DF2040351380C8B70056300A /* edittext.cpp in Sources */,
+				DF2040361380C8B70056300A /* list.cpp in Sources */,
+				DF2040371380C8B70056300A /* popup.cpp in Sources */,
+				DF2040381380C8B70056300A /* scrollbar.cpp in Sources */,
+				DF2040391380C8B70056300A /* tab.cpp in Sources */,
+				DF20406A1380CA230056300A /* audiostream.cpp in Sources */,
+				DF20406B1380CA230056300A /* fmopl.cpp in Sources */,
+				DF20406C1380CA230056300A /* mididrv.cpp in Sources */,
+				DF20406D1380CA230056300A /* midiparser_smf.cpp in Sources */,
+				DF20406E1380CA230056300A /* midiparser_xmidi.cpp in Sources */,
+				DF20406F1380CA230056300A /* midiparser.cpp in Sources */,
+				DF2040701380CA230056300A /* midiplayer.cpp in Sources */,
+				DF2040711380CA230056300A /* mixer.cpp in Sources */,
+				DF2040721380CA230056300A /* mpu401.cpp in Sources */,
+				DF2040731380CA230056300A /* musicplugin.cpp in Sources */,
+				DF2040741380CA230056300A /* rate.cpp in Sources */,
+				DF2040751380CA230056300A /* timestamp.cpp in Sources */,
+				DF2040A51380CA400056300A /* adpcm.cpp in Sources */,
+				DF2040A61380CA400056300A /* aiff.cpp in Sources */,
+				DF2040A71380CA400056300A /* flac.cpp in Sources */,
+				DF2040A81380CA400056300A /* iff_sound.cpp in Sources */,
+				DF2040A91380CA400056300A /* mac_snd.cpp in Sources */,
+				DF2040AA1380CA400056300A /* mp3.cpp in Sources */,
+				DF2040AB1380CA400056300A /* raw.cpp in Sources */,
+				DF2040AC1380CA400056300A /* vag.cpp in Sources */,
+				DF2040AD1380CA400056300A /* voc.cpp in Sources */,
+				DF2040AE1380CA400056300A /* vorbis.cpp in Sources */,
+				DF2040AF1380CA400056300A /* wave.cpp in Sources */,
+				DF2040D41380CA810056300A /* infogrames.cpp in Sources */,
+				DF2040D51380CA810056300A /* maxtrax.cpp in Sources */,
+				DF2040D61380CA810056300A /* module.cpp in Sources */,
+				DF2040D71380CA810056300A /* paula.cpp in Sources */,
+				DF2040D81380CA810056300A /* protracker.cpp in Sources */,
+				DF2040D91380CA810056300A /* rjp1.cpp in Sources */,
+				DF2040DA1380CA810056300A /* soundfx.cpp in Sources */,
+				DF2040DB1380CA810056300A /* tfmx.cpp in Sources */,
+				DF2040FE1380CAA40056300A /* adlib.cpp in Sources */,
+				DF2040FF1380CAA40056300A /* appleiigs.cpp in Sources */,
+				DF2041001380CAA40056300A /* cms.cpp in Sources */,
+				DF2041011380CAA40056300A /* eas.cpp in Sources */,
+				DF2041021380CAA40056300A /* fluidsynth.cpp in Sources */,
+				DF2041031380CAA40056300A /* mt32.cpp in Sources */,
+				DF2041041380CAA40056300A /* pcspk.cpp in Sources */,
+				DF2041051380CAA40056300A /* sid.cpp in Sources */,
+				DF2041061380CAA40056300A /* wave6581.cpp in Sources */,
+				DF2041071380CAA40056300A /* ym2612.cpp in Sources */,
+				DF46B6F41381E18900D08723 /* coroutine.cpp in Sources */,
+				DF46B7031381E1FF00D08723 /* towns_audio.cpp in Sources */,
+				DF46B7041381E1FF00D08723 /* towns_euphony.cpp in Sources */,
+				DF46B7051381E1FF00D08723 /* towns_pc98_driver.cpp in Sources */,
+				DF46B7061381E1FF00D08723 /* towns_pc98_fmsynth.cpp in Sources */,
+				DF46B71F1381E27000D08723 /* console.cpp in Sources */,
+				DF46B7201381E27000D08723 /* databases.cpp in Sources */,
+				DF46B7211381E27000D08723 /* dbase.cpp in Sources */,
+				DF46B7221381E27000D08723 /* iniconfig.cpp in Sources */,
+				DF46B7231381E27000D08723 /* init_v7.cpp in Sources */,
+				DF46B7241381E27000D08723 /* inter_inca2.cpp in Sources */,
+				DF46B7451381E40500D08723 /* log.cpp in Sources */,
+				DF46B74A1381E40F00D08723 /* modular-backend.cpp in Sources */,
+				DF46B7551381E46700D08723 /* player_v2base.cpp in Sources */,
+				DF46B75F1381E4A400D08723 /* console.cpp in Sources */,
+				DF46B7641381E4D400D08723 /* robot_decoder.cpp in Sources */,
+				DF46B7681381E4E400D08723 /* vm_types.cpp in Sources */,
+				DF46B7801381E54200D08723 /* dcl.cpp in Sources */,
+				DF46B7811381E54200D08723 /* iff_container.cpp in Sources */,
+				DF46B7821381E54200D08723 /* winexe_ne.cpp in Sources */,
+				DF46B7831381E54200D08723 /* winexe_pe.cpp in Sources */,
+				DF46B7841381E54200D08723 /* winexe.cpp in Sources */,
+				DF46B7951381E58000D08723 /* png.cpp in Sources */,
+				DF46B7961381E58000D08723 /* wincursor.cpp in Sources */,
+				DF46B7A01381E5B500D08723 /* winfont.cpp in Sources */,
+				DF46B7AA1381E5F100D08723 /* header.cpp in Sources */,
+				DF46B7B51381E67800D08723 /* sdl-mutex.cpp in Sources */,
+				DF46B7BE1381E6C000D08723 /* object.cpp in Sources */,
+				DF46B7C91381E72500D08723 /* console.cpp in Sources */,
+				DF46B7D71381E7C600D08723 /* console.cpp in Sources */,
+				DF46B83D1381F13500D08723 /* saveload_v7.cpp in Sources */,
+				DF46B8451381F35500D08723 /* saveload_inca2.cpp in Sources */,
+				DF46B8491381F38700D08723 /* inter_v7.cpp in Sources */,
+				DF46B84E1381F39E00D08723 /* console.cpp in Sources */,
+				DF46B8531381F3B400D08723 /* console.cpp in Sources */,
+				DF46B8631381F44E00D08723 /* dbopl.cpp in Sources */,
+				DF46B8641381F44E00D08723 /* dosbox.cpp in Sources */,
+				DF46B8651381F44E00D08723 /* mame.cpp in Sources */,
+				DF46B8721381F4A200D08723 /* sdl-audiocd.cpp in Sources */,
+				DF46B87E1381F4F200D08723 /* default-audiocd.cpp in Sources */,
+				DF46B88A1381F5D800D08723 /* sdl-provider.cpp in Sources */,
+				DF46B8931381F62B00D08723 /* adpcm.cpp in Sources */,
+				DF46B89C1381F6C400D08723 /* null.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -8817,41 +9307,14 @@
 				DF093EA80F63CB26002D821E /* console.cpp in Sources */,
 				DF093EA90F63CB26002D821E /* debugger.cpp in Sources */,
 				DF093EAA0F63CB26002D821E /* dialog.cpp in Sources */,
-				DF093EAB0F63CB26002D821E /* editable.cpp in Sources */,
-				DF093EAC0F63CB26002D821E /* EditTextWidget.cpp in Sources */,
 				DF093EAD0F63CB26002D821E /* Key.cpp in Sources */,
 				DF093EAE0F63CB26002D821E /* launcher.cpp in Sources */,
-				DF093EAF0F63CB26002D821E /* ListWidget.cpp in Sources */,
 				DF093EB00F63CB26002D821E /* massadd.cpp in Sources */,
 				DF093EB10F63CB26002D821E /* message.cpp in Sources */,
 				DF093EB20F63CB26002D821E /* object.cpp in Sources */,
 				DF093EB30F63CB26002D821E /* options.cpp in Sources */,
-				DF093EB40F63CB26002D821E /* PopUpWidget.cpp in Sources */,
-				DF093EB50F63CB26002D821E /* ScrollBarWidget.cpp in Sources */,
-				DF093EB60F63CB26002D821E /* TabWidget.cpp in Sources */,
 				DF093EB70F63CB26002D821E /* themebrowser.cpp in Sources */,
 				DF093EB80F63CB26002D821E /* widget.cpp in Sources */,
-				DF093EBB0F63CB26002D821E /* audiocd.cpp in Sources */,
-				DF093EBC0F63CB26002D821E /* audiostream.cpp in Sources */,
-				DF093EBE0F63CB26002D821E /* fmopl.cpp in Sources */,
-				DF093EC00F63CB26002D821E /* mididrv.cpp in Sources */,
-				DF093EC10F63CB26002D821E /* midiparser.cpp in Sources */,
-				DF093EC20F63CB26002D821E /* midiparser_smf.cpp in Sources */,
-				DF093EC30F63CB26002D821E /* midiparser_xmidi.cpp in Sources */,
-				DF093EC40F63CB26002D821E /* mixer.cpp in Sources */,
-				DF093EC50F63CB26002D821E /* infogrames.cpp in Sources */,
-				DF093EC60F63CB26002D821E /* module.cpp in Sources */,
-				DF093EC70F63CB26002D821E /* paula.cpp in Sources */,
-				DF093EC80F63CB26002D821E /* protracker.cpp in Sources */,
-				DF093EC90F63CB26002D821E /* rjp1.cpp in Sources */,
-				DF093ECA0F63CB26002D821E /* soundfx.cpp in Sources */,
-				DF093ECC0F63CB26002D821E /* mpu401.cpp in Sources */,
-				DF093ECD0F63CB26002D821E /* null.cpp in Sources */,
-				DF093ECE0F63CB26002D821E /* rate.cpp in Sources */,
-				DF093ECF0F63CB26002D821E /* adlib.cpp in Sources */,
-				DF093ED00F63CB26002D821E /* fluidsynth.cpp in Sources */,
-				DF093ED10F63CB26002D821E /* pcspk.cpp in Sources */,
-				DF093ED20F63CB26002D821E /* ym2612.cpp in Sources */,
 				DF093ED60F63CB26002D821E /* memorypool.cpp in Sources */,
 				DF093ED70F63CB26002D821E /* seq.cpp in Sources */,
 				DF093ED80F63CB26002D821E /* scaler.cpp in Sources */,
@@ -9479,7 +9942,6 @@
 				DF09417A0F63CB26002D821E /* archive.cpp in Sources */,
 				DF09417B0F63CB26002D821E /* unarj.cpp in Sources */,
 				DF09417C0F63CB26002D821E /* stdiostream.cpp in Sources */,
-				DF09417D0F63CB26002D821E /* musicplugin.cpp in Sources */,
 				DF09417E0F63CB26002D821E /* saveload.cpp in Sources */,
 				DF09417F0F63CB26002D821E /* ThemeEngine.cpp in Sources */,
 				DF0941800F63CB26002D821E /* ThemeEval.cpp in Sources */,
@@ -9496,7 +9958,6 @@
 				DF09418B0F63CB26002D821E /* thumbnail_intern.cpp in Sources */,
 				DF09418C0F63CB26002D821E /* dither.cpp in Sources */,
 				DF0941920F63CB26002D821E /* debug.cpp in Sources */,
-				DF0941930F63CB26002D821E /* gui-manager.hcpp in Sources */,
 				DF0941940F63CB26002D821E /* posix-saves.cpp in Sources */,
 				DF0941950F63CB26002D821E /* bmv.cpp in Sources */,
 				DF0941960F63CB26002D821E /* dialogs.cpp in Sources */,
@@ -9568,12 +10029,9 @@
 				DF09420D0F63CB26002D821E /* timer_lol.cpp in Sources */,
 				DF0942100F63CB26002D821E /* sprites_lol.cpp in Sources */,
 				DF0942110F63CB26002D821E /* script.cpp in Sources */,
-				DF0942140F63CB26002D821E /* timestamp.cpp in Sources */,
 				DF0942150F63CB26002D821E /* pn.cpp in Sources */,
 				DF0942160F63CB26002D821E /* script_pn.cpp in Sources */,
 				DF0942170F63CB26002D821E /* vga_pn.cpp in Sources */,
-				DF0942430F63CB9A002D821E /* events.cpp in Sources */,
-				DF0942450F63CB9A002D821E /* graphics.cpp in Sources */,
 				DF0942470F63CB9A002D821E /* main.cpp in Sources */,
 				DF09424A0F63CB9A002D821E /* sdl.cpp in Sources */,
 				DF0944330F63FBB3002D821E /* coreaudio.cpp in Sources */,
@@ -9589,20 +10047,15 @@
 				DF09CC150FAC4E1900A5AFD7 /* inter_fascin.cpp in Sources */,
 				DF09CC280FAC4EAB00A5AFD7 /* script_v3.cpp in Sources */,
 				DF09CC290FAC4EAB00A5AFD7 /* script_v4.cpp in Sources */,
-				DFF958AF0FB222F300A3EC78 /* dosbox.cpp in Sources */,
 				DF61183C0FE3A8080042AD3F /* kmisc.cpp in Sources */,
 				DF61183D0FE3A8080042AD3F /* segment.cpp in Sources */,
 				DF6118490FE3A8250042AD3F /* decompressor.cpp in Sources */,
 				DF61184A0FE3A8250042AD3F /* resource.cpp in Sources */,
 				DF6118550FE3A8990042AD3F /* disk.cpp in Sources */,
-				DF6118680FE3A9410042AD3F /* dxa_decoder.cpp in Sources */,
-				DF6118690FE3A9410042AD3F /* flic_decoder.cpp in Sources */,
-				DF61186A0FE3A9410042AD3F /* smk_decoder.cpp in Sources */,
 				DF6118890FE3A9AA0042AD3F /* saveconverter.cpp in Sources */,
 				DF61188A0FE3A9AA0042AD3F /* saveconverter_v2.cpp in Sources */,
 				DF61188B0FE3A9AA0042AD3F /* saveconverter_v3.cpp in Sources */,
 				DF61188C0FE3A9AA0042AD3F /* saveconverter_v4.cpp in Sources */,
-				DF61188D0FE3A9AA0042AD3F /* saveconverter_v6.cpp in Sources */,
 				DF61188E0FE3A9AA0042AD3F /* savefile.cpp in Sources */,
 				DF61188F0FE3A9AA0042AD3F /* savehandler.cpp in Sources */,
 				DF6118900FE3A9AA0042AD3F /* saveload.cpp in Sources */,
@@ -9617,7 +10070,6 @@
 				DF6118BB0FE3AA280042AD3F /* text_lol.cpp in Sources */,
 				DF6118C70FE3AABD0042AD3F /* player_v2cms.cpp in Sources */,
 				DF6118CC0FE3AAFD0042AD3F /* hardwarekeys.cpp in Sources */,
-				DF6118D10FE3AB560042AD3F /* mame.cpp in Sources */,
 				DF7585CE100CB66E00CC3324 /* expression.cpp in Sources */,
 				DF7585CF100CB66E00CC3324 /* hotspots.cpp in Sources */,
 				DF7585D0100CB66E00CC3324 /* init_v6.cpp in Sources */,
@@ -9638,13 +10090,9 @@
 				DF6BF4F510529EE40069811F /* player_v4a.cpp in Sources */,
 				DF6BF50010529F140069811F /* EventDispatcher.cpp in Sources */,
 				DF6BF50110529F140069811F /* EventRecorder.cpp in Sources */,
-				DF6BF50A10529F540069811F /* maxtrax.cpp in Sources */,
-				DF6BF50B10529F540069811F /* tfmx.cpp in Sources */,
 				DF90E9BF10AEDA9B00C8F93F /* selector.cpp in Sources */,
 				DF90EAA410B0234300C8F93F /* draw_playtoons.cpp in Sources */,
 				DF90EAAD10B0236F00C8F93F /* staticres.cpp in Sources */,
-				DF90EAB810B023D100C8F93F /* avi_decoder.cpp in Sources */,
-				DF90EAC310B023F400C8F93F /* msvideo1.cpp in Sources */,
 				DF2EC3E510E6490800765801 /* browser_osx.mm in Sources */,
 				DF2EC3F810E64C0C00765801 /* dialogs.cpp in Sources */,
 				DF2EC3FE10E64C4300765801 /* animator_tim.cpp in Sources */,
@@ -9652,18 +10100,6 @@
 				DF2EC50110E64D7C00765801 /* player_pce.cpp in Sources */,
 				DF2EC50210E64D7C00765801 /* player_sid.cpp in Sources */,
 				DF2EC50B10E64DB300765801 /* textconsole.cpp in Sources */,
-				DF2EC51210E64E3100765801 /* sid.cpp in Sources */,
-				DF2EC51810E64EE600765801 /* wave6581.cpp in Sources */,
-				DF45B13D116627DA009B85CC /* adpcm.cpp in Sources */,
-				DF45B13F116627DA009B85CC /* aiff.cpp in Sources */,
-				DF45B141116627DA009B85CC /* flac.cpp in Sources */,
-				DF45B143116627DA009B85CC /* iff_sound.cpp in Sources */,
-				DF45B145116627DA009B85CC /* mp3.cpp in Sources */,
-				DF45B147116627DA009B85CC /* raw.cpp in Sources */,
-				DF45B149116627DA009B85CC /* vag.cpp in Sources */,
-				DF45B14B116627DA009B85CC /* voc.cpp in Sources */,
-				DF45B14D116627DA009B85CC /* vorbis.cpp in Sources */,
-				DF45B14F116627DA009B85CC /* wave.cpp in Sources */,
 				DF45B1F4116628A5009B85CC /* animate.cpp in Sources */,
 				DF45B1F5116628A5009B85CC /* cache.cpp in Sources */,
 				DF45B1F6116628A5009B85CC /* compare.cpp in Sources */,
@@ -9697,25 +10133,19 @@
 				DFCDC6DB116629CE00A7D2A0 /* features.cpp in Sources */,
 				DFCDC6DC116629CE00A7D2A0 /* kparse.cpp in Sources */,
 				DFCDC6F811662AAB00A7D2A0 /* resource.cpp in Sources */,
-				DFCDC6FF11662AD700A7D2A0 /* msrle.cpp in Sources */,
 				DFCDC70511662B0200A7D2A0 /* saveload_fascin.cpp in Sources */,
 				DFCDC70C11662B6B00A7D2A0 /* macresman.cpp in Sources */,
 				DFEC5D141166C5CF00C90552 /* random.cpp in Sources */,
 				DFEC5D151166C5CF00C90552 /* tokenizer.cpp in Sources */,
 				DFEC5D381166C67300C90552 /* savestate.cpp in Sources */,
-				DFEC5D411166C6B400C90552 /* dbopl.cpp in Sources */,
 				DF9B924A118E46730069C19D /* error.cpp in Sources */,
 				DF9B9256118E46A00069C19D /* fontsjis.cpp in Sources */,
 				DF9B9264118E46FE0069C19D /* error.cpp in Sources */,
-				DFB0576E11B753AF0015AE65 /* mpeg_player.cpp in Sources */,
-				DFB0576F11B753AF0015AE65 /* qt_decoder.cpp in Sources */,
-				DFB0577011B753AF0015AE65 /* video_decoder.cpp in Sources */,
 				DFB0577811B753DA0015AE65 /* rational.cpp in Sources */,
 				DFB0578411B7541F0015AE65 /* resource_audio.cpp in Sources */,
 				DFB0578511B7541F0015AE65 /* util.cpp in Sources */,
 				DFB0578C11B754570015AE65 /* maciconbar.cpp in Sources */,
 				DFB0579311B7547D0015AE65 /* pict.cpp in Sources */,
-				DFB0579A11B7549C0015AE65 /* cinepak.cpp in Sources */,
 				DF7F286311FF23D500159131 /* amigamac.cpp in Sources */,
 				DF7F286B11FF23EF00159131 /* kvideo.cpp in Sources */,
 				DF7F286C11FF23EF00159131 /* workarounds.cpp in Sources */,
@@ -9726,25 +10156,11 @@
 				DF7F288811FF243B00159131 /* sound_sarien.cpp in Sources */,
 				DF7F288D11FF244F00159131 /* Tooltip.cpp in Sources */,
 				DF7F289711FF247300159131 /* translation.cpp in Sources */,
-				DF7F28A211FF24B000159131 /* mac_snd.cpp in Sources */,
 				DF7F28A711FF24C400159131 /* console.cpp in Sources */,
-				DF895BFF124C24350077F6E8 /* coktel_decoder.cpp in Sources */,
 				DF895C04124C24680077F6E8 /* player_towns.cpp in Sources */,
-				DF895C0A124C24B60077F6E8 /* appleiigs.cpp in Sources */,
-				DF895C19124C24C10077F6E8 /* towns_audio.cpp in Sources */,
-				DF895C1A124C24C10077F6E8 /* towns_euphony.cpp in Sources */,
-				DF895C1B124C24C10077F6E8 /* towns_pc98_driver.cpp in Sources */,
-				DF895C1C124C24C10077F6E8 /* towns_pc98_fmsynth.cpp in Sources */,
 				DF895C26124C25150077F6E8 /* init_fascin.cpp in Sources */,
 				DF895C2B124C25350077F6E8 /* script_patches.cpp in Sources */,
-				DF895CBE124E58990077F6E8 /* indeo3.cpp in Sources */,
-				DF895CBF124E58990077F6E8 /* mjpeg.cpp in Sources */,
-				DF895CC0124E58990077F6E8 /* qdm2.cpp in Sources */,
-				DF895CC1124E58990077F6E8 /* qtrle.cpp in Sources */,
-				DF895CC2124E58990077F6E8 /* rpza.cpp in Sources */,
-				DF895CC3124E58990077F6E8 /* smc.cpp in Sources */,
 				DF0E303C1252C5BD0082D593 /* cms.cpp in Sources */,
-				DF0E30431252C6090082D593 /* cms.cpp in Sources */,
 				8CB5A9C61253FD6900CB6BC7 /* m4_scene.cpp in Sources */,
 				8CB5A9C71253FD6900CB6BC7 /* mads_logic.cpp in Sources */,
 				8CB5A9C81253FD6900CB6BC7 /* mads_player.cpp in Sources */,
@@ -9752,7 +10168,6 @@
 				8CB5A9CA1253FD6900CB6BC7 /* mads_views.cpp in Sources */,
 				8CD1ED2F126202AB00FA198C /* detection.cpp in Sources */,
 				8CD1ED30126202AB00FA198C /* display.cpp in Sources */,
-				8CD1ED31126202AB00FA198C /* engine.cpp in Sources */,
 				8CD1ED32126202AB00FA198C /* file.cpp in Sources */,
 				8CD1ED33126202AB00FA198C /* hugo.cpp in Sources */,
 				8CD1ED34126202AB00FA198C /* intro.cpp in Sources */,
@@ -9801,6 +10216,134 @@
 				8CD80D01126272A0001C6C87 /* surface.cpp in Sources */,
 				8CD80D02126272A0001C6C87 /* surface_list.cpp in Sources */,
 				8CD80D03126272A0001C6C87 /* teenagent.cpp in Sources */,
+				DF203F471380C06E0056300A /* gui-manager.cpp in Sources */,
+				DF203F631380C2750056300A /* avi_decoder.cpp in Sources */,
+				DF203F641380C2750056300A /* coktel_decoder.cpp in Sources */,
+				DF203F651380C2750056300A /* dxa_decoder.cpp in Sources */,
+				DF203F661380C2750056300A /* flic_decoder.cpp in Sources */,
+				DF203F681380C2750056300A /* qt_decoder.cpp in Sources */,
+				DF203F691380C2750056300A /* smk_decoder.cpp in Sources */,
+				DF203F6A1380C2750056300A /* video_decoder.cpp in Sources */,
+				DF203F951380C2920056300A /* cdtoons.cpp in Sources */,
+				DF203F961380C2920056300A /* cinepak.cpp in Sources */,
+				DF203F971380C2920056300A /* indeo3.cpp in Sources */,
+				DF203F981380C2920056300A /* mjpeg.cpp in Sources */,
+				DF203F991380C2920056300A /* msrle.cpp in Sources */,
+				DF203F9A1380C2920056300A /* msvideo1.cpp in Sources */,
+				DF203F9B1380C2920056300A /* qdm2.cpp in Sources */,
+				DF203F9C1380C2920056300A /* qtrle.cpp in Sources */,
+				DF203F9D1380C2920056300A /* rpza.cpp in Sources */,
+				DF203F9E1380C2920056300A /* smc.cpp in Sources */,
+				DF203F9F1380C2920056300A /* truemotion1.cpp in Sources */,
+				DF203FD51380C3BC0056300A /* console.cpp in Sources */,
+				DF203FD61380C3BC0056300A /* dialogs.cpp in Sources */,
+				DF203FD71380C3BC0056300A /* file_v1d.cpp in Sources */,
+				DF203FD81380C3BC0056300A /* file_v1w.cpp in Sources */,
+				DF203FD91380C3BC0056300A /* file_v2d.cpp in Sources */,
+				DF203FDA1380C3BC0056300A /* file_v2w.cpp in Sources */,
+				DF203FDB1380C3BC0056300A /* file_v3d.cpp in Sources */,
+				DF203FDC1380C3BC0056300A /* object_v1d.cpp in Sources */,
+				DF203FDD1380C3BC0056300A /* object_v1w.cpp in Sources */,
+				DF203FDE1380C3BC0056300A /* object_v2d.cpp in Sources */,
+				DF203FDF1380C3BC0056300A /* object_v3d.cpp in Sources */,
+				DF203FE01380C3BC0056300A /* object.cpp in Sources */,
+				DF203FE11380C3BC0056300A /* parser_v1d.cpp in Sources */,
+				DF203FE21380C3BC0056300A /* parser_v1w.cpp in Sources */,
+				DF203FE31380C3BC0056300A /* parser_v2d.cpp in Sources */,
+				DF203FE41380C3BC0056300A /* parser_v3d.cpp in Sources */,
+				DF203FE51380C3BC0056300A /* text.cpp in Sources */,
+				DF20402E1380C8B70056300A /* editable.cpp in Sources */,
+				DF20402F1380C8B70056300A /* edittext.cpp in Sources */,
+				DF2040301380C8B70056300A /* list.cpp in Sources */,
+				DF2040311380C8B70056300A /* popup.cpp in Sources */,
+				DF2040321380C8B70056300A /* scrollbar.cpp in Sources */,
+				DF2040331380C8B70056300A /* tab.cpp in Sources */,
+				DF20405E1380CA230056300A /* audiostream.cpp in Sources */,
+				DF20405F1380CA230056300A /* fmopl.cpp in Sources */,
+				DF2040601380CA230056300A /* mididrv.cpp in Sources */,
+				DF2040611380CA230056300A /* midiparser_smf.cpp in Sources */,
+				DF2040621380CA230056300A /* midiparser_xmidi.cpp in Sources */,
+				DF2040631380CA230056300A /* midiparser.cpp in Sources */,
+				DF2040641380CA230056300A /* midiplayer.cpp in Sources */,
+				DF2040651380CA230056300A /* mixer.cpp in Sources */,
+				DF2040661380CA230056300A /* mpu401.cpp in Sources */,
+				DF2040671380CA230056300A /* musicplugin.cpp in Sources */,
+				DF2040681380CA230056300A /* rate.cpp in Sources */,
+				DF2040691380CA230056300A /* timestamp.cpp in Sources */,
+				DF20409A1380CA400056300A /* adpcm.cpp in Sources */,
+				DF20409B1380CA400056300A /* aiff.cpp in Sources */,
+				DF20409C1380CA400056300A /* flac.cpp in Sources */,
+				DF20409D1380CA400056300A /* iff_sound.cpp in Sources */,
+				DF20409E1380CA400056300A /* mac_snd.cpp in Sources */,
+				DF20409F1380CA400056300A /* mp3.cpp in Sources */,
+				DF2040A01380CA400056300A /* raw.cpp in Sources */,
+				DF2040A11380CA400056300A /* vag.cpp in Sources */,
+				DF2040A21380CA400056300A /* voc.cpp in Sources */,
+				DF2040A31380CA400056300A /* vorbis.cpp in Sources */,
+				DF2040A41380CA400056300A /* wave.cpp in Sources */,
+				DF2040CC1380CA810056300A /* infogrames.cpp in Sources */,
+				DF2040CD1380CA810056300A /* maxtrax.cpp in Sources */,
+				DF2040CE1380CA810056300A /* module.cpp in Sources */,
+				DF2040CF1380CA810056300A /* paula.cpp in Sources */,
+				DF2040D01380CA810056300A /* protracker.cpp in Sources */,
+				DF2040D11380CA810056300A /* rjp1.cpp in Sources */,
+				DF2040D21380CA810056300A /* soundfx.cpp in Sources */,
+				DF2040D31380CA810056300A /* tfmx.cpp in Sources */,
+				DF2040F41380CAA40056300A /* adlib.cpp in Sources */,
+				DF2040F51380CAA40056300A /* appleiigs.cpp in Sources */,
+				DF2040F61380CAA40056300A /* cms.cpp in Sources */,
+				DF2040F71380CAA40056300A /* eas.cpp in Sources */,
+				DF2040F81380CAA40056300A /* fluidsynth.cpp in Sources */,
+				DF2040F91380CAA40056300A /* mt32.cpp in Sources */,
+				DF2040FA1380CAA40056300A /* pcspk.cpp in Sources */,
+				DF2040FB1380CAA40056300A /* sid.cpp in Sources */,
+				DF2040FC1380CAA40056300A /* wave6581.cpp in Sources */,
+				DF2040FD1380CAA40056300A /* ym2612.cpp in Sources */,
+				DF46B6F31381E18900D08723 /* coroutine.cpp in Sources */,
+				DF46B6FF1381E1FF00D08723 /* towns_audio.cpp in Sources */,
+				DF46B7001381E1FF00D08723 /* towns_euphony.cpp in Sources */,
+				DF46B7011381E1FF00D08723 /* towns_pc98_driver.cpp in Sources */,
+				DF46B7021381E1FF00D08723 /* towns_pc98_fmsynth.cpp in Sources */,
+				DF46B7191381E27000D08723 /* console.cpp in Sources */,
+				DF46B71A1381E27000D08723 /* databases.cpp in Sources */,
+				DF46B71B1381E27000D08723 /* dbase.cpp in Sources */,
+				DF46B71C1381E27000D08723 /* iniconfig.cpp in Sources */,
+				DF46B71D1381E27000D08723 /* init_v7.cpp in Sources */,
+				DF46B71E1381E27000D08723 /* inter_inca2.cpp in Sources */,
+				DF46B7441381E40500D08723 /* log.cpp in Sources */,
+				DF46B7491381E40F00D08723 /* modular-backend.cpp in Sources */,
+				DF46B7541381E46700D08723 /* player_v2base.cpp in Sources */,
+				DF46B75E1381E4A400D08723 /* console.cpp in Sources */,
+				DF46B7631381E4D400D08723 /* robot_decoder.cpp in Sources */,
+				DF46B7671381E4E400D08723 /* vm_types.cpp in Sources */,
+				DF46B77B1381E54200D08723 /* dcl.cpp in Sources */,
+				DF46B77C1381E54200D08723 /* iff_container.cpp in Sources */,
+				DF46B77D1381E54200D08723 /* winexe_ne.cpp in Sources */,
+				DF46B77E1381E54200D08723 /* winexe_pe.cpp in Sources */,
+				DF46B77F1381E54200D08723 /* winexe.cpp in Sources */,
+				DF46B7931381E58000D08723 /* png.cpp in Sources */,
+				DF46B7941381E58000D08723 /* wincursor.cpp in Sources */,
+				DF46B79F1381E5B500D08723 /* winfont.cpp in Sources */,
+				DF46B7A51381E5D900D08723 /* sdl-timer.cpp in Sources */,
+				DF46B7A91381E5F100D08723 /* header.cpp in Sources */,
+				DF46B7B41381E67800D08723 /* sdl-mutex.cpp in Sources */,
+				DF46B7BD1381E6C000D08723 /* object.cpp in Sources */,
+				DF46B7C81381E72500D08723 /* console.cpp in Sources */,
+				DF46B7CF1381E76300D08723 /* sdl-events.cpp in Sources */,
+				DF46B7D61381E7C600D08723 /* console.cpp in Sources */,
+				DF46B83C1381F13500D08723 /* saveload_v7.cpp in Sources */,
+				DF46B8441381F35500D08723 /* saveload_inca2.cpp in Sources */,
+				DF46B8481381F38700D08723 /* inter_v7.cpp in Sources */,
+				DF46B84D1381F39E00D08723 /* console.cpp in Sources */,
+				DF46B8521381F3B400D08723 /* console.cpp in Sources */,
+				DF46B8601381F44E00D08723 /* dbopl.cpp in Sources */,
+				DF46B8611381F44E00D08723 /* dosbox.cpp in Sources */,
+				DF46B8621381F44E00D08723 /* mame.cpp in Sources */,
+				DF46B8711381F4A200D08723 /* sdl-audiocd.cpp in Sources */,
+				DF46B87D1381F4F200D08723 /* default-audiocd.cpp in Sources */,
+				DF46B8891381F5D800D08723 /* sdl-provider.cpp in Sources */,
+				DF46B8921381F62B00D08723 /* adpcm.cpp in Sources */,
+				DF46B89B1381F6C400D08723 /* null.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -9849,41 +10392,14 @@
 				DFF9593E0FB22D5700A3EC78 /* console.cpp in Sources */,
 				DFF9593F0FB22D5700A3EC78 /* debugger.cpp in Sources */,
 				DFF959400FB22D5700A3EC78 /* dialog.cpp in Sources */,
-				DFF959410FB22D5700A3EC78 /* editable.cpp in Sources */,
-				DFF959420FB22D5700A3EC78 /* EditTextWidget.cpp in Sources */,
 				DFF959430FB22D5700A3EC78 /* Key.cpp in Sources */,
 				DFF959440FB22D5700A3EC78 /* launcher.cpp in Sources */,
-				DFF959450FB22D5700A3EC78 /* ListWidget.cpp in Sources */,
 				DFF959460FB22D5700A3EC78 /* massadd.cpp in Sources */,
 				DFF959470FB22D5700A3EC78 /* message.cpp in Sources */,
 				DFF959480FB22D5700A3EC78 /* object.cpp in Sources */,
 				DFF959490FB22D5700A3EC78 /* options.cpp in Sources */,
-				DFF9594A0FB22D5700A3EC78 /* PopUpWidget.cpp in Sources */,
-				DFF9594B0FB22D5700A3EC78 /* ScrollBarWidget.cpp in Sources */,
-				DFF9594C0FB22D5700A3EC78 /* TabWidget.cpp in Sources */,
 				DFF9594D0FB22D5700A3EC78 /* themebrowser.cpp in Sources */,
 				DFF9594E0FB22D5700A3EC78 /* widget.cpp in Sources */,
-				DFF959510FB22D5700A3EC78 /* audiocd.cpp in Sources */,
-				DFF959520FB22D5700A3EC78 /* audiostream.cpp in Sources */,
-				DFF959540FB22D5700A3EC78 /* fmopl.cpp in Sources */,
-				DFF959560FB22D5700A3EC78 /* mididrv.cpp in Sources */,
-				DFF959570FB22D5700A3EC78 /* midiparser.cpp in Sources */,
-				DFF959580FB22D5700A3EC78 /* midiparser_smf.cpp in Sources */,
-				DFF959590FB22D5700A3EC78 /* midiparser_xmidi.cpp in Sources */,
-				DFF9595A0FB22D5700A3EC78 /* mixer.cpp in Sources */,
-				DFF9595B0FB22D5700A3EC78 /* infogrames.cpp in Sources */,
-				DFF9595C0FB22D5700A3EC78 /* module.cpp in Sources */,
-				DFF9595D0FB22D5700A3EC78 /* paula.cpp in Sources */,
-				DFF9595E0FB22D5700A3EC78 /* protracker.cpp in Sources */,
-				DFF9595F0FB22D5700A3EC78 /* rjp1.cpp in Sources */,
-				DFF959600FB22D5700A3EC78 /* soundfx.cpp in Sources */,
-				DFF959620FB22D5700A3EC78 /* mpu401.cpp in Sources */,
-				DFF959630FB22D5700A3EC78 /* null.cpp in Sources */,
-				DFF959640FB22D5700A3EC78 /* rate.cpp in Sources */,
-				DFF959650FB22D5700A3EC78 /* adlib.cpp in Sources */,
-				DFF959660FB22D5700A3EC78 /* fluidsynth.cpp in Sources */,
-				DFF959670FB22D5700A3EC78 /* pcspk.cpp in Sources */,
-				DFF959680FB22D5700A3EC78 /* ym2612.cpp in Sources */,
 				DFF9596C0FB22D5700A3EC78 /* memorypool.cpp in Sources */,
 				DFF9596D0FB22D5700A3EC78 /* seq.cpp in Sources */,
 				DFF9596E0FB22D5700A3EC78 /* scaler.cpp in Sources */,
@@ -10514,7 +11030,6 @@
 				DFF95C0F0FB22D5700A3EC78 /* archive.cpp in Sources */,
 				DFF95C100FB22D5700A3EC78 /* unarj.cpp in Sources */,
 				DFF95C110FB22D5700A3EC78 /* stdiostream.cpp in Sources */,
-				DFF95C120FB22D5700A3EC78 /* musicplugin.cpp in Sources */,
 				DFF95C130FB22D5700A3EC78 /* saveload.cpp in Sources */,
 				DFF95C140FB22D5700A3EC78 /* ThemeEngine.cpp in Sources */,
 				DFF95C150FB22D5700A3EC78 /* ThemeEval.cpp in Sources */,
@@ -10531,7 +11046,6 @@
 				DFF95C200FB22D5700A3EC78 /* thumbnail_intern.cpp in Sources */,
 				DFF95C210FB22D5700A3EC78 /* dither.cpp in Sources */,
 				DFF95C270FB22D5700A3EC78 /* debug.cpp in Sources */,
-				DFF95C280FB22D5700A3EC78 /* gui-manager.hcpp in Sources */,
 				DFF95C290FB22D5700A3EC78 /* posix-saves.cpp in Sources */,
 				DFF95C2A0FB22D5700A3EC78 /* bmv.cpp in Sources */,
 				DFF95C2B0FB22D5700A3EC78 /* dialogs.cpp in Sources */,
@@ -10603,7 +11117,6 @@
 				DFF95C920FB22D5700A3EC78 /* timer_lol.cpp in Sources */,
 				DFF95C940FB22D5700A3EC78 /* sprites_lol.cpp in Sources */,
 				DFF95C950FB22D5700A3EC78 /* script.cpp in Sources */,
-				DFF95C980FB22D5700A3EC78 /* timestamp.cpp in Sources */,
 				DFF95C990FB22D5700A3EC78 /* pn.cpp in Sources */,
 				DFF95C9A0FB22D5700A3EC78 /* script_pn.cpp in Sources */,
 				DFF95C9B0FB22D5700A3EC78 /* vga_pn.cpp in Sources */,
@@ -10618,20 +11131,15 @@
 				DFF95CB30FB22D5700A3EC78 /* inter_fascin.cpp in Sources */,
 				DFF95CB40FB22D5700A3EC78 /* script_v3.cpp in Sources */,
 				DFF95CB50FB22D5700A3EC78 /* script_v4.cpp in Sources */,
-				DFF95CB70FB22D5700A3EC78 /* dosbox.cpp in Sources */,
 				DF6118400FE3A8080042AD3F /* kmisc.cpp in Sources */,
 				DF6118410FE3A8080042AD3F /* segment.cpp in Sources */,
 				DF61184F0FE3A8250042AD3F /* decompressor.cpp in Sources */,
 				DF6118500FE3A8250042AD3F /* resource.cpp in Sources */,
 				DF6118570FE3A8990042AD3F /* disk.cpp in Sources */,
-				DF6118720FE3A9410042AD3F /* dxa_decoder.cpp in Sources */,
-				DF6118730FE3A9410042AD3F /* flic_decoder.cpp in Sources */,
-				DF6118740FE3A9410042AD3F /* smk_decoder.cpp in Sources */,
 				DF6118A10FE3A9AA0042AD3F /* saveconverter.cpp in Sources */,
 				DF6118A20FE3A9AA0042AD3F /* saveconverter_v2.cpp in Sources */,
 				DF6118A30FE3A9AA0042AD3F /* saveconverter_v3.cpp in Sources */,
 				DF6118A40FE3A9AA0042AD3F /* saveconverter_v4.cpp in Sources */,
-				DF6118A50FE3A9AA0042AD3F /* saveconverter_v6.cpp in Sources */,
 				DF6118A60FE3A9AA0042AD3F /* savefile.cpp in Sources */,
 				DF6118A70FE3A9AA0042AD3F /* savehandler.cpp in Sources */,
 				DF6118A80FE3A9AA0042AD3F /* saveload.cpp in Sources */,
@@ -10645,7 +11153,6 @@
 				DF6118C20FE3AA280042AD3F /* sound_pcspk.cpp in Sources */,
 				DF6118C30FE3AA280042AD3F /* text_lol.cpp in Sources */,
 				DF6118C90FE3AABD0042AD3F /* player_v2cms.cpp in Sources */,
-				DF6118D20FE3AB560042AD3F /* mame.cpp in Sources */,
 				DF7585D4100CB66E00CC3324 /* expression.cpp in Sources */,
 				DF7585D5100CB66E00CC3324 /* hotspots.cpp in Sources */,
 				DF7585D6100CB66E00CC3324 /* init_v6.cpp in Sources */,
@@ -10670,31 +11177,15 @@
 				DF6BF4F310529EE40069811F /* player_v4a.cpp in Sources */,
 				DF6BF4FC10529F140069811F /* EventDispatcher.cpp in Sources */,
 				DF6BF4FD10529F140069811F /* EventRecorder.cpp in Sources */,
-				DF6BF50610529F540069811F /* maxtrax.cpp in Sources */,
-				DF6BF50710529F540069811F /* tfmx.cpp in Sources */,
 				DF90E9C110AEDA9B00C8F93F /* selector.cpp in Sources */,
 				DF90EAA510B0234300C8F93F /* draw_playtoons.cpp in Sources */,
 				DF90EAAE10B0236F00C8F93F /* staticres.cpp in Sources */,
-				DF90EAB910B023D100C8F93F /* avi_decoder.cpp in Sources */,
-				DF90EAC410B023F400C8F93F /* msvideo1.cpp in Sources */,
 				DF2EC3FA10E64C0C00765801 /* dialogs.cpp in Sources */,
 				DF2EC40010E64C4300765801 /* animator_tim.cpp in Sources */,
 				DF2EC40710E64C8000765801 /* event.cpp in Sources */,
 				DF2EC50510E64D7C00765801 /* player_pce.cpp in Sources */,
 				DF2EC50610E64D7C00765801 /* player_sid.cpp in Sources */,
 				DF2EC50D10E64DB300765801 /* textconsole.cpp in Sources */,
-				DF2EC51410E64E3100765801 /* sid.cpp in Sources */,
-				DF2EC51A10E64EE600765801 /* wave6581.cpp in Sources */,
-				DF45B15B116627DA009B85CC /* adpcm.cpp in Sources */,
-				DF45B15D116627DA009B85CC /* aiff.cpp in Sources */,
-				DF45B15F116627DA009B85CC /* flac.cpp in Sources */,
-				DF45B161116627DA009B85CC /* iff_sound.cpp in Sources */,
-				DF45B163116627DA009B85CC /* mp3.cpp in Sources */,
-				DF45B165116627DA009B85CC /* raw.cpp in Sources */,
-				DF45B167116627DA009B85CC /* vag.cpp in Sources */,
-				DF45B169116627DA009B85CC /* voc.cpp in Sources */,
-				DF45B16B116627DA009B85CC /* vorbis.cpp in Sources */,
-				DF45B16D116627DA009B85CC /* wave.cpp in Sources */,
 				DF45B21E116628A5009B85CC /* animate.cpp in Sources */,
 				DF45B21F116628A5009B85CC /* cache.cpp in Sources */,
 				DF45B220116628A5009B85CC /* compare.cpp in Sources */,
@@ -10728,25 +11219,19 @@
 				DFCDC6DD116629CE00A7D2A0 /* features.cpp in Sources */,
 				DFCDC6DE116629CE00A7D2A0 /* kparse.cpp in Sources */,
 				DFCDC6F911662AAB00A7D2A0 /* resource.cpp in Sources */,
-				DFCDC70011662AD700A7D2A0 /* msrle.cpp in Sources */,
 				DFCDC70611662B0200A7D2A0 /* saveload_fascin.cpp in Sources */,
 				DFCDC70D11662B6B00A7D2A0 /* macresman.cpp in Sources */,
 				DFEC5D101166C5CF00C90552 /* random.cpp in Sources */,
 				DFEC5D111166C5CF00C90552 /* tokenizer.cpp in Sources */,
 				DFEC5D361166C67300C90552 /* savestate.cpp in Sources */,
-				DFEC5D3F1166C6B400C90552 /* dbopl.cpp in Sources */,
 				DF9B9248118E46730069C19D /* error.cpp in Sources */,
 				DF9B9252118E46A00069C19D /* fontsjis.cpp in Sources */,
 				DF9B9262118E46FE0069C19D /* error.cpp in Sources */,
-				DFB0576811B753AF0015AE65 /* mpeg_player.cpp in Sources */,
-				DFB0576911B753AF0015AE65 /* qt_decoder.cpp in Sources */,
-				DFB0576A11B753AF0015AE65 /* video_decoder.cpp in Sources */,
 				DFB0577611B753DA0015AE65 /* rational.cpp in Sources */,
 				DFB0578011B7541F0015AE65 /* resource_audio.cpp in Sources */,
 				DFB0578111B7541F0015AE65 /* util.cpp in Sources */,
 				DFB0578A11B754570015AE65 /* maciconbar.cpp in Sources */,
 				DFB0579111B7547D0015AE65 /* pict.cpp in Sources */,
-				DFB0579811B7549C0015AE65 /* cinepak.cpp in Sources */,
 				DF7F286111FF23D500159131 /* amigamac.cpp in Sources */,
 				DF7F286711FF23EF00159131 /* kvideo.cpp in Sources */,
 				DF7F286811FF23EF00159131 /* workarounds.cpp in Sources */,
@@ -10757,25 +11242,11 @@
 				DF7F287E11FF243B00159131 /* sound_sarien.cpp in Sources */,
 				DF7F288B11FF244F00159131 /* Tooltip.cpp in Sources */,
 				DF7F289311FF247300159131 /* translation.cpp in Sources */,
-				DF7F28A011FF24B000159131 /* mac_snd.cpp in Sources */,
 				DF7F28A511FF24C400159131 /* console.cpp in Sources */,
-				DF895C00124C24350077F6E8 /* coktel_decoder.cpp in Sources */,
 				DF895C05124C24680077F6E8 /* player_towns.cpp in Sources */,
-				DF895C0B124C24B60077F6E8 /* appleiigs.cpp in Sources */,
-				DF895C1D124C24C10077F6E8 /* towns_audio.cpp in Sources */,
-				DF895C1E124C24C10077F6E8 /* towns_euphony.cpp in Sources */,
-				DF895C1F124C24C10077F6E8 /* towns_pc98_driver.cpp in Sources */,
-				DF895C20124C24C10077F6E8 /* towns_pc98_fmsynth.cpp in Sources */,
 				DF895C27124C25150077F6E8 /* init_fascin.cpp in Sources */,
 				DF895C2C124C25350077F6E8 /* script_patches.cpp in Sources */,
-				DF895CC4124E58990077F6E8 /* indeo3.cpp in Sources */,
-				DF895CC5124E58990077F6E8 /* mjpeg.cpp in Sources */,
-				DF895CC6124E58990077F6E8 /* qdm2.cpp in Sources */,
-				DF895CC7124E58990077F6E8 /* qtrle.cpp in Sources */,
-				DF895CC8124E58990077F6E8 /* rpza.cpp in Sources */,
-				DF895CC9124E58990077F6E8 /* smc.cpp in Sources */,
 				DF0E303A1252C5BD0082D593 /* cms.cpp in Sources */,
-				DF0E30411252C6090082D593 /* cms.cpp in Sources */,
 				8CB5A9C11253FD6900CB6BC7 /* m4_scene.cpp in Sources */,
 				8CB5A9C21253FD6900CB6BC7 /* mads_logic.cpp in Sources */,
 				8CB5A9C31253FD6900CB6BC7 /* mads_player.cpp in Sources */,
@@ -10783,7 +11254,6 @@
 				8CB5A9C51253FD6900CB6BC7 /* mads_views.cpp in Sources */,
 				8CD1ED0B126202AB00FA198C /* detection.cpp in Sources */,
 				8CD1ED0C126202AB00FA198C /* display.cpp in Sources */,
-				8CD1ED0D126202AB00FA198C /* engine.cpp in Sources */,
 				8CD1ED0E126202AB00FA198C /* file.cpp in Sources */,
 				8CD1ED0F126202AB00FA198C /* hugo.cpp in Sources */,
 				8CD1ED10126202AB00FA198C /* intro.cpp in Sources */,
@@ -10832,6 +11302,132 @@
 				8CD80CEF126272A0001C6C87 /* surface.cpp in Sources */,
 				8CD80CF0126272A0001C6C87 /* surface_list.cpp in Sources */,
 				8CD80CF1126272A0001C6C87 /* teenagent.cpp in Sources */,
+				DF203F491380C06E0056300A /* gui-manager.cpp in Sources */,
+				DF203F731380C2750056300A /* avi_decoder.cpp in Sources */,
+				DF203F741380C2750056300A /* coktel_decoder.cpp in Sources */,
+				DF203F751380C2750056300A /* dxa_decoder.cpp in Sources */,
+				DF203F761380C2750056300A /* flic_decoder.cpp in Sources */,
+				DF203F781380C2750056300A /* qt_decoder.cpp in Sources */,
+				DF203F791380C2750056300A /* smk_decoder.cpp in Sources */,
+				DF203F7A1380C2750056300A /* video_decoder.cpp in Sources */,
+				DF203FAB1380C2920056300A /* cdtoons.cpp in Sources */,
+				DF203FAC1380C2920056300A /* cinepak.cpp in Sources */,
+				DF203FAD1380C2920056300A /* indeo3.cpp in Sources */,
+				DF203FAE1380C2920056300A /* mjpeg.cpp in Sources */,
+				DF203FAF1380C2920056300A /* msrle.cpp in Sources */,
+				DF203FB01380C2920056300A /* msvideo1.cpp in Sources */,
+				DF203FB11380C2920056300A /* qdm2.cpp in Sources */,
+				DF203FB21380C2920056300A /* qtrle.cpp in Sources */,
+				DF203FB31380C2920056300A /* rpza.cpp in Sources */,
+				DF203FB41380C2920056300A /* smc.cpp in Sources */,
+				DF203FB51380C2920056300A /* truemotion1.cpp in Sources */,
+				DF203FF71380C3BC0056300A /* console.cpp in Sources */,
+				DF203FF81380C3BC0056300A /* dialogs.cpp in Sources */,
+				DF203FF91380C3BC0056300A /* file_v1d.cpp in Sources */,
+				DF203FFA1380C3BC0056300A /* file_v1w.cpp in Sources */,
+				DF203FFB1380C3BC0056300A /* file_v2d.cpp in Sources */,
+				DF203FFC1380C3BC0056300A /* file_v2w.cpp in Sources */,
+				DF203FFD1380C3BC0056300A /* file_v3d.cpp in Sources */,
+				DF203FFE1380C3BC0056300A /* object_v1d.cpp in Sources */,
+				DF203FFF1380C3BC0056300A /* object_v1w.cpp in Sources */,
+				DF2040001380C3BC0056300A /* object_v2d.cpp in Sources */,
+				DF2040011380C3BC0056300A /* object_v3d.cpp in Sources */,
+				DF2040021380C3BC0056300A /* object.cpp in Sources */,
+				DF2040031380C3BC0056300A /* parser_v1d.cpp in Sources */,
+				DF2040041380C3BC0056300A /* parser_v1w.cpp in Sources */,
+				DF2040051380C3BC0056300A /* parser_v2d.cpp in Sources */,
+				DF2040061380C3BC0056300A /* parser_v3d.cpp in Sources */,
+				DF2040071380C3BC0056300A /* text.cpp in Sources */,
+				DF20403A1380C8B70056300A /* editable.cpp in Sources */,
+				DF20403B1380C8B70056300A /* edittext.cpp in Sources */,
+				DF20403C1380C8B70056300A /* list.cpp in Sources */,
+				DF20403D1380C8B70056300A /* popup.cpp in Sources */,
+				DF20403E1380C8B70056300A /* scrollbar.cpp in Sources */,
+				DF20403F1380C8B70056300A /* tab.cpp in Sources */,
+				DF2040761380CA230056300A /* audiostream.cpp in Sources */,
+				DF2040771380CA230056300A /* fmopl.cpp in Sources */,
+				DF2040781380CA230056300A /* mididrv.cpp in Sources */,
+				DF2040791380CA230056300A /* midiparser_smf.cpp in Sources */,
+				DF20407A1380CA230056300A /* midiparser_xmidi.cpp in Sources */,
+				DF20407B1380CA230056300A /* midiparser.cpp in Sources */,
+				DF20407C1380CA230056300A /* midiplayer.cpp in Sources */,
+				DF20407D1380CA230056300A /* mixer.cpp in Sources */,
+				DF20407E1380CA230056300A /* mpu401.cpp in Sources */,
+				DF20407F1380CA230056300A /* musicplugin.cpp in Sources */,
+				DF2040801380CA230056300A /* rate.cpp in Sources */,
+				DF2040811380CA230056300A /* timestamp.cpp in Sources */,
+				DF2040B01380CA400056300A /* adpcm.cpp in Sources */,
+				DF2040B11380CA400056300A /* aiff.cpp in Sources */,
+				DF2040B21380CA400056300A /* flac.cpp in Sources */,
+				DF2040B31380CA400056300A /* iff_sound.cpp in Sources */,
+				DF2040B41380CA400056300A /* mac_snd.cpp in Sources */,
+				DF2040B51380CA400056300A /* mp3.cpp in Sources */,
+				DF2040B61380CA400056300A /* raw.cpp in Sources */,
+				DF2040B71380CA400056300A /* vag.cpp in Sources */,
+				DF2040B81380CA400056300A /* voc.cpp in Sources */,
+				DF2040B91380CA400056300A /* vorbis.cpp in Sources */,
+				DF2040BA1380CA400056300A /* wave.cpp in Sources */,
+				DF2040DC1380CA810056300A /* infogrames.cpp in Sources */,
+				DF2040DD1380CA810056300A /* maxtrax.cpp in Sources */,
+				DF2040DE1380CA810056300A /* module.cpp in Sources */,
+				DF2040DF1380CA810056300A /* paula.cpp in Sources */,
+				DF2040E01380CA810056300A /* protracker.cpp in Sources */,
+				DF2040E11380CA810056300A /* rjp1.cpp in Sources */,
+				DF2040E21380CA810056300A /* soundfx.cpp in Sources */,
+				DF2040E31380CA810056300A /* tfmx.cpp in Sources */,
+				DF2041081380CAA40056300A /* adlib.cpp in Sources */,
+				DF2041091380CAA40056300A /* appleiigs.cpp in Sources */,
+				DF20410A1380CAA40056300A /* cms.cpp in Sources */,
+				DF20410B1380CAA40056300A /* eas.cpp in Sources */,
+				DF20410C1380CAA40056300A /* fluidsynth.cpp in Sources */,
+				DF20410D1380CAA40056300A /* mt32.cpp in Sources */,
+				DF20410E1380CAA40056300A /* pcspk.cpp in Sources */,
+				DF20410F1380CAA40056300A /* sid.cpp in Sources */,
+				DF2041101380CAA40056300A /* wave6581.cpp in Sources */,
+				DF2041111380CAA40056300A /* ym2612.cpp in Sources */,
+				DF46B6F51381E18900D08723 /* coroutine.cpp in Sources */,
+				DF46B7071381E1FF00D08723 /* towns_audio.cpp in Sources */,
+				DF46B7081381E1FF00D08723 /* towns_euphony.cpp in Sources */,
+				DF46B7091381E1FF00D08723 /* towns_pc98_driver.cpp in Sources */,
+				DF46B70A1381E1FF00D08723 /* towns_pc98_fmsynth.cpp in Sources */,
+				DF46B7251381E27000D08723 /* console.cpp in Sources */,
+				DF46B7261381E27000D08723 /* databases.cpp in Sources */,
+				DF46B7271381E27000D08723 /* dbase.cpp in Sources */,
+				DF46B7281381E27000D08723 /* iniconfig.cpp in Sources */,
+				DF46B7291381E27000D08723 /* init_v7.cpp in Sources */,
+				DF46B72A1381E27000D08723 /* inter_inca2.cpp in Sources */,
+				DF46B7461381E40500D08723 /* log.cpp in Sources */,
+				DF46B74B1381E40F00D08723 /* modular-backend.cpp in Sources */,
+				DF46B7561381E46700D08723 /* player_v2base.cpp in Sources */,
+				DF46B7601381E4A400D08723 /* console.cpp in Sources */,
+				DF46B7651381E4D400D08723 /* robot_decoder.cpp in Sources */,
+				DF46B7691381E4E400D08723 /* vm_types.cpp in Sources */,
+				DF46B7851381E54200D08723 /* dcl.cpp in Sources */,
+				DF46B7861381E54200D08723 /* iff_container.cpp in Sources */,
+				DF46B7871381E54200D08723 /* winexe_ne.cpp in Sources */,
+				DF46B7881381E54200D08723 /* winexe_pe.cpp in Sources */,
+				DF46B7891381E54200D08723 /* winexe.cpp in Sources */,
+				DF46B7971381E58000D08723 /* png.cpp in Sources */,
+				DF46B7981381E58000D08723 /* wincursor.cpp in Sources */,
+				DF46B7A11381E5B500D08723 /* winfont.cpp in Sources */,
+				DF46B7AB1381E5F100D08723 /* header.cpp in Sources */,
+				DF46B7B61381E67800D08723 /* sdl-mutex.cpp in Sources */,
+				DF46B7BF1381E6C000D08723 /* object.cpp in Sources */,
+				DF46B7CA1381E72500D08723 /* console.cpp in Sources */,
+				DF46B7D81381E7C600D08723 /* console.cpp in Sources */,
+				DF46B83E1381F13500D08723 /* saveload_v7.cpp in Sources */,
+				DF46B8461381F35500D08723 /* saveload_inca2.cpp in Sources */,
+				DF46B84A1381F38700D08723 /* inter_v7.cpp in Sources */,
+				DF46B84F1381F39E00D08723 /* console.cpp in Sources */,
+				DF46B8541381F3B400D08723 /* console.cpp in Sources */,
+				DF46B8661381F44E00D08723 /* dbopl.cpp in Sources */,
+				DF46B8671381F44E00D08723 /* dosbox.cpp in Sources */,
+				DF46B8681381F44E00D08723 /* mame.cpp in Sources */,
+				DF46B8731381F4A200D08723 /* sdl-audiocd.cpp in Sources */,
+				DF46B87F1381F4F200D08723 /* default-audiocd.cpp in Sources */,
+				DF46B88B1381F5D800D08723 /* sdl-provider.cpp in Sources */,
+				DF46B8941381F62B00D08723 /* adpcm.cpp in Sources */,
+				DF46B89D1381F6C400D08723 /* null.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -10857,6 +11453,46 @@
 				GCC_OPTIMIZATION_LEVEL = 0;
 				GCC_PRECOMPILE_PREFIX_HEADER = NO;
 				GCC_PREFIX_HEADER = "";
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					CONFIG_H,
+					IPHONE_OFFICIAL,
+					IPHONE,
+					UNIX,
+					SCUMM_LITTLE_ENDIAN,
+					SCUMM_NEED_ALIGNMENT,
+					ENABLE_SCUMM,
+					ENABLE_SCUMM_7_8,
+					ENABLE_HE,
+					ENABLE_AGI,
+					ENABLE_AGOS,
+					ENABLE_CINE,
+					ENABLE_CRUISE,
+					ENABLE_DRASCULA,
+					ENABLE_GOB,
+					ENABLE_GROOVIE,
+					ENABLE_IGOR,
+					ENABLE_KYRA,
+					ENABLE_LURE,
+					ENABLE_MADE,
+					ENABLE_PARALLACTION,
+					ENABLE_QUEEN,
+					ENABLE_SAGA,
+					ENABLE_IHNM,
+					ENABLE_SCI,
+					ENABLE_SKY,
+					ENABLE_SWORD1,
+					ENABLE_SWORD2,
+					ENABLE_TEENAGENT,
+					ENABLE_TINSEL,
+					ENABLE_TOUCHE,
+					ENABLE_TUCKER,
+					USE_FLAC,
+					USE_MAD,
+					USE_TREMOR,
+					USE_VORBIS,
+					USE_ZLIB,
+					USE_TREMOR,
+				);
 				GCC_THUMB_SUPPORT = NO;
 				GCC_UNROLL_LOOPS = YES;
 				HEADER_SEARCH_PATHS = (
@@ -10865,6 +11501,7 @@
 					include/,
 				);
 				INFOPLIST_FILE = Info.plist;
+				IPHONEOS_DEPLOYMENT_TARGET = 3.0;
 				LIBRARY_SEARCH_PATHS = (
 					"$(inherited)",
 					"\"$(SRCROOT)/lib\"",
@@ -10872,9 +11509,9 @@
 				ONLY_ACTIVE_ARCH = YES;
 				PREBINDING = NO;
 				PRODUCT_NAME = ScummVM;
-				PROVISIONING_PROFILE = "EF590570-5FAC-4346-9071-D609DE2B28D8";
+				PROVISIONING_PROFILE = "";
 				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
-				SDKROOT = iphoneos4.0;
+				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = "1,2";
 			};
 			name = Debug;
@@ -10897,42 +11534,6 @@
 				GCC_OPTIMIZATION_LEVEL = 3;
 				GCC_PRECOMPILE_PREFIX_HEADER = NO;
 				GCC_PREFIX_HEADER = "";
-				GCC_THUMB_SUPPORT = NO;
-				GCC_UNROLL_LOOPS = YES;
-				HEADER_SEARCH_PATHS = (
-					../../engines/,
-					../../,
-					include/,
-				);
-				INFOPLIST_FILE = Info.plist;
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)/lib\"",
-				);
-				ONLY_ACTIVE_ARCH = YES;
-				PREBINDING = NO;
-				PRODUCT_NAME = ScummVM;
-				PROVISIONING_PROFILE = "EF590570-5FAC-4346-9071-D609DE2B28D8";
-				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
-				SDKROOT = iphoneos3.2;
-				TARGETED_DEVICE_FAMILY = "1,2";
-				WRAPPER_EXTENSION = app;
-			};
-			name = Release;
-		};
-		C01FCF4F08A954540054247B /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
-				CODE_SIGN_IDENTITY = "iPhone Developer";
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				FRAMEWORK_SEARCH_PATHS = "";
-				GCC_C_LANGUAGE_STANDARD = c99;
-				GCC_ENABLE_CPP_EXCEPTIONS = NO;
-				GCC_ENABLE_CPP_RTTI = NO;
-				GCC_INPUT_FILETYPE = automatic;
-				GCC_OPTIMIZATION_LEVEL = 0;
 				GCC_PREPROCESSOR_DEFINITIONS = (
 					CONFIG_H,
 					IPHONE_OFFICIAL,
@@ -10971,7 +11572,46 @@
 					USE_TREMOR,
 					USE_VORBIS,
 					USE_ZLIB,
+					USE_TREMOR,
+				);
+				GCC_THUMB_SUPPORT = NO;
+				GCC_UNROLL_LOOPS = YES;
+				HEADER_SEARCH_PATHS = (
+					../../engines/,
+					../../,
+					include/,
+				);
+				INFOPLIST_FILE = Info.plist;
+				IPHONEOS_DEPLOYMENT_TARGET = 3.0;
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)/lib\"",
 				);
+				ONLY_ACTIVE_ARCH = YES;
+				PREBINDING = NO;
+				PRODUCT_NAME = ScummVM;
+				PROVISIONING_PROFILE = "";
+				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				WRAPPER_EXTENSION = app;
+			};
+			name = Release;
+		};
+		C01FCF4F08A954540054247B /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = "$(NATIVE_ARCH_ACTUAL)";
+				CODE_SIGN_IDENTITY = "Don't Code Sign";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Don't Code Sign";
+				FRAMEWORK_SEARCH_PATHS = "";
+				GCC_C_LANGUAGE_STANDARD = c99;
+				GCC_ENABLE_CPP_EXCEPTIONS = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_INPUT_FILETYPE = automatic;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = "";
 				GCC_THUMB_SUPPORT = NO;
 				GCC_USE_GCC3_PFE_SUPPORT = NO;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
@@ -10980,16 +11620,15 @@
 					../../engines/,
 					../../,
 				);
+				IPHONEOS_DEPLOYMENT_TARGET = 3.0;
 				LIBRARY_SEARCH_PATHS = "";
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_CFLAGS = "";
 				OTHER_LDFLAGS = "-lz";
 				PREBINDING = NO;
-				PROVISIONING_PROFILE = "";
-				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
-				SDKROOT = iphoneos4.0;
+				SDKROOT = "";
 				TARGETED_DEVICE_FAMILY = "1,2";
-				VALID_ARCHS = "i386 ppc ppc64 ppc7400 ppc970 x86_64 armv6 armv7";
+				VALID_ARCHS = "i386 ppc ppc64 x86_64 armv6 armv7";
 			};
 			name = Debug;
 		};
@@ -10997,91 +11636,39 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
-				CODE_SIGN_IDENTITY = "iPhone Developer";
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				ARCHS = "$(NATIVE_ARCH_ACTUAL)";
+				CODE_SIGN_IDENTITY = "Don't Code Sign";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Don't Code Sign";
 				FRAMEWORK_SEARCH_PATHS = "";
 				GCC_C_LANGUAGE_STANDARD = c99;
 				GCC_ENABLE_CPP_EXCEPTIONS = NO;
 				GCC_ENABLE_CPP_RTTI = NO;
 				GCC_ENABLE_EXCEPTIONS = NO;
 				GCC_INPUT_FILETYPE = automatic;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					CONFIG_H,
-					IPHONE_OFFICIAL,
-					IPHONE,
-					UNIX,
-					SCUMM_LITTLE_ENDIAN,
-					SCUMM_NEED_ALIGNMENT,
-					ENABLE_SCUMM,
-					ENABLE_SCUMM_7_8,
-					ENABLE_HE,
-					ENABLE_AGI,
-					ENABLE_AGOS,
-					ENABLE_CINE,
-					ENABLE_CRUISE,
-					ENABLE_DRASCULA,
-					ENABLE_GOB,
-					ENABLE_GROOVIE,
-					ENABLE_IGOR,
-					ENABLE_KYRA,
-					ENABLE_LURE,
-					ENABLE_MADE,
-					ENABLE_PARALLACTION,
-					ENABLE_QUEEN,
-					ENABLE_SAGA,
-					ENABLE_IHNM,
-					ENABLE_SCI,
-					ENABLE_SKY,
-					ENABLE_SWORD1,
-					ENABLE_SWORD2,
-					ENABLE_TEENAGENT,
-					ENABLE_TINSEL,
-					ENABLE_TOUCHE,
-					ENABLE_TUCKER,
-					USE_FLAC,
-					USE_MAD,
-					USE_TREMOR,
-					USE_VORBIS,
-					USE_ZLIB,
-				);
+				GCC_PREPROCESSOR_DEFINITIONS = "";
 				GCC_THUMB_SUPPORT = NO;
 				GCC_USE_GCC3_PFE_SUPPORT = NO;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 				HEADER_SEARCH_PATHS = (
-					/opt/local/include/SDL,
-					/opt/local/include,
-					/sw/include/SDL,
-					/sw/include,
 					../../engines/,
 					../../,
 				);
+				IPHONEOS_DEPLOYMENT_TARGET = 3.0;
 				LIBRARY_SEARCH_PATHS = "";
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = (
-					"-lSDLmain",
-					"-logg",
-					"-lvorbisfile",
-					"-lvorbis",
-					"-lmad",
-					"-lFLAC",
-					"-lSDL",
-					"-lz",
-				);
+				OTHER_LDFLAGS = "";
 				PREBINDING = NO;
-				PROVISIONING_PROFILE = "";
-				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
-				SDKROOT = iphonesimulator3.2;
+				SDKROOT = "";
 				TARGETED_DEVICE_FAMILY = "1,2";
-				VALID_ARCHS = "i386 ppc ppc64 ppc7400 ppc970 x86_64 armv6 armv7";
+				VALID_ARCHS = "i386 ppc ppc64 x86_64 armv6 armv7";
 			};
 			name = Release;
 		};
 		DF0942280F63CB26002D821E /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				ARCHS = "$(NATIVE_ARCH_ACTUAL)";
+				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
 				COMPRESS_PNG_FILES = NO;
 				COPY_PHASE_STRIP = NO;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
@@ -11127,7 +11714,6 @@
 					USE_FLAC,
 					USE_MAD,
 					USE_MPEG2,
-					USE_TREMOR,
 					USE_VORBIS,
 					USE_ZLIB,
 				);
@@ -11137,7 +11723,6 @@
 					/opt/local/include,
 					/sw/include/SDL,
 					/sw/include,
-					include/,
 					../../engines/,
 					../../,
 				);
@@ -11147,7 +11732,8 @@
 					/opt/local/lib,
 					"$(inherited)",
 				);
-				ONLY_ACTIVE_ARCH = NO;
+				MACOSX_DEPLOYMENT_TARGET = 10.4;
+				ONLY_ACTIVE_ARCH = YES;
 				OTHER_CFLAGS = "";
 				OTHER_LDFLAGS = (
 					"-lSDLmain",
@@ -11161,15 +11747,15 @@
 				);
 				PREBINDING = NO;
 				PRODUCT_NAME = ScummVM;
-				SDKROOT = macosx10.6;
-				VALID_ARCHS = "i386 ppc ppc64 ppc7400 ppc970 x86_64";
+				SDKROOT = macosx10.5;
+				VALID_ARCHS = "i386 ppc ppc64 x86_64";
 			};
 			name = Debug;
 		};
 		DF0942290F63CB26002D821E /* Release */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				ARCHS = "$(NATIVE_ARCH_ACTUAL)";
+				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
 				COMPRESS_PNG_FILES = NO;
 				COPY_PHASE_STRIP = YES;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
@@ -11213,7 +11799,6 @@
 					USE_FLAC,
 					USE_MAD,
 					USE_MPEG2,
-					USE_TREMOR,
 					USE_VORBIS,
 					USE_ZLIB,
 				);
@@ -11232,7 +11817,8 @@
 					/opt/local/lib,
 					"$(inherited)",
 				);
-				ONLY_ACTIVE_ARCH = NO;
+				MACOSX_DEPLOYMENT_TARGET = 10.4;
+				ONLY_ACTIVE_ARCH = YES;
 				OTHER_CFLAGS = "";
 				OTHER_LDFLAGS = (
 					"-lSDLmain",
@@ -11246,8 +11832,8 @@
 				);
 				PREBINDING = NO;
 				PRODUCT_NAME = ScummVM;
-				SDKROOT = macosx10.6;
-				VALID_ARCHS = "i386 ppc ppc64 ppc7400 ppc970 x86_64";
+				SDKROOT = macosx10.5;
+				VALID_ARCHS = "i386 ppc ppc64 x86_64";
 				WRAPPER_EXTENSION = app;
 			};
 			name = Release;
@@ -11255,6 +11841,7 @@
 		DFF95CC80FB22D5700A3EC78 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				COMPRESS_PNG_FILES = NO;
@@ -11283,6 +11870,7 @@
 					/opt/local/lib,
 					"$(inherited)",
 				);
+				ONLY_ACTIVE_ARCH = NO;
 				OTHER_LDFLAGS = (
 					"-lSDLmain",
 					"-logg",
@@ -11297,13 +11885,15 @@
 				PRODUCT_NAME = ScummVM;
 				PROVISIONING_PROFILE = "EF590570-5FAC-4346-9071-D609DE2B28D8";
 				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
-				SDKROOT = iphonesimulator3.2;
+				SDKROOT = iphoneos;
+				VALID_ARCHS = "i386 x86_64";
 			};
 			name = Debug;
 		};
 		DFF95CC90FB22D5700A3EC78 /* Release */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				COMPRESS_PNG_FILES = NO;
@@ -11331,6 +11921,7 @@
 					/opt/local/lib,
 					"$(inherited)",
 				);
+				ONLY_ACTIVE_ARCH = NO;
 				OTHER_LDFLAGS = (
 					"-lSDLmain",
 					"-logg",
@@ -11345,7 +11936,8 @@
 				PRODUCT_NAME = ScummVM;
 				PROVISIONING_PROFILE = "EF590570-5FAC-4346-9071-D609DE2B28D8";
 				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
-				SDKROOT = iphonesimulator3.2;
+				SDKROOT = iphoneos;
+				VALID_ARCHS = "i386 x86_64";
 				WRAPPER_EXTENSION = app;
 			};
 			name = Release;


Commit: a2bb8a02ba6529c0299c2e955a4b81b2df67bd5d
    https://github.com/scummvm/scummvm/commit/a2bb8a02ba6529c0299c2e955a4b81b2df67bd5d
Author: Oystein Eftevaag (oystein at geheb.com)
Date: 2011-06-04T20:34:12-07:00

Commit Message:
IPHONE: Fixed a COMI crash and some minor gfx glitches

Changed paths:
    backends/platform/iphone/iphone_video.h
    backends/platform/iphone/iphone_video.m
    backends/platform/iphone/osys_video.cpp



diff --git a/backends/platform/iphone/iphone_video.h b/backends/platform/iphone/iphone_video.h
index aed15ec..45d0ccb 100644
--- a/backends/platform/iphone/iphone_video.h
+++ b/backends/platform/iphone/iphone_video.h
@@ -70,6 +70,7 @@
 - (void)updateMainSurface;
 - (void)updateOverlaySurface;
 - (void)updateMouseSurface;
+- (void)clearColorBuffer;
 
 -(void)updateMouseCursor;
 
diff --git a/backends/platform/iphone/iphone_video.m b/backends/platform/iphone/iphone_video.m
index 4fdb820..59be306 100644
--- a/backends/platform/iphone/iphone_video.m
+++ b/backends/platform/iphone/iphone_video.m
@@ -88,6 +88,8 @@ void iPhone_setMouseCursor(short* buffer, int width, int height) {
 
 void iPhone_enableOverlay(int state) {
 	_overlayIsEnabled = state;
+
+	[sharedInstance performSelectorOnMainThread:@selector(clearColorBuffer) withObject:nil waitUntilDone: YES];
 }
 
 int iPhone_getScreenHeight() {
@@ -481,12 +483,7 @@ bool getLocalMouseCoords(CGPoint *point) {
 
 	glBindRenderbufferOES(GL_RENDERBUFFER_OES, _viewRenderbuffer); printOpenGLError();
 
-	// The color buffer is triple-buffered, so we clear it multiple times right away to avid doing any glClears later.
-	int clearCount = 5;
-	while (clearCount-- > 0) {
-		glClear(GL_COLOR_BUFFER_BIT); printOpenGLError();
-		[_context presentRenderbuffer:GL_RENDERBUFFER_OES];
-	}
+	[self clearColorBuffer];
 
 	if (_keyboardView != nil) {
 		[_keyboardView removeFromSuperview];
@@ -538,6 +535,15 @@ bool getLocalMouseCoords(CGPoint *point) {
 	}
 }
 
+- (void)clearColorBuffer {
+	// The color buffer is triple-buffered, so we clear it multiple times right away to avid doing any glClears later.
+	int clearCount = 5;
+	while (clearCount-- > 0) {
+		glClear(GL_COLOR_BUFFER_BIT); printOpenGLError();
+		[_context presentRenderbuffer:GL_RENDERBUFFER_OES];
+	}
+}
+
 - (id)getEvent {
 	if (_events == nil || [_events count] == 0) {
 		return nil;
diff --git a/backends/platform/iphone/osys_video.cpp b/backends/platform/iphone/osys_video.cpp
index c5e7ab8..9677148 100644
--- a/backends/platform/iphone/osys_video.cpp
+++ b/backends/platform/iphone/osys_video.cpp
@@ -352,6 +352,7 @@ void OSystem_IPHONE::showOverlay() {
 	//printf("showOverlay()\n");
 	_overlayVisible = true;
 	dirtyFullOverlayScreen();
+	updateScreen();
 	iPhone_enableOverlay(true);
 }
 
@@ -371,7 +372,7 @@ void OSystem_IPHONE::clearOverlay() {
 
 void OSystem_IPHONE::grabOverlay(OverlayColor *buf, int pitch) {
 	//printf("grabOverlay()\n");
-	int h = _screenHeight;
+	int h = _overlayHeight;
 	OverlayColor *src = _overlayBuffer;
 
 	do {


Commit: c831c7243d34e61d234ea622bea0e81f6ae5cf7a
    https://github.com/scummvm/scummvm/commit/c831c7243d34e61d234ea622bea0e81f6ae5cf7a
Author: D G Turner (digitall at scummvm.org)
Date: 2011-06-07T19:24:47-07:00

Commit Message:
AGI: Fix Broken Predictive Text Input.

This was a regression introduced by
4b2f92b5e56a1fc273c8c8d2e69b747f938ea92f (r55135)

Changed paths:
    engines/agi/predictive.cpp



diff --git a/engines/agi/predictive.cpp b/engines/agi/predictive.cpp
index 96ad78a..3600e26 100644
--- a/engines/agi/predictive.cpp
+++ b/engines/agi/predictive.cpp
@@ -576,8 +576,10 @@ bool AgiEngine::matchWord() {
 			hi = line - 1;
 		else if (cmpVal < 0)
 			lo = line + 1;
-		else
+		else {
 			hi = line;
+			break;
+		}
 	}
 
 	_currentWord.clear();


Commit: 1e41c47cfe119694d6204d1f16b21b101662c80f
    https://github.com/scummvm/scummvm/commit/1e41c47cfe119694d6204d1f16b21b101662c80f
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-06-10T12:36:29-07:00

Commit Message:
COMMON: Add (another) Eclipse project file to .gitignore

Changed paths:
    .gitignore



diff --git a/.gitignore b/.gitignore
index bff5ead..8c7ce33 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,6 +23,10 @@ lib*.a
 /.project
 /.cproject
 /.settings
+/.autotools
+/Icon.*
+
+/build
 
 /backends/platform/dc/gui
 /backends/platform/dc/graphics


Commit: be5b4fad02d73b5c3840fb42726335050c38bf16
    https://github.com/scummvm/scummvm/commit/be5b4fad02d73b5c3840fb42726335050c38bf16
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-06-10T12:37:10-07:00

Commit Message:
SCALERS: Fix for compiling for ARM without using ASM scalers

Changed paths:
    graphics/scaler/downscaler.cpp



diff --git a/graphics/scaler/downscaler.cpp b/graphics/scaler/downscaler.cpp
index 3aad416..1bfc717 100644
--- a/graphics/scaler/downscaler.cpp
+++ b/graphics/scaler/downscaler.cpp
@@ -25,7 +25,7 @@
 #include "graphics/scaler/downscaler.h"
 #include "graphics/scaler/intern.h"
 
-#ifdef ARM
+#ifdef USE_ARM_SCALER_ASM
 extern "C" {
 	void DownscaleAllByHalfARM(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height, int mask, int round);
 }


Commit: 1dd8d1eb1ef53d16e47faf4d141a3e67bc13ce59
    https://github.com/scummvm/scummvm/commit/1dd8d1eb1ef53d16e47faf4d141a3e67bc13ce59
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2011-06-10T12:37:26-07:00

Commit Message:
ARM: Fix normal2x scaler for width % 4 != 0

The first jump to 'thin:' didn't leave r14 (remaining width)
in the right state.

Changed paths:
    graphics/scaler/Normal2xARM.s



diff --git a/graphics/scaler/Normal2xARM.s b/graphics/scaler/Normal2xARM.s
index e75d917..ff02130 100644
--- a/graphics/scaler/Normal2xARM.s
+++ b/graphics/scaler/Normal2xARM.s
@@ -47,6 +47,7 @@ Normal2xARM:
 	ADD	r3, r3, r6
 yloop:
 	SUBS	r14,r4, #4
+	ADDLT	r14,r14, #4
 	BLT	thin
 xloop:
 	LDRH	r6, [r0], #2


Commit: 05025987cb614b274e08e4eca78dd2d2a6aee1c1
    https://github.com/scummvm/scummvm/commit/05025987cb614b274e08e4eca78dd2d2a6aee1c1
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-06-10T13:50:42-07:00

Commit Message:
WINCE: Fix mouse coordinate scaling when ARM scaler support is active

Changed paths:
    backends/graphics/wincesdl/wincesdl-graphics.cpp



diff --git a/backends/graphics/wincesdl/wincesdl-graphics.cpp b/backends/graphics/wincesdl/wincesdl-graphics.cpp
index b15f86e..5b8e157 100644
--- a/backends/graphics/wincesdl/wincesdl-graphics.cpp
+++ b/backends/graphics/wincesdl/wincesdl-graphics.cpp
@@ -1163,16 +1163,16 @@ void WINCESdlGraphicsManager::adjustMouseEvent(const Common::Event &event) {
 	if (!event.synthetic) {
 		Common::Event newEvent(event);
 		newEvent.synthetic = true;
+		/*
 		if (!_overlayVisible) {
-			/*
 			newEvent.mouse.x = newEvent.mouse.x * _scaleFactorXd / _scaleFactorXm;
 			newEvent.mouse.y = newEvent.mouse.y * _scaleFactorYd / _scaleFactorYm;
 			newEvent.mouse.x /= _videoMode.scaleFactor;
 			newEvent.mouse.y /= _videoMode.scaleFactor;
-			*/
 			if (_videoMode.aspectRatioCorrection)
 				newEvent.mouse.y = aspect2Real(newEvent.mouse.y);
 		}
+		*/
 		g_system->getEventManager()->pushEvent(newEvent);
 	}
 }


Commit: 42f8f397f537a29bba7965cb9e4d63a27c723b0d
    https://github.com/scummvm/scummvm/commit/42f8f397f537a29bba7965cb9e4d63a27c723b0d
Author: David-John Willis (John.Willis at Distant-earth.com)
Date: 2011-06-11T09:15:26-07:00

Commit Message:
OPENPANDORA: Use the SDL plugin provider not the main POSIX one.

Changed paths:
    backends/platform/openpandora/op-main.cpp



diff --git a/backends/platform/openpandora/op-main.cpp b/backends/platform/openpandora/op-main.cpp
index ab777fe..fae8426 100644
--- a/backends/platform/openpandora/op-main.cpp
+++ b/backends/platform/openpandora/op-main.cpp
@@ -23,7 +23,7 @@
 
 #include "backends/platform/sdl/sdl-sys.h"
 #include "backends/platform/openpandora/op-sdl.h"
-#include "backends/plugins/posix/posix-provider.h"
+#include "backends/plugins/sdl/sdl-provider.h"
 #include "base/main.h"
 
 #if defined(OPENPANDORA)
@@ -38,7 +38,7 @@ int main(int argc, char *argv[]) {
 	//((OSystem_OP *)g_system)->init();
 
 #ifdef DYNAMIC_MODULES
-	PluginManager::instance().addPluginProvider(new POSIXPluginProvider());
+	PluginManager::instance().addPluginProvider(new SDLPluginProvider());
 #endif
 
 	// Invoke the actual ScummVM main entry point:


Commit: 60bc0c84df05f134ab728910524b15cc25fcdae7
    https://github.com/scummvm/scummvm/commit/60bc0c84df05f134ab728910524b15cc25fcdae7
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-06-11T14:26:51-07:00

Commit Message:
WINCE: Some cleanup (public vs. private scopes), fix freelook

Changed paths:
    backends/events/wincesdl/wincesdl-events.cpp
    backends/events/wincesdl/wincesdl-events.h
    backends/graphics/wincesdl/wincesdl-graphics.cpp
    backends/graphics/wincesdl/wincesdl-graphics.h
    backends/platform/wince/CEActionsPocket.cpp
    backends/platform/wince/CEActionsPocket.h
    backends/platform/wince/CEActionsSmartphone.cpp
    backends/platform/wince/CEActionsSmartphone.h
    backends/platform/wince/wince-sdl.cpp



diff --git a/backends/events/wincesdl/wincesdl-events.cpp b/backends/events/wincesdl/wincesdl-events.cpp
index 2505b0f..8d065ef 100644
--- a/backends/events/wincesdl/wincesdl-events.cpp
+++ b/backends/events/wincesdl/wincesdl-events.cpp
@@ -38,7 +38,7 @@
 
 WINCESdlEventSource::WINCESdlEventSource()
 	: _tapTime(0), _closeClick(false), _rbutton(false),
-	  _freeLook(false), _graphicsMan(0) {
+	  _graphicsMan(0) {
 }
 
 void WINCESdlEventSource::init(WINCESdlGraphicsManager *graphicsMan) {
@@ -67,6 +67,7 @@ bool WINCESdlEventSource::pollEvent(Common::Event &event) {
 	ev.type = SDL_NOEVENT;
 	DWORD currentTime;
 	bool keyEvent = false;
+	bool freeLookActive = _graphicsMan->getFreeLookState();
 	int deltaX, deltaY;
 
 	memset(&event, 0, sizeof(Common::Event));
@@ -202,7 +203,7 @@ bool WINCESdlEventSource::pollEvent(Common::Event &event) {
 				}
 			}
 
-			if (_freeLook && !_closeClick) {
+			if (freeLookActive && !_closeClick) {
 				_rbutton = false;
 				_tapTime = 0;
 				_tapX = event.mouse.x;
@@ -244,7 +245,7 @@ bool WINCESdlEventSource::pollEvent(Common::Event &event) {
 
 			fillMouseEvent(event, ev.button.x, ev.button.y);
 
-			if (_freeLook && !_closeClick) {
+			if (freeLookActive && !_closeClick) {
 				_tapX = event.mouse.x;
 				_tapY = event.mouse.y;
 				event.type = Common::EVENT_MOUSEMOVE;
@@ -325,8 +326,4 @@ int WINCESdlEventSource::mapKeyCE(SDLKey key, SDLMod mod, Uint16 unicode, bool u
 	return key;
 }
 
-void WINCESdlEventSource::swap_freeLook() {
-	_freeLook = !_freeLook;
-}
-
 #endif /* _WIN32_WCE */
diff --git a/backends/events/wincesdl/wincesdl-events.h b/backends/events/wincesdl/wincesdl-events.h
index f5b1026..9e020e6 100644
--- a/backends/events/wincesdl/wincesdl-events.h
+++ b/backends/events/wincesdl/wincesdl-events.h
@@ -48,8 +48,6 @@ public:
 	// Overloaded from SDL backend (mouse and new scaler handling)
 	void fillMouseEvent(Common::Event &event, int x, int y);
 
-	void swap_freeLook();
-
 protected:
 
 private:
@@ -64,8 +62,6 @@ private:
 
 	bool _closeClick;           // flag when taps are spatially close together
 	bool _rbutton;              // double tap -> right button simulation
-	bool _freeLook;             // freeLook mode (do not send mouse button events)
-
 };
 
 #endif
diff --git a/backends/graphics/wincesdl/wincesdl-graphics.cpp b/backends/graphics/wincesdl/wincesdl-graphics.cpp
index 5b8e157..cbee396 100644
--- a/backends/graphics/wincesdl/wincesdl-graphics.cpp
+++ b/backends/graphics/wincesdl/wincesdl-graphics.cpp
@@ -52,8 +52,8 @@ WINCESdlGraphicsManager::WINCESdlGraphicsManager(SdlEventSource *sdlEventSource)
 	  _panelVisible(true), _saveActiveToolbar(NAME_MAIN_PANEL), _panelStateForced(false),
 	  _canBeAspectScaled(false), _scalersChanged(false), _saveToolbarState(false),
 	  _mouseBackupOld(NULL), _mouseBackupDim(0), _mouseBackupToolbar(NULL),
-	  _usesEmulatedMouse(false), _forceHideMouse(false), _hasfocus(true),
-	  _zoomUp(false), _zoomDown(false) {
+	  _usesEmulatedMouse(false), _forceHideMouse(false), _freeLook(false),
+	  _hasfocus(true), _zoomUp(false), _zoomDown(false) {
 	memset(&_mouseCurState, 0, sizeof(_mouseCurState));
 	if (_isSmartphone) {
 		_mouseCurState.x = 20;
@@ -447,7 +447,6 @@ void WINCESdlGraphicsManager::update_game_settings() {
 		// Skip
 		panel->add(NAME_ITEM_SKIP, new CEGUI::ItemAction(ITEM_SKIP, POCKET_ACTION_SKIP));
 		// sound
-//__XXX__       panel->add(NAME_ITEM_SOUND, new CEGUI::ItemSwitch(ITEM_SOUND_OFF, ITEM_SOUND_ON, &_soundMaster));
 		panel->add(NAME_ITEM_SOUND, new CEGUI::ItemSwitch(ITEM_SOUND_OFF, ITEM_SOUND_ON, &OSystem_WINCE3::_soundMaster));
 
 		// bind keys
@@ -1630,6 +1629,14 @@ void WINCESdlGraphicsManager::create_toolbar() {
 	_toolbarHandler.setVisible(false);
 }
 
+void WINCESdlGraphicsManager::swap_freeLook() {
+	_freeLook = !_freeLook;
+}
+
+bool WINCESdlGraphicsManager::getFreeLookState() {
+	return _freeLook;
+}
+
 WINCESdlGraphicsManager::zoneDesc WINCESdlGraphicsManager::_zones[TOTAL_ZONES] = {
 	{ 0, 0, 320, 145 },
 	{ 0, 145, 150, 55 },
diff --git a/backends/graphics/wincesdl/wincesdl-graphics.h b/backends/graphics/wincesdl/wincesdl-graphics.h
index c8d683b..350255a 100644
--- a/backends/graphics/wincesdl/wincesdl-graphics.h
+++ b/backends/graphics/wincesdl/wincesdl-graphics.h
@@ -59,6 +59,8 @@ public:
 	void unloadGFXMode();
 	bool hotswapGFXMode();
 
+	void update_game_settings();
+
 	// Overloaded from SDL backend (toolbar handling)
 	void drawMouse();
 	// Overloaded from SDL backend (new scaler handling)
@@ -91,7 +93,8 @@ public:
 	void swap_zoom_up();
 	void swap_zoom_down();
 	void swap_mouse_visibility();
-
+	void swap_freeLook();
+	bool getFreeLookState();
 
 //#ifdef WIN32_PLATFORM_WFSP
 	void move_cursor_up();
@@ -99,7 +102,6 @@ public:
 	void move_cursor_left();
 	void move_cursor_right();
 
-	void retrieve_mouse_location(int &x, int &y);
 	void switch_zone();
 
 	void add_right_click(bool pushed);
@@ -109,6 +111,11 @@ public:
 	void smartphone_rotate_display();
 //#endif
 
+	bool hasPocketPCResolution();
+	bool hasDesktopResolution();
+	bool hasSquareQVGAResolution();
+	bool hasWideResolution() const;
+
 	bool _panelInitialized; // only initialize the toolbar once
 	bool _noDoubleTapRMB;   // disable double tap -> rmb click
 
@@ -125,11 +132,6 @@ public:
 
 	bool _hasfocus;         // scummvm has the top window
 
-	bool hasPocketPCResolution();
-	bool hasDesktopResolution();
-	bool hasSquareQVGAResolution();
-	bool hasWideResolution() const;
-
 	MousePos _mouseCurState;
 
 	bool _zoomUp;           // zooming up mode
@@ -161,8 +163,8 @@ protected:
 
 private:
 	bool update_scalers();
-	void update_game_settings();
 	void drawToolbarMouse(SDL_Surface *surf, bool draw);
+	void retrieve_mouse_location(int &x, int &y);
 
 	void create_toolbar();
 	bool _panelVisible;         // panel visibility
@@ -189,6 +191,7 @@ private:
 	uint16 _mouseBackupDim;
 
 	bool _forceHideMouse;       // force invisible mouse cursor
+	bool _freeLook;             // freeLook mode (do not send mouse button events)
 
 	// Smartphone specific variables
 	void loadDeviceConfigurationElement(Common::String element, int &value, int defaultValue);
diff --git a/backends/platform/wince/CEActionsPocket.cpp b/backends/platform/wince/CEActionsPocket.cpp
index 3895c7d..b58913e 100644
--- a/backends/platform/wince/CEActionsPocket.cpp
+++ b/backends/platform/wince/CEActionsPocket.cpp
@@ -236,15 +236,15 @@ CEActionsPocket::~CEActionsPocket() {
 bool CEActionsPocket::perform(GUI::ActionType action, bool pushed) {
 	static bool keydialogrunning = false, quitdialog = false;
 
+	_graphicsMan = ((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager());
+
 	if (!pushed) {
 		switch (action) {
 		case POCKET_ACTION_RIGHTCLICK:
-			//_CESystem->add_right_click(false);
-			((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->add_right_click(false);
+			_graphicsMan->add_right_click(false);
 			return true;
 		case POCKET_ACTION_LEFTCLICK:
-			//_CESystem->add_left_click(false);
-			((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->add_left_click(false);
+			_graphicsMan->add_left_click(false);
 			return true;
 		case POCKET_ACTION_PAUSE:
 		case POCKET_ACTION_SAVE:
@@ -252,7 +252,6 @@ bool CEActionsPocket::perform(GUI::ActionType action, bool pushed) {
 		case POCKET_ACTION_MULTI:
 			EventsBuffer::simulateKey(&_key_action[action], false);
 			return true;
-
 		}
 		return false;
 	}
@@ -274,55 +273,43 @@ bool CEActionsPocket::perform(GUI::ActionType action, bool pushed) {
 		EventsBuffer::simulateKey(&_key_action[action], true);
 		return true;
 	case POCKET_ACTION_KEYBOARD:
-		//_CESystem->swap_panel();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->swap_panel();
+		_graphicsMan->swap_panel();
 		return true;
 	case POCKET_ACTION_HIDE:
-		//_CESystem->swap_panel_visibility();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->swap_panel_visibility();
+		_graphicsMan->swap_panel_visibility();
 		return true;
 	case POCKET_ACTION_SOUND:
 		_CESystem->swap_sound_master();
 		return true;
 	case POCKET_ACTION_RIGHTCLICK:
-		//_CESystem->add_right_click(true);
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->add_right_click(true);
+		_graphicsMan->add_right_click(true);
 		return true;
 	case POCKET_ACTION_CURSOR:
-		//_CESystem->swap_mouse_visibility();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->swap_mouse_visibility();
+		_graphicsMan->swap_mouse_visibility();
 		return true;
 	case POCKET_ACTION_FREELOOK:
-		//_CESystem->swap_freeLook();
-		((WINCESdlEventSource *)((OSystem_SDL *)g_system)->getEventManager())->swap_freeLook();
+		_graphicsMan->swap_freeLook();
 		return true;
 	case POCKET_ACTION_ZOOM_UP:
-		//_CESystem->swap_zoom_up();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->swap_zoom_up();
+		_graphicsMan->swap_zoom_up();
 		return true;
 	case POCKET_ACTION_ZOOM_DOWN:
-		//_CESystem->swap_zoom_down();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->swap_zoom_down();
+		_graphicsMan->swap_zoom_down();
 		return true;
 	case POCKET_ACTION_LEFTCLICK:
-		//_CESystem->add_left_click(true);
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->add_left_click(true);
+		_graphicsMan->add_left_click(true);
 		return true;
 	case POCKET_ACTION_UP:
-		//_CESystem->move_cursor_up();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->move_cursor_up();
+		_graphicsMan->move_cursor_up();
 		return true;
 	case POCKET_ACTION_DOWN:
-		//_CESystem->move_cursor_down();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->move_cursor_down();
+		_graphicsMan->move_cursor_down();
 		return true;
 	case POCKET_ACTION_LEFT:
-		//_CESystem->move_cursor_left();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->move_cursor_left();
+		_graphicsMan->move_cursor_left();
 		return true;
 	case POCKET_ACTION_RIGHT:
-		//_CESystem->move_cursor_right();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->move_cursor_right();
+		_graphicsMan->move_cursor_right();
 		return true;
 	case POCKET_ACTION_QUIT:
 		if (!quitdialog) {
diff --git a/backends/platform/wince/CEActionsPocket.h b/backends/platform/wince/CEActionsPocket.h
index 72a2064..3cd2f9e 100644
--- a/backends/platform/wince/CEActionsPocket.h
+++ b/backends/platform/wince/CEActionsPocket.h
@@ -31,6 +31,7 @@
 #include "common/str.h"
 #include "gui/Key.h"
 #include "gui/Actions.h"
+#include "backends/graphics/wincesdl/wincesdl-graphics.h"
 
 #define POCKET_ACTION_VERSION 5
 
@@ -83,6 +84,7 @@ public:
 	~CEActionsPocket();
 private:
 	CEActionsPocket(const Common::String &gameid);
+	WINCESdlGraphicsManager *_graphicsMan;
 	bool _right_click_needed;
 	bool _hide_toolbar_needed;
 	bool _zoom_needed;
diff --git a/backends/platform/wince/CEActionsSmartphone.cpp b/backends/platform/wince/CEActionsSmartphone.cpp
index 413c52a..46e6a91 100644
--- a/backends/platform/wince/CEActionsSmartphone.cpp
+++ b/backends/platform/wince/CEActionsSmartphone.cpp
@@ -202,15 +202,15 @@ CEActionsSmartphone::~CEActionsSmartphone() {
 bool CEActionsSmartphone::perform(GUI::ActionType action, bool pushed) {
 	static bool keydialogrunning = false, quitdialog = false;
 
+	_graphicsMan = ((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager());
+
 	if (!pushed) {
 		switch (action) {
 		case SMARTPHONE_ACTION_RIGHTCLICK:
-			//_CESystem->add_right_click(false);
-			((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->add_right_click(false);
+			_graphicsMan->add_right_click(false);
 			return true;
 		case SMARTPHONE_ACTION_LEFTCLICK:
-			//_CESystem->add_left_click(false);
-			((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->add_left_click(false);
+			_graphicsMan->add_left_click(false);
 			return true;
 		case SMARTPHONE_ACTION_SAVE:
 		case SMARTPHONE_ACTION_SKIP:
@@ -237,32 +237,25 @@ bool CEActionsSmartphone::perform(GUI::ActionType action, bool pushed) {
 		EventsBuffer::simulateKey(&_key_action[action], true);
 		return true;
 	case SMARTPHONE_ACTION_RIGHTCLICK:
-		//_CESystem->add_right_click(true);
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->add_right_click(true);
+		_graphicsMan->add_right_click(true);
 		return true;
 	case SMARTPHONE_ACTION_LEFTCLICK:
-		//_CESystem->add_left_click(true);
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->add_left_click(true);
+		_graphicsMan->add_left_click(true);
 		return true;
 	case SMARTPHONE_ACTION_UP:
-		//_CESystem->move_cursor_up();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->move_cursor_up();
+		_graphicsMan->move_cursor_up();
 		return true;
 	case SMARTPHONE_ACTION_DOWN:
-		//_CESystem->move_cursor_down();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->move_cursor_down();
+		_graphicsMan->move_cursor_down();
 		return true;
 	case SMARTPHONE_ACTION_LEFT:
-		//_CESystem->move_cursor_left();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->move_cursor_left();
+		_graphicsMan->move_cursor_left();
 		return true;
 	case SMARTPHONE_ACTION_RIGHT:
-		//_CESystem->move_cursor_right();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->move_cursor_right();
+		_graphicsMan->move_cursor_right();
 		return true;
 	case SMARTPHONE_ACTION_ZONE:
-		//_CESystem->switch_zone();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->switch_zone();
+		_graphicsMan->switch_zone();
 		return true;
 	case SMARTPHONE_ACTION_BINDKEYS:
 		if (!keydialogrunning) {
@@ -274,12 +267,10 @@ bool CEActionsSmartphone::perform(GUI::ActionType action, bool pushed) {
 		}
 		return true;
 	case SMARTPHONE_ACTION_KEYBOARD:
-		//_CESystem->swap_smartphone_keyboard();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->swap_smartphone_keyboard();
+		_graphicsMan->swap_smartphone_keyboard();
 		return true;
 	case SMARTPHONE_ACTION_ROTATE:
-		//_CESystem->smartphone_rotate_display();
-		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->smartphone_rotate_display();
+		_graphicsMan->smartphone_rotate_display();
 		return true;
 	case SMARTPHONE_ACTION_QUIT:
 		if (!quitdialog) {
diff --git a/backends/platform/wince/CEActionsSmartphone.h b/backends/platform/wince/CEActionsSmartphone.h
index 29156bb..8a71315 100644
--- a/backends/platform/wince/CEActionsSmartphone.h
+++ b/backends/platform/wince/CEActionsSmartphone.h
@@ -31,6 +31,7 @@
 #include "common/str.h"
 #include "gui/Key.h"
 #include "gui/Actions.h"
+#include "backends/graphics/wincesdl/wincesdl-graphics.h"
 
 #define SMARTPHONE_ACTION_VERSION 5
 
@@ -71,6 +72,7 @@ public:
 	~CEActionsSmartphone();
 private:
 	CEActionsSmartphone();
+	WINCESdlGraphicsManager *_graphicsMan;
 	bool _right_click_needed;
 	OSystem_WINCE3 *_CESystem;
 };
diff --git a/backends/platform/wince/wince-sdl.cpp b/backends/platform/wince/wince-sdl.cpp
index b54aebe..e949cc3 100644
--- a/backends/platform/wince/wince-sdl.cpp
+++ b/backends/platform/wince/wince-sdl.cpp
@@ -466,7 +466,7 @@ void OSystem_WINCE3::swap_sound_master() {
 void OSystem_WINCE3::engineInit() {
 	check_mappings(); // called here to initialize virtual keys handling
 
-	//update_game_settings();
+	((WINCESdlGraphicsManager *)_graphicsManager)->update_game_settings();
 	// finalize mixer init
 	_mixerManager->init();
 }


Commit: 6e48fe2aa3f5b41b5d24879bce54562b5539871d
    https://github.com/scummvm/scummvm/commit/6e48fe2aa3f5b41b5d24879bce54562b5539871d
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-13T12:52:10-07:00

Commit Message:
SCUMM: possible fix for #3315631

While I can't reproduce that particular bug (no default music in INDY4 FM-TOWNS) with the release build, I have removed the MDT_TOWNS flags from the INDY4 and MONKEY2 detection entries, since the FM-TOWNS midi driver is not part of the 1.3.0 release anyway.

Changed paths:
    engines/scumm/detection_tables.h



diff --git a/engines/scumm/detection_tables.h b/engines/scumm/detection_tables.h
index 952abdb..ae315c1 100644
--- a/engines/scumm/detection_tables.h
+++ b/engines/scumm/detection_tables.h
@@ -245,11 +245,11 @@ static const GameSettings gameVariantsTable[] = {
 	{"monkey", "SEGA",         0, GID_MONKEY,     5, 0, MDT_NONE,                         GF_AUDIOTRACKS, Common::kPlatformSegaCD, GUIO_NOSPEECH | GUIO_NOMIDI},
 
 	{"monkey2",  "", 0, GID_MONKEY2,  5, 0, MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO_NOSPEECH},
-	{"monkey2", "FM-TOWNS", 0, GID_MONKEY2,  5, 0, MDT_TOWNS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, Common::kPlatformFMTowns, GUIO_NOSPEECH},
+	{"monkey2", "FM-TOWNS", 0, GID_MONKEY2,  5, 0, MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, Common::kPlatformFMTowns, GUIO_NOSPEECH},
 
 	{"atlantis", "", 0, GID_INDY4,    5, 0, MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO_NONE},
 	{"atlantis", "Floppy", 0, GID_INDY4,    5, 0, MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO_NOSPEECH},
-	{"atlantis", "FM-TOWNS", 0, GID_INDY4,    5, 0, MDT_TOWNS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, Common::kPlatformFMTowns, GUIO_NONE},
+	{"atlantis", "FM-TOWNS", 0, GID_INDY4,    5, 0, MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, Common::kPlatformFMTowns, GUIO_NONE},
 
 	{"tentacle", "", 0, GID_TENTACLE, 6, 0, MDT_ADLIB | MDT_MIDI | MDT_PREFER_GM, GF_USE_KEY, UNK, GUIO_NONE},
 	{"tentacle", "Floppy", 0, GID_TENTACLE, 6, 0, MDT_ADLIB | MDT_MIDI | MDT_PREFER_GM, GF_USE_KEY, UNK, GUIO_NOSPEECH},


Commit: 89affc920970b4c822ecead59ee30e5cd53234f8
    https://github.com/scummvm/scummvm/commit/89affc920970b4c822ecead59ee30e5cd53234f8
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-06-14T13:48:30-07:00

Commit Message:
WINCE: Add support for language auto-detection in WinCE

Changed paths:
    backends/platform/sdl/sdl.cpp
    backends/platform/wince/wince-sdl.cpp
    backends/platform/wince/wince-sdl.h
    configure



diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp
index 4694a06..0e135dc 100644
--- a/backends/platform/sdl/sdl.cpp
+++ b/backends/platform/sdl/sdl.cpp
@@ -314,7 +314,7 @@ void OSystem_SDL::logMessage(LogMessageType::Type type, const char *message) {
 }
 
 Common::String OSystem_SDL::getSystemLanguage() const {
-#ifdef USE_DETECTLANG
+#if defined(USE_DETECTLANG) && !defined(_WIN32_WCE)
 #ifdef WIN32
 	// We can not use "setlocale" (at least not for MSVC builds), since it
 	// will return locales like: "English_USA.1252", thus we need a special
diff --git a/backends/platform/wince/wince-sdl.cpp b/backends/platform/wince/wince-sdl.cpp
index e949cc3..78e4811 100644
--- a/backends/platform/wince/wince-sdl.cpp
+++ b/backends/platform/wince/wince-sdl.cpp
@@ -578,6 +578,73 @@ void OSystem_WINCE3::getTimeAndDate(TimeDate &t) const {
 	t.tm_sec    = systime.wSecond;
 }
 
+Common::String OSystem_WINCE3::getSystemLanguage() const {
+#ifdef USE_DETECTLANG
+	// We can not use "setlocale" (at least not for MSVC builds), since it
+	// will return locales like: "English_USA.1252", thus we need a special
+	// way to determine the locale string for Win32.
+	char langName[9];
+	char ctryName[9];
+	TCHAR langNameW[32];
+	TCHAR ctryNameW[32];
+	int i = 0;
+	bool localeFound = false;
+	Common::String localeName;
+
+	// Really not nice, but the only way to map Windows CE language/country codes to posix NLS names,
+	// because Windows CE doesn't support LOCALE_SISO639LANGNAME and LOCALE_SISO3166CTRYNAME,
+	// according to this: http://msdn.microsoft.com/en-us/library/aa912934.aspx
+	//
+	// See http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx for a translation table
+	// This table has to be updated manually when new translations are added
+	const char *posixMappingTable[][3] = {
+		{"CAT", "ESP", "ca_ES"},
+		{"CSY", "CZE", "cs_CZ"},
+		{"DAN", "DNK", "da_DA"},
+		{"DEU", "DEU", "de_DE"},
+		{"ESN", "ESP", "es_ES"},
+		{"ESP", "ESP", "es_ES"},
+		{"FRA", "FRA", "fr_FR"},
+		{"HUN", "HUN", "hu_HU"},
+		{"ITA", "ITA", "it_IT"},
+		{"NOR", "NOR", "nb_NO"},
+		{"NON", "NOR", "nn_NO"},
+		{"PLK", "POL", "pl_PL"},
+		{"PTB", "BRA", "pt_BR"},
+		{"RUS", "RUS", "ru_RU"},
+		{"SVE", "SWE", "se_SE"},
+		{"UKR", "UKR", "uk_UA"},
+		{NULL, NULL, NULL}
+	};
+
+	if (GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SABBREVLANGNAME, langNameW, sizeof(langNameW)) != 0 &&
+		GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SABBREVCTRYNAME, ctryNameW, sizeof(ctryNameW)) != 0) {
+		WideCharToMultiByte(CP_ACP, 0, langNameW, -1, langName, (wcslen(langNameW) + 1), NULL, NULL);
+		WideCharToMultiByte(CP_ACP, 0, ctryNameW, -1, ctryName, (wcslen(ctryNameW) + 1), NULL, NULL);
+		
+		debug(1, "Trying to find posix locale name for %s_%s", langName, ctryName);
+		while (posixMappingTable[i][0] && !localeFound) {
+			if ( (!strcmp(posixMappingTable[i][0], langName) || !strcmp(posixMappingTable[i][0], "*")) &&
+				 (!strcmp(posixMappingTable[i][1], ctryName) || !strcmp(posixMappingTable[i][0], "*")) ) {
+				localeFound = true;
+				localeName = posixMappingTable[i][2];
+			}
+			i++;
+		}
+		if (!localeFound) warning("No posix locale name found for %s_%s", langName, ctryName);
+	}
+
+	if (localeFound) {
+		debug(1, "Found posix locale name: %s", localeName.c_str());
+		return localeName;
+	} else {
+		return ModularBackend::getSystemLanguage();
+	}
+#else // USE_DETECTLANG
+	return ModularBackend::getSystemLanguage();
+#endif // USE_DETECTLANG
+}
+
 int OSystem_WINCE3::_platformScreenWidth;
 int OSystem_WINCE3::_platformScreenHeight;
 bool OSystem_WINCE3::_isOzone;
diff --git a/backends/platform/wince/wince-sdl.h b/backends/platform/wince/wince-sdl.h
index d7ede8c..9fdcf79 100644
--- a/backends/platform/wince/wince-sdl.h
+++ b/backends/platform/wince/wince-sdl.h
@@ -56,6 +56,8 @@ public:
 
 	// Overloaded from SDL backend
 	void quit();
+	virtual Common::String getSystemLanguage() const;
+
 	// Overloaded from OSystem
 	void engineInit();
 	void getTimeAndDate(TimeDate &t) const;
diff --git a/configure b/configure
index 624d49f..6edde87 100755
--- a/configure
+++ b/configure
@@ -2061,6 +2061,7 @@ if test -n "$_host"; then
 			_arm_asm=yes
 			_tremolo=yes
 			_backend="wince"
+			_detectlang=yes
 			_mt32emu=no
 			_port_mk="backends/platform/wince/wince.mk"
 			;;
@@ -2929,12 +2930,14 @@ if test "$_translation" = no ; then
 else
 	echo_n "yes ("
 
-	cat > $TMPC << EOF
+	if test "$_detectlang" != yes ; then
+		cat > $TMPC << EOF
 #include <locale.h>
 int main(void) { setlocale(LC_ALL, ""); return 0; }
 EOF
-	_detectlang=no
-	cc_check $LDFLAGS $CXXFLAGS && _detectlang=yes
+		_detectlang=no
+		cc_check $LDFLAGS $CXXFLAGS && _detectlang=yes
+	fi
 
 	define_in_config_h_if_yes $_detectlang 'USE_DETECTLANG'
 	if test "$_detectlang" = yes ; then


Commit: ba53696d458d320c0ca58319503c378ae4779cc4
    https://github.com/scummvm/scummvm/commit/ba53696d458d320c0ca58319503c378ae4779cc4
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-06-14T13:48:53-07:00

Commit Message:
SCALERS: Fix Normal1xAspect scaler bug reported in bug #3313709

Changed paths:
    graphics/scaler/aspect.cpp



diff --git a/graphics/scaler/aspect.cpp b/graphics/scaler/aspect.cpp
index 85768fb..aa621d6 100644
--- a/graphics/scaler/aspect.cpp
+++ b/graphics/scaler/aspect.cpp
@@ -208,7 +208,7 @@ int stretch200To240(uint8 *buf, uint32 pitch, int width, int height, int srcX, i
 template<typename ColorMask>
 void Normal1xAspectTemplate(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height) {
 
-	for (int y = 0; y < height; ++y) {
+	for (int y = 0; y < (height * 6 / 5); ++y) {
 
 #if ASPECT_MODE == kSuperFastAndUglyAspectMode
 		if ((y % 6) == 5)


Commit: 187b3770fbfde45d6344191a2972b417e06f6275
    https://github.com/scummvm/scummvm/commit/187b3770fbfde45d6344191a2972b417e06f6275
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-14T14:50:19-07:00

Commit Message:
AUDIO: fix device detection (missing rom files for MT-32 emu)

This is an attempt to fix the problem Max described in his devel mail.
The presence of the rom files will now be checked in detectDevice().
In case of failure there will be fallback attempts.
The user will get notified of the detection failure if he has expressly selected the device that failed.

Please test with your platform / engine (with or without rom files).

Changed paths:
    audio/mididrv.cpp
    audio/mididrv.h
    audio/musicplugin.h
    audio/softsynth/mt32.cpp



diff --git a/audio/mididrv.cpp b/audio/mididrv.cpp
index 6cc3366..12c699d 100644
--- a/audio/mididrv.cpp
+++ b/audio/mididrv.cpp
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #include "common/config-manager.h"
@@ -29,6 +26,7 @@
 #include "common/system.h"
 #include "common/textconsole.h"
 #include "common/util.h"
+#include "engines/engine.h"
 #include "audio/mididrv.h"
 #include "audio/musicplugin.h"
 
@@ -128,6 +126,7 @@ Common::String MidiDriver::getDeviceString(DeviceHandle handle, DeviceStringType
 MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 	// Query the selected music device (defaults to MT_AUTO device).
 	DeviceHandle hdl = getDeviceHandle(ConfMan.get("music_driver"));
+	DeviceHandle reslt = MT_AUTO;
 
 	_forceTypeMT32 = false;
 
@@ -136,71 +135,87 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 	switch (getMusicType(hdl)) {
 	case MT_PCSPK:
 		if (flags & MDT_PCSPK)
-			return hdl;
+			reslt = hdl;
 		break;
 
 	case MT_PCJR:
 		if (flags & MDT_PCJR)
-			return hdl;
+			reslt = hdl;
 		break;
 
 	case MT_CMS:
 		if (flags & MDT_CMS)
-			return hdl;
+			reslt = hdl;
 		break;
 
 	case MT_ADLIB:
 		if (flags & MDT_ADLIB)
-			return hdl;
+			reslt = hdl;
 		break;
 
 	case MT_C64:
 		if (flags & MDT_C64)
-			return hdl;
+			reslt = hdl;
 		break;
 
 	case MT_AMIGA:
 		if (flags & MDT_AMIGA)
-			return hdl;
+			reslt = hdl;
 		break;
 
 	case MT_APPLEIIGS:
 		if (flags & MDT_APPLEIIGS)
-			return hdl;
+			reslt = hdl;
 		break;
 
 	case MT_TOWNS:
 		if (flags & MDT_TOWNS)
-			return hdl;
+			reslt = hdl;
 		break;
 
 	case MT_PC98:
 		if (flags & MDT_PC98)
-			return hdl;
+			reslt = hdl;
 		break;
 
 	case MT_GM:
 	case MT_GS:
 	case MT_MT32:
 		if (flags & MDT_MIDI)
-			return hdl;
+			reslt = hdl;
 		break;
 
 	case MT_NULL:
-		return hdl;
+		reslt = hdl;
 
 	default:
 		break;
 	}
 
+	Common::String failedDevStr;
+	MusicType tp = getMusicType(reslt);
+	if (tp != MT_INVALID && tp != MT_AUTO) {
+		if (checkDevice(reslt)) {
+			return reslt;
+		} else {
+			// If the expressly selected device is unavailable we display a warning and continue.
+			failedDevStr = getDeviceString(hdl, MidiDriver::kDriverName);
+			Common::String errorMessage = "Failed to detect the selected audio device '" + failedDevStr +"'. See log file for more information. Attempting to fall back to the next available device...";
+			GUIErrorMessage(errorMessage);
+		}
+	}
+
+	reslt = MT_AUTO;
+
 	// If the selected driver did not match the flags setting,
 	// we try to determine a suitable and "optimal" music driver.
 	const MusicPlugin::List p = MusicMan.getPlugins();
 	// If only MDT_MIDI but not MDT_PREFER_MT32 or MDT_PREFER_GM is set we prefer the other devices (which will always be
 	// detected since they are hard coded and cannot be disabled.
-	for (int l = (flags & (MDT_PREFER_GM | MDT_PREFER_MT32)) ? 1 : 0; l < 2; ++l) {
-		if ((flags & MDT_MIDI) && (l == 1)) {
-			// If a preferred MT32 or GM device has been selected that device gets returned
+	bool skipMidi = !(flags & (MDT_PREFER_GM | MDT_PREFER_MT32));
+	while (flags != MDT_NONE) {
+		if ((flags & MDT_MIDI) && !skipMidi) {
+			// If a preferred MT32 or GM device has been selected that device gets returned if available.
 			if (flags & MDT_PREFER_MT32)
 				hdl = getDeviceHandle(ConfMan.get("mt32_device"));
 			else if (flags & MDT_PREFER_GM)
@@ -214,70 +229,117 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 			// to AdLib, PC Speaker etc. detection right away.
 			if (type != MT_NULL) {
 				if (type != MT_AUTO && type != MT_INVALID) {
-					if (flags & MDT_PREFER_MT32)
-						// If we have a preferred MT32 device we disable the gm/mt32 mapping (more about this in mididrv.h)
-						_forceTypeMT32 = true;
-
-					return hdl;
+					if (checkDevice(hdl)) {
+						if (flags & MDT_PREFER_MT32)
+							// If we have a preferred MT32 device we disable the gm/mt32 mapping (more about this in mididrv.h).
+							_forceTypeMT32 = true;
+						return hdl;
+					} else {
+						// If the preferred (expressly requested) device is unavailable we display a warning and continue.
+						// Don't warn about the missing device if we did already (this becomes relevant if the failing
+						// device is selected as preferred device and also as GM or MT-32 device).
+						if (failedDevStr != getDeviceString(hdl, MidiDriver::kDriverName)) {							
+							Common::String errorMessage = "Failed to detect the preferred device '" + getDeviceString(hdl, MidiDriver::kDriverName) + "'. See log file for more information. Attempting to fall back to the next available device...";
+							GUIErrorMessage(errorMessage);
+						}
+						hdl = MT_AUTO;
+					}
 				}
 
-				// If we have no specific device selected (neither in the scummvm nor in the game domain)
-				// and no preferred MT32 or GM device selected we arrive here.
-				// If MT32 is preferred we try for the first available device with music type 'MT_MT32' (usually the mt32 emulator)
+				// If no specific device is selected (neither in the scummvm nor in the game domain)
+				// and there is no preferred MT32 or GM device selected either or if the detected device is unavailable we arrive here.
+				// If MT32 is preferred we try for the first available device with music type 'MT_MT32' (usually the mt32 emulator).
 				if (flags & MDT_PREFER_MT32) {
 					for (MusicPlugin::List::const_iterator m = p.begin(); m != p.end(); ++m) {
 						MusicDevices i = (**m)->getDevices();
 						for (MusicDevices::iterator d = i.begin(); d != i.end(); ++d) {
-							if (d->getMusicType() == MT_MT32)
-								return d->getHandle();
+							if (d->getMusicType() == MT_MT32) {
+								hdl = d->getHandle();
+								if (checkDevice(hdl))
+									return hdl;
+								else
+									// No warning here, since the user hasn't expressly requested anything.
+									hdl = MT_AUTO;
+							}
 						}
 					}
 				}
 
-				// Now we default to the first available device with music type 'MT_GM'
-				for (MusicPlugin::List::const_iterator m = p.begin(); m != p.end(); ++m) {
-					MusicDevices i = (**m)->getDevices();
-					for (MusicDevices::iterator d = i.begin(); d != i.end(); ++d) {
-						if (d->getMusicType() == MT_GM || d->getMusicType() == MT_GS)
-							return d->getHandle();
+				// Now we default to the first available device with music type 'MT_GM' if not 
+				// MT-32 is preferred or if MT-32 is preferred but all other devices have failed.
+				if (!(flags & MDT_PREFER_MT32) || flags == (MDT_PREFER_MT32 | MDT_MIDI)) {
+					for (MusicPlugin::List::const_iterator m = p.begin(); m != p.end(); ++m) {
+						MusicDevices i = (**m)->getDevices();
+						for (MusicDevices::iterator d = i.begin(); d != i.end(); ++d) {
+							if (d->getMusicType() == MT_GM || d->getMusicType() == MT_GS) {
+								hdl = d->getHandle();
+								if (checkDevice(hdl))
+									return hdl;
+								else
+									// No warning here, since the user hasn't expressly requested anything.
+									hdl = MT_AUTO;
+							}
+						}
 					}
+					// Detection flags get removed after final detection attempt to avoid further attempts.
+					flags &= ~(MDT_MIDI | MDT_PREFER_GM | MDT_PREFER_MT32);
 				}
 			}
 		}
 
-		MusicType tp = MT_AUTO;
-		if (flags & MDT_TOWNS)
+		// The order in this list is important, since this is the order of preference
+		// (e.g. MT_ADLIB is checked before MT_PCJR and MT_PCSPK for a good reason.
+		// Detection flags get removed after detection attempt to avoid further attempts.
+		if (flags & MDT_TOWNS) {
 			tp = MT_TOWNS;
-		else if (flags & MDT_PC98)
+			flags &= ~MDT_TOWNS;
+		} else if (flags & MDT_PC98) {
 			tp = MT_PC98;
-		else if (flags & MDT_ADLIB)
+			flags &= ~MDT_PC98;
+		} else if (flags & MDT_ADLIB) {
 			tp = MT_ADLIB;
-		else if (flags & MDT_PCJR)
+			flags &= ~MDT_ADLIB;
+		} else if (flags & MDT_PCJR) {
 			tp = MT_PCJR;
-		else if (flags & MDT_PCSPK)
+			flags &= ~MDT_PCJR;
+		} else if (flags & MDT_PCSPK) {
 			tp = MT_PCSPK;
-		else if (flags & MDT_C64)
+			flags &= ~MDT_PCSPK;
+		} else if (flags & MDT_C64) {
 			tp = MT_C64;
-		else if (flags & MDT_AMIGA)
+			flags &= ~MDT_C64;
+		} else if (flags & MDT_AMIGA) {
 			tp = MT_AMIGA;
-		else if (flags & MDT_APPLEIIGS)
+			flags &= ~MDT_AMIGA;
+		} else if (flags & MDT_APPLEIIGS) {
 			tp = MT_APPLEIIGS;
-		else if (l == 0)
+			flags &= ~MDT_APPLEIIGS;
+		} else if (flags & MDT_MIDI) {
 			// if we haven't tried to find a MIDI device yet we do this now.
+			skipMidi = false;
 			continue;
-		else
+		} else if (flags) {
+			// Invalid flags. Set them to MDT_NONE to leave detection loop.
+			flags = MDT_NONE;
 			tp = MT_AUTO;
+		}
 
 		for (MusicPlugin::List::const_iterator m = p.begin(); m != p.end(); ++m) {
 			MusicDevices i = (**m)->getDevices();
 			for (MusicDevices::iterator d = i.begin(); d != i.end(); ++d) {
-				if (d->getMusicType() == tp)
-					return d->getHandle();
+				if (d->getMusicType() == tp) {
+					hdl = d->getHandle();
+					if (checkDevice(hdl))
+						return hdl;
+					else
+						// No warning here, since the user hasn't expressly requested anything.
+						hdl = MT_AUTO;
+				}
 			}
 		}
 	}
 
-	return 0;
+	return reslt;
 }
 
 MidiDriver *MidiDriver::createMidi(MidiDriver::DeviceHandle handle) {
@@ -291,6 +353,16 @@ MidiDriver *MidiDriver::createMidi(MidiDriver::DeviceHandle handle) {
 	return driver;
 }
 
+bool MidiDriver::checkDevice(MidiDriver::DeviceHandle handle) {
+	const MusicPlugin::List p = MusicMan.getPlugins();
+	for (MusicPlugin::List::const_iterator m = p.begin(); m != p.end(); m++) {
+		if (getDeviceString(handle, MidiDriver::kDriverId).equals((**m)->getId()))
+			return (**m)->checkDevice(handle);
+	}
+
+	return false;
+}
+
 MidiDriver::DeviceHandle MidiDriver::getDeviceHandle(const Common::String &identifier) {
 	const MusicPlugin::List p = MusicMan.getPlugins();
 
diff --git a/audio/mididrv.h b/audio/mididrv.h
index c6c5179..331ce23 100644
--- a/audio/mididrv.h
+++ b/audio/mididrv.h
@@ -159,6 +159,9 @@ public:
 	/** Find the music driver matching the given driver name/description. */
 	static DeviceHandle getDeviceHandle(const Common::String &identifier);
 
+	/** Check whether the device with the given handle is available. */
+	static bool checkDevice(DeviceHandle handle);
+
 	/** Get the music type matching the given device handle, or MT_AUTO if there is no match. */
 	static MusicType getMusicType(DeviceHandle handle);
 
diff --git a/audio/musicplugin.h b/audio/musicplugin.h
index 53a2ae4..a630e51 100644
--- a/audio/musicplugin.h
+++ b/audio/musicplugin.h
@@ -93,6 +93,13 @@ public:
 	virtual MusicDevices getDevices() const = 0;
 
 	/**
+	 * Checks whether a device can actually be used. Currently this is only
+	 * implemented for the MT-32 emulator to check whether the required rom
+	 * files are present.
+	 */
+	virtual bool checkDevice(MidiDriver::DeviceHandle) const { return true; }
+
+	/**
 	 * Tries to instantiate a MIDI Driver instance based on the device
 	 * previously detected via MidiDriver::detectDevice()
 	 *
diff --git a/audio/softsynth/mt32.cpp b/audio/softsynth/mt32.cpp
index 0b84a56..d8775f0 100644
--- a/audio/softsynth/mt32.cpp
+++ b/audio/softsynth/mt32.cpp
@@ -23,6 +23,7 @@
  */
 
 #include "common/scummsys.h"
+#include "common/system.h"
 
 #ifdef USE_MT32EMU
 
@@ -550,6 +551,7 @@ public:
 	}
 
 	MusicDevices getDevices() const;
+	bool checkDevice(MidiDriver::DeviceHandle) const;
 	Common::Error createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle = 0) const;
 };
 
@@ -559,6 +561,16 @@ MusicDevices MT32EmuMusicPlugin::getDevices() const {
 	return devices;
 }
 
+bool MT32EmuMusicPlugin::checkDevice(MidiDriver::DeviceHandle) const {
+	if (!((Common::File::exists("MT32_CONTROL.ROM") && Common::File::exists("MT32_PCM.ROM")) ||
+		(Common::File::exists("CM32L_CONTROL.ROM") && Common::File::exists("CM32L_PCM.ROM")))) {
+			warning("The MT-32 emulator requires the following  2 files (not bundled with ScummVM:\n either 'MT32_CONTROL.ROM' and 'MT32_PCM.ROM' or 'CM32L_CONTROL.ROM' and 'CM32L_PCM.ROM'");
+			return false;
+	}
+	
+	return true;	
+}
+
 Common::Error MT32EmuMusicPlugin::createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle) const {
 	if (ConfMan.hasKey("extrapath"))
 		SearchMan.addDirectory("extrapath", ConfMan.get("extrapath"));


Commit: 247c28e0a204362f67c450bf78fc8d3934e0dcf7
    https://github.com/scummvm/scummvm/commit/247c28e0a204362f67c450bf78fc8d3934e0dcf7
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-14T14:50:19-07:00

Commit Message:
KYRA: fix audio detection

Don't attempt to detect PC devices for non-PC versions of the game, because this might trigger unnecessary detection failure messages.

Changed paths:
    engines/kyra/kyra_v1.cpp



diff --git a/engines/kyra/kyra_v1.cpp b/engines/kyra/kyra_v1.cpp
index fb56e4a..8676bc0 100644
--- a/engines/kyra/kyra_v1.cpp
+++ b/engines/kyra/kyra_v1.cpp
@@ -99,15 +99,6 @@ Common::Error KyraEngine_v1::init() {
 	syncSoundSettings();
 
 	if (!_flags.useDigSound) {
-		// In Kyra 1 users who have specified a default MT-32 device in the launcher settings
-		// will get MT-32 music, otherwise AdLib. In Kyra 2 and LoL users who have specified a
-		// default GM device in the launcher will get GM music, otherwise AdLib. Users who want
-		// MT-32 music in Kyra2 or LoL have to select this individually (since we assume that
-		// most users rather have a GM device than a MT-32 device).
-		// Users who want PC speaker sound always have to select this individually for all
-		// Kyra games.
-		MidiDriver::DeviceHandle dev = MidiDriver::detectDevice(MDT_PCSPK | MDT_MIDI | MDT_ADLIB | ((_flags.gameID == GI_KYRA2 || _flags.gameID == GI_LOL) ? MDT_PREFER_GM : MDT_PREFER_MT32));
-
 		if (_flags.platform == Common::kPlatformFMTowns) {
 			if (_flags.gameID == GI_KYRA1)
 				_sound = new SoundTowns(this, _mixer);
@@ -120,43 +111,53 @@ Common::Error KyraEngine_v1::init() {
 				_sound = new SoundTownsPC98_v2(this, _mixer);
 		} else if (_flags.platform == Common::kPlatformAmiga) {
 			_sound = new SoundAmiga(this, _mixer);
-		} else if (MidiDriver::getMusicType(dev) == MT_ADLIB) {
-			_sound = new SoundAdLibPC(this, _mixer);
 		} else {
-			Sound::kType type;
-			const MusicType midiType = MidiDriver::getMusicType(dev);
+			// In Kyra 1 users who have specified a default MT-32 device in the launcher settings
+			// will get MT-32 music, otherwise AdLib. In Kyra 2 and LoL users who have specified a
+			// default GM device in the launcher will get GM music, otherwise AdLib. Users who want
+			// MT-32 music in Kyra2 or LoL have to select this individually (since we assume that
+			// most users rather have a GM device than a MT-32 device).
+			// Users who want PC speaker sound always have to select this individually for all
+			// Kyra games.
+			MidiDriver::DeviceHandle dev = MidiDriver::detectDevice(MDT_PCSPK | MDT_MIDI | MDT_ADLIB | ((_flags.gameID == GI_KYRA2 || _flags.gameID == GI_LOL) ? MDT_PREFER_GM : MDT_PREFER_MT32));
+			if (MidiDriver::getMusicType(dev) == MT_ADLIB) {
+				_sound = new SoundAdLibPC(this, _mixer);
+			} else {
+				Sound::kType type;
+				const MusicType midiType = MidiDriver::getMusicType(dev);
 
-			if (midiType == MT_PCSPK || midiType == MT_NULL)
-				type = Sound::kPCSpkr;
-			else if (midiType == MT_MT32 || ConfMan.getBool("native_mt32"))
-				type = Sound::kMidiMT32;
-			else
-				type = Sound::kMidiGM;
+				if (midiType == MT_PCSPK || midiType == MT_NULL)
+					type = Sound::kPCSpkr;
+				else if (midiType == MT_MT32 || ConfMan.getBool("native_mt32"))
+					type = Sound::kMidiMT32;
+				else
+					type = Sound::kMidiGM;
 
-			MidiDriver *driver = 0;
+				MidiDriver *driver = 0;
 
-			if (MidiDriver::getMusicType(dev) == MT_PCSPK) {
-				driver = new MidiDriver_PCSpeaker(_mixer);
-			} else {
-				driver = MidiDriver::createMidi(dev);
-				if (type == Sound::kMidiMT32)
-					driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
-			}
+				if (MidiDriver::getMusicType(dev) == MT_PCSPK) {
+					driver = new MidiDriver_PCSpeaker(_mixer);
+				} else {
+					driver = MidiDriver::createMidi(dev);
+					if (type == Sound::kMidiMT32)
+						driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
+				}
 
-			assert(driver);
+				assert(driver);
 
-			SoundMidiPC *soundMidiPc = new SoundMidiPC(this, _mixer, driver, type);
-			_sound = soundMidiPc;
-			assert(_sound);
+				SoundMidiPC *soundMidiPc = new SoundMidiPC(this, _mixer, driver, type);
+				_sound = soundMidiPc;
+				assert(_sound);
 
-			// Unlike some SCUMM games, it's not that the MIDI sounds are
-			// missing. It's just that at least at the time of writing they
-			// are decidedly inferior to the AdLib ones.
-			if (ConfMan.getBool("multi_midi")) {
-				SoundAdLibPC *adlib = new SoundAdLibPC(this, _mixer);
-				assert(adlib);
+				// Unlike some SCUMM games, it's not that the MIDI sounds are
+				// missing. It's just that at least at the time of writing they
+				// are decidedly inferior to the AdLib ones.
+				if (ConfMan.getBool("multi_midi")) {
+					SoundAdLibPC *adlib = new SoundAdLibPC(this, _mixer);
+					assert(adlib);
 
-				_sound = new MixedSoundDriver(this, _mixer, soundMidiPc, adlib);
+					_sound = new MixedSoundDriver(this, _mixer, soundMidiPc, adlib);
+				}
 			}
 		}
 


Commit: 3c83d9ab1f67c8e3007c64a96a4b41f8f01b4c58
    https://github.com/scummvm/scummvm/commit/3c83d9ab1f67c8e3007c64a96a4b41f8f01b4c58
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-14T14:50:20-07:00

Commit Message:
AUDIO: replace GUIErrorMessage()

GUIErrorMessage() shouldn't be used since it changes the window caption and resets the graphics mode.

Changed paths:
    audio/mididrv.cpp



diff --git a/audio/mididrv.cpp b/audio/mididrv.cpp
index 12c699d..58ed6f6 100644
--- a/audio/mididrv.cpp
+++ b/audio/mididrv.cpp
@@ -26,7 +26,7 @@
 #include "common/system.h"
 #include "common/textconsole.h"
 #include "common/util.h"
-#include "engines/engine.h"
+#include "gui/message.h"
 #include "audio/mididrv.h"
 #include "audio/musicplugin.h"
 
@@ -200,8 +200,9 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 		} else {
 			// If the expressly selected device is unavailable we display a warning and continue.
 			failedDevStr = getDeviceString(hdl, MidiDriver::kDriverName);
-			Common::String errorMessage = "Failed to detect the selected audio device '" + failedDevStr +"'. See log file for more information. Attempting to fall back to the next available device...";
-			GUIErrorMessage(errorMessage);
+			Common::String warningMsg = "Failed to detect the selected audio device '" + failedDevStr +"'. See log file for more information. Attempting to fall back to the next available device...";
+			GUI::MessageDialog dialog(warningMsg);
+			dialog.runModal();
 		}
 	}
 
@@ -239,8 +240,9 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 						// Don't warn about the missing device if we did already (this becomes relevant if the failing
 						// device is selected as preferred device and also as GM or MT-32 device).
 						if (failedDevStr != getDeviceString(hdl, MidiDriver::kDriverName)) {							
-							Common::String errorMessage = "Failed to detect the preferred device '" + getDeviceString(hdl, MidiDriver::kDriverName) + "'. See log file for more information. Attempting to fall back to the next available device...";
-							GUIErrorMessage(errorMessage);
+							Common::String warningMsg = "Failed to detect the preferred device '" + getDeviceString(hdl, MidiDriver::kDriverName) + "'. See log file for more information. Attempting to fall back to the next available device...";
+							GUI::MessageDialog dialog(warningMsg);
+							dialog.runModal();
 						}
 						hdl = MT_AUTO;
 					}


Commit: cc4809a8cb7afc4678b27ebcc2ed76de66eee1cf
    https://github.com/scummvm/scummvm/commit/cc4809a8cb7afc4678b27ebcc2ed76de66eee1cf
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-14T14:50:20-07:00

Commit Message:
AUDIO: replaced kDriverName in MidiDriver::detectDevice()

(This is irrelevant for the MT-32 emulator, but makes sense for plugins which really have more than one device)

Changed paths:
    audio/mididrv.cpp
    audio/mididrv.h



diff --git a/audio/mididrv.cpp b/audio/mididrv.cpp
index 58ed6f6..8c1b0bc 100644
--- a/audio/mididrv.cpp
+++ b/audio/mididrv.cpp
@@ -111,6 +111,8 @@ Common::String MidiDriver::getDeviceString(DeviceHandle handle, DeviceStringType
 						return d->getMusicDriverName();
 					else if (type == kDriverId)
 						return d->getMusicDriverId();
+					else if (type == kDeviceName)
+						return d->getCompleteName();
 					else if (type == kDeviceId)
 						return d->getCompleteId();
 					else
@@ -199,7 +201,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 			return reslt;
 		} else {
 			// If the expressly selected device is unavailable we display a warning and continue.
-			failedDevStr = getDeviceString(hdl, MidiDriver::kDriverName);
+			failedDevStr = getDeviceString(hdl, MidiDriver::kDeviceName);
 			Common::String warningMsg = "Failed to detect the selected audio device '" + failedDevStr +"'. See log file for more information. Attempting to fall back to the next available device...";
 			GUI::MessageDialog dialog(warningMsg);
 			dialog.runModal();
@@ -239,8 +241,8 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 						// If the preferred (expressly requested) device is unavailable we display a warning and continue.
 						// Don't warn about the missing device if we did already (this becomes relevant if the failing
 						// device is selected as preferred device and also as GM or MT-32 device).
-						if (failedDevStr != getDeviceString(hdl, MidiDriver::kDriverName)) {							
-							Common::String warningMsg = "Failed to detect the preferred device '" + getDeviceString(hdl, MidiDriver::kDriverName) + "'. See log file for more information. Attempting to fall back to the next available device...";
+						if (failedDevStr != getDeviceString(hdl, MidiDriver::kDeviceName)) {							
+							Common::String warningMsg = "Failed to detect the preferred device '" + getDeviceString(hdl, MidiDriver::kDeviceName) + "'. See log file for more information. Attempting to fall back to the next available device...";
 							GUI::MessageDialog dialog(warningMsg);
 							dialog.runModal();
 						}
diff --git a/audio/mididrv.h b/audio/mididrv.h
index 331ce23..5970847 100644
--- a/audio/mididrv.h
+++ b/audio/mididrv.h
@@ -145,6 +145,7 @@ public:
 	enum DeviceStringType {
 		kDriverName,
 		kDriverId,
+		kDeviceName,
 		kDeviceId
 	};
 


Commit: 8cc6dad747d331ac270c9d5380e584b52695e478
    https://github.com/scummvm/scummvm/commit/8cc6dad747d331ac270c9d5380e584b52695e478
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-14T14:50:21-07:00

Commit Message:
AUDIO: cleanup MidiDriver::detectDevice()

(wrong enum usage)

Changed paths:
    audio/mididrv.cpp



diff --git a/audio/mididrv.cpp b/audio/mididrv.cpp
index 8c1b0bc..f6a56bb 100644
--- a/audio/mididrv.cpp
+++ b/audio/mididrv.cpp
@@ -128,7 +128,7 @@ Common::String MidiDriver::getDeviceString(DeviceHandle handle, DeviceStringType
 MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 	// Query the selected music device (defaults to MT_AUTO device).
 	DeviceHandle hdl = getDeviceHandle(ConfMan.get("music_driver"));
-	DeviceHandle reslt = MT_AUTO;
+	DeviceHandle reslt = 0;
 
 	_forceTypeMT32 = false;
 
@@ -208,7 +208,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 		}
 	}
 
-	reslt = MT_AUTO;
+	reslt = 0;
 
 	// If the selected driver did not match the flags setting,
 	// we try to determine a suitable and "optimal" music driver.
@@ -246,7 +246,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 							GUI::MessageDialog dialog(warningMsg);
 							dialog.runModal();
 						}
-						hdl = MT_AUTO;
+						hdl = 0;
 					}
 				}
 
@@ -263,7 +263,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 									return hdl;
 								else
 									// No warning here, since the user hasn't expressly requested anything.
-									hdl = MT_AUTO;
+									hdl = 0;
 							}
 						}
 					}
@@ -281,7 +281,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 									return hdl;
 								else
 									// No warning here, since the user hasn't expressly requested anything.
-									hdl = MT_AUTO;
+									hdl = 0;
 							}
 						}
 					}
@@ -337,7 +337,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 						return hdl;
 					else
 						// No warning here, since the user hasn't expressly requested anything.
-						hdl = MT_AUTO;
+						hdl = 0;
 				}
 			}
 		}


Commit: eab87fa1967ed03ac4ad14568073917ca6ebd2f3
    https://github.com/scummvm/scummvm/commit/eab87fa1967ed03ac4ad14568073917ca6ebd2f3
Author: Alyssa Milburn (fuzzie at fuzzie.org)
Date: 2011-06-14T14:50:21-07:00

Commit Message:
I18N: Make MidiDriver detection errors translatable.

Changed paths:
    audio/mididrv.cpp
    po/POTFILES
    po/scummvm.pot



diff --git a/audio/mididrv.cpp b/audio/mididrv.cpp
index f6a56bb..47e4aea 100644
--- a/audio/mididrv.cpp
+++ b/audio/mididrv.cpp
@@ -25,6 +25,7 @@
 #include "common/str.h"
 #include "common/system.h"
 #include "common/textconsole.h"
+#include "common/translation.h"
 #include "common/util.h"
 #include "gui/message.h"
 #include "audio/mididrv.h"
@@ -202,7 +203,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 		} else {
 			// If the expressly selected device is unavailable we display a warning and continue.
 			failedDevStr = getDeviceString(hdl, MidiDriver::kDeviceName);
-			Common::String warningMsg = "Failed to detect the selected audio device '" + failedDevStr +"'. See log file for more information. Attempting to fall back to the next available device...";
+			Common::String warningMsg = Common::String::format(_("Failed to detect the selected audio device '%s'. See log file for more information. Attempting to fall back to the next available device..."), failedDevStr.c_str());
 			GUI::MessageDialog dialog(warningMsg);
 			dialog.runModal();
 		}
@@ -242,7 +243,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 						// Don't warn about the missing device if we did already (this becomes relevant if the failing
 						// device is selected as preferred device and also as GM or MT-32 device).
 						if (failedDevStr != getDeviceString(hdl, MidiDriver::kDeviceName)) {							
-							Common::String warningMsg = "Failed to detect the preferred device '" + getDeviceString(hdl, MidiDriver::kDeviceName) + "'. See log file for more information. Attempting to fall back to the next available device...";
+							Common::String warningMsg = Common::String::format(_("Failed to detect the preferred device '%s'. See log file for more information. Attempting to fall back to the next available device..."), getDeviceString(hdl, MidiDriver::kDeviceName).c_str());
 							GUI::MessageDialog dialog(warningMsg);
 							dialog.runModal();
 						}
diff --git a/po/POTFILES b/po/POTFILES
index e96f15f..2704582 100644
--- a/po/POTFILES
+++ b/po/POTFILES
@@ -31,6 +31,7 @@ engines/sci/engine/kfile.cpp
 engines/agos/saveload.cpp
 
 audio/fmopl.cpp
+audio/mididrv.cpp
 audio/musicplugin.cpp
 audio/null.h
 audio/null.cpp
diff --git a/po/scummvm.pot b/po/scummvm.pot
index 8522a89..5692e3f 100644
--- a/po/scummvm.pot
+++ b/po/scummvm.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ScummVM 1.3.0git\n"
 "Report-Msgid-Bugs-To: scummvm-devel at lists.sf.net\n"
-"POT-Creation-Date: 2011-04-22 19:33+0100\n"
+"POT-Creation-Date: 2011-06-06 12:43+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -1714,7 +1714,21 @@ msgstr ""
 msgid "DOSBox OPL emulator"
 msgstr ""
 
-#: audio/null.h:46
+#: audio/mididrv.cpp:206
+#, c-format
+msgid ""
+"Failed to detect the selected audio device '%s'. See log file for more "
+"information. Attempting to fall back to the next available device..."
+msgstr ""
+
+#: audio/mididrv.cpp:246
+#, c-format
+msgid ""
+"Failed to detect the preferred device '%s'. See log file for more "
+"information. Attempting to fall back to the next available device..."
+msgstr ""
+
+#: audio/null.h:43
 msgid "No music"
 msgstr ""
 


Commit: e6b671e6590de5a06f88e93efb6f8bb9884cb016
    https://github.com/scummvm/scummvm/commit/e6b671e6590de5a06f88e93efb6f8bb9884cb016
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-14T14:50:22-07:00

Commit Message:
AUDIO: some more text tweaks

Changed paths:
    audio/mididrv.cpp
    audio/softsynth/mt32.cpp



diff --git a/audio/mididrv.cpp b/audio/mididrv.cpp
index 47e4aea..0209472 100644
--- a/audio/mididrv.cpp
+++ b/audio/mididrv.cpp
@@ -215,7 +215,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 	// we try to determine a suitable and "optimal" music driver.
 	const MusicPlugin::List p = MusicMan.getPlugins();
 	// If only MDT_MIDI but not MDT_PREFER_MT32 or MDT_PREFER_GM is set we prefer the other devices (which will always be
-	// detected since they are hard coded and cannot be disabled.
+	// detected since they are hard coded and cannot be disabled).
 	bool skipMidi = !(flags & (MDT_PREFER_GM | MDT_PREFER_MT32));
 	while (flags != MDT_NONE) {
 		if ((flags & MDT_MIDI) && !skipMidi) {
@@ -293,7 +293,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 		}
 
 		// The order in this list is important, since this is the order of preference
-		// (e.g. MT_ADLIB is checked before MT_PCJR and MT_PCSPK for a good reason.
+		// (e.g. MT_ADLIB is checked before MT_PCJR and MT_PCSPK for a good reason).
 		// Detection flags get removed after detection attempt to avoid further attempts.
 		if (flags & MDT_TOWNS) {
 			tp = MT_TOWNS;
diff --git a/audio/softsynth/mt32.cpp b/audio/softsynth/mt32.cpp
index d8775f0..c299a96 100644
--- a/audio/softsynth/mt32.cpp
+++ b/audio/softsynth/mt32.cpp
@@ -17,9 +17,6 @@
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
  */
 
 #include "common/scummsys.h"
@@ -564,7 +561,7 @@ MusicDevices MT32EmuMusicPlugin::getDevices() const {
 bool MT32EmuMusicPlugin::checkDevice(MidiDriver::DeviceHandle) const {
 	if (!((Common::File::exists("MT32_CONTROL.ROM") && Common::File::exists("MT32_PCM.ROM")) ||
 		(Common::File::exists("CM32L_CONTROL.ROM") && Common::File::exists("CM32L_PCM.ROM")))) {
-			warning("The MT-32 emulator requires the following  2 files (not bundled with ScummVM:\n either 'MT32_CONTROL.ROM' and 'MT32_PCM.ROM' or 'CM32L_CONTROL.ROM' and 'CM32L_PCM.ROM'");
+			warning("The MT-32 emulator requires one of the two following file sets (not bundled with ScummVM):\n Either 'MT32_CONTROL.ROM' and 'MT32_PCM.ROM' or 'CM32L_CONTROL.ROM' and 'CM32L_PCM.ROM'");
 			return false;
 	}
 	


Commit: 6efc829f3a7df3673abfa5ff3e357edffb181668
    https://github.com/scummvm/scummvm/commit/6efc829f3a7df3673abfa5ff3e357edffb181668
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-14T14:50:23-07:00

Commit Message:
AUDIO: improved warnings in detectDevice()

Silent fallback would occur if the user expressly selected a formerly available audio device which now has become unavailable (switched off, disconnected, no longer compiled in, etc.). A warning dialogue will now be displayed, before the fallback takes place.

Changed paths:
    audio/mididrv.cpp



diff --git a/audio/mididrv.cpp b/audio/mididrv.cpp
index 0209472..dfdc3c8 100644
--- a/audio/mididrv.cpp
+++ b/audio/mididrv.cpp
@@ -190,20 +190,30 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 
 	case MT_NULL:
 		reslt = hdl;
+		break;
 
 	default:
 		break;
 	}
 
 	Common::String failedDevStr;
+	if (getMusicType(hdl) == MT_INVALID) {
+		// If the expressly selected driver or device cannot be found (no longer compiled in, turned off, etc.)
+		// we display a warning and continue.
+		failedDevStr = ConfMan.get("music_driver");
+		Common::String warningMsg = Common::String::format(_("The selected audio device '%s' was not found (e.g. might be turned off or disconnected). Attempting to fall back to the next available device..."), failedDevStr.c_str());
+		GUI::MessageDialog dialog(warningMsg);
+		dialog.runModal();
+	}
+
 	MusicType tp = getMusicType(reslt);
 	if (tp != MT_INVALID && tp != MT_AUTO) {
 		if (checkDevice(reslt)) {
 			return reslt;
 		} else {
-			// If the expressly selected device is unavailable we display a warning and continue.
+			// If the expressly selected device cannot be used we display a warning and continue.
 			failedDevStr = getDeviceString(hdl, MidiDriver::kDeviceName);
-			Common::String warningMsg = Common::String::format(_("Failed to detect the selected audio device '%s'. See log file for more information. Attempting to fall back to the next available device..."), failedDevStr.c_str());
+			Common::String warningMsg = Common::String::format(_("The selected audio device '%s' cannot be used. See log file for more information. Attempting to fall back to the next available device..."), failedDevStr.c_str());
 			GUI::MessageDialog dialog(warningMsg);
 			dialog.runModal();
 		}
@@ -220,30 +230,41 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 	while (flags != MDT_NONE) {
 		if ((flags & MDT_MIDI) && !skipMidi) {
 			// If a preferred MT32 or GM device has been selected that device gets returned if available.
-			if (flags & MDT_PREFER_MT32)
-				hdl = getDeviceHandle(ConfMan.get("mt32_device"));
+			Common::String devStr;
+			if (flags & MDT_PREFER_MT32) 
+				devStr = ConfMan.get("mt32_device");
 			else if (flags & MDT_PREFER_GM)
-				hdl = getDeviceHandle(ConfMan.get("gm_device"));
+				devStr = ConfMan.get("gm_device");
 			else
-				hdl = getDeviceHandle("auto");
+				devStr = "auto";
 
+			hdl = getDeviceHandle(devStr);
 			const MusicType type = getMusicType(hdl);
 
 			// If have a "Don't use GM/MT-32" setting we skip this part and jump
 			// to AdLib, PC Speaker etc. detection right away.
 			if (type != MT_NULL) {
-				if (type != MT_AUTO && type != MT_INVALID) {
+				if (type == MT_INVALID) {
+					// If the preferred (expressly requested) selected driver or device cannot be found (no longer compiled in, turned off, etc.)
+					// we display a warning and continue. Don't warn about the missing device if we did already (this becomes relevant if the
+					// missing device is selected as preferred device and also as GM or MT-32 device).
+					if (failedDevStr != devStr) {
+						Common::String warningMsg = Common::String::format(_("The preferred audio device '%s' was not found (e.g. might be turned off or disconnected). Attempting to fall back to the next available device..."), devStr.c_str());
+						GUI::MessageDialog dialog(warningMsg);
+						dialog.runModal();
+					}
+				} else if (type != MT_AUTO) {
 					if (checkDevice(hdl)) {
 						if (flags & MDT_PREFER_MT32)
 							// If we have a preferred MT32 device we disable the gm/mt32 mapping (more about this in mididrv.h).
 							_forceTypeMT32 = true;
 						return hdl;
 					} else {
-						// If the preferred (expressly requested) device is unavailable we display a warning and continue.
-						// Don't warn about the missing device if we did already (this becomes relevant if the failing
+						// If the preferred (expressly requested) device cannot be used we display a warning and continue.
+						// Don't warn about the failing device if we did already (this becomes relevant if the failing
 						// device is selected as preferred device and also as GM or MT-32 device).
 						if (failedDevStr != getDeviceString(hdl, MidiDriver::kDeviceName)) {							
-							Common::String warningMsg = Common::String::format(_("Failed to detect the preferred device '%s'. See log file for more information. Attempting to fall back to the next available device..."), getDeviceString(hdl, MidiDriver::kDeviceName).c_str());
+							Common::String warningMsg = Common::String::format(_("The preferred audio device '%s' cannot be used. See log file for more information. Attempting to fall back to the next available device..."), getDeviceString(hdl, MidiDriver::kDeviceName).c_str());
 							GUI::MessageDialog dialog(warningMsg);
 							dialog.runModal();
 						}


Commit: ec8e6162c0570973970225869d76848a2701e1b7
    https://github.com/scummvm/scummvm/commit/ec8e6162c0570973970225869d76848a2701e1b7
Author: Max Horn (max at quendi.de)
Date: 2011-06-14T14:50:23-07:00

Commit Message:
AUDIO: Remove dead code

Changed paths:
    audio/mididrv.cpp



diff --git a/audio/mididrv.cpp b/audio/mididrv.cpp
index dfdc3c8..e238faf 100644
--- a/audio/mididrv.cpp
+++ b/audio/mididrv.cpp
@@ -219,8 +219,6 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 		}
 	}
 
-	reslt = 0;
-
 	// If the selected driver did not match the flags setting,
 	// we try to determine a suitable and "optimal" music driver.
 	const MusicPlugin::List p = MusicMan.getPlugins();
@@ -268,7 +266,6 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 							GUI::MessageDialog dialog(warningMsg);
 							dialog.runModal();
 						}
-						hdl = 0;
 					}
 				}
 
@@ -283,9 +280,6 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 								hdl = d->getHandle();
 								if (checkDevice(hdl))
 									return hdl;
-								else
-									// No warning here, since the user hasn't expressly requested anything.
-									hdl = 0;
 							}
 						}
 					}
@@ -301,9 +295,6 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 								hdl = d->getHandle();
 								if (checkDevice(hdl))
 									return hdl;
-								else
-									// No warning here, since the user hasn't expressly requested anything.
-									hdl = 0;
 							}
 						}
 					}
@@ -357,15 +348,12 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 					hdl = d->getHandle();
 					if (checkDevice(hdl))
 						return hdl;
-					else
-						// No warning here, since the user hasn't expressly requested anything.
-						hdl = 0;
 				}
 			}
 		}
 	}
 
-	return reslt;
+	return 0;
 }
 
 MidiDriver *MidiDriver::createMidi(MidiDriver::DeviceHandle handle) {


Commit: 1c9f7fdd01fba450ba15a0f4eaab3ca02d1b6993
    https://github.com/scummvm/scummvm/commit/1c9f7fdd01fba450ba15a0f4eaab3ca02d1b6993
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-14T14:50:24-07:00

Commit Message:
SCUMM: fix engine destructor

(This is relevant for cases where the engine errors out early, before certain arrays get initialized).

Changed paths:
    engines/scumm/scumm.cpp



diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 0e7ceff..3fa0b98 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -161,7 +161,7 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
 	_pauseDialog = NULL;
 	_versionDialog = NULL;
 	_fastMode = 0;
-	_actors = NULL;
+	_actors = _sortedActors = NULL;
 	_arraySlot = NULL;
 	_inventory = NULL;
 	_newNames = NULL;
@@ -586,9 +586,12 @@ ScummEngine::~ScummEngine() {
 
 	_mixer->stopAll();
 
-	for (int i = 0; i < _numActors; ++i)
-		delete _actors[i];
-	delete[] _actors;
+	if (_actors) {
+		for (int i = 0; i < _numActors; ++i)
+			delete _actors[i];
+		delete[] _actors;
+	}
+	
 	delete[] _sortedActors;
 
 	delete[] _2byteFontPtr;
@@ -1367,6 +1370,7 @@ void ScummEngine::resetScumm() {
 #ifdef USE_RGB_COLOR
 	if (_game.features & GF_16BIT_COLOR
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
+
 		|| _game.platform == Common::kPlatformFMTowns
 #endif
 		)


Commit: 6cb3cd58b646f18c37a4de01d2e4f7573fada3b5
    https://github.com/scummvm/scummvm/commit/6cb3cd58b646f18c37a4de01d2e4f7573fada3b5
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-14T14:50:24-07:00

Commit Message:
SCUMM: some cleanup in gfx_towns.cpp

Changed paths:
    engines/scumm/gfx_towns.cpp



diff --git a/engines/scumm/gfx_towns.cpp b/engines/scumm/gfx_towns.cpp
index abf2da6..e16cf95 100644
--- a/engines/scumm/gfx_towns.cpp
+++ b/engines/scumm/gfx_towns.cpp
@@ -251,7 +251,7 @@ void TownsScreen::setupLayer(int layer, int width, int height, int numCol, void
 	l->palette = (uint8*)pal;
 
 	if (l->palette && _bpp == 1)
-		warning("TownsScreen::setupLayer(): Layer palette usage requires 15 bit graphics setting.\nLayer palette will be ignored.");
+		warning("TownsScreen::setupLayer(): Layer palette usage requires 16 bit graphics setting.\nLayer palette will be ignored.");
 
 	delete[] l->pixels;
 	l->pixels = new uint8[l->pitch * l->height];
@@ -273,7 +273,8 @@ void TownsScreen::setupLayer(int layer, int width, int height, int numCol, void
 	l->bltTmpPal = (l->bpp == 1 && _bpp == 2) ? new uint16[l->numCol] : 0;
 	
 	l->enabled = true;
-	l->onBottom = (!layer || !_layers[0].enabled);
+	_layers[0].onBottom = true;
+	_layers[1].onBottom = _layers[0].enabled ? false : true;
 	l->ready = true;
 }
 	
@@ -423,10 +424,10 @@ void TownsScreen::toggleLayers(int flag) {
 	if (flag < 0 || flag > 3)
 		return;
 
-	for (int i = 0; i < 2; ++i) {
-		_layers[i].enabled = (flag & (i + 1)) ? true : false;
-		_layers[i].onBottom = (!i || !_layers[0].enabled);
-	}
+	_layers[0].enabled = (flag & 1) ? true : false;
+	_layers[0].onBottom = true;
+	_layers[1].enabled = (flag & 2) ? true : false;
+	_layers[1].onBottom = _layers[0].enabled ? false : true;
 
 	_dirtyRects.clear();
 	_dirtyRects.push_back(Common::Rect(_width - 1, _height - 1));
@@ -461,12 +462,12 @@ void TownsScreen::updateOutputBuffer() {
 
 			for (int y = r->top; y <= r->bottom; ++y) {
 				if (l->bpp == _bpp && l->scaleW == 1 && l->onBottom) {
-					memcpy(dst, l->bltInternY[y] + l->bltInternX[r->left], (r->right + 1 - r->left) * _bpp);
+					memcpy(dst, &l->bltInternY[y][l->bltInternX[r->left]], (r->right + 1 - r->left) * _bpp);
 					dst += _pitch;
 
 				} else if (_bpp == 2) {
 					for (int x = r->left; x <= r->right; ++x) {
-						uint8 *src = l->bltInternY[y] + l->bltInternX[x];
+						uint8 *src = &l->bltInternY[y][l->bltInternX[x]];
 						if (l->bpp == 1) {
 							uint8 col = *src;
 							if (col || l->onBottom) {
@@ -483,7 +484,7 @@ void TownsScreen::updateOutputBuffer() {
 
 				} else {
 					for (int x = r->left; x <= r->right; ++x) {
-						uint8 col = *(l->bltInternY[y] + l->bltInternX[x]);
+						uint8 col = l->bltInternY[y][l->bltInternX[x]];
 						if (col || l->onBottom) {
 							if (l->numCol == 16)
 								col = (col >> 4) & (col & 0x0f);						


Commit: 2443bc6d1f3450ea044533cdc8ff7cc64522f177
    https://github.com/scummvm/scummvm/commit/2443bc6d1f3450ea044533cdc8ff7cc64522f177
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-14T14:50:25-07:00

Commit Message:
SCUMM FM-TOWNS: add number of color check in TownsScreen::updateOutputBuffer()

Although the 16 color surface is normally not on bottom, there could (theoretically?) be cases in 8bit fallback mode where this becomes relevant.

Changed paths:
    engines/scumm/gfx_towns.cpp



diff --git a/engines/scumm/gfx_towns.cpp b/engines/scumm/gfx_towns.cpp
index e16cf95..2405026 100644
--- a/engines/scumm/gfx_towns.cpp
+++ b/engines/scumm/gfx_towns.cpp
@@ -461,7 +461,7 @@ void TownsScreen::updateOutputBuffer() {
 			}
 
 			for (int y = r->top; y <= r->bottom; ++y) {
-				if (l->bpp == _bpp && l->scaleW == 1 && l->onBottom) {
+				if (l->bpp == _bpp && l->scaleW == 1 && l->onBottom && l->numCol & 0xff00) {
 					memcpy(dst, &l->bltInternY[y][l->bltInternX[r->left]], (r->right + 1 - r->left) * _bpp);
 					dst += _pitch;
 


Commit: e2b3e39bc998ce24fd708070fd44a331b47699a8
    https://github.com/scummvm/scummvm/commit/e2b3e39bc998ce24fd708070fd44a331b47699a8
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-15T08:38:43-07:00

Commit Message:
SCUMM: fix bug #3316738

This provides fallback to 8bit color mode for SCUMM3 FM-TOWNS games on platforms which set the USE_RGB_COLOR define even though that color mode is not being fully implemented for that platform.

Changed paths:
    engines/scumm/cursor.cpp
    engines/scumm/palette.cpp
    engines/scumm/scumm.cpp



diff --git a/engines/scumm/cursor.cpp b/engines/scumm/cursor.cpp
index bb3c4bc..4e64629 100644
--- a/engines/scumm/cursor.cpp
+++ b/engines/scumm/cursor.cpp
@@ -117,17 +117,21 @@ void ScummEngine_v6::setCursorTransparency(int a) {
 void ScummEngine::updateCursor() {
 	int transColor = (_game.heversion >= 80) ? 5 : 255;
 #ifdef USE_RGB_COLOR
-	Graphics::PixelFormat format = _system->getScreenFormat();
-	CursorMan.replaceCursor(_grabbedCursor, _cursor.width, _cursor.height,
-							_cursor.hotspotX, _cursor.hotspotY,
-							(_game.platform == Common::kPlatformNES ? _grabbedCursor[63] : transColor),
-							(_game.heversion == 70 ? 2 : 1),
-							&format);
-#else
+	if (_bytesPerPixelOutput == 2) {
+		Graphics::PixelFormat format = _system->getScreenFormat();
+		CursorMan.replaceCursor(_grabbedCursor, _cursor.width, _cursor.height,
+								_cursor.hotspotX, _cursor.hotspotY,
+								(_game.platform == Common::kPlatformNES ? _grabbedCursor[63] : transColor),
+								(_game.heversion == 70 ? 2 : 1),
+								&format);
+	} else {
+#endif
 	CursorMan.replaceCursor(_grabbedCursor, _cursor.width, _cursor.height,
 							_cursor.hotspotX, _cursor.hotspotY,
 							(_game.platform == Common::kPlatformNES ? _grabbedCursor[63] : transColor),
 							(_game.heversion == 70 ? 2 : 1));
+#ifdef USE_RGB_COLOR
+	}
 #endif
 }
 
diff --git a/engines/scumm/palette.cpp b/engines/scumm/palette.cpp
index b0786c9..3388ec4 100644
--- a/engines/scumm/palette.cpp
+++ b/engines/scumm/palette.cpp
@@ -225,10 +225,12 @@ void ScummEngine::resetPalette() {
 			if (_game.id == GID_INDY4 || _game.id == GID_MONKEY2)
 				_townsClearLayerFlag = 0;
 #ifdef USE_RGB_COLOR
-			else if (_game.id == GID_LOOM)
-				towns_setTextPaletteFromPtr(tableTownsLoomPalette);
-			else if (_game.version == 3)
-				towns_setTextPaletteFromPtr(tableTownsV3Palette);
+			else if (_bytesPerPixelOutput == 2) {
+				if (_game.id == GID_LOOM)
+					towns_setTextPaletteFromPtr(tableTownsLoomPalette);
+				else if (_game.version == 3)
+					towns_setTextPaletteFromPtr(tableTownsV3Palette);
+			}
 #endif
 
 			_townsScreen->toggleLayers(_townsActiveLayerFlags);
@@ -1020,7 +1022,7 @@ void ScummEngine::setCurrentPalette(int palindex) {
 		setPCEPaletteFromPtr(pals);
 #ifdef USE_RGB_COLOR
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
-	} else if (_game.platform == Common::kPlatformFMTowns) {
+	} else if (_game.platform == Common::kPlatformFMTowns && _bytesPerPixelOutput == 2) {
 		towns_setPaletteFromPtr(pals);
 #endif
 #endif
@@ -1123,7 +1125,7 @@ void ScummEngine::updatePalette() {
 
 #ifdef USE_RGB_COLOR
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
-	if (_game.platform == Common::kPlatformFMTowns) {
+	if (_game.platform == Common::kPlatformFMTowns && _bytesPerPixelOutput == 2) {
 		p = palette_colors;
 		for (i = first; i < first + num; ++i) {
 			_16BitPalette[i] = get16BitColor(p[0], p[1], p[2]);
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 3fa0b98..5925476 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -1158,8 +1158,15 @@ Common::Error ScummEngine::init() {
 #ifdef USE_RGB_COLOR
 			Graphics::PixelFormat format = Graphics::PixelFormat(2, 5, 5, 5, 0, 10, 5, 0, 0);
 			initGraphics(screenWidth, screenHeight, screenWidth > 320, &format);
-			if (format != _system->getScreenFormat())
-				return Common::kUnsupportedColorMode;
+			if (format != _system->getScreenFormat()) {
+				if (_game.platform == Common::kPlatformFMTowns && _game.version == 3) {
+					warning("Your ScummVM build does not support the type of 16bit color mode required by this target.\nStarting game in 8bit color mode...\nYou may experience color glitches");
+					_bytesPerPixelOutput = 1;
+					initGraphics(screenWidth, screenHeight, (screenWidth > 320));
+				} else {
+					return Common::kUnsupportedColorMode;
+				}
+			}
 #else
 			if (_game.platform == Common::kPlatformFMTowns && _game.version == 3) {
 				warning("Starting game without the required 16bit color support.\nYou may experience color glitches");
@@ -1370,8 +1377,7 @@ void ScummEngine::resetScumm() {
 #ifdef USE_RGB_COLOR
 	if (_game.features & GF_16BIT_COLOR
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
-
-		|| _game.platform == Common::kPlatformFMTowns
+		|| (_game.platform == Common::kPlatformFMTowns && _bytesPerPixelOutput == 2)
 #endif
 		)
 		_16BitPalette = (uint16 *)calloc(512, sizeof(uint16));


Commit: d19b9ba8ed7f32423e03284899858f59ca36878f
    https://github.com/scummvm/scummvm/commit/d19b9ba8ed7f32423e03284899858f59ca36878f
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-15T13:59:55-07:00

Commit Message:
SCUMM: hopefully fix 16bit mode support for SCUMM FM-TOWNS games and LOOM PCE on Android

This mostly reverts 5b7754e3f095eb8a469dd4b7de5a6379f8e13c27. Instead, we try to use other 16bit modes  after 555 fails.

Changed paths:
    engines/scumm/cursor.cpp
    engines/scumm/gfx.cpp
    engines/scumm/gfx.h
    engines/scumm/gfx_towns.cpp
    engines/scumm/palette.cpp
    engines/scumm/saveload.cpp
    engines/scumm/scumm.cpp
    engines/scumm/scumm.h



diff --git a/engines/scumm/cursor.cpp b/engines/scumm/cursor.cpp
index 4e64629..89eab7f 100644
--- a/engines/scumm/cursor.cpp
+++ b/engines/scumm/cursor.cpp
@@ -117,21 +117,17 @@ void ScummEngine_v6::setCursorTransparency(int a) {
 void ScummEngine::updateCursor() {
 	int transColor = (_game.heversion >= 80) ? 5 : 255;
 #ifdef USE_RGB_COLOR
-	if (_bytesPerPixelOutput == 2) {
-		Graphics::PixelFormat format = _system->getScreenFormat();
-		CursorMan.replaceCursor(_grabbedCursor, _cursor.width, _cursor.height,
-								_cursor.hotspotX, _cursor.hotspotY,
-								(_game.platform == Common::kPlatformNES ? _grabbedCursor[63] : transColor),
-								(_game.heversion == 70 ? 2 : 1),
-								&format);
-	} else {
-#endif
+	Graphics::PixelFormat format = _system->getScreenFormat();
+	CursorMan.replaceCursor(_grabbedCursor, _cursor.width, _cursor.height,
+							_cursor.hotspotX, _cursor.hotspotY,
+							(_game.platform == Common::kPlatformNES ? _grabbedCursor[63] : transColor),
+							(_game.heversion == 70 ? 2 : 1),
+							&format);
+#else
 	CursorMan.replaceCursor(_grabbedCursor, _cursor.width, _cursor.height,
 							_cursor.hotspotX, _cursor.hotspotY,
 							(_game.platform == Common::kPlatformNES ? _grabbedCursor[63] : transColor),
 							(_game.heversion == 70 ? 2 : 1));
-#ifdef USE_RGB_COLOR
-	}
 #endif
 }
 
@@ -558,7 +554,7 @@ void ScummEngine_v5::setBuiltinCursor(int idx) {
 	uint16 color;
 	const uint16 *src = _cursorImages[_currentCursor];
 
-	if (_bytesPerPixelOutput == 2) {
+	if (_outputPixelFormat.bytesPerPixel == 2) {
 		if (_game.id == GID_LOOM && _game.platform == Common::kPlatformPCEngine) {
 			byte r, g, b;
 			colorPCEToRGB(default_pce_cursor_colors[idx], &r, &g, &b);
@@ -584,14 +580,14 @@ void ScummEngine_v5::setBuiltinCursor(int idx) {
 	_cursor.width = 16 * _textSurfaceMultiplier;
 	_cursor.height = 16 * _textSurfaceMultiplier;
 
-	int scl = _bytesPerPixelOutput * _textSurfaceMultiplier;
+	int scl = _outputPixelFormat.bytesPerPixel * _textSurfaceMultiplier;
 
 	for (i = 0; i < 16; i++) {
 		for (j = 0; j < 16; j++) {
 			if (src[i] & (1 << j)) {
 				byte *dst1 = _grabbedCursor + 16 * scl * i * _textSurfaceMultiplier + (15 - j) * scl;
 				byte *dst2 = (_textSurfaceMultiplier == 2) ? dst1 + 16 * scl : dst1;
-				if (_bytesPerPixelOutput == 2) {
+				if (_outputPixelFormat.bytesPerPixel == 2) {
 					for (int b = 0; b < scl; b += 2) {
 						*((uint16*)dst1) = *((uint16*)dst2) = color;
 						dst1 += 2;
diff --git a/engines/scumm/gfx.cpp b/engines/scumm/gfx.cpp
index 80c13d3..18afcd2 100644
--- a/engines/scumm/gfx.cpp
+++ b/engines/scumm/gfx.cpp
@@ -657,7 +657,7 @@ void ScummEngine::drawStripToScreen(VirtScreen *vs, int x, int width, int top, i
 			return;	
 		} else
 #endif	
-		if (_bytesPerPixelOutput == 2) {
+		if (_outputPixelFormat.bytesPerPixel == 2) {
 			const byte *srcPtr = (const byte *)src;
 			const byte *textPtr = (byte *)_textSurface.getBasePtr(x * m, y * m);
 			byte *dstPtr = _compositeBuf;
diff --git a/engines/scumm/gfx.h b/engines/scumm/gfx.h
index c6062ef..4bb63f0 100644
--- a/engines/scumm/gfx.h
+++ b/engines/scumm/gfx.h
@@ -429,7 +429,7 @@ public:
 // switching graphics layers on and off).
 class TownsScreen {
 public:
-	TownsScreen(OSystem *system, int width, int height, int bpp);
+	TownsScreen(OSystem *system, int width, int height, Graphics::PixelFormat &format);
 	~TownsScreen();
 
 	void setupLayer(int layer, int width, int height, int numCol, void *srcPal = 0);
@@ -476,7 +476,7 @@ private:
 	int _height;
 	int _width;
 	int _pitch;
-	int _bpp;
+	Graphics::PixelFormat _pixelFormat;
 	
 	int _numDirtyRects;
 	Common::List<Common::Rect> _dirtyRects;	
diff --git a/engines/scumm/gfx_towns.cpp b/engines/scumm/gfx_towns.cpp
index 2405026..ce68cb6 100644
--- a/engines/scumm/gfx_towns.cpp
+++ b/engines/scumm/gfx_towns.cpp
@@ -53,10 +53,10 @@ void ScummEngine::towns_drawStripToScreen(VirtScreen *vs, int dstX, int dstY, in
 				
 	if (vs->number == kMainVirtScreen || _game.id == GID_INDY3 || _game.id == GID_ZAK) {
 		for (int h = 0; h < height; ++h) {
-			if (_bytesPerPixelOutput == 2) {
+			if (_outputPixelFormat.bytesPerPixel == 2) {
 				for (int w = 0; w < width; ++w) {
 					*(uint16*)dst1 = _16BitPalette[*src1++];
-					dst1 += _bytesPerPixelOutput;
+					dst1 += _outputPixelFormat.bytesPerPixel;
 				}
 
 				src1 += sp1;
@@ -200,8 +200,8 @@ const uint8 ScummEngine::_townsLayer2Mask[] = {
 #define DIRTY_RECTS_MAX 20
 #define FULL_REDRAW (DIRTY_RECTS_MAX + 1)
 
-TownsScreen::TownsScreen(OSystem *system, int width, int height, int bpp) :
-	_system(system), _width(width), _height(height), _bpp(bpp), _pitch(width * bpp) {
+TownsScreen::TownsScreen(OSystem *system, int width, int height, Graphics::PixelFormat &format) :
+	_system(system), _width(width), _height(height), _pixelFormat(format), _pitch(width * format.bytesPerPixel) {
 	memset(&_layers[0], 0, sizeof(TownsScreenLayer));
 	memset(&_layers[1], 0, sizeof(TownsScreenLayer));
 	_outBuffer = new byte[_pitch * _height];
@@ -250,7 +250,7 @@ void TownsScreen::setupLayer(int layer, int width, int height, int numCol, void
 	l->pitch = width * l->bpp;
 	l->palette = (uint8*)pal;
 
-	if (l->palette && _bpp == 1)
+	if (l->palette && _pixelFormat.bytesPerPixel == 1)
 		warning("TownsScreen::setupLayer(): Layer palette usage requires 16 bit graphics setting.\nLayer palette will be ignored.");
 
 	delete[] l->pixels;
@@ -270,7 +270,7 @@ void TownsScreen::setupLayer(int layer, int width, int height, int numCol, void
 		l->bltInternY[i] = l->pixels + (i / l->scaleH) * l->pitch;
 
 	delete[] l->bltTmpPal;
-	l->bltTmpPal = (l->bpp == 1 && _bpp == 2) ? new uint16[l->numCol] : 0;
+	l->bltTmpPal = (l->bpp == 1 && _pixelFormat.bytesPerPixel == 2) ? new uint16[l->numCol] : 0;
 	
 	l->enabled = true;
 	_layers[0].onBottom = true;
@@ -452,20 +452,20 @@ void TownsScreen::updateOutputBuffer() {
 			if (!l->enabled || !l->ready)
 				continue;
 
-			uint8 *dst = _outBuffer + r->top * _pitch + r->left * _bpp;
-			int ptch = _pitch - (r->right - r->left + 1) * _bpp;
+			uint8 *dst = _outBuffer + r->top * _pitch + r->left * _pixelFormat.bytesPerPixel;
+			int ptch = _pitch - (r->right - r->left + 1) * _pixelFormat.bytesPerPixel;
 
-			if (_bpp == 2 && l->bpp == 1) {
+			if (_pixelFormat.bytesPerPixel == 2 && l->bpp == 1) {
 				for (int ic = 0; ic < l->numCol; ic++)
 					l->bltTmpPal[ic] = calc16BitColor(&l->palette[ic * 3]);
 			}
 
 			for (int y = r->top; y <= r->bottom; ++y) {
-				if (l->bpp == _bpp && l->scaleW == 1 && l->onBottom && l->numCol & 0xff00) {
-					memcpy(dst, &l->bltInternY[y][l->bltInternX[r->left]], (r->right + 1 - r->left) * _bpp);
+				if (l->bpp == _pixelFormat.bytesPerPixel && l->scaleW == 1 && l->onBottom && l->numCol & 0xff00) {
+					memcpy(dst, &l->bltInternY[y][l->bltInternX[r->left]], (r->right + 1 - r->left) * _pixelFormat.bytesPerPixel);
 					dst += _pitch;
 
-				} else if (_bpp == 2) {
+				} else if (_pixelFormat.bytesPerPixel == 2) {
 					for (int x = r->left; x <= r->right; ++x) {
 						uint8 *src = &l->bltInternY[y][l->bltInternX[x]];
 						if (l->bpp == 1) {
@@ -501,17 +501,13 @@ void TownsScreen::updateOutputBuffer() {
 
 void TownsScreen::outputToScreen() {
 	for (Common::List<Common::Rect>::iterator i = _dirtyRects.begin(); i != _dirtyRects.end(); ++i)
-		_system->copyRectToScreen(_outBuffer + i->top * _pitch + i->left * _bpp, _pitch, i->left, i->top, i->right - i->left + 1, i->bottom - i->top + 1);
+		_system->copyRectToScreen(_outBuffer + i->top * _pitch + i->left * _pixelFormat.bytesPerPixel, _pitch, i->left, i->top, i->right - i->left + 1, i->bottom - i->top + 1);
 	_dirtyRects.clear();
 	_numDirtyRects = 0;
 }
 
-uint16 TownsScreen::calc16BitColor(const uint8 *palEntry) {
-	uint16 ar = (palEntry[0] & 0xf8) << 7;
-	uint16 ag = (palEntry[1] & 0xf8) << 2;
-	uint16 ab = (palEntry[2] >> 3);
-	uint16 col = ar | ag | ab;
-	return col;
+uint16 TownsScreen::calc16BitColor(const uint8 *palEntry) {	
+	return _pixelFormat.RGBToColor(palEntry[0], palEntry[1], palEntry[2]);
 }
 
 #undef DIRTY_RECTS_MAX
diff --git a/engines/scumm/palette.cpp b/engines/scumm/palette.cpp
index 3388ec4..2a14ee4 100644
--- a/engines/scumm/palette.cpp
+++ b/engines/scumm/palette.cpp
@@ -51,11 +51,7 @@ uint8 *ScummEngine::getHEPaletteSlot(uint16 palSlot) {
 }
 
 uint16 ScummEngine::get16BitColor(uint8 r, uint8 g, uint8 b) {
-	uint16 ar = (r >> 3) << 10;
-	uint16 ag = (g >> 3) <<  5;
-	uint16 ab = (b >> 3) <<  0;
-	uint16 col = ar | ag | ab;
-	return col;
+	return _outputPixelFormat.RGBToColor(r, g, b);
 }
 
 void ScummEngine::resetPalette() {
@@ -225,12 +221,10 @@ void ScummEngine::resetPalette() {
 			if (_game.id == GID_INDY4 || _game.id == GID_MONKEY2)
 				_townsClearLayerFlag = 0;
 #ifdef USE_RGB_COLOR
-			else if (_bytesPerPixelOutput == 2) {
-				if (_game.id == GID_LOOM)
-					towns_setTextPaletteFromPtr(tableTownsLoomPalette);
-				else if (_game.version == 3)
-					towns_setTextPaletteFromPtr(tableTownsV3Palette);
-			}
+			else if (_game.id == GID_LOOM)
+				towns_setTextPaletteFromPtr(tableTownsLoomPalette);
+			else if (_game.version == 3)
+				towns_setTextPaletteFromPtr(tableTownsV3Palette);
 #endif
 
 			_townsScreen->toggleLayers(_townsActiveLayerFlags);
@@ -1022,7 +1016,7 @@ void ScummEngine::setCurrentPalette(int palindex) {
 		setPCEPaletteFromPtr(pals);
 #ifdef USE_RGB_COLOR
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
-	} else if (_game.platform == Common::kPlatformFMTowns && _bytesPerPixelOutput == 2) {
+	} else if (_game.platform == Common::kPlatformFMTowns) {
 		towns_setPaletteFromPtr(pals);
 #endif
 #endif
@@ -1125,7 +1119,7 @@ void ScummEngine::updatePalette() {
 
 #ifdef USE_RGB_COLOR
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
-	if (_game.platform == Common::kPlatformFMTowns && _bytesPerPixelOutput == 2) {
+	if (_game.platform == Common::kPlatformFMTowns) {
 		p = palette_colors;
 		for (i = first; i < first + num; ++i) {
 			_16BitPalette[i] = get16BitColor(p[0], p[1], p[2]);
diff --git a/engines/scumm/saveload.cpp b/engines/scumm/saveload.cpp
index 3bfe51a..796af2f 100644
--- a/engines/scumm/saveload.cpp
+++ b/engines/scumm/saveload.cpp
@@ -1493,7 +1493,7 @@ void ScummEngine_v5::saveOrLoad(Serializer *s) {
 
 	// Reset cursors for old FM-Towns savegames saved with 256 color setting.
 	// Otherwise the cursor will be messed up when displayed in the new hi color setting.
-	if (_game.platform == Common::kPlatformFMTowns && _bytesPerPixelOutput == 2 && s->isLoading() && s->getVersion() < VER(82)) {
+	if (_game.platform == Common::kPlatformFMTowns && _outputPixelFormat.bytesPerPixel == 2 && s->isLoading() && s->getVersion() < VER(82)) {
 		if (_game.id == GID_LOOM) {
 			redefineBuiltinCursorFromChar(1, 1);
 			redefineBuiltinCursorHotspot(1, 0, 0);
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 5925476..4100b8a 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -260,7 +260,7 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
 	_switchRoomEffect2 = 0;
 	_switchRoomEffect = 0;
 
-	_bytesPerPixelOutput = _bytesPerPixel = 1;
+	_bytesPerPixel = 1;
 	_doEffect = false;
 	_snapScroll = false;
 	_currentLights = 0;
@@ -545,18 +545,19 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
 		_screenHeight = 200;
 	}
 
-	_bytesPerPixelOutput = _bytesPerPixel = (_game.features & GF_16BIT_COLOR) ? 2 : 1;
+	_bytesPerPixel = (_game.features & GF_16BIT_COLOR) ? 2 : 1;
+	uint8 sizeMult = _bytesPerPixel;
 
 #ifdef USE_RGB_COLOR
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
 	if (_game.platform == Common::kPlatformFMTowns)
-		_bytesPerPixelOutput = 2;
+		sizeMult = 2;
 #endif
 #endif
 
 	// Allocate gfx compositing buffer (not needed for V7/V8 games).
 	if (_game.version < 7)
-		_compositeBuf = (byte *)malloc(_screenWidth * _screenHeight * _bytesPerPixelOutput);
+		_compositeBuf = (byte *)malloc(_screenWidth * _screenHeight * sizeMult);
 	else
 		_compositeBuf = 0;
 
@@ -1156,17 +1157,27 @@ Common::Error ScummEngine::init() {
 #endif
 			) {
 #ifdef USE_RGB_COLOR
-			Graphics::PixelFormat format = Graphics::PixelFormat(2, 5, 5, 5, 0, 10, 5, 0, 0);
-			initGraphics(screenWidth, screenHeight, screenWidth > 320, &format);
-			if (format != _system->getScreenFormat()) {
-				if (_game.platform == Common::kPlatformFMTowns && _game.version == 3) {
-					warning("Your ScummVM build does not support the type of 16bit color mode required by this target.\nStarting game in 8bit color mode...\nYou may experience color glitches");
-					_bytesPerPixelOutput = 1;
-					initGraphics(screenWidth, screenHeight, (screenWidth > 320));
-				} else {
-					return Common::kUnsupportedColorMode;
-				}
+			_outputPixelFormat = Graphics::PixelFormat(2, 5, 5, 5, 0, 10, 5, 0, 0);
+			Common::List<Graphics::PixelFormat> tryModes = _system->getSupportedFormats();
+			// Try default 555 mode first
+			tryModes.push_front(_outputPixelFormat);
+
+			for (Common::List<Graphics::PixelFormat>::iterator g = tryModes.begin(); g != tryModes.end(); ++g) {
+				if (g->bytesPerPixel != 2 || g->aBits())
+					continue;
+				_outputPixelFormat = *g;
+				initGraphics(screenWidth, screenHeight, screenWidth > 320, &_outputPixelFormat);
+				// athrxx-06/15/2011: To avoid regressions I add support for other modes than 555 only
+				// for FM-TOWNS games and for LOOM PCE atm.
+				// TODO: Someone knowledgeable about HE games might check whether other modes can be
+				// supported for these games, too. Quick tests with SPYOZON indicate that this should
+				// not be a problem.				
+				if (*g == _system->getScreenFormat() || (_game.platform != Common::kPlatformFMTowns && _game.platform != Common::kPlatformPCEngine))
+					break;
 			}
+			
+			if (_outputPixelFormat != _system->getScreenFormat())
+				return Common::kUnsupportedColorMode;
 #else
 			if (_game.platform == Common::kPlatformFMTowns && _game.version == 3) {
 				warning("Starting game without the required 16bit color support.\nYou may experience color glitches");
@@ -1184,6 +1195,8 @@ Common::Error ScummEngine::init() {
 		}
 	}
 
+	_outputPixelFormat = _system->getScreenFormat();
+
 	setupScumm();
 
 	readIndexFile();
@@ -1296,7 +1309,7 @@ void ScummEngine::setupScumm() {
 	_res->setHeapThreshold(400000, maxHeapThreshold);
 
 	free(_compositeBuf);
-	_compositeBuf = (byte *)malloc(_screenWidth * _textSurfaceMultiplier * _screenHeight * _textSurfaceMultiplier * _bytesPerPixelOutput);
+	_compositeBuf = (byte *)malloc(_screenWidth * _textSurfaceMultiplier * _screenHeight * _textSurfaceMultiplier * _outputPixelFormat.bytesPerPixel);
 }
 
 #ifdef ENABLE_SCUMM_7_8
@@ -1377,7 +1390,7 @@ void ScummEngine::resetScumm() {
 #ifdef USE_RGB_COLOR
 	if (_game.features & GF_16BIT_COLOR
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
-		|| (_game.platform == Common::kPlatformFMTowns && _bytesPerPixelOutput == 2)
+		|| (_game.platform == Common::kPlatformFMTowns)
 #endif
 		)
 		_16BitPalette = (uint16 *)calloc(512, sizeof(uint16));
@@ -1386,8 +1399,8 @@ void ScummEngine::resetScumm() {
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
 	if (_game.platform == Common::kPlatformFMTowns) {
 		delete _townsScreen;
-		_townsScreen = new TownsScreen(_system, _screenWidth * _textSurfaceMultiplier, _screenHeight * _textSurfaceMultiplier, _bytesPerPixelOutput);
-		_townsScreen->setupLayer(0, _screenWidth, _screenHeight, (_bytesPerPixelOutput == 2) ? 32767 : 256);
+		_townsScreen = new TownsScreen(_system, _screenWidth * _textSurfaceMultiplier, _screenHeight * _textSurfaceMultiplier, _outputPixelFormat);
+		_townsScreen->setupLayer(0, _screenWidth, _screenHeight, (_outputPixelFormat.bytesPerPixel == 2) ? 32767 : 256);
 		_townsScreen->setupLayer(1, _screenWidth * _textSurfaceMultiplier, _screenHeight * _textSurfaceMultiplier, 16, _textPalette);
 	}
 #endif
diff --git a/engines/scumm/scumm.h b/engines/scumm/scumm.h
index 62c6c70..bbfcc3e 100644
--- a/engines/scumm/scumm.h
+++ b/engines/scumm/scumm.h
@@ -971,7 +971,7 @@ public:
 
 	Common::RenderMode _renderMode;
 	uint8 _bytesPerPixel;
-	uint8 _bytesPerPixelOutput;
+	Graphics::PixelFormat _outputPixelFormat;
 
 protected:
 	ColorCycle _colorCycle[16];	// Palette cycles


Commit: 3c26c9b24d21e169a50f4b2cde9d202676f4ac1b
    https://github.com/scummvm/scummvm/commit/3c26c9b24d21e169a50f4b2cde9d202676f4ac1b
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-15T13:59:56-07:00

Commit Message:
SCUMM: change comment in last commit

Changed paths:
    engines/scumm/scumm.cpp



diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 4100b8a..c6dd2ad 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -1167,11 +1167,8 @@ Common::Error ScummEngine::init() {
 					continue;
 				_outputPixelFormat = *g;
 				initGraphics(screenWidth, screenHeight, screenWidth > 320, &_outputPixelFormat);
-				// athrxx-06/15/2011: To avoid regressions I add support for other modes than 555 only
-				// for FM-TOWNS games and for LOOM PCE atm.
-				// TODO: Someone knowledgeable about HE games might check whether other modes can be
-				// supported for these games, too. Quick tests with SPYOZON indicate that this should
-				// not be a problem.				
+				// Other modes than 555 are only supported for FM-TOWNS games and LOOM PCE.
+				// Especially the HE games require 555.
 				if (*g == _system->getScreenFormat() || (_game.platform != Common::kPlatformFMTowns && _game.platform != Common::kPlatformPCEngine))
 					break;
 			}


Commit: cc9bcd01d1b799819034afb8d38ef5f0d4602d53
    https://github.com/scummvm/scummvm/commit/cc9bcd01d1b799819034afb8d38ef5f0d4602d53
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-17T15:10:11-07:00

Commit Message:
SCUMM: slightly changed behavior of 16bit mode detection

(another attempt to fix SCUMM FM-TOWNS for ANDROID)

Changed paths:
    engines/scumm/charset.cpp
    engines/scumm/scumm.cpp



diff --git a/engines/scumm/charset.cpp b/engines/scumm/charset.cpp
index 861e448..b412d67 100644
--- a/engines/scumm/charset.cpp
+++ b/engines/scumm/charset.cpp
@@ -53,6 +53,7 @@ void ScummEngine::loadCJKFont() {
 
 	if (_game.version <= 5 && _game.platform == Common::kPlatformFMTowns && _language == Common::JA_JPN) { // FM-TOWNS v3 / v5 Kanji
 #ifdef DISABLE_TOWNS_DUAL_LAYER_MODE
+		GUIErrorMessage("FM-Towns Kanji font drawing requires dual graphics layer support which is disabled in this build");
 		error("FM-Towns Kanji font drawing requires dual graphics layer support which is disabled in this build");
 #else
 		// use FM-TOWNS font rom, since game files don't have kanji font resources
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index c6dd2ad..98bc46b 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -1157,24 +1157,29 @@ Common::Error ScummEngine::init() {
 #endif
 			) {
 #ifdef USE_RGB_COLOR
-			_outputPixelFormat = Graphics::PixelFormat(2, 5, 5, 5, 0, 10, 5, 0, 0);
-			Common::List<Graphics::PixelFormat> tryModes = _system->getSupportedFormats();
-			// Try default 555 mode first
-			tryModes.push_front(_outputPixelFormat);
-
-			for (Common::List<Graphics::PixelFormat>::iterator g = tryModes.begin(); g != tryModes.end(); ++g) {
-				if (g->bytesPerPixel != 2 || g->aBits())
-					continue;
-				_outputPixelFormat = *g;
+			_outputPixelFormat = Graphics::PixelFormat(2, 5, 5, 5, 0, 10, 5, 0, 0);			
+
+			if (_game.platform != Common::kPlatformFMTowns && _game.platform != Common::kPlatformPCEngine) {
 				initGraphics(screenWidth, screenHeight, screenWidth > 320, &_outputPixelFormat);
-				// Other modes than 555 are only supported for FM-TOWNS games and LOOM PCE.
-				// Especially the HE games require 555.
-				if (*g == _system->getScreenFormat() || (_game.platform != Common::kPlatformFMTowns && _game.platform != Common::kPlatformPCEngine))
-					break;
+				if (_outputPixelFormat != _system->getScreenFormat())
+					return Common::kUnsupportedColorMode;
+			} else {
+				Common::List<Graphics::PixelFormat> tryModes = _system->getSupportedFormats();								
+				for (Common::List<Graphics::PixelFormat>::iterator g = tryModes.begin(); g != tryModes.end(); ++g) {
+					if (g->bytesPerPixel != 2 || g->aBits())
+						g = tryModes.erase(g);
+
+					if (*g == _outputPixelFormat) {
+						tryModes.clear();
+						tryModes.push_back(_outputPixelFormat);
+						break;
+					}
+				}
+				
+				initGraphics(screenWidth, screenHeight, screenWidth > 320, tryModes);
+				if (_system->getScreenFormat().bytesPerPixel != 2)
+					return Common::kUnsupportedColorMode;
 			}
-			
-			if (_outputPixelFormat != _system->getScreenFormat())
-				return Common::kUnsupportedColorMode;
 #else
 			if (_game.platform == Common::kPlatformFMTowns && _game.version == 3) {
 				warning("Starting game without the required 16bit color support.\nYou may experience color glitches");
@@ -1186,7 +1191,7 @@ Common::Error ScummEngine::init() {
 		} else {
 #ifdef DISABLE_TOWNS_DUAL_LAYER_MODE
 		if (_game.platform == Common::kPlatformFMTowns && _game.version == 5)
-			error("This game requires dual graphics layer support which is disabled in this build");
+			return Common::Error(Common::kUnsupportedColorMode, "This game requires dual graphics layer support which is disabled in this build");
 #endif
 			initGraphics(screenWidth, screenHeight, (screenWidth > 320));
 		}


Commit: d09701e705247507038521d20f17b23ebd8630f1
    https://github.com/scummvm/scummvm/commit/d09701e705247507038521d20f17b23ebd8630f1
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-17T15:10:12-07:00

Commit Message:
SCUMM: fix bug in cb661d63d0cd45d1231435a593b74dfc51872a0f

Changed paths:
    engines/scumm/scumm.cpp



diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 98bc46b..ba0c167 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -1166,8 +1166,10 @@ Common::Error ScummEngine::init() {
 			} else {
 				Common::List<Graphics::PixelFormat> tryModes = _system->getSupportedFormats();								
 				for (Common::List<Graphics::PixelFormat>::iterator g = tryModes.begin(); g != tryModes.end(); ++g) {
-					if (g->bytesPerPixel != 2 || g->aBits())
+					if (g->bytesPerPixel != 2 || g->aBits()) {
 						g = tryModes.erase(g);
+						g--;
+					}
 
 					if (*g == _outputPixelFormat) {
 						tryModes.clear();


Commit: 87e525932c0803b98216d5c83fbd6bf72e692740
    https://github.com/scummvm/scummvm/commit/87e525932c0803b98216d5c83fbd6bf72e692740
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-17T15:10:14-07:00

Commit Message:
SCUMM: fix FM-TOWNS graphics output for ARM devices

(changed behavior of USE_ARM_GFX_ASM define)

Changed paths:
    engines/scumm/gfx.cpp
    engines/scumm/gfx_towns.cpp



diff --git a/engines/scumm/gfx.cpp b/engines/scumm/gfx.cpp
index 18afcd2..82f37b8 100644
--- a/engines/scumm/gfx.cpp
+++ b/engines/scumm/gfx.cpp
@@ -648,15 +648,15 @@ void ScummEngine::drawStripToScreen(VirtScreen *vs, int x, int width, int top, i
 		assert(0 == (width & 3));
 
 		// Compose the text over the game graphics
-#ifdef USE_ARM_GFX_ASM
-		asmDrawStripToScreen(height, width, text, src, _compositeBuf, vs->pitch, width, _textSurface.pitch);
-#else
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
 		if (_game.platform == Common::kPlatformFMTowns) {
 			towns_drawStripToScreen(vs, x, y, x, top, width, height);
 			return;	
 		} else
 #endif	
+#ifdef USE_ARM_GFX_ASM
+		asmDrawStripToScreen(height, width, text, src, _compositeBuf, vs->pitch, width, _textSurface.pitch);
+#else
 		if (_outputPixelFormat.bytesPerPixel == 2) {
 			const byte *srcPtr = (const byte *)src;
 			const byte *textPtr = (byte *)_textSurface.getBasePtr(x * m, y * m);
diff --git a/engines/scumm/gfx_towns.cpp b/engines/scumm/gfx_towns.cpp
index ce68cb6..be5efe7 100644
--- a/engines/scumm/gfx_towns.cpp
+++ b/engines/scumm/gfx_towns.cpp
@@ -456,6 +456,8 @@ void TownsScreen::updateOutputBuffer() {
 			int ptch = _pitch - (r->right - r->left + 1) * _pixelFormat.bytesPerPixel;
 
 			if (_pixelFormat.bytesPerPixel == 2 && l->bpp == 1) {
+				if (!l->palette)
+					error("void TownsScreen::updateOutputBuffer(): No palette assigned to 8 bit layer %d", i);
 				for (int ic = 0; ic < l->numCol; ic++)
 					l->bltTmpPal[ic] = calc16BitColor(&l->palette[ic * 3]);
 			}


Commit: d9f6aea085adaa8318e1b3e71fda15f7174e4e83
    https://github.com/scummvm/scummvm/commit/d9f6aea085adaa8318e1b3e71fda15f7174e4e83
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-18T04:14:51-07:00

Commit Message:
NEWS: start 1.3.1 section

Changed paths:
    NEWS



diff --git a/NEWS b/NEWS
index 2c8f85a..5883b10 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,18 @@
 For a more comprehensive changelog of the latest experimental code, see:
         https://github.com/scummvm/scummvm/commits/
 
+1.3.1
+ General:
+   - Improved audio device detection and fallback.
+     There should be no more silent errors due to invalid audio devices.
+	 Instead ScummVM should pick up a suitable alternative device.
+
+ SCUMM:
+   - Fixed graphics bug in FM-TOWNS versions of games on ARM devices (Android, iPhone, etc.)
+ 
+
+
+
 1.3.0 (2011-05-28)
  New Games:
    - Added support for Backyard Baseball.


Commit: 6804df0f89438d12eb4876c12f64df6966f985da
    https://github.com/scummvm/scummvm/commit/6804df0f89438d12eb4876c12f64df6966f985da
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-18T04:15:29-07:00

Commit Message:
SCUMM: make sure asmDrawStripToScreen is not called in 16bit mode

(fixes possible issue in LOOM PCE)

Changed paths:
    engines/scumm/gfx.cpp



diff --git a/engines/scumm/gfx.cpp b/engines/scumm/gfx.cpp
index 82f37b8..5386f6a 100644
--- a/engines/scumm/gfx.cpp
+++ b/engines/scumm/gfx.cpp
@@ -654,9 +654,6 @@ void ScummEngine::drawStripToScreen(VirtScreen *vs, int x, int width, int top, i
 			return;	
 		} else
 #endif	
-#ifdef USE_ARM_GFX_ASM
-		asmDrawStripToScreen(height, width, text, src, _compositeBuf, vs->pitch, width, _textSurface.pitch);
-#else
 		if (_outputPixelFormat.bytesPerPixel == 2) {
 			const byte *srcPtr = (const byte *)src;
 			const byte *textPtr = (byte *)_textSurface.getBasePtr(x * m, y * m);
@@ -678,7 +675,11 @@ void ScummEngine::drawStripToScreen(VirtScreen *vs, int x, int width, int top, i
 				srcPtr += vsPitch;
 				textPtr += _textSurface.pitch - width * m;
 			}
-		} else {
+		}
+#ifdef USE_ARM_GFX_ASM
+		asmDrawStripToScreen(height, width, text, src, _compositeBuf, vs->pitch, width, _textSurface.pitch);
+#else
+		else {
 			// We blit four pixels at a time, for improved performance.
 			const uint32 *src32 = (const uint32 *)src;
 			uint32 *dst32 = (uint32 *)_compositeBuf;


Commit: 77571fab08d3817fe5c93acf7435f6008584d269
    https://github.com/scummvm/scummvm/commit/77571fab08d3817fe5c93acf7435f6008584d269
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-18T10:54:50-07:00

Commit Message:
SCUMM: regenerate 16bit palette after loading a savegame in LOOM PCE

(this avoids isssues when using savegames from different ports with different 16bit color modes)

Changed paths:
    engines/scumm/saveload.cpp



diff --git a/engines/scumm/saveload.cpp b/engines/scumm/saveload.cpp
index 796af2f..8091d17 100644
--- a/engines/scumm/saveload.cpp
+++ b/engines/scumm/saveload.cpp
@@ -1501,6 +1501,16 @@ void ScummEngine_v5::saveOrLoad(Serializer *s) {
 			resetCursors();
 		}
 	}
+
+	// Regenerate 16bit palette after loading.
+	// This avoids color issues when loading savegames that have been saved with a different ScummVM port
+	// that uses a different 16bit color mode than the ScummVM port which is currently used.
+#ifdef USE_RGB_COLOR
+	if (_game.platform == Common::kPlatformPCEngine && s->isLoading()) {
+		for (int i = 0; i < 256; ++i)
+			_16BitPalette[i] = get16BitColor(_currentPalette[i * 3 + 0], _currentPalette[i * 3 + 1], _currentPalette[i * 3 + 2]);
+	}
+#endif
 }
 
 #ifdef ENABLE_SCUMM_7_8


Commit: e17a33c81e679aeddcc2f9fb6f923b428ff7c8a9
    https://github.com/scummvm/scummvm/commit/e17a33c81e679aeddcc2f9fb6f923b428ff7c8a9
Author: athrxx (athrxx at scummvm.org)
Date: 2011-06-19T05:49:03-07:00

Commit Message:
SCUMM: fix SCUMM3 FM-TOWNS font rendering glitch in Japanese mode

(Wrong character height for non-SJIS chars which messed up the inventory scrolling arrows)

Changed paths:
    engines/scumm/charset.cpp



diff --git a/engines/scumm/charset.cpp b/engines/scumm/charset.cpp
index b412d67..cb45dde 100644
--- a/engines/scumm/charset.cpp
+++ b/engines/scumm/charset.cpp
@@ -791,8 +791,10 @@ void CharsetRendererV3::printChar(int chr, bool ignoreCharsetMask) {
 		else if (_vm->_cjkFont)
 			_vm->_cjkFont->drawChar(_vm->_textSurface, chr, _left * _vm->_textSurfaceMultiplier, _top * _vm->_textSurfaceMultiplier, _color, _shadowColor);
 #endif
-		if (is2byte)
+		if (is2byte) {
 			origWidth /= _vm->_textSurfaceMultiplier;
+			height /= _vm->_textSurfaceMultiplier;
+		}
 	}
 
 	if (_str.left > _left)
@@ -806,8 +808,8 @@ void CharsetRendererV3::printChar(int chr, bool ignoreCharsetMask) {
 			_str.right++;
 	}
 
-	if (_str.bottom < _top + height / _vm->_textSurfaceMultiplier)
-		_str.bottom = _top + height / _vm->_textSurfaceMultiplier;
+	if (_str.bottom < _top + height)
+		_str.bottom = _top + height;
 }
 
 void CharsetRendererV3::drawChar(int chr, Graphics::Surface &s, int x, int y) {


Commit: 712579f4afde04fe734e064621c35db36b04f6ff
    https://github.com/scummvm/scummvm/commit/712579f4afde04fe734e064621c35db36b04f6ff
Author: Alyssa Milburn (fuzzie at fuzzie.org)
Date: 2011-06-20T08:56:13-07:00

Commit Message:
TINSEL: Fix/comment CORO_KILL_SELF macro.

This reverts 9573b1d2f54818f9bdac4a91e0a90b306ade7810, which changed
the behaviour of (among other things) NewScene, which made Discworld
uncompletable. Thanks to digitall for bisection/reproduction.

Changed paths:
    engines/tinsel/coroutine.h



diff --git a/engines/tinsel/coroutine.h b/engines/tinsel/coroutine.h
index b14030c..4520531 100644
--- a/engines/tinsel/coroutine.h
+++ b/engines/tinsel/coroutine.h
@@ -181,10 +181,15 @@ public:
 #define CORO_RESCHEDULE do { g_scheduler->reschedule(); CORO_SLEEP(1); } while (0)
 
 /**
- * Stop the currently running coroutine.
+ * Stop the currently running coroutine and all calling coroutines.
+ *
+ * This sets _sleep to -1 rather than 0 so that the context doesn't get
+ * deleted by CoroContextHolder, since we want CORO_INVOKE_ARGS to
+ * propogate the _sleep value and return immediately (the scheduler will
+ * then delete the entire coroutine's state, including all subcontexts).
  */
 #define CORO_KILL_SELF() \
-		do { if (&coroParam != &nullContext) { coroParam->_sleep = 0; } return; } while (0)
+		do { if (&coroParam != &nullContext) { coroParam->_sleep = -1; } return; } while (0)
 
 
 /**
@@ -196,8 +201,12 @@ public:
 /**
  * Invoke another coroutine.
  *
- * What makes this tricky is that the coroutine we called my yield/sleep,
- * and we need to deal with this adequately.
+ * If the subcontext still exists after the coroutine is invoked, it has
+ * either yielded/slept or killed itself, and so we copy the _sleep value
+ * to our own context and return (execution will continue at the case
+ * statement below, where we loop and call the coroutine again).
+ * If the subcontext is null, the coroutine ended normally, and we can
+ * simply break out of the loop and continue execution.
  *
  * @param subCoro	name of the coroutine-enabled function to invoke
  * @param ARGS		list of arguments to pass to subCoro


Commit: ee6765aab9cb670bd60f5428a0eae29593c2739d
    https://github.com/scummvm/scummvm/commit/ee6765aab9cb670bd60f5428a0eae29593c2739d
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2011-06-21T04:54:59-07:00

Commit Message:
NEWS: Fix 1.3.1 news entry.

Changed paths:
    NEWS



diff --git a/NEWS b/NEWS
index 5883b10..cd80452 100644
--- a/NEWS
+++ b/NEWS
@@ -1,17 +1,15 @@
 For a more comprehensive changelog of the latest experimental code, see:
         https://github.com/scummvm/scummvm/commits/
 
-1.3.1
+1.3.1 (????-??-??)
  General:
    - Improved audio device detection and fallback.
      There should be no more silent errors due to invalid audio devices.
-	 Instead ScummVM should pick up a suitable alternative device.
+     Instead ScummVM should pick up a suitable alternative device.
 
  SCUMM:
-   - Fixed graphics bug in FM-TOWNS versions of games on ARM devices (Android, iPhone, etc.)
- 
-
-
+   - Fixed graphics bug in FM-TOWNS versions of games on ARM devices
+     (Android, iPhone, etc.).
 
 1.3.0 (2011-05-28)
  New Games:


Commit: fc5c25e36ed26e1a4c0861ae4d6fae3123084fab
    https://github.com/scummvm/scummvm/commit/fc5c25e36ed26e1a4c0861ae4d6fae3123084fab
Author: Alyssa Milburn (fuzzie at fuzzie.org)
Date: 2011-06-22T09:36:46-07:00

Commit Message:
NEWS: Mention Tinsel fix.

Changed paths:
    NEWS



diff --git a/NEWS b/NEWS
index cd80452..64710dd 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,9 @@ For a more comprehensive changelog of the latest experimental code, see:
      There should be no more silent errors due to invalid audio devices.
      Instead ScummVM should pick up a suitable alternative device.
 
+ Tinsel:
+   - Fixed a regression that made Discworld uncompletable.
+
  SCUMM:
    - Fixed graphics bug in FM-TOWNS versions of games on ARM devices
      (Android, iPhone, etc.).


Commit: 0568c9540e43da6fe1c98aed8743b1665b55405c
    https://github.com/scummvm/scummvm/commit/0568c9540e43da6fe1c98aed8743b1665b55405c
Author: md5 (md5 at scummvm.org)
Date: 2011-06-24T01:15:04-07:00

Commit Message:
SCI: Added the Spanish version of EcoQuest 2 (bug #3313962)

(cherry picked from commit 1f0f0595c46cc083dc2c6f00be1abf7f55a7b175)

Changed paths:
    engines/sci/detection_tables.h



diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index 829831d..82843d6 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -506,6 +506,14 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		AD_LISTEND},
 		Common::FR_FRA, Common::kPlatformPC, 0, GUIO_NOSPEECH	},
 
+	// Eco Quest 2 - Spanish DOS Floppy (supplied by umbrio in bug report #3313962)
+	{"ecoquest2", "Floppy", {
+		{"resource.map", 0, "a6b271b934afa7e84d03816a4fefa67b", 5593},
+		{"resource.000", 0, "1c4093f7248240329121fdf8c0d59152", 4209150},
+		{"resource.msg", 0, "eff8be1925d42288de55e405983e9314", 117810},
+		AD_LISTEND},
+		Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NOSPEECH	},
+
 	// Freddy Pharkas - English DOS demo (from FRG)
 	// SCI interpreter version 1.001.069
 	{"freddypharkas", "Demo", {


Commit: 4a8bda64615232c9c0816852160e51f62c958ae6
    https://github.com/scummvm/scummvm/commit/4a8bda64615232c9c0816852160e51f62c958ae6
Author: md5 (md5 at scummvm.org)
Date: 2011-06-24T01:15:06-07:00

Commit Message:
SCI: Fixed script bug #3313962 - "ECOQUEST2 Spanish: Crash near beginning"

(cherry picked from commit ece449298d5c34db763ae78b370842de17af17ef)

Changed paths:
    engines/sci/engine/workarounds.cpp



diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp
index e8eb78f..e856b4b 100644
--- a/engines/sci/engine/workarounds.cpp
+++ b/engines/sci/engine/workarounds.cpp
@@ -37,6 +37,7 @@ namespace Sci {
 const SciWorkaroundEntry arithmeticWorkarounds[] = {
 	{ GID_CAMELOT,         92,   92,  0,     "endingCartoon2", "changeState", 0x20d,    0, { WORKAROUND_FAKE,   0 } }, // op_lai: during the ending, sub gets called with no parameters, uses parameter 1 which is theGrail in this case - bug #3044734
 	{ GID_ECOQUEST2,      100,    0,  0,               "Rain", "points",      0xcc6,    0, { WORKAROUND_FAKE,   0 } }, // op_or: when giving the papers to the customs officer, gets called against a pointer instead of a number - bug #3034464
+	{ GID_ECOQUEST2,      100,    0,  0,               "Rain", "points",      0xce0,    0, { WORKAROUND_FAKE,   0 } }, // Same as above, for the Spanish version - bug #3313962
 	{ GID_FANMADE,        516,  983,  0,             "Wander", "setTarget",      -1,    0, { WORKAROUND_FAKE,   0 } }, // op_mul: The Legend of the Lost Jewel Demo (fan made): called with object as second parameter when attacked by insects - bug #3038913
 	{ GID_ICEMAN,         199,  977,  0,            "Grooper", "doit",           -1,    0, { WORKAROUND_FAKE,   0 } }, // op_add: While dancing with the girl
 	{ GID_MOTHERGOOSE256,  -1,  999,  0,              "Event", "new",            -1,    0, { WORKAROUND_FAKE,   0 } }, // op_and: constantly during the game (SCI1 version)


Commit: 6bfaddd70bee191a6668dffa345bec091362781e
    https://github.com/scummvm/scummvm/commit/6bfaddd70bee191a6668dffa345bec091362781e
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-06-24T16:11:36-07:00

Commit Message:
WINCE: Hide toolbar when returning to game list

Changed paths:
    backends/graphics/wincesdl/wincesdl-graphics.cpp
    backends/graphics/wincesdl/wincesdl-graphics.h
    backends/platform/wince/CELauncherDialog.cpp



diff --git a/backends/graphics/wincesdl/wincesdl-graphics.cpp b/backends/graphics/wincesdl/wincesdl-graphics.cpp
index cbee396..15b5365 100644
--- a/backends/graphics/wincesdl/wincesdl-graphics.cpp
+++ b/backends/graphics/wincesdl/wincesdl-graphics.cpp
@@ -1602,6 +1602,19 @@ void WINCESdlGraphicsManager::swap_mouse_visibility() {
 		undrawMouse();
 }
 
+void WINCESdlGraphicsManager::init_panel() {
+	_panelVisible = true;
+	if (_panelInitialized) {
+		_toolbarHandler.setVisible(true);
+		_toolbarHandler.setActive(NAME_MAIN_PANEL);
+	}
+}
+
+void WINCESdlGraphicsManager::reset_panel() {
+	_panelVisible = false;
+	_toolbarHandler.setVisible(false);
+}
+
 // Smartphone actions
 void WINCESdlGraphicsManager::initZones() {
 	int i;
diff --git a/backends/graphics/wincesdl/wincesdl-graphics.h b/backends/graphics/wincesdl/wincesdl-graphics.h
index 350255a..112b9d2 100644
--- a/backends/graphics/wincesdl/wincesdl-graphics.h
+++ b/backends/graphics/wincesdl/wincesdl-graphics.h
@@ -93,6 +93,8 @@ public:
 	void swap_zoom_up();
 	void swap_zoom_down();
 	void swap_mouse_visibility();
+	void init_panel();
+	void reset_panel();
 	void swap_freeLook();
 	bool getFreeLookState();
 
diff --git a/backends/platform/wince/CELauncherDialog.cpp b/backends/platform/wince/CELauncherDialog.cpp
index 8824af7..f79ec3a 100644
--- a/backends/platform/wince/CELauncherDialog.cpp
+++ b/backends/platform/wince/CELauncherDialog.cpp
@@ -27,6 +27,7 @@
 #define FORBIDDEN_SYMBOL_ALLOW_ALL
 
 #include "backends/platform/wince/wince-sdl.h"
+#include "backends/graphics/wincesdl/wincesdl-graphics.h"
 
 #include "CELauncherDialog.h"
 
@@ -37,6 +38,7 @@
 #include "gui/browser.h"
 #include "gui/message.h"
 #include "gui/ThemeEval.h"
+#include "gui/widgets/list.h"
 
 #include "common/config-manager.h"
 
@@ -69,9 +71,13 @@ public:
 };
 
 CELauncherDialog::CELauncherDialog() : GUI::LauncherDialog() {
+	((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->reset_panel();
 }
 
 void CELauncherDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
+	if ((cmd == 'STRT') || (cmd == kListItemActivatedCmd) || (cmd == kListItemDoubleClickedCmd)) {
+		((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->init_panel();
+	}
 	LauncherDialog::handleCommand(sender, cmd, data);
 	if (cmd == 'ABOU') {
 		CEAboutDialog about;


Commit: 2165c6887a8395c02731ba2401e00e349b7a402a
    https://github.com/scummvm/scummvm/commit/2165c6887a8395c02731ba2401e00e349b7a402a
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-06-25T01:05:43-07:00

Commit Message:
SCI: Added the Mac versions of LSL1, LSL5 and Dr. Brain 1

Taken from bug reports #3328251, #3328262 and #3328257.
Thanks to omer_mor for reporting these

Changed paths:
    engines/sci/detection_tables.h



diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index 82843d6..dedf823 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -63,7 +63,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		AD_LISTEND},
 		Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH	},
 
-	// Castle of Dr. Brain - German Amiga (from www.back2roots.org, also includes english language)
+	// Castle of Dr. Brain - German Amiga (from www.back2roots.org, also includes English language)
 	// Executable scanning reports "1.005.001"
 	// SCI interpreter version 1.000.510
 	{"castlebrain", "", {
@@ -75,6 +75,16 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		AD_LISTEND},
 		Common::DE_DEU, Common::kPlatformAmiga, ADGF_ADDENGLISH, GUIO_NOSPEECH	},
 
+	// Castle of Dr. Brain Macintosh (from omer_mor, bug report #3328251)
+	{"castlebrain", "", {
+		{"resource.map", 0, "75cb06a94d2e0641295edd043f26f3a8", 2763},
+		{"resource.000", 0, "27ec5fa09cd12a7fd16e86d96a2ed245", 476566},
+		{"resource.001", 0, "7f7da982f5cd868e1e608cd4f6515656", 400521},
+		{"resource.002", 0, "e1a6b6f1060f60be9dcb6d28ad7a2a20", 1168310},
+		{"resource.003", 0, "6c3d1bb26ad532c94046bc9ac49b5ff4", 891295},
+		AD_LISTEND},
+		Common::EN_ANY, Common::kPlatformMacintosh, 0, GUIO_NOSPEECH	},
+
 	// Castle of Dr. Brain - English DOS Non-Interactive Demo
 	// SCI interpreter version 1.000.005
 	{"castlebrain", "Demo", {
@@ -1663,6 +1673,15 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		AD_LISTEND},
 		Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH	},
 
+	// Larry 1 VGA Remake - English Macintosh (from omer_mor, bug report #3328262)
+	{"lsl1sci", "SCI", {
+		{"resource.map", 0, "6395e7f7881e37e39d81ff5175a35f6f", 3237},
+		{"resource.000", 0, "5933df4ea688584d6f59fdea5a9404f8", 989066},
+		{"resource.001", 0, "aa6f153f70f1e32d1bde465fff08eecf", 1137418},
+		{"resource.002", 0, "b22c616aa789ebef990290c7ffd86548", 1097477},
+		AD_LISTEND},
+		Common::EN_ANY, Common::kPlatformMacintosh, 0, GUIO_NOSPEECH	},
+
 	// Larry 1 VGA Remake - English DOS Non-Interactive Demo
 	// SCI interpreter version 1.000.084
 	{"lsl1sci", "SCI/Demo", {
@@ -1926,6 +1945,20 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		AD_LISTEND},
 		Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH	},
 
+	// Larry 5 - English Macintosh (from omer_mor, bug report #3328257)
+	{"lsl5", "", {
+		{"resource.map", 0, "f12439da78b9878e16436661deb83f84", 6525},
+		{"resource.000", 0, "f2537473213d70e7f4fc82e988ab90ca", 702403},
+		{"resource.001", 0, "db4a1381d88028876a99303bfaaba893", 704679},
+		{"resource.002", 0, "e86aeb27711f4a673e06ec32cfc84125", 1125854},
+		{"resource.003", 0, "13fd4942bb818f9acd2970d66fca6509", 854733},
+		{"resource.004", 0, "999f407c9f38f937d4b8c4230ff5bb38", 1046644},
+		{"resource.005", 0, "0cc8d35a744031c772ca7cd21ae95273", 1008293},
+		{"resource.006", 0, "dda27ce00682aa76198dac124bbbe334", 1110043},
+		{"resource.007", 0, "ac443fae1285fb359bf2b2bc6a7301ae", 989801},
+		AD_LISTEND},
+		Common::EN_ANY, Common::kPlatformMacintosh, 0, GUIO_NOSPEECH	},
+
 	// Larry 5 - German DOS (from Tobis87)
 	// SCI interpreter version T.A00.196
 	{"lsl5", "", {


Commit: 41359c7f32b2ffeb6fe08054444daa6e784c8b0d
    https://github.com/scummvm/scummvm/commit/41359c7f32b2ffeb6fe08054444daa6e784c8b0d
Author: D G Turner (digitall at scummvm.org)
Date: 2011-06-25T01:28:10-07:00

Commit Message:
SAGA: Fix Bug #3323722 ("IHNM: Crash to desktop in Ellen's Adventure")

Thanks to fuzzie for this fix.
IHNM and ITE should be retested.

Changed paths:
    engines/saga/actor.cpp



diff --git a/engines/saga/actor.cpp b/engines/saga/actor.cpp
index 8e2ce4f..79702c7 100644
--- a/engines/saga/actor.cpp
+++ b/engines/saga/actor.cpp
@@ -388,6 +388,7 @@ void Actor::loadActorList(int protagonistIdx, int actorCount, int actorsResource
 
 	ByteArrayReadStreamEndian actorS(actorListData);
 
+	_actors.clear();
 	_actors.resize(actorCount);
 	i = 0;
 	for (ActorDataArray::iterator actor = _actors.begin(); actor != _actors.end(); ++actor, i++) {


Commit: 7a60ce40400cb74c2445f7119453f9052f3defa8
    https://github.com/scummvm/scummvm/commit/7a60ce40400cb74c2445f7119453f9052f3defa8
Author: D G Turner (digitall at scummvm.org)
Date: 2011-06-25T01:28:10-07:00

Commit Message:
SAGA: Fix for Bug #3324850 ("ITE (SAGA): crash in dog sewers")

This read of 1 byte past the end of the buffer has existed since
the dragonMove() function was implemented, but since the change
in bfb0986c to use ByteArray, this now causes an assertion due to
the stricter bounds checking.

This commit corrects the original issue.
Thanks to fuzzie for this fix.

Changed paths:
    engines/saga/actor_walk.cpp



diff --git a/engines/saga/actor_walk.cpp b/engines/saga/actor_walk.cpp
index 6aabf27..11fff19 100644
--- a/engines/saga/actor_walk.cpp
+++ b/engines/saga/actor_walk.cpp
@@ -1168,7 +1168,15 @@ void Actor::moveDragon(ActorData *actor) {
 		dir0 = actor->_actionDirection;
 		dir1 = actor->_tileDirections[actor->_walkStepIndex++];
 		dir2 = actor->_tileDirections[actor->_walkStepIndex];
-		dir3 = actor->_tileDirections[actor->_walkStepIndex + 1];
+		// Fix for Bug #3324850 ("ITE (SAGA): crash in dog sewers")
+		// If there were more than two steps left, get the third (next) step.
+		// Otherwise, store the second step again so the anim looks right.
+		// (If you stop the move instead, Rif isn't automatically knocked into
+		// the Sewer.)
+		if (actor->_walkStepIndex + 1 < actor->_walkStepsCount)
+			dir3 = actor->_tileDirections[actor->_walkStepIndex + 1];
+		else
+			dir3 = dir2;
 
 		if (dir0 != dir1){
 			actor->_actionDirection = dir0 = dir1;


Commit: c0c33ea78c1c67801f008dfdade47fc3dce30772
    https://github.com/scummvm/scummvm/commit/c0c33ea78c1c67801f008dfdade47fc3dce30772
Author: Alyssa Milburn (fuzzie at fuzzie.org)
Date: 2011-06-25T01:28:10-07:00

Commit Message:
MOHAWK: Add a bunch of LB detection entries.

Changed paths:
    engines/mohawk/detection_tables.h



diff --git a/engines/mohawk/detection_tables.h b/engines/mohawk/detection_tables.h
index 36dbcbd..dd6d58a 100644
--- a/engines/mohawk/detection_tables.h
+++ b/engines/mohawk/detection_tables.h
@@ -530,7 +530,7 @@ static const MohawkGameDescription gameDescriptions[] = {
 			"harryhh",
 			"",
 			AD_ENTRY1("HHHB.LB", "267bb6e3c8f237ca98b02c07b9c4013f"),
-			Common::EN_ANY,
+			Common::EN_GRB,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
 			Common::GUIO_NONE
@@ -576,6 +576,54 @@ static const MohawkGameDescription gameDescriptions[] = {
 		0
 	},
 
+	// From afholman in bug#3309308
+	{
+		{
+			"harryhh",
+			"",
+			AD_ENTRY1("EnglishBO", "b63a7b67834de0cd4cdbf02cf40d8547"),
+			Common::EN_GRB,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"harryhh",
+			"",
+			AD_ENTRY1("GermanBO", "eb740102c1c8379c2c610cba14484ccb"),
+			Common::DE_DEU,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"harryhh",
+			"",
+			AD_ENTRY1("FrenchBO", "2118de914ab9eaec482c245c06145071"),
+			Common::FR_FRA,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
 	// Harry and the Haunted House 1.1
 	// From pacifist
 	{
@@ -869,6 +917,54 @@ static const MohawkGameDescription gameDescriptions[] = {
 		"TORTOISE.EXE"
 	},
 
+	// From afholman in bug#3309308
+	{
+		{
+			"tortoise",
+			"",
+			AD_ENTRY1("TORTB.LB", "83f6bfcf30c445d13e81e0faed9aa27b"),
+			Common::EN_GRB,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0,
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"tortoise",
+			"",
+			AD_ENTRY1("TORTD.LB", "21761e7de4e5f12298f43fa17c00f3e1"),
+			Common::DE_DEU,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0,
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"tortoise",
+			"",
+			AD_ENTRY1("TORTF.LB", "9693043df217ffc0667a1f45f2849aa7"),
+			Common::FR_FRA,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0,
+	},
+
 	{
 		{
 			"tortoise",
@@ -945,6 +1041,38 @@ static const MohawkGameDescription gameDescriptions[] = {
 		"ARTHUR.EXE"
 	},
 
+	// From afholman in bug#3309308
+	{
+		{
+			"arthur",
+			"",
+			AD_ENTRY1("BookOutline", "133750de1ceb9e7351599d79f99fee4d"),
+			Common::EN_ANY,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV1,
+		GF_LB_10,
+		"Arthur's Teacher Trouble"
+	},
+
+	// From darthbo in bug#3301791
+	{
+		{
+			"arthur",
+			"",
+			AD_ENTRY1("PAGES.512", "cd995d20d0d7b4642476fd76044b4e5b"),
+			Common::EN_ANY,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV1,
+		GF_LB_10,
+		"ARTHUR.EXE"
+	},
+
 	{
 		{
 			"arthur",
@@ -1148,6 +1276,22 @@ static const MohawkGameDescription gameDescriptions[] = {
 		"RUFF.EXE"
 	},
 
+	// From aluff in bug#3307785
+	{
+		{
+			"ruff",
+			"",
+			AD_ENTRY1("BookOutline", "f625d4056c750b9aad6f94dd854f5abe"),
+			Common::EN_ANY,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV1,
+		0,
+		"Living Books Player"
+	},
+
 	{
 		{
 			"ruff",
@@ -1194,6 +1338,38 @@ static const MohawkGameDescription gameDescriptions[] = {
 		"Living Books Player"
 	},
 
+	// From aluff in bug#3309981
+	{
+		{
+			"newkid",
+			"",
+			AD_ENTRY1("NEWKID.512", "5135f24afa138ecdf5b52d955e9a9189"),
+			Common::EN_ANY,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV1,
+		0,
+		"NEWKID.EXE"
+	},
+
+	// From aluff in bug#3309981
+	{
+		{
+			"newkid",
+			"",
+			AD_ENTRY1("BookOutline", "6aa7c4720b922f4164584956be5ba9e5"),
+			Common::EN_ANY,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV1,
+		0,
+		"Living Books Player"
+	},
+
 	{
 		{
 			"newkid",
@@ -1302,6 +1478,22 @@ static const MohawkGameDescription gameDescriptions[] = {
 		"BIRTHDAY.EXE"
 	},
 
+	// From aluff in bug#3309936
+	{
+		{
+			"arthurbday",
+			"",
+			AD_ENTRY1("BookOutline", "d631242b004720ecc615e4f855825860"),
+			Common::EN_ANY,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV1,
+		0,
+		"Living Books Player"
+	},
+
 	{
 		{
 			"arthurbday",
@@ -1378,6 +1570,102 @@ static const MohawkGameDescription gameDescriptions[] = {
 		"Little Monster at School"
 	},
 
+	// From afholman in bug#3309308
+	{
+		{
+			"lilmonster",
+			"",
+			AD_ENTRY1("lmasb.lb", "18a4e82f2c5cc30f7a2f9bd95e8c1364"),
+			Common::EN_GRB,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"lilmonster",
+			"",
+			AD_ENTRY1("lmasd.lb", "422b94c0e663305869cb2d2f1109a0bc"),
+			Common::DE_DEU,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"lilmonster",
+			"",
+			AD_ENTRY1("lmasf.lb", "8c22e79c97a86827d56b4c596066dcea"),
+			Common::EN_ANY,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"lilmonster",
+			"",
+			AD_ENTRY1("EnglishBO", "7aa2a1694255000b72ff0cc179f8059f"),
+			Common::EN_GRB,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"lilmonster",
+			"",
+			AD_ENTRY1("GermanBO", "ff7ac4b1b4f2ded71ff3650f383fea48"),
+			Common::DE_DEU,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"lilmonster",
+			"",
+			AD_ENTRY1("FrenchBO", "d13e5eae0f68cecc91a0dcfcceec7061"),
+			Common::FR_FRA,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
 	// From Scarlatti in bug #3275626
 	{
 		{
@@ -1689,6 +1977,38 @@ static const MohawkGameDescription gameDescriptions[] = {
 		0
 	},
 
+	// From aluff in bug#3306722
+	{
+		{
+			"stellaluna",
+			"",
+			AD_ENTRY1("STELLA.LB", "ca8562a79f63485680e21191f5865fd7"),
+			Common::EN_ANY,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
+	// From aluff in bug#3306722
+	{
+		{
+			"stellaluna",
+			"",
+			AD_ENTRY1("BookOutline", "7e931a455ac88557e04ca682579cd5a5"),
+			Common::EN_ANY,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
 	// Sheila Rae the Brave 1.0
 	// From pacifist
 	{
@@ -1706,6 +2026,118 @@ static const MohawkGameDescription gameDescriptions[] = {
 		0
 	},
 
+	// From aluff in bug#3309934
+	{
+		{
+			"sheila",
+			"",
+			AD_ENTRY1("BookOutline", "961f0cf4de2fbaa1da8ce0011822cd38"),
+			Common::EN_ANY,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"sheila",
+			"",
+			AD_ENTRY1("SRAEB.LB", "4835612022c2ae1944bde453d3202803"),
+			Common::EN_GRB,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"sheila",
+			"",
+			AD_ENTRY1("SRAED.LB", "3f21183534d324cf3bb8464f9217712c"),
+			Common::DE_DEU,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"sheila",
+			"",
+			AD_ENTRY1("SRAEF.LB", "96b00fc4b44c0e881c674d4bae5aa79a"),
+			Common::FR_FRA,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"sheila",
+			"",
+			AD_ENTRY1("EnglishBO", "6d3ad5724f1729a1d96d812668770c2e"),
+			Common::EN_GRB,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"sheila",
+			"",
+			AD_ENTRY1("GermanBO", "af1dc5a8bc8da58310d17b72b657fc1f"),
+			Common::DE_DEU,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
+	// From afholman in bug#3309308
+	{
+		{
+			"sheila",
+			"",
+			AD_ENTRY1("FrenchBO", "62eefcb8424a5f9ba7db5af6f0421e58"),
+			Common::FR_FRA,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NONE
+		},
+		GType_LIVINGBOOKSV2,
+		0,
+		0
+	},
+
 	{ AD_TABLE_END_MARKER, 0, 0, 0 }
 };
 


Commit: 1954c0c8e98bacf8abb97e89dc129bce0577e803
    https://github.com/scummvm/scummvm/commit/1954c0c8e98bacf8abb97e89dc129bce0577e803
Author: Alyssa Milburn (fuzzie at fuzzie.org)
Date: 2011-06-25T01:28:10-07:00

Commit Message:
NEWS: Mention SAGA fixes, new Mohawk detection entries.

Changed paths:
    NEWS



diff --git a/NEWS b/NEWS
index 64710dd..e01da99 100644
--- a/NEWS
+++ b/NEWS
@@ -7,9 +7,19 @@ For a more comprehensive changelog of the latest experimental code, see:
      There should be no more silent errors due to invalid audio devices.
      Instead ScummVM should pick up a suitable alternative device.
 
+ Mohawk:
+   - Added detection entries for more variants of some Living Books
+     games.
+
  Tinsel:
    - Fixed a regression that made Discworld uncompletable.
 
+ SAGA:
+   - Fixed a regression in Inherit the Earth's dragon walk code which
+     was causing crashes there.
+   - Fixed a regression causing various crashes in I Have No Mouth and
+     I Must Scream.
+
  SCUMM:
    - Fixed graphics bug in FM-TOWNS versions of games on ARM devices
      (Android, iPhone, etc.).


Commit: 563a7065e152ba98b3cebd76e0e5d2c568fe217f
    https://github.com/scummvm/scummvm/commit/563a7065e152ba98b3cebd76e0e5d2c568fe217f
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-06-25T02:50:32-07:00

Commit Message:
SCI: Fixed bug #3325512: "EcoQuest 1: Audio settings are not saved"

Changed paths:
    engines/sci/sci.cpp



diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp
index 85c2ece..b5dfeff 100644
--- a/engines/sci/sci.cpp
+++ b/engines/sci/sci.cpp
@@ -876,6 +876,7 @@ void SciEngine::syncIngameAudioOptions() {
 			// Is it a game that supports simultaneous speech and subtitles?
 			if (getGameId() == GID_SQ4 
 				|| getGameId() == GID_FREDDYPHARKAS
+				|| getGameId() == GID_ECOQUEST
 				// TODO: The following need script patches for simultaneous speech and subtitles
 				//|| getGameId() == GID_KQ6
 				//|| getGameId() == GID_LAURABOW2


Commit: de1dbba660e365e9f881837084f43c11d6cd2e6f
    https://github.com/scummvm/scummvm/commit/de1dbba660e365e9f881837084f43c11d6cd2e6f
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-06-25T02:54:48-07:00

Commit Message:
Updated NEWS with the latest SCI changes

Changed paths:
    NEWS



diff --git a/NEWS b/NEWS
index e01da99..9e961b7 100644
--- a/NEWS
+++ b/NEWS
@@ -20,6 +20,10 @@ For a more comprehensive changelog of the latest experimental code, see:
    - Fixed a regression causing various crashes in I Have No Mouth and
      I Must Scream.
 
+ SCI:
+   - Added detection entries for some Macintosh game versions.
+   - Audio settings are now stored correctly for the CD version of EcoQuest 1.
+   
  SCUMM:
    - Fixed graphics bug in FM-TOWNS versions of games on ARM devices
      (Android, iPhone, etc.).


Commit: cca706126e9dee314d548853e3bfce5e433d4201
    https://github.com/scummvm/scummvm/commit/cca706126e9dee314d548853e3bfce5e433d4201
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-06-25T03:49:38-07:00

Commit Message:
NEWS: Removed superfluous whitespace

Thanks to salty-horse for pointing it out

Changed paths:
    NEWS



diff --git a/NEWS b/NEWS
index 9e961b7..1b6596e 100644
--- a/NEWS
+++ b/NEWS
@@ -23,7 +23,7 @@ For a more comprehensive changelog of the latest experimental code, see:
  SCI:
    - Added detection entries for some Macintosh game versions.
    - Audio settings are now stored correctly for the CD version of EcoQuest 1.
-   
+
  SCUMM:
    - Fixed graphics bug in FM-TOWNS versions of games on ARM devices
      (Android, iPhone, etc.).


Commit: ec56debc2a132a1276f3608fbe6277731389bf41
    https://github.com/scummvm/scummvm/commit/ec56debc2a132a1276f3608fbe6277731389bf41
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-06-25T18:50:53-07:00

Commit Message:
WINCE: Fix timer manager

Changed paths:
    backends/platform/wince/wince-sdl.cpp



diff --git a/backends/platform/wince/wince-sdl.cpp b/backends/platform/wince/wince-sdl.cpp
index 78e4811..7c1f10a 100644
--- a/backends/platform/wince/wince-sdl.cpp
+++ b/backends/platform/wince/wince-sdl.cpp
@@ -355,9 +355,9 @@ void drawError(char *error) {
 }
 
 // ********************************************************************************************
-static DefaultTimerManager *_int_timer = NULL;
 static Uint32 timer_handler_wrapper(Uint32 interval) {
-	_int_timer->handler();
+	DefaultTimerManager *tm = (DefaultTimerManager *)g_system->getTimerManager();
+	tm->handler();
 	return interval;
 }
 
@@ -381,14 +381,15 @@ void OSystem_WINCE3::initBackend() {
 
 	((WINCESdlEventSource *)_eventSource)->init((WINCESdlGraphicsManager *)_graphicsManager);
 
-	// Create the timer. CE SDL does not support multiple timers (SDL_AddTimer).
+	// Create the timer (but remove the timer manager from the SDL backend first).
+	// CE SDL does not support multiple timers (SDL_AddTimer).
 	// We work around this by using the SetTimer function, since we only use
 	// one timer in scummvm (for the time being)
-	_timer = _int_timer = new DefaultTimerManager();
-	//_timerID = NULL;  // OSystem_SDL will call removetimer with this, it's ok
+	delete _timerManager;
+	_timerManager = new DefaultTimerManager();
 	SDL_SetTimer(10, &timer_handler_wrapper);
 
-	// Chain init
+	// Call parent implementation of this method
 	OSystem_SDL::initBackend();
 
 	// Initialize global key mapping
@@ -399,9 +400,6 @@ void OSystem_WINCE3::initBackend() {
 		GUI_Actions::Instance()->saveMapping(); // write defaults
 	}
 
-	// Call parent implementation of this method
-	//OSystem_SDL::initBackend();
-
 	_inited = true;
 }
 


Commit: ceec203ab3d1e61cff109efd650ce0f693ae06f3
    https://github.com/scummvm/scummvm/commit/ceec203ab3d1e61cff109efd650ce0f693ae06f3
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-06-26T17:26:53-07:00

Commit Message:
WINCE: Added option to disable panel toggling with double tap on top of screen

Changed paths:
    backends/events/wincesdl/wincesdl-events.cpp
    backends/graphics/wincesdl/wincesdl-graphics.cpp
    backends/graphics/wincesdl/wincesdl-graphics.h
    backends/platform/wince/CEActionsPocket.cpp
    backends/platform/wince/CEActionsSmartphone.cpp



diff --git a/backends/events/wincesdl/wincesdl-events.cpp b/backends/events/wincesdl/wincesdl-events.cpp
index 8d065ef..3d1e63b 100644
--- a/backends/events/wincesdl/wincesdl-events.cpp
+++ b/backends/events/wincesdl/wincesdl-events.cpp
@@ -186,7 +186,8 @@ bool WINCESdlEventSource::pollEvent(Common::Event &event) {
 				if (_tapTime) {     // second tap
 					if (_closeClick && (GetTickCount() - _tapTime < 1000)) {
 						if (event.mouse.y <= 20 &&
-						        _graphicsMan->_panelInitialized) {
+						        _graphicsMan->_panelInitialized &&
+						        !_graphicsMan->_noDoubleTapPT) {
 							// top of screen (show panel)
 							_graphicsMan->swap_panel_visibility();
 						} else if (!_graphicsMan->_noDoubleTapRMB) {
diff --git a/backends/graphics/wincesdl/wincesdl-graphics.cpp b/backends/graphics/wincesdl/wincesdl-graphics.cpp
index 15b5365..af765e6 100644
--- a/backends/graphics/wincesdl/wincesdl-graphics.cpp
+++ b/backends/graphics/wincesdl/wincesdl-graphics.cpp
@@ -47,7 +47,7 @@
 
 WINCESdlGraphicsManager::WINCESdlGraphicsManager(SdlEventSource *sdlEventSource)
 	: SdlGraphicsManager(sdlEventSource),
-	  _panelInitialized(false), _noDoubleTapRMB(false),
+	  _panelInitialized(false), _noDoubleTapRMB(false), _noDoubleTapPT(false),
 	  _toolbarHighDrawn(false), _newOrientation(0), _orientationLandscape(0),
 	  _panelVisible(true), _saveActiveToolbar(NAME_MAIN_PANEL), _panelStateForced(false),
 	  _canBeAspectScaled(false), _scalersChanged(false), _saveToolbarState(false),
@@ -481,6 +481,9 @@ void WINCESdlGraphicsManager::update_game_settings() {
 
 	if (ConfMan.hasKey("no_doubletap_rightclick"))
 		_noDoubleTapRMB = ConfMan.getBool("no_doubletap_rightclick");
+
+	if (ConfMan.hasKey("no_doubletap_paneltoggle"))
+		_noDoubleTapPT = ConfMan.getBool("no_doubletap_paneltoggle");
 }
 
 void WINCESdlGraphicsManager::internUpdateScreen() {
diff --git a/backends/graphics/wincesdl/wincesdl-graphics.h b/backends/graphics/wincesdl/wincesdl-graphics.h
index 112b9d2..a17465a 100644
--- a/backends/graphics/wincesdl/wincesdl-graphics.h
+++ b/backends/graphics/wincesdl/wincesdl-graphics.h
@@ -120,6 +120,7 @@ public:
 
 	bool _panelInitialized; // only initialize the toolbar once
 	bool _noDoubleTapRMB;   // disable double tap -> rmb click
+	bool _noDoubleTapPT;    // disable double tap for toolbar toggling
 
 	CEGUI::ToolbarHandler _toolbarHandler;
 
diff --git a/backends/platform/wince/CEActionsPocket.cpp b/backends/platform/wince/CEActionsPocket.cpp
index b58913e..7c2426e 100644
--- a/backends/platform/wince/CEActionsPocket.cpp
+++ b/backends/platform/wince/CEActionsPocket.cpp
@@ -140,6 +140,7 @@ void CEActionsPocket::initInstanceGame() {
 	bool is_tinsel = (gameid == "tinsel");
 	bool is_cruise = (gameid == "cruise");
 	bool is_made = (gameid == "made");
+	bool is_sci = (gameid == "sci");
 
 	GUI_Actions::initInstanceGame();
 
@@ -222,7 +223,7 @@ void CEActionsPocket::initInstanceGame() {
 	// Key bind method
 	_action_enabled[POCKET_ACTION_BINDKEYS] = true;
 	// Disable double-tap right-click for convenience
-	if (is_tinsel || is_cruise)
+	if (is_tinsel || is_cruise || is_sci)
 		if (!ConfMan.hasKey("no_doubletap_rightclick")) {
 			ConfMan.setBool("no_doubletap_rightclick", true);
 			ConfMan.flushToDisk();
diff --git a/backends/platform/wince/CEActionsSmartphone.cpp b/backends/platform/wince/CEActionsSmartphone.cpp
index 46e6a91..633a07a 100644
--- a/backends/platform/wince/CEActionsSmartphone.cpp
+++ b/backends/platform/wince/CEActionsSmartphone.cpp
@@ -131,6 +131,7 @@ void CEActionsSmartphone::initInstanceGame() {
 	bool is_tinsel = (gameid == "tinsel");
 	bool is_cruise = (gameid == "cruise");
 	bool is_made = (gameid == "made");
+	bool is_sci = (gameid == "sci");
 
 	GUI_Actions::initInstanceGame();
 
@@ -188,7 +189,7 @@ void CEActionsSmartphone::initInstanceGame() {
 	// Bind keys
 	_action_enabled[SMARTPHONE_ACTION_BINDKEYS] = true;
 	// Disable double-tap right-click for convenience
-	if (is_tinsel || is_cruise)
+	if (is_tinsel || is_cruise || is_sci)
 		if (!ConfMan.hasKey("no_doubletap_rightclick")) {
 			ConfMan.setBool("no_doubletap_rightclick", true);
 			ConfMan.flushToDisk();


Commit: 0991ae0cc11a7b1b5b66274210328a1a93ced155
    https://github.com/scummvm/scummvm/commit/0991ae0cc11a7b1b5b66274210328a1a93ced155
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-06-28T03:05:52-07:00

Commit Message:
SCI: Fixed script bug #3292327 - "SCI: HOYLE4: Cribbage bug"

Changed paths:
    engines/sci/engine/workarounds.cpp



diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp
index e856b4b..202d9cf 100644
--- a/engines/sci/engine/workarounds.cpp
+++ b/engines/sci/engine/workarounds.cpp
@@ -80,6 +80,7 @@ const SciWorkaroundEntry uninitializedReadWorkarounds[] = {
 	{ GID_HOYLE4,        700,   700,  1,         "BridgeHand", "calcQTS",        -1,    3, { WORKAROUND_FAKE,   0 } }, // sometimes when placing a bid in bridge
 	{ GID_HOYLE4,        300,   300,  0,                   "", "export 2",   0x1d4d,    0, { WORKAROUND_FAKE,   0 } }, // after passing around cards in hearts
 	{ GID_HOYLE4,        400,   400,  1,            "GinHand", "calcRuns",       -1,    4, { WORKAROUND_FAKE,   0 } }, // sometimes while playing Gin Rummy (e.g. when knocking and placing a card) - bug #3292334
+	{ GID_HOYLE4,        500,    17,  1,          "Character", "say",            -1,  504, { WORKAROUND_FAKE,   0 } }, // sometimes while playing Cribbage (e.g. when the opponent says "Last Card") - bug #3292327
 	{ GID_ISLANDBRAIN,   100,   937,  0,            "IconBar", "dispatchEvent",  -1,   58, { WORKAROUND_FAKE,   0 } }, // when using ENTER at the startup menu - bug #3045225
 	{ GID_ISLANDBRAIN,   140,   140,  0,              "piece", "init",           -1,    3, { WORKAROUND_FAKE,   1 } }, // first puzzle right at the start, some initialization variable. bnt is done on it, and it should be non-0
 	{ GID_ISLANDBRAIN,   200,   268,  0,          "anElement", "select",         -1,    0, { WORKAROUND_FAKE,   0 } }, // elements puzzle, gets used before super TextIcon


Commit: c271f09f48a102913715da03124956a34225c045
    https://github.com/scummvm/scummvm/commit/c271f09f48a102913715da03124956a34225c045
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2011-06-30T12:54:49-07:00

Commit Message:
SAMSUNGTV: Change save path. Requested by aquadran.

Changed paths:
    backends/saves/posix/posix-saves.cpp



diff --git a/backends/saves/posix/posix-saves.cpp b/backends/saves/posix/posix-saves.cpp
index 8d2ca36..85ffc24 100644
--- a/backends/saves/posix/posix-saves.cpp
+++ b/backends/saves/posix/posix-saves.cpp
@@ -48,7 +48,7 @@
 POSIXSaveFileManager::POSIXSaveFileManager() {
 	// Register default savepath based on HOME
 #if defined(SAMSUNGTV)
-	ConfMan.registerDefault("savepath", "/mtd_wiselink/scummvm/savegames");
+	ConfMan.registerDefault("savepath", "/mtd_wiselink/scummvm savegames");
 #else
 	Common::String savePath;
 	const char *home = getenv("HOME");


Commit: 6ac4eda522ae5346ebb0b59dff9ee7dfd5e96468
    https://github.com/scummvm/scummvm/commit/6ac4eda522ae5346ebb0b59dff9ee7dfd5e96468
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-06-30T16:14:56-07:00

Commit Message:
WINCE: Update port specific README

Changed paths:
    backends/platform/wince/README-WinCE.txt



diff --git a/backends/platform/wince/README-WinCE.txt b/backends/platform/wince/README-WinCE.txt
index c48d9ca..8f12620 100644
--- a/backends/platform/wince/README-WinCE.txt
+++ b/backends/platform/wince/README-WinCE.txt
@@ -1,10 +1,26 @@
 ScummVM Windows CE FAQ
-Last updated: 2011-05-27
-Release version: 1.3.0
+Last updated: 2011-07-01
+Release version: 1.3.1
 ------------------------------------------------------------------------
 
 New in this version
 -------------------
+1.3.1:
+- Fix for Normal2xAspect scaler which was causing screen update issues in some
+  games.
+- Fix for Normal1xAspect scaler which caused problems in the bottom part of the
+  screen when toolbar was hidden.
+- Fix for freelook mode.
+- Fix for timer manager, caused timing issues in some games.
+- Activated runtime language detection for ScummVM gui.
+- Toolbar is now hidden when returning to the game list.
+- Double-tap right-click emulation is now turned off for SCI games by default.
+- Added a new option "no_doubletap_paneltoggle" for scummvm.ini to disable
+  toolbar toggling when double-tapping on the top part of the screen.
+- SDL library related fixes:
+  * Fix for screen/mouse-cursor rotation issues (fixes erratic touchscreen
+    behaviour)
+  * Fix for hardware keyboard on some devices (HTC Touch Pro, etc.)
 
 1.3.0:
 This is the first official Windows CE release since 1.1.1.


Commit: 0d864a245eaa68da2f7e532487e722e37214e08f
    https://github.com/scummvm/scummvm/commit/0d864a245eaa68da2f7e532487e722e37214e08f
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2011-06-30T20:47:05-07:00

Commit Message:
SCUMM: Fix first parameter in FontSJIS::drawChar call.

Probably a typo. Fixed in master with 933ee5b.

Changed paths:
    engines/scumm/charset.cpp



diff --git a/engines/scumm/charset.cpp b/engines/scumm/charset.cpp
index cb45dde..f7445e6 100644
--- a/engines/scumm/charset.cpp
+++ b/engines/scumm/charset.cpp
@@ -781,7 +781,7 @@ void CharsetRendererV3::printChar(int chr, bool ignoreCharsetMask) {
 			drawBits1(*vs, dst, charPtr, drawTop, origWidth, origHeight, vs->bytesPerPixel);
 #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
 		else if (_vm->_cjkFont)
-			_vm->_cjkFont->drawChar(vs, chr, _left, drawTop, _color, _shadowColor);
+			_vm->_cjkFont->drawChar(*vs, chr, _left, drawTop, _color, _shadowColor);
 #endif
 	} else {
 		dst = (byte *)_vm->_textSurface.getBasePtr(_left * _vm->_textSurfaceMultiplier, _top * _vm->_textSurfaceMultiplier);


Commit: 3861584c3e75f7769b789b370050eaef83001718
    https://github.com/scummvm/scummvm/commit/3861584c3e75f7769b789b370050eaef83001718
Author: athrxx (athrxx at scummvm.org)
Date: 2011-07-03T05:43:11-07:00

Commit Message:
SCUMM: fix crash in digital iMuse games when using RTL and restarting

(static array were not reset to NULL after being freed and therefore didn't get reallocated on restart)

Changed paths:
    engines/scumm/imuse_digi/dimuse_codecs.cpp



diff --git a/engines/scumm/imuse_digi/dimuse_codecs.cpp b/engines/scumm/imuse_digi/dimuse_codecs.cpp
index c78e313..a79d4fd 100644
--- a/engines/scumm/imuse_digi/dimuse_codecs.cpp
+++ b/engines/scumm/imuse_digi/dimuse_codecs.cpp
@@ -108,7 +108,9 @@ static const byte imxOtherTable[6][64] = {
 
 void releaseImcTables() {
 	free(_destImcTable);
+	_destImcTable = NULL;
 	free(_destImcTable2);
+	_destImcTable2 = NULL;
 }
 
 void initializeImcTables() {


Commit: ee3f24a8827f93049873b14b221871699fd3d79b
    https://github.com/scummvm/scummvm/commit/ee3f24a8827f93049873b14b221871699fd3d79b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2011-07-03T13:24:30-07:00

Commit Message:
RELEASE: Set 1.3.1 release date
(cherry picked from commit 98dfef0ca4df8b2c8d16683a03d55a88783d7004)

Changed paths:
    NEWS



diff --git a/NEWS b/NEWS
index 1b6596e..52ede83 100644
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,7 @@
 For a more comprehensive changelog of the latest experimental code, see:
         https://github.com/scummvm/scummvm/commits/
 
-1.3.1 (????-??-??)
+1.3.1 (2011-07-12)
  General:
    - Improved audio device detection and fallback.
      There should be no more silent errors due to invalid audio devices.


Commit: 9b2c2dbfeee94c50d8ece0937cbe1fed4a911155
    https://github.com/scummvm/scummvm/commit/9b2c2dbfeee94c50d8ece0937cbe1fed4a911155
Author: Max Lingua (sunmax at libero.it)
Date: 2011-07-03T13:46:54-07:00

Commit Message:
Removed $URL$ and $Id$, as they don't get expanded by git.

Minor aesthetic cleanup in common/stream.h.

Changed paths:
    backends/platform/ps2/DmaPipe.cpp
    backends/platform/ps2/DmaPipe.h
    backends/platform/ps2/Gs2dScreen.cpp
    backends/platform/ps2/Gs2dScreen.h
    backends/platform/ps2/GsDefs.h
    backends/platform/ps2/asyncfio.cpp
    backends/platform/ps2/asyncfio.h
    backends/platform/ps2/eecodyvdfs.c
    backends/platform/ps2/eecodyvdfs.h
    backends/platform/ps2/fileio.cpp
    backends/platform/ps2/fileio.h
    backends/platform/ps2/icon.cpp
    backends/platform/ps2/iop/CoDyVDfs/common/codyvdirx.h
    backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h
    backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c
    backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h
    backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c
    backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h
    backends/platform/ps2/iop/CoDyVDfs/iop/irx_imports.h
    backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c
    backends/platform/ps2/iop/rpckbd/src/irx_imports.h
    backends/platform/ps2/irxboot.cpp
    backends/platform/ps2/irxboot.h
    backends/platform/ps2/ps2debug.h
    backends/platform/ps2/ps2input.cpp
    backends/platform/ps2/ps2input.h
    backends/platform/ps2/ps2mutex.cpp
    backends/platform/ps2/ps2pad.cpp
    backends/platform/ps2/ps2pad.h
    backends/platform/ps2/ps2time.cpp
    backends/platform/ps2/savefilemgr.cpp
    backends/platform/ps2/savefilemgr.h
    backends/platform/ps2/sysdefs.h
    backends/platform/ps2/systemps2.cpp
    backends/platform/ps2/systemps2.h



diff --git a/backends/platform/ps2/DmaPipe.cpp b/backends/platform/ps2/DmaPipe.cpp
index f3fbdb2..c6f6ab7 100644
--- a/backends/platform/ps2/DmaPipe.cpp
+++ b/backends/platform/ps2/DmaPipe.cpp
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 // minimalistic gfx pipe implementation based on Vzzrzzn's GfxPipe.
diff --git a/backends/platform/ps2/DmaPipe.h b/backends/platform/ps2/DmaPipe.h
index 2b71747..fd8f55c 100644
--- a/backends/platform/ps2/DmaPipe.h
+++ b/backends/platform/ps2/DmaPipe.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 // minimalistic gfx pipe implementation based on Vzzrzzn's GfxPipe.
diff --git a/backends/platform/ps2/Gs2dScreen.cpp b/backends/platform/ps2/Gs2dScreen.cpp
index a460b91..99d45ff 100644
--- a/backends/platform/ps2/Gs2dScreen.cpp
+++ b/backends/platform/ps2/Gs2dScreen.cpp
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #include "Gs2dScreen.h"
diff --git a/backends/platform/ps2/Gs2dScreen.h b/backends/platform/ps2/Gs2dScreen.h
index 6e842b3..dffdce5 100644
--- a/backends/platform/ps2/Gs2dScreen.h
+++ b/backends/platform/ps2/Gs2dScreen.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef __GS2DSCREEN_H__
diff --git a/backends/platform/ps2/GsDefs.h b/backends/platform/ps2/GsDefs.h
index 515a264..fab0c40 100644
--- a/backends/platform/ps2/GsDefs.h
+++ b/backends/platform/ps2/GsDefs.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef __GSDEFS_H__
diff --git a/backends/platform/ps2/asyncfio.cpp b/backends/platform/ps2/asyncfio.cpp
index f16efff..d3d8eb6 100644
--- a/backends/platform/ps2/asyncfio.cpp
+++ b/backends/platform/ps2/asyncfio.cpp
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #include "asyncfio.h"
diff --git a/backends/platform/ps2/asyncfio.h b/backends/platform/ps2/asyncfio.h
index b421415..26ee3f6 100644
--- a/backends/platform/ps2/asyncfio.h
+++ b/backends/platform/ps2/asyncfio.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #define MAX_HANDLES 32
diff --git a/backends/platform/ps2/eecodyvdfs.c b/backends/platform/ps2/eecodyvdfs.c
index 623e827..e9d4bc6 100644
--- a/backends/platform/ps2/eecodyvdfs.c
+++ b/backends/platform/ps2/eecodyvdfs.c
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #include <tamtypes.h>
diff --git a/backends/platform/ps2/eecodyvdfs.h b/backends/platform/ps2/eecodyvdfs.h
index b9e2823..4b38379 100644
--- a/backends/platform/ps2/eecodyvdfs.h
+++ b/backends/platform/ps2/eecodyvdfs.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef EECDVDFS_H
diff --git a/backends/platform/ps2/fileio.cpp b/backends/platform/ps2/fileio.cpp
index 1919d0f..038cccd 100644
--- a/backends/platform/ps2/fileio.cpp
+++ b/backends/platform/ps2/fileio.cpp
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 // Disable symbol overrides so that we can use system headers.
diff --git a/backends/platform/ps2/fileio.h b/backends/platform/ps2/fileio.h
index 4dee94c..f73d298 100644
--- a/backends/platform/ps2/fileio.h
+++ b/backends/platform/ps2/fileio.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef __PS2FILE_IO__
@@ -33,13 +30,13 @@
 #include "common/stream.h"
 
 enum {
-	CACHE_SIZE				= 2048 * 32,
-	MAX_READ_STEP			= 2048 * 16,
-	MAX_CACHED_FILES		= 6,
+	CACHE_SIZE		= 2048 * 32,
+	MAX_READ_STEP		= 2048 * 16,
+	MAX_CACHED_FILES	= 6,
 	CACHE_READ_THRESHOLD	= 16 * 2048,
-	CACHE_FILL_MIN			= 2048 * 24,
-	READ_ALIGN				= 64,   // align all reads to the size of an EE cache line
-	READ_ALIGN_MASK			= READ_ALIGN - 1
+	CACHE_FILL_MIN		= 2048 * 24,
+	READ_ALIGN		= 64,   // align all reads to the size of an EE cache line
+	READ_ALIGN_MASK		= READ_ALIGN - 1
 };
 
 // TODO: Make this a subclass of SeekableReadStream & WriteStream
diff --git a/backends/platform/ps2/icon.cpp b/backends/platform/ps2/icon.cpp
index 48afc50..9852e6d 100644
--- a/backends/platform/ps2/icon.cpp
+++ b/backends/platform/ps2/icon.cpp
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #include "Gs2dScreen.h"
diff --git a/backends/platform/ps2/iop/CoDyVDfs/common/codyvdirx.h b/backends/platform/ps2/iop/CoDyVDfs/common/codyvdirx.h
index a50a4a7..e94e7dc 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/common/codyvdirx.h
+++ b/backends/platform/ps2/iop/CoDyVDfs/common/codyvdirx.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef CDVDFS_COMMON_H
diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h b/backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h
index d8e0e96..ebf5732 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h
+++ b/backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef __CDTYPES_H__
diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c b/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c
index b423b44..77a5b93 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c
+++ b/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #include <types.h>
diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h b/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h
index 68738a3..902065f 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h
+++ b/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef __CoDyVDfs_H__
diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c b/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c
index a64b2f2..8aecece 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c
+++ b/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #include "cdtypes.h"
diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h b/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h
index e925762..d0aa953 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h
+++ b/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef __FIOFS_H__
diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/irx_imports.h b/backends/platform/ps2/iop/CoDyVDfs/iop/irx_imports.h
index 0f17d62..69bbc01 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/iop/irx_imports.h
+++ b/backends/platform/ps2/iop/CoDyVDfs/iop/irx_imports.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef IOP_IRX_IMPORTS_H
diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c b/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c
index a9bfd63..3e45a5f 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c
+++ b/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #include <sifman.h>
diff --git a/backends/platform/ps2/iop/rpckbd/src/irx_imports.h b/backends/platform/ps2/iop/rpckbd/src/irx_imports.h
index c868c2d..f7d0656 100644
--- a/backends/platform/ps2/iop/rpckbd/src/irx_imports.h
+++ b/backends/platform/ps2/iop/rpckbd/src/irx_imports.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef IOP_IRX_IMPORTS_H
diff --git a/backends/platform/ps2/irxboot.cpp b/backends/platform/ps2/irxboot.cpp
index 5ab7823..dce6e0c 100644
--- a/backends/platform/ps2/irxboot.cpp
+++ b/backends/platform/ps2/irxboot.cpp
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #include <kernel.h>
diff --git a/backends/platform/ps2/irxboot.h b/backends/platform/ps2/irxboot.h
index 82ae065..ef1bfb1 100644
--- a/backends/platform/ps2/irxboot.h
+++ b/backends/platform/ps2/irxboot.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef __IRXBOOT_H__
diff --git a/backends/platform/ps2/ps2debug.h b/backends/platform/ps2/ps2debug.h
index 8ef06cf..127032a 100644
--- a/backends/platform/ps2/ps2debug.h
+++ b/backends/platform/ps2/ps2debug.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef __PS2DEBUG_H__
diff --git a/backends/platform/ps2/ps2input.cpp b/backends/platform/ps2/ps2input.cpp
index 964a773..3227ad2 100644
--- a/backends/platform/ps2/ps2input.cpp
+++ b/backends/platform/ps2/ps2input.cpp
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #include <kernel.h>
diff --git a/backends/platform/ps2/ps2input.h b/backends/platform/ps2/ps2input.h
index eca5950..c5d2f5b 100644
--- a/backends/platform/ps2/ps2input.h
+++ b/backends/platform/ps2/ps2input.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef __PS2INPUT_H__
diff --git a/backends/platform/ps2/ps2mutex.cpp b/backends/platform/ps2/ps2mutex.cpp
index fe76202..ae08e54 100644
--- a/backends/platform/ps2/ps2mutex.cpp
+++ b/backends/platform/ps2/ps2mutex.cpp
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #include "backends/platform/ps2/systemps2.h"
diff --git a/backends/platform/ps2/ps2pad.cpp b/backends/platform/ps2/ps2pad.cpp
index 3d285ee..ecb21a3 100644
--- a/backends/platform/ps2/ps2pad.cpp
+++ b/backends/platform/ps2/ps2pad.cpp
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #include <kernel.h>
diff --git a/backends/platform/ps2/ps2pad.h b/backends/platform/ps2/ps2pad.h
index cf37a72..16c7c79 100644
--- a/backends/platform/ps2/ps2pad.h
+++ b/backends/platform/ps2/ps2pad.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef __PS2PAD_H__
diff --git a/backends/platform/ps2/ps2time.cpp b/backends/platform/ps2/ps2time.cpp
index 4da8420..80d9484 100644
--- a/backends/platform/ps2/ps2time.cpp
+++ b/backends/platform/ps2/ps2time.cpp
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #include "backends/platform/ps2/systemps2.h"
diff --git a/backends/platform/ps2/savefilemgr.cpp b/backends/platform/ps2/savefilemgr.cpp
index a4b3ddb..b05c62c 100644
--- a/backends/platform/ps2/savefilemgr.cpp
+++ b/backends/platform/ps2/savefilemgr.cpp
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #include "common/config-manager.h"
diff --git a/backends/platform/ps2/savefilemgr.h b/backends/platform/ps2/savefilemgr.h
index a87f53d..a25fb06 100644
--- a/backends/platform/ps2/savefilemgr.h
+++ b/backends/platform/ps2/savefilemgr.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef __SAVEFILEMGR_H__
diff --git a/backends/platform/ps2/sysdefs.h b/backends/platform/ps2/sysdefs.h
index 4aef58b..0114402 100644
--- a/backends/platform/ps2/sysdefs.h
+++ b/backends/platform/ps2/sysdefs.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef __SYSDEFS_H__
diff --git a/backends/platform/ps2/systemps2.cpp b/backends/platform/ps2/systemps2.cpp
index 77de74e..f4c5524 100644
--- a/backends/platform/ps2/systemps2.cpp
+++ b/backends/platform/ps2/systemps2.cpp
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 // Disable symbol overrides so that we can use system headers.
diff --git a/backends/platform/ps2/systemps2.h b/backends/platform/ps2/systemps2.h
index 54e6f05..3ada44c 100644
--- a/backends/platform/ps2/systemps2.h
+++ b/backends/platform/ps2/systemps2.h
@@ -18,9 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * $URL$
- * $Id$
- *
  */
 
 #ifndef SYSTEMPS2_H


Commit: 4752c35272b7e7ddbb509cb9e0fdd99a1893846f
    https://github.com/scummvm/scummvm/commit/4752c35272b7e7ddbb509cb9e0fdd99a1893846f
Author: Max Lingua (sunmax at libero.it)
Date: 2011-07-03T13:50:16-07:00

Commit Message:
Merge branch 'branch-1-3' of git at github.com:scummvm/scummvm into branch-1-3

Changed paths:
    NEWS





Commit: 584da65a1d03d4feff8e29c7219ce49096595b7f
    https://github.com/scummvm/scummvm/commit/584da65a1d03d4feff8e29c7219ce49096595b7f
Author: athrxx (athrxx at scummvm.org)
Date: 2011-07-03T23:38:29-07:00

Commit Message:
AUDIO: fix issue in detectDevice when config manager setting is missing

Changed paths:
    audio/mididrv.cpp



diff --git a/audio/mididrv.cpp b/audio/mididrv.cpp
index e238faf..27f02c9 100644
--- a/audio/mididrv.cpp
+++ b/audio/mididrv.cpp
@@ -128,7 +128,8 @@ Common::String MidiDriver::getDeviceString(DeviceHandle handle, DeviceStringType
 
 MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 	// Query the selected music device (defaults to MT_AUTO device).
-	DeviceHandle hdl = getDeviceHandle(ConfMan.get("music_driver"));
+	Common::String selDevStr = ConfMan.hasKey("music_driver") ? ConfMan.get("music_driver") : Common::String("auto");
+	DeviceHandle hdl = getDeviceHandle(selDevStr.empty() ? Common::String("auto") : selDevStr);
 	DeviceHandle reslt = 0;
 
 	_forceTypeMT32 = false;
@@ -200,7 +201,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 	if (getMusicType(hdl) == MT_INVALID) {
 		// If the expressly selected driver or device cannot be found (no longer compiled in, turned off, etc.)
 		// we display a warning and continue.
-		failedDevStr = ConfMan.get("music_driver");
+		failedDevStr = selDevStr;
 		Common::String warningMsg = Common::String::format(_("The selected audio device '%s' was not found (e.g. might be turned off or disconnected). Attempting to fall back to the next available device..."), failedDevStr.c_str());
 		GUI::MessageDialog dialog(warningMsg);
 		dialog.runModal();
@@ -229,17 +230,19 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 		if ((flags & MDT_MIDI) && !skipMidi) {
 			// If a preferred MT32 or GM device has been selected that device gets returned if available.
 			Common::String devStr;
-			if (flags & MDT_PREFER_MT32) 
-				devStr = ConfMan.get("mt32_device");
+			if (flags & MDT_PREFER_MT32)
+				devStr = ConfMan.hasKey("mt32_device") ? ConfMan.get("mt32_device") : Common::String("null");
 			else if (flags & MDT_PREFER_GM)
-				devStr = ConfMan.get("gm_device");
+				devStr = ConfMan.hasKey("gm_device") ? ConfMan.get("gm_device") : Common::String("null");
 			else
 				devStr = "auto";
-
-			hdl = getDeviceHandle(devStr);
+			
+			// Default to Null device here, since we also register a default null setting for
+			// the MT32 or GM device in the config manager.
+			hdl = getDeviceHandle(devStr.empty() ? Common::String("null") : devStr);
 			const MusicType type = getMusicType(hdl);
 
-			// If have a "Don't use GM/MT-32" setting we skip this part and jump
+			// If we have a "Don't use GM/MT-32" setting we skip this part and jump
 			// to AdLib, PC Speaker etc. detection right away.
 			if (type != MT_NULL) {
 				if (type == MT_INVALID) {
@@ -261,7 +264,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 						// If the preferred (expressly requested) device cannot be used we display a warning and continue.
 						// Don't warn about the failing device if we did already (this becomes relevant if the failing
 						// device is selected as preferred device and also as GM or MT-32 device).
-						if (failedDevStr != getDeviceString(hdl, MidiDriver::kDeviceName)) {							
+						if (failedDevStr != getDeviceString(hdl, MidiDriver::kDeviceName)) {
 							Common::String warningMsg = Common::String::format(_("The preferred audio device '%s' cannot be used. See log file for more information. Attempting to fall back to the next available device..."), getDeviceString(hdl, MidiDriver::kDeviceName).c_str());
 							GUI::MessageDialog dialog(warningMsg);
 							dialog.runModal();
@@ -285,7 +288,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 					}
 				}
 
-				// Now we default to the first available device with music type 'MT_GM' if not 
+				// Now we default to the first available device with music type 'MT_GM' if not
 				// MT-32 is preferred or if MT-32 is preferred but all other devices have failed.
 				if (!(flags & MDT_PREFER_MT32) || flags == (MDT_PREFER_MT32 | MDT_MIDI)) {
 					for (MusicPlugin::List::const_iterator m = p.begin(); m != p.end(); ++m) {
@@ -332,7 +335,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
 			tp = MT_APPLEIIGS;
 			flags &= ~MDT_APPLEIIGS;
 		} else if (flags & MDT_MIDI) {
-			// if we haven't tried to find a MIDI device yet we do this now.
+			// If we haven't tried to find a MIDI device yet we do this now.
 			skipMidi = false;
 			continue;
 		} else if (flags) {
@@ -381,7 +384,7 @@ MidiDriver::DeviceHandle MidiDriver::getDeviceHandle(const Common::String &ident
 	const MusicPlugin::List p = MusicMan.getPlugins();
 
 	if (p.begin() == p.end())
-		error("Music plugins must be loaded prior to calling this method");
+		error("MidiDriver::getDeviceHandle: Music plugins must be loaded prior to calling this method");
 
 	for (MusicPlugin::List::const_iterator m = p.begin(); m != p.end(); m++) {
 		MusicDevices i = (**m)->getDevices();


Commit: 97674b66b8f71f3128f5e0b243b44a018529ff11
    https://github.com/scummvm/scummvm/commit/97674b66b8f71f3128f5e0b243b44a018529ff11
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2011-07-04T02:18:00-07:00

Commit Message:
REDHAT: Update list of packaged data files

Changed paths:
    dists/redhat/scummvm.spec
    dists/redhat/scummvm.spec.in



diff --git a/dists/redhat/scummvm.spec b/dists/redhat/scummvm.spec
index 5b9042f..cdedce5 100644
--- a/dists/redhat/scummvm.spec
+++ b/dists/redhat/scummvm.spec
@@ -68,6 +68,8 @@ install -m644 -D dists/engine-data/queen.tbl %{buildroot}%{_datadir}/scummvm/que
 install -m644 -D dists/engine-data/sky.cpt %{buildroot}%{_datadir}/scummvm/sky.cpt
 install -m644 -D dists/engine-data/drascula.dat %{buildroot}%{_datadir}/scummvm/drascula.dat
 install -m644 -D dists/engine-data/teenagent.dat %{buildroot}%{_datadir}/scummvm/teenagent.dat
+install -m644 -D dists/engine-data/hugo.dat %{buildroot}%{_datadir}/scummvm/hugo.dat
+install -m644 -D dists/engine-data/toon.dat %{buildroot}%{_datadir}/scummvm/toon.dat
 desktop-file-install --vendor scummvm --dir=%{buildroot}/%{_datadir}/applications dists/scummvm.desktop
 
 %clean
@@ -105,6 +107,8 @@ fi
 %{_datadir}/scummvm/lure.dat
 %{_datadir}/scummvm/drascula.dat
 %{_datadir}/scummvm/teenagent.dat
+%{_datadir}/scummvm/hugo.dat
+%{_datadir}/scummvm/toon.dat
 %{_mandir}/man6/scummvm.6*
 
 #------------------------------------------------------------------------------
diff --git a/dists/redhat/scummvm.spec.in b/dists/redhat/scummvm.spec.in
index 13ce600..838a054 100644
--- a/dists/redhat/scummvm.spec.in
+++ b/dists/redhat/scummvm.spec.in
@@ -68,6 +68,8 @@ install -m644 -D dists/engine-data/queen.tbl %{buildroot}%{_datadir}/scummvm/que
 install -m644 -D dists/engine-data/sky.cpt %{buildroot}%{_datadir}/scummvm/sky.cpt
 install -m644 -D dists/engine-data/drascula.dat %{buildroot}%{_datadir}/scummvm/drascula.dat
 install -m644 -D dists/engine-data/teenagent.dat %{buildroot}%{_datadir}/scummvm/teenagent.dat
+install -m644 -D dists/engine-data/hugo.dat %{buildroot}%{_datadir}/scummvm/hugo.dat
+install -m644 -D dists/engine-data/toon.dat %{buildroot}%{_datadir}/scummvm/toon.dat
 desktop-file-install --vendor scummvm --dir=%{buildroot}/%{_datadir}/applications dists/scummvm.desktop
 
 %clean
@@ -105,6 +107,8 @@ fi
 %{_datadir}/scummvm/lure.dat
 %{_datadir}/scummvm/drascula.dat
 %{_datadir}/scummvm/teenagent.dat
+%{_datadir}/scummvm/hugo.dat
+%{_datadir}/scummvm/toon.dat
 %{_mandir}/man6/scummvm.6*
 
 #------------------------------------------------------------------------------


Commit: 3595529c435638640d57925ef7ace3232044fe16
    https://github.com/scummvm/scummvm/commit/3595529c435638640d57925ef7ace3232044fe16
Author: Travis Howell (kirben at optusnet.com.au)
Date: 2011-07-04T02:46:18-07:00

Commit Message:
BUILD: Update the windows installer script.

Changed paths:
    dists/win32/ScummVM.iss



diff --git a/dists/win32/ScummVM.iss b/dists/win32/ScummVM.iss
index 00f4868..5323a2c 100644
--- a/dists/win32/ScummVM.iss
+++ b/dists/win32/ScummVM.iss
@@ -1,8 +1,12 @@
 [Setup]
-DefaultDirName={pf}\ScummVM
 AppCopyright=2011
 AppName=ScummVM
 AppVerName=ScummVM Git
+AppPublisher=The ScummVM Team
+AppPublisherURL=http://www.scummvm.org/
+AppSupportURL=http://www.scummvm.org/
+AppUpdatesURL=http://www.scummvm.org/
+DefaultDirName={pf}\ScummVM
 DefaultGroupName=ScummVM
 AllowNoIcons=true
 AlwaysUsePersonalGroup=false
@@ -14,7 +18,8 @@ DisableStartupPrompt=true
 AppendDefaultDirName=false
 SolidCompression=true
 DirExistsWarning=no
-SetupIconFile=scummvm.ico
+SetupIconFile=graphics\scummvm-install.ico
+WizardImageFile=graphics\left.bmp
 ShowLanguageDialog=yes
 LanguageDetectionMethod=uilanguage
 
@@ -73,7 +78,6 @@ Source: drascula.dat; DestDir: {app}; Flags: ignoreversion
 Source: hugo.dat; DestDir: {app}; Flags: ignoreversion
 Source: kyra.dat; DestDir: {app}; Flags: ignoreversion
 Source: lure.dat; DestDir: {app}; Flags: ignoreversion
-Source: m4.dat; DestDir: {app}; Flags: ignoreversion
 Source: pred.dic; DestDir: {app}; Flags: ignoreversion
 Source: queen.tbl; DestDir: {app}; Flags: ignoreversion
 Source: sky.cpt; DestDir: {app}; Flags: ignoreversion


Commit: 67426720dd9b13dfb4941e02f7f2a69010fd4792
    https://github.com/scummvm/scummvm/commit/67426720dd9b13dfb4941e02f7f2a69010fd4792
Author: athrxx (athrxx at scummvm.org)
Date: 2011-07-05T12:23:14-07:00

Commit Message:
AUDIO: add registerDefault for music_driver

Changed paths:
    base/commandLine.cpp



diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index 0808f87..17ad601 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -177,8 +177,8 @@ void registerDefaults() {
 	ConfMan.registerDefault("native_mt32", false);
 	ConfMan.registerDefault("enable_gs", false);
 	ConfMan.registerDefault("midi_gain", 100);
-//	ConfMan.registerDefault("music_driver", ???);
 
+	ConfMan.registerDefault("music_driver", "auto");
 	ConfMan.registerDefault("mt32_device", "null");
 	ConfMan.registerDefault("gm_device", "null");
 


Commit: 7ee067a8ddea2602331ec4f3ec4370ad5afa464e
    https://github.com/scummvm/scummvm/commit/7ee067a8ddea2602331ec4f3ec4370ad5afa464e
Author: athrxx (athrxx at scummvm.org)
Date: 2011-07-05T12:23:15-07:00

Commit Message:
KYRA: fix ingame menu save slots

- long GMM save descriptions will be trimmed to fit the ingame menu save slots
- prevent writing beyond the right margin in Kyra 1 save slots

Changed paths:
    engines/kyra/gui_lok.cpp
    engines/kyra/gui_lol.cpp
    engines/kyra/gui_v2.cpp



diff --git a/engines/kyra/gui_lok.cpp b/engines/kyra/gui_lok.cpp
index c31cbe3..131be05 100644
--- a/engines/kyra/gui_lok.cpp
+++ b/engines/kyra/gui_lok.cpp
@@ -579,6 +579,15 @@ void GUI_LoK::setupSavegames(Menu &menu, int num) {
 		if ((in = _vm->openSaveForReading(_vm->getSavegameFilename(_saveSlots[i + _savegameOffset]), header))) {
 			Common::strlcpy(_savegameNames[i], header.description.c_str(), ARRAYSIZE(_savegameNames[0]));
 
+			// Trim long GMM save descriptions to fit our save slots
+			_screen->_charWidth = -2;
+			int fC = _screen->getTextWidth(_savegameNames[i]);
+			while (strlen(_savegameNames[i]) && (fC > 240 || strlen(_savegameNames[i]) >= ARRAYSIZE(_savegameNames[0]))) {
+				_savegameNames[i][strlen(_savegameNames[i]) - 1]  = 0;
+				fC = _screen->getTextWidth(_savegameNames[i]);
+			}
+			_screen->_charWidth = 0;
+
 			Util::convertISOToDOS(_savegameNames[i]);
 
 			menu.item[i].itemString = _savegameNames[i];
@@ -696,12 +705,15 @@ void GUI_LoK::updateSavegameString() {
 
 	if (_keyPressed.keycode) {
 		length = strlen(_savegameName);
+		_screen->_charWidth = -2;
+		int width = _screen->getTextWidth(_savegameName) + 7;
+		_screen->_charWidth = 0;
 
 		char inputKey = _keyPressed.ascii;
 		Util::convertISOToDOS(inputKey);
 
 		if ((uint8)inputKey > 31 && (uint8)inputKey < (_vm->gameFlags().lang == Common::JA_JPN ? 128 : 226)) {
-			if (length < ARRAYSIZE(_savegameName)-1) {
+			if ((length < ARRAYSIZE(_savegameName)-1) && (width <= 240)) {
 				_savegameName[length] = inputKey;
 				_savegameName[length+1] = 0;
 				redrawTextfield();
diff --git a/engines/kyra/gui_lol.cpp b/engines/kyra/gui_lol.cpp
index 2625347..c2b36c5 100644
--- a/engines/kyra/gui_lol.cpp
+++ b/engines/kyra/gui_lol.cpp
@@ -2575,9 +2575,19 @@ void GUI_LoL::setupSaveMenuSlots(Menu &menu, int num) {
 		slotOffs = 1;
 	}
 
+	int saveSlotMaxLen = ((_screen->getScreenDim(8))->w << 3)  - _screen->getCharWidth('W');	
+			
 	for (int i = startSlot; i < num && _savegameOffset + i - slotOffs < _savegameListSize; ++i) {
 		if (_savegameList[_saveSlots[i + _savegameOffset - slotOffs]]) {
 			Common::strlcpy(s, _savegameList[_saveSlots[i + _savegameOffset - slotOffs]], 80);
+
+			// Trim long GMM save descriptions to fit our save slots
+			int fC = _screen->getTextWidth(s);
+			while (strlen(s) && fC >= saveSlotMaxLen) {
+				s[strlen(s) - 1]  = 0;
+				fC = _screen->getTextWidth(s);
+			}
+
 			menu.item[i].itemString = s;
 			s += (strlen(s) + 1);
 			menu.item[i].saveSlot = _saveSlots[i + _savegameOffset - slotOffs];
diff --git a/engines/kyra/gui_v2.cpp b/engines/kyra/gui_v2.cpp
index 01922de..400a033 100644
--- a/engines/kyra/gui_v2.cpp
+++ b/engines/kyra/gui_v2.cpp
@@ -460,6 +460,15 @@ void GUI_v2::setupSavegameNames(Menu &menu, int num) {
 			Common::strlcpy(s, header.description.c_str(), 80);
 			Util::convertISOToDOS(s);
 
+			// Trim long GMM save descriptions to fit our save slots
+			_screen->_charWidth = -2;
+			int fC = _screen->getTextWidth(s);
+			while (strlen(s) && fC > 240) {
+				s[strlen(s) - 1]  = 0;
+				fC = _screen->getTextWidth(s);
+			}
+			_screen->_charWidth = 0;
+
 			menu.item[i].saveSlot = _saveSlots[i + _savegameOffset];
 			menu.item[i].enabled = true;
 			delete in;


Commit: e70f1aae92006e49e1e4542ab4edd803a86d76b9
    https://github.com/scummvm/scummvm/commit/e70f1aae92006e49e1e4542ab4edd803a86d76b9
Author: D G Turner (digitall at scummvm.org)
Date: 2011-07-09T20:02:23-07:00

Commit Message:
SCI: Added Missing Detection Entry for "Slater And Charlie Go Camping"

This should fix bug #3359182 ("Game not found by 1.3.0")

Changed paths:
    engines/sci/detection_tables.h



diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index dedf823..8efd9a9 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -3153,6 +3153,15 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		AD_LISTEND},
 		Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH	},
 
+
+	// Slater & Charlie Go Camping - English DOS/Windows (Sierra Originals)
+	{"slater", "", {
+		{"resource.000", 0, "d7b4cc8e2c0b3a4768f8dfb5de27f206", 2256126},
+		{"resource.map", 0, "21f85414124dc23e54544a5536dc35cd", 4044},
+		{"resource.msg", 0, "c44f51fb955eae266fecf360ebcd5ad2", 1132},
+		AD_LISTEND},
+		Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH	},
+
 	// Space Quest 1 VGA Remake - English Amiga (from www.back2roots.org)
 	// SCI interpreter version 1.000.510 (just a guess)
 	{"sq1sci", "SCI", {


Commit: 5d741212c69890c49cbf0eec233bcca694e07748
    https://github.com/scummvm/scummvm/commit/5d741212c69890c49cbf0eec233bcca694e07748
Author: Julien (littleboy at users.sourceforge.net)
Date: 2011-07-17T05:12:32-07:00

Commit Message:
TEENAGENT: Allocate large buffers on the heap instead of the stack

This fixes bug #3313813 ("WinCE: TeenAgent: Crashes and locks device")

Changed paths:
    engines/teenagent/resources.cpp
    engines/teenagent/teenagent.cpp



diff --git a/engines/teenagent/resources.cpp b/engines/teenagent/resources.cpp
index 6990823..54a36e7 100644
--- a/engines/teenagent/resources.cpp
+++ b/engines/teenagent/resources.cpp
@@ -109,13 +109,20 @@ void Resources::loadOff(Graphics::Surface &surface, byte *palette, int id) {
 		error("invalid background %d", id);
 		return;
 	}
-	byte buf[64768];
-	off.read(id, buf, sizeof(buf));
+
+	const uint bufferSize = 64768;
+	byte *buf = (byte *)malloc(bufferSize);
+	if (!buf)
+		error("[Resources::loadOff] Cannot allocate buffer");
+
+	off.read(id, buf, bufferSize);
 
 	byte *src = buf;
 	byte *dst = (byte *)surface.pixels;
 	memcpy(dst, src, 64000);
 	memcpy(palette, buf + 64000, 768);
+
+	free(buf);
 }
 
 Common::SeekableReadStream *Resources::loadLan(uint32 id) const {
diff --git a/engines/teenagent/teenagent.cpp b/engines/teenagent/teenagent.cpp
index ec1e945..c16e042 100644
--- a/engines/teenagent/teenagent.cpp
+++ b/engines/teenagent/teenagent.cpp
@@ -217,14 +217,22 @@ Common::Error TeenAgentEngine::loadGameState(int slot) {
 
 	Resources *res = Resources::instance();
 
-	assert(res->dseg.size() >= 0x6478 + 0x777a);
-	char data[0x777a];
+	const uint dataSize = 0x777a;
+	assert(res->dseg.size() >= 0x6478 + dataSize);
+
+	char *data = (char *)malloc(dataSize);
+	if (!data)
+		error("[TeenAgentEngine::loadGameState] Cannot allocate buffer");
+
 	in->seek(0);
-	if (in->read(data, 0x777a) != 0x777a) {
+	if (in->read(data, dataSize) != dataSize) {
+		free(data);
 		return Common::kReadingFailed;
 	}
 
-	memcpy(res->dseg.ptr(0x6478), data, sizeof(data));
+	memcpy(res->dseg.ptr(0x6478), data, dataSize);
+
+	free(data);
 
 	scene->clear();
 	inventory->activate(false);
@@ -291,17 +299,32 @@ bool TeenAgentEngine::showCDLogo() {
 	if (!cdlogo.exists("cdlogo.res") || !cdlogo.open("cdlogo.res"))
 		return true;
 
-	byte bg[0xfa00];
-	byte palette[3*256];
+	const uint bgSize = 0xfa00;
+	const uint paletteSize = 3 * 256;
+
+	byte *bg = (byte *)malloc(bgSize);
+	if (!bg)
+		error("[TeenAgentEngine::showCDLogo] Cannot allocate background buffer");
+
+	byte *palette = (byte *)malloc(paletteSize);
+	if (!palette) {
+		free(bg);
+		error("[TeenAgentEngine::showCDLogo] Cannot allocate palette buffer");
+	}
+
+	cdlogo.read(bg, bgSize);
+	cdlogo.read(palette, paletteSize);
 
-	cdlogo.read(bg, sizeof(bg));
-	cdlogo.read(palette, sizeof(palette));
-	for (uint c = 0; c < 3*256; ++c)
+	for (uint c = 0; c < paletteSize; ++c)
 		palette[c] *= 4;
+
 	_system->getPaletteManager()->setPalette(palette, 0, 0x100);
 	_system->copyRectToScreen(bg, 320, 0, 0, 320, 200);
 	_system->updateScreen();
 
+	free(bg);
+	free(palette);
+
 	for(uint i = 0; i < 20; ++i) {
 		int r = skipEvents();
 		if (r != 0)
@@ -318,43 +341,66 @@ bool TeenAgentEngine::showLogo() {
 	if (!logo.open("unlogic.res"))
 		return true;
 
-	byte bg[0xfa00];
-	byte palette[3*256];
-
 	Common::ScopedPtr<Common::SeekableReadStream> frame(logo.getStream(1));
 	if (!frame)
 		return true;
 
-	frame->read(bg, sizeof(bg));
-	frame->read(palette, sizeof(palette));
-	for (uint c = 0; c < 3*256; ++c)
+	const uint bgSize = 0xfa00;
+	const uint paletteSize = 3 * 256;
+
+	byte *bg = (byte *)malloc(bgSize);
+	if (!bg)
+		error("[TeenAgentEngine::showLogo] Cannot allocate background buffer");
+
+	byte *palette = (byte *)malloc(paletteSize);
+	if (!palette) {
+		free(bg);
+		error("[TeenAgentEngine::showLogo] Cannot allocate palette buffer");
+	}
+
+	frame->read(bg, bgSize);
+	frame->read(palette, paletteSize);
+
+	for (uint c = 0; c < paletteSize; ++c)
 		palette[c] *= 4;
+
 	_system->getPaletteManager()->setPalette(palette, 0, 0x100);
 
+	free(palette);
+
 	uint n = logo.fileCount();
 	for(uint f = 0; f < 4; ++f)
 		for(uint i = 2; i <= n; ++i) {
 			{
 				int r = skipEvents();
-				if (r != 0)
+				if (r != 0) {
+					free(bg);
 					return r > 0? true: false;
+				}
 			}
 			_system->copyRectToScreen(bg, 320, 0, 0, 320, 200);
 
 			frame.reset(logo.getStream(i));
-			if (!frame)
+			if (!frame) {
+				free(bg);
 				return true;
+			}
 
 			Surface s;
 			s.load(frame, Surface::kTypeOns);
-			if (s.empty())
+			if (s.empty()) {
+				free(bg);
 				return true;
+			}
 
 			_system->copyRectToScreen((const byte *)s.pixels, s.w, s.x, s.y, s.w, s.h);
 			_system->updateScreen();
 
 			_system->delayMillis(100);
 		}
+
+	free(bg);
+
 	return true;
 }
 
@@ -365,29 +411,53 @@ bool TeenAgentEngine::showMetropolis() {
 	FilePack varia;
 	varia.open("varia.res");
 
-	byte palette[3*256];
+	const uint paletteSize = 3 * 256;
+	byte *palette = (byte *)malloc(paletteSize);
+	if (!palette)
+		error("[TeenAgentEngine::showMetropolis] Cannot allocate palette buffer");
+
 	{
 		Common::ScopedPtr<Common::SeekableReadStream> s(varia.getStream(5));
-		s->read(palette, sizeof(palette));
-		for (uint c = 0; c < 3*256; ++c)
+		s->read(palette, paletteSize);
+		for (uint c = 0; c < paletteSize; ++c)
 			palette[c] *= 4;
 	}
 
 	_system->getPaletteManager()->setPalette(palette, 0, 0x100);
 
-	byte varia_6[21760], varia_9[18302];
-	varia.read(6, varia_6, sizeof(varia_6));
-	varia.read(9, varia_9, sizeof(varia_9));
+	free(palette);
 
-	byte colors[56 * 160 * 2];
-	memset(colors, 0, sizeof(colors));
+	const uint varia6Size = 21760;
+	const uint varia9Size = 18302;
+	byte *varia_6 = (byte *)malloc(varia6Size);
+	byte *varia_9 = (byte *)malloc(varia9Size);
+	if (!varia_6 || !varia_9) {
+		free(varia_6);
+		free(varia_9);
+
+		error("[TeenAgentEngine::showMetropolis] Cannot allocate buffer");
+	}
+
+	varia.read(6, varia_6, varia6Size);
+	varia.read(9, varia_9, varia9Size);
+
+	const uint colorsSize = 56 * 160 * 2;
+	byte *colors = (byte *)malloc(colorsSize);
+	if (!colors)
+		error("[TeenAgentEngine::showMetropolis] Cannot allocate colors buffer");
+
+	memset(colors, 0, colorsSize);
 
 	int logo_y = -56;
 	for(uint f = 0; f < 300; ++f) {
 		{
 			int r = skipEvents();
-			if (r != 0)
+			if (r != 0) {
+				free(varia_6);
+				free(varia_9);
+				free(colors);
 				return r > 0? true: false;
+			}
 		}
 
 		Graphics::Surface *surface = _system->lockScreen();
@@ -442,6 +512,11 @@ bool TeenAgentEngine::showMetropolis() {
 		_system->updateScreen();
 		_system->delayMillis(100);
 	}
+
+	free(varia_6);
+	free(varia_9);
+	free(colors);
+
 	return true;
 }
 


Commit: 26f5d57bf5ac434c0f60d5cba480542e82631e6e
    https://github.com/scummvm/scummvm/commit/26f5d57bf5ac434c0f60d5cba480542e82631e6e
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-07-17T05:17:40-07:00

Commit Message:
WINCE: Change default values for "FM_high_quality" & "high_sample_rate"

Changed the default values from "false" to "true" as current devices are
fast enough to handle this. It's still possible to change the values to
"false" if the device isn't fast enough.

This fixes bug #2138118 ("KYRA2: WinCE:Music on Menu freezes and goes to infinity")

Changed paths:
    backends/mixer/wincesdl/wincesdl-mixer.cpp
    backends/platform/wince/README-WinCE.txt



diff --git a/backends/mixer/wincesdl/wincesdl-mixer.cpp b/backends/mixer/wincesdl/wincesdl-mixer.cpp
index 17cf0ce..99dd4ba 100644
--- a/backends/mixer/wincesdl/wincesdl-mixer.cpp
+++ b/backends/mixer/wincesdl/wincesdl-mixer.cpp
@@ -134,15 +134,20 @@ uint32 WINCESdlMixerManager::compute_sample_rate() {
 			ConfMan.setBool("FM_medium_quality", true);
 			ConfMan.flushToDisk();
 		}
+	} else {
+		if (!ConfMan.hasKey("FM_high_quality") && !ConfMan.hasKey("FM_medium_quality")) {
+			ConfMan.setBool("FM_high_quality", true);
+			ConfMan.flushToDisk();
+		}
 	}
 	// See if the output frequency is forced by the game
 	if (gameid == "ft" || gameid == "dig" || gameid == "comi" || gameid == "queen" || gameid == "sword" || gameid == "agi")
 			sampleRate = SAMPLES_PER_SEC_NEW;
 	else {
-		if (ConfMan.hasKey("high_sample_rate") && ConfMan.getBool("high_sample_rate"))
-			sampleRate = SAMPLES_PER_SEC_NEW;
-		else
+		if (ConfMan.hasKey("high_sample_rate") && !ConfMan.getBool("high_sample_rate"))
 			sampleRate = SAMPLES_PER_SEC_OLD;
+		else
+			sampleRate = SAMPLES_PER_SEC_NEW;
 	}
 
 #ifdef USE_VORBIS
diff --git a/backends/platform/wince/README-WinCE.txt b/backends/platform/wince/README-WinCE.txt
index 8f12620..87f6e78 100644
--- a/backends/platform/wince/README-WinCE.txt
+++ b/backends/platform/wince/README-WinCE.txt
@@ -1,10 +1,15 @@
 ScummVM Windows CE FAQ
-Last updated: 2011-07-01
-Release version: 1.3.1
+Last updated: 2011-07-14
+Release version: x.x.x
 ------------------------------------------------------------------------
 
 New in this version
 -------------------
+x.x.x:
+- Changed default values for "high_sample_rate" & "FM_high_quality" to "true" as
+  most devices today are fast enough to handle this. It's still possible to set
+  this to "false" if you have a slower device.
+
 1.3.1:
 - Fix for Normal2xAspect scaler which was causing screen update issues in some
   games.
@@ -361,14 +366,13 @@ Some parameters are specific to this port :
 Game specific sections (f.e. [monkey2]) - performance options
 
  *  high_sample_rate       bool     Desktop quality (22 kHz) sound output if
-                                    set.  The default is 11 kHz.
-                                    If you have a fast device, you can set this
-                                    to true to enjoy better sound effects and
-                                    music.
+                                    set.  This is the default.
+                                    If you have a slow device, you can set this
+                                    to false to prevent lags/delays in the game.
  *  FM_high_quality        bool     Desktop quality FM synthesis if set. Lower
-                                    quality otherwise. The default is low
+                                    quality otherwise. The default is high
                                     quality. You can change this if you have a
-                                    fast device.
+                                    slow device.
  *  sound_thread_priority  int      Set the priority of the sound thread (0, 1,
                                     2). Depending on the release, this is set
                                     to 1 internally (above normal).


Commit: 6a93430db1aa897bd676e7a6add230fc7e4f60ac
    https://github.com/scummvm/scummvm/commit/6a93430db1aa897bd676e7a6add230fc7e4f60ac
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-07-17T05:21:57-07:00

Commit Message:
WINCE: Update port specific README

Changed paths:
    backends/platform/wince/README-WinCE.txt



diff --git a/backends/platform/wince/README-WinCE.txt b/backends/platform/wince/README-WinCE.txt
index 87f6e78..1e66d36 100644
--- a/backends/platform/wince/README-WinCE.txt
+++ b/backends/platform/wince/README-WinCE.txt
@@ -9,6 +9,8 @@ x.x.x:
 - Changed default values for "high_sample_rate" & "FM_high_quality" to "true" as
   most devices today are fast enough to handle this. It's still possible to set
   this to "false" if you have a slower device.
+- Fix for TeenAgent engine (TeenAgent wasn't running at all, crashed right at
+  the beginning)
 
 1.3.1:
 - Fix for Normal2xAspect scaler which was causing screen update issues in some


Commit: 9096b3dc50693bdb99422e7e3d29ba26d70e43b1
    https://github.com/scummvm/scummvm/commit/9096b3dc50693bdb99422e7e3d29ba26d70e43b1
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-07-17T05:38:42-07:00

Commit Message:
WINCE: Replace custom massadd with the global one (shows progress now)

Replaces the formerly custom WinCE massadd function (CELauncherDialog::automaticScanDirectory) with the global one, which is better because it shows progress (massadd in combination with a uncached plugin build takes a very long time to complete and user thinks device has crashed when no progress is shown).
Also fixes the additional custom WinCE about dialog (text was cut off before).

Changed paths:
    backends/platform/wince/CELauncherDialog.cpp
    backends/platform/wince/CELauncherDialog.h



diff --git a/backends/platform/wince/CELauncherDialog.cpp b/backends/platform/wince/CELauncherDialog.cpp
index f79ec3a..35f0e3e 100644
--- a/backends/platform/wince/CELauncherDialog.cpp
+++ b/backends/platform/wince/CELauncherDialog.cpp
@@ -52,12 +52,9 @@ public:
 	CEAboutDialog()
 		: Dialog(10, 60, 300, 77) {
 		char tempo[100];
-
-		// FIXME: Fingolfin asks: why is there a FIXME here? Please either clarify what
-		// needs fixing, or remove it!
 		const int buttonWidth = g_gui.xmlEval()->getVar("Globals.Button.Width", 0);
 		const int buttonHeight = g_gui.xmlEval()->getVar("Globals.Button.Height", 0);
-		new ButtonWidget(this, (_w - buttonWidth) / 2, 45, buttonWidth, buttonHeight, _("OK"), 0, kCloseCmd, '\r'); // Close dialog - FIXME
+		new ButtonWidget(this, (_w - buttonWidth) / 2, 55, buttonWidth, buttonHeight, _("OK"), 0, kCloseCmd, '\r');
 
 		Common::String videoDriver(_("Using SDL driver "));
 		SDL_VideoDriverName(tempo, sizeof(tempo));
@@ -66,7 +63,7 @@ public:
 		Common::String displayInfos(_("Display "));
 		sprintf(tempo, "%dx%d (real %dx%d)", GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), OSystem_WINCE3::getScreenWidth(), OSystem_WINCE3::getScreenHeight());
 		displayInfos += tempo;
-		new StaticTextWidget(this, 0, 20, _w, kLineHeight, displayInfos, Graphics::kTextAlignCenter);
+		new StaticTextWidget(this, 0, 30, _w, kLineHeight, displayInfos, Graphics::kTextAlignCenter);
 	}
 };
 
@@ -85,39 +82,22 @@ void CELauncherDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 d
 	}
 }
 
-void CELauncherDialog::automaticScanDirectory(const Common::FSNode &node) {
-	// First check if we have a recognized game in the current directory
-	Common::FSList files;
-	node.getChildren(files, Common::FSNode::kListFilesOnly);
-	// detect
-	GameList candidates(EngineMan.detectGames(files));
-	// insert
-	if (candidates.size() >= 1) {
-		GameDescriptor result = candidates[0];
-		result["path"] = node.getPath();
-		addGameToConf(result);
-	}
-	// Then recurse on the subdirectories
-	Common::FSList dirs;
-	node.getChildren(dirs, Common::FSNode::kListDirectoriesOnly);
-	for (Common::FSList::const_iterator currentDir = dirs.begin(); currentDir != dirs.end(); ++currentDir)
-		automaticScanDirectory(*currentDir);
-
-}
-
-/* FIXME: We do this here, replicating code of the launcher, because findfirst/next
- * returns some illegal paths atm.
- */
 void CELauncherDialog::addGame() {
 	MessageDialog alert(_("Do you want to perform an automatic scan ?"), _("Yes"), _("No"));
 	if (alert.runModal() == kMessageOK && _browser->runModal() > 0) {
-		// Clear existing domains
-		ConfigManager::DomainMap &domains = (ConfigManager::DomainMap &)ConfMan.getGameDomains();
-		domains.clear();
-		ConfMan.flushToDisk();
-		automaticScanDirectory(_browser->getResult());
-		ConfMan.flushToDisk();
-		updateListing();
+		MassAddDialog massAddDlg(_browser->getResult());
+
+		massAddDlg.runModal();
+
+		// Update the ListWidget and force a redraw
+
+		// If new target(s) were added, update the ListWidget and move
+		// the selection to to first newly detected game.
+		Common::String newTarget = massAddDlg.getFirstAddedTarget();
+		if (!newTarget.empty()) {
+			updateListing();
+			selectTarget(newTarget);
+		}
 		draw();
 	} else
 		GUILauncherDialog::addGame();
diff --git a/backends/platform/wince/CELauncherDialog.h b/backends/platform/wince/CELauncherDialog.h
index 7755e33..e551c77 100644
--- a/backends/platform/wince/CELauncherDialog.h
+++ b/backends/platform/wince/CELauncherDialog.h
@@ -29,6 +29,7 @@
 #include "base/plugins.h"
 #include "common/fs.h"
 #include "gui/launcher.h"
+#include "gui/massadd.h"
 
 class CELauncherDialog : public GUI::LauncherDialog {
 public:
@@ -36,7 +37,6 @@ public:
 	virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
 protected:
 	void addGame();
-	void automaticScanDirectory(const Common::FSNode &node);
 };
 
 typedef GUI::LauncherDialog GUILauncherDialog;


Commit: a6d5d801b83b1a4262570130f03594041fc9690f
    https://github.com/scummvm/scummvm/commit/a6d5d801b83b1a4262570130f03594041fc9690f
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-07-17T13:46:36-07:00

Commit Message:
WINCE: Move initialization of TimerManager to overloaded init() method.

Changed paths:
    backends/platform/wince/wince-sdl.cpp
    backends/platform/wince/wince-sdl.h



diff --git a/backends/platform/wince/wince-sdl.cpp b/backends/platform/wince/wince-sdl.cpp
index 7c1f10a..33624b7 100644
--- a/backends/platform/wince/wince-sdl.cpp
+++ b/backends/platform/wince/wince-sdl.cpp
@@ -45,6 +45,7 @@
 #include "audio/mixer_intern.h"
 #include "audio/fmopl.h"
 
+#include "backends/mutex/sdl/sdl-mutex.h"
 #include "backends/timer/sdl/sdl-timer.h"
 
 #include "gui/Actions.h"
@@ -381,14 +382,6 @@ void OSystem_WINCE3::initBackend() {
 
 	((WINCESdlEventSource *)_eventSource)->init((WINCESdlGraphicsManager *)_graphicsManager);
 
-	// Create the timer (but remove the timer manager from the SDL backend first).
-	// CE SDL does not support multiple timers (SDL_AddTimer).
-	// We work around this by using the SetTimer function, since we only use
-	// one timer in scummvm (for the time being)
-	delete _timerManager;
-	_timerManager = new DefaultTimerManager();
-	SDL_SetTimer(10, &timer_handler_wrapper);
-
 	// Call parent implementation of this method
 	OSystem_SDL::initBackend();
 
@@ -553,6 +546,24 @@ void OSystem_WINCE3::initSDL() {
 	}
 }
 
+void OSystem_WINCE3::init() {
+	// Create SdlMutexManager instance as the TimerManager relies on the
+	// MutexManager being already initialized
+	if (_mutexManager == 0)
+		_mutexManager = new SdlMutexManager();
+
+	// Create the timer. CE SDL does not support multiple timers (SDL_AddTimer).
+	// We work around this by using the SetTimer function, since we only use
+	// one timer in scummvm (for the time being)
+	if (_timerManager == 0) {
+		_timerManager = new DefaultTimerManager();
+		SDL_SetTimer(10, &timer_handler_wrapper);
+	}
+
+	// Call parent implementation of this method
+	OSystem_SDL::init();
+}
+
 void OSystem_WINCE3::quit() {
 	fclose(stdout_file);
 	fclose(stderr_file);
diff --git a/backends/platform/wince/wince-sdl.h b/backends/platform/wince/wince-sdl.h
index 9fdcf79..f912612 100644
--- a/backends/platform/wince/wince-sdl.h
+++ b/backends/platform/wince/wince-sdl.h
@@ -55,6 +55,7 @@ public:
 	void initBackend();
 
 	// Overloaded from SDL backend
+	void init();
 	void quit();
 	virtual Common::String getSystemLanguage() const;
 


Commit: 46d15c5203c5d1a284f7aba87631bfde927f5cf6
    https://github.com/scummvm/scummvm/commit/46d15c5203c5d1a284f7aba87631bfde927f5cf6
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-07-18T14:30:03-07:00

Commit Message:
WINCE: Change keymapping for AGI and Simon 1 & 2

Changed paths:
    backends/platform/wince/CEActionsPocket.cpp
    backends/platform/wince/CEActionsSmartphone.cpp



diff --git a/backends/platform/wince/CEActionsPocket.cpp b/backends/platform/wince/CEActionsPocket.cpp
index 7c2426e..411c7df 100644
--- a/backends/platform/wince/CEActionsPocket.cpp
+++ b/backends/platform/wince/CEActionsPocket.cpp
@@ -218,6 +218,8 @@ void CEActionsPocket::initInstanceGame() {
 		_key_action[POCKET_ACTION_MULTI].setKey(Common::ASCII_F1, SDLK_F1); // bargon : F1 to start
 	else if (gameid == "atlantis")
 		_key_action[POCKET_ACTION_MULTI].setKey(0, SDLK_KP0); // fate of atlantis : Ins to sucker-punch
+	else if (is_simon)
+		_key_action[POCKET_ACTION_MULTI].setKey(Common::ASCII_F10, SDLK_F10); // F10
 	else
 		_key_action[POCKET_ACTION_MULTI].setKey('V', SDLK_v, KMOD_SHIFT); // FT cheat : shift-V
 	// Key bind method
@@ -271,6 +273,15 @@ bool CEActionsPocket::perform(GUI::ActionType action, bool pushed) {
 			else
 				_key_action[action].setKey(SDLK_s);
 		}
+		if (action == POCKET_ACTION_SKIP && ConfMan.get("gameid") == "agi") {
+			// In several AGI games (for example SQ2) it is needed to press F10 to exit from
+			// a screen. But we still want be able to skip normally with the skip button.
+			// Because of this, we inject a F10 keystroke here (this works and doesn't seem
+			// to have side-effects)
+			_key_action[action].setKey(Common::ASCII_F10, SDLK_F10); // F10
+			EventsBuffer::simulateKey(&_key_action[action], true);
+			_key_action[action].setKey(KEY_ALL_SKIP);
+		}
 		EventsBuffer::simulateKey(&_key_action[action], true);
 		return true;
 	case POCKET_ACTION_KEYBOARD:
diff --git a/backends/platform/wince/CEActionsSmartphone.cpp b/backends/platform/wince/CEActionsSmartphone.cpp
index 633a07a..9fa8b1c 100644
--- a/backends/platform/wince/CEActionsSmartphone.cpp
+++ b/backends/platform/wince/CEActionsSmartphone.cpp
@@ -184,6 +184,8 @@ void CEActionsSmartphone::initInstanceGame() {
 		_key_action[SMARTPHONE_ACTION_MULTI].setKey(Common::ASCII_F1, SDLK_F1); // bargon : F1 to start
 	else if (gameid == "atlantis")
 		_key_action[SMARTPHONE_ACTION_MULTI].setKey(0, SDLK_KP0); // fate of atlantis : Ins to sucker-punch
+	else if (is_simon)
+		_key_action[SMARTPHONE_ACTION_MULTI].setKey(Common::ASCII_F10, SDLK_F10); // F10
 	else
 		_key_action[SMARTPHONE_ACTION_MULTI].setKey('V', SDLK_v, KMOD_SHIFT); // FT cheat : shift-V
 	// Bind keys
@@ -235,6 +237,15 @@ bool CEActionsSmartphone::perform(GUI::ActionType action, bool pushed) {
 			else
 				_key_action[action].setKey(SDLK_s);
 		}
+		if (action == SMARTPHONE_ACTION_SKIP && ConfMan.get("gameid") == "agi") {
+			// In several AGI games (for example SQ2) it is needed to press F10 to exit from
+			// a screen. But we still want be able to skip normally with the skip button.
+			// Because of this, we inject a F10 keystroke here (this works and doesn't seem
+			// to have side-effects)
+			_key_action[action].setKey(Common::ASCII_F10, SDLK_F10); // F10
+			EventsBuffer::simulateKey(&_key_action[action], true);
+			_key_action[action].setKey(KEY_ALL_SKIP);
+		}
 		EventsBuffer::simulateKey(&_key_action[action], true);
 		return true;
 	case SMARTPHONE_ACTION_RIGHTCLICK:


Commit: 7d9320e04c3bf5a1600a20adc202ff870b72d51c
    https://github.com/scummvm/scummvm/commit/7d9320e04c3bf5a1600a20adc202ff870b72d51c
Author: Julien (littleboy at users.sourceforge.net)
Date: 2011-07-19T17:47:36-07:00

Commit Message:
GRAPHICS: Allocate Common::PEResources on the heap in WinFont::loadFromPE()

This fixes bug #3332002 ("Hugo 1 won't start in Windows CE 5.0")

Changed paths:
    graphics/fonts/winfont.cpp



diff --git a/graphics/fonts/winfont.cpp b/graphics/fonts/winfont.cpp
index 18866b4..9a0483b 100644
--- a/graphics/fonts/winfont.cpp
+++ b/graphics/fonts/winfont.cpp
@@ -123,15 +123,18 @@ bool WinFont::loadFromNE(const Common::String &fileName, const WinFontDirEntry &
 }
 
 bool WinFont::loadFromPE(const Common::String &fileName, const WinFontDirEntry &dirEntry) {
-	Common::PEResources exe;
+	Common::PEResources *exe = new Common::PEResources();
 
-	if (!exe.loadFromEXE(fileName))
+	if (!exe->loadFromEXE(fileName)) {
+		delete exe;
 		return false;
+	}
 
 	// Let's pull out the font directory
-	Common::SeekableReadStream *fontDirectory = exe.getResource(Common::kPEFontDir, Common::String("FONTDIR"));
+	Common::SeekableReadStream *fontDirectory = exe->getResource(Common::kPEFontDir, Common::String("FONTDIR"));
 	if (!fontDirectory) {
 		warning("No font directory in '%s'", fileName.c_str());
+		delete exe;
 		return false;
 	}
 
@@ -142,18 +145,21 @@ bool WinFont::loadFromPE(const Common::String &fileName, const WinFontDirEntry &
 	// Couldn't match the face name
 	if (fontId == 0xffffffff) {
 		warning("Could not find face '%s' in '%s'", dirEntry.faceName.c_str(), fileName.c_str());
+		delete exe;
 		return false;
 	}
 
 	// Actually go get our font now...
-	Common::SeekableReadStream *fontStream = exe.getResource(Common::kPEFont, fontId);
+	Common::SeekableReadStream *fontStream = exe->getResource(Common::kPEFont, fontId);
 	if (!fontStream) {
 		warning("Could not find font %d in %s", fontId, fileName.c_str());
+		delete exe;
 		return false;
 	}
 
 	bool ok = loadFromFNT(*fontStream);
 	delete fontStream;
+	delete exe;
 	return ok;
 }
 


Commit: dfe0c78f27a39cc0901e6375eb9becb728363c53
    https://github.com/scummvm/scummvm/commit/dfe0c78f27a39cc0901e6375eb9becb728363c53
Author: CeRiAl (ikhatib at gmail.com)
Date: 2011-07-19T17:52:36-07:00

Commit Message:
WINCE: Update port specific README

Changed paths:
    backends/platform/wince/README-WinCE.txt



diff --git a/backends/platform/wince/README-WinCE.txt b/backends/platform/wince/README-WinCE.txt
index 1e66d36..60bcf71 100644
--- a/backends/platform/wince/README-WinCE.txt
+++ b/backends/platform/wince/README-WinCE.txt
@@ -1,5 +1,5 @@
 ScummVM Windows CE FAQ
-Last updated: 2011-07-14
+Last updated: 2011-07-20
 Release version: x.x.x
 ------------------------------------------------------------------------
 
@@ -9,8 +9,10 @@ x.x.x:
 - Changed default values for "high_sample_rate" & "FM_high_quality" to "true" as
   most devices today are fast enough to handle this. It's still possible to set
   this to "false" if you have a slower device.
-- Fix for TeenAgent engine (TeenAgent wasn't running at all, crashed right at
-  the beginning)
+- Fix for TeenAgent & Hugo engines (both weren't running at all, crashed right
+  at the beginning)
+- Replaced the game mass-adding functionality with the functionality used on all
+  other platforms. It now shows progress while searching for games.
 
 1.3.1:
 - Fix for Normal2xAspect scaler which was causing screen update issues in some






More information about the Scummvm-git-logs mailing list