Progress Report for v2.0 December 2022 - quinton-ashley/nostlan GitHub Wiki

'Tis the season, Nostlan v2.0 is here! 🎁

Download Nostlan from the official website: https://quinton-ashley.github.io/nostlan-web

Looking for more general info about Nostlan? Take a look at the readme page first!

What's new in version 2?

  • PSP system support and PPSSPP emulator support!
  • supports Ryujinx, Cemu, and RPCS3 on macOS!
  • all emulator app install links updated
  • fixed a bug that prevented JS based in-app emulators from working on macOS
  • the DS Player (DeSmuME wasm based) emulator touch screen now works
  • em-fceux now fully functioning with support for second controller and zapper
  • Nostlan will no longer force users to download updates to Nostlan

Nostlan turns 3 years old 🍰

When I first released Nostlan in 2018 it was called "Bottlenose", a name that everyone hated! At the time Bottlenose was a companion app for Dolphin but it quickly outgrew that purpose as I added more and more support for other systems and emulators. In October 2019, I picked out a new name for the app: Nostlan, a portmanteau of "Nostalgia launcher". This name was warmly received by Reddit user "spilk" who said that it "Sounds like a prescription nasal spray", to which someone else replied "Yeah unlike BOTTLENOSE". And the rest, as they say is history! Mostly a history of apologizing for new releases riddled with bugs. But that's all in the past right? right?? 😅

Let's take a look at how much Nostlan has grown by the numbers:

  • 16 system categories supported
  • 24 supported emulators
  • 28 themes
  • 5 translations for the menus, thank you translators!
  • 558 commits to the codebase?! I like saving my work 💾

Keyboard mapping for the JS emulator cores

Since Nostlan's design is skeuomorphic I thought it'd be fun to have the default keyboard layout on what looks like a printed manual page. In previous versions of Nostlan users would've either had to look at the config files or guess what keys to press when using the JS emulators lol, sorry about that.

Dev Log

For the past year I've been super focused on my job as a Computer Science teacher and didn't get the chance to work on Nostlan as much. I created a major update to p5play, a 2D game engine made for CS educators and students.

But with the release of Cemu and Ryujinx for macOS I decided it was time to try working on Nostlan again!

A year ago my development of Nostlan for macOS had become plagued with problems. Nostlan is an Electron based app and Apple code signing wasn't working at all. Without proper code signing Nostlan couldn't run on any Mac expect mine! I did a lot of research and tried my best but for a while I thought I would have to discontinue releasing macOS builds. I was so frustrated but I didn't want to disappoint Nostlan users. Six months ago I finally figured out a workaround: eliminating native dependencies. A bit of image processing speed was sacrificed for the app to work at all. Nowadays on macOS 13 the code signing process is a breeze with electron-builder. I'm so grateful to everyone in the Electron community that got that sorted. Electron development is still not as easy or fun as it once was but the new security features they've added are worth the growing pains.

One of the things I'm most proud of accomplishing with Nostlan is using WebViews to isolate JS emulators in their own context. Nostlan downloads JS emulators from the internet, they're not included in the app, which would pose a super high security risk if they were allowed to run in the main process. Nostlan has the ability to read, write, and erase files on your computer; so with great power comes great responsibility.

When I first started developing Nostlan in 2018 I saw a niche in the frontend ecosystem that I could fill. It seemed to me like frontends that exclusively relied on emulator cores were going to be left behind by current gen emulators. Emulators like Cemu, Yuzu, Ryujinx, RPCS3, etc. are so much more complex than older emulators, they practically need to be standalone emulator apps with their own UIs. I was surprised to even see a Dolphin core added to OpenEmu, but I suspect that it will be the most modern core added.

But I also saw that the "core" approach, having multiple emulators in the same app, is ideal for older systems. That's why I started adding JS/WASM emulators that could function as cores in Nostlan. Now I feel like Nostlan has a good mix of support for standalone apps and cores in Nostlan.

I think perhaps my idea for Nostlan was a bit ahead of it's time, lucky for me since I've only been able to come close to realizing that idea after three years of work! For Mac users in particular there wasn't really a good reason to make the switch from OpenEmu to Nostlan. But now Nostlan supports a lot of the most popular retro systems and all the brand new current gen emulators. It could be Nostlan's time to shine! Even if Nostlan never gains the popularity I think it deserves, I'm happy with it. 😄

PS If you're new to emulation and you try Ryujinx or Cemu for macOS now and it doesn't work for the game you want to play don't be too disappointed. I tried Kirby's Buffet and it didn't boot past the load screen on macOS, on Windows Ryujinx can play the game flawlessly. Ryujinx and Cemu both released macOS versions very recently and I'm sure that in a few months they will be greatly improved. As an M1 MacBook owner this is really exciting and I really appreciate those emulator devs.

Future plans

  • drag and drop to add games to Nostlan
  • let users add/open a game in Nostlan from the OS file browser (Finder, File Explorer, Files)
  • MAYBE let users download games inside of a webview in Nostlan and download games straight to the user's library (lawyers please let me know if this would be legal)

Download Nostlan!