Hello. I am getting crashes when I use save states. This only happens in Mupen64Plus-Next GLES3 or GLES2, though it doesn’t happen every single time. Additionally, minimizing the application or turning off the screen also results in crashes. This happens with every N64 game I try, though the log is for The Legend of Zelda: Majora’s Mask. Any ideas on a fix?
Tablet: Lenovo Tab P11 Pro (2nd Gen)
CPU: MediaTek Kompanio 1300T
GPU: Mali-G77 MC9
OS: Android 12
Retroarch Version: 1.15.0
Core: Mupen64Plus-Next GLES3
Core Version: 2.5-Vulkan 4353b0a
Using old --libretro behavior. Setting libretro_directory to “/data/user/0/com.retroarch/cores/” instead.
RetroArch 1.15.0 (Git 4d2a7f4)
=== Build =======================================
Capabilities: ASIMD
[INFO] Version: 1.15.0
[INFO] Git: 4d2a7f4
[INFO] Built: Apr 23 2023
[INFO] =================================================
[Input]: Found input driver: “android”.
Environ: SET_PIXEL_FORMAT: RGB565.
[Core]: Version of libretro API: 1, Compiled against API: 1
[Audio]: Set audio input rate to: 48000.00 Hz.
[Video]: Set video size to: 960x720.
[Vulkan]: Vulkan dynamic library loaded.
[Vulkan]: Found vulkan context: “vk_android”.
[Vulkan]: Detecting screen resolution: 0x0.
[Vulkan]: Setting swap interval: 1.
[Vulkan]: Created Android surface: 519206584928
[Vulkan]: Found GPU at index 0: “Mali-G77 MC9”.
[Vulkan]: Using GPU index 0.
[Vulkan]: Using semaphores for WSI acquire.
[Vulkan]: Using GPU: “Mali-G77 MC9”.
[Vulkan]: Queue family 0 supports 2 sub-queues.
[Vulkan]: Got 4 swapchain images.
[Android]: Native window size: 1536 x 2560.
[Vulkan]: Using resolution 1536x2560.
[Vulkan]: Using RGB565 format.
[Vulkan]: Loading stock shader.
[Joypad]: Found joypad driver: “android”.
[Video]: Found display server: “android”.
[OpenSL]: Requested audio latency: 128 ms.
[OpenSL]: Setting audio latency: Block size = 4096, Blocks = 6, Total = 24576 …
[Display]: Found display driver: “vulkan”.
[Playlist]: Loading history file: “/storage/emulated/0/Android/data/com.retroarch/files/content_history.lpl”.
[Playlist]: Loading history file: “/storage/emulated/0/Android/data/com.retroarch/files/content_music_history.lpl”.
[Playlist]: Loading history file: “/storage/emulated/0/Android/data/com.retroarch/files/content_image_history.lpl”.
[Playlist]: Loading favorites file: “/storage/emulated/0/Android/data/com.retroarch/files/content_favorites.lpl”.
[Android]: Native window size: 1536 x 2560.
Subsystem ID: 0
Special game type: N64 Disk Drive
Ident: ndd
ID: 1
Content:
Disk (required)
Cartridge (required)
Subsystem ID: 1
Special game type: N64 Transferpak
Ident: gb
ID: 2
Content:
Gameboy RAM (required)
Gameboy ROM (required)
Cartridge (required)
Subsystems: 2
[Core]: Using content: “/storage/emulated/0/Games/ZeldaMajora’sMask.NZSE.n64”.
[Core]: Content ran for a total of: 00 hours, 00 minutes, 00 seconds.
[Core]: Unloading core…
[Core]: Unloading core symbols…
[Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
RetroArch 1.15.0 (Git 4d2a7f4)
=== Build =======================================
Capabilities: ASIMD
[INFO] Version: 1.15.0
[INFO] Git: 4d2a7f4
[INFO] Built: Apr 23 2023
[INFO] =================================================
[Input]: Found input driver: “android”.
[Core]: Loading dynamic libretro core from: “/data/user/0/com.retroarch/cores/mupen64plus_next_gles3_libretro_android.so”
Special game type: N64 Disk Drive
Ident: ndd
ID: 1
Content:
Disk (required)
Cartridge (required)
Special game type: N64 Transferpak
Ident: gb
ID: 2
Content:
Gameboy RAM (required)
Gameboy ROM (required)
Cartridge (required)
[Core]: Game-specific core options found at “/storage/emulated/0/RetroArch/config/Mupen64Plus-Next/ZeldaMajora’sMask.NZSE.opt”.
Controller port: 1
Controller (ID: 1)
RetroPad (ID: 1)
Controller port: 2
Controller (ID: 1)
RetroPad (ID: 1)
Controller port: 3
Controller (ID: 1)
RetroPad (ID: 1)
Controller port: 4
Controller (ID: 1)
RetroPad (ID: 1)
[Remaps]: Core-specific remap found at “/storage/emulated/0/RetroArch/config/remaps/Mupen64Plus-Next/Mupen64Plus-Next.rmp”.
[Overrides]: Redirecting save file to “/storage/emulated/0/RetroArch/saves/ZeldaMajora’sMask.NZSE.srm”.
[Overrides]: Redirecting save state to “/storage/emulated/0/RetroArch/states/ZeldaMajora’sMask.NZSE.state”.
Environ: SYSTEM_DIRECTORY: “/storage/emulated/0/RetroArch/system”.
Environ: SYSTEM_DIRECTORY: “/storage/emulated/0/RetroArch/system”.
Environ: SET_PIXEL_FORMAT: XRGB8888.
[Content]: Loading content file: “/storage/emulated/0/Games/ZeldaMajora’sMask.NZSE.n64”.
Environ: GET_VARIABLE: mupen64plus-rdp-plugin = “gliden64”
Environ: GET_VARIABLE: mupen64plus-rsp-plugin = “hle”
Environ: GET_VARIABLE: mupen64plus-ThreadedRenderer = “False”
Environ: GET_VARIABLE: mupen64plus-BilinearMode = “3point”
Environ: GET_VARIABLE: mupen64plus-HybridFilter = “True”
Environ: GET_VARIABLE: mupen64plus-DitheringPattern = “False”
Environ: GET_VARIABLE: mupen64plus-DitheringQuantization = “False”
Environ: GET_VARIABLE: mupen64plus-RDRAMImageDitheringMode = “False”
Environ: GET_VARIABLE: mupen64plus-FXAA = “0”
Environ: GET_VARIABLE: mupen64plus-MultiSampling = “0”
Environ: GET_VARIABLE: mupen64plus-FrameDuping = “False”
Environ: GET_VARIABLE: mupen64plus-Framerate = “Original”
Environ: GET_VARIABLE: mupen64plus-virefresh = “Auto”
Environ: GET_VARIABLE: mupen64plus-EnableLODEmulation = “True”
Environ: GET_VARIABLE: mupen64plus-EnableFBEmulation = “True”
Environ: GET_VARIABLE: mupen64plus-EnableN64DepthCompare - Invalid value.
Environ: GET_VARIABLE: mupen64plus-EnableCopyColorToRDRAM = “Async”
Environ: GET_VARIABLE: mupen64plus-EnableCopyDepthToRDRAM = “Software”
Environ: GET_VARIABLE: mupen64plus-EnableHWLighting = “False”
Environ: GET_VARIABLE: mupen64plus-CorrectTexrectCoords = “Off”
Environ: GET_VARIABLE: mupen64plus-EnableTexCoordBounds = “False”
Environ: GET_VARIABLE: mupen64plus-EnableInaccurateTextureCoordinates = “False”
Environ: GET_VARIABLE: mupen64plus-BackgroundMode = “OnePiece”
Environ: GET_VARIABLE: mupen64plus-EnableNativeResTexrects = “Disabled”
Environ: GET_VARIABLE: mupen64plus-txFilterMode = “None”
Environ: GET_VARIABLE: mupen64plus-txEnhancementMode = “None”
Environ: GET_VARIABLE: mupen64plus-txFilterIgnoreBG = “True”
Environ: GET_VARIABLE: mupen64plus-txHiresEnable = “False”
Environ: GET_VARIABLE: mupen64plus-txCacheCompression = “True”
Environ: GET_VARIABLE: mupen64plus-txHiresFullAlphaChannel = “False”
Environ: GET_VARIABLE: mupen64plus-MaxHiResTxVramLimit = “0”
Environ: GET_VARIABLE: mupen64plus-MaxTxCacheSize = “8000”
Environ: GET_VARIABLE: mupen64plus-EnableLegacyBlending = “True”
Environ: GET_VARIABLE: mupen64plus-EnableFragmentDepthWrite = “False”
Environ: GET_VARIABLE: mupen64plus-EnableShadersStorage - Invalid value.
Environ: GET_VARIABLE: mupen64plus-EnableTextureCache = “True”
Environ: GET_VARIABLE: mupen64plus-EnableEnhancedTextureStorage = “False”
Environ: GET_VARIABLE: mupen64plus-EnableEnhancedHighResStorage = “False”
Environ: GET_VARIABLE: mupen64plus-EnableHiResAltCRC = “False”
Environ: GET_VARIABLE: mupen64plus-EnableCopyAuxToRDRAM = “False”
Environ: GET_VARIABLE: mupen64plus-GLideN64IniBehaviour = “late”
Environ: GET_VARIABLE: mupen64plus-cpucore = “dynamic_recompiler”
Environ: GET_VARIABLE: mupen64plus-aspect = “4:3”
Environ: GET_VARIABLE: mupen64plus-EnableNativeResFactor = “1”
Environ: GET_VARIABLE: mupen64plus-43screensize = “320x240”
Environ: GET_VARIABLE: mupen64plus-astick-deadzone = “15”
Environ: GET_VARIABLE: mupen64plus-astick-sensitivity = “100”
Environ: GET_VARIABLE: mupen64plus-CountPerOp = “0”
Environ: GET_VARIABLE: mupen64plus-CountPerOpDenomPot = “0”
Environ: GET_VARIABLE: mupen64plus-r-cbutton = “C1”
Environ: GET_VARIABLE: mupen64plus-l-cbutton = “C2”
Environ: GET_VARIABLE: mupen64plus-d-cbutton = “C3”
Environ: GET_VARIABLE: mupen64plus-u-cbutton = “C4”
Environ: GET_VARIABLE: mupen64plus-EnableOverscan = “Enabled”
Environ: GET_VARIABLE: mupen64plus-OverscanTop = “0”
Environ: GET_VARIABLE: mupen64plus-OverscanLeft = “0”
Environ: GET_VARIABLE: mupen64plus-OverscanRight = “0”
Environ: GET_VARIABLE: mupen64plus-OverscanBottom = “0”
Environ: GET_VARIABLE: mupen64plus-alt-map = “False”
Environ: GET_VARIABLE: mupen64plus-ForceDisableExtraMem = “False”
Environ: GET_VARIABLE: mupen64plus-IgnoreTLBExceptions = “False”
Environ: GET_VARIABLE: mupen64plus-pak1 = “rumble”
Environ: GET_VARIABLE: mupen64plus-pak2 = “none”
Environ: GET_VARIABLE: mupen64plus-pak3 = “none”
Environ: GET_VARIABLE: mupen64plus-pak4 = “none”
Environ: GET_VARIABLE: mupen64plus-rdp-plugin = “gliden64”
Environ: SET_HW_RENDER, context type: gl.
Requesting OpenGLES3 context.
Reached end of SET_HW_RENDER.
mupen64plus: Using full mem base
Environ: SYSTEM_DIRECTORY: “/storage/emulated/0/RetroArch/system”.
mupen64plus: [EmuThread] M64CMD_ROM_OPEN
mupen64plus: Goodname: Legend of Zelda, The - Majora’s Mask (U) [!]
mupen64plus: Name: ZELDA MAJORA’S MASK
mupen64plus: MD5: 2A0A8ACB61538235BC1094D297FB6556
mupen64plus: CRC: 5354631C 03A2DEF0
mupen64plus: Imagetype: .z64 (native)
mupen64plus: Rom size: 33554432 bytes (or 32 Mb or 256 Megabits)
mupen64plus: ClockRate = F
mupen64plus: Version: 144B
mupen64plus: Manufacturer: Nintendo
mupen64plus: Cartridge_ID: 535A
mupen64plus: Country: USA
mupen64plus: PC = 80080000
mupen64plus: Save type: 3
mupen64plus: [EmuThread] M64CMD_ROM_GET_HEADER
[Replay]: Found last replay slot: #0
[Core]: Version of libretro API: 1, Compiled against API: 1
[Audio]: Set audio input rate to: 44100.00 Hz.
[Video]: Set video size to: 960x720.
[Video]: Using HW render, OpenGL driver forced.
[Video]: “gl” saved as cached driver.
Android EGL: GLES version = 3.
[EGL] Falling back to eglGetDisplay
[EGL]: EGL version: 1.4
[GL]: Found GL context: “egl_android”.
[GL]: Detecting screen resolution: 0x0.
[EGL]: Current context: 0x7879ace900.
[GL]: Vendor: ARM, Renderer: Mali-G77 MC9.
[GL]: Version: OpenGL ES 3.2 v1.r32p1-01eac0.31c54ff74a1c2d286066cae461e0cd2e.
[GL]: Using resolution 1536x2560.
[GL]: Default shader backend found: glsl.
[Shader driver]: Using GLSL shader backend.
[GL]: Stock GLSL shaders will be used.
[GLSL]: Found GLSL vertex shader.
[GLSL]: Found GLSL fragment shader.
[GLSL]: Linking GLSL program.
[GLSL]: Found GLSL vertex shader.
[GLSL]: Found GLSL fragment shader.
[GLSL]: Linking GLSL program.
[GLSL]: Found GLSL vertex shader.
[GLSL]: Found GLSL fragment shader.
[GLSL]: Linking GLSL program.
[GL]: Using 1 textures.
[GL]: Loaded 1 program(s).
[GL]: Initializing HW render (512x512).
[GL]: Max texture size: 16383 px, renderbuffer size: 16383 px.
[GL]: Supports FBO (render-to-texture).
[Joypad]: Found joypad driver: “android”.
[Video]: Found display server: “android”.
mupen64plus: context_reset()
RetroPad, Port 1, Button “B (bottom)” => “A Button (C3)”
RetroPad, Port 1, Button “Y (left)” => “B Button (C2)”
RetroPad, Port 1, Button “Start” => “Start”
RetroPad, Port 1, Button “D-Pad Up” => “D-Pad Up”
RetroPad, Port 1, Button “D-Pad Down” => “D-Pad Down”
RetroPad, Port 1, Button “D-Pad Left” => “D-Pad Left”
RetroPad, Port 1, Button “D-Pad Right” => “D-Pad Right”
RetroPad, Port 1, Button “A (right)” => “(C1)”
RetroPad, Port 1, Button “X (up)” => “(C4)”
RetroPad, Port 1, Button “L” => “L Shoulder”
RetroPad, Port 1, Button “R” => “R Shoulder”
RetroPad, Port 1, Button “L2” => “Z Trigger”
RetroPad, Port 1, Button “R2” => “C Buttons Mode”
RetroPad, Port 2, Button “B (bottom)” => “A Button (C3)”
RetroPad, Port 2, Button “Y (left)” => “B Button (C2)”
RetroPad, Port 2, Button “Start” => “Start”
RetroPad, Port 2, Button “D-Pad Up” => “D-Pad Up”
RetroPad, Port 2, Button “D-Pad Down” => “D-Pad Down”
RetroPad, Port 2, Button “D-Pad Left” => “D-Pad Left”
RetroPad, Port 2, Button “D-Pad Right” => “D-Pad Right”
RetroPad, Port 2, Button “A (right)” => “(C1)”
RetroPad, Port 2, Button “X (up)” => “(C4)”
RetroPad, Port 2, Button “L” => “L Shoulder”
RetroPad, Port 2, Button “R” => “R Shoulder”
RetroPad, Port 2, Button “L2” => “Z Trigger”
RetroPad, Port 2, Button “R2” => “C Buttons Mode”
RetroPad, Port 3, Button “B (bottom)” => “A Button (C3)”
RetroPad, Port 3, Button “Y (left)” => “B Button (C2)”
RetroPad, Port 3, Button “Start” => “Start”
RetroPad, Port 3, Button “D-Pad Up” => “D-Pad Up”
RetroPad, Port 3, Button “D-Pad Down” => “D-Pad Down”
RetroPad, Port 3, Button “D-Pad Left” => “D-Pad Left”
RetroPad, Port 3, Button “D-Pad Right” => “D-Pad Right”
RetroPad, Port 3, Button “A (right)” => “(C1)”
RetroPad, Port 3, Button “X (up)” => “(C4)”
RetroPad, Port 3, Button “L” => “L Shoulder”
RetroPad, Port 3, Button “R” => “R Shoulder”
RetroPad, Port 3, Button “L2” => “Z Trigger”
RetroPad, Port 3, Button “R2” => “C Buttons Mode”
RetroPad, Port 4, Button “B (bottom)” => “A Button (C3)”
RetroPad, Port 4, Button “Y (left)” => “B Button (C2)”
RetroPad, Port 4, Button “Start” => “Start”
RetroPad, Port 4, Button “D-Pad Up” => “D-Pad Up”
RetroPad, Port 4, Button “D-Pad Down” => “D-Pad Down”
RetroPad, Port 4, Button “D-Pad Left” => “D-Pad Left”
RetroPad, Port 4, Button “D-Pad Right” => “D-Pad Right”
RetroPad, Port 4, Button “A (right)” => “(C1)”
RetroPad, Port 4, Button “X (up)” => “(C4)”
RetroPad, Port 4, Button “L” => “L Shoulder”
RetroPad, Port 4, Button “R” => “R Shoulder”
RetroPad, Port 4, Button “L2” => “Z Trigger”
RetroPad, Port 4, Button “R2” => “C Buttons Mode”
[OpenSL]: Requested audio latency: 128 ms.
[OpenSL]: Setting audio latency: Block size = 4096, Blocks = 6, Total = 24576 …
[Display]: Found display driver: “gl”.
Subsystem ID: 0
Special game type: N64 Disk Drive
Ident: ndd
ID: 1
Content:
Disk (required)
Cartridge (required)
Subsystem ID: 1
Special game type: N64 Transferpak
Ident: gb
ID: 2
Content:
Gameboy RAM (required)
Gameboy ROM (required)
Cartridge (required)
Subsystems: 2
[Playlist]: Loading history file: “/storage/emulated/0/Android/data/com.retroarch/files/content_history.lpl”.
[Playlist]: Loading history file: “/storage/emulated/0/Android/data/com.retroarch/files/content_music_history.lpl”.
[Playlist]: Loading history file: “/storage/emulated/0/Android/data/com.retroarch/files/content_image_history.lpl”.
[Playlist]: Loading favorites file: “/storage/emulated/0/Android/data/com.retroarch/files/content_favorites.lpl”.
[Playlist]: Written to playlist file: “/storage/emulated/0/Android/data/com.retroarch/files/content_history.lpl”.
mupen64plus: [EmuThread] M64CMD_EXECUTE
Environ: SYSTEM_DIRECTORY: “/storage/emulated/0/RetroArch/system”.
mupen64plus: Game controller 0 (Standard controller) has a Rumble pak plugged in
mupen64plus: Game controller 1 (Standard controller) has nothing plugged in
mupen64plus: Game controller 2 (Standard controller) has nothing plugged in
mupen64plus: Game controller 3 (Standard controller) has nothing plugged in
mupen64plus: Using CIC type X105
Environ: SYSTEM_DIRECTORY: “/storage/emulated/0/RetroArch/system”.
Environ: SYSTEM_DIRECTORY: “/storage/emulated/0/RetroArch/system”.
Environ: SYSTEM_DIRECTORY: “/storage/emulated/0/RetroArch/system”.
Environ: SYSTEM_DIRECTORY: “/storage/emulated/0/RetroArch/system”.
Environ: SYSTEM_DIRECTORY: “/storage/emulated/0/RetroArch/system”.
mupen64plus: Initializing 4 RDRAM modules for a total of 8 MB
mupen64plus: Starting R4300 emulator: Dynamic Recompiler
mupen64plus: Init new dynarec
[Android]: Resizing (1536 x 2560) -> (2560 x 1536).