Jump to navigation Jump to search

MESS

Can you describe QuickPlay's MAME/RetroArch-Mame Support?

Within MAME is both all the world's arcade games, but also a great many home console and home computer games. Its an amazing resource! MAME's own UI is crap at telling you about the non-arcade stuff, since the MAME/MESS merge a few years back, its been quite difficult in MAME to actually separate out the systems that are home pc and console from arcade games, which is kind of cool but you need to treat these things very differently. That's what we do now for QuickPlay.

The arcade machine setup process is about helping you to make your own mame Romdata files, choosing which ROMS you want to present. That's fine for MAME's arcade machine games, but I realised long ago that dealing with MESS is a process of much more basic filtering as well as specialising, and not really for the end user who wants to play games. For instance we have to pick the right Commodore 64 emulator from like 300 in order to load NTSC floppies, that Genesis US isn't going to play MegaDrive Japan games, or that A2600 games needs setting up against either the PAL and NTSC emulators, or the Thomson TO7 needed a basic cartridge inserted before it could load any games from cassette or floppy disk. Add to that, a lot of games don't work, a lot of systems don't work, or the devices that load games in those devices don't work. Phew!

So that's why, for console and home-computer games in MAME, QuickPlay does all the work up front: For every system that says it has working softlists, the games that say they work are available, and the right system setup is used as an emulator call in QuickPlay to get things to load. Here's C64's romdata for MAME:

Now do be advised here that MAME is the ultimate emulator, its not a simulator, so to load C64 games you are going to need to google what the load commands were, and use them (actually, often MAME has this information in its own dat files, you can use the UI toggle once you load the system and see if that infomation exists). For cassette games, you are going to have to 'press play' on cassette, and then turn throttling off to speed up the game load if you don't want to wait. MAME has keyboard shortcuts to do all these things just look up its basic documentation, and remember there's a notes field in the Media Panel in QuickPlay against each system for you to note down how to load things as you go. If that sounds complicated, just think how complicated it feels when you are doing the same thing for the 150th time.....its more like a coffee machine where you press basically the same buttons to make the coffee, only its every brand of coffee for every coffee machine ever made ;-)

You should be aware you just got lucky: QuickPlay approaches the Console and Home PC MAME support very differently from other Frontends. Mostly that's a product of QuickPlay's EFinder system, when its so easy to setup and configuring all the MAME emulators in bulk, it leads on to higher-level stuff pretty quickly. So we doing filtering and selecting that, as far as i'm aware, you won't find anywhere else. The idea is to only see things that WORK.

When you do an E-Find scan for MAME emulators after doing a MAME Scan in QuickPlay, you get two kinds of emulators: one kind runs the MAME softlists for a systems (so will be called 'A200 NTSC Softlist` and others which are general-purpose emulators (have a look in the 'homepage' field in emulator settings for which filetypes these support) so they will be like 'A2600 PAL Europe Cart' (i.e.: each 'emulator' runs a different device like Cartridge (CART), Cassette (CASS), Floppy Disk (DISC) and so on...

Because RetroArch has a MAME core, everything I just said applies to RetroArch too. All setup and ready to go, you just need to make a couple of config changes to RetroArch. This makes QuickPlay of the better MAME/RetroArch frontends...see if you agree...

Features

Standalone Loading (non softlists)

  • automatically finds Mame/Mess/UME/Retroarch emulators that you have and sets them up in QuickPlay - not just softlists. Everything!
  • ...but only sets up emulators that actually work
  • Tags each 'emulator' with the device it supports, filters out mame 'devices' that aren't about loading games eg: midi, printer
  • Sets up a 'type system' to sensibly collect machines of the same type together
  • Gives you some text in the emulator setup to tell you what file extensions the emulator supports
  • Turns machine names into something a little easier than MAME's very-complete but often very-long names - its 'Commodore' not 'Commodore Business Machines LLC'
  • Removes machines that don't have games for them (I looked online, it took ages)
  • For machines which need some kind of media in order to load games (like a basic cartridge), ensures we call those first

Softlists

  • Only makes softlists for systems that work, and that have the right device for the softlist, and that device also works
  • Doesn't make softlist for games that say they don't work (in the softlist's hash)
  • removes softlists that have no games, and don't seem likely to ever have games
  • picks the most suitable emulator to use to run each softlist
  • Sets up the right emulator for the right region in individual softlists (is aware that 'Sweden' is in 'Europe' and the 'Europe' is 'PAL')
  • sets the corresponding icon file in MAME Extras to use for each softlist
  • adds comments for each game that were in the mame xml. Omits Japanese comments
  • Uses retroarch's 'full mame' support, so you aren't limited to cartridge-console games only
  • tweaks the chosen mame emulators for softlists for computable reasons and non-computable reasons (we want an MSX that non-Japaenese people can load games on)
  • Fixes MAME's 'softlist gamename' conflict problem, where two games on the same system have the same MAME call, but may be for two different media devices (and could be different games eg: SMB2 on NES cart/Famicom disc)

Instructions

  • Firstly make sure MAME/RetroArch are setup correctly to load games themselves (to setup in RetroArch see the instructions for modding RetroArch to use full MAME)
  • Then please follow the instructions for MAME initial setup in QuickPlay to set QuickPlay's MAME Options up and get yourself a Mame Scan (the MAME Scan sets you up to create both arcade and home computer/console sets)
  • Notice that when a MAME Scan has finished, you're advised to do an E-Find Scan - this is because the MAME Scan has found all of the Home Computer and Console Emulators that MAME is capable of running and has made you a MAME efind file (in the Efind folder in QuickPlay's root directory) customised to your MAME version called Mess_Mame.ini or Mess_RetroArch.ini. So that's why you now should run a new EFind, because that new E-Find file exists now, so run an efind for all systems in some folder that includes somewhere the MAME or RetroAch executable.

  • It should find just over 5000 emulators . One reason there are so many is because there is an emulator for each media device a system had (eg: Cassette, Floppy, Cartridge) and ones also for Softlists if the system had a softlist. That's just how MAME works, you almost always need to specify the media device in the call. The other reason there are so many is that: YOU JUST GOT MASSES OF NEW WORKING EMULATORS ;-) Here's a scan after making both a MAME, and a RetroArch MAME EFind file:

  • Now you have two new things:
  1. The ability to use MAME's (non-softlist) emulators to run any rom you like, you just got sooo many new emulators, all at once that you can use in QuickPlay to load your games!!!! So find some roms as normal (here s a tip: check out the homepage field in each (non-softlist) emulator in the emulator setup: it tells you what file formats are supported, setup the media panel for your systems as normal
  2. You got the ability to create the MAME Softlists. So let's do that now. These are the lists of suppported games for each system that MAME supplies, in QuickPlay we're going to print out a folder for each system, and inside that folder there will be folders for each softlist that system supports. So go into the Roms sidebar (Left hand side of QuickPlay) and make/select a folder to be the root of the Softlist Folders, this can be your existing MAME folder, or any other folder (nothing is written to the root, its all subfolders).
    • Go to 'Arcade Roms' > 'Print MAME / RetroArch MESS Softlist Romdatas in Current Dir', select the Mame Emulator you're going to use to run the games (remember for RetroArch this must be straight 'MAME', not UME, not MESS, not MAME2009 etc) and hit go.
  • Everything should 'just work now'. Remember that softlist calls just call MAME with a 'mameName' like 'smb' instead of file path. Which means if it works in mame, it'll work in QuickPlay
  • Setup the media panel etc to your liking (I find it helps to use the notes field against systems to say how to load Floppys and Cassettes. Although I used to have a C64, I can't often remember what it needs to load from the floppy (its LOAD "*',8,1)


FAQ

  • If you can setup the folder icons, can't you auto-setup the media panel with screenshots and history/trivia etc

I sure can, not so complex but too much work for one go. The media panel data is encoded with hex and pascal strings and all sorts. Roadmapped for 'quite sooon'. For now do it yourself

  • The softlists aren't working?

Before you hit here http://forums.quickplayfrontend.com/ just check that:

    • Did you choose the right MAME Emulator in the dialog boxes? Make it as 'straight' MAME as you can...
    • Did you first do an EFind to find a MAME Emulator, then run a MAME Scan using that emulator with the MAME XML, then do another EFind to find all those MAME Console and Home Computer Emulators. If your Softlists don't launch, saying the exe doesn't exist, that's probably why....
    • Does the game you want to play does in fact work in MAME/RetroArch outside of QuickPlay?
    • Does it work on the command line? (You can right click a rom in QuickPlay to show you the command-line its going to run, and right click the command line to copy it)

Tips

  • For Retroarch, because I went for the 'experimental' command line option to get things working, you have every system, but bear in mind that RetroArch's stuff takes precidence over MAME's stuff, which can be good and bad. Its bad when you want to access a keyboard key for a computer but its been mapped to 'Fullscreen' in RetroArch for instance (you might still be able to use the MAME menu for lock the keyboard out, haven't tried yet)
  • If you are re-running the softlist-folder generation process, please don't forget after a MAME Scan, to re-run the EFinder and overwrite your current MAME Emulators, or your list of emulators will be out of date for the new softlists you're about to make - its tempting to just go straight to generating the softlists after a new scan of the MAME XML, but then the softlists that get made won't agree quite with the emulators you have
  • Writeconfig in the mame ini has ALWAYS been a problem. Ideally you want it on (set to 1) so you can simply make computers and things work (you ALWAYS need to change keymaps for one reason or another), but once its on everything you do gets saved. The most annoying is that the last game stays loaded in whatever device it was in, causing havoc. To make matters worse, MAME's ini system is a Class-Objectbased one, meaning that if you have writeconfig enabled, every time you play a system, a new config is going to get saved based on the current state of the master mame.ini, so you're going to get lots of subtly different ini files in your ini folder over time. I don't have a great solution for this, but I know you need to do something! Ultimately you CAN'T have writeconfig turned on. I suggest you only turn writeconfig on when you have a few hours, and then spend those hours trying to setup the keys etc on every emulator you care about. Then turn writeconfig off (and that means in ALL the inis you have made in those last few hours, since every one you created now has writeconfig set to 1 - so notepad++ search and replace), only enabling it when you need to change configuration on a machine. For RetroArch, if you can't be bothered with the hassle, just make sure its off (which it is by default in retroarch's core options). Retroarch maps keys for you....