mallaard Posted February 10, 2021 Share Posted February 10, 2021 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. Quote Link to comment Share on other sites More sharing options...
neil9000 Posted February 10, 2021 Share Posted February 10, 2021 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. Quote Link to comment Share on other sites More sharing options...
mallaard Posted February 10, 2021 Author Share Posted February 10, 2021 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. Quote Link to comment Share on other sites More sharing options...
Your Friendly A.I Overlord Posted February 10, 2021 Share Posted February 10, 2021 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. Quote Link to comment Share on other sites More sharing options...
mallaard Posted February 11, 2021 Author Share Posted February 11, 2021 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? Quote Link to comment Share on other sites More sharing options...
CriticalCid Posted February 11, 2021 Share Posted February 11, 2021 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. Quote Link to comment Share on other sites More sharing options...
mallaard Posted February 12, 2021 Author Share Posted February 12, 2021 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.