PCSX2 / pcsx2

PCSX2 - The Playstation 2 Emulator
https://pcsx2.net
GNU General Public License v3.0
11.83k stars 1.63k forks source link

[BUG]: PCSX2 will crash if ROMs filename was including "%" in the name when make gamelist. #12011

Open nassau-tk opened 2 hours ago

nassau-tk commented 2 hours ago

Describe the Bug

PCSX2 will crash if ROMs filename was including "%" in the name when make gamelist.

If not refresh the romlist then it will not happen crash. So, Maybe, The issue will not happen older ver.

It may occur with other symbols, but % definitely occurs.

This seems to be the cause of some of the crashing issues seen here and there on the forums.

Reproduction Steps

The error condition is that there is a % immediately after the number in the rom name.

Like below...

abcd 100% xyz .chd <== Crash abcd 1%00 xyz .chd <== Crash abcd 100 % xyz .chd <== Crash (include a space)

abc %100 xyz .chd <== Not Crash

Expected Behavior

Correct the file name rules to avoid errors.

At the same time, if possible, I would be happy if the file format of gamelist.cache became UTF-8. Because 2-byte characters become garbled.

PCSX2 Revision

v2.3.17

Operating System

Windows 10 (64bit)

If Linux - Specify Distro

No response

CPU

Ryzen 7 5800X

GPU

RTX3060

GS Settings

No response

Emulation Settings

No response

GS Window Screenshots

No response

Logs & Dumps

No response

nassau-tk commented 2 hours ago

And, This crash will logged below.

ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFF6FA06F80) 00007FFF6FA06F80 (ucrtbase): (filename not available): wcsnlen ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFF6F9F245A) 00007FFF6F9F245A (ucrtbase): (filename not available): strtol ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFF6F9F114A) 00007FFF6F9F114A (ucrtbase): (filename not available): wcstol ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFF6F9F0D9E) 00007FFF6F9F0D9E (ucrtbase): (filename not available): wcstol ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFF6F9F0BFB) 00007FFF6F9F0BFB (ucrtbase): (filename not available): wcstol ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF633F9FCD5) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF633F9FCD5) 00007FF633F9FCD5 (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF633F8B382) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF633F8B382) 00007FF633F8B382 (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF6336B7706) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF6336B7706) 00007FF6336B7706 (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF6336B579F) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF6336B579F) 00007FF6336B579F (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF633CC266A) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF633CC266A) 00007FF633CC266A (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFED2FFF8B0) 00007FFED2FFF8B0 (Qt6Core): (filename not available): QThread::start ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFF70307374) 00007FFF70307374 (KERNEL32): (filename not available): BaseThreadInitThunk ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFF7217CC91) 00007FFF7217CC91 (ntdll): (filename not available): RtlUserThreadStart