Using DEMUL to emulate arcade systems is an absolute mess. Emulation of the games work perfectly fine, but basic documentation of how to get it running is extremely lacking. A lot of tutorials out there don’t properly explain why the way things, forum posts give no context and assume you have everything already. This guide will explain everything you need to know about DEMUL, NAOMI and how to actually get the damn thing working.
Update: If you’re after the setup of DEMUL, part 2 can be found here. This guide is purely for arcade emulation, I won’t be covering Dreamcast in this guide as that is well documented elsewhere.
If you’re unfamiliar, DEMUL is an emulator which is capable of running Dreamcast, NAOMI, and Atomiswave ROMs. From my experience, this is the definitive emulator for running NAOMI and Atomiswave games. Compatibility with games is solid and performance on a high end PC will give you 60 FPS, easy. There’s a lot of discussion online about nullDC but for me, I’m happy with DEMUL. To understand how DEMUL works with ROMs and why a lot of people find it difficult to get games running, we need to do a quick lesson on MAME.
Understanding MAME ROMs
With every MAME version released, there is a complete ROM set released along side it with all the new changes and working games. These new ROMS and changes only work with these specific versions of MAME (relatively speaking). If you get a X-Men vs. Street Fighter ROM from MAME 0.179 and then use the emulator MAME 0.205, chances are it’s not going to work.
Why? Because in MAME 0.201 there was a change on how CPS2 games work with Q Sound, requiring an additional file, which was only made available in the 0.201 ROM set. MAME is super specific like this with its ROMs, which why it is the hardest system to setup for beginners. You would only know this information if you actually followed and read all the notes the MAME devs put out with each release.
Now take the nature of how MAME works and throw in emulation ROM sites into the mix and you have yourself a complete and utter mess.
A user would go onto one of these sites, download a Street Fighter II ROM, then grab the latest MAME emulator and be treated with a barrage of errors. The ROM that they just downloaded could be from one of hundreds of different MAME revisions. There’s no easy way to find out what was downloaded and the user would have no idea about the prerequisites required for this particular ROM.
Why does this matter?
DEMUL functions in a similar way. With every version that was released, they also changed which ROMs it needed, but just never explained or documented which revision of MAME ROMs was required. To make matters worse, some versions also had DEMUL or nullDC specific ROMs that only worked for these emulators, outside of the MAME roms! This is the part that really annoyed me with DEMUL. The correlation about what the correct ROMs to use is foggy as hell and isn’t officially documented anywhere.
So for the record, the latest DEMUL as of writing, version 0.7 is working fine with the MAME 0.205 ROM set. I’ve tested this with the most popular NAOMI and Atomiswave games and I haven’t ran into any issues launching games.
Getting the right MAME ROMs
When acquiring full MAME ROM sets, you will need the following:
- Full MAME ROM set (non-merged)
- Full MAME CHD set (merged)
- Full MAME ROMs (bios-devices)
MAME ROMs come in a few different types. The short version is for non-merged, each individual ROM file has everything it needs within that .zip file to run. So instead being separated for clones and revisions, it will have everything ready to go. Because of this, it will take up the most disk space compared to all the other ROM sets, around 100GB in total. Below is an image that I’ve reproduced from Lordmonkus at the Launchbox forums explaining this visually.
There is also an additional ROM type that MAME uses called CHD which is pretty important in understanding DEMUL.
CHD ROMs are compressed hard drive or disk images of arcade games. Games with CHDs are usually accompanied with your usual rom .zip file. For example, Capcom vs SNK 2 has a .zip file and a CHD file. The .zip file is a lot smaller than the CHD but both are required. This is key to getting NAOMI emulation done right and will be explained in detail down below. In total this will be around 500 GB.
So we now have a solid understanding of how DEMUL and MAME ROMs work, we’ll now get into the different types of NAOMI games that are available.
I won’t dive into specifics but from 1998 to 2000 Sega released 3 different versions of the NAOMI arcade hardware. These were called NAOMI, NAOMI GD-ROM and NAOMI 2. NAOMI stored its games on ROM cartridges where NAOMI GD-ROM and NAOMI 2 also used optical disks to run their games. This information is important for us because depending on what game we want to emulate, it will require a different set of ROMs. Remember how I mentioned the regular ROMs and CHDs? Typically speaking, regular NAOMI games run off a single .zip ROM file where NAOMI GD-ROM and NAOMI 2 use additional CHD files as well.
If we load up DEMUL and go to File > Load NAOMI, you’ll be able to see pretty quickly what games run on a particular platform.
For example, let’s take a look at Marvel vs Capcom 2 (mvc2u) and Capcom vs SNK 2 (cvs2).
Marvel vs Capcom 2
- ROM Type: Naomi
- MAME ROM Name: mvc2u.zip
- Filesize: 88MB
- CHD Needed: None.
Capcom vs SNK 2
- ROM Type: Naomi GD
- MAME ROM Name: cvs2.zip
- Filesize: 8MB
- CHD Needed: \cvs2\gdl-0007a.chd + gdl-0008.chd
Marvel vs Capcom 2 is a NAOMI game; therefore, it only requires the main .zip ROM. If we look at the MAME ROMs, we can see that mvc2u.zip comes in at around 88MB which sounds about right.
Let’s look at Capcom vs SNK 2. This game uses the NAOMI GD-ROM. Because of this, not only does it need its main .zip ROM file, it also needs a CHD file. Back to our MAME games, cvs2.zip is only 8MB. If you were to just try and load this ROM into DEMUL you’ll get a big fat fail. However, if you get the CHD as well (which should be folder called cvs2) put that it into your MAME ROM directory, then try load the cvs2.zip, you’ll be treated with success.
It’s this disconnect of information with CHD files that a lot of people seem to gloss over or don’t understand. Someone will go and download a 7MB NAOMI game and then struggle to get the game to work. There’s a lot of information and forum posts saying you can load bin files directly, converting CHDs and making lst files and other rubbish. Ignore all that.
Getting the correct BIOs
The final topic that we are going to touch on is the BIOS. A system BIOS is a duplicate of the operating system which you are trying to emulate, in our case, the NAOMI or Atomiswave OS. This isn’t just a DEMUL thing it’s common with a lot, if not all emulators.
The part where it gets complicated is the amount of BIOS files floating around on the net. For NAOMI alone, there’s at least 10 different ones available, which are from different regions, different hard revisions and cartridge types. If you have a mismatch of ROM and BIOS (such as but not limited to a ROM from a USA set, and a JAP BIOS) the game will fail to load.
In your MAME ROM (bios-devices) set, there should be a file called naomi.zip. All the relevant NAOMI BIOS files are within this .zip file. The one you want to make sure that’s located in within there is epr-21576h.ic27. This BIOS is from the NAOMI M4 cartridge system and provides the most compatibility. It should have a md5 hash of d1e4be4862f1f9592b17a042abc5831e.
For Atomiswave games, the BIOS file that you want is one called awbios.zip.
Phew! That was a lot of information to take in, but crucial to understanding how to get DEMUL running. To summarise the 3 main points to take away from this are:
- Always use full MAME ROM sets
- Don’t download individual ROMs, always get the latest MAME ROM (non-merged), CHD (merged) and ROM (bios-devices) sets.
- NAOMI GD and NAOMI 2 require CHD files
- Some games require a CHD file in addition to their main base ROM file. This will vary from game to game.
- Ensure you have the correct BIOS
- Double check that you have the relevant BIOS files for the system that you are trying to emulate.
I could never find all this information about DEMUL in one central place. The official site makes no mention of which correct MAME ROM set to use. The only way is to dig deep enough online and you might find a Reddit article and forum posts mentioning all the stuff mentioned here. In Part 2 we’ll actually cover to how set up DEMUL on your PC and the issues and gotchas that goes along with that.
Give yourself a pat on the back. You’ve just figured out half the battle.
Knowledge is power my friend.
Sources and Links
- NAOMI CHD only list / pastebin.com
- Sega NAOMI history / segaretro.com
- MAME tutorial / launchbox.com
Thanks for your incredible tutorials. I have also a Sega Astro City with Groovymame 15KHz PC installed.
Nowadays which emulator setup would you recommend to play Dreamcast, Naomi and Atomiswave games on a SAC Groovy Mame 15KHz PC?
Going the Retroarch way, pick specific Retroarch cores or is the Demul or Reicast able to run games in 15KHz?
I have a NAC with Groovymame, CRT Emu Driver etc and all that but I recently changed out DEMUL in favour of RetroArch. I’m actually writing an article on how to get NAOMI, DC, Atomiswave working through RetroArch + 15hz options.
Its just easier to put all other things aside from MAME through RA, the less emulators I need to configure, the better!
Im very curious about this new tutorial but take your time -:)
Im also considering about a Frontend (Attractmode or BigBlue/ tending to AM) which I didnt implemenmt, yet.
Have a nice weekend and thanks for the answer.
Hello, good afternoon, I have a question if it is possible to implement the theme of bigblue to be able to put flyers on the main screen of the theme from now on, thank you very much