Skip to content

Progress Report for v2.0 December 2022

Quinton Ashley edited this page Dec 2, 2022 · 12 revisions

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

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

What's new in version 2?

Nostlan has come a long way since v1 was released 3 years ago.

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

Keyboard mapping

Since Nostlan's design is skeuomorphic I thought it'd be fun to have the default keyboard layout on 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 about 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 my use of 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 thought it had become clear that frontends that relied on emulator cores were going to be left behind by current gen emulators. I was surprised to see a Dolphin core added to OpenEmu, but I think that will be the most modern core added. So perhaps my idea for Nostlan was a bit ahead of it's time, but now with the release of so many standalone emulators on macOS, I think it's Nostlan's time to shine!