Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't bake the NstDatabase.xml file into the core #25

Closed
ghost opened this issue Mar 14, 2021 · 9 comments · Fixed by #61
Closed

Don't bake the NstDatabase.xml file into the core #25

ghost opened this issue Mar 14, 2021 · 9 comments · Fixed by #61

Comments

@ghost
Copy link

ghost commented Mar 14, 2021

This is beyond stupid, and I just wasted hours of my time trying to get Micro Mages added to the database so that a few of my friends and I could play 4 players over netplay.

DO NOT DO THIS, configuration files are meant to be configured. RetroArch warns that the file is missing, and the docs prompt you to download it yourself. This is incredibly misleading and infuriating. The decision to do this is incredibly misguided, since it assumes the set of NES games is fixed, which it definitely isn't as homebrew and commercial games are still developed.

@keithbowes
Copy link
Contributor

Yeah, I protested it when that commit was made, to no avail. I think the logic is that so that people can just download the core from RetroArch without worrying about getting the database. I haven't been so bold as to revert the baked-in database, as that's obviously what the main developers want, but I have written a Python script to convert the NstDatabase.xml file into a byte array, and was going to send a PR of it along with the update to Nestopia 1.51.0 (as its NstDatabase.xml file has been updated), when I figure out the best way to do it.

BTW, other emulators have built-in databases as well, but they seemingly don't have Nestopia's problem of not working if a database entry isn't available. I haven't encountered a homebrew that doesn't work in Nestopia (except when it uses an unsupported mapper), but maybe I just haven't found anything that arcane.

Though, I do agree that either the baked-in database should be reverted or the documentation should be updated.

@rdanbrook
Copy link
Contributor

rdanbrook commented Mar 17, 2021

The database is really there to handle quirks, otherwise the iNES header is what determines everything. Games don't actually need to be in the database to work most of the time.

keithbowes added a commit to keithbowes/nestopia that referenced this issue Mar 18, 2021
With rdanbrook's blessing
Fixes libretro#5
Fixes libretro#19
Fixes libretro#25
@inactive123
Copy link
Contributor

See my comment here -
#28 (comment)

@inactive123
Copy link
Contributor

inactive123 commented Mar 18, 2021

So in summary -

I still would like it to remain baked-in. However, there should be the ability to override it through sensible means by way of an external file dropped in some dir. Not sure if it is already like that. If it is, I don't really see the issue. The vast majority of users are not going to have this file to begin with so not baking it in at all is literally a net negative. This is all about user convenience and providing them with everything they need in a core to make sure as much works out of the box as possible.

@hizzlekizzle
Copy link
Contributor

It'd probably be a good idea to verify whether the bake-in broke the core on 3DS and PSP, as a number of users have reported. It's possible that the reports are spurious/inaccurate, but they all popped up right after.

@troyjfarrell
Copy link

@keithbowes
Copy link
Contributor

Yeah, @troyjfarrell, I assume it'll make it into Nestopia 1.52.

@Squid0000
Copy link

Squid0000 commented Nov 27, 2021

Ah, I feared this was the case.

From a post I made on the libretro discord:

Does the nestopia UE core actually utilise the NstDatabase.xml file? Games like 'Akumajou Special - Boku Dracula-kun' seem to boot just fine without it. But rom hacks don't. I have to add an entry with the new hashes to get rom hacks to boot on the nestopia win binary (v1.51.1). But no dice on the retroarch core version.

So it's optional but doesn't do anything? If it exists in retroarch's system folder it should override the internal database, the same way pointing to an external database behaves in the win binary.

@keithbowes
Copy link
Contributor

So it's optional but doesn't do anything? If it exists in retroarch's system folder it should override the internal database, the same way pointing to an external database behaves in the win binary.

The documentation is outdated and I've been meaning to update it but I haven't gotten around to it. Yes, NstDatabase.xml does absolutely nothing in the Nestopia core versions 1.50 and later. I made a Python script to allow you to change the internal database (which means that you'd have to recompile the core with the new internal database if you make any changes); that's the best I could get by twinaphex.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
6 participants