Updated ScummVM, fixed UQM, new option: keep screen ratio aspect

This commit is contained in:
pelya
2010-11-17 23:05:40 +02:00
parent c88985782b
commit 79af9388f8
16 changed files with 114 additions and 41 deletions

View File

@@ -63,10 +63,11 @@ class Globals {
public static final int RIGHT_CLICK_WITH_MENU_BUTTON = 1;
public static final int RIGHT_CLICK_WITH_MULTITOUCH = 2;
public static final int RIGHT_CLICK_WITH_PRESSURE = 3;
public static int RightClickMethod = RIGHT_CLICK_WITH_MENU_BUTTON;
public static int RightClickMethod = RIGHT_CLICK_NONE;
public static boolean LeftClickUsesPressure = false;
public static boolean LeftClickUsesMultitouch = false;
public static boolean ShowScreenUnderFinger = false;
public static boolean KeepAspectRatio = false;
public static int ClickScreenPressure = 0;
public static int ClickScreenTouchspotSize = 0;
}

View File

@@ -55,6 +55,7 @@ class Settings
out.writeBoolean(Globals.LeftClickUsesMultitouch);
out.writeInt(Globals.ClickScreenPressure);
out.writeInt(Globals.ClickScreenTouchspotSize);
out.writeBoolean(Globals.KeepAspectRatio);
out.close();
settingsLoaded = true;
@@ -93,6 +94,7 @@ class Settings
Globals.LeftClickUsesMultitouch = settingsFile.readBoolean();
Globals.ClickScreenPressure = settingsFile.readInt();
Globals.ClickScreenTouchspotSize = settingsFile.readInt();
Globals.KeepAspectRatio = settingsFile.readBoolean();
settingsLoaded = true;
@@ -497,26 +499,36 @@ class Settings
Globals.LeftClickUsesPressure = false;
Globals.LeftClickUsesMultitouch = false;
/*
if( ! Globals.AppNeedsTwoButtonMouse )
{
showTouchPressureMeasurementTool(p);
return;
}
CharSequence[] items = { p.getResources().getString(R.string.pointandclick_showcreenunderfinger),
*/
CharSequence[] items = { p.getResources().getString(R.string.pointandclick_keepaspectratio),
p.getResources().getString(R.string.pointandclick_showcreenunderfinger),
p.getResources().getString(R.string.pointandclick_usepressure),
p.getResources().getString(R.string.pointandclick_multitouch) };
if( Globals.RightClickMethod == Globals.RIGHT_CLICK_WITH_PRESSURE )
{
CharSequence[] items2 = { p.getResources().getString(R.string.pointandclick_showcreenunderfinger),
CharSequence[] items2 = { p.getResources().getString(R.string.pointandclick_keepaspectratio),
p.getResources().getString(R.string.pointandclick_showcreenunderfinger),
p.getResources().getString(R.string.pointandclick_multitouch) };
items = items2;
}
if( Globals.RightClickMethod == Globals.RIGHT_CLICK_WITH_MULTITOUCH )
{
CharSequence[] items2 = { p.getResources().getString(R.string.pointandclick_showcreenunderfinger),
CharSequence[] items2 = { p.getResources().getString(R.string.pointandclick_keepaspectratio),
p.getResources().getString(R.string.pointandclick_showcreenunderfinger),
p.getResources().getString(R.string.pointandclick_usepressure) };
items = items2;
}
if( ! Globals.AppNeedsTwoButtonMouse )
{
CharSequence[] items2 = { p.getResources().getString(R.string.pointandclick_keepaspectratio) };
items = items2;
}
AlertDialog.Builder builder = new AlertDialog.Builder(p);
builder.setTitle(p.getResources().getString(R.string.pointandclick_question));
@@ -525,15 +537,17 @@ class Settings
public void onClick(DialogInterface dialog, int item, boolean isChecked)
{
if( item == 0 )
Globals.ShowScreenUnderFinger = isChecked;
Globals.KeepAspectRatio = isChecked;
if( item == 1 )
Globals.ShowScreenUnderFinger = isChecked;
if( item == 2 )
{
if( Globals.RightClickMethod == Globals.RIGHT_CLICK_WITH_PRESSURE )
Globals.LeftClickUsesMultitouch = isChecked;
else
Globals.LeftClickUsesPressure = isChecked;
}
if( item == 2 )
if( item == 3 )
Globals.LeftClickUsesMultitouch = isChecked;
}
});

View File

@@ -186,7 +186,7 @@ class DemoRenderer extends GLSurfaceView_SDL.Renderer {
}
public void onSurfaceChanged(GL10 gl, int w, int h) {
nativeResize(w, h);
nativeResize(w, h, Globals.KeepAspectRatio ? 1 : 0);
}
public void onSurfaceDestroyed() {
@@ -250,7 +250,7 @@ class DemoRenderer extends GLSurfaceView_SDL.Renderer {
private native void nativeInitJavaCallbacks();
private native void nativeInit(String CommandLine);
private native void nativeResize(int w, int h);
private native void nativeResize(int w, int h, int keepAspectRatio);
private native void nativeDone();
private native void nativeGlContextLost();
public native void nativeGlContextRecreated();

View File

@@ -64,7 +64,8 @@
<string name="rightclick_multitouch">Touch screen with second finger</string>
<string name="rightclick_pressure">Touch screen with force</string>
<string name="pointandclick_question">Advanced point-and-click features</string>
<string name="pointandclick_question">Advanced features</string>
<string name="pointandclick_keepaspectratio">Keep 4:3 acreen aspect ratio</string>
<string name="pointandclick_showcreenunderfinger">Show screen under finger in separate window</string>
<string name="pointandclick_usepressure">Left click triggered by touch force</string>
<string name="pointandclick_multitouch">Left click triggered by touch with second finger</string>

View File

@@ -5,7 +5,7 @@ AppName="Ur-Quan Masters"
AppFullName=com.sourceforge.sc2
ScreenOrientation=h
InhibitSuspend=n
AppDataDownloadUrl="Game data is 14 Mb|https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/sc2-data.zip/download|https://sites.google.com/site/xpelyax/Home/sc2-data.zip?attredirects=0&d=1|http:// sitesproxy.goapk.com/site/xpelyax/Home/sc2-data.zip^3DO remixed music (19 Mb) - enable it in Setup->Sound Options->3DO Remixes|:addons/3domusic/3domusic.zip:https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/3domusic.zip/download|:addons/3domusic/3domusic.zip:https://sites. google.com/site/xpelyax/Home/3domusic.zip?attredirects=0&d=1|:addons/3domusic/3domusic.zip:http://sitesproxy.goapk.com/site/xpelyax/Home/3domusic.zip^UQM music remix pack (150 Mb) - enable it in Setup->Sound Options->UQM Remixes|:addons/remix/remix.zip:https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/remix.zip/download^3DO voice (115 Mb) - go to Setup->Sound Options and increase Voice volume from zero|:addons/3dovoice/3dovoice.zip:https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/3dovoice.zip/download^Russian translation|:addons/lang/shadow-content/lang.zip:http://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/translations/2/russian.zip/download^Deutsch translation|:addons/lang/shadow-content/lang.zip:http://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/translations/2/deutsch.zip/download^Spanish translation|:addons/lang/shadow-content/lang.zip:http://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/translations/2/spanish.zip/download^Slovak translation|:addons/lang/shadow-content/lang.zip:http://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/translations/2/slovak.zip/download^Finnish translation|:addons/lang/shadow-content/lang.zip:http://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/translations/2/finnish.zip/download^3DO video support - after installing this pack copy all files from|https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/3dovideo.zip/download^your 3DO Star Control II game CD from 'duckart' dir to the SD card to dir|https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/3dovideo.zip/download^'app-data/com.sourceforge.sc2/addons/3dovideo', to extract files from 3DO disk use|https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/3dovideo.zip/download^'3DO Commander' or 'uncd-rom' apps from http://madroms.free.fr/3do/|https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/3dovideo.zip/download^Then from the game change 'Setup->PC/3DO compat->Cutscenes' to Movies, and restart game|https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/3dovideo.zip/download"
AppDataDownloadUrl="Game data is 14 Mb|https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/sc2-data-3.zip/download^3DO remixed music (19 Mb) - enable it in Setup->Sound Options->3DO Remixes|:addons/3domusic/3domusic.zip:https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/3domusic.zip/download^UQM music remix pack (150 Mb) - enable it in Setup->Sound Options->UQM Remixes|:addons/remix/remix.zip:https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/remix.zip/download^3DO voice (115 Mb) - go to Setup->Sound Options and increase Voice volume from zero|:addons/3dovoice/3dovoice.zip:https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/3dovoice.zip/download^Russian translation|:addons/lang/shadow-content/lang.zip:http://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/translations/2/russian.zip/download^Deutsch translation|:addons/lang/shadow-content/lang.zip:http://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/translations/2/deutsch.zip/download^Spanish translation|:addons/lang/shadow-content/lang.zip:http://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/translations/2/spanish.zip/download^Slovak translation|:addons/lang/shadow-content/lang.zip:http://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/translations/2/slovak.zip/download^Finnish translation|:addons/lang/shadow-content/lang.zip:http://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/translations/2/finnish.zip/download^3DO video support - after installing this pack copy all files from|https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/3dovideo.zip/download^your 3DO Star Control II game CD from 'duckart' dir to the SD card to dir|https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/3dovideo.zip/download^'app-data/com.sourceforge.sc2/addons/3dovideo', to extract files from 3DO disk use|https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/3dovideo.zip/download^'3DO Commander' or 'uncd-rom' apps from http://madroms.free.fr/3do/|https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/3dovideo.zip/download^Then from the game change 'Setup->PC/3DO compat->Cutscenes' to Movies, and restart game|https://sourceforge.net/projects/libsdl-android/files/Ur-Quan%20Masters/3dovideo.zip/download"
SdlVideoResize=y
SdlVideoResizeKeepAspect=n
NeedDepthBuffer=n
@@ -21,11 +21,11 @@ RedefinedKeys="RETURN RSHIFT KP_PLUS KP_MINUS RCTRL F10"
AppTouchscreenKeyboardKeysAmount=2
AppTouchscreenKeyboardKeysAmountAutoFire=0
MultiABI=n
AppVersionCode=06918
AppVersionName="0.6.9.18 - translation packages work for real now"
AppVersionCode=06919
AppVersionName="0.6.9.19"
CompiledLibraries="sdl_image tremor ogg"
CustomBuildScript=n
AppCflags='-O3 -DTHREADLIB_SDL=1 -DTIMELIB=SDL -DOVCODEC_TREMOR=1 -DNETPLAY=1 -DHAVE_REGEX=1 -DHAVE_GETOPT_LONG=1 -DHAVE_ZIP=1 -DHAVE_JOYSTICK=1 -DDIRECTIONAL_JOYSTICK_MELEE=1'
AppCflags='-O3 -DTHREADLIB_SDL=1 -DTIMELIB=SDL -DOVCODEC_TREMOR=1 -DNETPLAY=1 -DHAVE_REGEX=1 -DHAVE_GETOPT_LONG=1 -DHAVE_ZIP=1 -DHAVE_JOYSTICK=1'
AppLdflags=''
AppSubdirsBuild=''
AppUseCrystaXToolchain=n

View File

@@ -50,6 +50,7 @@ int optWhichIntro;
int optWhichShield;
int optSmoothScroll;
int optMeleeScale;
int optDirectionalJoystick;
const char **optAddons;
BOOLEAN opt3doMusic;

View File

@@ -37,6 +37,7 @@ extern int optWhichIntro;
extern int optWhichShield;
extern int optSmoothScroll;
extern int optMeleeScale;
extern int optDirectionalJoystick;
extern BOOLEAN opt3doMusic;
extern BOOLEAN optRemixMusic;

View File

@@ -127,6 +127,7 @@ struct options_struct
DECL_CONFIG_OPTION(float, sfxVolumeScale);
DECL_CONFIG_OPTION(float, speechVolumeScale);
DECL_CONFIG_OPTION(bool, safeMode);
DECL_CONFIG_OPTION(bool, directionalJoystick);
#define INIT_CONFIG_OPTION(name, val) \
{ val, false }
@@ -260,6 +261,7 @@ main (int argc, char *argv[])
INIT_CONFIG_OPTION( sfxVolumeScale, 1.0f ),
INIT_CONFIG_OPTION( speechVolumeScale, 1.0f ),
INIT_CONFIG_OPTION( safeMode, false ),
INIT_CONFIG_OPTION( directionalJoystick, true ),
};
struct options_struct defaults = options;
int optionsResult;
@@ -396,6 +398,7 @@ main (int argc, char *argv[])
sfxVolumeScale = options.sfxVolumeScale.value;
speechVolumeScale = options.speechVolumeScale.value;
optAddons = options.addons;
optDirectionalJoystick = options.directionalJoystick.value;
prepareContentDir (options.contentDir, options.addonDir, argv[0]);
prepareMeleeDir ();
@@ -617,6 +620,7 @@ getUserConfigOptions (struct options_struct *options)
getBoolConfigValue (&options->fullscreen, "config.fullscreen");
getBoolConfigValue (&options->scanlines, "config.scanlines");
getBoolConfigValue (&options->showFps, "config.showfps");
getBoolConfigValue (&options->directionalJoystick, "config.directionaljoystick");
getBoolConfigValue (&options->keepAspectRatio, "config.keepaspectratio");
getBoolConfigValue (&options->subtitles, "config.subtitles");

View File

@@ -544,9 +544,7 @@ static inline int atan2i(int y, int x)
BATTLE_INPUT_STATE GetDirectionalJoystickInput(int direction)
{
BATTLE_INPUT_STATE InputState = 0;
#ifdef DIRECTIONAL_JOYSTICK_MELEE
if(VControl_GetJoysticksAmount() <= 0)
#endif
if(VControl_GetJoysticksAmount() <= 0 || !optDirectionalJoystick)
{
if(CurrentInputState.key[PlayerControls[0]][KEY_UP])
InputState |= BATTLE_THRUST;
@@ -555,7 +553,6 @@ BATTLE_INPUT_STATE GetDirectionalJoystickInput(int direction)
if (CurrentInputState.key[PlayerControls[0]][KEY_RIGHT])
InputState |= BATTLE_RIGHT;
}
#ifdef DIRECTIONAL_JOYSTICK_MELEE
else
{
/* TODO: only joystick #0 supported currently */
@@ -571,7 +568,7 @@ BATTLE_INPUT_STATE GetDirectionalJoystickInput(int direction)
angle -= atan2i_PI * 2;
angle = angle * SHIP_DIRECTIONS / atan2i_PI / 2;
diff = angle - direction + SHIP_DIRECTIONS / 4;
diff = angle - direction - SHIP_DIRECTIONS / 4;
while( diff >= SHIP_DIRECTIONS )
diff -= SHIP_DIRECTIONS;
while( diff < 0 )
@@ -586,6 +583,5 @@ BATTLE_INPUT_STATE GetDirectionalJoystickInput(int direction)
InputState |= BATTLE_THRUST;
}
}
#endif
return InputState;
}

View File

@@ -73,7 +73,7 @@ static void clear_control (WIDGET_CONTROLENTRY *widget);
#endif
#define MENU_COUNT 8
#define CHOICE_COUNT 22
#define CHOICE_COUNT 23
#define SLIDER_COUNT 3
#define BUTTON_COUNT 10
#define LABEL_COUNT 4
@@ -96,7 +96,7 @@ typedef int (*HANDLER)(WIDGET *, int);
static int choice_widths[CHOICE_COUNT] = {
3, 2, 3, 3, 2, 2, 2, 2, 2, 2,
2, 2, 3, 2, 2, 3, 3, 2, 3, 3,
3, 2 };
3, 2, 2 };
static HANDLER button_handlers[BUTTON_COUNT] = {
quit_main_menu, quit_sub_menu, do_graphics, do_engine,
@@ -106,9 +106,9 @@ static HANDLER button_handlers[BUTTON_COUNT] = {
static int menu_sizes[MENU_COUNT] = {
7, 5, 7, 9, 2, 5,
#ifdef HAVE_OPENGL
5,
6,
#else
4,
5,
#endif
11
};
@@ -160,6 +160,7 @@ static WIDGET *advanced_widgets[] = {
(WIDGET *)(&choices[12]),
(WIDGET *)(&choices[15]),
(WIDGET *)(&choices[16]),
(WIDGET *)(&choices[22]),
(WIDGET *)(&buttons[1]) };
static WIDGET *keyconfig_widgets[] = {
@@ -387,6 +388,7 @@ SetDefaults (void)
choices[19].selected = opts.player2;
choices[20].selected = 0;
choices[21].selected = opts.musicremix;
choices[22].selected = opts.directionaljoystick;
sliders[0].value = opts.musicvol;
sliders[1].value = opts.sfxvol;
@@ -418,6 +420,7 @@ PropagateResults (void)
opts.player1 = choices[18].selected;
opts.player2 = choices[19].selected;
opts.musicremix = choices[21].selected;
opts.directionaljoystick = choices[22].selected;
opts.musicvol = sliders[0].value;
opts.sfxvol = sliders[1].value;
@@ -1093,6 +1096,7 @@ GetGlobalOptions (GLOBALOPTS *opts)
/* These values are read in, but won't change during a run. */
opts->music3do = opt3doMusic ? OPTVAL_ENABLED : OPTVAL_DISABLED;
opts->musicremix = optRemixMusic ? OPTVAL_ENABLED : OPTVAL_DISABLED;
opts->directionaljoystick = optDirectionalJoystick ? OPTVAL_ENABLED : OPTVAL_DISABLED;
switch (snddriver) {
case audio_DRIVER_OPENAL:
opts->adriver = OPTVAL_OPENAL;
@@ -1313,6 +1317,7 @@ SetGlobalOptions (GLOBALOPTS *opts)
optWhichShield = (opts->shield == OPTVAL_3DO) ? OPT_3DO : OPT_PC;
optMeleeScale = (opts->meleezoom == OPTVAL_3DO) ? TFB_SCALE_TRILINEAR : TFB_SCALE_STEP;
optWhichIntro = (opts->intro == OPTVAL_3DO) ? OPT_3DO : OPT_PC;
optDirectionalJoystick = (opts->directionaljoystick == OPTVAL_ENABLED) ? TRUE : FALSE;
PlayerControls[0] = opts->player1;
PlayerControls[1] = opts->player2;
@@ -1326,6 +1331,7 @@ SetGlobalOptions (GLOBALOPTS *opts)
res_PutBoolean ("config.remixmusic", opts->musicremix == OPTVAL_ENABLED);
res_PutBoolean ("config.3domovies", opts->intro == OPTVAL_3DO);
res_PutBoolean ("config.showfps", opts->fps == OPTVAL_ENABLED);
res_PutBoolean ("config.directionaljoystick", opts->directionaljoystick == OPTVAL_ENABLED);
res_PutBoolean ("config.smoothmelee", opts->meleezoom == OPTVAL_3DO);
res_PutBoolean ("config.positionalsfx", opts->stereo == OPTVAL_ENABLED);
res_PutBoolean ("config.pulseshield", opts->shield == OPTVAL_3DO);

View File

@@ -74,7 +74,7 @@ typedef struct globalopts_struct {
OPT_DRIVERTYPE driver;
OPT_ADRIVERTYPE adriver;
OPT_AQUALITYTYPE aquality;
OPT_ENABLABLE fullscreen, subtitles, scanlines, fps, stereo, music3do, musicremix;
OPT_ENABLABLE fullscreen, subtitles, scanlines, fps, stereo, music3do, musicremix, directionaljoystick;
OPT_CONSOLETYPE menu, text, cscan, scroll, intro, meleezoom, shield;
CONTROL_TEMPLATE player1, player2;
int speechvol, musicvol, sfxvol;

View File

@@ -5,7 +5,7 @@ AppName="ScummVM"
AppFullName=org.scummvm.sdl
ScreenOrientation=h
InhibitSuspend=n
AppDataDownloadUrl="Data files size is 3.5 Mb|http://sourceforge.net/projects/libsdl-android/files/ScummVM/scummvm-1.2.0-data.zip/download^Lure of the Temptress (English, 10 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Lure%20of%20the%20Temptress/lure-1.1.zip/download^Lure of the Temptress (German, 10 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Lure%20of%20the%20Temptress/lure-de-1.1.zip/download^Lure of the Temptress (French, 10 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Lure%20of%20the%20Temptress/lure-fr-1.1.zip/download^Lure of the Temptress (Italian, 10 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Lure%20of%20the%20Temptress/lure-it-1.1.zip/download^Lure of the Temptress (Spanish, 10 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Lure%20of%20the%20Temptress/lure-es-1.1.zip/download^Beneath a Steel Sky (CD version, 70 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Beneath%20a%20Steel%20Sky/bass-cd-1.2.zip/download^Beneath a Steel Sky (floppy version, 10 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Beneath%20a%20Steel%20Sky/BASS-Floppy-1.3.zip/download^Flight of the Amazon Queen (23 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Flight%20of%20the%20Amazon%20Queen/FOTAQ_Floppy.zip/download^Flight of the Amazon Queen - voice addon (English, 35 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Flight%20of%20the%20Amazon%20Queen/FOTAQ_Talkie-1.1.zip/download^Flight of the Amazon Queen - voice addon (German, 80 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Flight%20of%20the%20Amazon%20Queen/FOTAQ_Ger_talkie-1.0.zip/download^Flight of the Amazon Queen - voice addon (Hebrew, 70 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Flight%20of%20the%20Amazon%20Queen/FOTAQ_Heb_talkie.zip/download^Drascula: The Vampire Strikes Back (35 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Drascula_%20The%20Vampire%20Strikes%20Back/drascula-1.0.zip/download^Drascula: The Vampire Strikes Back - translations addon (35 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Drascula_%20The%20Vampire%20Strikes%20Back/drascula-int-1.1.zip/download^Drascula: The Vampire Strikes Back - audio addon (40 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Drascula_%20The%20Vampire%20Strikes%20Back/drascula-audio-2.0.zip/download"
AppDataDownloadUrl="Data files size is 3.5 Mb|http://sourceforge.net/projects/libsdl-android/files/ScummVM/scummvm-1.2.0-data.zip/download^MIDI music support (30 Mb) - add soundfont in Options->MIDI|http://sourceforge.net/projects/libsdl-android/files/GeneralUser-GS-FluidSynth-v1.43.sf2.zip/download^Lure of the Temptress (English, 10 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Lure%20of%20the%20Temptress/lure-1.1.zip/download^Lure of the Temptress (German, 10 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Lure%20of%20the%20Temptress/lure-de-1.1.zip/download^Lure of the Temptress (French, 10 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Lure%20of%20the%20Temptress/lure-fr-1.1.zip/download^Lure of the Temptress (Italian, 10 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Lure%20of%20the%20Temptress/lure-it-1.1.zip/download^Lure of the Temptress (Spanish, 10 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Lure%20of%20the%20Temptress/lure-es-1.1.zip/download^Beneath a Steel Sky (CD version, 70 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Beneath%20a%20Steel%20Sky/bass-cd-1.2.zip/download^Beneath a Steel Sky (floppy version, 10 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Beneath%20a%20Steel%20Sky/BASS-Floppy-1.3.zip/download^Flight of the Amazon Queen (23 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Flight%20of%20the%20Amazon%20Queen/FOTAQ_Floppy.zip/download^Flight of the Amazon Queen - voice addon (English, 35 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Flight%20of%20the%20Amazon%20Queen/FOTAQ_Talkie-1.1.zip/download^Flight of the Amazon Queen - voice addon (German, 80 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Flight%20of%20the%20Amazon%20Queen/FOTAQ_Ger_talkie-1.0.zip/download^Flight of the Amazon Queen - voice addon (Hebrew, 70 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Flight%20of%20the%20Amazon%20Queen/FOTAQ_Heb_talkie.zip/download^Drascula: The Vampire Strikes Back (35 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Drascula_%20The%20Vampire%20Strikes%20Back/drascula-1.0.zip/download^Drascula: The Vampire Strikes Back - translations addon (35 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Drascula_%20The%20Vampire%20Strikes%20Back/drascula-int-1.1.zip/download^Drascula: The Vampire Strikes Back - audio addon (40 Mb)|http://sourceforge.net/projects/scummvm/files/extras/Drascula_%20The%20Vampire%20Strikes%20Back/drascula-audio-2.0.zip/download"
SdlVideoResize=y
SdlVideoResizeKeepAspect=n
NeedDepthBuffer=n
@@ -23,7 +23,7 @@ AppTouchscreenKeyboardKeysAmountAutoFire=0
MultiABI=n
AppVersionCode=12001
AppVersionName="1.2.0.01"
CompiledLibraries="mad tremor flac ogg jpeg png"
CompiledLibraries="mad tremor flac ogg jpeg png fluidsynth"
CustomBuildScript=y
AppCflags=''
AppLdflags=''

View File

@@ -21,6 +21,6 @@ ln -sf libtremor.a $LOCAL_PATH/../../../obj/local/armeabi/libvorbisidec.a
ln -sf libflac.a $LOCAL_PATH/../../../obj/local/armeabi/libFLAC.a
if [ \! -f scummvm/config.mk ] ; then
../setEnvironment.sh sh -c "cd scummvm && env LIBS='-lflac -ltremor -logg -lmad -lz -lgcc' ./configure --host=androidsdl --enable-zlib --enable-tremor --enable-mad --enable-flac --enable-vkeybd --enable-verbose-build --disable-hq-scalers --disable-readline --disable-nasm --datadir=."
../setEnvironment.sh sh -c "cd scummvm && env LIBS='-lflac -ltremor -logg -lmad -lz -lgcc -lfluidsynth' ./configure --host=androidsdl --enable-zlib --enable-tremor --enable-mad --enable-flac --enable-vkeybd --enable-verbose-build --disable-hq-scalers --disable-readline --disable-nasm --disable-mt32emu --datadir=. --with-fluidsynth-prefix=$LOCAL_PATH/../../fluidsynth"
fi
../setEnvironment.sh make -C scummvm -j2 && cp -f scummvm/scummvm libapplication.so

View File

@@ -313,6 +313,8 @@ SDL_Surface *ANDROID_SetVideoMode(_THIS, SDL_Surface *current,
HwSurfaceList[HwSurfaceCount-1] = current;
DEBUGOUT("ANDROID_SetVideoMode() HwSurfaceCount %d HwSurfaceList %p", HwSurfaceCount, HwSurfaceList);
}
glViewport(0, 0, SDL_ANDROID_sRealWindowWidth, SDL_ANDROID_sRealWindowHeight);
glOrthof(0.0, (GLfloat) SDL_ANDROID_sWindowWidth, (GLfloat) SDL_ANDROID_sWindowHeight, 0.0, 0.0, 1.0);
}
/* Allocate the new pixel format for the screen */

View File

@@ -50,6 +50,11 @@
int SDL_ANDROID_sWindowWidth = 0;
int SDL_ANDROID_sWindowHeight = 0;
int SDL_ANDROID_sRealWindowWidth = 0;
int SDL_ANDROID_sRealWindowHeight = 0;
SDL_Rect SDL_ANDROID_ForceClearScreenRect = { 0, 0, 0, 0 };
// Extremely wicked JNI environment to call Java functions from C code
static JNIEnv* JavaEnv = NULL;
static jclass JavaRendererClass = NULL;
@@ -78,6 +83,27 @@ int SDL_ANDROID_CallJavaSwapBuffers()
SDL_ANDROID_drawTouchscreenKeyboard();
SDL_ANDROID_processAndroidTrackballDampening();
}
// Clear part of screen not used by SDL - on Android the screen contains garbage after each frame
if( SDL_ANDROID_ForceClearScreenRect.w != 0 && SDL_ANDROID_ForceClearScreenRect.h != 0 )
{
glPushMatrix();
glLoadIdentity();
glOrthox( 0, (SDL_ANDROID_sRealWindowWidth) * 0x10000, SDL_ANDROID_sRealWindowHeight * 0x10000, 0, 0, 1 * 0x10000 );
glColor4x(0, 0, 0, 0x10000);
glEnableClientState(GL_VERTEX_ARRAY);
GLshort vertices[] = { SDL_ANDROID_ForceClearScreenRect.x, SDL_ANDROID_ForceClearScreenRect.y,
SDL_ANDROID_ForceClearScreenRect.x + SDL_ANDROID_ForceClearScreenRect.w, SDL_ANDROID_ForceClearScreenRect.y,
SDL_ANDROID_ForceClearScreenRect.x + SDL_ANDROID_ForceClearScreenRect.w, SDL_ANDROID_ForceClearScreenRect.y + SDL_ANDROID_ForceClearScreenRect.h,
SDL_ANDROID_ForceClearScreenRect.x, SDL_ANDROID_ForceClearScreenRect.y + SDL_ANDROID_ForceClearScreenRect.h };
glVertexPointer(2, GL_SHORT, 0, vertices);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
glDisableClientState(GL_VERTEX_ARRAY);
glPopMatrix();
}
if( ! (*JavaEnv)->CallIntMethod( JavaEnv, JavaRenderer, JavaSwapBuffers ) )
return 0;
if( glContextLost )
@@ -97,24 +123,42 @@ int SDL_ANDROID_CallJavaSwapBuffers()
JNIEXPORT void JNICALL
JAVA_EXPORT_NAME(DemoRenderer_nativeResize) ( JNIEnv* env, jobject thiz, jint w, jint h )
JAVA_EXPORT_NAME(DemoRenderer_nativeResize) ( JNIEnv* env, jobject thiz, jint w, jint h, jint keepRatio )
{
if( SDL_ANDROID_sWindowWidth == 0 )
{
#if SDL_VIDEO_RENDER_RESIZE_KEEP_ASPECT
// TODO: tweak that parameters when app calls SetVideoMode(), not here - app may request something else than 640x480, it's okay for most apps though
// Also this should be user-configurable setting, not compiler option
SDL_ANDROID_sWindowWidth = (SDL_ANDROID_sFakeWindowWidth*h)/SDL_ANDROID_sFakeWindowHeight;
SDL_ANDROID_sWindowHeight = h;
if(SDL_ANDROID_sWindowWidth > w) {
SDL_ANDROID_sWindowWidth = w;
SDL_ANDROID_sWindowHeight = (SDL_ANDROID_sFakeWindowHeight*w)/SDL_ANDROID_sFakeWindowWidth;
SDL_ANDROID_sRealWindowWidth = w;
SDL_ANDROID_sRealWindowHeight = h;
if( keepRatio )
{
// TODO: tweak that parameters when app calls SetVideoMode(), not here - app may request something else than 640x480, it's okay for most apps though
SDL_ANDROID_sWindowWidth = (SDL_ANDROID_sFakeWindowWidth*h)/SDL_ANDROID_sFakeWindowHeight;
SDL_ANDROID_sWindowHeight = h;
SDL_ANDROID_ForceClearScreenRect.x = SDL_ANDROID_sWindowWidth;
SDL_ANDROID_ForceClearScreenRect.y = 0;
SDL_ANDROID_ForceClearScreenRect.w = w - SDL_ANDROID_sWindowWidth;
SDL_ANDROID_ForceClearScreenRect.h = h;
if(SDL_ANDROID_sWindowWidth >= w)
{
SDL_ANDROID_sWindowWidth = w;
SDL_ANDROID_sWindowHeight = (SDL_ANDROID_sFakeWindowHeight*w)/SDL_ANDROID_sFakeWindowWidth;
SDL_ANDROID_ForceClearScreenRect.x = 0;
SDL_ANDROID_ForceClearScreenRect.y = SDL_ANDROID_sWindowHeight;
SDL_ANDROID_ForceClearScreenRect.w = w;
SDL_ANDROID_ForceClearScreenRect.h = SDL_ANDROID_sWindowHeight - h; // OpenGL vertical coord is inverted
}
}
#else
SDL_ANDROID_sWindowWidth = w;
SDL_ANDROID_sWindowHeight = h;
#endif
__android_log_print(ANDROID_LOG_INFO, "libSDL", "Physical screen resolution is %dx%d", w, h);
else
{
SDL_ANDROID_ForceClearScreenRect.w = 0;
SDL_ANDROID_ForceClearScreenRect.h = 0;
SDL_ANDROID_ForceClearScreenRect.x = 0;
SDL_ANDROID_ForceClearScreenRect.y = 0;
SDL_ANDROID_sWindowWidth = w;
SDL_ANDROID_sWindowHeight = h;
}
__android_log_print(ANDROID_LOG_INFO, "libSDL", "Physical screen resolution is %dx%d, virtual screen %dx%d", w, h, SDL_ANDROID_sWindowWidth, SDL_ANDROID_sWindowHeight );
}
}

View File

@@ -29,8 +29,11 @@
extern int SDL_ANDROID_sWindowWidth;
extern int SDL_ANDROID_sWindowHeight;
extern int SDL_ANDROID_sRealWindowWidth;
extern int SDL_ANDROID_sRealWindowHeight;
extern int SDL_ANDROID_sFakeWindowWidth; // SDL 1.2 only
extern int SDL_ANDROID_sFakeWindowHeight; // SDL 1.2 only
extern SDL_Rect SDL_ANDROID_ForceClearScreenRect;
extern int SDL_ANDROID_ShowScreenUnderFinger;
extern SDL_Rect SDL_ANDROID_ShowScreenUnderFingerRect, SDL_ANDROID_ShowScreenUnderFingerRectSrc;
extern int SDL_ANDROID_CallJavaSwapBuffers();