Jump to navigation Jump to search

OLD MESS: Difference between revisions

No edit summary
 
m (Butter100fly moved page MESS to OLD MESS without leaving a redirect)
 
(25 intermediate revisions by the same user not shown)
Line 1: Line 1:
Quickplay's Efinder now includes all MESS emulators (even some which don't work in MESS yet (they are noted as such and included as one day they will work))


So just run an Efind making sure your mess emulator is included in the search path
[[File:MAME-MESS-a2600.png|500px]]
[[File:MAME-MESS-MSX.png|500px]]


Get ready for it to find A LOT of emulators though: this is often because MESS needs a particular call to each emulator depending on what your rom is - is ifs a tape image for c64 we must call mess.exe c64 -cass %ROMNAME% but if its a disk call we must call mess.exe c64 -disk %ROMNAME%
==What is this new MESS support then?==
Its a couple of Efinds and a couple of sets of romdata folders, both essentially with the same content but one is for RetroArch's MAME (non-arcade-games) emulator, and the other is for MAME (non-arcade-games) directly.


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.


Now you can select the MESS emulators found to call your rom in quickplay, and you suddenly have a really good idea of just how vast the mess project is!
The arcade machine process [[MAME]] is entirely separate from this and is about helping you to make your own mame Romdata file. That's fine for MAME's arcade machine games, but I realised long ago that dealing with MESS is a process of constant filtering as well as specialising. The old adage is true: because its a MESS, it needs sorting out. For instance I've been playing around with software lists since they were first introduced to MESS, so I know all of their foibles well enough to be able to code against them. I know we have to pick the right Commodore 64 emulator from like 300, to load NTSC floppies, I know that Genesis US isn't going to play MegaDrive Japan games, I know that its not fun setting up the a2600 PAL and NTSC emulators by hand. I know a lot of games don't work. So I do all the work up front.


You can use Tempest's MESS magician if you have mess softlist roms - please see that in the tools section - amongst other things, MESS magician can change the command line run for each rom so that softlist roms are called in exactly the way MESS wants them (this often doesn't matter too much tho, just occasionally) - with softlists you call mess but then just the name of the game eg: mess.exe c64 -cass %SANXION% - quickplay achives this by calling "%ROMMAME%" instead of "%ROM%" (note the "M" - its not a spelling mistake)
We used to have the approach of allowing you to make any softlist manually, and E-found lots of EMUs, some of which didn't work, for you to filter through. Now here's the opposite approach, and is quite spectacular: I've coded the setup of all of the Console and Computer emulators that work in MAME, and for the software list emulators, Ive coded the creation of folders of QuickPlay romdatas. Here's C64's romdata for MAME:


So the command line for mess is
[[File:MAME-MESS-c64.png|500px]]


[mess.exe or mess64.exe] [system] [media type] [rom location] [and i stuck -now at the end but I don't think you need to really]
I think i've approached MESS/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.


and for softlists its
Currently (may 17) they're built off MAME 0.170 (I'm a bit behind, but a lot of this is established stuff and doesn't change that much). Will update soon.


[mess.exe or mess64.exe] [system] [media type] [name of rom] [and i stuck -now at the end but I don't think you need to really]
Because RetroArch has a MAME core, everything I just said applies to RetroArch too. All setup and ready to go. I think that makes this one 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)
 
===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
 
[[File:MAME-MESS-to7.png|500px]]
 
==Instructions==
 
* Firstly make sure MAME/retroArch are setup correctly to load games themselves (see below for a couple of extra steps for RetroArch)
 
===For the non-softlist Emulators===
 
====Steps For existing users only upgrading from something less than QuickPlay 4.2.0====
* Existing users might be accustomed to just pasting over your install. This time, I want you to do 2 things, both are in a new folder in the root of Quickplay: 'updates'
 
(1) Run the exe in that folder (if you want to know what's in it look in src - It renames systems in multiple places in QuickPlay - its important this time around because a lot of system names
have changed, and some important ones (like "Game Boy") and I don't want you to have to check this by hand
 
(2) New users get a systems.dat if they start from scratch, but this time you REALLY need that dat if you're going to use the new MESS/MAME/Retroach stuff. Please replace your existing dats/systems.dat
with this file, but have a look whether you have any system names i've missed (its just the simplest text file imaginable). You can just paste them in (or keep your old file and paste them in later if you encounter a problem)
 
[[File:move-new-systems-dat.PNG|500px]]
 
====For all users====
* Run an efind for all systems in some folder that includes somewhere the MAME or RetroAch executable (if your MAME executable is called something other than Mame64.exe or Retroarch.exe, get out notepad++ and
search and replace in Efind/mame.ini or retroarch-mame.ini to change to the name you do have)
 
[[File:Efind2.PNG|500px]]
 
* It should find about 5000 emulators (i'm not exaggerating - If you have both MAME and retroarch you'll get somehwere under 1000 emulators)
 
[[File:Efind.PNG|500px]]
 
* 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
 
[[File:RetroArch-MESS-apple2gs.png|500px]]
[[File:RetroArch-MESS-Odyssey2.png|500px]]
 
===For softlists===
 
 
* You need to setup the emulators for the softlist folder to work - so do the above first
* Go into the Tools sidebar (that's the last tab on the left-hand-side of QuickPlay where there are 4 tabs (ROMs, Searches m Emulators and Tools), and double-click either MAME Softlists or RetroArch softlists (or both if you want)
[[File:toolsItemsSoftlists.PNG|500px]]
 
* All that really does is move the folders from the tools folder to your live Data folder. But you need to refresh to see that, go back to the ROMs tab of the sidebar, then hit the icon below (or press F5)
 
[[File:refresh_button.PNG|500px]]
 
* To get icons working, use the menu item in QuickPlay's Appearance options menu to setup your path to the mess icons
 
[[File:mame_icons_dir.PNG|500px|Efind the MAME / RetroArch Emulators]]
 
* 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)
 
===For Retroarch===
 
By default Retroarch has a limited software list mode that supports loading carts only by default, basically limiting us to cart consoles (I eventually understood this from https://www.libretro.com/index.php/mamemessume-cores/).
To use it you need to specify the full rompath in each call. I didn't like either of those things, I wanted to be able to use full MAME from RetroArch. Which you can do like so:
 
* go into your RetroArch root folder. Open up or make retroarch-core-options.cfg. You need to change/set these 4 things, as they are not the defaults (everything else is fine at default):
  mame_read_config = "enabled"
  mame_saves = "game"
  mame_boot_to_osd = "enabled"
  mame_boot_from_cli = "enabled"
* Once you've enabled those settings and saved the config, if you don't have one already, create yourself a mame.ini file using RetroArch. Open a command-line window in RetroArches root directory and enter:
    retroarch_debug.exe -L cores\mame_libretro.dll " -createconfig"
 
* That will make a mame.ini in that folder, move it to RetroArchs folder: system\mame\ini ie so in your RetroArch root folder you now have a system\mame\ini\mame.ini. (retroarch will now read this,
but overrides some of the settings in the ini, like read_config, with the settings in its retroarch-core-options.cfg)
 
* Put the path to your mame roms in that ini file, so in my case i went
    rompath                  "F:\MAME\ROMS"
(your software list roms should be in that path). Setup additional stuff as you like
 
* Now retroarch knows where your games are, you can send MAME arguments as you would do with MAME natively, and you can access the MAME menu when you're playing games. Which means you can play all emulators
and load all softlists
 
===FAQ===
* Can I make my own softlist folders/MAME emulators using some tool?
No, not at the moment, its on the roadmap. I promise to keep this up to date
 
* 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. Roadmapped for 'quite sooon'. For now do it yourself
 
* Its not working?
Before you hit here http://forums.quickplayfrontend.com/ just check that 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)
 
* Writeconfig in the mame ini is always 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....
 
[[File:MAME-MESS-PV1000.png|500px]]
[[File:RetroArch-MESS-x68000.png|500px]]

Latest revision as of 19:54, 21 November 2017

What is this new MESS support then?

Its a couple of Efinds and a couple of sets of romdata folders, both essentially with the same content but one is for RetroArch's MAME (non-arcade-games) emulator, and the other is for MAME (non-arcade-games) directly.

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 entirely separate from this and is about helping you to make your own mame Romdata file. That's fine for MAME's arcade machine games, but I realised long ago that dealing with MESS is a process of constant filtering as well as specialising. The old adage is true: because its a MESS, it needs sorting out. For instance I've been playing around with software lists since they were first introduced to MESS, so I know all of their foibles well enough to be able to code against them. I know we have to pick the right Commodore 64 emulator from like 300, to load NTSC floppies, I know that Genesis US isn't going to play MegaDrive Japan games, I know that its not fun setting up the a2600 PAL and NTSC emulators by hand. I know a lot of games don't work. So I do all the work up front.

We used to have the approach of allowing you to make any softlist manually, and E-found lots of EMUs, some of which didn't work, for you to filter through. Now here's the opposite approach, and is quite spectacular: I've coded the setup of all of the Console and Computer emulators that work in MAME, and for the software list emulators, Ive coded the creation of folders of QuickPlay romdatas. Here's C64's romdata for MAME:

I think i've approached MESS/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.

Currently (may 17) they're built off MAME 0.170 (I'm a bit behind, but a lot of this is established stuff and doesn't change that much). Will update soon.

Because RetroArch has a MAME core, everything I just said applies to RetroArch too. All setup and ready to go. I think that makes this one 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)

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

Instructions

  • Firstly make sure MAME/retroArch are setup correctly to load games themselves (see below for a couple of extra steps for RetroArch)

For the non-softlist Emulators

Steps For existing users only upgrading from something less than QuickPlay 4.2.0

  • Existing users might be accustomed to just pasting over your install. This time, I want you to do 2 things, both are in a new folder in the root of Quickplay: 'updates'

(1) Run the exe in that folder (if you want to know what's in it look in src - It renames systems in multiple places in QuickPlay - its important this time around because a lot of system names have changed, and some important ones (like "Game Boy") and I don't want you to have to check this by hand

(2) New users get a systems.dat if they start from scratch, but this time you REALLY need that dat if you're going to use the new MESS/MAME/Retroach stuff. Please replace your existing dats/systems.dat with this file, but have a look whether you have any system names i've missed (its just the simplest text file imaginable). You can just paste them in (or keep your old file and paste them in later if you encounter a problem)

For all users

  • Run an efind for all systems in some folder that includes somewhere the MAME or RetroAch executable (if your MAME executable is called something other than Mame64.exe or Retroarch.exe, get out notepad++ and

search and replace in Efind/mame.ini or retroarch-mame.ini to change to the name you do have)

  • It should find about 5000 emulators (i'm not exaggerating - If you have both MAME and retroarch you'll get somehwere under 1000 emulators)

  • 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

For softlists

  • You need to setup the emulators for the softlist folder to work - so do the above first
  • Go into the Tools sidebar (that's the last tab on the left-hand-side of QuickPlay where there are 4 tabs (ROMs, Searches m Emulators and Tools), and double-click either MAME Softlists or RetroArch softlists (or both if you want)

  • All that really does is move the folders from the tools folder to your live Data folder. But you need to refresh to see that, go back to the ROMs tab of the sidebar, then hit the icon below (or press F5)

  • To get icons working, use the menu item in QuickPlay's Appearance options menu to setup your path to the mess icons

Efind the MAME / RetroArch Emulators

  • 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)

For Retroarch

By default Retroarch has a limited software list mode that supports loading carts only by default, basically limiting us to cart consoles (I eventually understood this from https://www.libretro.com/index.php/mamemessume-cores/). To use it you need to specify the full rompath in each call. I didn't like either of those things, I wanted to be able to use full MAME from RetroArch. Which you can do like so:

  • go into your RetroArch root folder. Open up or make retroarch-core-options.cfg. You need to change/set these 4 things, as they are not the defaults (everything else is fine at default):
 mame_read_config = "enabled"
 mame_saves = "game"
 mame_boot_to_osd = "enabled"
 mame_boot_from_cli = "enabled"

  • Once you've enabled those settings and saved the config, if you don't have one already, create yourself a mame.ini file using RetroArch. Open a command-line window in RetroArches root directory and enter:
   retroarch_debug.exe -L cores\mame_libretro.dll " -createconfig"
  • That will make a mame.ini in that folder, move it to RetroArchs folder: system\mame\ini ie so in your RetroArch root folder you now have a system\mame\ini\mame.ini. (retroarch will now read this,

but overrides some of the settings in the ini, like read_config, with the settings in its retroarch-core-options.cfg)

  • Put the path to your mame roms in that ini file, so in my case i went
   rompath                   "F:\MAME\ROMS"

(your software list roms should be in that path). Setup additional stuff as you like

  • Now retroarch knows where your games are, you can send MAME arguments as you would do with MAME natively, and you can access the MAME menu when you're playing games. Which means you can play all emulators

and load all softlists

FAQ

  • Can I make my own softlist folders/MAME emulators using some tool?

No, not at the moment, its on the roadmap. I promise to keep this up to date

  • 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. Roadmapped for 'quite sooon'. For now do it yourself

  • Its not working?

Before you hit here http://forums.quickplayfrontend.com/ just check that 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)
  • Writeconfig in the mame ini is always 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....