Comments (8)
I'm not a fan of breaking standards and creating problems just to work around someone else's poor design.
from ralibretro.
The achievement identification code largely relies on the file extension to determine which hashing algorithm to apply. If the extension isn't recognized the entire file (up to the first 64MB) will be hashed.
from ralibretro.
This is the recommended approach for storing multiple disc by retropie fellas as per https://retropie.org.uk/docs/Playstation-1/
I think recalbox also uses the same "hack" to circumvent the issue
What if there was a name convention like "game name.chd.cd1, game name.chd.cd2 and so forth? This way you could tell if the game is a chd or a bin looking for the prefix...
Another option could be to rely on magic numbers/file header to identify the CHD instead of trusting the file extension. There are a limited number of file formats supported anyway for each emulator so it shouldn't be overkilling....
Can't you just simply acknowledge that whatever is listed on the m3u is a "disk file", disregarding on the file extension and then apply the magic numbers approach just in case you have to decompress a chd to calculate the checksum?
from ralibretro.
m3u files aren't just for CD-ROM/DVDs. PC-88 is known to use it for multiple floppy disk games. We wouldn't want to try to use CD-ROM hashing algorithms on floppy disks.
Using a multi-part extension isn't a great solution as the extension is still "cd1", and the second period is assumed to be part of the game title. We'd still need a case to match "cd1" to check for the secondary extension.
As long as the extensions are standardized (i.e. "cd#"), I guess it could be reasonable to support them using the same logic as the "chd" extension.
from ralibretro.
There's still the potential problem of deciding if the "cd#" file is a "cue", "chd", "iso", "gdi", or "bin" file, so maybe the nested extension is desirable.
from ralibretro.
Most cores also don't support this naming scheme, by the way. It's come up a few times where people want it standardized instead of fixing the root problem in the frontends using this approach.
from ralibretro.
Would putting the chd files in a subdirectory prevent the frontend from processing them? m3u's support both relative and full paths.
from ralibretro.
Would putting the chd files in a subdirectory prevent the frontend from processing them? m3u's support both relative and full paths.
That worked, thanks
from ralibretro.
Related Issues (20)
- Button Pressing & Mappings are broken on Dreamcast (Flycast?) HOT 3
- Add Same CD-i support for Philips CD-i HOT 1
- Add NeoCD for NeoGeo CD Support HOT 1
- Add VICExvic for Vic-20 and VICExplus4 for Commodore PLUS/4 (AKA Commodore 16) HOT 1
- [Suggestion - Submenu for Core List]
- Cheats Options HOT 8
- [Feature Request] Load State Wait Timer HOT 2
- [Feature Request] Accessibility in the Memory Inspector HOT 2
- AVGN Doom VIDEO HOT 2
- RALibretro close itself after reseting the list of codenotes after deleting one HOT 1
- Dolphin support in RALibretro HOT 4
- RAHasher - 1.4.0 - CHD not supported without HAVE_CHD compile flag HOT 8
- [Feature Request] Controller Binding Profiles
- [Feature Request] Add hot key bindings for named save and load state action
- RAHasher - Failing against some CHD titles, either with errors or no output HOT 3
- Building for Arm64? Suggestions of editing Makefile HOT 2
- RAHasher - Some PS2 CHDs failing with "Could not locate primary executable" HOT 1
- Extend filetype support for PPSSPP HOT 2
- N64 Core Crashes when Screenshot is taken/Savestate is loaded. HOT 7
- Add support for Linux, macOS (and potentially other OSes) HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ralibretro.