Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Black Screen on Startup, Addon cannot find BIOS files #10

Closed
1 of 7 tasks
zach-morris opened this issue Oct 17, 2021 · 1 comment
Closed
1 of 7 tasks

Black Screen on Startup, Addon cannot find BIOS files #10

zach-morris opened this issue Oct 17, 2021 · 1 comment

Comments

@zach-morris
Copy link

Bug report

Describe the bug

Here is a clear and concise description of what the problem is:

The game.libretro.opera core cannot find BIOS files, assuming due to BIOS setting not appropriately being consumed.

RetroArch Behavior

Here is a clear and concise description of what happens in RetroArch with the same core/game:

The game starts, assuming the BIOS is in the right directory and the setting is set.

To Reproduce

Steps to reproduce the behavior:

  1. Attempt to start any 3DO game in game.libretro.opera. BIOS files placed in:
    ``path_to_userdata/addon_data/game.libretro.opera/resources/system```

Note log shows:
AddOnLog: game.libretro.opera: [Opera]: no BIOS ROM found

Note, there's a related issue with these addons in appropriately generating the BIOS setting. See here

I attempted to manually set the BIOS file to a correct value by editing the addon settings.xml file to:

<setting label="30001" type="text" id="opera_bios" default="disabled"/>
<setting label="30002" type="text" id="opera_font" default="disabled"/>

And then entering the following for the userdata settings.xml:
<setting id="opera_bios">Panasonic FZ-1 (U)</setting>

Which mimics what the setting would be if set in Retroarch:
opera_bios = "Panasonic FZ-1 (U)"

Even when forcing this, the BIOS is not found, so something else particular with this core is preventing loading the BIOS file.

Debuglog

The debuglog can be found here:

021-10-17 10:11:53.971 T:510474    INFO <general>: RetroPlayer[PROCESS]: Created process info for macOS
2021-10-17 10:11:53.985 T:510474    INFO <general>: GAME: ------------------------------------
2021-10-17 10:11:53.985 T:510474    INFO <general>: GAME: Loaded DLL for game.libretro.opera
2021-10-17 10:11:53.985 T:510474    INFO <general>: GAME: Client: The 3DO Company - 3DO (Opera) at version 1.0.0.23
2021-10-17 10:11:53.985 T:510474    INFO <general>: GAME: Valid extensions: .bin .chd .cue .iso
2021-10-17 10:11:53.985 T:510474    INFO <general>: GAME: Supports VFS:                  no
2021-10-17 10:11:53.985 T:510474    INFO <general>: GAME: Supports standalone execution: yes
2021-10-17 10:11:53.985 T:510474    INFO <general>: GAME: ------------------------------------
2021-10-17 10:11:53.985 T:510474    INFO <general>: RetroPlayer[PLAYER]: Opening: xxx/userdata/addon_data/plugin.program.iagl/game_cache/Powerslide (USA) (Unl).chd
2021-10-17 10:11:53.987 T:510474   ERROR <general>: AddOnLog: game.libretro.opera: [Opera]: no BIOS ROM found
                                                   
2021-10-17 10:11:53.988 T:510474    INFO <general>: GAME: ---------------------------------------
2021-10-17 10:11:53.988 T:510474    INFO <general>: GAME: Game loop:      true
2021-10-17 10:11:53.988 T:510474    INFO <general>: GAME: FPS:            60.000000
2021-10-17 10:11:53.988 T:510474    INFO <general>: GAME: Sample Rate:    44100.000000
2021-10-17 10:11:53.988 T:510474    INFO <general>: GAME: Region:         NTSC
2021-10-17 10:11:53.988 T:510474    INFO <general>: GAME: Savestate size: 4578203
2021-10-17 10:11:53.988 T:510474    INFO <general>: GAME: ---------------------------------------
2021-10-17 10:11:54.310 T:511228    INFO <general>: RetroPlayer[AUDIO]: Creating audio stream, format = AE_FMT_S16NE, sample rate = 44100, channels = 2
2021-10-17 10:11:54.310 T:511228    INFO <general>: RetroPlayer[RENDER]: Configuring format 0RGB32, nominal 320x240, max 768x576
2021-10-17 10:11:54.313 T:510474    INFO <general>: RetroPlayer[RENDER]: Renderer configured on first frame
2021-10-17 10:11:54.314 T:510474   ERROR <general>: RetroPlayer[RENDER]: Creating renderer for OpenGL
(end of log, black screen)

Screenshots

Here are some links or screenshots to help explain the problem:

N/A

Your Environment

Used Operating system:

  • Android
  • iOS
  • Linux
  • OSX
  • Raspberri-Pi
  • Windows
  • Windows UWP

Operating system version/name:

Kodi version:

Starting Kodi (19.2 (19.2.0) Git:20211006-52c19a0728). Platform: OS X x86 64-bit
Using Release Kodi x64
Kodi compiled 2021-10-06 by Clang 10.0.1 (clang-1001.0.46.4) for OS X x86 64-bit version 10.13 (101300)
Running on Apple Inc. MacBookPro12,1 with OS X 10.16, kernel: Darwin x86 64-bit version 20.6.0

note: Once the issue is made we require you to update it with new information or Kodi versions should that be required.
Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.

@garbear
Copy link
Member

garbear commented Dec 30, 2024

I've been working on getting Opera to run. I've fixed controller input:

The 3DO has daisy-chained controllers, so I fixed two daisy-chain bugs in Kodi:

I then figured out the BIOS problem. Opera does a runtime check (both when it's compiled with the CI script and when it's loaded by Kodi) for BIOS files (and fonts), and when it doesn't find them, it ignores all attempts to load them. So I'm bypassing the runtime check entirely with this patch:

--- a/libretro_core_options.c
+++ b/libretro_core_options.c
@@ -378,6 +378,7 @@ static
 bool
 file_exists_in_system_directory(const char *filename)
 {
+  return true;
   int ret;
   char fullpath[PATH_MAX_LENGTH];
   const char *system_path = NULL;
-- 

As a result, I can now select a BIOS in the settings:

Screenshot 2024-12-30 at 12 34 19 PM

When I select this setting and put panafz10.bin in the system folder of the add-on, it's correctly discovered:

info <general>: AddOnLog: game.libretro.opera: [Opera]: loaded BIOS ROM - panafz10.bin

I can start Opera in standalone mode successfully:

Screenshot 2024-12-30 at 12 43 15 PM

I tried loading a game, and it loaded successfully:

debug <general>: RetroPlayer[PLAYER]: ---------------------------------------
debug <general>: RetroPlayer[PLAYER]: Game tag loaded
debug <general>: RetroPlayer[PLAYER]: URL:
debug <general>: RetroPlayer[PLAYER]: Title: Slayer (USA)
debug <general>: RetroPlayer[PLAYER]: Platform: Panasonic - 3DO Interactive Multiplayer
debug <general>: RetroPlayer[PLAYER]: Genres: RPG, Role playing games
debug <general>: RetroPlayer[PLAYER]: Developer:
debug <general>: RetroPlayer[PLAYER]: Year: 1994
debug <general>: RetroPlayer[PLAYER]: Game Code:
debug <general>: RetroPlayer[PLAYER]: Region:
debug <general>: RetroPlayer[PLAYER]: Publisher: ["Strategic Simulations"]
debug <general>: RetroPlayer[PLAYER]: Format:
debug <general>: RetroPlayer[PLAYER]: Cartridge type:
debug <general>: RetroPlayer[PLAYER]: Game client: game.libretro.opera
debug <general>: RetroPlayer[PLAYER]: ---------------------------------------

Gameplay is choppy but I figured I've made pretty good progress so far so I'm posting the results here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants