Closed Estrangeling closed 2 years ago
Hi, jaMME is multiplayer only and is not designed for playing. It uses some of beloko's stuff to run on Android. If you are saying you are experienced in programming, you can try to compile beloko's stuff yourself. It supports both SP and MP and IS designed for playing. Here is source code of beloko's JA and many other games for Android: https://github.com/emileb/OpenGames
P.S.: If you are seeing your screen fully red, then it's beloko's basic protection of using his APK without buying it. It used to be available on Google Play Store. Now you cannot get it there or anywhere afaik. But if you seek the internet deeply you can find the unlocked APK. It exists.
Well, I downloaded the source code, and it is over 7 years old, so it would not work well on my Android 11 phone.
I use Android Studio Arctic Fox, and I had to set the following:
android {
compileSdkVersion 32
buildToolsVersion "30.0.2"
defaultConfig {
minSdkVersion 15
targetSdkVersion 32
}
}
dependencies {
implementation "androidx.appcompat:appcompat:1.5.1"
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(path: ':opengames')
implementation('com.google.firebase:firebase-crashlytics:17.2.1@aar') {
transitive = true;
}
}
For everyone of the build.gradle files just to make it successfully sync without errors.
But now I cannot build the project.
I have met two errors in the touchcontrols
library:
D:\downloads\OpenGames-master\touchcontrols\src\main\java\com\beloko\touchcontrols\ControlConfig.java:649: error: cannot find symbol
image.setImageResource(R.drawable.gamepad_menu);
^
symbol: variable gamepad_menu
location: class drawable
D:\downloads\OpenGames-master\touchcontrols\src\main\java\com\beloko\touchcontrols\ControlConfig.java:653: error: cannot find symbol
image.setImageResource(R.drawable.gamepad);
^
symbol: variable gamepad
location: class drawable
How can I solve them? Is it due to missing files? Please help, I have been working on this for hours and I can't solve it.
P.S.: I am very good at Python, and learned a little about JavaScript, but I am not familiar with Java, so I cannot figure it out yet. The reason I am not familiar with Java is because Java (and C++) are compiled languages and I am using Windows and I have huge trouble compiling things because every project includes a number of libraries which includes more libraries which includes...
Recursive library dependency and all of them are not compiled, so I never managed to compile anything, so I did not learn them. But not interpreted languages, and I learned a lot about them.
Well, I downloaded the source code, and it is over 7 years old, so it would not work well on my Android 11 phone.
That is wrong. Android is good in backward compatibility. To compile for Android, you need to learn that field yourself. There are many things to learn to compile this. And I don't have time to guide you on every step, sorry. And this is even more complicated since it uses Android NDK.
I can only tell what is wrong now. Compile using SDK 19 and set target to SDK 19 as well. You don't need AndroidX and Firebase dependencies. If you for any reason want to compile using higher SDK version, then that migration process can be complicated. Also to speed up compilation modify https://github.com/emileb/OpenGames/blob/master/opengames/src/main/jni/Application.mk to target only your architecture, so it won't waste time compiling other architectures.
I was unable to compile the project using the new Android Studio. But I dug deeper in the search results thanks to your tip, and found working cracked apk on some Russian websites.
I used Google Translate to translate the webpage from Russian to English to view it, and managed to download the apk. It works, there was no red screen, however when I start the game the interface was in Russian (which I don't understand), I tapped every option and found the language options, and discovered that there was no option to switch to English.
So I viewed the game folder and found one extra assets4.pk3 of small size, I deduced it to be localization file and deleted it, after that the text is not displayed correctly, then I viewed the jaconfig.cfg and changed seta s_language "russian"
and seta se_language "russian"
to seta s_language "english"
and seta se_language "english"
, now it works perfectly.
Thank you for your help.
Probably this is a very stupid question, but I don't like multiplayer games and I just want to play the campaign, and there isn't an obvious way to do that and Google searching proves futile yet again.
I am extremely tech savvy and experienced in programming, you can see my Stack Exchange Account for proof.
Long story short, I would like to play Jedi Academy and I obtained a copy of the GOG version of the game. But my mother doesn't allow me to play games on the computer so I have to play it on my phone.
I know of JK3-Touch by Beloko Games, I did everything correctly, but when I launched the game the whole screen immediately turned red and I can do nothing but close it. I later learned it is a digital rights management feature that checks if Amazon App Store is present and you have bought it, then prevents you from playing if you haven't.
I am an unemployed Chinese dissident, I don't have a credit card (I only have a debit card that can't be used to purchase anything internationally other than VPN services) and I can't obtain the game legally.
I found jaMME by Googling a version of JK3-Touch with license checking removed, or other ports of Jedi Academy.
I installed the apk, and copied assets[0-3].pk3 to my phone, and it works, except for one problem.
If I start the game I can only play multiplayer, there is not a choice present when starting the game, I don't play multiplayer games and there is no one to play multiplayer with me.
I installed jaMME to play singleplayer, and all necessary files for the campaign is present, but there is not an option to choose it! Obviously if I play the game on Windows I would run jasp.exe instead of jamp.exe, but in jaMME there is nothing I can change other than the command arguments, I think there must be arguments that is used to disable multiplayer but I don't know them, and Google searching is terribly useless to find the arguments, as all results are totally unrelated to what I want to find and only have "Jedi Academy" and "singleplayer" in them.
So what arguments are necessary to play singleplayer campaign using jaMME? Or is jaMME multiplayer only?