top of page

MORE CHOICES

I know your anxious to see something actually "work" but MAME is a complex system in terms of the sheer amount of options it has. There's quite a lot of choices compared to most systems you'll set up. It's just unique.

​

The first thing you need to know is that roms come in 3 types of packages:

​

  1. Merged

  2. Split

  3. Non-Merged

​

You only need to chose one.

 

"Merged" sets have the parents and clones together in one zip archive. This requires you to use "rom mapping" in RL so it knows what game in each zip to load (I will NOT be covering this). I don't like merged rom sets. I don't use them.

 

For many years, "split" sets were the standard. They have all games and devices in their own archive. Including shared files like bios'. This has the benefit of taking up the least amount of HDD. The downside is that you can't delete a parent rom or the clone will not work. You can't delete a bios file or none of games that need it will work. They are perfectly usable still though.

You just can't delete anything.

​

"Non-Merged" are my new favorite. They separate all games into their own archives as well but they include everything needed to run inside each archive. The downside here is that the set is huge compared to the other packages. I offset this by going through and deleting versions of games I don't want. There are no extra files either, if I trim my database down to 1000 games, I can look in the rom folder and there will be 1000 zip files.

​

The next thing you need to know about is CHD's. Some games require a CHD in order to work. Unlike rom sets, CHD sets only come in a "Merged" package. No it does not matter which rom set package you have. No they won't require anything special to load, just be there. They are just in folders, not zipped. These folders should be in your rom folder.

​

Here's the deal with CHD's though. The set is massive (409GB) which would be fine if you actually got use out of it. A great deal of these don't work though. And from the ones that do work, there are only a few that are actually worth keeping. Last time I went through a set I ended up with 9 CHD's for a total just over 4GB! Seriously, just do your homework with this one. This is one of those sets I suggest grabbing only the singles you want.

​

** While you were looking at downloads for MAME, you may have noticed some sets named "software lists". These are other systems and devices that MAME can emulate (formerly MESS). They range from calculators to console systems like NES. We will NOT be using these sets. And I will not be covering their use. All cartridge based systems will use "No-Intro" sets.

​

Another big choice in MAME is what emulator to use. MAME itself is open source so anyone can make changes to it and recompile their own. This has led to many "flavors" of MAME being released like Arcade64, MAMEUIFX, HBMAME, FB NEO. Some just use standard rom sets and some have their own custom rom sets. I would need a whole page here to list them all and go through their features. Each of them geared towards a specific goal. Do your homework, know exactly why you want to use one of these if you choose that option.

​

For the most part, I have always just stuck to "vanilla" MAME over the years. In the early days of MAME, it had a hard time displaying/playing vector games. This is why AAE (Another Arcade Emulator) was created. AAE is NOT a system though, it has no place in a HS wheel. It isn't even needed anymore anyway as MAME can run these perfectly now. That's why AAE hasn't been updated in 20 years. It's obsolete now. FBNeo still carries a lot clout for being able to run those pesky CPS games that Mame can choke up on. We can use the "Alternate Emulator" feature of RL to do this kind of thing.

​

For this build, I want to use regular MAME but we are going to do it through RetroArch (RA).

​

RETROARCH

I'll be honest right off the bat. I hate RA, LOL. As far as programs you configure on a PC goes, it's one of the worst I've ever experienced. I guess this is mainly due to the menu driven interface. The way you have to not only load a core, but also a single game from that system just to make and save changes on that core. It's just not very intuitive for new users. This makes it easily cross-platform though so I get why they did it. And the benefits of the shaders you can apply outweigh the negatives of learning the set up.

​

DOWNLOAD: RetroArch

​

R:\ARCADE\RetroArch-1.9.1-Win64\

​

I would grab the "Download" version instead of the installer so you can just extract it to where we want it. Of course, grab the version that matches your OS (32bit or 64bit). NO Nightlies, we are not interested in experimental features here.

​

Fortunately for us, we will just be using RA as an emulator not a GUI (Graphical User Interface). You will need to install the cores and load up a game or two to make sure they work but we don't have to worry about playlists or graphics showing in the menus or anything like that. We have an FE for that stuff.

​

** Try not to get ahead of yourself too much during set up of HS. It's far to easy to just say, ok games will load fine, I'll move on and do the next system and come back to fix the graphics later. You'll end up needing an excel spreadsheet to know what needs to be done on each system. I suggest getting MAME to 100% of where you want it before moving on to next system.

​

Now let's make a default "retroarch.cfg":

​

RA needs some general settings made. The first is in "Settings" --> "Drivers". You'll need to change the "Video" driver to "vulkan". This will allow RA to use your actual video card instead of using you CPU and RAM for display. This should work for most if your video card isn't too old.

If for some reason your RA crashes when selecting "vulkan", you will have to use"GL".

​

Now I did have a little trouble getting RA to recognize my gamepads properly. Hopefully you have better luck with it "auto recognizing" yours. Seems my gamepads show up in Windows as "Afterglow Gamepad for Xbox 360". These are "non-official" controllers so I imagine if you have official 360 gamepads RA would recognize them OOTB (out of the box). I tried a couple of things to get mine working including setting both "Input" and "Controllers" to "dinput". I am not sure exactly what got it to stick, but eventually every time I started RA it popped up with the right message about my controllers. Spend some time getting it right if you have to, it will save you having to configure controls in many systems later.

​

Our next stop is "Settings" --> "Video". Under "Fullscreen Mode" make sure both options are set to "on". Then down in the "Scaling" section, you'll need to turn "Integer Scale" to "OFF" and set the "Aspect Ratio" to whatever your monitor's actual ratio is (1920x1080 = 16:9). This is not a preference setting, it must match your monitor's physical dimensions.

​

Under "Configuration" I like to turn "Save configuration on quit" to "OFF". I like to try different settings and I don't necessarily want them saved at that time. Just remember to manually save when you do make a change you like.

​

Make your way down to "User Interface" and turn "Disable Desktop Composition" to "ON". This may only be needed for Win7, I am not totally sure, but I don't really see the downside of having it on. I only needed it ON so I could replace some graphics referenced in a shader preset. RA would just lock up otherwise.

​

After all these settings are done, you'll want to go to "Main Menu" --> "Configuration File" and click "Save current configuration". This will overwrite your retroarch.cfg file with the changes we just made.

​

I will be using a "Non-Merged" .226 rom set so I will be using the latest mame core. Unfortunately this core is not currently available from the repository through the GUI. You'll have to get it from github.

​

DOWNLOAD: mame_libretro.dll

​

R:\ARCADE\RetroArch-1.9.1-Win64\cores\

​

DOWNLOAD: MAME .226 rom set (and select CHDS)

​

R:\ARCADE\RetroArch-1.9.1-Win64\system\mame\roms

​

If the "mame" folder isn't there yet, simply create it. Note that you will need a different folder name if you plan on using a different mame core than me. Loading any rom in that core should create this folder for you. Not the roms folder, you will always have to create that yourself.

​

Fire up RA and load the core. Then try loading a couple of games (Content). You'll notice the games open in a window. Don't worry about this for now, at this point you just want to make sure games actually load ok and that all your controls work. If after you try a few games you are happy with everything, we can move on.

DATABASES

It's kinda funny how much we've done so far without ever starting HS.

 

Anyway, It comes with a few systems sort of installed already. The databases (XML) that were packaged into the HS download are more than likely pretty old though. This is probably more important for MAME than any other system since MAME usually updates every single month. Individual rom names do sometimes change between versions. So while the included database may seem to work with a great deal of games already, how many don't work? Bottom line is that in addition to having your MAME version = romset version, you must match XML version too.

​

This leads to the current state of databases. Now the HS site has never been particularly great at maintaining these but as of today, it's just a total mess. Hyperlist is still accessible but nobody has maintained them for a very long time. There were other issues with them as well and users on the forum started curating databases. You can download them on the forum. Users also upload their own databases to the "download" section of the site as well. Three different locations you have to look around to find what you need.

​

And MAME suffers the most from all this. Even way back when someone was maintaining the databases, they only ever kept the latest version! This forced every new user to update his MAME set just to be able to match the XML. Nobody in the years I been around has ever said "Hey, maybe we should keep a copy of each version's XML around so new users can just grab the one that matches their rom set"?????? If the otherwise useless forum here at SPAWK ZONE develops into anything at all, I hope it becomes a repository for curated databases. If you've made or worked with databases for HS at all, please register for the forums and help out!

​

For this project we'll need an XML that matches a .226 rom set:

​

DOWNLOAD: MAME.xml (MAME .226.xml)

​

R:\ARCADE\HyperSpin_1.5.1\Databases\MAME\mame.xml

​

"Yes" to overwrite the one that is already there.

​

** .227 is out now, you can find a FULL unfiltered XML on the forum. Be warned, it has 28k + entries. I will try to get a "Working" no mahjong, etc type XML up soon.

​

I hope that eventually there will be many updated databases available in the forum. For now if you are looking to quickly filter the number of "games" on the wheel, you have a few choices.

 

HyperHQ (HQ) has 4 different filter methods built in:

​

  1. Themes Only

  2. Wheels Only

  3. Parents Only

  4. Roms Only

​

You can only choose one. They all work slightly different and each have their pluses and minuses.

 

The themes and wheels option use artwork. It will only display games that have it. If you want to remove a game simply go in and delete that wheel (or theme) from the folder. This requires you to do it manually though and if you run Hypersync again later it will just put the wheel back in there!

 

The parents only option is pretty popular as it will quickly remove all duplicates from the wheel leaving only one of each game. The parent rom is not always the one you want to use though. Puckman is the parent, not Pacman for example. This is not a deal breaker though, you can make some quick edits in the XML and we can fix that.

​

Roms only is another solid choice if you use "full non-merged" sets and like stuff clean. Simply delete any rom from the folder and it will no longer show on the wheel. Don't go using this and deleting stuff from a "split" set though! ** if you use this filter, you must set the rompath and extension in HQ. Do NOT set the executable though, we are only using this to tell HS what folder to watch for the filter.

​

Or you can leave all the filters in HQ alone and just get used to editing the XML's. Like I mentioned earlier, the state of databases is not good. It's highly unlikely you are going to find 100 percent matching XML's to your needs anyway. MAME is actually pretty good in this regard because it outputs it's own XML. But at some point you will have to edit something.

 

Yet another option is to use an XML someone else already edited:

​

  1. MAME (FULL) - linked above

  2. MAME filtered -cnterr

  3. MAME filtered -SPAWK

​

"FULL" is an untouched XML (only non working removed). It has a whopping 11559 games in it! Ok, not all are games... or even actually playable for that matter. The term "working" as far as MAME is concerned is simply "a component that functions as intended". So a rom that displays a digital score for a pinball game for example may in fact be %100 accurate at what it is suppose to do, but it will never be "playable" without the actual physical table. A great deal more are things like fruit machines, mahjong, or trivia. The real problem even if you wanted to keep any of these, is that there is no artwork available for them. Zero! No wheel images no gameplay videos, themes.

​

"filtered -cnterr" cnterr is a user on the HS forums. His XML is more in line with HS's one of each English rom philosophy (ok not exactly, it does have some doubles and some choices of his own). It has a modest 2728 games. He did manage to get wheel logo's for every entry but Emumovies is currently missing 42 Videos. This is still a really good quick filter for those that are daunted by the task of filtering your own from the FULL XML, but still want the most amount of games possible.

​

"filtered -SPAWK" would be one of my XML's.

 

My short term goal is to make all the systems I am using have "no proto, demo, unl" and North American release only databases. All game in these should have a "wheel" and a "video" available.

​

Next I plan to trim each database down even further in a "best of" sort of manner. Any games that don't load or play properly for some reason will be disabled but not removed from the database so that they can be added back easily at any time. 

 

Inevitably, there will be things misnamed or games you want to delete. Plus I'll show you how to easily enable (or disable) any game.

​

DOWNLOAD: Notepad++

​

R:\ARCADE\notepadplusplus.6.8.8.bin\

​

Open RLUI and navigate to "Global" --> "RocketLauncherUI" --> "Settings" and change the Module Editor Path (use the magnifying glass button):

Now you can easily edit any database by selecting the system in the left pane and clicking the button at the top:

Notepad++ is much better than the old notepad installed by windows for this kind of thing. Some of the bigger XML's probably won't even load in old notepad. It has size or character limitations. Additionally, "Plus Plus" will keep the format of the data inside so it's just easier to look at and edit.

​

The "enabled= 1 or 0" that I have added to my personal XML's is generally not in any other databases you may find. 1 means the game will show on the wheel. This is actually the default value and that's probably why nobody puts this tag in there. They just want all games in the XML enabled. Simply add enabled="0" to hide any entry from the wheel without removing it from the database entirely:

** The <enabled>Yes</enabled> tag at the bottom has a totally different use... I am not totally sure but I think this tag is just auto generated by clrmamepro to say "yes this file needs to be processed". If anyone has any more info about this, please let me know.

​

Now is a good time to set up MAME in RL so you can test load games through RLUI. First let's tell RL where the RA exe is located:

Next we will tell RL where our roms are and what emulator to use for the MAME wheel:

Since we are using RA, and will be doing so for other systems as well, we must tell RL specifically what core to use:

We should now be able to click the "Audit" button (blue with play symbol) and it will match your rom folder to the names in the XML. If you've done everything right so far (and are using the 11559 XML), it should turn almost the entire list green. 5 in total missing. Not sure about "microvsn", it was a handheld device released in 1979 by Milton Bradley. The other 4 are "TTL". These are "romless" games. Technically you can get these to run, but early versions of pong and breakout? There are many versions of these games available on all kinds of different systems. All 5 are deletable from the XML IMO.

 

Note that RL is just checking file names with this audit. It is in no way a suggestion that the game should actually run or anything. Like you can actually create "dummy" zip files with just a txt file inside and if it's named right, it will turn green. I don't recommend doing this unless you really know what your doing.

​

You can select any game and hit the "Launch" button (orange rocket symbol) and load the game.

You'll likely notice that you only have to hit the "escape" button once to exit games now (this is intended). By default, the "exit emulator" key in RL is set to "escape" and we will be leaving it like that. To be able to send the "escape" key from our gamepad, we will be using JTK.

​

The simplest option is to map it directly to a button. All profiles need to be made in RLUI. Remeber there is no save button, simply make changes and exit. You will want to make a "SYSTEM" profile:

Button 10 on my gamepad is pushing the right analog stick down (like a button, not the direction). This is good for almost all systems. The only one I can think of that has games that use this button is PS2. You can opt to just assign a different exit for PS2. If you are trying to keep things uniform though, we can look at other options.

​

Button combos can also be achieved with JTK. My gamepad basically has 12 buttons on it (not including the home button). So we can arbitrarily choose a button higher than what we have:

Highlight "Button 32" and click "Edit button assignment". Assign "escape" to the function.

Then on the "Options" tab we'll select "Configure Button Alias":

On my gamepad buttons 7 and 8 are "select" and "start" respectively. If we set like this, we will have to hold "select" down and then hit "start":

This is just an example. It may or may not have desirable effects depending on the emulator. Select and start in MAME for example are "insert coin" and "start" so you will be inserting coins as you exit. Maybe you want to use shoulder buttons instead? You are not limited to button presses either, you can hold a button then push "Up" on the POV if you wish.

​

You should now have every thing functioning properly, at least on a controls level. Now we just have to "pretty" everything up!

​

Please go to "GRAPHICS"

USEFUL LINKS:

©2021 by SPAWK ZONE. Proudly created with Wix.com

bottom of page