Jnes is an emulator for the original 8-bit Nintendo Entertainment System
(NES) with an enjoyable and intuitive user interface which has been translated into 20 languages.
Whether you are looking to instantly save your game progress or record a movie for friends you'll find it here. Compatibility tends to focus on North American and
European games, although there is support for many popular Japanese games.
Jnes for Windows
Jnes on Google Play
When I made the decision to introduce Jnes back to the
Google Play store in early 2017, I knew that making it free to
download and missing two years of Android platform changes would make
it an uphill battle to provide a stable build of Jnes, but I didn't quite anticipate how much.
The first decision to make was deprecating support finally for
Gingerbread 2.3 and supporting Jelly Bean 4.1 and higher.
Gingerbread was old, often single-core, and OpenGL never worked well.
Removing this code simplified the platforms to test, but it didn't make up for the the amount of time
spent with the Storage Access Framework.
The SAF as it is called, was introduced in Android 4.4 KitKat as an alternative way to access storage compared to the standard Java
File class. The idea being that by introducing another abstraction to files and folders based on a
Uri, Android could provide better security
and extend storage beyond the local file system to any provider. To me at least this didn't become usable for general purpose storage browsing until
Android 5.0 Lollipop with the introduction of the
flag which allowed developers to make entire directories available to applications, like Jnes.
While I successfully ignored this for many years! It became obvious in 2018 (when Google Play required developers
to target newer versions of their SDK) that most newer phones were preventing
access to the file system outside of the Storage Access Framework, which of course broke Jnes for Android.
Over the course of more than two months, and a lot of frustrated users, I was able to switch over to
the new storage framework. The rewrite was definitely worth it as the new storage framework, combined with
new user experience on startup in Jnes made things much easier.
I'm happy to say that the Jnes release from April 2019 marked a stable chapter for Jnes on Android. If you gave Jnes
a try previously and ran into problems I would suggest trying it out again, it may work better. Overall developing anything
of significant quality for a mobile platform is a lot of work, I will be avoiding it for any projects I work on for personal enjoyment.
What I Learned
Here are some technical reflections and things that I learned about Android storage:
I didn't really ever think about how much storage access was there until I had to rewrite it all
If you need to support older phones you need two sets of storage code
The helper class for
DocumentFile is generally not as easy to use as Java's traditional
Every storage provider may decide to just not implement some functionality
SingleDocumentTree is missing functionality
that you may need
You can't rely on being able to parse the storage
Uri, although most people rightfully try to
After watching the beta release for a few months I've decided to make Jnes available in the public store again. Thanks to everyone who participated in the beta release and helped make sure Jnes still worked with all the changes to make it freely available.
This update includes a few bug fixes related to network connectivity for anyone who decided to add the extra features. If you downloaded the beta previously be on the lookout for the production releases, I don't know how those are handled.
While I'm excited to see Jnes back in the store again I'm a bit ambivalent about what will happen now, fingers crossed!
A year ago Jnes got suspended from the Google Play, and despite an appeal they were not willing to change this. The entire transition from having a well regarded app to nothing was jarring given countless hours spent coding. I tried to forget about this and focus on other things for a while.
Figuring out how to move forward from here was a tricky puzzle others have experienced. In my case, I didn't want to change the app or alienate anyone who funded development by purchasing it. However after a year of watching Jnes sit on the shelf, I decided to publish a free version with the all the base functionality you would expect from an emulator, there is an in-app purchase for extra features like Bluetooth Netplay. You can download the new beta release here
I felt this approach was the simplest compromise to make Jnes available again and let more people enjoy it. I'm hopeful changes I've made to the app, and Google improving it's developer support, will make this unlikely to happen again, but there are no guarantees. A special thanks to everyone who supported Jnes on the Android previously, this wouldn't have been possible with you. Whether you buy the extra features or not, I know you'll enjoy using this app to play games, please let me know.
After the holiday release, user feedback indicated that game pad input POV hats were not working and Windows XP support was in fact broken as expected. I'm happy to say with a modest amount of work both of these issues should be fixed in this release, enjoy!
☃ Merry Christmas everyone!
It's been a year since I've posted here, but even longer since a
release for Jnes for Windows, over three years in fact. Since the
last Windows release there were pretty big changes under the
hood to get Jnes to work on Android, and in the background I
have been trying to also improve the accuracy of the emulator.
While Jnes has a proud tradition of playing most games, there are
some subtle hardware behaviors that Jnes was not able to
emulate correctly. I've made some progress on improving that in
this release, you are unlikely to notice it unless it breaks
something. Cheats also got reworked significantly, editing should
be stable. There are a slew of new awesome cheat
codes from Gent,
please give him some thanks for all his hard work in helping put this release together.
Lastly this update brings a much needed upgrade to DirectX 9.0,
which should modernize Jnes on newer versions of Windows, as
well as a native 64-bit version which is just nice to have. It was
discovered during testing that this version may not work on
Windows XP any longer, and I'm not sure why. I decided to move
ahead with the release rather than delay it.
My hope is that this release brings some joy to the world, for
those of you who have been anticipating a new release for a
while please accept this gift with warmest regards, I hope it has
something you were looking forward to. I might be getting a bit
older, but the world seems like it could use a bit of joy and
understanding from each other now more than ever. Please
pass some joy forward to others, especially at this time of year.
I'm sorry to inform everyone Jnes has been removed from the store by Google on December 2nd. After contacting Google several times this week, I have received a response indicating that they have declined to put the application back into the store due to perceived copyright infringement. Knowing that there are users that have downloaded the app already I decided to write a blog post now that I know it's not returning.
As things sit right now my account is suspended and I am unable to distribute anything, contact Google Play support with any questions or if you want to convince them to put it back.
Going into this I knew that being removed was a possible outcome!
It seems like Google Play has become a walled garden and provides little consideration to developers and users. Thanks to everyone that supported this, wish it didn't end up like this.
I haven't been posting news here about updates to the Android version, but since it's release a few years ago there has been many improvements. Recently I uploaded a new version to the Google Play store that has the following changes:
- add your own game genie cheats!
- dropbox sync works again
- added migration from app storage for saves
Special thanks to Charles for letting me know about the bugs!
Since the last release there has been some important bugs fixed and I'm happy to say the Android version has allowed me to spend more time improving emulation compatibility and working on Jnes in general. Thanks to everyone who has supported Jnes in Google Play! The Android version has been quite an interesting project, the feedback and help from everyone has been great, I'm truly impressed with the Android community.
Today I wanted to finally get an updated version of the Windows binaries out that has these improvements as well as things that a few users have asked for. While this is a minor update I think it has a lot of key things that everyone will enjoy, I didn't want to wait longer. I know many have been waiting patiently for this update, for a full list of changes see the downloads area.
Jnes is now available for Android 2.3 platforms and higher on
This is exciting for me as it is the first platform I've ported Jnes to in
the many years I have been working on it. I decided to port Jnes
as I have been using Android devices for about a year now, and it
has become apparent that there is probably more people using
these mobile devices than Windows computers. There are many of
the same features in the Android version, with more to come.
It just got added to the store yesterday I'll be posting screenshots
here as soon as I can.
I'm happy to release 1.1 finally, it has a few key features users have been asking for a while, such as HQ filters and that cheat search Gent waited a few years for! Additionally there is many bug fixes that make this a worth while update. One enhancement I'm particularly excited about is the new browser box-art rendering, it's a nice step up from the previous release if you are using that.
As always many thanks to Gent for his motivation and help over the last few years, as well as the users who have left feedback during that time as well.
I've added an additional download that collects all the languages since the 1.0.2 release, you can find it in the downloads section. Also due to popular demand I've added a download for the latest version as a zip archive.
Thanks to everyone who has submitted new files or updates!
In the last release display filters in full screen were not working and I've noticed a few users have been asking about it recently. I've uploaded a maintenance release that should fix this issue, as well as a few others that have accumulated over time.
This release also features a new installer using NSIS, which gives the project some nice polish. Also take a look at the translations included, we could use a few asian catalogs, if anyone wants to contribute a new language please leave a comment with a link to it.
Since the release last year I've been working when I could on fixing bugs that cropped up over the last few months to put out a subminor maintenance release. This release also includes all of the languages that have been submitted to me either here or on Emutalk, putting this package together was a bit of a challenge since I also wanted to keep track of who submitted what. I tried to squeeze as much into this release as practical so hopefully a few people will notice things they had been asking for.
As always want to take the opportunity to the thank my Beta Team, Gent for his never ending support as well as squall_leonhart and Iconoclast for staying with me as I tried to get these bugs fixed. At this point I'm pretty content with Jnes for the near term, my focus will be keeping it stable and probably trying to do some new things. If you haven't noticed Project64 has awaken again so I might dabble in that a tad, always something to be done eh.
Just thought I would update everyone with some recent developments in the Jnes site. so far I've received a lot of language translations, and I want to thank everyone.
- Russian (usbsoft.ru)
- French (The Siskoo)
- Lithuanian (YoshiDX)
- Portuguese (Ly Mathews)
- Polish (hiryu)
- Finnish (Bippo)
- Tatarish (u_u86)
Definitely looking for a few more languages if possible, perhaps some more Asian or European ones to round out the selection. If you are interested in translating simply open up the en.msg.example file in the languages subfolder to get started, when you're done post a link here or on the Emutalk forum.
Also of note is the Jnes 0.6 palette is now available for download, along with an Artwork pack done by Gent for US games in the Other Files section. If you've been wanting to check out the artwork feature this is a good opportunity to snag some boxart.
I decided a few months ago that it was time for another release as
there was enough accumulated changes to start a release effort
up again. This release has some really cool new stuff and also
has a version number that reflects the maturity of the project.
You can find a full changelog and release in the downloads section,
here are the top three things
- Localization support
- Kaillera full screen chat
- Movie capturing
One feature I've wanted to try for a while was recording movies with Jnes. With video sharing websites like YouTube
so prevelant and accessible, this kind of feature is particularly meaningful these days. I decided to take a simple approach to this implementing this for the next version, similar to other emulators.
The feature breaks down into a recording mode that captures and initial jnes save state and subsequently records input at each frame to file. The playback mode can obviously then restore this movie and play it to the screen. While playing a movie back you can capture this to an AVI File using compression codecs such as XviD
and DivX with audio.
One of the things I've ignored for quite a few years is allowing most of the user interface to be translatable (L10N to those in the biz). I decided a few weeks ago to get Jnes working in Unicode so I could play around with it and I got most of the user interface to allow external message catalogs, check out japanese.
The only downside of releasing in Unicode is that it will no longer support windows 98/ME, I'm not sure this is a big deal, worst case users of those platforms can continue to use 0.6, but this is your opportunity to voice an opinion.
Most of the menus are now translatable, and the dialogs as well. The catalog itself is encoded in UTF-8, I know that will be a welcome design choice to many of our friends in other countries as well! There is many more suprises in store for the next version, till next time!
I've neglected the website for quite some time, I hope with the new content system it will give me a way to make it significantly more interactive and useful. To that end I've added a section to the website for save states for Jnes, these are mostly ones I've had lying around or ones I've found on websites here and there. I thought I would add them up here for people to enjoy, if you have any you would like to see up here just reply to this post with a url to a site I can download it.
There is a good library of states up, check out this section at the top navigation section.
The latest jnes release is now available for download on the site, the major new things are the cheats interface, the updated rom browser and better input device support.
In the short term I'd like to issue a small update that fixes a few minor issues with this release, look for 0.6.1
This was released back in June, so I decided while I was reformatting some of the website to put this new version up. For those of you who haven't downloaded it from the message board, the most notable bugfixes in here are for windows 98 and netplay.
The next release isn't due out for a while, this version is more or less stable enough to end the 0.5 series, stay tuned for the next release.
I see people are downloading old versions from this website, so I'm uploading the latest version that is on the message board for your convenience.