Dolphin, the GameCube and Wii emulator - Forums

Full Version: Decentralized settings database, better alternative to compatibility lists and settings tweaking
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

zerothis

Decentralized settings database, better alternative to compatibility lists and settings tweaking

Someone somewhere has perhaps stumbled across an emulator and settings that work for a certain game on their system. They should have the option of automatically sharing this information on a decentralized peer-to-peer network. Emulators could offer the option of automatically accepting settings from this network, and/or provide manual selection to the end-user. Running successfully on certain setting would automatically generate a good rating for it in the database. Users could also manually rate it for graphics, sound, speed, playability, completeness. Instant compatibility and settings lists with minimal effort and no liability for emulator others and maintainers of their official webpages. The P2P could use existing networks and clients, no need to create a new one. All thats required is to establish as standard for how to name the files and their format. XML is versatile and extensible.

Name of file is automatically generated from the data within it so it is uniquely named. Extension: .DSD.XML or .DSD
Unique ID
Emulator/Virtualizer Title
Emulator/Virtualizer Version
Game/Software CRC/MD5
Game/Software Title
Game/Software Type (GAME/GAME UTILITY/DEMO/SOFTWARE)
Host Operating System
Host Operating System version
CPU name
CPU speed
Video card
Video card driver
Video API (DirectX/OpenGL)
Sound card
Sound card driver
Sound API
Emulator
Emulator settings/config file
Plugings
Plugin Settings
Network (Y/N/Protocol)
Network Settings
Controller/Joystick 1
Controller/Joystick 2
Controller/Joystick 3
Controller/Joystick 4
Cheat/Hack 1
Cheat/Hack 2
Cheat/Hack 3
Cheat/Hack 4
Related Library & Version 1 (DLL/SO, things like sdl 1.2, vbrun300, pygame 1.9.1)
Related Library & Version 2
Related Library & Version 3
Related Library & Version 4
User notes


A separate tracker to keep the ratings for each file based on automatic report of the emulator plus user ratings. It keeps a weighted average for:
emu-runs? [Y/N] {percentage} (automatically rated by emulator)
emu-anyerrors? [Y/N] {percentage} (emulator)
user-runs? [Y/N] {percentage} (user votes)
beatable [Y/N] {percentage} (user votes)
graphics [1-10] (user votes)
sound [1-10] (user votes)
speed [1-10] (user votes)
playability [1-10] (user votes)
completeness [1-10] (user votes) are features missing




This message is licensed under Creative Commons SA.
- Zerothis
CONS:
P2P poisoning
Extra code

EDIT:
Would really be a good idea to use such system to file bug reports on crashes, like Windows does when you get an unresponsive program.

zerothis

P2P poisoning is preventable in this case. Copyright the data under the Creative Commons BY-ND. Any attempt to masquerade bad data as the original is a violation of copyright law.

Extra code, yes
spending time on compatibility lists, no
compatibility lists and data provided to developers for free and no additional time spent, yes

And yes. An XML format for the data makes it easy for developers to *include* any data they choose. Including general bug reporting, but also plugin specific bugs, game specific bugs, and other information specific to a users system (as in, oh look, the data says its there problem not ours, glad we didn't waste anytime tracking that down)
developers
Idea is awesome but that means devs should focus on one thing more to develop, fix and maintain. I think there is already lots of work without that complicated system.
Personally, I think it's a very good idea.
There's not a huge amount of plugins, and, really, if one build was set up to build the database from everyone using versions of that build...
All they'd need to do is have a server to receive, and later send, the data, and, within 24 hours, at the most, of running the send-only version of the database, the emulator could receive the optimal settings information from the server during the ISO scanning process.

I imagine, say, in build 5500, the emulator having a new indicator instead of Game Status, based on the Game List.
If it's blank, there are no specific game settings downloaded for this game.
If it has a grey icon, it only has a old <GAME>.INI file.
Otherwise, it has the same circular icon as on the outdated game list has.
Literally, As soon as a version fixes a issue, the settings database quickly can be updated to reflect 'These games now run better'.
No more directory full of confusing INI files, no more needing to configure things you barely understand sometimes...
Just a short download when you get a new build, and it's all configured for every game except ones new to that build number.
There should just be a small team of maintainers. And keep settings files online (each for each game), so Dolphin users can download it from the game properties window and it will use some overrrides.
From developer's standpoint its still too much new code, its like creating some new system/database networking software. There still must be lot of thinking to make it right and no, copyright laws won't prevent it from getting abused at all - there are many people in the world that won't give a damn about your copyright. Everybody who coded before know things always get much more complicated and time consuming that they appeared before.
Right now some compatibility database and automated settings are last thing dolphin need. For such time it would take to make this, it would be much better if somebody with overall understanding of this emulator would finally take a look, line after line or file after file and clean it, to make it properly functional(framelimiter etc..), reliable(save states etc..) and safe(no more random crashes because some desync. happened, memory leaks etc..). That should be first thing to do. One big thing I don't like is it rely on network.
True, elite, very true.

But right now, it's closer than anything else to properly functional...
I've not had any random crashes except with games it's not used to yet, and a game which had a major bug list for the actual retail copy. Once they've ironed out the current VBA <-> Dolphin bugs, we'll no longer have a worthless GBA controller selection.
We're close to the final stretch... Now we need to think how to use it.