Skip to content

NX Library 0.1.4

Choose a tag to compare

@Bium23 Bium23 released this 06 Nov 22:14
· 11 commits to main since this release

Mods arrive in NX Library: turn on your own, or find and install the ones that work from GameBanana, in a game's page or in a new mod store. Games now build on the drive they are installed to, and the engine moves to a newer, tested version.

Mods

  • Your own mods, no rebuild. Put a file mod (a folder with romfs inside) into a game's mods folder, then turn it on in the game's new Mods band or in Game options → Mods, and play. The engine reads mods at launch, so nothing is rebuilt. When two mods change the same file, the order you set decides which one wins. Remove moves a mod to the Trash, so nothing is lost by mistake.
  • Mods from GameBanana in a game's page. The Mods band also lists the GameBanana mods that work with the engine. Open one to see its images, author, version and files, then press Install: it downloads into the game's mods folder and is on at the next launch. Update appears when the author replaces the file.
    • Why only some mods: NX Library checks every file of a mod before showing it and keeps only file mods (romfs). Mods that patch the game's code (exefs, such as most 60 fps patches) don't work with the engine, so they are left out instead of failing after the download.
    • Finding the right game: when the game's GameBanana page isn't certain, the band asks once and remembers your choice; Wrong game? picks another.
    • Every mod links to its page on GameBanana, so its authors keep the credit.
  • Mod store. A new Mods card in Spotlight's row. Go down from it into a store of the mods that work with your games: a large Featured banner, the most popular mods for your games, a row per category (characters, worlds, graphics, music, interface, gameplay) and a row for each of your games, last played first. Sort by Popular, Most liked, Newest or Recently updated.
    • It opens at once from what it found last time and checks GameBanana again in the background, so you never wait on a blank page.
    • A small arrow at a row's right end shows when more mods are hidden past the edge.
    • The card shows the art of the best mods, and the background glides to gold while it is selected. Don't want it? Hide it in Settings → Spotlight or from its Y menu.
  • Installing one file installs only that file. In a mod with several files, only the one you chose shows its progress; the others wait until it ends.
  • A mod's panel reads well with long text. Read more sits right under the description and opens all of it; the files follow under their own Files title. The panel scrolls with the wheel, the trackpad or Up and Down, which read the text before moving to the next row.

Building on an external drive (#4, #6)

  • Games build on the drive their app goes to. With the Game apps folder on an external APFS or Mac OS Extended drive, the extracted game, the shader cache and the new app stay on that drive, in a hidden .nxlibrary-build folder.
    • Why: before, every build happened on the Mac's own disk and the finished app was then copied across. A Switch 2 game needed tens of GB free on a small internal SSD (#4), and the final copy wrote ~35 GB again (#6). Now the Mac's disk needs no free space for the build, and the finished app is moved into place, which is instant.
    • A game whose build files were on the Mac's disk moves them at its next rebuild and frees that space.
    • exFAT drives still build on the Mac's disk: exFAT stores extended attributes in ._ files, which break a Mac app's signature. The space warning says so. Installing to exFAT works as before.

Game options

  • The two upscalers, explained. They are two different steps of the same frame, and both can be on:
    • MetalFX upscaling enlarges the finished picture, menus and HUD included, to your window or screen with Apple's MetalFX instead of smooth scaling: sharper, for a little more GPU time.
    • Game's upscaler appears only in games that enlarge their 3D picture inside the frame with an upscaler of their own (such as Donkey Kong Bananza). Game's own keeps it; MetalFX does the same step with Apple's scaler in a fraction of the GPU time (about 1 ms instead of 3.5–5 ms on an M1), with Apple's look instead of the game's.
  • Info beside a row. Rows with an explanation show an info button: click it, or press Y on the focused row.

Cheats

  • Cheats or mods? A line under the Cheats panel's title tells them apart: cheats change values while you play, for one game version only; new items, looks or gameplay are mods.
  • Cheats on imported games. A game added from an app built elsewhere no longer asks for a rebuild when its engine already supports cheats: NX Library reads the engine version the app carries.

Game app icons

  • A game whose app has no icon (Switch 2 games and dumps) now shows the Icon you choose in Change artwork, in Finder and the Dock. For a game with its own icon, a question lets you use yours on the Mac too. The icon survives a rebuild, and Automatic brings back the game's own. Updating a large game's app takes about a minute.

Engine

  • Updated nxnative to b2d46b86 (from 4a0551e4, through 04df08d4, which was tested with an Ocarina of Time build). The Metal compiler is the same, so no new setup is needed.
    • New game profiles: Kirby Air Riders and Ocarina of Time (Switch 2, from a NUP), ŌKAMI HD, Minecraft Dungeons II, and Sonic Superstars (provisional).
    • Ocarina of Time no longer crashes at the first note of the ocarina and runs lighter in the village.
    • Upstream also reports fixes for Trails in the Sky 1st Chapter and Just Dance (a crash at launch), Super Mario Galaxy 2 (cutscene picture shape), Super Smash Bros. Ultimate 13.0.5, Rhythm Heaven Groove and Fire Emblem: Three Houses.
    • A game's shader cache and shader libraries are now one file each, so a build writes far fewer files. The first build of each game after updating converts its cache and shows Updating shader cache meanwhile; every game translates its shaders again once.
    • Damaged game files are caught. A NUP or a dump has no checksums, so a damaged file used to make a game that reloads an asset for ever. The engine now checks the files once (about 16 s for Ocarina of Time) and stops with Some game files are damaged, with Port anyway if you want to try.
  • Installed games keep their engine until you rebuild them.

Smoother and lighter

  • Cards no longer wobble in a quick run of presses. Every card grows, shrinks and slides on one shared glide, so the gaps between cards hold; cards coming in at the edge no longer drift into line, and the lock, build progress and Add Game icon move with their card. In Spotlight and Collection.
  • NX Library rests at about 0% CPU when idle, instead of a quarter of a core: the selected card's ring and shine now run in Core Animation, just as smooth.
  • macOS Game Mode stays off for NX Library. It is a launcher, not a game, and Game Mode lowers the priority of background work such as builds. Games keep Game Mode off as the engine sets it, because it holds the GPU at its lowest clock after a few minutes. If macOS already remembers NX Library as a game, turn it off once in full screen: Command-Esc, Game Overlay, Game Mode.
  • The background art no longer jumps or flashes when you move between games, and Spotlight's genres now leave and return with the game's buttons.
  • The Mods card keeps its art when selected; new art crossfades in whole.
  • The intro shows only the moving background, without the app icon.

Considered and not adopted

These were looked at in this release and left out on purpose:

  • Downloading cheats from switch-cheats-db. It was built and then removed. A cheat works only on the exact game version it was written for, and the public collections (switch-cheats-db, MyNXCheats, Breeze's archive, the GBAtemp mirror) have nothing for the latest versions of most games, which are the ones people port. A panel that goes online on every open and almost never finds anything isn't worth it. You can still add cheat files yourself in the Cheats panel.
  • Loading a cheat from another game version. The engine could load it, but its memory addresses would be wrong: crashes or damaged saves. Not offered.
  • Code mods (exefs, e.g. 60 fps patches). The engine doesn't apply them, so NX Library doesn't list or install them.
  • New engine switches without a player use: DM_PROBE_EVERY (a diagnostic counter), DM_NVN_CUT_BUSY (diagnostic) and DM_GUEST_FILE_DIR (iOS only) stay out of the app.
  • Building on exFAT drives, for the signature reason above.
  • A grid view for Collection (#3) is planned for a later release, to be done with proper focus, art and controller navigation rather than a quick port.

Known issue

  • A game drawn upside down (#5). NX Library doesn't draw the game: the picture comes from the nxnative engine, and no NX Library option flips it. The engine already fixes this symptom game by game; please report affected games, with title ID and version, at nxnative's issues.

Updating

Updating keeps your library, mods and preferences. Existing game apps remain playable and are not rebuilt automatically; rebuild a game to use the new engine. Setup prepares the new engine in one step after the restart.

Use the DMG for a first installation. Installed release copies can update from Settings → About → Check now.