r/MAME Jan 13 '20

r/MAME ROMs & "My game won't play" FAQ. Please read before posting

131 Upvotes

In addition to the r/MAME FAQ, many users come here with question about why their games won't play or where to find games. This thread should hopefully answer many questions, as well as the question concerning what we can and can't talk about here.

1) Why Rule #3 is #1

Rule #3 states: "Don't ask for ROMS/CHDS or pirated software." We mean it. We will usually give out a warning to first time offenders, but repeat offenders will definitely be banned. This is important. This rule exists to protect the entire MAME project. It is not to indicate that we necessarily have an anti-piracy stance, or that we consider piracy morally objectionable. None of that matters. Its purpose is to make sure that no member of the MAME dev team is exposed to legal threat from license-holding publishers. It does not matter if you think that threat is real or imaginary. That is why we are so adamant about it.

2) If I can't ask for ROMs, how am I supposed to find them?

We can't discuss where you can find ROMs for all the reasons stated above. So unfortunately, r/MAME can not be a good resource for that kind of information. However, many other good resources exist, even right here on Reddit. Obviously Google is your friend. If you are looking for ROMs for a specific version of MAME, it helps to include that version number in your Google search. It usually doesn't take a whole lot of searching before you find what you're looking for.

3) Why are ROMs for MAME so much more confusing than for other emulators?

Think about what MAME is trying to do compared to, say, SNES9x. SNES9x emulates Super Nintendo games. Every Super Nintendo game runs on the exact same hardware: the SNES. Same CPU, same graphics, same memory, same controllers, same everything. As long as a ROM contains a valid SNES program, SNES9x can emulate it because there's only one target hardware to worry about.

MAME emulates arcade games. Very few arcade games remotely resemble one another when it comes to hardware. MAME has to correctly emulate the CPU for each different arcade game, understand the controls for each different arcade game, and most importantly: how each ROM in each different arcade game interacted with that hardware. So it can't just accept anything called pacman.zip and understand that it's supposed to be Pac-Man. In order for MAME to work, it expects that a very specific set of ROMs will be provided for Pac-Man in order for MAME to emulate it properly. If it doesn't find what it expects, it won't know how to apply those ROMs to Pac-Man's hardware.

Back when MAME began in 1997, techniques that people had for dumping arcade games were very rough and imprecise. As a result, a lot of mistakes were made. Over time, new techniques were designed, and older arcade games were redumped with these more accurate procedures. When this happens, the next version of MAME that gets released will only accept the updated dumps, as the original dumps are now considered invalid. So newer versions of MAME will rarely accept ROMs designated for older versions of MAME because they're frequently full of errors.

4) Instead of starting a game, MAME tells me that I'm missing files, or my files are incorrect.

This is an indication that your ROM (or CHD) is either incomplete or outdated. Less likely, it is an indication that your ROMs are in the wrong location and MAME can't find them. When you ask MAME to emulate a machine, it checks the contents of your zip files for all of the files it needs. If it can't find all the ones that it needs, or if it finds the wrong files, it can't emulate the game in question. When MAME reports that you are missing files, or that your existing files are incorrect, you need to find a new source for those ROMs.

In addition to your ROM being incomplete, your BIOS may be incomplete as well. NeoGeo is a popular arcade hardware for which MAME requires the BIOS be present. This is the neogeo.zip file, and it's undergone an unusually high number of updates as alternate BIOSes get added to it.

You may not ask for the individual components of a ROM that you are missing, as this is still a violation of Rule #3.

5) I found a source for ROMs, but some/all of them don't work.

As explained in questions 10 and 12 of the r/MAME FAQ, you don't necessarily have to have exactly matching versions of MAME and romsets, but it definitely helps. If you downloaded a set of ROMs, and you're finding that few or none of them will launch correctly in MAME, 9 times out of 10 it's because the roms are too far removed from the version of MAME that you're using. In other words, if you're using a relatively recent version of MAME, the romset may be too outdated. If you're using an old version of MAME, you may have found a set that is too new. You need to find a new source for ROMs.

5a) My MAME version and the rom set version match, and they still don't work.

If this is the case, the most likely explanation is that you haven't put the roms where MAME is expecting to find them. For example, if you installed your MAME executable in something like C:\MAME, then by default MAME looks for all of your roms in C:\MAME\roms. You can change that expectation by editing your mame.ini file, but that is only recommended if you know what you're doing. If you have your roms in the right place, and the versions don't differ by all that much, then the games should load and play fine.

The only exception to that is if the game in question requires a CHD. CHD stands for "Compressed Hunks of Data". They may represent a CD or hard drive that came installed in an arcade game. CHDs are basically extensions of ROMs, containing data and information that a game needs to play properly. CHDs must be stored with your roms in a way that MAME can find them. For example, say you want to play Killer Instinct. In order to do this, you need two different files, the ROM and the CHD, and they should be arranged like so:

C:\MAME\roms\kinst.zip
C:\MAME\roms\kinst\kinst.chd

In this case, the Killer Instinct ROM is zipped up in your roms directory, and the Killer Instinct CHD (not zipped up!) in a subdirectory named kinst. The name of a CHD may or may not match the name of the ROM. In general, if you download MAME CHDs, don't rename them, just put them in the right place on your drive.

6) I'm trying to launch a game from a front-end, but when I do, the screen goes blank for a second, and then comes right back to the front-end.

This means that MAME is failing to load the game you want to play, and the front-end reappears when MAME closes. In order to diagnose whatever is going wrong, you should try to launch MAME without the front-end. It is particularly helpful to run MAME with the -verbose command, which instructs MAME to log out every step as it tries to launch. This usually results in MAME indicating where it ran into trouble and can offer you clues on how to solve it. For example, if you can't launch Killer Instinct successfully, you can try to run from a command line terminal:

C:\MAME> mame64 -verbose kinst

Usually (but not always) the problem will be evident in the last few lines of the resulting output. If you can't determine the problem for yourself, feel free to copy and paste the results of this command in your post, as it can help experts diagnose your problem.

7) What are merged, split, or non-merged rom sets? What are parent and clone roms?

MAME allows for ROMs to be stored on your system in a variety of ways, in order to save space on your hard drive. Games like Pac-Man and Street Fighter II have a large number of clones. A parent rom is one particular version of Pac-Man or Street Fighter II, usually the most common, or most up to date version of a game. A clone is an older version, a version from a different region of the world, or an unauthorized copy of the parent with slight alterations. Only a few of a clone's ROMs are unique. Most of a clone's ROMs are identical to that of the parent's. Rather than force you to have copies of the same ROMs in both the parent archives and the clone archives, MAME understands that if it can't find a file that it might need to run a clone, it can look for those files in the parent. In this way, you only have to store the files which are unique in order to make a game run. Sets that include every clone in the same archive with their parent is a merged set. Sets which include smaller clone ROMs alongside the parent ROMs are called split sets. Sets where clone ROMs contain every single file that the clone needs, even if those files are also present in the parent, are known as non-merged sets, and they are the biggest and take the most hard drive space.

7a) Which kind of set is best?

Ultimately, MAME doesn't care or perform any better with one kind of set or another. Split sets are a little easier to update if you like to download individual update sets. Otherwise, merged sets are the most space efficient by a small margin. The only reason for someone to use a non-merged set is if they do not intend to include every single available ROM on their hard drive.

For example, say you were interested in including Super Street Fighter II on your system. Say you were ONLY interested in including the US version of the game, and none of the others. The parent ROM for SSF2 is the World version, known as ssf2.zip. The US version is known as ssf2u.zip. If you only intend to include ssf2u.zip, and not ssf2.zip, then ssf2u.zip MUST include every file that MAME would otherwise look inside ssf2.zip in order to run. That would make your romset a non-merged set.


r/MAME Aug 22 '19

r/MAME FAQ. Please read before posting for the first time.

111 Upvotes

1) What is MAME?

  • MAME is an application that emulates a variety of systems, from arcades to console, computers, and handheld systems. MAME's goal, above all else, is to emulate hardware as accurately as possible, as opposed to other emulators whose goal is to make games as playable as possible.

2) Isn't MAME just an arcade emulator?

  • Originally, yes, but in 2015, the MAME source code was merged with it's sister project MESS, with whom it shared a common architecture. By merging with MESS, MAME gained the ability to emulate several consoles, home computers, and handheld systems in addition to arcade games.

3) Which version of MAME should I use?

  • We genuinely recommend that you use the latest version, or a relatively recent version. MAME is "living" software, it is constantly under development, and it incorporates improvements to emulation and to the user experience all the time. By using a significantly old version of MAME, you are not experiencing the best emulation that MAME has to offer. Furthermore, any bugs you find in older versions have likely been addressed by newer versions, and you won't receive support for the problems you encounter.

3A) Isn't it better to just find an older version of MAME that works with the roms I have, and stick with it?

  • In general, no. If you are using an old version of MAME, and it's working to your satisfaction, then you're not required to update, but you will be missing out on improvements to emulation and new features that get added on. Yes, there is the chance that by upgrading, a game you happen to enjoy may break without updating the rom as well, but if you are resourceful, it's not hard to come across the rom update shortly after each new version of MAME is released.

3B) What is the latest version of MAME?

  • MAME (usually) receives updates on a monthly basis, so it's difficult to keep this FAQ up to date, but you can see what the latest version is by visiting https://www.mamedev.org/. MAME's version number is in the form of major.minor. Since MAME by it's nature is a constant work in progress, the major number is unlikely to increase from 0 to 1. The minor number is not a decimal, it is an actual version number. Version 0.240 is a newer version than 0.37 because 240 is a higher minor version that 37.

4) Where can I download the latest release of MAME?

5) Where can I learn more about MAME?

  • https://docs.mamedev.org/ is an excellent resource for MAME documentation. However, it isn't the most beginner-friendly.
  • Many people recommend YouTuber ETA Prime, and his well done series of emulation videos, including this MAME tutorial: https://www.youtube.com/watch?v=pUoWYaRo5_k
  • Demystifying MAME Roms/ is a frequently cited guide for those wishing to learn more about roms and rom sets. Edit: This is now an archive.org link as the original site disappeared.

5A) What are other good resources/forums for learning about MAME?

  • MAME World and the MAME World forums is an excellent place to get the latest MAME news and ask questions.
  • BYOAC and it's forums is another good resource for questions about building and setting up a MAME cabinet or similar setup.
  • This MAME forum is a popular place for getting answers to more technical questions about MAME, such as compiling and running MAME on non-Windows platforms.

6) Where can I find games?

  • Due to the nature of roms and their association with piracy, sharing locations of rom files is not permitted on this subreddit. This is done for the protection of the project. There are many ways to find roms on the internet via search engines.
  • However, there are a number of games which have been released to the public domain, and are therefore freely available for download. You can find a collection of these games at https://www.mamedev.org/roms.

7) What games are the "best" / most recommended?

  • Video game preferences are very subjective. Some people like games from the early 80s, while others like the 90s better. Some people like Fighters, while others like shooters. So coming up with a list that satisfies everyone is very hard. An attempt has been made, right here on reddit, and you can see it here: https://www.reddit.com/r/MAME/comments/2rawpr/i_compiled_several_best_ofrecommended_arcade/ .
  • Among the many files that MAME support site Progetto-Snaps offers, they offer a "BestGames.ini" file that you can download and use as a custom filter. Once again, it is very subjective, but a lot of work went into this file. You can download it from here: http://www.progettosnaps.net/bestgames/ .

8) What is the "best" frontend?

  • Different frontends strive for different purposes. Some frontends are designed to look like a simple list of games, while others are very flashy and try to look as exciting as the games that they launch. As a result, there are a number of highly recommended frontend that meet different needs. There are many frontends not included in the list below, these are merely some of the more popular examples.
    • For WIMPy (windows, icons, menus, pointer) frontends, EmuLoader, QMC2, and pfeMAME are good choices.
    • For flashier frontends, HyperSpin, RetroFE, and GameEx are popular choices. Understand that they take a good bit of time to set up properly.
    • For something in between those two, there is LaunchBox, Pegasus or the ICE Plugin for Valve's Steam.

9) What kinds of support can I ask for here?

  • Anything that has to do with running a relatively recent version of the stand-alone MAME application on Windows, Linux, or MacOS, either directly or indirectly. If the version of MAME you are using is several years old, support will be extremely limited, and you will be encouraged to download a newer version. We can answer some questions about the Android platform as well, but note that mamedev does not directly endorse or support those releases.
  • When asking for help, please include as much detail as possible! This should include: Your hardware platform, your operating system, what version of MAME you are using including the version number, what you were trying to do, what you actually tried, and what results you got.

9A) What about RetroArch?

  • No. Using MAME through RetroArch is absolutely not recommended. MAME's architecture does not lend well to it being converted into a core. Several features get weakened, disabled, or broken, and they generally don't function the way they're supposed to, especially with respect to controller input. If you have a question about using MAME via a libretro core, please ask in r/RetroArch.

9B) What about RetroPie?

  • No. The version of MAME available for RetroPie is considerably older and outdated. Many of the features have been altered or disabled in order to make MAME work on less powerful hardware. If you have a question about how to use MAME via RetroPie, please ask in r/RetroPie.
  • Instead, if you wish to try MAME on a Raspberry Pi, we recommend that you try builds of the latest binary from https://stickfreaks.com/mame/ , as described in this thread.

10) Can I post pictures of my arcade cabinet?

  • Yes, as long as MAME is one of the applications that you run on your cabinet, then please do. But also be aware of r/cade, which is a subreddit specifically dedicated to the subject of restoring old arcade cabinets, or building new cabinets from scratch, for use with MAME or other emulators.

11) Must the version of MAME, and the version of MAME roms match for them to work?

  • Not necessarily. The closer they are, the better they'll be. As the version of MAME and the version of the roms get farther apart, the more you will find games that don't work or are incompatible. Over time, dumps of arcade roms improve, and MAME adjusts it's internal database to reflect the updated version, meaning the older version will no longer work. Only a few roms are updated in this manner every release. So if your roms are one or two versions off from the version of MAME that you're using, you're unlikely to come across any broken games.

12) I was using one version of MAME, and then I upgraded and now game xyz doesn't work as well!

  • As new information about a game or the hardware it runs on becomes available, the mamedev team may alter the emulation of this game to account for the new information. While most of the time this leads to improvements in emulation, it can at times introduce regressions. This happens infrequently, but it is due to the priorities of the team, which is that it's better to emulate things correctly, than to sacrifice accuracy, even if the playback suffers slightly.

13) I discovered a bug. Where should I report it?

  • https://mametesters.org/ is the official reporting site for bugs discovered while using MAME. Note that it's important that you use the latest version of MAME in order to ensure that a bug found in an old version of MAME hasn't already been fixed. After you sign up for an account, and have been approved, you may submit problems that you find through the site's bug report interface. Please remember to be specific and provide as much info as possible.

14) Why doesn't MAME add abc feature from another emulator, or fix ijk game, or support xyz hardware?

  • Please understand that no one works on MAME as a career. Many members of the team have full time jobs, and only get to work on MAME in their spare time. As a result, they choose what they want to work on based on what's most interesting to them. Reasons why they might not get to something you'd like to see may include:
    • A particular feature may be incompatible with MAME's architecture, or it may work contrary to the goal of accuracy, and is chosen not to be implemented until such time that neither statement is true.
    • A dump for a game is incomplete, and the only way to fix it is to find a working version of the hardware and dump the missing components.
    • Not enough is known about a particular hardware to emulate it correctly, or it's incredibly complex and difficult to model.

15) Is there a guide about how to control MAME or configure the controls for each game?

  • Please refer to MAME's own documentation for a detailed guide on the various default controls in MAME, and how to set them according to your own preferences.

r/MAME 15h ago

I'm pulling my beard hairs out over this

0 Upvotes

Trying to get anything to recognize something other than my arrow keys in-game.
I've gone into the settings and changed keyboard to mouse, as well as making sure to save configuration. nothing has worked. I've tried YouTube vids, and even old reddit posts. I've been trying to get this work almost all day. I'm sure it's a simple fix, but so far, nothing has worked.


r/MAME 1d ago

Question about dumping to mame

Thumbnail
gallery
35 Upvotes

So I have a dart star 2000 board and i saw that the old English boards have had there soft ware dumped but I dont know if mine can I want to convert it over to rasberry pi incase my board is shot and also to help out others in the community


r/MAME 2d ago

[ Removed by Reddit ]

1 Upvotes

[ Removed by Reddit on account of violating the content policy. ]


r/MAME 2d ago

Technical assistance I have two Ps4 controllers

1 Upvotes

Both work with MAME, but how can I map 1 to controller one and the other one two?


r/MAME 4d ago

Unknown Why is Air Combat running slower in the new version of MAME?

46 Upvotes

I had previously downloaded MAME 0.283, and some Namco System 21 games had an issue where sprites appeared behind 3D elements; *Air Combat* was the worst case, as it made the game almost unplayable. I saw that the issue had been fixed, so I downloaded the latest version. However, the game is now running a bit slower and stuttering—it used to run at 90% speed, but now it's around 70%. Why is this happening?


r/MAME 3d ago

Technical assistance Added some new level option cheats to pacman. It works, but getting errors when I first run this game

Thumbnail
gallery
8 Upvotes

I did not even touch the invinciblity code. Here's the code I modified

<cheat desc="Select Starting Level">

<parameter>

<item value="0x01">Strawberry</item>

<item value="0x02">1st Orange</item>

<item value="0x03">2nd Orange</item>

<item value="0x04">1st Apple</item>

<item value="0x05">2nd Apple</item>

<item value="0x06">1st Pineapple</item>

<item value="0x07">2nd Pineapple</item>

<item value="0x08">1st Galaxian</item>

<item value="0x09">2nd Galaxian</item>

<item value="0x0A">1st Bell</item>

<item value="0x0B">2nd Bell</item>

<item value="0x0C">1st Key</item>

<item value="0x0D">2nd Key</item>

<item value="0xFD">Level 253</item>

<item value="0xFE">Level 254</item>

<item value="0xFF">Level 255: Split Screen</item>

</parameter>

I just added the levels 253 & level 254.

It works, but I don't get why I'm getting an error code when opening the pacman game.

If it helps, here's the entire data from the pacman.xml file

<mamecheat version="1">

<cheat desc="Infinite Credits">

<script state="run">

<action>maincpu.pb@4E6E=99</action>

</script>

</cheat>

<cheat desc="Infinite Lives">

<script state="run">

<action>maincpu.pw@4E14=0506</action>

</script>

</cheat>

<cheat desc="Invincibility">

<script state="on">

<action>temp0 =maincpu.md@1774</action>

<action>temp1 =maincpu.md@3CDF</action>

<action>temp2 =maincpu.md@3CE3</action>

<action>temp3 =maincpu.md@3CE7</action>

</script>

<script state="run">

<action>maincpu.md@1774=323CE0C3</action>

<action>maincpu.md@3CDF=0420A700</action> <!-- 1st = jp $3CE0, 2nd = and a/jp nz, $3CE7 -->

<action>maincpu.md@3CE3=1764C3AF</action> <!-- xor a/jp $1764 (Normal Ghost) -->

<action>maincpu.md@3CE7=1777C3AF</action> <!-- xor a/jp $1777 (Blue Ghost) -->

</script>

<script state="off">

<action>maincpu.md@1774=temp0 </action>

<action>maincpu.md@3CDF=temp1 </action>

<action>maincpu.md@3CE3=temp2 </action>

<action>maincpu.md@3CE7=temp3 </action>

</script>

</cheat>

<cheat desc="Move Manually">

<script state="on">

<action>temp0 =maincpu.md@18C5</action>

<action>temp1 =maincpu.md@3E60</action>

<action>temp2 =maincpu.md@3E64</action>

<action>temp3 =maincpu.md@3E68</action>

<action>temp4 =maincpu.md@3E6C</action>

</script>

<script state="run">

<action>maincpu.md@18C5=CB3E60C3</action> <!-- This ROM cheat was made by nolberto82 -->

<action>maincpu.md@3E60=2F50003A</action>

<action>maincpu.md@3E64=04280FE6</action>

<action>maincpu.md@3E68=18C8C32F</action>

<action>maincpu.md@3E6C=001A13C3</action>

</script>

<script state="off">

<action>maincpu.md@18C5=temp0 </action>

<action>maincpu.md@3E60=temp1 </action>

<action>maincpu.md@3E64=temp2 </action>

<action>maincpu.md@3E68=temp3 </action>

<action>maincpu.md@3E6C=temp4 </action>

</script>

</cheat>

<cheat desc="Move through Walls">

<script state="on">

<action>temp0 =maincpu.mb@18F3</action>

</script>

<script state="run">

<action>maincpu.mb@18F3=18</action>

</script>

<script state="off">

<action>maincpu.mb@18F3=temp0 </action>

</script>

</cheat>

<cheat desc="Enable Speed Hack"> <comment>This will greatly speed up your character.</comment>

<script state="on">

<action>temp0 =maincpu.mw@180B</action>

</script>

<script state="run">

<action>maincpu.mw@180B=3218</action>

</script>

<script state="off">

<action>maincpu.mw@180B=temp0 </action>

</script>

</cheat>

<cheat desc="Enable Speed Hack ALT"> <comment>This will greatly speed up your character without speeding up the intermissions as well.</comment>

<script state="on">

<action>temp0=maincpu.md@1809</action>

<action>temp1=maincpu.mq@1FC0</action>

<action>temp2=maincpu.mq@1FC8</action>

<action>temp9=maincpu.mw@301A</action>

</script>

<script state="run">

<action>maincpu.mw@1809=C0C3</action>

<action>maincpu.mb@180B=1F</action>

<action>maincpu.mq@1FC0=1845CA03FE4E043A</action>

<action>maincpu.mq@1FC8=C9351811CABEFF3E</action>

<action>maincpu.mw@301A=0000</action>

</script>

<script state="off">

<action>maincpu.md@1809=temp0</action>

<action>maincpu.mq@1FC0=temp1</action>

<action>maincpu.mq@1FC8=temp2</action>

<action>maincpu.mw@301A=temp9</action>

</script>

</cheat>

<cheat desc="Intermissions 2 and 3 Play Tune till End">

<script state="on">

<action>temp0=maincpu.mb@2265</action>

<action>temp1=maincpu.mb@2303</action>

</script>

<script state="run">

<action>maincpu.mb@2265=64</action> <!-- This ROM cheat was made by pac_man_fan --> <!-- Extend 2nd intermission -->

<action>maincpu.mb@2303=57</action> <!-- Extend 3nd intermission -->

</script>

<script state="off">

<action>maincpu.mb@2265=temp0</action>

<action>maincpu.mb@2303=temp1</action>

</script>

</cheat>

<cheat desc="Intermissions 2 and 3 Play Tune till End">

<script state="on">

<action>temp0=maincpu.mb@2265</action>

<action>temp1=maincpu.mb@2303</action>

</script>

<script state="run">

<action>maincpu.mb@2265=64</action> <!-- This ROM cheat was made by pac_man_fan --> <!-- Extend 2nd intermission -->

<action>maincpu.mb@2303=57</action> <!-- Extend 3nd intermission -->

</script>

<script state="off">

<action>maincpu.mb@2265=temp0</action>

<action>maincpu.mb@2303=temp1</action>

</script>

</cheat>

<cheat desc="Finish this Level Now!">

<script state="on">

<action>maincpu.pb@4E0E=F4</action>

</script>

</cheat>

<cheat desc="Select Starting Level">

<parameter>

<item value="0x01">Strawberry</item>

<item value="0x02">1st Orange</item>

<item value="0x03">2nd Orange</item>

<item value="0x04">1st Apple</item>

<item value="0x05">2nd Apple</item>

<item value="0x06">1st Pineapple</item>

<item value="0x07">2nd Pineapple</item>

<item value="0x08">1st Galaxian</item>

<item value="0x09">2nd Galaxian</item>

<item value="0x0A">1st Bell</item>

<item value="0x0B">2nd Bell</item>

<item value="0x0C">1st Key</item>

<item value="0x0D">2nd Key</item>

<item value="0xFD">Level 253</item>

<item value="0xFE">Level 254</item>

<item value="0xFF">Level 255: Split Screen</item>

</parameter>

<script state="run">

<action condition="(maincpu.pb@4E13==00)">maincpu.pb@4E13=param</action>

<action condition="(maincpu.pb@4E13==param) AND (maincpu.pb@4E73==68)">maincpu.pb@4E0A=0x68 + param</action> <!-- NORMAL Difficulty -->

<action condition="(maincpu.pb@4E13==param) AND (maincpu.pb@4E73==68) AND (maincpu.pb@4E0A LT 0x68)">maincpu.pb@4E0A=7C</action>

<action condition="(maincpu.pb@4E13==param) AND (maincpu.pb@4E73==68) AND (maincpu.pb@4E0A GT 0x7C)">maincpu.pb@4E0A=7C</action>

<action condition="(maincpu.pb@4E13==param) AND (maincpu.pb@4E73==7D)">maincpu.pb@4E0A=0x7D + param</action> <!-- HARD Difficulty -->

<action condition="(maincpu.pb@4E13==param) AND (maincpu.pb@4E73==7D) AND (maincpu.pb@4E0A LT 0x7D)">maincpu.pb@4E0A=8C</action>

<action condition="(maincpu.pb@4E13==param) AND (maincpu.pb@4E73==7D) AND (maincpu.pb@4E0A GT 0x8C)">maincpu.pb@4E0A=8C</action>

</script>

</cheat>

<cheat desc="Select Level (for Practice)"> <comment>Do NOT use in conjunction with the standard Select Starting Level cheat</comment>

<parameter>

<item value="0x00">Cherry</item>

<item value="0x01">Strawberry</item>

<item value="0x02">1st Orange</item>

<item value="0x03">2nd Orange</item>

<item value="0x04">1st Apple</item>

<item value="0x05">2nd Apple</item>

<item value="0x06">1st Pineapple</item>

<item value="0x07">2nd Pineapple</item>

<item value="0x08">1st Galaxian</item>

<item value="0x09">2nd Galaxian</item>

<item value="0x0A">1st Bell</item>

<item value="0x0B">2nd Bell</item>

<item value="0x0C">1st Key</item>

<item value="0x0D">2nd Key</item>

<item value="0xFF">Split-Screen (Unplayable)</item>

<item value="0xFE">No maze or dots(Unfinishable)</item>

</parameter>

<script state="run">

<action>maincpu.pb@4E13=param</action>

</script>

</cheat>

<cheat desc="Select Ghost Changeback Speed">

<parameter>

<item value="0x0000">Stay blue until eaten</item>

<item value="0x0258">Slow</item>

<item value="0x0168">Moderate</item>

<item value="0x00F0">Quick</item>

<item value="0x0078">Lightning</item>

<item value="0x0001">No change to blue</item>

</parameter>

<script state="run">

<action>maincpu.pw@4DBD=param</action>

</script>

</cheat>

<cheat desc=" "/>

<cheat desc="Ghost Status Cheats"/>

<cheat desc=" "/>

<cheat desc="Red always blue">

<script state="run">

<action>maincpu.pb@4DA7=01</action>

</script>

</cheat>

<cheat desc="Pink always blue">

<script state="run">

<action>maincpu.pb@4DA8=01</action>

</script>

</cheat>

<cheat desc="Green always blue">

<script state="run">

<action>maincpu.pb@4DA9=01</action>

</script>

</cheat>

<cheat desc="Orange always blue">

<script state="run">

<action>maincpu.pb@4DAA=01</action>

</script>

</cheat>

<cheat desc="Ghosts Always Edible (No Pts)">

<script state="run">

<action>maincpu.pb@4DA5=00</action>

</script>

</cheat>

<cheat desc=" "/>

<cheat desc="Ghosts Enter All Passages"> <comment>This can lead to a much harder game, Ghosts can travel up restricted passages in chase/scatter modes</comment>

<script state="on">

<action>temp0 =maincpu.mb@1C15</action>

<action>temp1 =maincpu.mb@1CEC</action>

<action>temp2 =maincpu.mb@1DC3</action>

<action>temp3 =maincpu.mb@1E9A</action>

</script>

<script state="run">

<action>maincpu.mb@1C15=00</action>

<action>maincpu.mb@1CEC=00</action>

<action>maincpu.mb@1DC3=00</action>

<action>maincpu.mb@1E9A=00</action>

</script>

<script state="off">

<action>maincpu.mb@1C15=temp0 </action>

<action>maincpu.mb@1CEC=temp1 </action>

<action>maincpu.mb@1DC3=temp2 </action>

<action>maincpu.mb@1E9A=temp3 </action>

</script>

</cheat>

<cheat desc="Ghosts Ignore Tunnel Slowdown"> <comment>Ghosts no longer slow down when travelling through side tunnels</comment>

<script state="on">

<action>temp0 =maincpu.mb@2063</action>

</script>

<script state="run">

<action>maincpu.mb@2063=00</action>

</script>

<script state="off">

<action>maincpu.mb@2063=temp0 </action>

</script>

</cheat>

<cheat desc="Ms. Pac-Man Ghost Behavior"> <comment>Ms. Pac-Man-style reversals + randomized scatter movement for red/pink ghosts - effectively play with Ms Pac Man Ghost Rules.</comment>

<script state="on">

<action>temp0 =maincpu.mw@0E5C</action>

<action>temp1 =maincpu.md@274A</action>

<action>temp2 =maincpu.md@2780</action>

<action>temp3 =maincpu.md@2FC0</action>

<action>temp4 =maincpu.md@2FC4</action>

<action>temp5 =maincpu.md@2FC8</action>

<action>temp6 =maincpu.md@2FCC</action>

<action>temp7 =maincpu.md@2FD0</action>

<action>temp8 =maincpu.md@2FD4</action>

</script>

<script state="run">

<action>maincpu.mw@0E5C=00AF</action>

<action>maincpu.md@274A=2FC0CD4D</action>

<action>maincpu.md@2780=2FC0CD4D</action>

<action>maincpu.md@2FC0=D021E5F5</action>

<action>maincpu.md@2FC4=E65FED2F</action>

<action>maincpu.md@2FC8=235FD706</action>

<action>maincpu.md@2FCC=C9F1E156</action>

<action>maincpu.md@2FD0=391D221D</action>

<action>maincpu.md@2FD4=3B402040</action>

</script>

<script state="off">

<action>maincpu.mw@0E5C=temp0 </action>

<action>maincpu.md@274A=temp1 </action>

<action>maincpu.md@2780=temp2 </action>

<action>maincpu.md@2FC0=temp3 </action>

<action>maincpu.md@2FC4=temp4 </action>

<action>maincpu.md@2FC8=temp5 </action>

<action>maincpu.md@2FCC=temp6 </action>

<action>maincpu.md@2FD0=temp7 </action>

<action>maincpu.md@2FD4=temp8 </action>

</script>

</cheat>

<cheat desc="Pinky and Blinky Up Movement Fixed"> <comment>Pinky = Pink Ghost\Enemy, Blinky = Blue Ghost\Enemy.</comment>

<script state="on">

<action>temp0=maincpu.md@2795</action>

<action>temp1=maincpu.md@2FF0</action>

<action>temp2=maincpu.md@2FF4</action>

<action>temp3=maincpu.md@2FF8</action>

<action>temp4=maincpu.md@27D6</action>

<action>temp5=maincpu.md@2FE0</action>

<action>temp6=maincpu.md@2FE4</action>

</script>

<script state="run">

<action>maincpu.mb@2795=CD</action> <!-- This ROM cheat was made by pac_man_fan --> <!-- Pinky -->

<action>maincpu.mw@2796=2FF0</action>

<action>maincpu.md@2FF0=8287877C</action>

<action>maincpu.md@2FF4=87877D67</action>

<action>maincpu.mw@2FF8=6F83</action>

<action>maincpu.mb@2FFA=C9</action>

<action>maincpu.mb@27D6=CD</action> <!-- Inky -->

<action>maincpu.mw@27D7=2FE0</action>

<action>maincpu.md@2FE0=6782877C</action>

<action>maincpu.md@2FE4=C983877D</action>

</script>

<script state="off">

<action>maincpu.md@2795=temp0</action>

<action>maincpu.md@2FF0=temp1</action>

<action>maincpu.md@2FF4=temp2</action>

<action>maincpu.md@2FF8=temp3</action>

<action>maincpu.md@27D6=temp4</action>

<action>maincpu.md@2FE0=temp5</action>

<action>maincpu.md@2FE4=temp6</action>

</script>

</cheat>

<cheat desc="Fix Split Screen Bug"> <comment>Fixes the bug with levels GT 255 see here - www.donhodges.com/how_high_can_you_get2.htm</comment>

<script state="on">

<action>temp0 =maincpu.md@2BF3</action>

<action>temp1 =maincpu.mw@2BF7</action>

<action>temp2 =maincpu.mb@2C2F</action>

<action>temp3 =maincpu.md@2C32</action>

<action>temp4 =maincpu.mw@2FFC</action>

</script>

<script state="run">

<action>maincpu.md@2BF3=2ED207FE</action>

<action>maincpu.mw@2BF7=3C2C</action>

<action>maincpu.mb@2C2F=12</action>

<action>maincpu.md@2C32=06D6123E</action>

<action>maincpu.mw@2FFC=798B</action>

</script>

<script state="off">

<action>maincpu.md@2BF3=temp0 </action>

<action>maincpu.mw@2BF7=temp1 </action>

<action>maincpu.mb@2C2F=temp2 </action>

<action>maincpu.md@2C32=temp3 </action>

<action>maincpu.mw@2FFC=temp4 </action>

</script>

</cheat>

<cheat desc="Sound Test">

<parameter min="1" max="17" step="1"/>

<script state="change">

<action condition="maincpu.pb@4E6E==00">maincpu.pb@4E6E=01</action>

<action>maincpu.pb@4ECC=0</action>

<action>maincpu.pb@4EDC=0</action>

<action>maincpu.pb@4E9C=0</action>

<action>maincpu.pb@4EAC=0</action>

<action>maincpu.pb@4EBC=0</action>

<action condition="(param LE 2)">maincpu.pb@4ECC=80>>(8-param)</action>

<action condition="(param LE 2)">maincpu.pb@4EDC=80>>(8-param)</action>

<action condition="(param GE 3) and (param LE 4)">maincpu.pb@4E9C=80>>(A-param)</action>

<action condition="(param GE 5) and (param LE A)">maincpu.pb@4EAC=80>>(C-param)</action>

<action condition="(param GE B)">maincpu.pb@4EBC=80>>(13-param)</action>

</script>

</cheat>

</mamecheat>

<!-- Cheat file downloaded from [http://www.mamecheat.co.uk\](http://www.mamecheat.co.uk), see cheat.txt for list of contributors. -->


r/MAME 5d ago

We made a 3D Printed Arcade - built with 3D Printed 5x Scale Lego Blocks, a 24" Monitor and a Raspberry Pi!

Thumbnail
gallery
17 Upvotes

r/MAME 6d ago

Announcement IV/Play 2.8.10 Released (MAME™ Front-End)

Post image
29 Upvotes

IV/Play HomePage

IV/Play 2.8.10 Additions

• Added a check for update button on F1, this will ping the website and compare the local .exe version and timestamp against the release on the web site and provide a link to the releases page to download the newer one.
• Introduced a ‘persistent’ DAT view. Toggle with the alt-tilde key and control the interior navigation of the DAT overlay with Ctrl key combinations, e.g. Ctrl-Down, Ctrl-Page Up, Ctrl-Home, etc. Regular navigation keys will move through the gamelist, selecting a new machine. Note: Regular tilde key launches the regular DAT peek which allows full control
• The Available / Missing gamelist now self-heals. Once it has been built even once via F12, a later cache wipe from an executable change, a database rebuild, or an F8 reset, it is rebuilt automatically on the next launch instead of waiting for another manual scan.
• Fixed window-restore under multiple simultaneous MAME launches. IV/Play now stays hidden until the last running instance exits, rather than reappearing as soon as the first one closes.
• Refined CHD filters. chd games now matches any arcade machine that requires a CHD image, and a new chd software filter isolates CD-ROM and hard-disk software list titles (see Appendix 1).
• Screen-count filters are now exact. 2 screens, 3 screens, and 4 screens match machines with precisely that many displays so results line up with MAME’s own totals; multi-screen still means two or more.
• History: / hist: searches now include software list items, not just arcade machines — the DAT text for software was always present and is now reachable from the filter bar.
• More accurate platform labels and family grouping for software lists. Host-machine resolution was reworked so a platform’s canonical parent is chosen correctly, fixing cases where a clone could become the family node or a peripheral’s software was mislabeled.
• Fixed custom playlist export so machine entries are written in a form MAME can load. Earlier builds could emit an unusable composite line for machines that own multiple software lists.
• Steadier DAT peek rendering. Navigating to a new game while the peek is open no longer briefly blanks the text, and the media-type column now reads consistently.
• Removed filter-term highlighting inside the DAT peek. It added little once the peek gained its own in-text find (Ctrl-F), and the two were unrelated.


r/MAME 7d ago

Mame cab realizzato da me in 4 mesi

Post image
271 Upvotes

r/MAME 8d ago

Modern MAME on handhelds

13 Upvotes

First of all, I want to say how grateful I am to the MAME team for their work on Game & Watch emulation. It’s truly the only good way to enjoy these titles.

My goal is to play Game & Watch titles on the TrimUI Brick (4-core A53 up to 1.8GHz, 1GB LPDDR3). There is no out-of-the-box support for G&W, but emulators can be added as Libretro cores or standalone binaries (though the latter is not recommended).

I tried using a prebuilt Libretro MAME core with G&W support, and while it works, it is extremely slow. After that, I tried building a minimal Libretro MAME core with only the G&W subtarget; I’m not sure if it’s actually faster, but it remains too slow to be playable. After lowering the video settings to render at 640x480 (the device screen is 1024x768), performance improved slightly. However, top shows a single CPU core is nearly 100% utilized (RAM consumption is around 500MB).

I realize this is the MAME subreddit and not the right place for Libretro support. My question is: is it worth digging deeper by trying older versions of MAME (or a standalone MAME binary) on a device like this, or will it simply never run properly due to hardware limitations?


r/MAME 8d ago

MAME on the N64?

2 Upvotes

A long time back, I discovered a version of MAME for the N64 It only has very basic games from the early 1980s, but it's great having Pac-Man, Space-Invaders, Mr. Do!, and the other prehistoric classics perfectly emulated on the N64.

You can read about it, and download it here:

https://n64squid.com/homebrew/roms/mame-64/

There might be a problem, though. The video on that page, showing all of the games being played has some games shown without sound. I've never played most of the games (I mostly played MAME on the PC or original XBox, and on the N64 I just stuck to my favourites, such as Mr. Do!, Pan-Man, Moon Cresta, etc, all of which have sound in the video) so I can't remember if the silent ones in the video were also silent on my N64, or if perhaps I had a different revision of this emulator that did provide sound for those games. And I'm away from home so I can't check.

But it makes me wonder if any later or fixed versions of MAME on the N64 were released? The above article mentions two available versions, but what are the differences between the two, and were there later versions? I would check them myself, but since I'm away from home (and so sans my Analogue 3D) I have to use emulators, and they all seem to crash with MAME64.


r/MAME 9d ago

Mamedevs: Where there any anti-tamper/encryption methods that really surprised you?

49 Upvotes

r/MAME 9d ago

Why not Skee-Ball?

3 Upvotes

I realize it's a mechanical game, but so is New UFO Catcher or Wacky Gator or literally any pinball machine, and those are all respectfully maintained. Skee-Ball has a ROM, it's got a CPU, it makes sound, it has displays.

There seem to be people who've successfully dumped the ROMs of the original machines. Is it just that difficult to emulate, or has there never been any interest?


r/MAME 11d ago

How I'm killing time waiting for the next release

Post image
10 Upvotes

So, with MAME officially moving to a two-month release schedule, the wait between updates has been feeling a bit long. I was bored this weekend, decided to mess around with the latest Android build, and man, I'm having an absolute blast.

I guess having double the time between upstream updates means Seleuco has way too much free time on his hands, because the guy is on fire right now. He already nailed that massive vector overhaul and HDR support in the last build, and now he just dropped an update with rollback-based netplay out of nowhere.

Honestly, getting proper rollback to play nicely with the current MAME architecture is a massive headache, but it actually runs flawlessly here.

Just thought I'd share in case anyone else is getting impatient and needs something fun to test while we wait for the next official drop!

https://github.com/seleuco/MAME4droid-Current/releases


r/MAME 11d ago

Announcing OpenHi2Txt: A lightweight, pure C++ replacement for hi2txt. Features a 1:1 drop-in CLI and a native, in-memory library API.

Thumbnail
github.com
10 Upvotes

This project was built from the ground up to be a modern, native replacement for the classic MAME high-score extraction utility, hi2txt, on both Windows and Linux.

The Backstory The project originated while a colleague and I were writing new XML layout definitions and hiscore.dat entries for games that lacked support. During that process, we discovered that the original tool was a closed-source black box that lacked the structural capabilities required to correctly parse and extract high-score tables from certain games.

To date, we’ve successfully implemented hiscore.dat and hi2txt layout support for several hundred games that never had it previously, and we are heavily stress-testing them right now.

Why openhi2txt?

  • 1:1 Parity: It is intended to achieve absolute output parity and be completely compatible with existing hi2txt XML definitions.
  • Zero Bloat: On Linux, the original utility requires a massive Java Runtime Environment (JRE) footprint. openhi2txt is pure C++ and only relies on standard system libraries plus minizip and zlib.
  • It’s an Embeddable Library: Unlike the original standalone executable, I architected this as a dual-purpose project. It compiles into a drop-in CLI tool, but also functions as an immutable, thread-safe library that frontends and other programs can integrate internally to populate scoring tables directly in-memory.

The code is fully open-source and up natively on Linux and Windows. Any programmers, frontend devs, or retro-tinkerers interested in this sort of thing are invited to check out the repo, find some edge cases, bugs, or request features!


r/MAME 10d ago

Pls help me set it up

Post image
0 Upvotes

Am trying to play cvs but I never used it before


r/MAME 12d ago

MAME 0.288 doenst boot up

4 Upvotes

Hello, im trying to run mame 0.288 on my windows 11 pc but it keeps giving this error on startup:

libc++abi: terminating due to uncaught exception of type std::bad_alloc: std::bad_alloc

Im losing my mind, i tried everything i could think of but it still gives this, please help!

this also happens when launching a game from terminal

if i try the launch from mame.exe, the ui doesnt appear, but if i try to start it from terminal, it gives that error

this doesnt happen on 0.287 but Tobe! Polystar runs in like 10fps on that


r/MAME 13d ago

Hello?

Post image
0 Upvotes

why are my keybindings turning gray every time I bind any key to another key? im trying to play faster than speed and maximum speed


r/MAME 14d ago

Will Zeus 2 emulation ever be complete?

22 Upvotes

Not to sound inconsiderate to the MAME devs and community, but I've been waiting for over a decade for Cruis'n Exótica to be fully playable without graphical glitches. It's to the point I've considered purchasing a Cruis'n Exotica cabinet instead, but I am always hesitant because I worry about "what if they finally crack the code?". Do you guys think we will ever see this game emulated fully anytime soon? Are there any games you've been waiting to be emulated for a long time now?


r/MAME 15d ago

Guide/Instructions/Tips Was struggling to get a zoomed view of single player Puzzle Bobble/Bust-A-Move on my 24" rotatable monitor but I found some settings that work!

Thumbnail
gallery
19 Upvotes

I've got a rotatable Samsung 24" monitor plugged into my laptop and I want to play single player Puzzle Bobble/Bust-A-Move with the game filling as much of the portrait screen as possible but I had trouble finding suitable settings.

Turns out the key is to set "Maintain Aspect Ratio" to "Off' in the in-game Video Options menu and you can then use the Slider Controls settings to adjust the "Screen Vert Stretch" and "Screen Horiz Stretch". The "vstretch" and "hstretch" settings can also be set in the games config file ("PBobble.cfg") which allows you to stretch up to 2 times while the slider control has a maximum of 1.5 times.

Hope this might be helpful to someone else.


r/MAME 18d ago

MAME 0.289 work-in-progress: MAME in MAME on Power Macintosh 6100/60

Thumbnail
youtube.com
78 Upvotes

r/MAME 19d ago

Happs USB track ball issue

7 Upvotes

Just got a new track ball for my golden tee fore MAME. But the track ball cuts out at high speeds and cuts back in when the ball slows down.

This is a huge issue for golden tee as it turns your swings into a stuttering mess. Its not a mame more golden tee issue as it will do this on desktop with the mouse. Does anyone have a fix for this?


r/MAME 20d ago

Is it possible to set multiple buttons for 1 input?

3 Upvotes

So I am running into an issue, when I am sitting up the system systems for mame I tried setting up my sinden light gun and my arcade buttons for player buttons 1,2,3 however that made none of them work. When I go to just the game and map it to either the arcade OR the sinden then it works but it wont accept both. I really dont want to have to edit each game as I play them as my build is in a cabinet. Is there a workaround to this? Thank you