Describe QuickPlay's MAME/Retorarch-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 process MAME is about helping you to make your own mame Romdata filesi, 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, or 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, and so on. 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. So I do all the work up front. Here's C64's romdata for MAME:
I think i've approached the Console and Home PC MAME support very differently from other Frontends. Mostly that's a product of QuickPlays EFinder system, I was in control of setting up and configuring all the MAME emulators, but it was easy and done in bulk, so it led me on to higher-level stuff pretty quickly.
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 RetorArch RetroArchMameMod. I think that makes this one of the better MAME/RetroArch frontends...see if you agree...
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)
- 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
- Firstly make sure MAME/retroArch are setup correctly to load games themselves (to setup in RetroArch see RetroArchMameMod)
- Follow the instructions for MAME setup MAME to set QuickPlay's MAME Options up and get yourself a Mame Scan
- 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 customised to your MAME version
called Mess_Mame.ini or Mess_RetroArch.ini. Now you have that new E-Find file, run an efind for all systems in some folder that includes somewhere the MAME or RetroAch executable
- It should find just over 5000 emulators
- Now you can use MAME's non-softlist emulators to run any rom you like - find some roms as normal Adding_Roms - 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 Media_Panel for your systems as normal
- Now its time for the best bit: the MAME Softlists. 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)
- 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)
- 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)
- 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....