CaVE Database Manager (obsolete)

NOTICE: The CaVE v1.4.6 Release build will no longer be updated. This includes exe and NSO database updates. Additionally, the Full Unlock will no longer be updated either. This is because my sole focus going forward will be on the semi-private v1.5 Beta. My focus and effort will remain solely on the community that actually shows they care about supporting the project with basic feedback.

I may and probably will eventually post the v1.5 revamp publicly, but I have no guess as to when.

All documentation on this website and the GBATemp thread is currently only for v1.4.6. The Beta v1.5 currently has it's own WIP documentation on its own wiki.

Though I understand that supporting me may not be a option for you, yet it is required... You can find information for v1.5 here

Contents:



CaVE Database Manager 1.0:

CaVE Database Manager 1.0 is a tool to help you add a custom selection of games to your SNES, NES, N64, Genesis, GB/GBC & GBA Online apps. With it, you can quickly add many games with default values/settings/art that will at least allow the game to boot up and play. But beyond that, you can customize the values/settings/art to your liking!

It supports both both the Western app, and the South East Asian apps.
 
Additionally, it supports using other apps to create custom apps for console emulation.

  • Hiyoko: GB/GBC (Obsolete. Use NSO-GB instead)
  • Sloop: GBA (Obsolete. Use NSO-GBA instead)
  • Hovercraft (Super Mario 3D All-stars.): N64 (Obsolete in most cases. Use NSO-N64 instead)
  • ZebraEngine (Saturn Tribute): Saturn

A general setup guide for NES/SNES/N64/Genesis/GB/GBA Online modding has been posted here.


Download:

CaVE Database Manager - v1.4.6 (Obsolete)
Windows 9.4MB
Latest Database Updates:

 


SNES Online - Full Unlock:

The SNES Online "Full Unlock" is a modification for the SNES Online app that allows it to support more than the stock list of compatible GameCodes/Preset IDs. Additionally, it also enables full support for the traditional .sfroms of the SNES Classic/WiiU format (In early versions only).

If you use Super Famicom Online, download the SFC Online version of the hack below instead.


Download:

*v3.3 uses the same unlock as v3.2.
Console
Version Format


Mods & Extras:

Preset Database:
Place the json file in the /database/ folder.

Image Packs:
Place the image folder itself in the /database/ folder.
  • NES
  • SNES
  • N64
  • Genesis/MegaDrive
  • Game Boy (Just GB. No GBC)
  • Game Boy Advance

Mods:

SPT's:






FAQ (WIP):

  • I downloaded this pre-made pack and...?
  • What games can I use with CaVE/NSO?
  • Whats the deal with CaVE "database updates"?
  • Can I add games in a batch all at once?
  • Is there a limit to how many games I can add?
  • Why is my N64 game colored red?
    Why wont my N64 game boot?
    Where do I get dtz files?
  • How do I make a dtz?
  • How do I import my save to the NSO app?
  • Whats the deal with the Full Unlock?
    Why does the custom SNES game I added crash on load?
  • Why does the Switch app crash when I load a game?
  • Why wont the Switch app load?
  • Why don't I see the custom games I just added in the Switch app?
  • Why don't I see the new officially added games when I update the app?
  • How do I install a .spt?
  • How do I create a .spt?
  • CaVE crashes when I try to create a new database?
  • Why do I see META_TITLE_COMMENT_**** instead of the games description?


    • I downloaded this pre-made pack and...?

      Nice Answer: Immediately uninstall that piece of trash, and create your own database with CaVE from scratch. That is the point of the program. Those pre-made packs are an insult to me and my work. I did not put in all of the work I did on these things, for such packs to completely obscure my efforts and contributions. Those things completely defeat the purpose of CaVE!

      Rude Answer: I don't support lazy entitled pieces of shit. Go fuck yourself.


      What games can I use with CaVE/NSO?

      Simple answer? Everything, including your favorite games, translations, and hacks.

      But a simple answer is not accurate enough...

      To explain why, first... the emulator code used in these NSO apps is not perfect. It is custom made, and does not have the refinement and versatility of a common fan created emu that has been in development for years. They were created from scratch, and iterated on only as far as to get the next game on the agenda working "good enough".

      Knowing that... there are 4 classifications of games for these apps. Stock games. Previous VC releases. All other original games. Hacks/Translations.

      Stock games of course work. But you don't need to be concerned with them.

      Previous VC titles tend to work well because the current emulator code is derived from the code used for previous VC's.

      All other original games... This is where it starts getting harder to define. Different games were made with different hardware/software features, and those features would only be supported if a game using them was officially released as a stock game.

      Hacks/Translations fall into the same compatibility as the last category, but with the additional cavaet that they are more likely to do things that reduce the odds of the game remaining compatible. Often, expanding the size of the ROM, changing or forgetting to change the ROM's header, etc. And by their nature, they are made by amateurs of varying skill and quality, without the testing and debugging resources that the original games had.

      For N64 specifically, you have to use the DTZ for the base ROM. Be that a fan made one, or the stock game's DTZ as appropriate. This can often, but not always require you to change the Idle addresses for the DTZ to suit the hack.

      For the most relavant systems, compatability lists have been provided (Help menu in CavE). For the ones that don't have them, most games work with few issues. Hacks/Translations are not tracked like this because it would be too much work. By default... just test a hack/translation yourself. If it works, great! If it does not... Oh well.


      Whats the deal with CaVE "database updates"?

      The CaVE exe does not always require an update itself. Sometimes all you need to add to CaVE for its current version to support the latest NSO update, is a .json file.

      To install such an update, simply download the .json file and place it in your "database" folder that itself resides in the CaVE exe folder. When you start CaVE, then you will be able to create new custom databases with that update, and will be able to find the new games available to add to your current database via the "File > Add Game > Add Stock Game" menu.


      Can I add games in a batch all at once?

      No.

      Follow up question: Why?

      Answer: While a game may work, often it requires specific settings and data. There are hundreds of games for each system, and I can't possibly individually test and fill out data for all of them. You probably want box art, but I cant and wont distribute that with CaVE. For legal reasons and download size reasons.

      This tool is meant for YOU to manage your database and customize. For you to add the games you know and love. Not hundreds and hundreds of games that you will never play.

      Is there a limit to how many games I can add?

      No, and yes. There's no hard fixed limit in the Switch app. But there is a soft limit. Each game creates data in the app's save file, and as a result increases a little to causing the app to load slower and slower. Each game and its art contributes to taking up more and more memory, and after so many games... things load slower, or start crashing. The rough limit for the save issue is around 280 or so, and I've seen reports for the general memory issue to be around 600 with SNES. But thankfully no one needs that many games! Most people won't even play more than 10-20, so adding many more beyond that is a waste of time, effort and space!

      Why is my N64 game colored red?
      Why wont my N64 game boot?
      Where do I get dtz files?

      Your N64 game is colored Red because it lacks a .dtz file. It wont boot for the same reason.

      A .dtz file contains settings and hacks for the game that are required for Nintendos emu code to play it, and need to be customized to each game.

      You can find a list of fan created .dtz files on the compatability list, available through the Help menu in CaVE. Not all games are supported yet, so be paitent.

      How do I make a dtz?

      This is a common question now, and one I tend to avoid. Simply because... it's VERY complex, and is not for everyone. It's best left to those who know what they are doing. I don't want to encourage inexperienced people making and spreading them around, as poorly made things like that tend to plague scenes like this for a long time. I also don't like having to explain complicated things over and over to every person, only for them to predictably say its too complicated for them. Further... it will just lead to more questions being directed at me and others, and require hand-holding as you get to the tougher parts. But... I will post a brief explanation here, not to encourage you to try and make them yourself, but to illustrate why its complex.

      A DTZ is more than just some display settings you can play with. The crucial parts require ROM hacking and an understand of MIPS assembly in order for the game to boot at all, or not crash. Each game needs generally at least one Idle thread address specified. Such threads and addresses are not indexed in a ROM, like in a header, or in a common searchable format, and are often unique to the engine the game was created with, or even more custom. That said, the easy and often insufficient method is to load up the game in the Project 64 Dev emulator and search for 1000FFFF. That's the most common value, and whatever address that value is at is the "JmpAddr", while 1000FFFF is the "JmpInst". You add such addresses and values to your .cfg file, compile the dtz, place it on your card and try booting the game. Doesn't work! Now what? Well, you could try removing some of your entries, as it's very possible one is messing things up. Which one? What if you only found and added one? What if you found zero? That's where such guides fall apart, as it requires you to have skill to adapt and figure things out on your own.

      This is the extent of what will be covered on this. Do not ask for more help on this topic in the channel, forum threads or comments! Again, this was not a beginners guide, it was a warning. Just wait! The N64 catalog isn't THAT big. Someone will work on the game you want, soon enough.

      How do I import my save to the NSO app?

      First, this depends. Do you mean a SRAM type of save? Or a save STATE? If a save state... you cant.

      So assuming you mean SRAM, it can get confusing if you were to try to find the save folder normally, as the folder names are just numbers. So I reccomend using the DBI "Run MTP responder" option with your Switch hooked up to your PC.

      From there, open the "Saves" partition, then the "Installed games" folder. Find the folder named like the NSO app in question, open it, then open the folder named after your profile/account. Here you will see a "saves" folder.

      From here its a little tricky, as the folders are named with code values, so just load up CaVE and in it find the game you want to replace the save for. In the Advanced Info column (if you dont see this column, enable it under the View menu) take note of the Code value. Thats the name of the folder you are looking for.

      Find it, open it and "cartridge.sram" is the name of the file you want to replace. Delete it, copy yours to that folder, and rename to "cartridge.sram".

      Thats it!

      For N64 specifically, CaVE includes some sram conversion options under the Tools menu.

      Whats the deal with the Full Unlock?
      Why does the custom SNES game I added crash on load?

      Nintendo added a form of copy protection for NSO SNES. Without the Full Unlock patch, custom SNES games will crash when you try to launch them. Each update of the NSO SNES app will require a new corosponding version of the Full Unlock. Follow the Full Unlock installation of the general setup guide for your app/CFW, to install it.

      Why does the Switch app crash when I load a game?

      This can be for a couple of reasons. It can be because your game is not compatible,  or not configured generally. For SNES for example, you need a Switch sfrom, and some games like ExHiROM ones dont work. For N64 for example, you may lack a properly configured dtz, or the game flat out just wont work.

      Why wont the Switch app load?

      Getting stuck on the red logo screen? This is generally due to a flaw in either the lclassics.titlesdb, strings.lng, image xtx.z/.png files, or any of those and files such as ROM, dtz, sfromsig, etc missing or being flawed.

      If you have bypassed CaVE to modify the lclassics.titlesdb or strings.lng files yourself manually, you probably messed up the .json formatting. Often a missing/extra comma or quotation mark.

      Perhaps you accidentally deleted a file. Or perhaps when copying over your database folder and its contents, something got messed up and you didn't copy over everything.

      Finally, if you are using a Mod, and just recently updated the app, its very possible that the mod now needs to be updated. I dont use mods, and thus rely on the community to let me know when they need to be updated since they dont always need to be. Uninstall them, and if it suddenly works, don't assume I already know. Inform me.

      Why don't I see the custom games I just added in the Switch app?

      This can be for several reason. Sometimes you just need to restart your Switch. More often however is that when copying the folder to your SD card, you either copied it to the wrong folder or the folder or lclassics.titlesdb file got corrupt.

      Don't use Tinfoil's MTP server to copy to your card! It's terrible. What is verified as good is DBI's MTP responder/server, and TegraRcmGui's memloader tool.

      Why don't I see the new officially added games when I update the app?

      They wont be visible until you update your custom database to include those games too. You have to add them manually from the "File > Add Game > Add Stock Game" menu.

      If you have done that, you may need to restart your switch. Sometimes change wont show until you do.

      How do I install a .spt?

      Right click the source game you want to make a SP Title for, select "Create SP Game Title" and select that spt file.

      How do I create a .spt?

      You need to get a save state from the NSO app for the game in question. Once you have it, right click the source game you want to make it for and select "Create SP Game Title" and select that state file. Once imported, edit its details in the "Edit Game Title Meta Details" window, and select a title screen image (the one along side the save state is a good easy choice). Once everything is set and good for sharing with others, right click the SP game in the list and select "Export SP Game Title". It will output a .spt file that you can share.

      CaVE crashes when I try to create a new database?

      This is a bug that does not happen for everyone, and has been difficult for me to figure out. For some it may be due to selecting a different language, or having a different locale OS. But not all. I'm sorry I don't have a good solution for you. You can bypass it by trying one of these premade databases.

      Why do I see META_TITLE_COMMENT_**** instead of the games description?

      This is often due to you having a different locale/language set on your Switch, than what you have selected in CaVE (Edit > Language). CaVE defaults to English (US), and thus it's most likely that you didn't bother to explore the app, notice, and set this option otherwise. CaVE cant detect what locale you use on your switch, so you have to set this manually.

      If this is somehow not the case, then the next most likely issue is that you didn't follow the guide and didn't copy the title id folder properly. Specifically, you failed to copy the "bootapp\resources\strings\<language>\strings.lng" path and file to your SD Card.


      ...