The Usual Christmas Update

Saturday, December 25, 2021

Merry Christmas!

As I often like to post... something on Christmas, as a sort of present... This year is no exception! Now that CaVE is back, and updated well enough with new features and support, there wouldn't be much to add to it. Nor SFROM Tool. Least not to be worth considering a present. But I have been working on a side project that is now ready...

Back in October, while waiting on the N64/Genesis NSO apps to be released, I killed time with this side project. As some may know, SNES is my favorite console... ever! So it tends to be my focus. There wasn't a lot left to do with it and NSO, but I found something. We all know how to use CaVE at this point, but there is an obvious feature that might be strait up expected by some, but isn't included. It's a feature that takes a lot of work! That feature is what I call a "Preset Database". What that means in this context is, when you add a game in CaVE, there are a ton of values you need to set. Typically images and descriptions. CaVE does what it can to add in placeholder values, but... if you are like me, you would want all the values to look as close to how they would if Nintendo released support for that game themselves. A "Preset Database" in relation to this would automatically set those values with more proper ones. Add say Chrono Trigger? In the split second after adding it CaVE would automatically select the box and title screen art, fill out the meta description, publisher, copyright, etc. Such a feature is convenient, but takes a lot of work to implement.

But that's exactly what I have been working on!

Some may know how CaVE has supported a image pack for N64, for about a month now (Though the package author kind of abandoned it when it came time to go public, so you may not know...). What you may not realize is, that was more just a trial run for my side project, and a greater Preset Database feature that's was added even before that. Same feature, but that package only uses images.

Now, you can see the full feature in use! But... for SNES only, for now. SNES is my passion, so I focused on it. And specifically, the USA games. By my count, there are 720 officially released and licensed USA games. And that's where my work has currently drawn the line. Add the SFROM for any of those, and as long as its checksum is in the Preset Database, it will auto add those presets.

This brings me to the the caveats though. I only added 1 checksum for each game. I used the No-Intro list as well as I could, and that set tends to use the latest version of the ROM. There is no reason why earlier versions wouldn't work too. It's just... I haven't added those checksums. I had to draw the line somewhere to not get bogged down in details and keep moving forward. There are too many versions of ROM's. For example, SFA2. The version of that ROM that is specifically used in my database is the one with the canoe SDA patching. Not the RAW no-intro version. While that makes sense, other omissions may not. I used my VC patches and Robins Canoe-Fix set when creating the database. So some games which only have minor issues without those patches, will not be detected.

But... this project will be open to the community in some fashion. So support for other variations of ROMs can be added. As well as other systems and regions.

The Preset Database feature supports PAL and JAP regions too, and I even added a Misc group for everything else like translations, unlicensed, etc.

Further, I have set up this project to be viewable and editable on a google sheet. From there, anyone can export an up-to-date version of the database.

I have my own collection of images for now. And cant support others adding to that with community effort like with the sheet. But something can be figured out in time. My image set will probably be removed at some point, so others are required to maintain it.

The Preset Database feature supports all NSO apps, but it does not support N64 DTZ's or config settings. It was designed before that existed, and don't want to rush through tacking on support, nor do I feel its appropriate at this time to provide such a preset package, as it would give people the wrong expectations that the default is for a game to work fine. Manually downloading a dtz helps people to understand the compatibility limits.


Anyway. With this side project, I have also been able to stress test more of CaVE and the NSO app. I haven't had a single issue with CaVE loading 720 games. Well... unless you count it loading slow. The app may take like half a minute to load with that many. NSO however... I can now see some of its issues. And basically, the answers I gave before on "How many games can be added?" remain the same. There's no hard limit. I have been able to load the NSO app with 720 games! But... it is definitely not recommended. The app is unstable after like 500-600. It may crash while loading, and often crashes while trying to close. It even randomly crashes when trying to load games at times. And the limit of 280ish due to save file related issues is still a thing as well. As such, that will remain the soft limit. You can add "game_limit": 999 to your settings file if you want, but I do not support that, and will not answer support questions if you do. That reminds me...

To be clear! This Preset Database feature is not added so you can mass add the entire collection or hundreds of games that you will never play, more easily. This feature exists purely to help streamline the process of adding the few games you know and will play. Period! Nor is my work to be used to support piece of shit mega packs made by scumbags! It's for CaVE and its users only.

That out of the way... This Preset Database feature itself is a test for CaVE 2.0. That will be designed from the ground up with such a feature in mind. Just... for all VCs/CCs.


Onto another topic. So... how is N64 work going?

I guess it suddenly died. I personally lost interest after looking EXTREMELY forward to working on getting lots of games working myself, but having to race to finish work on CaVE before others raced to get as many of the interesting and easier games working before I was free to. I love reverse engineering, and was looking forward to it. But... When I was finally free, it was too late. Much of the list was worked on, and certainly all the easy stuff. It knocked the wind out of my sails and I was forced to just say "Fine. I give up!" leave it all to the community.

Naturally, of course immediately after I make my peace with that and abandon my interest in working on DTZ's... what happens? Everyone else that was obsessing over working on them mysteriously disappeared.

I wonder why that is? Could it be what I was saying all along about how difficult it is? They take care of all the easy games, but give up quickly when its time to put in some real work and thought?

Basically... they were never in it for the long haul like I have to be. But their work stifles my ability to progress. Besides feeling extremely demotivated now, I just lack the natural progression of understanding that id need to more seamlessly jump to the next level and figure out the more challenging issues. By no means its it impossible, or am I giving up as a whole. It's just... not very appealing right now. I work on whats fun, and it does not sound fun right now.

The only remaining games that are of any interest to me to evoke a feeling of fun are Goldeneye and Perfect Dark. I got both games booting, but they both have serious issues that I can't figure out with the lack of tools available, or my lack of experience. I can only guess. Goldeneye randomly crashes. I say randomly, simply because it seems based on RNG. But I feel that if you press buttons at the exact same time every time you booted, you could find a path to avoid crashing. I have even been able to get into the game play once, beat a level and create a save state. The game from that state has its issues, but is mostly stable. Just... loading that state is very picky. You can only do so from the game menus. I thought it was a memory issue, but I really don't know... Perfect Dark boots fine and doesn't crash. I would even say it plays fine if not for one major issue. All the polygons are stretched to crazy positions, turning everything into balls of colorful spikes. I feel this might be an issue where the VertexHack option is required, but I lack the skills, understanding and tools to properly create settings for that option myself.


Now without further ado...

SNES-Preset Databases & SNES Images

You can find the project sheet here.

Simply extract the .jsons from the zip and the SNS-001 folder that contains the images to your "database" directory. I included minor databases and images for Japanese, PAL, and Misc with just the stock games, so that images for stock games will work.

Additionally, CaVE has been updated too... because why not? Here are the changes.

Changes since v1.3.3.4
    You can now sort the list by SortTitle (Info Column), player count (Details Column), code (Advanced Info Column), SortPublisher (Extra Info Column), and TitleKo (Alternate Titles Column).
        Sorting WILL be applied to your database when saved. This sorting order only pertains to CaVE. The NSO app is handled its own way.
    CaVE will now show a simple splash window when loading a database. On boot, or when selected. This is to help with confusion when loading large databases, so you know CaVE is running.
    The "settings" and "changes" files are now automatically generated, and have been removed from the archive so its clearer to users that you dont need to extract those when updating.
    Added option to allow you to set your games images and information to that of the preset database.
        This works both as a reset, and for people who have already added their games before installing a preset database.
    Fixed some minor issues. (.gen file support, changing the Code value, etc.)


Post a Comment