TapiocaFox / Daijishou

Daijishō is a retro launcher that let you manage your retro games libraries. This repo is for assets and served as a main page.
MIT License
1.13k stars 115 forks source link

AYN Odin2 Android 13 Daijisho Player Launch Emulator Activity Error: "Unable to find explicit activity class..." #579

Closed MoonStoneManta closed 5 months ago

MoonStoneManta commented 11 months ago

Brief

Been down the rabbit hole on this one; some popular emulators (DS DraStic, 3DS Citra Canary, Dreamcast Redream) are unable to launch ROMs using the built in Daijisho player am launch arguments. It may be related to Android 13 as many people have reported the emulators launching correctly in older versions, but now encountering this issue with the same configuration after upgrading (unfortunately cannot test to confirm).

This is bound to be a growing issue due the recent popular release of the Odin2, which is built on Android 13, and the increasing popularity of the fantastic Daijisho emulator front end.

Details of Issue

[!NOTE]

Platform Info

  • AYN Odin2 on Android 13 (version: Odin2_V1.0.0.208_20231201_111650_user)
  • Daijisho version: 1.4.67 (399)
  • All ROM files are located external storage.
  • The standalone emulators have been setup and run the ROMs correctly when started from their respective apps.

Daijisho players for external emulators which are working correctly on the platform:

  • gc - org.dolphinemu.dolphinemu
  • wii - org.dolphinemu.dolphinemu
  • n64 - org.mupen64plusae.v3.fzurita.pro
  • psx - Duckstation
  • ps2 - Aethersx2
  • psp - PPSSPP Gold
  • RetroArch 64 (player related cores for: gb, gba, gbc, genesis, nes, snes)

Citra Canary (sideload) version: 4253d11 [canary-2711] Source

Attempting to load: .3ds

Daijisho player settings: Player: 3ds - Citra Canary File regex: ^(.*)\.(?:3ds|3dsx|app|axf|cci|cxi|elf)$

-n org.citra.citra_emu.canary/org.citra.citra_emu.activities.EmulationActivity
  -a android.intent.action.VIEW
  -e SelectedGame {file.uri}
  --activity-clear-task
  --activity-clear-top

APK analyser shows app has available activity:

Citra AndroidManifest.xml Activity:

...
   <activity theme="Theme.Citra.Main" name="org.citra.citra_emu.activities.EmulationActivity" exported="true" launchMode="1">
      <intent-filter>
        <action name="android.intent.action.VIEW"/>
        <category name="android.intent.category.DEFAULT"/>
        <data mimeType="application/octet-stream" scheme="content"/>
      </intent-filter>
    </activity>
...

Daijisho Error Log on ROM Launch:

android.content.ActivityNotFoundException: Unable to find explicit activity class {org.citra.citra_emu.canary/org.citra.citra_emu.activities.EmulationActivity}; have you declared this activity in your AndroidManifest.xml, or does your intent not match its declared <intent-filter>?
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2203)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1841)
    at android.app.ContextImpl.startActivity(ContextImpl.java:1101)
    at android.app.ContextImpl.startActivity(ContextImpl.java:1072)
    at android.content.ContextWrapper.startActivity(ContextWrapper.java:432)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play$playPlayableItem$lambda$13$lambda$12$playIt(DaijishouLibraryModel.kt:624)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play$playPlayableItem$lambda$13$lambda$12$playItWithRules(DaijishouLibraryModel.kt:676)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play$playPlayableItem(DaijishouLibraryModel.kt:746)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play(DaijishouLibraryModel.kt:762)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play$default(DaijishouLibraryModel.kt:539)
    at com.magneticchen.daijishou.nav_fragments.PlatformLibraryGridViewNavFragment$onCreateView$4.invoke(PlatformLibraryGridViewNavFragment.kt:475)
    at com.magneticchen.daijishou.nav_fragments.PlatformLibraryGridViewNavFragment$onCreateView$4.invoke(PlatformLibraryGridViewNavFragment.kt:474)
    at com.magneticchen.daijishou.daijishou_recycler_view.DaijishouRecyclerView$Adapter$ViewHolder._init_$lambda$0(DaijishouRecyclerView.kt:238)
    at com.magneticchen.daijishou.daijishou_recycler_view.DaijishouRecyclerView$Adapter$ViewHolder.$r8$lambda$dcH5ow6HzTN0-BP2tsljWiEUDBs(Unknown Source:0)
    at com.magneticchen.daijishou.daijishou_recycler_view.DaijishouRecyclerView$Adapter$ViewHolder$$ExternalSyntheticLambda0.onClick(Unknown Source:6)
    at android.view.View.performClick(View.java:7506)
    at android.view.View.performClickInternal(View.java:7483)
    at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
    at android.view.View$PerformClick.run(View.java:29400)
    at android.os.Handler.handleCallback(Handler.java:942)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loopOnce(Looper.java:201)
    at android.os.Looper.loop(Looper.java:288)
    at android.app.ActivityThread.main(ActivityThread.java:7930)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:942)

DraStic (PlayStore) version: r2.6.0.4a build 109 Source

Attempting to load: .zip

Daijisho player settings: Player: nds - Drastic File regex: ^(.*)\\.(?:bin|nds|rar|zip|7z)$

-n com.dsemu.drastic/.DraSticActivity
-d {file.uri}
--activity-clear-task
--activity-clear-top

APK analyser shows app has available activity:

DraStic AndroidManifest.xml: (unfamiliar with Android, assume the activity declaration is generated elsewhere)

<?xml version="1.0" encoding="UTF-8"?><manifest versionCode="109" package="com.dsemu.drastic" split="config.xxhdpi">
  <application hasCode="false">
    <meta-data name="com.android.vending.derived.apk.id" value="32"/>
  </application>
</manifest>

Daijisho Error Log on ROM Launch:

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.dsemu.drastic/com.dsemu.drastic.DraSticActivity}; have you declared this activity in your AndroidManifest.xml, or does your intent not match its declared <intent-filter>?
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2203)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1841)
    at android.app.ContextImpl.startActivity(ContextImpl.java:1101)
    at android.app.ContextImpl.startActivity(ContextImpl.java:1072)
    at android.content.ContextWrapper.startActivity(ContextWrapper.java:432)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play$playPlayableItem$lambda$13$lambda$12$playIt(DaijishouLibraryModel.kt:624)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play$playPlayableItem$lambda$13$lambda$12$playItWithRules(DaijishouLibraryModel.kt:676)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play$playPlayableItem(DaijishouLibraryModel.kt:746)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play(DaijishouLibraryModel.kt:762)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play$default(DaijishouLibraryModel.kt:539)
    at com.magneticchen.daijishou.nav_fragments.PlatformLibraryGridViewNavFragment$onCreateView$4.invoke(PlatformLibraryGridViewNavFragment.kt:475)
    at com.magneticchen.daijishou.nav_fragments.PlatformLibraryGridViewNavFragment$onCreateView$4.invoke(PlatformLibraryGridViewNavFragment.kt:474)
    at com.magneticchen.daijishou.daijishou_recycler_view.DaijishouRecyclerView$Adapter$ViewHolder._init_$lambda$0(DaijishouRecyclerView.kt:238)
    at com.magneticchen.daijishou.daijishou_recycler_view.DaijishouRecyclerView$Adapter$ViewHolder.$r8$lambda$dcH5ow6HzTN0-BP2tsljWiEUDBs(Unknown Source:0)
    at com.magneticchen.daijishou.daijishou_recycler_view.DaijishouRecyclerView$Adapter$ViewHolder$$ExternalSyntheticLambda0.onClick(Unknown Source:6)
    at android.view.View.performClick(View.java:7506)
    at android.view.View.performClickInternal(View.java:7483)
    at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
    at android.view.View$PerformClick.run(View.java:29400)
    at android.os.Handler.handleCallback(Handler.java:942)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loopOnce(Looper.java:201)
    at android.os.Looper.loop(Looper.java:288)
    at android.app.ActivityThread.main(ActivityThread.java:7930)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:942)

Redream (PlayStore) version: 1.2.07 [207] Source

Attempting to load: .chd

Daijisho player settings: Player: dreamcast - io.recompiled.redream File regex: ^(.*)\\.(?:7z|bin|cdi|chd|cue|dat|elf|gdi|iso|lst|m3u|zip)$

-n io.recompiled.redream/.MainActivity
  -a android.intent.action.VIEW
  -d {file.uri}

APK analyser shows app has available activity:

Redream AndroidManifest.xml: (unfamiliar with Android, assume the activity declaration is generated elsewhere)

<?xml version="1.0" encoding="UTF-8"?><manifest versionCode="207" package="io.recompiled.redream" split="config.xxhdpi">
  <application hasCode="false">
    <meta-data name="com.android.vending.derived.apk.id" value="4"/>
  </application>
</manifest>

Daijisho Error Log on ROM Launch:

android.content.ActivityNotFoundException: Unable to find explicit activity class {io.recompiled.redream/io.recompiled.redream.MainActivity}; have you declared this activity in your AndroidManifest.xml, or does your intent not match its declared <intent-filter>?
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2203)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1841)
    at android.app.ContextImpl.startActivity(ContextImpl.java:1101)
    at android.app.ContextImpl.startActivity(ContextImpl.java:1072)
    at android.content.ContextWrapper.startActivity(ContextWrapper.java:432)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play$playPlayableItem$lambda$13$lambda$12$playIt(DaijishouLibraryModel.kt:624)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play$playPlayableItem$lambda$13$lambda$12$playItWithRules(DaijishouLibraryModel.kt:676)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play$playPlayableItem(DaijishouLibraryModel.kt:746)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play(DaijishouLibraryModel.kt:762)
    at com.magneticchen.daijishou.view_models.DaijishouLibraryModel.play$default(DaijishouLibraryModel.kt:539)
    at com.magneticchen.daijishou.nav_fragments.PlatformLibraryGridViewNavFragment$onCreateView$4.invoke(PlatformLibraryGridViewNavFragment.kt:475)
    at com.magneticchen.daijishou.nav_fragments.PlatformLibraryGridViewNavFragment$onCreateView$4.invoke(PlatformLibraryGridViewNavFragment.kt:474)
    at com.magneticchen.daijishou.daijishou_recycler_view.DaijishouRecyclerView$Adapter$ViewHolder._init_$lambda$0(DaijishouRecyclerView.kt:238)
    at com.magneticchen.daijishou.daijishou_recycler_view.DaijishouRecyclerView$Adapter$ViewHolder.$r8$lambda$dcH5ow6HzTN0-BP2tsljWiEUDBs(Unknown Source:0)
    at com.magneticchen.daijishou.daijishou_recycler_view.DaijishouRecyclerView$Adapter$ViewHolder$$ExternalSyntheticLambda0.onClick(Unknown Source:6)
    at android.view.View.performClick(View.java:7506)
    at android.view.View.performClickInternal(View.java:7483)
    at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
    at android.view.View$PerformClick.run(View.java:29400)
    at android.os.Handler.handleCallback(Handler.java:942)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loopOnce(Looper.java:201)
    at android.os.Looper.loop(Looper.java:288)
    at android.app.ActivityThread.main(ActivityThread.java:7930)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:942)

Issue Research So Far

I have some coding experience, however the android ecosystem is pretty foreign to me so please excuse any obvious oversights. Below is a summary of the research I've performed so far regarding the issue: :white_check_mark: Regarding an issue with the activity intent filter, I've tried every combination of Daijisho player am start arguments i can think of, including explicitly passing any parameters which are defined in the emulators available AndroidManifest.xml, eg: Action (-a), Category (-c), Type (-t), Data (-d) / Extra (-e) etc. This was spurred on from Unable to launch activity since Android 13, and Activity intent filters and interacting with other apps :white_large_square: Unsure where the issue is stemming from, TBD contacting emulator devs directly once the cause of the issue is determined and can prove it's related to problem on their side. :white_check_mark: May have similarities to related issues #157 #443 #434 #562 #413 #490

Jetup13 commented 11 months ago

This issue has been popping up mostly from those that own Odin 2. Unfortunately I don't think @TapiocaFox @Post-Mortem own a Odin 2. And I also don't own an Odin 2. So it's kinda hard for us to offer a possible solution. The best thing I've seen is that it seems to be a vendor specific issue but not much an Android 13/Frontend/ADB issue.

There issue that popped with PPSSPP failing to launch CHD files from command on Odin 2. I asked the person to try creating an android system ppsspp widget and selecting the CHD file. PPSSPP would crash.

Only thing that can find that's similar between all those apps is that they are using sdk 33.

There was a crashing issue that someone has with the Odin 2 that was fixed by clearing Play Store cache. Try that and see what happens.

Jetup13 commented 11 months ago

I would also mention these emulators also have issues with the Odin 2: YabaSanshiro 2, PPSSPP, & Drastic.

YabaSanshiro 2 is the only one that I know that doesn't launch on Android 12 and up when launched from a frontend or adb session

MoonStoneManta commented 11 months ago

Thanks for the info! Unfortunately clearing the PlayStore cache wasnt the solution; regarding the PPSSPP emulator, this is working correctly on the Odin2 and launching the games as expected from Daijishou. Im sure the issue is related to the tightening up of security in Android 13 specifically, found some good resources Android 13 intent filter changes and Match intents to other apps' intent filters.

I dug around some more and ended up finding the missing AndroidManifest.xml activity declarations for DraStic and Redream emulation tasks: DraStic AndroidManifest.xml:

...
<activity android:label="@string/app_name" android:name="com.dsemu.drastic.DraSticActivity" android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:scheme="file"/>
        <data android:scheme="content"/>
        <data android:mimeType="*/*"/>
        <data android:pathPattern=".*\\.nds"/>
        <data android:pathPattern=".*\\..*\\.nds"/>
        <data android:pathPattern=".*\\..*\\..*\\.nds"/>
        <data android:pathPattern=".*\\..*\\..*\\..*\\.nds"/>
        <data android:host="*"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
        <category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
    </intent-filter>
</activity>
...

Redream AndroidManifest.xml:

...
<activity android:theme="@style/AppTheme.NoActionBar.Fullscreen" android:name="io.recompiled.redream.MainActivity" android:exported="true" android:screenOrientation="sensorLandscape" android:configChanges="screenSize|orientation|keyboardHidden|keyboard">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
        <category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:mimeType="*/*" android:scheme="file" android:host="*" android:pathPattern=".*\\.cdi"/>
        <data android:mimeType="*/*" android:scheme="file" android:host="*" android:pathPattern=".*\\.CDI"/>
        <data android:mimeType="*/*" android:scheme="file" android:host="*" android:pathPattern=".*\\.chd"/>
        <data android:mimeType="*/*" android:scheme="file" android:host="*" android:pathPattern=".*\\.CHD"/>
        <data android:mimeType="*/*" android:scheme="file" android:host="*" android:pathPattern=".*\\.cue"/>
        <data android:mimeType="*/*" android:scheme="file" android:host="*" android:pathPattern=".*\\.CUE"/>
        <data android:mimeType="*/*" android:scheme="file" android:host="*" android:pathPattern=".*\\.gdi"/>
        <data android:mimeType="*/*" android:scheme="file" android:host="*" android:pathPattern=".*\\.GDI"/>
    </intent-filter>
</activity>
...

It looks like the DraStic emulator does not accept .zip files being passed to the apps activity, I did some tests unzipping and passing the .nds file directly and it is now working as expected. I've updated my Daijishou player regex to: Player: nds - Drastic File regex: ^(.*)\\.(?:nds)$

-n com.dsemu.drastic/.DraSticActivity
-d {file.uri}
--activity-clear-task
--activity-clear-top

I've also found a solution to the Citra issue for 3DS games, based on the intent filters in its manifest it seems to be rejected by the PackageManager due no -d data being passed (sent in the current Daijishou player instead as an extras key-value pair); I've modified the player as below to send the uri as data instead and it is now launching games as expected: Player: 3ds - Citra Canary File regex: ^(.*)\.(?:3ds|3dsx|app|axf|cci|cxi|elf)$

-n org.citra.citra_emu.canary/org.citra.citra_emu.activities.EmulationActivity
  -a android.intent.action.VIEW
  -d {file.uri}
  --activity-clear-task
  --activity-clear-top

However regarding the Redream emulator, I'm still a little lost; it seems like the activity is expecting a file.path instead of a file.uri based on the android:scheme="file" in its activity intent filter. When i look at what is being sent via logcat when the emulator is called from Daijishou with file.path set, the address is being passed as /path/to/file.chd, would this not require the file:// prefix? i had a play around and managed to get the activity to be accepted by the intent filter and open the emulator, although the selected ROM does not start, by defining the type and including the file prefix as below:

adb shell am start -n io.recompiled.redream/.MainActivity -a android.intent.action.VIEW -t '*/*' -d 'file:///path/to/file.chd'

Although the same also works if you simply call:

adb shell am start -n io.recompiled.redream/.MainActivity

Below is the output when either of above command is run:

LogCat on io.recompiled.redream for above commands ``` 12-12 16:21:17.815 2264 6799 I ActivityTaskManager: START u0 {act=android.intent.action.VIEW dat=file:///... typ=*/* flg=0x14008000 cmp=io.recompiled.redream/.MainActivity} from uid 2000 12-12 16:21:17.830 2796 15607 I ForegroundAppMonitor: Current package: io.recompiled.redream 12-12 16:21:17.832 2264 3069 D CoreBackPreview: Window{bf8d11d u0 Splash Screen io.recompiled.redream}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@90f4d63, mPriority=0} 12-12 16:21:17.837 2264 2319 I ActivityManager: Start proc 30979:io.recompiled.redream/u0a119 for next-top-activity {io.recompiled.redream/io.recompiled.redream.MainActivity} 12-12 16:21:17.852 2796 3625 I ForegroundAppMonitor: Current package: io.recompiled.redream 12-12 16:21:17.859 30979 30979 W ziparchive: Unable to open '/data/app/~~TQPq1WJwWNbL5o_vUo6T9Q==/io.recompiled.redream-S8FEskanC5AhJw6ulOukrQ==/split_config.arm64_v8a.dm': No such file or directory 12-12 16:21:17.859 30979 30979 W ziparchive: Unable to open '/data/app/~~TQPq1WJwWNbL5o_vUo6T9Q==/io.recompiled.redream-S8FEskanC5AhJw6ulOukrQ==/split_config.arm64_v8a.dm': No such file or directory 12-12 16:21:17.859 30979 30979 W ziparchive: Unable to open '/data/app/~~TQPq1WJwWNbL5o_vUo6T9Q==/io.recompiled.redream-S8FEskanC5AhJw6ulOukrQ==/split_config.xxhdpi.dm': No such file or directory 12-12 16:21:17.859 30979 30979 W ziparchive: Unable to open '/data/app/~~TQPq1WJwWNbL5o_vUo6T9Q==/io.recompiled.redream-S8FEskanC5AhJw6ulOukrQ==/split_config.xxhdpi.dm': No such file or directory 12-12 16:21:17.864 30979 30979 V GraphicsEnvironment: ANGLE Developer option for 'io.recompiled.redream' set to: 'default' 12-12 16:21:17.864 30979 30979 V GraphicsEnvironment: ANGLE GameManagerService for io.recompiled.redream: false 12-12 16:21:17.878 30979 31007 I redream : read /storage/emulated/0/Android/data/io.recompiled.redream/files/redream.cfg 12-12 16:21:17.883 2264 16448 D CoreBackPreview: Window{147fbc0 u0 io.recompiled.redream/io.recompiled.redream.MainActivity}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@753d83e, mPriority=0} 12-12 16:21:17.916 2264 2306 I ActivityTaskManager: Displayed io.recompiled.redream/.MainActivity: +98ms 12-12 16:21:17.923 24316 24316 I GoogleInputMethodService: GoogleInputMethodService.onStartInput():1883 onStartInput(EditorInfo{EditorInfo{packageName=io.recompiled.redream, inputType=0, inputTypeString=NULL, enableLearning=false, autoCorrection=false, autoComplete=false, imeOptions=0, privateImeOptions=null, actionName=UNSPECIFIED, actionLabel=null, initialSelStart=-1, initialSelEnd=-1, initialCapsMode=0, label=null, fieldId=-1, fieldName=null, extras=null, hintText=null, hintLocales=[]}}, false) 12-12 16:21:18.027 30979 31024 I redream : load boot rom /storage/emulated/0/Android/data/io.recompiled.redream/files/boot.bin 12-12 16:21:18.027 30979 31024 W redream : failed to open /storage/emulated/0/Android/data/io.recompiled.redream/files/boot.bin 12-12 16:21:18.027 30979 31024 I redream : load flash rom /storage/emulated/0/Android/data/io.recompiled.redream/files/flash.bin 12-12 16:21:18.289 2264 2584 D CoreBackPreview: Window{bf8d11d u0 Splash Screen io.recompiled.redream EXITING}: Setting back callback null 12-12 16:21:18.289 2264 3069 W InputManager-JNI: Input channel object 'bf8d11d Splash Screen io.recompiled.redream (client)' was disposed without first being removed with the input manager! ```

vs log when ROM is loaded from within Redream:

LogCat on io.recompiled.redream when loaded from redream ``` 12-12 16:27:39.048 32395 32523 I redream : load boot rom /storage/emulated/0/Android/data/io.recompiled.redream/files/boot.bin 12-12 16:27:39.048 32395 32523 W redream : failed to open /storage/emulated/0/Android/data/io.recompiled.redream/files/boot.bin 12-12 16:27:39.048 32395 32523 I redream : load flash rom /storage/emulated/0/Android/data/io.recompiled.redream/files/flash.bin 12-12 16:27:39.056 32395 32418 I redream : write /storage/emulated/0/Android/data/io.recompiled.redream/files/redream.cfg 12-12 16:27:39.056 32395 32418 I redream : read /storage/emulated/0/Android/data/io.recompiled.redream/files/redream.cfg 12-12 16:27:57.792 32395 32418 I redream : write /storage/emulated/0/Android/data/io.recompiled.redream/files/redream.cfg 12-12 16:27:57.792 32395 32418 I redream : read /storage/emulated/0/Android/data/io.recompiled.redream/files/redream.cfg ```

Appreciate this is a more emulator specific query, however in order to correctly update the Daijishou player argument for Android 13 users, any ideas based on the redream AndroidManifest.xml intent filters as to what its missing / or what else i can interrogate to figure out what argument it is expecting to load the ROM file passed to it?

Jetup13 commented 11 months ago

Interesting. Thanks for the info

For Drastic: .zip files definitely work on 12 and below. Haven't seen any issues from A13 users besides Odin 2.

For Citra: Thanks I'll update the player command. As I confirmed the command is working on non Odin 2 devices.

For Redream: You might want to report your findings to Redream dev on their discord. I would but again I don't have a Odin 2 to test.

Also if you dont already know use this command to quickly find out the apps androidmanifest.xml :

adb shell dumpsys package packname

Jetup13 commented 11 months ago

As for looking for extra commands that's usually supplied by the devs documentation (usually through GitHub) or looking through source code. Obviously though this information might not be available

Jetup13 commented 11 months ago

Hmmm, now I'm wondering if one of the issues is that its not liking the extra commands (-e) for some apps.

RokimaruVA commented 11 months ago

Interesting. Thanks for the info

For Drastic: .zip files definitely work on 12 and below. Haven't seen any issues from A13 users besides Odin 2.

For Citra: Thanks I'll update the player command. As I confirmed the command is working on non Odin 2 devices.

For Redream: You might want to report your findings to Redream dev on their discord. I would but again I don't have a Odin 2 to test.

Also if you dont already know use this command to quickly find out the apps androidmanifest.xml :

adb shell dumpsys package packname

hello, i resolve the problem with drastic just unzip all my games, there is really some problem with .zip (saw it before on reddit) and there is really some problem with redream but i`m not some sorta programmer guy and har to help here

binhex commented 11 months ago

Odin 2 user here - Following as i am seeing some of these issues, definitely seeing the DS issue, i haven't tried unzipping the ROM's yet, will try that shortly.

I am using Citra MMJ for 3DS emulation and i can confirm no issues for that particular emulator on the Odin 2

EDIT - Did try unzipping the DS ROM's and can confirm it fixes the particular issue with Dajisho and Drastic

binhex commented 11 months ago

For Redream: You might want to report your findings to Redream dev on their discord. I would but again I don't have a Odin 2 to test.

Redream does run games correctly on the Odin 2, the issue is with running games using Dajisho that then launch Redream, not sure the Redream dev is going to be too concerned about that.

qqkstar commented 9 months ago

Documenting here in case others have encountered the same issue:

On my Odin2, with N64 using the org.mupen64plusae.v3.fzurita.pro emulator, I'm encountering the Unable to find explicit activity class.. error only for Super Smash Bros. Weirdly, I've tried dozens of other N64 titles and they all launched fine through Daijisho. Super Smash Bros. also ran fine when launched directly in the mupen64 app itself. I've tried unzipping the ROM file and even tried with a different version of Super Smash Bros and neither worked through Daijisho.

999dante commented 9 months ago

hi can you share wii and ps2 command?

killakanl0rd commented 7 months ago

Hi all, just so you are aware the Odin 2 just had a new OTA update pushed which seems to have fixed this issue? Was something the AYN team needed to fix. I can confirm I can now use Redream from the Daijisho frontend, launching straight into games! Yippee! I didn't have issues with the other emulators (Citra, Drastic) if other people can confirm that it is resolved for them? Very happy this issue has been fixed.

EDIT: changed "launchers" to "emulators (Citra, Drastic)"

Jetup13 commented 5 months ago

Forgot to close this as this was a Odin issue that the AYN team fix as mentioned in the above post.