Compressed ROMs produce different CRC and different game name for Netplay
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Description
Balloon_fight.7z will be listed as Balloon_fight.nes (0a1cac62) in netplay. The same ROM uncompressed (Balloon_fight.nes) will be listed as Balloon_fight (fd1bc987) in netplay.
When users try to connect to Balloon_fight.nes netplay game, an error message says that the filename and CRC do not match. Both uncompressed files are the same. Also the name Balloon_fight.nes and Balloon_fight to some users may not realize that it is different because the game named Balloon_fight will contain a Balloon_fight.nes file.
Expected behavior
Either the hash and name should match the uncompressed file. Then netplay would work for systems that decompress it on the fly.
Or the game name should also include the compressed extension (.7z). Users would know to compress their copy to match a user they are trying to connect with. It might be possible to apply different compression settings that the compression may also cause a different CRC. But they would need to contact the remote player to get the same version. This can be difficult on systems such as SNES mini using Hakchi where the ROMs are automatically compressed.
Or add to FAQ and release notes documentation that on the fly decompression netplay is not supported with decompressed original copy. Yes it says same content but decompressed content is the same.
Actual behavior
User A with Balloon_fight.7z with same Balloon_fight.nes file cannot netplay with user B with Balloon_fight.nes.
Steps to reproduce the bug
System A Compress single ROM as .7z on one system start netplay host.
System B use original ROM try to connect to host on netplay.
System B will get error message bad game name or CRC.
Version/Commit
RetroArch 1.8.4
Environment information
SNES classic
Linux
Windows
Work around
This section was added to help users use RetroArch in its current state.
Assume netplay game names ending with a file extension are compressed. Ask other player for the compressed version.
Assume netplay game names with no extension are uncompressed.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the mismatch using the compressed and uncompressed Balloon_fight.nes cases described in the issue, then trace the netplay handling of game names, extensions, and CRCs. Confirm with maintainers which expected behavior is wanted; completion should make same-content compressed and uncompressed copies interoperable, or document the supported limitation and matching requirements.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100