Royenroy
Posts: 5
Joined: Thu May 08, 2014 3:03 pm

Re: EmulationStation - an emulator front-end

Wed May 21, 2014 6:54 pm

Aloshi wrote:We're still chipping away at it. The todo list is finally under a page for the first time in months. :) We're getting down to the polish, which means figuring out crazy small things like rounding errors causing the last 1px-tall separator to not render in lists.

We're up to 18,000 lines of code! :shock:

A lot of work is being put into the themes by Nils, too - he's using SVG vector graphics for all the logos (which ES now has internal support for), and he's had to create a few that he couldn't find online. We can't really release a beta until (most of) the themes are ready.

No video right now, but I'll ask Nils if he thinks it's ready to show off.
I'm fairy experienced with Illustrator and I'd love to contribute to this project. If you need something like console logos in .SVG, I can help you producing them. ^^

User avatar
Aloshi
Posts: 359
Joined: Sat Jun 23, 2012 6:42 pm
Contact: Website

Re: EmulationStation - an emulator front-end

Wed May 21, 2014 7:19 pm

cacophony555 wrote:Any chance this new version will make it easy to have more than one image displayed per game? It would be great to display both the boxart and screenshot.
It's not possible right now, but this is something I'd like to add in the future. There was a cool pull request some months ago that would build a list of images from screenshots in a given directory, so screenshots you took during gameplay would show up in ES. I didn't integrate it, but it opened my mind to the possibility. To "properly" support it a little more backend work needs to be done with the MetaData classes.
Royenroy wrote:I'm fairy experienced with Illustrator and I'd love to contribute to this project. If you need something like console logos in .SVG, I can help you producing them. ^^
I'll point Nils to this thread, thanks for the offer. :)

Royenroy
Posts: 5
Joined: Thu May 08, 2014 3:03 pm

Re: EmulationStation - an emulator front-end

Wed May 21, 2014 7:24 pm

It's the very least I can do, stating you've put all this effort and time into this project for basically nothing. Emulationstation works great, and I'd love to be a part of improving it step-by-step.

Rascas
Posts: 490
Joined: Tue Mar 11, 2014 6:18 pm
Location: Porto, Portugal
Contact: Website

Re: EmulationStation - an emulator front-end

Wed May 21, 2014 7:44 pm

Hi Aloshi and everybody,

I, together with the biggest Portguese technology website, created an OS based and 100% compatible with Raspbian with Emulation Station (and all the Retropie suite), XBMC and some more pré configurations, with all-in-one and ease of use in mind. Its called Pipplware, Pi + pplware, the sites name. It was made with the Portuguese Raspberry Pi community in mind, but it is all in English except the timezone and keyboard layout (Portuguese) but it is easily changeable. Its currently on version 2.0.

I hope you dont mind about the use of ES. We made some changes to it, and to some emulators configurations to work and integrate better.

I know that there are one or two more OSs similar to this, but we think they are a bit buggy, not 100% compatible with Raspbian and not very well designed in our opinion.

So if you or anyone else are interested to take a look, here is the link for it (its in Portuguese but i think it is easily understandable with a translator):
http://pplware.sapo.pt/linux/pipplware- ... sao-final/

User avatar
Aloshi
Posts: 359
Joined: Sat Jun 23, 2012 6:42 pm
Contact: Website

Re: EmulationStation - an emulator front-end

Wed May 21, 2014 11:37 pm

Awesome! Of course I don't mind - in fact, I'm glad to see people using ES. :)

Just be aware that any changes you made will probably have to be made again from square one after the next update is ready, should you choose to use it...a lot of things have changed.

User avatar
Jessie
Posts: 1754
Joined: Fri Nov 04, 2011 7:40 pm
Location: C/S CO USA

Re: EmulationStation - an emulator front-end

Thu May 22, 2014 12:48 am

Awsome, can't wait.

johnnyo21
Posts: 2
Joined: Wed May 15, 2013 7:17 pm

Re: EmulationStation - an emulator front-end

Thu May 22, 2014 7:40 pm

I have been working on a theme for ES .. I am glad to see that the update will allow for multiple themes to be installed in a central location.

It looks like your theme engine is really well documented thus far, and it supports vector graphics! .. Can't wait!

Any idea when we might see a stable release?

nilsbyte
Posts: 5
Joined: Thu May 22, 2014 9:48 pm

Re: EmulationStation - an emulator front-end

Thu May 22, 2014 10:02 pm

Royenroy wrote:It's the very least I can do, stating you've put all this effort and time into this project for basically nothing. Emulationstation works great, and I'd love to be a part of improving it step-by-step.
Hi there ;-) i am Nils who is working together with Aloshi on ES. I am responsible for UI/UX/Usability and the stock-theme. Thanks your your offer but i have already finished all relevant platforms for the theme.

Currently supported platforms by the stock theme:

Panasonic 3DO
SEGA 32x
SEGA Genesis / Mega Drive
SEGA CD
SEGA Game Gear
SEGA Master System / Mark III
Atari 2600
Atari 5200
Atari 7800
Atari XE
Atari Jaguar
Atari Jaguar CD
Commodore Amiga
Commodore 64
Intellivision
ColecoVision
Nintendo GameBoy
Nintendo GameBoy Color
Nintendo GameBoy Advance
Nintendo Entertainment System
Super Nintendo Entertainment System
Nintendo 64
Nintendo GameCube
Sony PlayStation
PC Engine / TurboGrafx 16

Scraping MAME and Neo Geo are not supported right now, so a theme would not make sense.
Other Systems i have skipped because emulation is difficult (especially on Pi) are:

Nintendo DS
Nintendo 3DS
Sony PSP
Sony Playstation Vita

Nintendo Wii
Nintendo Wii U
Microsoft Xbox
Microsoft Xbox 360

Sega Saturn
Sega Dreamcast
Sony Playstation 2
Sony Playstation 3
Mac OS
PC

cacophony555
Posts: 140
Joined: Sat Jan 18, 2014 5:54 pm

Re: EmulationStation - an emulator front-end

Fri May 23, 2014 12:10 am

nilsbyte wrote: Scraping MAME and Neo Geo are not supported right now, so a theme would not make sense.
Can you clarify this a bit more? MAME emulation on the Pi using Emulation Station as a frontend is very popular, and ES-scraper is able to scrape and generate the appropriate metadata xml. I've also independently created my own script for generating the Emulation Station xml for MAME and FBA games in an entirely offline fashion (pulls in images too if you have them). In many ways scraping for MAME is the easiest of all platforms because of the standard naming conventions.

User avatar
Aloshi
Posts: 359
Joined: Sat Jun 23, 2012 6:42 pm
Contact: Website

Re: EmulationStation - an emulator front-end

Fri May 23, 2014 1:26 am

cacophony555 wrote:Can you clarify this a bit more? MAME emulation on the Pi using Emulation Station as a frontend is very popular, and ES-scraper is able to scrape and generate the appropriate metadata xml.
I actually never realized ES-scraper had a work-around for this! The problem is that the naming conventions used by MAME don't show up in normal scraper queries. The way ES-scraper solves this is through a query to mamedb.com to find the "real name" of the game, and then querying the scraper of choice (TheGamesDB) with that name.

This works fine for the script, but ideally ES will be able to perform the "short name" to "real name" conversion offline (and efficiently), so MAME games show up with the right name in the list without needing to be scraped first. There is an update I have planned (for the far future!) that would create a good place for this as a piece of "emulator specific" code that would feel less hackish.

But don't worry, I'm not planning on dropping support for MAME or anything like that. I'll probably just do it ES-scraper's way for now.

Also, the gamelist.xml format hasn't changed, so any scraping you've done pre-update will still work. External scrapers will probably have to be adjusted to use the new es_systems.cfg format (XML) and new directory structure (~/.emulationstation/gamelists/[system]/gamelist.xml vs. the old ~/.emulationstation/[system]/gamelist.xml).

cacophony555
Posts: 140
Joined: Sat Jan 18, 2014 5:54 pm

Re: EmulationStation - an emulator front-end

Fri May 23, 2014 1:52 am

Aloshi wrote: This works fine for the script, but ideally ES will be able to perform the "short name" to "real name" conversion offline (and efficiently), so MAME games show up with the right name in the list without needing to be scraped first. There is an update I have planned (for the far future!) that would create a good place for this as a piece of "emulator specific" code that would feel less hackish.
This sounds like what my script does:
http://webspace.lenscritic.com/mame/

I got tired of the unbearably slow performance of ES-scraper, so mameGenXml.pl will create the xml file and generate real names based on the included association file (eg. galturbo->"Galaxian Turbo"). It does it entirely offline so it only takes a second, and will incorporate images into the xml as well if they already exist in the same directory.

Feel free to use any or all of it :)

User avatar
Aloshi
Posts: 359
Joined: Sat Jun 23, 2012 6:42 pm
Contact: Website

Re: EmulationStation - an emulator front-end

Fri May 23, 2014 2:11 am

Neat! How'd you generate the associations list? I might not use this immediately, but I'll keep it in mind, thank you. :)

cacophony555
Posts: 140
Joined: Sat Jan 18, 2014 5:54 pm

Re: EmulationStation - an emulator front-end

Fri May 23, 2014 3:44 am

Aloshi wrote:Neat! How'd you generate the associations list? I might not use this immediately, but I'll keep it in mind, thank you. :)
I used the "listxml" option. I can't remember if mame for pi supports it but older Windows/DOS versions of mame definitely do.

So I did something like:

mame --listxml > output

Then I grabbed out the lines I wanted:

grep -e '<game name' -e '<description' -e '<year' -e 'manufacturer' output > metadata.xml

Then I used a little bash script to reformat the data the way I wanted.

KitchUK
Posts: 256
Joined: Fri Jul 19, 2013 5:40 pm

Re: EmulationStation - an emulator front-end

Fri May 23, 2014 9:36 am

Hi Nils, Could you still add MAME and Neo Geo themes for people who want to manually input game information? Neo Geo is one of my most played systems! :D

Royenroy
Posts: 5
Joined: Thu May 08, 2014 3:03 pm

Re: EmulationStation - an emulator front-end

Fri May 23, 2014 2:41 pm

nilsbyte wrote:
Royenroy wrote:It's the very least I can do, stating you've put all this effort and time into this project for basically nothing. Emulationstation works great, and I'd love to be a part of improving it step-by-step.
Hi there ;-) i am Nils who is working together with Aloshi on ES. I am responsible for UI/UX/Usability and the stock-theme. Thanks your your offer but i have already finished all relevant platforms for the theme.
Oh, that's great to hear. However, if you ever need a helping hand, don't hesitate on messaging me. ;)

nilsbyte
Posts: 5
Joined: Thu May 22, 2014 9:48 pm

Re: EmulationStation - an emulator front-end

Fri May 23, 2014 8:08 pm

KitchUK wrote:Hi Nils, Could you still add MAME and Neo Geo themes for people who want to manually input game information? Neo Geo is one of my most played systems! :D
Okay i will do them. I have to vectorize the MAME logo because all of the vector-based ones from the net are too inaccurate for my taste.

KitchUK
Posts: 256
Joined: Fri Jul 19, 2013 5:40 pm

Re: EmulationStation - an emulator front-end

Fri May 23, 2014 8:28 pm

nilsbyte wrote:
KitchUK wrote:Hi Nils, Could you still add MAME and Neo Geo themes for people who want to manually input game information? Neo Geo is one of my most played systems! :D
Okay i will do them. I have to vectorize the MAME logo because all of the vector-based ones from the net are too inaccurate for my taste.
Greatly appreciated! Very excited to see your work and the new ES.

User avatar
Jessie
Posts: 1754
Joined: Fri Nov 04, 2011 7:40 pm
Location: C/S CO USA

Re: EmulationStation - an emulator front-end

Sat May 24, 2014 4:48 am

KitchUK wrote:
nilsbyte wrote:
KitchUK wrote:Hi Nils, Could you still add MAME and Neo Geo themes for people who want to manually input game information? Neo Geo is one of my most played systems! :D
Okay i will do them. I have to vectorize the MAME logo because all of the vector-based ones from the net are too inaccurate for my taste.
Greatly appreciated! Very excited to see your work and the new ES.
Same here. Thanks for doing this for the community.

nilsbyte
Posts: 5
Joined: Thu May 22, 2014 9:48 pm

Re: EmulationStation - an emulator front-end

Sat May 24, 2014 5:41 pm

cacophony555 wrote:Then I used a little bash script to reformat the data the way I wanted.
Can you provide this bash script?

cacophony555
Posts: 140
Joined: Sat Jan 18, 2014 5:54 pm

Re: EmulationStation - an emulator front-end

Sat May 24, 2014 11:51 pm

nilsbyte wrote:
cacophony555 wrote:Then I used a little bash script to reformat the data the way I wanted.
Can you provide this bash script?
The script I had on my drive was out of date unfortunately. I made some modifications here but it's untested. At the very least it should get you most of the way there.

Code: Select all

#!/bin/bash
N=0;
cat metadata.xml | while read line;
do
   N=$((N+1))
   if [ $N == 1 ]; then
      result=$(echo $line | sed 's/^<game name="\(\w*\)".*/\1/')
      output=$result
      output+=" \""
   fi
   if [ $N == 2 ]; then
      result=$(echo $line | sed 's/^<description>\(.*\)<.*/\1/')
      output+=$result\"
   fi
   if [ $N == 4 ]; then
      N=0;
   fi
done

User avatar
Aloshi
Posts: 359
Joined: Sat Jun 23, 2012 6:42 pm
Contact: Website

Re: EmulationStation - an emulator front-end

Thu May 29, 2014 2:20 am

cacophony555 wrote: The script I had on my drive was out of date unfortunately. I made some modifications here but it's untested. At the very least it should get you most of the way there.

[snip]
Thanks! I used a similar approach based on your script to generate a .cpp file that works as a simple table. ES now properly "translates" MAME rom names into full titles. It only supports one romset currently (the latest), but it's really just a temporary hack until I get my more involved long-term solution implemented. I think it's good enough for now; the built-in scraper works correctly with MAME now.

(I actually tried various approaches to implement it as a static map instead of a table, but this led to various compiler issues, like MSVC using 4gb of RAM then giving up. So just don't try to use all 30,000 possible MAME roms at once.)

cacophony555
Posts: 140
Joined: Sat Jan 18, 2014 5:54 pm

Re: EmulationStation - an emulator front-end

Thu May 29, 2014 6:13 am

Aloshi wrote: Thanks! I used a similar approach based on your script to generate a .cpp file that works as a simple table. ES now properly "translates" MAME rom names into full titles. It only supports one romset currently (the latest), but it's really just a temporary hack until I get my more involved long-term solution implemented. I think it's good enough for now; the built-in scraper works correctly with MAME now.
Nice, glad to hear! :D
I'm guessing the latest romset mappings are usable for all earlier romsets as well, so it will likely be very useful. The romset typically used for mame emulation is a very early version with only 2270 roms, but knowing about all 30k won't hurt assuming performance or memory isn't impacted too much.

KitchUK
Posts: 256
Joined: Fri Jul 19, 2013 5:40 pm

Re: EmulationStation - an emulator front-end

Mon Jun 02, 2014 1:22 pm

Aloshi, will the new ES alow you to launch certain emulators on a per game basis at all? Some emulators run some games better than others. The only way around this at the minute would be to create a completely separate system folder and new launch command in the es_systems.cfg

User avatar
Aloshi
Posts: 359
Joined: Sat Jun 23, 2012 6:42 pm
Contact: Website

Re: EmulationStation - an emulator front-end

Mon Jun 02, 2014 3:29 pm

You can actually do this with the current version of ES if you use a bash script.

This is not battle-tested and I'm bad at bash, but this should get you started:

Code: Select all

#!/bin/bash

# usage:
# gamelaunch.sh path/to/rom.sfc

# arguments:
# $1 - the path to the rom


# how to launch if the game isn't using one of the "custom" emulators
defaultemulaunch="retroarch --lib pocketsnes.so \"$1\""

# a list of games for the first emulator + the launch command
# warning: these are case sensitive and should include the extension; 
# they must match the command "basename [path/to/file.whatever]" exactly
emu1names=(\
	"Super Mario World.sfc"\
	"The Legend of Zelda - A Link to the Past.sfc"\
	"EarthBound.sfc")

emu1launch="snes9x \"$1\""


# what we're searching for
# basename strips leading directories off of the filename
gamename=`basename "$1"`

for index in ${!emu1names[*]}
do
	game=${emu1names[index]}
	if [ "$game" == "$gamename" ]; then
		# found it, launch the emulator and quit
		exit `$emu1launch`
	fi
done

# it wasn't in the list, launch the default emulator, something like:
exit `$defaultemulaunch`
Then set your ES launch command to be "path/to/my/gamelaunchscript.sh %ROM%".

But to answer your question, no, there is no custom launch command setting...at least not yet.

KitchUK
Posts: 256
Joined: Fri Jul 19, 2013 5:40 pm

Re: EmulationStation - an emulator front-end

Mon Jun 23, 2014 11:59 am

Hi Aloshi, thank you for above info :) Hows the new ES coming along? I cannot wait!

Return to “Gaming”