libretro / libretro/RetroArch

content with unicode name inside a .zip file cannot be loaded on fat32, ntfs and exfat filesystem.

Open
#10,374 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

I am using retroarch on odroid go advance, gkd350h and my cell phone with sdcard.
I find a weird issue that if the content in zip file has unicode in file name(like Chinese filename of gba rom [塞尔达传说-缩小帽.gba] inside a .zip file). cannot be loaded on fat32, ntfs or exfat file system

And after further testing, I find:

  1. This issue appear on all these unit, they all using fat32, ntfs or exfat file system.
  2. The zip file can be load by using other standalone emulator like fba, drastic.
  3. The zip file can be load by retroarch, if it on ext4 file system.

So I assume this is an issue of internal zip implementation of retroarch which not compatible with fat32 and ntfs.

Expected behavior

These file rom should be loaded correctly by using retroarch on fat32 and ntfs file system

Actual behavior

It just failed to open the content.

Steps to reproduce the bug
  1. Unzip the rom file, using GBA for example, let the rom in abc.gba form.
  2. Rename it using unicode like Chinese, 塞尔达传说.gba
  3. Zip it again, and the zip file name is not really matter.
  4. Put it on a EXT file system partition, and load it by retroarch, make sure it works.
  5. Put it on a Fat32 file system partition, and load it again, you will see the failed message.
Bisect Results

When the content in the zip file as unicode in name and on a fat32/ntfs filesystem, it happened all the time.

Version/Commit
  • RetroArch: [version/commit]
    1.8.5
Environment information

Odroid Go Advance: Ubuntu 19.10, Compiler GCC (8.3.0) 64-bit

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 failure with a ZIP containing a Unicode-named GBA ROM on FAT32, NTFS, or exFAT, then compare it with the working ext4 case. Trace RetroArch's internal ZIP-loading path and filesystem handling; done means the same content loads successfully across the reported filesystems without regressing ext4 behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.