diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
index e7d2e2b328..64463fe072 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
@@ -132,6 +132,8 @@ public final class NativeLibrary
public static native String GetDescription(String filename);
public static native String GetGameId(String filename);
+
+ public static native int GetCountry(String filename);
public static native String GetDate(String filename);
public static native long GetFilesize(String filename);
public static native boolean IsWiiTitle(String filename);
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/GameGridActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/GameGridActivity.java
index c0ba984023..be8c703fd6 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/GameGridActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/GameGridActivity.java
@@ -181,8 +181,7 @@ public final class GameGridActivity extends Activity
{
GcGame game = new GcGame(NativeLibrary.GetTitle(entry.getAbsolutePath()),
NativeLibrary.GetDescription(entry.getAbsolutePath()).replace("\n", " "),
- // TODO Some games might actually not be from this region, believe it or not.
- "United States",
+ NativeLibrary.GetCountry(entry.getAbsolutePath()),
entry.getAbsolutePath(),
NativeLibrary.GetGameId(entry.getAbsolutePath()),
NativeLibrary.GetDate(entry.getAbsolutePath()));
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java
index e22b30ea18..b52a017278 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java
@@ -38,7 +38,7 @@ public class GameDetailsDialog extends DialogFragment
Bundle arguments = new Bundle();
arguments.putString(ARGUMENT_GAME_TITLE, game.getTitle());
arguments.putString(ARGUMENT_GAME_DESCRIPTION, game.getDescription());
- arguments.putString(ARGUMENT_GAME_COUNTRY, game.getCountry());
+ arguments.putInt(ARGUMENT_GAME_COUNTRY, game.getCountry());
arguments.putString(ARGUMENT_GAME_DATE, game.getDate());
arguments.putString(ARGUMENT_GAME_PATH, game.getPath());
arguments.putString(ARGUMENT_GAME_SCREENSHOT_PATH, game.getScreenPath());
@@ -64,9 +64,12 @@ public class GameDetailsDialog extends DialogFragment
ImageButton buttonLaunch = (ImageButton) contents.findViewById(R.id.button_launch);
+ int countryIndex = getArguments().getInt(ARGUMENT_GAME_COUNTRY);
+ String country = getResources().getStringArray(R.array.country_names)[countryIndex];
+
textTitle.setText(getArguments().getString(ARGUMENT_GAME_TITLE));
textDescription.setText(getArguments().getString(ARGUMENT_GAME_DESCRIPTION));
- textCountry.setText(getArguments().getString(ARGUMENT_GAME_COUNTRY));
+ textCountry.setText(country);
textDate.setText(getArguments().getString(ARGUMENT_GAME_DATE));
buttonLaunch.setOnClickListener(new View.OnClickListener()
{
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/Game.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/Game.java
index 9d3e736841..b2ebb51d6f 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/Game.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/Game.java
@@ -4,6 +4,23 @@ public interface Game
{
public static final int PLATFORM_GC = 0;
public static final int PLATFORM_WII = 1;
+ public static final int PLATFORM_WII_WARE = 2;
+
+ // Copied from IVolume::ECountry. Update these if that is ever modified.
+ public static final int COUNTRY_EUROPE = 0;
+ public static final int COUNTRY_JAPAN = 1;
+ public static final int COUNTRY_USA = 2;
+ public static final int COUNTRY_AUSTRALIA = 3;
+ public static final int COUNTRY_FRANCE = 4;
+ public static final int COUNTRY_GERMANY = 5;
+ public static final int COUNTRY_ITALY = 6;
+ public static final int COUNTRY_KOREA = 7;
+ public static final int COUNTRY_NETHERLANDS = 8;
+ public static final int COUNTRY_RUSSIA = 9;
+ public static final int COUNTRY_SPAIN = 10;
+ public static final int COUNTRY_TAIWAN = 11;
+ public static final int COUNTRY_WORLD = 12;
+ public static final int COUNTRY_UNKNOWN = 13;
public int getPlatform();
@@ -13,7 +30,7 @@ public interface Game
public String getDescription();
- public String getCountry();
+ public int getCountry();
public String getPath();
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GcGame.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GcGame.java
index d682bee0b6..72fa77d4c4 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GcGame.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GcGame.java
@@ -7,18 +7,18 @@ public final class GcGame implements Game
{
private String mTitle;
private String mDescription;
- private String mCountry;
private String mPath;
private String mGameId;
-
private String mScreenshotFolderPath;
private String mDate;
+
+ private int mCountry;
private int mPlatform = PLATFORM_GC;
private static final String PATH_SCREENSHOT_FOLDER = "file:///sdcard/dolphin-emu/ScreenShots/";
- public GcGame(String title, String description, String country, String path, String gameId, String date)
+ public GcGame(String title, String description, int country, String path, String gameId, String date)
{
mTitle = title;
mDescription = description;
@@ -54,7 +54,7 @@ public final class GcGame implements Game
}
@Override
- public String getCountry()
+ public int getCountry()
{
return mCountry;
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/WiiGame.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/WiiGame.java
index c64de8d582..d0678f4e95 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/WiiGame.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/WiiGame.java
@@ -28,9 +28,9 @@ public final class WiiGame implements Game
}
@Override
- public String getCountry()
+ public int getCountry()
{
- return null;
+ return 13;
}
@Override
diff --git a/Source/Android/app/src/main/res/values/arrays.xml b/Source/Android/app/src/main/res/values/arrays.xml
index 4ada90cb1f..9cdf07d876 100644
--- a/Source/Android/app/src/main/res/values/arrays.xml
+++ b/Source/Android/app/src/main/res/values/arrays.xml
@@ -190,4 +190,20 @@
- 2
- 3
+
+
+ - Europe
+ - Japan
+ - USA
+ - Australia
+ - France
+ - Germany
+ - Italy
+ - Korea
+ - Netherlands
+ - Russia
+ - Spain
+ - Taiwan
+ - Unknown
+
diff --git a/Source/Core/DolphinWX/MainAndroid.cpp b/Source/Core/DolphinWX/MainAndroid.cpp
index 50aab79f45..44391f0ccd 100644
--- a/Source/Core/DolphinWX/MainAndroid.cpp
+++ b/Source/Core/DolphinWX/MainAndroid.cpp
@@ -43,6 +43,7 @@
#include "VideoCommon/OnScreenDisplay.h"
#include "VideoCommon/VideoBackendBase.h"
+#include "../DiscIO/Volume.h"
ANativeWindow* surf;
std::string g_filename;
@@ -178,6 +179,23 @@ static bool IsWiiTitle(std::string filename)
return false;
}
+static int GetCountry(std::string filename)
+{
+ std::unique_ptr pVolume(DiscIO::CreateVolumeFromFilename(filename));
+
+ if (pVolume != nullptr)
+ {
+ DiscIO::IVolume::ECountry country = pVolume->GetCountry();
+
+ __android_log_print(ANDROID_LOG_INFO, DOLPHIN_TAG, "Country Code: %i", country);
+
+ return country;
+ }
+
+ // Technically correct.
+ return 13;
+}
+
static std::string GetTitle(std::string filename)
{
__android_log_print(ANDROID_LOG_WARN, DOLPHIN_TAG, "Getting Title for file: %s", filename.c_str());
@@ -330,6 +348,7 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_onGamePadMov
JNIEXPORT jintArray JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetBanner(JNIEnv *env, jobject obj, jstring jFile);JNIEXPORT jstring JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetTitle(JNIEnv *env, jobject obj, jstring jFilename);
JNIEXPORT jstring JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetDescription(JNIEnv *env, jobject obj, jstring jFilename);
JNIEXPORT jstring JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetGameId(JNIEnv *env, jobject obj, jstring jFilename);
+JNIEXPORT jint JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetCountry(JNIEnv *env, jobject obj, jstring jFilename);
JNIEXPORT jstring JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetDate(JNIEnv *env, jobject obj, jstring jFilename);
JNIEXPORT jlong JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetFilesize(JNIEnv *env, jobject obj, jstring jFilename);
JNIEXPORT jboolean JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_IsWiiTitle(JNIEnv *env, jobject obj, jstring jFilename);
@@ -411,6 +430,13 @@ JNIEXPORT jstring JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetDate(J
return env->NewStringUTF(date.c_str());
}
+JNIEXPORT jint JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetCountry(JNIEnv *env, jobject obj, jstring jFilename)
+{
+ std::string filename = GetJString(env, jFilename);
+ int country = GetCountry(filename);
+ return country;
+}
+
JNIEXPORT jlong JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetFilesize(JNIEnv *env, jobject obj, jstring jFilename)
{
std::string filename = GetJString(env, jFilename);