DS: Merge changes from 1.1.0 branch into trunk
svn-id: r48677
This commit is contained in:
parent
17c0c846aa
commit
b191acf7cc
2 changed files with 127 additions and 101 deletions
124
backends/platform/ds/arm9/dist/readme_ds.txt
vendored
124
backends/platform/ds/arm9/dist/readme_ds.txt
vendored
|
@ -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
|
||||||
|
@ -226,25 +235,25 @@ Here is what you need to do:
|
||||||
If your copy of ScummVM DS has been successfully patched, you will get a
|
If your copy of ScummVM DS has been successfully patched, you will get a
|
||||||
message on the top screen that looks like this:
|
message on the top screen that looks like this:
|
||||||
|
|
||||||
DLDI Device:
|
DLDI Device:
|
||||||
GBA Movie Player (Compact Flash)
|
GBA Movie Player (Compact Flash)
|
||||||
|
|
||||||
The message should show the name of your card reader. If it is wrong,
|
The message should show the name of your card reader. If it is wrong,
|
||||||
you have used the wrong DLDI file.
|
you have used the wrong DLDI file.
|
||||||
|
|
||||||
If you haven't patched your .nds file, you will get the following message
|
If you haven't patched your .nds file, you will get the following message
|
||||||
|
|
||||||
DLDI Driver not patched!
|
DLDI Driver not patched!
|
||||||
DLDI Initialise failed.
|
DLDI Initialise failed.
|
||||||
|
|
||||||
In this case, you've made a mistake following the above instructions, or
|
In this case, you've made a mistake following the above instructions, or
|
||||||
have patched the wrong file.
|
have patched the wrong file.
|
||||||
|
|
||||||
You may also see the following message:
|
You may also see the following message:
|
||||||
|
|
||||||
DLDI Device:
|
DLDI Device:
|
||||||
GBA Movie Player (Compact Flash)
|
GBA Movie Player (Compact Flash)
|
||||||
DLDI Initialise failed.
|
DLDI Initialise failed.
|
||||||
|
|
||||||
In this case, the driver did not start up correctly. The driver is
|
In this case, the driver did not start up correctly. The driver is
|
||||||
probably broken, or you've used the wrong one for your card reader.
|
probably broken, or you've used the wrong one for your card reader.
|
||||||
|
@ -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
|
||||||
|
@ -342,9 +351,9 @@ Monkey Island 2: LeChuck's Revenge A
|
||||||
|
|
||||||
Indiana Jones and the Fate of Atlantis A
|
Indiana Jones and the Fate of Atlantis A
|
||||||
|
|
||||||
Day of the Tentacle A
|
Day of the Tentacle A
|
||||||
|
|
||||||
Sam & Max Hit the Road A Some slowdown in a few scenes
|
Sam & Max Hit the Road A Some slowdown in a few scenes
|
||||||
when MP3 audio is enabled
|
when MP3 audio is enabled
|
||||||
|
|
||||||
Bear Stormin' (DOS) A
|
Bear Stormin' (DOS) A
|
||||||
|
@ -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,46 +487,48 @@ 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
|
||||||
setting):
|
setting):
|
||||||
Key Usage
|
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
|
||||||
Start Pause/game menu (works in some games)
|
active objects (for Simon the Sorceror)
|
||||||
Select DS Options
|
Start Pause/game menu (works in some games)
|
||||||
B Skip cutscenes
|
Select DS Options
|
||||||
A Swap main screen and zoomed screen
|
B Skip cutscenes
|
||||||
Y Show/Hide debug console
|
A Swap main screen and zoomed screen
|
||||||
X Show/Hide on-screen keyboard
|
Y Show/Hide debug console
|
||||||
L + D-pad or L + Pen Scroll touch screen view
|
X Show/Hide on-screen keyboard
|
||||||
L + B Zoom in
|
L + D-pad or L + Pen Scroll touch screen view
|
||||||
L + A Zoom out
|
L + B Zoom in
|
||||||
|
L + A Zoom out
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
And here's left-handed mode:
|
And here's left-handed mode:
|
||||||
Key Usage
|
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
|
||||||
Start Pause/game menu (works in some games)
|
active objects (for Simon the Sorceror)
|
||||||
Select DS Options
|
Start Pause/game menu (works in some games)
|
||||||
D-pad down Skip cutscenes
|
Select DS Options
|
||||||
D-pad up Swap main screen and zoomed screen
|
D-pad down Skip cutscenes
|
||||||
D-pad left Show/Hide debug console
|
D-pad up Swap main screen and zoomed screen
|
||||||
D-pad right Show/Hide on-screen keyboard
|
D-pad left Show/Hide debug console
|
||||||
R + D-pad or R + Pen Scroll touch screen view
|
D-pad right Show/Hide on-screen keyboard
|
||||||
R + D-pad down Zoom in
|
R + D-pad or R + Pen Scroll touch screen view
|
||||||
R + d-pad right Zoom out
|
R + D-pad down Zoom in
|
||||||
|
R + d-pad right Zoom out
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -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,14 +841,16 @@ 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'.
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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.mouse = Common::Point(getPenX(), getPenY());
|
||||||
|
system->addEvent(event);
|
||||||
|
} else if (rightButtonDown) {
|
||||||
event.type = Common::EVENT_RBUTTONUP;
|
event.type = Common::EVENT_RBUTTONUP;
|
||||||
|
rightButtonDown = false;
|
||||||
|
event.mouse = Common::Point(getPenX(), getPenY());
|
||||||
|
system->addEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
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,26 +1644,26 @@ 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) {
|
|
||||||
// Hold select down for one second - show GMM
|
|
||||||
g_engine->openMainMenuDialog();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
selectHoldCount = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (selectTimeDown != -1) {
|
||||||
|
if (getKeysHeld() & KEY_SELECT) {
|
||||||
|
if (getMillis() - selectTimeDown >= SELECT_HOLD_TIME) {
|
||||||
|
// Hold select down for one second - show GMM
|
||||||
|
g_engine->openMainMenuDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getKeysReleased() & KEY_SELECT) {
|
||||||
if (getKeysReleased() & KEY_SELECT) {
|
if (getMillis() - selectTimeDown < SELECT_HOLD_TIME) {
|
||||||
if (selectHoldCount < SELECT_HOLD_TIME) {
|
// Just pressed select - show DS options screen
|
||||||
// Just pressed select - show DS options screen
|
showOptionsDialog();
|
||||||
showOptionsDialog();
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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 {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue