NESbag 2 | Distribute your NES game as standalone application (even on Steam)
A downloadable tool
WHAT IS NESBAG?
NESbag 2 is a play on the words NES (yep, that old 1980s gaming console by Nintendo) and backpack. It's like a backpack (in the form of a standalone Windows, Linux or macOS program) in which you pack your self-developed NES game and then distribute this complete package as a standalone application.
The player only has to double-click on a single file to use it, just as they are used to.
NESbag 2 supports custom input configurations and game controllers. NESbag 2 includes various display shaders, for pixel-perfect or typical retro-looking image output. NESbag 2 is open-source.
https://www.eastpixel.de/nesbag
DOWNLOAD
Requirements:
The offered Windows version requires Windows 10/11.
Compiling: The macOS version requires Apple Silicon (M1 and later).
For compiling on Linux and macOS, .NET 8 Framework and SDL2 must be installed.
PRE-DEFINED KEYBOARD LAYOUT
If you start NESbag 2 out of the box, you'll find a pre-defined button layout:
You can configure your keyboard or gamepad directly via Settings > Controls menu.
CONTROLLER AND KEYBOARD SUPPORT
You can configure your keyboard or gamepad directly via the Settings > Controls menu.
WHAT YOU GET
You will receive a .zip file containing all the necessary NESbag 2 files.
CONFIGURATION PARAMETER
There are some configuration parameters in the "settings.json" file you can change.
Parameter | Content |
GameTitle | You can write your game title here, it will displayed on top of the NESbag 2 window and inside the Help > About window |
AutoFullscreen | to start NESbag 2 in fullscreen set the parameter "true" otherwise set it "false" |
Version | enter the version number of your game, it will displayed inside the Help > About window |
EnableVFilter_BRZ | to enable these display filters in the Settings > Video filter menu, set the parameter to "true" |
EnableVFilter_HQ | to enable these display filters in the Settings > Video filter menu, set the parameter to "true" |
EnableVFilter_Scale | to enable these display filters in the Settings > Video filter menu, set the parameter to "true" |
EnableVFilter_Sai | to enable these display filters in the Settings > Video filter menu, set the parameter to "true" |
EnableVFilter_Prescale | to enable these display filters in the Settings > Video filter menu, set the parameter to "true" |
Please do not change any of the other parameters by hand.
FAQ
1. How to use NESbag 2?
a) Download the release version of NESbag 2 and unzip.
b) Copy your NES game as a ROM file with the name “game.nes” into the “game” directory.
c) Play your game or share the complete files and folders as you like.
2. Are there any technical dependencies in order to use NESbag 2?
The Windows version requires Windows 10/11.
For compiling on Linux and macOS, .NET 8 SDK and SDL2 must be installed.
3. Is the source-code available?
Yes. Please visit this link: https://github.com/faktor73/nesbag2
You can use, modify and distribute the source code and compile your own program versions. Please always respect the GPL V3 license.
4. Can I publish my game on Steam with NESbag 2?
Yes, of course. Out of the box , there are no restrictions.
QUESTIONS?
If there are any questions or issues surrounding this tool, please get in touch with Christian @ EASTPIXEL via Discord.
HOW TO USE - INSTRUCTIONS
Windows version
- The Windows version requires at least Windows 10/11 64bit.
- Download the .zip file, unpack it.
- To change the game: Put your game (named "game.nes") into the "Game" folder.
Linux version
Due to the large number of Linux distributions, I do not provide a pre-compiled Linux binary file at the moment. Of course, a Makefile is included in the source code.
Steamdeck
Thanks to LowtekGames for try out NESbag 2 on Steamdeck and confirmed it's working. If you have any questions, come over to our Discord.
Mac version
You can compile the tool directly from source by using the free version of JetBrains Rider. The process is identical to compiling with Visual Studio on Windows.
Ready-to-use macOS version: I can also provide a finished macOS version, but you will have to sign it with an Apple developer account before you can pass it on. As I don't have the resources for an Apple developer account, I can't sign the macOS versions myself.
CHANGELOG
Version 2.3.0
- Added five new configuration parameters to enable or disable different display filters (Parameter list: "EnableVFilter_BRZ", "EnableVFilter_HQ", "EnableVFilter_Scale", "EnableVFilter_Sai", "EnableVFilter_Prescale"). Initial setting is "false" for every single one because most people don't need them activated
Version 2.2.1
- The defined "GameTitle" and "Version" data (in the "settings.json" file) will now be displayed in the Help > About window
Version 2.2.0
- Added configuration parameter "AutoFullscreen" How to: In the "settings.json" file, please change "AutoFullscreen" in line 3 of the file to "true", if you like to start the tool in fullscreen on launch. Otherwise set the parameter to "false". (ID: 077cc17)
- Small Bugfixes (ID: f9163d3)
Version 2.1.0
-
Set the displayed game name in the NESbag 2 window
How to: In the "settings.json" file, please change the name in line 2 of the file (change the content of "GameTitle" from "NESbag 2" to whatever you like) (ID: c174848) - Small Bugfixes (ID: a144d54)
Version 2.0.0
- inital release
LICENSE
NESbag 2 is available under the GPL V3 license. Full text here: http://www.gnu.org/licenses/gpl-3.0.en.html
NESbag 2 is based on the awesome gamesystem emulator system Mesen. Copyright (C) Mesen 2014-2024 Sour
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
STEAMWORKS INTEGRATION
Integrating NESbag with the Steamworks SDK (Online save games, other Steam based online features) is not possible due to licensing restrictions outlined here: https://partner.steamgames.com/doc/sdk/uploading/distributing_opensource
Updated | 20 days ago |
Status | Released |
Category | Tool |
Rating | Rated 5.0 out of 5 stars (1 total ratings) |
Author | Chris from EASTPIXEL |
Tags | 8-Bit, famicom, linux, macos, NES (Nintendo Entertainment System), publishing, release, stand-alone, steam, windows |
Code license | GNU General Public License v3.0 (GPL) |
Average session | A few minutes |
Languages | English |
Links | Homepage |
Download
Click download now to get access to the following files:
Development log
- NESbag updated to version 2.3.020 days ago
- NESbag 2.2.1 is available24 days ago
- NESbag 2.2.0 is available28 days ago
- NESbag 2.1.0 is available30 days ago
- NESbag 2 has landed31 days ago
Comments
Log in with itch.io to leave a comment.
Thank you so much for this tool! I was able to get it setup to work with Nintendo Zapper inputs, and it works great!
Hey, glad it works! Thanks for share. :-)
Thank you for releasing this!
It might be worth clarifying this one part of the FAQ:
4. Can I publish my game on Steam with NESbag 2?
Yes, of course. There are no restrictions.
While you can publish on Steam, you won't be able to use SteamWorks.
Distributing Open Source Applications on Steam (Steamworks Documentation)
If NESbag had a more permissive license, it would really fill a gap that we have in the community.
Since it's based on Mesen, the potential of HDPacks is pretty huge too!
We've talked about this yesterday on Discord and will definitely give it a try. Have never worked with HDPacks and will check out how them work.
hi, this is great, is there a way to auto launch into fullscreen? iv tried this butu it didn't seem to launch in fullscreen
"UseExclusiveFullscreen": true,
I'm trying to get it to run on steamdeck
Hey :-) Great that it's working for you.
To start in fullscreen on start, please add a "/fullscreen" to your starting parameter.
For example: ./NESbag2 /fullscreen
Please let me know if it's working and how it's running on Steamdeck, to learn about the compatibility. :-)
The "ExclusiveFullscreen" is needed for another functionality.
Thank you for this awesome tool! I've got 2 of my NES games using it now on itch :) Next I'll look into the Mac and Linux versions. Keep up the awesome work! 🍟💬
Thank you, that it's helpful for you and thanks for using. 😍
Any way to encrypt your NES ROM to make unlicensed reproductions a little bit harder?
Hey, it would be cool if you come around on discord (Link on www.eastpixel.de) to discuss this in person. I have some ideas to implement such a thing but as the code of this is opensource I am not able to make such secure-the-ROM code public because anyone could read about how it would be done.