Jump to content
LaunchBox Community Forums

How Does MAME work?


mallaard

Recommended Posts

I absolutely love MAME, one of my favorite things in the world is sitting down with my atcade stick and exploring through hundreds of random old gems I’ve never heatd of, particularly Japan-exclusive stuff.

but I kinda wonder how MAME even works. I understand the basic premise behind console or computer emulators, they’re artificial environments that trick game files into thinking they’re running on original hardware. With thousands of games running on different hardware, how is MAME organized? I can see that a lot of earlier games are based on Z80 or Motorolla 68000 chips, does MAKE have like two or three overarching architectures that can simultaneously handle all the different variants of those or does literally each and every game require its own emulation environment? Obviously some systems like Neo Geo only tequire one setup, but it still mystified me how one program can handle Donkey Kong and Time Crisis at the same time.

if anyone can explain to to me in me nice dum-dum words I’d greatly appreciate it.

 

 

 

 

Link to comment
Share on other sites

5 minutes ago, mallaard said:

they’re artificial environments that trick game files into thinking they’re running on original hardware.

Thats not true, the data from a rom file is read and converted to something a PC can understand and run on the fly, In the case of MAME each hardware board essentially needs a specific "core" or "source" to run. Think of it like Retroarch, when you launch a game there it only works if its run it in a core that understands that system, (a genesis rom wont load in a gameboy core for example) same with MAME.

Link to comment
Share on other sites

43 minutes ago, neil9000 said:

Thats not true, the data from a rom file is read and converted to something a PC can understand and run on the fly, In the case of MAME each hardware board essentially needs a specific "core" or "source" to run. Think of it like Retroarch, when you launch a game there it only works if its run it in a core that understands that system, (a genesis rom wont load in a gameboy core for example) same with MAME.

Oh ok, so an emulator acts more as a translator for the host hardware, so a SNES emulator for a PSP takes a rom’s SNES specific coding and converts it into PSP compatible coding. Thanks for clarifying that for me. So I guess the MAME project is a large collection of these translation codes that people have been making for all those different games and systems. That makes more sense than what I was thinking. 

Link to comment
Share on other sites

2 hours ago, mallaard said:

I understand the basic premise behind console or computer emulators, they’re artificial environments that trick game files into thinking they’re running on original hardware.

 

2 hours ago, neil9000 said:

the data from a rom file is read and converted to something a PC can understand and run on the fly

I am not an emulation specialist, far from it even. But neill9000 describes High Level Emulation (HLE) and  mallaard describes Low Level Emulation (LLE). So, you are both right.

Link to comment
Share on other sites

17 hours ago, Koroth said:

 

I am not an emulation specialist, far from it even. But neill9000 describes High Level Emulation (HLE) and  mallaard describes Low Level Emulation (LLE). So, you are both right.

Wow that’s interesting! Since you introduced the terms LLE and HLE I looked them up and found this article that goes into detail about those concepts: https://emulation.gametechwiki.com/index.php/High/Low_level_emulation

So now I’m wondering, since the majority of arcade machines in MAME are older and lower-tech games if it relies more on low level or high level emulation?

 

 

Link to comment
Share on other sites

From the official MAME site:

Quote

MAME’s purpose is to preserve decades of software history. As electronic technology continues to rush forward, MAME prevents this important "vintage" software from being lost and forgotten. This is achieved by documenting the hardware and how it functions. The source code to MAME serves as this documentation. The fact that the software is usable serves primarily to validate the accuracy of the documentation (how else can you prove that you have recreated the hardware faithfully?). Over time, MAME (originally stood for Multiple Arcade Machine Emulator) absorbed the sister-project MESS (Multi Emulator Super System), so MAME now documents a wide variety of (mostly vintage) computers, video game consoles and calculators, in addition to the arcade video games that were its initial focus.

In easier terms: Running games isn't MAME's main goal. They primarily try to document and replicate the original hardware as accurate as possible and everything else what comes with that is just bonus. That's basically the very definition of LLE.

It also answers the questions why MAME is so taxing on the CPU and why it currently can't emulate newer machines.

Link to comment
Share on other sites

22 hours ago, CriticalCid said:

From the official MAME site:

In easier terms: Running games isn't MAME's main goal. They primarily try to document and replicate the original hardware as accurate as possible and everything else what comes with that is just bonus. That's basically the very definition of LLE.

It also answers the questions why MAME is so taxing on the CPU and why it currently can't emulate newer machines.

I found a little video the other day of one of the developers talking about their goals and process, and how they're trying to update MAME for "the 21st century" in light of having decades of programming baggage they'd like to streamline and whatnot. I forget how powerful MAME is if you really look at all its functions. I've even used it to emulate the Jaguar a couple of times before settling on Retroarch for that. 

For some reason I find all this talk of emulation and computer preservation really interesting, despite knowing pretty much nothing about programming myself. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...