libretro / libretro/RetroArch

Compressed ROMs produce different CRC and different game name for Netplay

Open
#11,303 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

compressed files netplay
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

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.