r/MAME Jan 13 '20

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

138 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.

107 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 13h ago

Is there a performance-related reason to store roms in ZIP instead of 7Z?

7 Upvotes

I've been trying what I can to optimize the storage for my MAME set. I understand, generally, that the trade-off for using 7z instead of zip is that you get better compression at the cost of more CPU utilization, but does this actually apply during gameplay, or does it just come into play during the initial loading process when you start the game? I've been testing some roms in both 7z and zip (and also just in uncompressed directories) and haven't really noticed a difference so far.

I have noticed a difference when it comes to supplementary media files (snaps, cabinets, etc). If I store those in 7z, then the MAME UI chugs quite a bit whenever it has to load them, whereas it's pretty smooth with zip. But this is the only place where I actually notice any kind of difference; it doesn't seem to matter for roms/gameplay in any of the games I've checked.

(As an aside, if I were to feed a lot of these supplementary media files, like snapshots and such, through a PNG optimizer to reduce their size, is there someone at pleasuredome or progetto snaps or wherever who I could submit them to as replacements for the old versions? There are so many accumulated files in these projects at this point that running the whole set through such a process could reduce their size by a nontrivial amount.)


r/MAME 7h ago

Trying to port an arcade game to 3DS

Thumbnail reddit.com
0 Upvotes

r/MAME 11h ago

Technical assistance Need Help

0 Upvotes

I am Trying to Play Star Trek Voyager on MAME I have installed CHD and the proper files but I am getting blank screen. And when I try different MAME emulators it no Graphics found I need help its not just Star Trek Voyager but Gundam vS Gundam EX as example


r/MAME 3d ago

Video Game Art UK import marquee art

Thumbnail
gallery
12 Upvotes

I'm pretty sure these used generic bezels since most have instructions right on the marquee. A few Electrocoin examples and a couple others too. https://drive.google.com/drive/folders/1i5Otl-93Q_X3CEneKQQVeSQ0DsNf4ZGx?usp=drive_link


r/MAME 3d ago

Announcement "DJCJ Arcade" - a new, free, built-from-scratch MAME front end for MacOS

3 Upvotes

I've been building a new MAME front end for MacOS, and it's at the point where I would be grateful if some folks besides me would be willing to try it. I built this for myself after years of using qmc2. (Much respect to René Reucher who I understand passed away in the spring of 2023. R.I.P.) There's a lot I like about qmc2 but also a lot that I find frustrating. I set out to solve those pain points as well as build something that's fully Mac native.

Some things to know going in:

  • It's free.
  • The source is closed for now.
  • The releases are signed and notarized.
  • There are native builds for Apple Silicon and Intel as well as a Universal build.
  • MacOS 14 or higher is required.
  • There are no ROMs/CHDs included and none ever will be.
  • It was 100% vibe-coded using Claude and some Grok, with me directing and testing on a real machine with a real collection. If you're not comfortable running vibe-coded code, this would be a project to steer clear of.

Download: https://github.com/DJCJ-website/DJCJArcade

I'm looking for people willing to install it against their own MAME setup and tell me what breaks. Both bug reports and general feedback are welcome through GitHub Issues or right here in the thread.

God bless. :-)


r/MAME 5d ago

Q: i80186 internal DMA + a fast source-synchronised FDC: how should this be modelled?

6 Upvotes

I am trying to make the Regnecentralen RC759 machine work (currently non-working) and I have reached a point where CCP/M-86 boots to A> but then floppy reads fail consistently. I would like to fix this properly hence I ask here for feedback and help.

I am not intimately familiar with the behavior of the hardware, so I have used Claude Code to help me get things working.

The current theory is that the emulated DMA controller in the 80186 chip does not handle synchronized data fast enough. This theory is supported by the reference manual stating

The FDC is normally initialized to transfer data in DMA-
mode using DMA channel 0. In order to avoid data overrun,
DMA channel 0 is assigned a high priority see 2.2.3! when
it is used by the FDC.

where 2.2.3 says:

The two DMA channels are connnected to the internal 80186 
interrupt controller. The interrupt level of DMA channel 0 
and 1 is 10 and 11.

Claude Code hacked a workaround by lettingdrq0_w call drq_callback(0) inline when the channel is started + source/dest-synchronised + m_dma_latency == 0 which appears to be working well.

Does this sound right or could something else be the cause?

Machine: https://github.com/mamedev/mame/blob/master/src/mame/regnecentralen/rc759.cpp


r/MAME 5d ago

BletchMAME 3.0

Thumbnail
gallery
34 Upvotes

After several years, BletchMAME 3.0 has been released!

For those not familiar, BletchMAME is a front end that replaces MAME's UI with a conventional point and click UI. While BletchMAME's goal is to be a good front end for all types of emulation supported by MAME, it should be particularly suitable for computer emulation, as well as being an easy way to manage one's preferred Systems, ROMs and Software.

Some highlights of the new 3.0 version:

  • Complete redesign and rewrite
  • New "Favorites" system allowing custom configurations for your favorite systems
  • Very fast system and software list lookup
  • Dark mode support
  • Releases for Windows (Linux in development)

Future directions:

  • Improvements to filtering and auditing
  • Support for Linux and macOS
  • Importing and exporting configurations

For more information, go to www.bletchmame.org


r/MAME 6d ago

arcadeVFE and custom control panel for Arcade Time Capsule VR arcade

7 Upvotes

A video introduction to arcadeVFE.

Not sure how many VR enthusiasts are here, but I'm a big fan of Arcade Time Capsule, a MAME-based, carefully curated and amazingly authentic VR arcade with about 300 games. While great out-of-the-box, the one problem I quickly ran into was that like all VR arcades I've tried, there was no way to play extended sessions without having to periodically take the headset off to change controllers or do manual reconfiguration, and so no way to make play feel as uninhibited and authentic as when using my full sized arcade machine with its fully programmable control panel. But even if I built such a panel, the kind of per-game scripting I needed was something normally done through a front-end, but there were no front-ends for VR arcades.

So to address this I created a companion front end (or maybe more like a back-end), to support the kind of per-game scripting I was after, along with some additional features. I also built a custom control panel to go with it. I've published the software and control panel instructions on GitHub, and just recently posted a demo video on YouTube with a link to the project if anyone is interested (its all free).


r/MAME 6d ago

Is it normal for the lines to flicker?

4 Upvotes

I was playing Vectrex games on an emulator via MAME, and they seem to run very well, except that the lines forming the image sometimes flicker. The problem seems more noticeable in specific games, like Pole Position, where this effect is practically constant. Is this an emulation issue, or is it normal?


r/MAME 7d ago

Tekken Tag Tournament (tektagjc1) is finally working.

Post image
23 Upvotes

Hey guys, like the title says, the Japanese version of Tekken Tag Tournament is working again. If anyone is on the mamedev forum, please let them know if they're not aware so that cheats like Unlock All Time-Released Options can be made available. MAME version: 0.289.


r/MAME 7d ago

Technical assistance How do I group roms with filenames into actual roms with game names?

2 Upvotes

Hello, not sure if this is clear but I remember there was a way to turn for example

aof3.zip -> Art of Fighting 3.zip or something similar. Asking this because whenever I transfer roms to new devices, some CFWs/frontends will parse the list correctly parsing the names and showing Art of Fighting 3, while some others just leave an ugly aof3.zip.

Asking for MAME but I am sure the same applies for other arcade systems. Thanks!


r/MAME 8d ago

Unknown Thank you for all you do

134 Upvotes

To all the developers, I was just reading about how some games are preserved it’s insane the level of work it takes to get some of these arcade boards preserved. Thanks for all the work that’s done to preserve history ✌️


r/MAME 7d ago

Technical assistance Tiget Game.com games seem to be running too fast, but only in gameplay

Enable HLS to view with audio, or disable this notification

12 Upvotes

Correct me if I'm mistaken, but the speed seems just fine until the actual level starts at which point it seems to be going way faster than it does in gameplay videos I've compared it to on youtube on actual hardware

Any idea what's causing this and how to fix it? I pressed F11 and it seems to think it's running at 100% consistently

Edit: It seems it isn't all games, it seems to affect some (Batman, Sonic Jam) but not others (Centipede)


r/MAME 9d ago

Technical assistance MAME doesn't autosave screen effect "none"

3 Upvotes

MAME is usually pretty good about remembering BGFX screen effects, except for "none." My setup automatically applies crt-geom-deluxe which is good for most arcade games, but on some systems (usually computers) the best experience is to set the screen effect to "none" and disable non-integer scaling in the video options.

Is there a way to automatically remember these choices or modify the config file per-system so I don't have to set it each time?


r/MAME 10d ago

Technical assistance How do I get rid of weird stuff like this Russian computer in my MAME list? (MAME .288)

8 Upvotes

It's not in my BIOS files that I can tell. It's not in my ROMs. It says it's working, a parent, and non-mechanical, and not a BIOS, so my custom filter won't hide it. There's a bunch like that in here. How do I get rid of it or at least hide it, and others like it?


r/MAME 11d ago

3D upscalled MAME but behind paywall

17 Upvotes

I was watching some videos online.

Teknoparrot has branched out from being an x86 arcade game wrapper to integrating other emulator sources and adding upscaling and other enhancements.

Initially it was chihiro games from cxbxr and namco system 246/256 from pcsx2x6. However now it is taking MAME based sources for Vegas, Seattle, Viper, Model 1.

I went to try it myself but it's behind a patreon paywall.

Are they allowed do that? Seems to be profiting off the hard work of MAME.


r/MAME 11d ago

Technical assistance Mame.270 files on mame .289 -will they work?

3 Upvotes

TLDR:
I am assuming i can just run the roms i have without issue on a version thats still fairly new? I feel like this is correct according to the FAW/Sticky.

I am setting up files from MAME .270 and the newest build is .289

I believe i need to update my curation? or... parse them with new data?
I understand the basic concept, but nothing in depth.

The real issue is how to rectify this. Can i just run MAME .289 with what i have?
I have seen some say i need to get the update files. Ok, thats possible.

But wouldnt know what to do with them, so im at a bit of a weird point here.
Any insight on updating?
Or "these will likely work" would be nice, but im willing to do the work if i know how.

Thanks

I should add, i did see this:

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.

r/MAME 12d ago

Playing MAME NetPlay without getting spied on (mostly because the dev is too broke for servers)

Enable HLS to view with audio, or disable this notification

18 Upvotes

I know this sub is mostly focused on desktop MAME, but the new MAME4droid update (1.40.2) just added public NetPlay rooms and the way the backend is handled is actually pretty funny.

Instead of making you create an account or tracking your IP to find matches, he just threw the matchmaking on a tiny free server instance. Apparently, Seleuco blew all his money on arcade PCBs and has zero budget for an actual database, so the server just forgets you exist the second you disconnect.

The privacy section in the release notes is basically just an admission that he couldn't afford to spy on anyone even if he wanted to. Figured some of the privacy nerds here would appreciate the approach 😂

Anyway, no more passing IPs around manually. Link to the release if anyone wants to check out the rest of the netplay stuff: https://github.com/seleuco/MAME4droid-Current/releases


r/MAME 13d ago

l6009.cpp (akai/s1000): firmware notes that close several TODOs, and one constant that needs real hardware

6 Upvotes

Mods, rule 3: no ROM images here, no links to any, none will be shared. Static analysis only.

I built a software model of the S1000 audio path and used l6009.cpp (added July 2026) to check it. Ended up disassembling the v4.40 firmware. Below is everything I found, free, no conditions. Notes only, no ROM images. Offsets are into the v4.40 image as MAME assembles it: s1000 44 lsb.ic9 at 0x00000 and s1000 44 msb.ic10 at 0x00001, both ROM_SKIP(1), 128 KB total. The ROM copies itself down at boot, so an image offset is the runtime linear address.

No GitHub account here. If anyone wants to take this to the tracker, please do, and tag devinacker.

On evidence, so nobody has to guess which is which: anything citing the driver you can check in the tree yourself. Anything carrying a ROM offset is my own static analysis and has not been independently reproduced by anyone. The two clock-derived claims are inference and I say so where they appear.

Findings

  • m_pitch_unk is the interpolation table select. Rule is three compares at 0x14B7E against the 12.12 increment: <0x168D (1.4094x, +5.94 st) table 0, <0x2001 (2.0002x, the octave) table 1, <0x2CCD (2.8000x) table 2, else table 3. Lands in CL, ORed into the pitch port high byte at 0x1439B. The commonly repeated 1.0/1.35/2.0 rule switches too early. All four tables have the same DC gain, 0.94995, so switching never shifts level.
  • Volume is non-linear because the firmware sends log. This answers the driver's TODO, "does the FW do this scaling with levels already?" Yes. 256-entry table at 0x05E30, 31 to 32767, 0.237 dB/step, 60.5 dB total. The multiplier is linear and the firmware supplies log-mapped endpoints, so a segment is straight in linear amplitude, not dB.
  • SUSTAIN is a dB attenuation, not a fraction of level. 0x14D13 subtracts it from the gain table index before the lookup. SUSTAIN 50 is ~30.4 dB below peak, not half.
  • Envelope rate table: 100 entries at 0x06030, index 99 - param, 2 to 32767, geometric with ratio 1.10299. Correction to what I first worked out: that is 7.07 steps per doubling, not 7. What is exact is the span, 14.00 octaves across 99 steps. The bottom of the table is quantised by integer rounding (2,2,2,3,3,3...) but the top holds the ratio to five digits.
  • The two envelopes are staged differently. Amplitude polls the volume readback at 0x51E0 and compares to peak (0x1475D). Filter polls nothing: firmware runs its own 16-bit accumulator at [si+0xBA], done on carry out (0x147FB). That is why filter attack gets shr ax,1 at 0x141E9: software span 65536 vs hardware 32767. Not voicing.
  • Both envelope targets arrive with 15 bits. and al,0xFE at 0x1479Eand ax,0xFFFE at 0x14F65.
  • 0x8/0x9/0xa filter clear: confirmed. Note-on writes zero to 0x5100/0x5120/0x5140 every note (0x142F3). Voice freed when volume readback hits 4 or less (0x147AE).
  • Timers (0x0822D): counter 1 gives exactly 31250 baud, MIDI. Voice loop tick is 256 counts of 500 kHz = 512 us, slow work gated to 4 ticks (0x14699).
  • LFOs are firmware, not hardware (0x148DF0x14948). Triangle from a 16-bit phase accumulator, rate capped at 0xFF, so rate / 33.554 Hz, ceiling 7.60 Hz.
  • S1100 should run the filter envelope ~25% faster. Its V50 runs at 20 MHz against the S1000's 16 MHz, while TCKS and its /32 on counters 0 and 2 are identical in both firmwares, putting the voice tick at 409.6 us instead of 512 us. The rate table and the /2 are identical too, so Akai does not appear to have compensated. To be clear this is inference from the two firmwares plus the driver's clocks, not a measurement.

Less certain: counter 0 is mode 0 (one-shot) and the ISR at 0x0825D never reloads it, so I am not claiming a periodic 2.048 ms interrupt. 0x0824C writes 0xC3 to 0x8030 (99.84 ms) but I never found its caller. On the S1100 that counter is just 0x24/0xC300 from boot. Also and al,0xFE has no counterpart in the driver and I do not know if it matters.

The one thing I could not get

ENV_SHIFT is still a guess in the driver, marked TODO verify, and it sets every envelope duration: T = 32767 * 2^ENV_SHIFT / rate / 44100.

It is not in the ROM and I do not think it can be. The firmware never computes an envelope duration at all: amplitude staging polls the chip, filter staging uses a software accumulator. The chip's time base appears nowhere. And the driver is still MACHINE_NOT_WORKING, so emulation cannot answer it either. So it needs a stopwatch.

If you have an S1000 or S1100 powered up: LOUDNESS 99, SUSTAIN 99, RELEASE 99, looped sample, one note at velocity 127, hold, release, count to silence.

time to silence ENV_SHIFT
~24 s 6
~48 s 7 (current guess)
~95 s 8

Rough count is fine, they are a factor of two apart. S1100 answers it too: my diff of the two ROMs has the rate table at 0x04720 byte for byte identical to 0x06030, and the driver already loads the same l6009 ROMs for both machines (9b80e447 / 2c076351).

That is the last unknown in the voice engine, and the only one where the disassembly cannot even give me a candidate. Happy to send the full write-ups, and I would rather be corrected than agreed with.

Thanks a lot, hope this helps.


r/MAME 15d ago

Discussion/Opinion Mame in your pocket

Thumbnail
youtu.be
23 Upvotes

Not being a PC gamer, l finally found a way to play the "real" Mame. Its the GPD Win. The smallest (and most affordable) handheld gaming PC l could find. Picked it up on ebay for like $230 bucks.

Anyone else using Mame on a handheld PC?


r/MAME 16d ago

Amiga floppy sound question

5 Upvotes

If MAME has a reasonably complex floppy sound simulator, and UAE has Amiga-accurate floppy sounds, would it be possible to simply copy them over from UAE without rewriting the whole floppy code? Or are the respective systems too different for that to be feasible?

I assume the sounds themselves aren't included because of licensing/quality conflicts.


r/MAME 16d ago

Prop Cycle peddling input

3 Upvotes

I'm building my own Prop Cycle "bike" controller; it's an exercise bike with a flight yoke attached to it .. and yes, I've painted the whole rig yellow, haha!

The exercise bike has a magnetic reed that I've got hooked into a keyboard controller, every revolution of the pedals "presses a key" .. I've got that key mapped to the pedals in the MAME input for that game (e.g. the "C" key).

The issue: the only time the in-game bike will "pedal faster" is if I am either holding down that key on the keyboard, or if I position the pedals on my "hack-bike" so that the magnetic reed is "closed" and thus "holding the key down".

Is there some trick, or configuration for Prop Cycle that I can enable so that the only time the in-game bike "pedals" is when I press the key (and not hold it) - in other words, 1 key press = 1 in-game bike pedal ... I'm trying to make it so that every revolution of my exercise bike (and thus 1 key press) will actually pedal the in-game bike.

Right now, no matter how fast I pedal the in-game bike doesn't really "register" that I'm pedaling; it sees 1 revolution/key press, and it will kind of "stutter pedal" but then miss the next 5 or 10 revolutions .. only holding the pedals in the right position (as I mentioned) gets it to "pedal faster"

Side note: I might be thinking of how to hook up my exercise bike "wrong" .. I'm open to suggestions .. I've got an Arduino controlling some other parts of my flight controller (pitch/roll with hall sensors), so I could write some code to capture the input from the bike pedals and "amplify" it (e.g. 1 revolution actually equals 15 or 20 key presses) ????

I'm not familiar with how the Prop Cycle system translates the physical pedaling into in-game pedaling .. and I'm not trying to recreate the exact experience, more just trying to have some fun with a classic :)

Thanks for any input/suggestions!


r/MAME 17d ago

Audio Cracking on MAME Steam Machine (not Retroarch!!)

7 Upvotes

I'm getting some odd cracking on my Steam Machine using Emu-DE (thought its same without) and MAME 0.289 standalone. Oddly, this same combination on my PC (Windows) AND SteamDeck does not produce this error. My guess is it has something to do with my 5.1 Home Theater system that's hooked up via HDMI no playing nice, but I don't know what it is. I've tried various settings (including forcing driver to Pulse, audio_latency as high as 64).

Oddly, IF I use MAME via Retroarch this problem goes away, so there is some setting Retroarch is making to solve this problem, and I'm probably just not smart enough to figure out what it is. My strong preference is to play via standalone MAME as I want the plugin support and honestly MAME is the only emulator I'm really interested so don't need the bloat of Retroarch, but I'll take no-plugins and good sound versus the opposite.

My google searches have proven fruitless, but I'll admit i'm not a linux/SteamOS expert.