DS: Merge changes from 1.1.0 branch into trunk

svn-id: r48677
This commit is contained in:
Max Horn 2010-04-16 20:49:16 +00:00
parent 17c0c846aa
commit b191acf7cc
2 changed files with 127 additions and 101 deletions

View file

@ -41,6 +41,15 @@ Visit the main ScummVM website <http://www.scummvm.org>
What's New? What's New?
------------------------------------------------------------------------ ------------------------------------------------------------------------
ScummVM DS 1.1.0
* New games are supported in this stable build: Return to Zork, Rodney's
Funscreen, Manhole, Leather Goddess of Phobos 2, Cruise for a Corpse.
ScummVM DS 1.0.0
* No changes!
ScummVM DS 1.0.0 RC1 ScummVM DS 1.0.0 RC1
* Gamma correction feature to improve brightness level of game on the * Gamma correction feature to improve brightness level of game on the
@ -310,7 +319,7 @@ CANNOT DO THIS.
------------------------------------------------------------------------ ------------------------------------------------------------------------
I'm glad you asked. Here is a list of the compatible games in version I'm glad you asked. Here is a list of the compatible games in version
1.0.0 RC1. Demo versions of the games listed should work too. 1.1.0. Demo versions of the games listed should work too.
Flight of the Amazon Queen, Beneath a Steel Sky, and Lure of the Flight of the Amazon Queen, Beneath a Steel Sky, and Lure of the
Temptress have generously been released as freeware by the original Temptress have generously been released as freeware by the original
@ -400,6 +409,16 @@ Lure of the Temptress G
Nippon Safes G Nippon Safes G
Return to Zork I
Leather Goddess of Phobos 2 I
Manhole I
Rodney's Funscreen I
Cruise for a Corpse K
Full Throttle and The Dig can run on the DS using an external RAM pack Full Throttle and The Dig can run on the DS using an external RAM pack
plugged into slot-2 (the GBA slot). To do this, download the special plugged into slot-2 (the GBA slot). To do this, download the special
@ -456,7 +475,8 @@ with the DS pen, you can switch the input into one of three modes. Press
left on the D-pad to enable the left mouse button. Press right on the left on the D-pad to enable the left mouse button. Press right on the
D-pad to enable the right mouse button. Press up on the D-pad to enable D-pad to enable the right mouse button. Press up on the D-pad to enable
hover mode. In this mode, you won't click on anything, just hover the hover mode. In this mode, you won't click on anything, just hover the
mouse cursor over it. This lets you pick out active objects in the scene. mouse cursor over it. This lets you pick out active objects in the
scene.
An icon on the top screen will show you which mode you're in. An icon on the top screen will show you which mode you're in.
@ -467,8 +487,8 @@ mode) will click the left or right mouse button.
There is an alternative method of control which doesn't require you to There is an alternative method of control which doesn't require you to
change modes with the D-pad. Press 'Select' to bring up the DS options, change modes with the D-pad. Press 'Select' to bring up the DS options,
and choose 'Tap for left click, double tap for right click'. In this and choose 'Tap for left click, double tap for right click'. In this
mode, you can quickly tap the screen to left click the mouse, and tap twice mode, you can quickly tap the screen to left click the mouse, and tap
to right click the mouse. twice to right click the mouse.
Here is a complete list of controls in right-handed mode (the default Here is a complete list of controls in right-handed mode (the default
@ -477,8 +497,9 @@ Key Usage
Pad Left Left mouse button Pad Left Left mouse button
Pad Right Right mouse button Pad Right Right mouse button
Pad Up Hover mouse (no mouse button) Pad Up Hover mouse (no mouse button)
Pad Down Skip dialogue line (for some Lucasarts games), Show inventory Pad Down Skip dialogue line (for some Lucasarts games),
(for Beneath a Steel Sky), Show active objects (for Simon the Sorceror) Show inventory (for Beneath a Steel Sky), Show
active objects (for Simon the Sorceror)
Start Pause/game menu (works in some games) Start Pause/game menu (works in some games)
Select DS Options Select DS Options
B Skip cutscenes B Skip cutscenes
@ -496,8 +517,9 @@ Key Usage
Y Left mouse button Y Left mouse button
A Right mouse button A Right mouse button
X Hover mouse (no mouse button) X Hover mouse (no mouse button)
B Skip dialogue line (for some Lucasarts games), Show inventory (for B Skip dialogue line (for some Lucasarts games),
Beneath a Steel Sky), Show active objects (for Simon the Sorceror) Show inventory (for Beneath a Steel Sky), Show
active objects (for Simon the Sorceror)
Start Pause/game menu (works in some games) Start Pause/game menu (works in some games)
Select DS Options Select DS Options
D-pad down Skip cutscenes D-pad down Skip cutscenes
@ -779,11 +801,11 @@ This program was brought to you by caffiene, sugar, and late nights.
------------------------------------------------------------------------ ------------------------------------------------------------------------
If you have problems getting ScummVM to work on your hardware, please If you have problems getting ScummVM to work on your hardware, please
read the FAQ first. /Please/ don't ask me questions which are read the FAQ first. /Please/ don't ask me questions which are answered
answered in the FAQ, I get many emails about this program each day, and in the FAQ, I get many emails about this program each day, and I can't
I can't help the people who really need help if I'm answering the same help the people who really need help if I'm answering the same question
question all the time which is already answered on this page. Other than all the time which is already answered on this page. Other than that,
that, feel free to post on the ScummVM DS forum <http://forums.scummvm.org> feel free to post on the ScummVM DS forum <http://forums.scummvm.org>
for help. Please do your research first though. There is no way of for help. Please do your research first though. There is no way of
running this on an out-of-the box DS without extra hardware. Most of running this on an out-of-the box DS without extra hardware. Most of
these things are fairly inexpensive though. these things are fairly inexpensive though.
@ -819,6 +841,7 @@ libmad support by opening 'backends/platform/ds/arm9/makefile' and
commenting out the line which says USE_MAD = 1. commenting out the line which says USE_MAD = 1.
Then, enter the 'backends/platform/ds' folder and type: Then, enter the 'backends/platform/ds' folder and type:
make SCUMM_BUILD=a make SCUMM_BUILD=a
The executable nds file will build inside 'backends/platform/ds/arm9/SCUMMVM-A'. The executable nds file will build inside 'backends/platform/ds/arm9/SCUMMVM-A'.
@ -826,6 +849,7 @@ The executable nds file will build inside 'backends/platform/ds/arm9/SCUMMVM-A'.
For other builds, substitute the letters b - g in the above line. For other builds, substitute the letters b - g in the above line.
To build everything, type: To build everything, type:
make allbuildssafe make allbuildssafe

View file

@ -349,19 +349,19 @@ gameListType* currentGame = NULL;
// Stylus // Stylus
#define ABS(x) ((x)>0?(x):-(x)) #define ABS(x) ((x)>0?(x):-(x))
bool penDown; bool penDown = FALSE;
bool penHeld; bool penHeld = FALSE;
bool penReleased; bool penReleased = FALSE;
bool penDownLastFrame; bool penDownLastFrame = FALSE;
s32 penX, penY; s32 penX = 0, penY = 0;
s32 penDownX, penDownY; s32 penDownX = 0, penDownY = 0;
int keysDownSaved; int keysDownSaved = 0;
int keysReleasedSaved; int keysReleasedSaved = 0;
int keysChangedSaved; int keysChangedSaved = 0;
bool penDownSaved; bool penDownSaved = FALSE;
bool penReleasedSaved; bool penReleasedSaved = FALSE;
int penDownFrames; int penDownFrames = 0;
int touchXOffset = 0; int touchXOffset = 0;
int touchYOffset = 0; int touchYOffset = 0;
@ -1403,18 +1403,21 @@ void doButtonSelectMode(OSystem_DS* system)
if (getPenReleased() && (leftButtonDown || rightButtonDown)) { if (getPenReleased() && (leftButtonDown || rightButtonDown)) {
if (leftButtonDown) { if (leftButtonDown) {
event.type = Common::EVENT_LBUTTONUP; event.type = Common::EVENT_LBUTTONUP;
} else { leftButtonDown = false;
event.type = Common::EVENT_RBUTTONUP;
}
event.mouse = Common::Point(getPenX(), getPenY()); event.mouse = Common::Point(getPenX(), getPenY());
system->addEvent(event); system->addEvent(event);
} else if (rightButtonDown) {
event.type = Common::EVENT_RBUTTONUP;
rightButtonDown = false;
event.mouse = Common::Point(getPenX(), getPenY());
system->addEvent(event);
}
} }
if ((mouseMode != MOUSE_HOVER) || (!displayModeIs8Bit)) { if ((mouseMode != MOUSE_HOVER) || (!displayModeIs8Bit)) {
if (getPenDown() && (!(getKeysHeld() & KEY_L)) && (!(getKeysHeld() & KEY_R))) { if (getPenDown() && (!(getKeysHeld() & KEY_L)) && (!(getKeysHeld() & KEY_R))) {
if ((mouseMode == MOUSE_LEFT) || (!displayModeIs8Bit)) { if (mouseMode == MOUSE_LEFT) {
event.type = Common::EVENT_LBUTTONDOWN; event.type = Common::EVENT_LBUTTONDOWN;
leftButtonDown = true; leftButtonDown = true;
} else { } else {
@ -1462,8 +1465,7 @@ void doButtonSelectMode(OSystem_DS* system)
mouseMode = MOUSE_LEFT; mouseMode = MOUSE_LEFT;
} }
if (rightButtonDown) if (rightButtonDown) {
{
Common::Event event; Common::Event event;
event.mouse = Common::Point(getPenX(), getPenY()); event.mouse = Common::Point(getPenX(), getPenY());
event.type = Common::EVENT_RBUTTONUP; event.type = Common::EVENT_RBUTTONUP;
@ -1642,29 +1644,29 @@ void addEventsToQueue() {
} }
static int selectHoldCount = 0; static int selectTimeDown = -1;
static const int SELECT_HOLD_TIME = 60; static const int SELECT_HOLD_TIME = 1000;
if ((getKeysHeld() & KEY_SELECT)) { if (getKeysDown() & KEY_SELECT) {
selectHoldCount++; selectTimeDown = getMillis();
}
if (selectHoldCount == SELECT_HOLD_TIME) { if (selectTimeDown != -1) {
if (getKeysHeld() & KEY_SELECT) {
if (getMillis() - selectTimeDown >= SELECT_HOLD_TIME) {
// Hold select down for one second - show GMM // Hold select down for one second - show GMM
g_engine->openMainMenuDialog(); g_engine->openMainMenuDialog();
} }
} else {
selectHoldCount = 0;
} }
if (getKeysReleased() & KEY_SELECT) { if (getKeysReleased() & KEY_SELECT) {
if (selectHoldCount < SELECT_HOLD_TIME) { if (getMillis() - selectTimeDown < SELECT_HOLD_TIME) {
// Just pressed select - show DS options screen // Just pressed select - show DS options screen
showOptionsDialog(); showOptionsDialog();
} }
} }
} }
}
if (!getIndyFightState() && !((getKeysHeld() & KEY_L) || (getKeysHeld() & KEY_R)) && (getKeysDown() & KEY_X)) { if (!getIndyFightState() && !((getKeysHeld() & KEY_L) || (getKeysHeld() & KEY_R)) && (getKeysDown() & KEY_X)) {
setKeyboardEnable(!keyboardEnable); setKeyboardEnable(!keyboardEnable);
@ -2081,7 +2083,7 @@ void VBlankHandler(void) {
storedMouseX = penX; storedMouseX = penX;
storedMouseY = penY; storedMouseY = penY;
if (gameScreenSwap) { if (gameScreenSwap && touchPadStyle) {
setIcon(3, storedMouseX - mouseHotspotX, storedMouseY - mouseHotspotY, 8, 0, true); setIcon(3, storedMouseX - mouseHotspotX, storedMouseY - mouseHotspotY, 8, 0, true);
setIconMain(3, 0, 0, 0, 0, false); setIconMain(3, 0, 0, 0, 0, false);
} else { } else {