BinBashBanana / webretro

RetroArch in your browser
https://binbashbanana.github.io/webretro/
MIT License
249 stars 347 forks source link

This happens when ever I start on safari #45

Open MrSnailman opened 1 year ago

MrSnailman commented 1 year ago

it says cannot push null or empty core path this is on safari mac and prolly says the same thing on safari mobile then it just never loads

[Log] LS: injection -> https://snailygames.netlify.app/games/loz.html (inject.js, line 3)
[Log] LS: logging -> {"url":"https://snailygames.netlify.app/games/loz.html","tabId":3.445920203844066} (inject.js, line 22)
[Error] SyntaxError: Unexpected token '<'
    (anonymous function) (block_screen.html:1)
[Log] Got core: nestopia (base.js, line 429)
[Log] Succesfully fetched ROM from https://snailygames.netlify.app/webretro/roms/loz.nes (base.js, line 429)
[Log] WASM ready (base.js, line 429)
[Log] Starting bundle fetch (base.js, line 429)
[Log] Finished bundle fetch in 0.4 seconds, 0 errors (base.js, line 429)
[Log] Initializing with 128.02 KiB of data (base.js, line 429)
[Log] Calling main... (base.js, line 429)
[Log] stderr: [INFO] === Build ======================================= (base.js, line 429)
[Log] stderr: [INFO] Capabilities:  (base.js, line 429)
[Log] stderr: [INFO] Built: Jul 16 2022 (base.js, line 429)
[Log] stderr: [INFO] Version: 1.9.0 (base.js, line 429)
[Log] stderr: [INFO] ================================================= (base.js, line 429)
[Log] stderr: [INFO] [Input]: Found input driver: "rwebinput". (base.js, line 429)
[Log] stderr: [INFO] [Overrides]: No core-specific overrides found at "/home/web_user/retroarch/userdata/config/Nestopia/Nestopia.cfg". (base.js, line 429)
[Log] stderr: [INFO] [Overrides]: No content-dir-specific overrides found at "/home/web_user/retroarch/userdata/config/Nestopia/rom.cfg". (base.js, line 429)
[Log] stderr: [INFO] [Overrides]: No game-specific overrides found at "/home/web_user/retroarch/userdata/config/Nestopia/rom.cfg". (base.js, line 429)
[Log] stderr: [INFO] [Environ]: GET_CORE_OPTIONS_VERSION. (base.js, line 429)
[Log] stderr: [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_INTL. (base.js, line 429)
[Log] stderr: [INFO] [Environ]: SET_CONTROLLER_INFO. (base.js, line 429)
[Log] stderr: [INFO] [Remaps]: Remap directory: "/home/web_user/retroarch/userdata/config/remaps". (base.js, line 429)
[Log] stderr: [INFO] [Overrides]: Redirecting save file to "/home/web_user/retroarch/userdata/saves/rom.srm". (base.js, line 429)
[Log] stderr: [INFO] [Overrides]: Redirecting save state to "/home/web_user/retroarch/userdata/states/rom.state". (base.js, line 429)
[Log] stderr: [INFO] [Environ]: GET_LOG_INTERFACE. (base.js, line 429)
[Log] stderr: [INFO] [Environ]: PERFORMANCE_LEVEL: 6. (base.js, line 429)
[Log] stderr: [INFO] [CONTENT LOAD]: Loading content file: /rom/rom.nes. (base.js, line 429)
[Log] stderr: [INFO] Did not find a valid content patch. (base.js, line 429)
[Log] stderr: [INFO] [Environ]: SET_INPUT_DESCRIPTORS: (base.js, line 429)
[Log] stderr: [INFO] [Environ]: SYSTEM_DIRECTORY: "/home/web_user/retroarch/userdata/system". (base.js, line 429)
[Log] stderr: [libretro INFO] Custom palette path: /home/web_user/retroarch/userdata/system/custom.pal (base.js, line 429)
[Log] stderr: [libretro INFO] custom.pal not found in system directory. (base.js, line 429)
[Log] stderr: [INFO] [Environ]: SET_PIXEL_FORMAT: XRGB8888. (base.js, line 429)
[Log] stderr: [INFO] [Environ]: GET_SAVE_DIRECTORY. (base.js, line 429)
[Log] stderr: [INFO] [Environ]: SET_GEOMETRY: 256x224, aspect: 1.306. (base.js, line 429)
[Log] stderr: [INFO] [Environ]: SET_GEOMETRY. (base.js, line 429)
[Log] stderr: [libretro INFO] [Nestopia]: Machine is NTSC. (base.js, line 429)
[Log] stderr: [INFO] [SRAM]: Skipping SRAM load.. (base.js, line 429)
[Log] stderr: [INFO] Version of libretro API: 1 (base.js, line 429)
[Log] stderr: [INFO] Compiled against API: 1 (base.js, line 429)
[Log] stderr: [INFO] [Cheats]: Load game-specific cheatfile: /home/web_user/retroarch/userdata/cheats/Nestopia/rom.cht (base.js, line 429)
[Log] stderr: [INFO] [Audio]: Set audio input rate to: 48000.00 Hz. (base.js, line 429)
[Log] stderr: [INFO] [Video]: Video @ 879x672 (base.js, line 429)
[Log] stderr: [INFO] [EGL] Falling back to eglGetDisplay (base.js, line 429)
[Log] stderr: [INFO] [EGL]: EGL version: 1.4 (base.js, line 429)
[Log] stderr: [INFO] [EGL]: Current context: 0xf234. (base.js, line 429)
[Log] stderr: [INFO] [EMSCRIPTEN/EGL]: Dimensions: 800x555 (base.js, line 429)
[Log] stderr: [INFO] [GL]: Found GL context: egl_emscripten (base.js, line 429)
[Log] stderr: [INFO] [GL]: Detecting screen resolution 800x555. (base.js, line 429)
[Log] stderr: [INFO] [GL]: Vendor: WebKit, Renderer: WebKit WebGL. (base.js, line 429)
[Log] stderr: [INFO] [GL]: Version: OpenGL ES 2.0 (WebGL 1.0). (base.js, line 429)
[Log] stderr: [WARN] [GL]: GLES implementation does not have BGRA8888 extension. (base.js, line 429)
[Log] stderr: [GL]: 32-bit path will require conversion. (base.js, line 429)
[Log] stderr: [INFO] [GL]: Using resolution 800x555 (base.js, line 429)
[Log] stderr: [INFO] [GL]: Default shader backend found: glsl. (base.js, line 429)
[Log] stderr: [INFO] [Shader driver]: Using GLSL shader backend. (base.js, line 429)
[Log] stderr: [WARN] [GL]: Stock GLSL shaders will be used. (base.js, line 429)
[Log] stderr: [INFO] [GLSL]: Found GLSL vertex shader. (base.js, line 429)
[Log] stderr: [INFO] [GLSL]: Found GLSL fragment shader. (base.js, line 429)
[Log] stderr: [INFO] [GLSL]: Linking GLSL program. (base.js, line 429)
[Log] stderr: [INFO] [GLSL]: Found GLSL vertex shader. (base.js, line 429)
[Log] stderr: [INFO] [GLSL]: Found GLSL fragment shader. (base.js, line 429)
[Log] stderr: [INFO] [GLSL]: Linking GLSL program. (base.js, line 429)
[Log] stderr: [INFO] [GLSL]: Found GLSL vertex shader. (base.js, line 429)
[Log] stderr: [INFO] [GLSL]: Found GLSL fragment shader. (base.js, line 429)
[Log] stderr: [INFO] [GLSL]: Linking GLSL program. (base.js, line 429)
[Log] stderr: [INFO] [GL]: Using 4 textures. (base.js, line 429)
[Log] stderr: [INFO] [GL]: Loaded 1 program(s). (base.js, line 429)
[Log] stderr: [INFO] [Joypad]: Found joypad driver: "rwebpad". (base.js, line 429)
[Log] stderr: [INFO] [Font]: Using font rendering backend: bitmap. (base.js, line 429)
[Log] stderr: [INFO] [Video]: Found display server: null (base.js, line 429)
[Log] stderr: [INFO] [Display]: Found display driver: "gl". (base.js, line 429)
[Log] stderr: [INFO] [Font]: Using font rendering backend: stb. (base.js, line 429, x3)
[Log] stderr: [INFO] [Font]: Using font rendering backend: stb. (base.js, line 429, x6)
[Log] stderr: [INFO] [MIDI]: Input disabled. (base.js, line 429)
[Log] stderr: [INFO] [MIDI]: Output disabled. (base.js, line 429)
[Log] stderr: [INFO] [MIDI]: Initialized "null" driver. (base.js, line 429)
[Log] stderr: [INFO] [Playlist]: Loading history file: [/home/web_user/retroarch/userdata/content_history.lpl]. (base.js, line 429)
[Log] stderr: [INFO] [Playlist]: Loading history file: [/home/web_user/retroarch/userdata/content_music_history.lpl]. (base.js, line 429)
[Log] stderr: [INFO] [Playlist]: Loading favorites file: [/home/web_user/retroarch/userdata/content_favorites.lpl]. (base.js, line 429)
[Log] stderr: [INFO] [GL]: VSync => ON (base.js, line 429)
[Log] stderr: [ERROR] cannot push NULL or empty core path into the playlist. (base.js, line 429)
[Log] Main completed... (base.js, line 429)
BinBashBanana commented 1 year ago
[Log] stderr: [ERROR] cannot push NULL or empty core path into the playlist. (base.js, line 429)

This error is normal, it doesn't have anything to do with the core not loading. As for safari, it is lame and is not supported. Please use chrome or another chromium-based browser.

MrSnailman commented 1 year ago

does that on ios chrome too

BinBashBanana commented 1 year ago

Can you send the full console output?

MrSnailman commented 1 year ago

does the same thing that is the full console out put

BinBashBanana commented 1 year ago

There is nothing out of place in the log, it looks like it should work... I don't know what's going on, sorry.

MrSnailman commented 1 year ago

says the same thing on chrome [Log] stderr: [ERROR] cannot push NULL or empty core path into the playlist. (base.js, line 429)

ethanaobrien commented 1 year ago

@MrSnailman Does the game fail to start with this error? (Does it still load to where you can play it?) Does your rom work on other emulators?

MrSnailman commented 1 year ago

@MrSnailman Does the game fail to start with this error? (Does it still load to where you can play it?) Does your rom work on other emulators?

it doesnt load its just stuck on the a black screen after loading

ethanaobrien commented 1 year ago

Do all of the cores do this or just the nestopia core

MrSnailman commented 1 year ago

Do all of the cores do this or just the nestopia core

all the cores

BinBashBanana commented 1 year ago

This is strange, #31 seems to be a similar (not the exact same) problem

ethanaobrien commented 1 year ago

I actually noticed this on my iPhhone too. I can get you a full log of the console if you'd like (I have a Mac to debug it with)

Do you have the retroarch menu disabled at all?

On my emulator when I try to play it on iPhone these are the results I get: on any cores that use gles 3 fail to initiate the wasm (I can probably debug that and let you know) and on any other cores it loads the retroarch menu, I'm not sure what the bug is there because the same case works on other devices.

Let me know if you need any logs or anything

BinBashBanana commented 1 year ago

Logs would be great, thank you. I should mention too that everything works fine on my android phone (google chrome).

ethanaobrien commented 1 year ago

I'll try to get you those logs this week. Sorry if it's a little delayed.

And yeah, I have an android emulator I use for testing and android seems to work fine, it's probably some dumb safari thing

arleypadua commented 1 week ago

I did get the same issue, but in a slightly different context while trying to add desmume core (compiled with emscripten and the patches provided in this repository)

stderr: [INFO] === Build =======================================
stderr: [INFO] Capabilities: 
stderr: [INFO] Built: Aug 28 2024
stderr: [INFO] Version: 1.9.0
stderr: [INFO] =================================================
stderr: [INFO] [Input]: Found input driver: "rwebinput".
stderr: [INFO] [Overrides]: No core-specific overrides found at "/home/web_user/retroarch/userdata/config/DeSmuME/DeSmuME.cfg".
stderr: [INFO] [Overrides]: No content-dir-specific overrides found at "/home/web_user/retroarch/userdata/config/DeSmuME/rom.cfg".
stderr: [INFO] [Overrides]: No game-specific overrides found at "/home/web_user/retroarch/userdata/config/DeSmuME/rom.cfg".
stderr: [INFO] [Environ]: GET_CORE_OPTIONS_VERSION.
stderr: [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_INTL.
stderr: [INFO] Core requested VFS version >= v2, providing v3
stderr: [INFO] [Remaps]: Remap directory: "/home/web_user/retroarch/userdata/config/remaps".
stderr: [INFO] [Overrides]: Redirecting save file to "/home/web_user/retroarch/userdata/saves/rom.srm".
stderr: [INFO] [Overrides]: Redirecting save state to "/home/web_user/retroarch/userdata/states/rom.state".
stderr: [INFO] [Environ]: GET_LOG_INTERFACE.
stderr: [INFO] [Environ]: GET_USERNAME: "".
stdout: Microphone successfully inited.
stdout: DeSmuME 0.9.12 git#0
stdout: SoftRasterizer: Running directly on the emulation thread. (Multithreading disabled.)
stderr: [libretro INFO] Setting 16-bit color depth.
stderr: [INFO] [Environ]: SET_PIXEL_FORMAT: RGB565.
stderr: [INFO] [Environ]: PERFORMANCE_LEVEL: 15.
stderr: [INFO] [CONTENT LOAD]: Content loading skipped. Implementation will load it on its own.
stderr: [INFO] [Environ]: SET_INPUT_DESCRIPTORS:
stderr: [INFO] [Environ]: GET_SAVE_DIRECTORY.
stdout: 
stdout: ROM game code: CSOP
stdout: ROM crc: 7729C819
stdout: ROM serial: NTR-CSOP-EUR
stdout: ROM chipID: 000007C2
stdout: ROM internal name: SOKOBAN_DS
stdout: ROM developer: Unknown
stdout: 
stdout: Slot1 auto-selected device type: Retail MC+ROM
stdout: Slot2 auto-selected device type: None (0xFF)
stdout: BackupDevice: DeSmuME .dsv save file not found. Trying to load a .sav file.
stdout: Already decrypted.
stdout: WIFI: Emulation level is OFF.
stderr: [INFO] [SRAM]: Skipping SRAM load..
stderr: [INFO] Version of libretro API: 1
stderr: [INFO] Compiled against API: 1
stderr: [INFO] [Cheats]: Load game-specific cheatfile: /home/web_user/retroarch/userdata/cheats/DeSmuME/rom.cht
stderr: [INFO] [Audio]: Set audio input rate to: 44228.19 Hz.
stderr: [INFO] [Video]: Video @ 768x1152
stderr: [INFO] [EGL] Falling back to eglGetDisplay
stderr: [INFO] [EGL]: EGL version: 1.4
stderr: [INFO] [EGL]: Current context: 0xf234.
stderr: [INFO] [EMSCRIPTEN/EGL]: Dimensions: 2045x547
stderr: [INFO] [GL]: Found GL context: egl_emscripten
stderr: [INFO] [GL]: Detecting screen resolution 2045x547.
stderr: [INFO] [GL]: Vendor: WebKit, Renderer: WebKit WebGL.
stderr: [INFO] [GL]: Version: OpenGL ES 2.0 (WebGL 1.0 (OpenGL ES 2.0 Chromium)).
stderr: [WARN] [GL]: GLES implementation does not have BGRA8888 extension.
stderr: [GL]: 32-bit path will require conversion.
stderr: [INFO] [GL]: Using resolution 2045x547
stderr: [INFO] [GL]: Default shader backend found: glsl.
stderr: [INFO] [Shader driver]: Using GLSL shader backend.
stderr: [WARN] [GL]: Stock GLSL shaders will be used.
stderr: [INFO] [GLSL]: Found GLSL vertex shader.
stderr: [INFO] [GLSL]: Found GLSL fragment shader.
stderr: [INFO] [GLSL]: Linking GLSL program.
stderr: [INFO] [GLSL]: Found GLSL vertex shader.
stderr: [INFO] [GLSL]: Found GLSL fragment shader.
stderr: [INFO] [GLSL]: Linking GLSL program.
stderr: [INFO] [GLSL]: Found GLSL vertex shader.
stderr: [INFO] [GLSL]: Found GLSL fragment shader.
stderr: [INFO] [GLSL]: Linking GLSL program.
stderr: [INFO] [GL]: Using 4 textures.
stderr: [INFO] [GL]: Loaded 1 program(s).
stderr: [INFO] [Joypad]: Found joypad driver: "rwebpad".
stderr: [INFO] [Font]: Using font rendering backend: bitmap.
stderr: [INFO] [Video]: Found display server: null
stderr: [INFO] [Display]: Found display driver: "gl".
stderr: [INFO] [Font]: Using font rendering backend: stb.
stderr: [INFO] [Font]: Using font rendering backend: stb.
stderr: [INFO] [Font]: Using font rendering backend: stb.
stderr: [INFO] [Font]: Using font rendering backend: stb.
stderr: [INFO] [Font]: Using font rendering backend: stb.
stderr: [INFO] [Font]: Using font rendering backend: stb.
stderr: [INFO] [Font]: Using font rendering backend: stb.
stderr: [INFO] [Font]: Using font rendering backend: stb.
stderr: [INFO] [Font]: Using font rendering backend: stb.
stderr: [INFO] [MIDI]: Input disabled.
stderr: [INFO] [MIDI]: Output disabled.
stderr: [INFO] [MIDI]: Initialized "null" driver.
stderr: [INFO] [Playlist]: Loading history file: [/home/web_user/retroarch/userdata/content_history.lpl].
stderr: [INFO] [Playlist]: Loading history file: [/home/web_user/retroarch/userdata/content_music_history.lpl].
stderr: [INFO] [Playlist]: Loading favorites file: [/home/web_user/retroarch/userdata/content_favorites.lpl].
stderr: [INFO] [GL]: VSync => ON
stderr: [ERROR] cannot push NULL or empty core path into the playlist.

After loading any ROM, I just get a black canvas element and no game is shown, this works in other web-based emulators though, like https://github.com/Namaneo/Junie