EmulationStation 2.0.1a

It's finally time for the release of EmulationStation 2.0.1a, which has a few minor fixes and a couple new features. (I hope I didn't break anything.)

  • UTF-8 Unicode support! ES can now display glyphs from non-English languages (like Japanese), and most common non-ASCII characters work.
    • Here’s an example of Japanese text rendered in ES:
    • If a font is missing a glyph that something needs, ES will try to fall back to a system font. The system font list is not exhaustive and is operating system dependent, so if your language isn't working, please open a GitHub issue with a suggested font that everyone on your operating system should already have.
    • IME input is still kind of broken. If enough people want this I'll try and add it, but I don't expect many people to be entering much text in ES in the first place.
  • Re-added the "Jump to Letter" functionality (press select in the game list)
  • Add Vsync, enabled by default (no more maxing out your fan!)
  • Added some older MAME ROM names (based on MAME 0.37b5), thanks to joolswills
  • Added the 'msx' platform (for platform tags)
  • %ROM% and %ROM_RAW% now give a path with backslashes on Windows (some programs, like VLC, complained about forward slashes even though Windows officially supports them)
  • %ROM% works properly on Windows now – it is equivalent to "%ROM_RAW%"
  • Fixed some memory leaks when scraping, huge thanks to deadbeef84
  • Non-ASCII paths should work on Windows now, though some emulators don't support them (ES now uses _wsystem() instead of system() on Windows)
  • Hide the console window on Windows unless the "–debug" argument is present (Windows). Launching a game currently still opens a command prompt window, though.
  • Don't reset system volume on program exit (only affects Linux)
  • Fixed "ENABLE SOUNDS" setting being backwards (oops)
  • Fixed using more than one tag a launch command not replacing past the first tag
  • Fixed shutdown and restart commands not working on Windows
  • Fixed entering release date in metadata editor from "unknown" causing the new date to be cut off
  • Fixed page up/page down not being caught by date editor
  • 2.0.1a: fixed scraping crashing due to last-minute changes in 2.0.1

Nils has also updated the default themes, now on v1.4:

  • Reduced background images to 720p. Since they're blurred already, this is completely unnoticable, and saves a ton of VRAM (almost 50%!)
  • Optimized some blurred system backgrounds where banding occured.
  • Added systems:
    • Microsoft XBox
    • SEGA Saturn
    • SEGA Dreamcast
    • Nintendo DS
    • Nintendo Wii
    • Sony PlayStation 2
    • Sony PlayStation Portable
    • MSX
    • SNK Neo Geo CD
    • Magnavox Odyssey 2
    • GCE Vectrex
    • Nintendo Virtual Boy
    • Bandai WonderSwan
    • Bandai WonderSwan Color
    • Atari Lynx
    • Nintendo Family Computer (Famicom)
    • Nintendo Super Famicom
    • SEGA Genesis
  • Updated systems:
    • SEGA Mega Drive (used to display Genesis logo/text, which has been moved into the “genesis” system)

New Themes in Simple  v1.4

All of these changes are in the new 2.0.1a release, available now on the EmulationStation website!

If you have an existing installation, you should be able to install 2.0.1a over top of it (but note that if you choose to reinstall the default themes, it will overwrite any modifications you have made). It is strongly advised that you back up your $HOME/.emulationstation folder before updating.

New Forum

There is also a new official EmulationStation forum! If you are looking for help, you might be able to get it here. I'm also trying to move feature requests off GitHub and onto the forum, as the GitHub issue tracker is pretty packed right now.

The Future

There is another change I've been working on that isn't quite ready for release yet (and been promising for quite a while): a rewrite of the metadata storage code to use an SQLite database instead of XML. This speeds up saving considerably for large game lists, which gets rid of some of the long hangs seen during scraping and makes ES close instantly. The way files are stored internally has also been reworked to match this database, which makes it possible to do useful queries and sorting via SQL. It's also easy to import/export the current XML format to/from the database. This change was just merged into unstable. I would appreciate testing, since it changed a lot of stuff.

A community member by the name of sselph built a nice checksum-based scraper, which means it matches games based on the content of your ROM file rather than the name of that file. This almost guarantees no false positives, making scraping waaay faster and waaay more accurate. It's been merged into the unstable branch as well. The ES scraping system could use some work to support multiple scraper fall-through (when one scraper has no results, go to the next one) and scrapers with certain plaform affinities.

Development has been pretty slow. I've been busy with school and work (I finally have a programming job!), and the time I do have hasn't been spent working on ES. I am sure this is frustrating for many of you who would like to see new features. This might get better come summer, where I'll only have work and no classes. Here's some stuff that I'd like to work on in the future:

  • Add the ability to configure emulators from within ES (including setting controls). This requires some pretty serious design work and is something I'd like to at least lay the groundwork for myself.
  • Add another type of game list view that shows games by image (sort of like an album view).
  • Make it easier to set up ES, especially on Windows. As it stands, ES needs some work to handle the systems list changing while ES is running. The gamelistdb branch is starting to take steps towards this. Ideally, this could be integrated with the "configure emulators" stuff to provide some simple autodetect system (give ES a bunch of emulator directories, have it automatically detect which emulators are present). An external tool might be an easier way to do this.
  • Try porting ES to Android. SDL2 supports Android, and ES uses OpenGL ES 1.x to render everything. I think most of the libraries ES uses will work on Android. Touch control would not be supported. This will probably entail a couple days of fighting with build systems. If anyone else wants to give this a shot, go for it.
  • Add a "UI Language" option to ES. DigitalLumberjack has already done some work on this.

And finally, thanks for the huge amount of support you guys have shown.

Leave a Reply

Your email address will not be published. Required fields are marked *