1
0

11 Коммитууд 661f60847a ... df08e5f0b8

Эзэн SHA1 Мессеж Огноо
  wangyongj df08e5f0b8 remove release.apk 1 жил өмнө
  wangyongj 9b57a7346a add saveState broadcast 1 жил өмнө
  wangyongj 0add2b5ec5 Merge branch 'master' of http://8.136.234.80:10002/WangYongJun/GameConsole 1 жил өмнө
  wangyongj 930ffaad1d sync 1 жил өмнө
  wangyongj 15f6243709 Merge branch 'master' of http://8.136.234.80:10002/WangYongJun/GameConsole 1 жил өмнө
  wangyongj 790030d28f Merge branch 'master' of http://8.136.234.80:10002/WangYongJun/GameConsole 1 жил өмнө
  wangyongj a7e6b6ecf8 Merge branch 'master' of http://8.136.234.80:10002/WangYongJun/GameConsole 1 жил өмнө
  wangyongj f322ac8d5f remove zip file 1 жил өмнө
  wangyongj 058f899a30 add savestate call back broadcast 1 жил өмнө
  wangyongj 073a462da3 Merge branch 'master' of http://8.136.234.80:10002/WangYongJun/GameConsole 1 жил өмнө
  wangyongj 2209d721d9 sync 1 жил өмнө

+ 8 - 8
app/build.gradle

@@ -27,7 +27,7 @@ android {
 
     sourceSets {
         main {
-            // jniLibs.srcDirs 'src/main/libs'
+             jniLibs.srcDirs 'src/main/libs'
             assets.srcDirs = ['src/main/assets']
             jni.srcDirs = []
             java.srcDirs = ['src/main/java']
@@ -58,8 +58,8 @@ android {
         release {
             keyAlias 'system'
             keyPassword 'xugame888'
-//            storeFile file('../s905_system.jks')
-            storeFile file('../android_4.4_haisi_zou_system.jks')//android4.4
+            storeFile file('../s905_system.jks')
+//            storeFile file('../android_4.4_haisi_zou_system.jks')//android4.4
             storePassword 'xugame888'
         }
     }
@@ -68,11 +68,11 @@ android {
         targetCompatibility JavaVersion.VERSION_1_8
     }
 
-    externalNativeBuild {
-        cmake {
-            path 'src/main/cpp/CMakeLists.txt'
-        }
-    }
+//    externalNativeBuild {
+//        cmake {
+//            path 'src/main/cpp/CMakeLists.txt'
+//        }
+//    }
 }
 
 allprojects {

+ 0 - 2
app/src/main/AndroidManifest.xml

@@ -3,7 +3,6 @@
     xmlns:tools="http://schemas.android.com/tools"
     package="com.xugame.gameconsole"
     android:installLocation="internalOnly"
-    android:sharedUserId="android.uid.system"
     android:versionCode="1597175257"
     android:versionName="1.15.0">
 
@@ -72,7 +71,6 @@
                 <category android:name="android.intent.category.LAUNCHER" />
 
                 <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.HOME" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.MONKEY" />
             </intent-filter>

+ 33 - 0
app/src/main/assets/autoconfig/android/sunxi_gpadc.cfg

@@ -0,0 +1,33 @@
+input_driver = "android"
+input_device = "sunxi-gpadc"
+input_device_display_name = "sunxi-gpadc"
+input_vendor_id = "1"
+input_product_id = "1"
+input_b_btn = "97"
+input_b_btn_label = "B"
+input_a_btn = "96"
+input_a_btn_label = "A"
+input_select_btn = "109"
+input_select_btn_label = "Select"
+input_start_btn = "108"
+input_start_btn_label = "Start"
+input_up_btn = "19"
+input_up_btn_label = "Up"
+input_down_btn = "20"
+input_down_btn_label = "Down"
+input_left_btn = "21"
+input_left_btn_label = "Left"
+input_right_btn = "22"
+input_right_btn_label = "Right"
+input_x_btn = "99"
+input_x_btn_label = "X"
+input_y_btn = "100"
+input_y_btn_label = "Y"
+input_l_x_plus_axis = "+0"
+input_l_x_minus_axis = "-0"
+input_l_y_plus_axis = "+1"
+input_l_y_minus_axis = "-1"
+input_r_x_plus_axis = "+2"
+input_r_x_minus_axis = "-2"
+input_r_y_plus_axis = "+3"
+input_r_y_minus_axis = "-3"

+ 2 - 1
app/src/main/java/com/xugame/app/JoypadManager.java

@@ -34,7 +34,8 @@ public class JoypadManager {
         if ((device == null) || (deviceId < 0)) {
             return false;
         }
-
+        if(device.getName().equals("sunxi-gpadc"))
+            return true;
         if(device.getName().equals("robot"))
             return true;
 

+ 45 - 45
app/src/main/java/com/xugame/bean/InputCode.java

@@ -7,21 +7,21 @@ public class InputCode {
         // Joypad
         public static final int JOYPAD_BIND_START = 0;
 
-        public static final int JOYPAD_B = 0;
-        public static final int JOYPAD_Y = 1;
+        public static final int JOYPAD_B = 0;//拳皇97轻拳
+        public static final int JOYPAD_Y = 1;//重拳
         public static final int JOYPAD_SELECT = 2;
         public static final int JOYPAD_START = 3;
         public static final int JOYPAD_UP = 4;
-        public static final int JOYPAD_DOWN = 5;     
-        public static final int JOYPAD_LEFT = 6;     
+        public static final int JOYPAD_DOWN = 5;
+        public static final int JOYPAD_LEFT = 6;
         public static final int JOYPAD_RIGHT = 7;
-        public static final int JOYPAD_A = 8;        
-        public static final int JOYPAD_X = 9;        
-        public static final int JOYPAD_L = 10;       
+        public static final int JOYPAD_A = 8;    //轻脚
+        public static final int JOYPAD_X = 9;       //重脚
+        public static final int JOYPAD_L = 10;
         public static final int JOYPAD_R = 11;
-        public static final int JOYPAD_L2 = 12;      
-        public static final int JOYPAD_R2 = 13;      
-        public static final int JOYPAD_L3 = 14;      
+        public static final int JOYPAD_L2 = 12;
+        public static final int JOYPAD_R2 = 13;
+        public static final int JOYPAD_L3 = 14;
         public static final int JOYPAD_R3 = 15;
 
         public static final int JOYPAD_BIND_END = 16;
@@ -63,47 +63,47 @@ public class InputCode {
     }
 
     public static class JoypadBindKeySet {
-        public static final int JOYPAD_NONE                = -1;
-        public static final int JOYPAD_BTN_B               = KeyEvent.KEYCODE_BUTTON_B;
-        public static final int JOYPAD_BTN_Y               = KeyEvent.KEYCODE_BUTTON_Y;
-        public static final int JOYPAD_BTN_SELECT          = KeyEvent.KEYCODE_BUTTON_SELECT;
-        public static final int JOYPAD_BTN_START           = KeyEvent.KEYCODE_BUTTON_START;
+        public static final int JOYPAD_NONE = -1;
+        public static final int JOYPAD_BTN_B = KeyEvent.KEYCODE_BUTTON_B;
+        public static final int JOYPAD_BTN_Y = KeyEvent.KEYCODE_BUTTON_Y;
+        public static final int JOYPAD_BTN_SELECT = KeyEvent.KEYCODE_BUTTON_SELECT;
+        public static final int JOYPAD_BTN_START = KeyEvent.KEYCODE_BUTTON_START;
         // public static final int JOYPAD_BTN_UP              = KeyEvent.KEYCODE_DPAD_UP;
         // public static final int JOYPAD_BTN_DOWN            = KeyEvent.KEYCODE_DPAD_DOWN;
         // public static final int JOYPAD_BTN_LEFT            = KeyEvent.KEYCODE_DPAD_LEFT;
         // public static final int JOYPAD_BTN_RIGHT           = KeyEvent.KEYCODE_DPAD_RIGHT;
-        public static final int JOYPAD_BTN_A               = KeyEvent.KEYCODE_BUTTON_A;
-        public static final int JOYPAD_BTN_X               = KeyEvent.KEYCODE_BUTTON_X;
-        public static final int JOYPAD_BTN_L               = KeyEvent.KEYCODE_BUTTON_L1;
-        public static final int JOYPAD_BTN_R               = KeyEvent.KEYCODE_BUTTON_R1;
-        public static final int JOYPAD_BTN_L2              = KeyEvent.KEYCODE_BUTTON_L2;
-        public static final int JOYPAD_BTN_R2              = KeyEvent.KEYCODE_BUTTON_R2;
-        public static final int JOYPAD_BTN_L3              = KeyEvent.KEYCODE_BUTTON_THUMBL;
-        public static final int JOYPAD_BTN_R3              = KeyEvent.KEYCODE_BUTTON_THUMBR;
-        public static final int JOYPAD_HAT_UP              = 1 << 15;
-        public static final int JOYPAD_HAT_DOWN            = 1 << 14;
-        public static final int JOYPAD_HAT_LEFT            = 1 << 13;
-        public static final int JOYPAD_HAT_RIGHT           = 1 << 12;
-        public static final int JOYPAD_AXIS_X_PLUS         = 0 - 65536;
-        public static final int JOYPAD_AXIS_X_MINIS        = 0 * 65536 + 65535;
-        public static final int JOYPAD_AXIS_Y_PLUS         = 1 - 65536;
-        public static final int JOYPAD_AXIS_Y_MINIS        = 1 * 65536 + 65535;
-        public static final int JOYPAD_AXIS_Z_PLUS         = 2 - 65536;
-        public static final int JOYPAD_AXIS_Z_MINIS        = 2 * 65536 + 65535;
-        public static final int JOYPAD_AXIS_RZ_PLUS        = 3 - 65536;
-        public static final int JOYPAD_AXIS_RZ_MINIS       = 3 * 65536 + 65535;
-        public static final int JOYPAD_AXIS_HAT_X_PLUS     = 4 - 65536;
-        public static final int JOYPAD_AXIS_HAT_X_MINIS    = 4 * 65536 + 65535;
-        public static final int JOYPAD_AXIS_HAT_Y_PLUS     = 5 - 65536;
-        public static final int JOYPAD_AXIS_HAT_Y_MINIS    = 5 * 65536 + 65535;
-        public static final int JOYPAD_AXIS_LTRIGGER_PLUS  = 6 - 65536;
+        public static final int JOYPAD_BTN_A = KeyEvent.KEYCODE_BUTTON_A;
+        public static final int JOYPAD_BTN_X = KeyEvent.KEYCODE_BUTTON_X;
+        public static final int JOYPAD_BTN_L = KeyEvent.KEYCODE_BUTTON_L1;
+        public static final int JOYPAD_BTN_R = KeyEvent.KEYCODE_BUTTON_R1;
+        public static final int JOYPAD_BTN_L2 = KeyEvent.KEYCODE_BUTTON_L2;
+        public static final int JOYPAD_BTN_R2 = KeyEvent.KEYCODE_BUTTON_R2;
+        public static final int JOYPAD_BTN_L3 = KeyEvent.KEYCODE_BUTTON_THUMBL;
+        public static final int JOYPAD_BTN_R3 = KeyEvent.KEYCODE_BUTTON_THUMBR;
+        public static final int JOYPAD_HAT_UP = 1 << 15;
+        public static final int JOYPAD_HAT_DOWN = 1 << 14;
+        public static final int JOYPAD_HAT_LEFT = 1 << 13;
+        public static final int JOYPAD_HAT_RIGHT = 1 << 12;
+        public static final int JOYPAD_AXIS_X_PLUS = 0 - 65536;
+        public static final int JOYPAD_AXIS_X_MINIS = 0 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_Y_PLUS = 1 - 65536;
+        public static final int JOYPAD_AXIS_Y_MINIS = 1 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_Z_PLUS = 2 - 65536;
+        public static final int JOYPAD_AXIS_Z_MINIS = 2 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_RZ_PLUS = 3 - 65536;
+        public static final int JOYPAD_AXIS_RZ_MINIS = 3 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_HAT_X_PLUS = 4 - 65536;
+        public static final int JOYPAD_AXIS_HAT_X_MINIS = 4 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_HAT_Y_PLUS = 5 - 65536;
+        public static final int JOYPAD_AXIS_HAT_Y_MINIS = 5 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_LTRIGGER_PLUS = 6 - 65536;
         public static final int JOYPAD_AXIS_LTRIGGER_MINIS = 6 * 65536 + 65535;
-        public static final int JOYPAD_AXIS_RTRIGGER_PLUS  = 7 - 65536;
+        public static final int JOYPAD_AXIS_RTRIGGER_PLUS = 7 - 65536;
         public static final int JOYPAD_AXIS_RTRIGGER_MINIS = 7 * 65536 + 65535;
-        public static final int JOYPAD_AXIS_BRAKE_PLUS     = 2 - 65536;
-        public static final int JOYPAD_AXIS_BRAKE_MINIS    = 2 * 65536 + 65535;
-        public static final int JOYPAD_AXIS_GAS_PLUS       = 3 - 65536;
-        public static final int JOYPAD_AXIS_GAS_MINIS      = 3 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_BRAKE_PLUS = 2 - 65536;
+        public static final int JOYPAD_AXIS_BRAKE_MINIS = 2 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_GAS_PLUS = 3 - 65536;
+        public static final int JOYPAD_AXIS_GAS_MINIS = 3 * 65536 + 65535;
     }
 
     public static final int INPUT_CODE_END = 24;

+ 6 - 4
app/src/main/java/com/xugame/gameconsole/MainActivity.java

@@ -177,6 +177,7 @@ public class MainActivity extends PreferenceActivity implements View.OnClickList
 
     private String baseUsbPath, corePath, romPath, coreName;
     private static int screenMode = 0;
+    private String romName;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -193,10 +194,11 @@ public class MainActivity extends PreferenceActivity implements View.OnClickList
         checkCores();
 //        checkRobot();
     }
-    private void checkRobot(){
+
+    private void checkRobot() {
         File file = new File(this.getFilesDir().getParent() + File.separator + "autoconfig/android/robot.cfg");
-        if(!file.exists()){
-            DebugUtil.i("","复制robot"+file.getAbsolutePath());
+        if (!file.exists()) {
+            DebugUtil.i("", "复制robot" + file.getAbsolutePath());
             try {
                 InputStream in = getResources().openRawResource(R.raw.robot);
 //            in = this.getResources().getAssets().open("xucores/"+fileName);
@@ -294,7 +296,7 @@ public class MainActivity extends PreferenceActivity implements View.OnClickList
         // Bind audio stream to hardware controls.
         setVolumeControlStream(AudioManager.STREAM_MUSIC);
 
-        UserPreferences.updateConfigFile(this,baseUsbPath+File.separator+"/system");
+        UserPreferences.updateConfigFile(this, baseUsbPath + File.separator + "/system");
 
         checkRuntimePermissions();
     }

+ 114 - 18
app/src/main/java/com/xugame/gameconsole/emulator/RetroArchEmulatorActivity.java

@@ -20,6 +20,8 @@ import com.xugame.bean.SystemAVInfo;
 import com.xugame.gameconsole.dialog.LoadingDialog;
 import com.xugame.gameconsole.dialog.gamemenu.GameMenuDialog;
 import com.xugame.gameconsole.dialog.gamemenu.GameMenuDialogListener;
+import com.xugame.gameconsole.monitor.EmulatorMonitor;
+import com.xugame.gameconsole.monitor.EmulatorMonitorListener;
 import com.xugame.gameconsole.preferences.ConfigFile;
 import com.xugame.gameconsole.preferences.UserPreferences;
 import com.xugame.gameconsole.util.DebugUtil;
@@ -38,7 +40,8 @@ import java.util.Arrays;
 //        libsPath = intent.getStringExtra("lib_path");
 //        configPath = intent.getStringExtra("config_path");
 //        }
-public class RetroArchEmulatorActivity extends RetroActivityCamera {
+public class RetroArchEmulatorActivity extends RetroActivityCamera
+        implements EmulatorMonitorListener {
     private static final String TAG = "RetroArchEmulatorActivityTAG";
     private ScreenType mScreenType = ScreenType.NORMAL;
     private boolean mUpdateScreen = false;
@@ -48,13 +51,15 @@ public class RetroArchEmulatorActivity extends RetroActivityCamera {
     private AppSystem system = null;
     private boolean isBusy = false;
     private LoadingDialog mLoadingDialog;
+    private EmulatorMonitor mEmulatorMonitor;
+    private String mRomPath;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
         system = new AppSystem();
-
+        mRomPath = getIntent().getStringExtra("ROM");
         callback = new EnvironmentCallback() {
             @Override
             public void setInputDescriptors(InputDescriptorBean[] descriptors) {
@@ -134,6 +139,7 @@ public class RetroArchEmulatorActivity extends RetroActivityCamera {
                 Log.i("EnvironmentCallback", "Content Loaded");
             }
         };
+        mEmulatorMonitor = new EmulatorMonitor(this, this);
     }
 
     @Override
@@ -165,6 +171,7 @@ public class RetroArchEmulatorActivity extends RetroActivityCamera {
                     }
                     ComponentName componentName = new ComponentName("com.xugame.gameconsoleMenu",
                             "com.xugame.gameconsole.dialog.localgamesetting.LocalGameSettingDialog");
+                    intent.putExtra("rompath", mRomPath);
                     intent.setComponent(componentName);
                     startActivityForResult(intent, 200);
                     DebugUtil.i(TAG, "showLocalExitDialog");
@@ -255,6 +262,14 @@ public class RetroArchEmulatorActivity extends RetroActivityCamera {
                 Log.w("Key doesn't exist yet.", e.getMessage());
             }
         }
+
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        if (mEmulatorMonitor != null)
+            mEmulatorMonitor.unregister();
     }
 
     public void hideMouseCursor() {
@@ -418,6 +433,7 @@ public class RetroArchEmulatorActivity extends RetroActivityCamera {
         if (requestCode == 200) {
             if (resultCode == 201) {//继续游戏
                 gameDialogClosed();
+//                testSetKey();
                 if (data != null) {
                     //增加完美像素单独开关,避免混淆
                     boolean isPixelPerfect = data.getBooleanExtra("is_pixelperfect", false);
@@ -426,26 +442,30 @@ public class RetroArchEmulatorActivity extends RetroActivityCamera {
                         int scanLine = data.getIntExtra("scanLine", 0);
                         int screen = data.getIntExtra("screen", 0);
                         DebugUtil.i(TAG, "scanline=" + scanLine + "screen=" + screen);
-                        if (mScreen != screen) {
-                            mScreen = screen;
-                            if (screen >= 0 && screen < 3) {
-                                switch (screen) {
-                                    case 0:
-                                        setAspectRatio(AspectRatio.ASPECT_RATIO_CUSTOM.getValue());
-                                        setCustomViewPort(Util.getSize(420), Util.getSize(87), Util.getSize(1080), Util.getSize(810));
-                                        break;
-                                    case 1:
-                                        setAspectRatio(AspectRatio.ASPECT_RATIO_CORE.getValue());
-                                        break;
-                                    case 2:
-                                        setAspectRatio(AspectRatio.ASPECT_RATIO_FULL.getValue());
-                                        break;
+//                        if (mScreen != screen) {
+                        mScreen = screen;
+                        if (screen >= 0 && screen < 3) {
+                            DebugUtil.i(TAG, "设置screen" + screen);
+                            switch (screen) {
+
+                                case 0:
+                                    setAspectRatio(AspectRatio.ASPECT_RATIO_CORE.getValue());
+//                                        setCustomViewPort(Util.getSize(420), Util.getSize(87), Util.getSize(1080), Util.getSize(810));
+                                    break;
+                                case 1:
+                                    setAspectRatio(AspectRatio.ASPECT_RATIO_4_3.getValue());
+                                    break;
+                                case 2:
+                                    setAspectRatio(AspectRatio.ASPECT_RATIO_FULL.getValue());
+                                    break;
 
-                                }
                             }
                         }
+//                        }
                         if (mScanline != scanLine) {
                             if (scanLine >= 0 && scanLine < 4) {
+                                DebugUtil.i(TAG, "设置scanLine" + scanLine + ScreenType.values()[scanLine]);
+
                                 switch (ScreenType.values()[scanLine]) {
                                     case NORMAL:
                                         switchFilter(null);
@@ -464,7 +484,7 @@ public class RetroArchEmulatorActivity extends RetroActivityCamera {
                         }
                     } else {
                         int multiple = data.getIntExtra("multiple", -1);
-                        DebugUtil.i(TAG,"multiple="+multiple);
+                        DebugUtil.i(TAG, "multiple=" + multiple);
                         if (multiple >= 2 && multiple <= 5) {
                             resetScreenForPerfect(multiple);
                         }
@@ -479,6 +499,46 @@ public class RetroArchEmulatorActivity extends RetroActivityCamera {
         super.onActivityResult(requestCode, resultCode, data);
     }
 
+    private void testSetKey() {
+        int[] javaKey = {
+                InputCode.JoypadBindKeySet.JOYPAD_BTN_A,//轻拳
+                InputCode.JoypadBindKeySet.JOYPAD_BTN_B,//重拳
+                108,
+                109,
+                InputCode.JoypadBindKeySet.JOYPAD_AXIS_X_PLUS,
+                InputCode.JoypadBindKeySet.JOYPAD_AXIS_X_MINIS,
+                InputCode.JoypadBindKeySet.JOYPAD_AXIS_Y_PLUS,
+                InputCode.JoypadBindKeySet.JOYPAD_AXIS_Y_MINIS,
+                99,//轻脚
+                100,//重脚
+                98,
+                101,
+                103,
+                104,
+                105,
+                106
+        };
+        int[] emulatorKey = {
+                InputCode.JoypadBindSet.JOYPAD_B,
+                InputCode.JoypadBindSet.JOYPAD_Y,
+                InputCode.JoypadBindSet.JOYPAD_SELECT,
+                InputCode.JoypadBindSet.JOYPAD_START,
+                InputCode.JoypadBindSet.JOYPAD_UP,
+                InputCode.JoypadBindSet.JOYPAD_DOWN,
+                InputCode.JoypadBindSet.JOYPAD_LEFT,
+                InputCode.JoypadBindSet.JOYPAD_RIGHT,
+                InputCode.JoypadBindSet.JOYPAD_A,
+                InputCode.JoypadBindSet.JOYPAD_X,
+                InputCode.JoypadBindSet.JOYPAD_L,
+                InputCode.JoypadBindSet.JOYPAD_R,
+                InputCode.JoypadBindSet.JOYPAD_L2,
+                InputCode.JoypadBindSet.JOYPAD_R2,
+                InputCode.JoypadBindSet.JOYPAD_L3,
+                InputCode.JoypadBindSet.JOYPAD_R3,
+        };
+        setJoystickBindNative(0, javaKey, emulatorKey);
+    }
+
 
     private void resetScreenForPerfect(int multiple) {
         if (system != null && system.systemAVInfo != null) {
@@ -560,4 +620,40 @@ public class RetroArchEmulatorActivity extends RetroActivityCamera {
 //
 //        }
     }
+
+    @Override
+    public void onHomeClick() {
+        DebugUtil.i(TAG, "onHomeClick");
+    }
+
+    @Override
+    public void onRecentClick() {
+        DebugUtil.i(TAG, "onRecentClick");
+    }
+
+    @Override
+    public void onMenuSaveState(int index) {
+        DebugUtil.i(TAG, "saveState" + index);
+        if (index >= 0 && index < 10) {
+            if (saveState(index)) {
+                Intent intent = new Intent();
+                intent.setAction(EmulatorMonitor.EMULATOR_SAVE_STATE_ACTION);
+                intent.putExtra("save_state_flag", true);
+                this.sendBroadcast(intent);
+            }
+        }
+    }
+
+    @Override
+    public void onMenuLoadState(int index) {
+        DebugUtil.i(TAG, "loadState" + index);
+        if (index >= 0 && index < 10) {
+            if (loadState(index)) {
+                Intent intent = new Intent();
+                intent.setAction(EmulatorMonitor.EMULATOR_LOAD_STATE_ACTION);
+                intent.putExtra("load_state_flag", true);
+                this.sendBroadcast(intent);
+            }
+        }
+    }
 }

+ 2 - 2
app/src/main/java/com/xugame/gameconsole/monitor/EmulatorMonitor.java

@@ -11,8 +11,8 @@ import com.xugame.gameconsole.util.DebugUtil;
 public class EmulatorMonitor {
 
     private final String TAG = "EmulatorMonitor";
-    private static final String EMULATOR_SAVE_STATE_ACTION = "EMULATOR_SAVE_STATE_ACTION";
-    private static final String EMULATOR_LOAD_STATE_ACTION = "EMULATOR_LOAD_STATE_ACTION";
+    public static final String EMULATOR_SAVE_STATE_ACTION = "EMULATOR_SAVE_STATE_ACTION";
+    public static final String EMULATOR_LOAD_STATE_ACTION = "EMULATOR_LOAD_STATE_ACTION";
 
 
     private static final String SYSTEM_REASON = "reason";

+ 3 - 0
app/src/main/java/com/xugame/gameconsole/preferences/UserPreferences.java

@@ -123,6 +123,9 @@ public class UserPreferences {
         config.setString("system_directory", systemDir);//20230829添加system路径设置
         DebugUtil.i(TAG,"write system dir:"+systemDir);
         config.setInt("input_player1_analog_dpad_mode", 1);
+        config.setInt("input_player2_analog_dpad_mode", 1);//设置2p摇杆
+        config.setInt("input_player3_analog_dpad_mode", 1);//
+        config.setInt("input_player4_analog_dpad_mode", 1);//
 
         config.setInt("frontend_log_level", 1);
         config.setInt("libretro_log_level", 1);

+ 1 - 1
app/src/main/java/com/xugame/gameconsole/util/DebugUtil.java

@@ -4,7 +4,7 @@ import android.util.Log;
 
 
 public class DebugUtil {
-    static private boolean DEBUG = true;
+    static private boolean DEBUG = false;
 
     public static void d(String tag, String msg) {
         if (DEBUG)