libretro / libretro/RetroArch

User-unfriendly notification about missing mandatory files (looks like app crash in some cases)

Open
#11,665 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

user interface
Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

First and foremost consider this:

  • Only RetroArch bugs should be filed here. Not core bugs or game bugs
  • This is not a forum or a help section, this is strictly developer oriented

Yessir.

Description

Regardless of why exactly required files checkup has been failed upon game load attempt, RetroArch will either

  • close silently (if running core+game by shortcut)
  • throw generic exception which doesn't point at issue's cause (if running core+game from RetroArch's main GUI)
Expected behavior

If something's missing - the user is told what exactly is missing.
The app doesn't close itself silently if it managed to detect that some particular thing is missing.
If there are more than one issue detected - all are listed (where possible).
Information given is enough to start pondering next steps to resolve for end users with less than nine years of experience in IT.

Actual behavior

Either crash-like closure or generic error message.
It takes skill and effort to figure out what went wrong.

Steps to reproduce the bug

Case A:
Try to run any Neo-Geo game without Neo-Geo BIOS.
Corresponding log entry: no idea, didn't had logging enabled while I forgot about BIOS. BIOS archives are all over my HDD now (as it was uncertain from where RetroArch loads it - so I sticked'em wherever it could work from), I'm not ready to waste more time cleaning it up just yet.

Case B:
Try to run any Neo-Geo game with mismatching BIOS (or with BIOS with few files missing).
Corresponding log entries:
[libretro INFO] [MAME 2003] Opening ROM file: 000-lo.lo
[libretro ERROR] [MAME 2003] 000-lo.lo WRONG LENGTH (expected: 00010000 found: 00020000)
[libretro ERROR] [MAME 2003] 000-lo.lo WRONG CHECKSUMS:
[libretro ERROR] [MAME 2003] EXPECTED: CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc)
[libretro ERROR] [MAME 2003] FOUND: CRC(5a86cff2) SHA1(5992277debadeb64d1c1c64b0a92d9293eaf7e4a)

Case B.a:
Try to run any Neo-Geo game with perfectly matching perfectly working BIOS - in which sfix.sfx file is named sfix.sfix .
Simply reenaming that file worked in my case. With appropriate error message it wouldn't took THAT much time...

Case C:
Find broken Metal Slug (Neo-Geo) copy for MAME (one in which there are no .bin files, uses .c files instead). Try to run it.
Corresponding log entries:
[libretro INFO] [MAME 2003] Opening ROM file: 201-c2.bin
[libretro ERROR] [MAME 2003] 201-c2.bin NOT FOUND

Case D:
Try to run SEEMINGLY working game copy (Metal Slug 6 for Neo-Geo, in my case) with MAME version which isn't particularily tailored for this game ('03 version, in my case).
Corresponding log entry: [libretro ERROR] [MAME 2003] Driver index counter: 4710. Game driver not found for mslug6!

Bisect Results

No idea. Didn't had this problem in as spectacular manner as now. Had to plow through all use cases listed, one by one.

Version/Commit

You can find this information under Information/System Information

  • RetroArch: 1.9.0
Environment information
  • OS: Windows 10 x64
  • Compiler: -- 'retail' version, not self-built.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the Neo-Geo BIOS and missing-ROM cases described in the issue, then inspect the game-load error path using the reported log messages. The issue names no source files or tests; done means missing files and detected causes are presented instead of a silent close or generic exception, including multiple issues where possible.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.