NostalgiaJS - The Fast,Simple, Open Source Gaming Front-End
The installation process is pretty straight-forward. Just run these commands in your terminal
git clone https://github.com/wiired24/NostalgiaJS.git
cd NostalgiaJS
npm install
npm run start
NostalgiaJS supports all three major operating systems Linux, MacOS, and Windows 10 are supported. In order to compile a release build you will need to run npm run package-linux
or npm run package-mac
. If you are on a newer M1 based Mac you can use the build script that is optimized for arm64. Just type npm run package-arm64-mac
to generate a build. Lastly if you're on Windows 10, release builds can be made if desired just run npm run package-win
. After compiling is finished you will see a new directory called /release-builds
there you can find binaries for your target platform. Please be aware if you're using Windows 10 you will need to add steam & retroarch to your System Path since it's not done automatically.
As you can see adding games to NostalgiaJS is very straight-forward and easy to do
it's really as simple as the click of a button 👍
NostalgiaJS currently allows both steam games and emulators to be imported. It's as simple as selecting import rom
or import steam game
in the file menu, adding the required files, and then launching your game. That's all you have to do. Please note if you're importing a steam game to your collection you will need the AppID of that title. This can easily be found for free on steam.db.info.
Currently NostalgiaJS supports both steam games and emulators as well. NostalgiaJS has built in support
for both standalone emulator binaries and libretro retroarch cores
as well. NostalgiaJS comes with some of the most popular libretro cores already included by default. Just search in /NostalgiaJS/libretro/cores
when importing your rom file to your collection. In addtion, you can also use Windows .exe files for standalone emulators as Wine is supported by default just make sure you have it installed. NostalgiaJS is also very fast. It uses compile time V8 optimizations that help it startup in typically just less than a second, even when you have several games in your library. In addition the default Cores included with NostalgiaJS load fast as well since they are written in C. In order to take advantage of these optimizations just make sure to compile a release build depending on what operating system you are on.
Oh yeah did I mention NostalgiaJS also supports custom backgrounds too? :)
If you have a larger collection of rom files it's recommended to use a scraper to fetch media files for you games. In which case you can take advantage of the default scraper (skyscraper) that NostalgiaJS has to offer. Just run the setupScraper
script once to install dependencies and then you only need to run scrape.sh
when you want to scrape metadata for your games. A media folder will be created containing images and videos for your games after scraping has finished.
NostalgiaJS was created as I wanted to create a viable open source alternative for those looking for an experience that is similar to something like launchbox on windows, that was instead built with *nix operating systems in mind. I wanted a launcher that had a high degree of compatilibity with multiple emulators and just worked out of the box. Instead of a launcher having install scripts for emulators that break because x,y or z dependency, NostalgiaJS takes a different approarch. You just supply the binary. That can be a .exe emulator launched via Wine, a libretro core, or a native emulator. And Rather than trying to have every feature ever, It was designed to be minimal, fast, easy to use, customizeable, and above all fun.
While NostalgiaJS is generally considered stable enough for use at this point, if you do come across a bug please let me know about it by submitting an issue on Github and I will look into it. Some common things to be aware of. If you're launching a game on mac or linux that requires a .exe emulator file, make sure you have wine installed on your machine. If you are loading a libretro core, make sure that you have the proper file which should be a <platform-name>libretro.so file
and that you have retroarch installed on your machine. Also if a libretro core doesn't load it's most likely because of a missing bios file on your system. Dolphin is one example that comes to mind where a Bios might be required. If you're using a standalone emulator binary to launch a rom, and the emulator won't launch or doesn't start it may just be an issue with that specific emulator in which case I'd recommend trying the libretro core equivalent instead. If you cannot get steam games or retroarch cores to launch on Windows make sure you have added steam.exe and retroarch.exe directories to your system path. This is how Windows will know where to look to launch these programs.
We now have an Official Wiki which documents in detail just about everything you need to know to get up and running with NostalgiaJS. You can view it here.
Please keep in mind that the Wiki is being actively worked on so new pages may be added in the future.