This month has been a bit tiresome, specially with some university assignations going on, but it has been a progress-filled month here; with several interviews so far (and the last one being with LuigiBlood), today I’m bringing you another interview with another developer of another interesting emulator…though most emulators are interesting because of what they do; but both the developer and the emulator were quite a treat.

MetalliC (also known as p1pkin) is one of the developers for Demul, a Dreamcast emulator that not only matured quickly since its initial release in 2006, but also is quite known for supporting NAOMI early on, and more importantly, being the only emulator so far that supports SEGA NAOMI 2, SEGA Hikaru, SEGA System SP and Cave CV1000 arcade hardware. On top of that, it often stood as one of the most, if not the most accurate Dreamcast emulators out there, highlighted by fully supporting Windows CE games, eclipsating Makaron’s partial support, and being avaliable many years before Flycast’s support; as well as being used for research in certain game communities, like Sonic Adventure 1 and 2.

Interestingly enough, MetalliC joined around 2010, four years after the project was created by Wind, and while turns out that he was much more interested in arcade and reverse engineering than Dreamcast, he contributed a lot to general and GPU emulation improvements; but was particularly involved in a lot of work for the arcade hardware emulation, including both peripheral emulation and general game reverse engineering.

With all of this said, not only he provides some interesting insight in his work in DEMUL, but also talks about many experiences and knowledge about the arcade-based hardware emulated; and talks about his work in both MAME and The Dumping Union (arcade game dumping community) as well. So, without anything else to add, please enjoy!

First of all, thank you for this opportunity; since I was young I always was so fascinated with emulators, and I still admire emudevs (including you) because of all their hard work on doing something like getting a previous console to work in a whole new platform. I’m very glad that you are here!

Welcome, and thanks for the good words!

What would you say about the things you do?

I do various things IRL, but my hobby in spare time is to research various things retro; not just hardware. Regarding Demul, I’m one of the developers who joined this project about 10 years ago. I’m also a member of MAMEdev and The Dumping Union (which involves finding, buying and dumping games, mostly arcade ones).

In general, a bit more than 10 years ago I was in a bit of a nostalgic mood, became interested in old arcade games, spotted MAME and other similar projects, and was mainly interested in hardwares I’ve missed back in the days. Sometime later, Wind proposed that I should join the Demul team and I agreed. That’s the story in short ๐Ÿ™‚

That’s very nice! Do you recall your first experience with the Dreamcast?

Nope, I had no Dreamcast. I had seen it once on at one of my friend’s house but was not impressed.

To make things clear: I’m not a fan of console gaming. Dreamcast or any other consoles are not interesting for me (almost) at all.

Alright! Do you recall your first experiences with emulation?

It was early 1990’s, and it was with one of the ZX-Spectrum emulators out there. If I remember the name right, it was with “Z80”.

Since how long have you been in the emulation scene?

I have “been in the emulation scene” as an active researcher/developer (?) since late 2000’s, I think. But as I said, I was interested in emulation in general at various points in my life, like in the early 90’s with the ZX-Spectrum, and the later 90’s with Amiga and WinUAE (as an user).

You mentioned how Wind (which I’m aware that was the DEMUL creator) invited you on working on DEMUL. Around what time did that happen? (and can provide any more details related to that if there are any?)

Just checked my IRC logs – it was in Spring 2010, and IIRC that conversation went like:

– Hey, do you want to join us?

– Maybe, but I have no interest with Dreamcast.

– No problem, you may work on Naomi, Atomiswave, etcetera!

– OK then ๐Ÿ™‚

Ironically, I did a lot of improvements to DC/Naomi PowerVR GPU emulation later on, and found it a quite interesting and unique piece of hardware ๐Ÿ™‚

In general, I’m more of a hardware man, and I like to know how things work inside this or that thing; I’d suppose you’d like more to talk with Wind, who was more interested with actual games ๐Ÿ™‚

The whole Demul project started because he wanted to play Resident Evil: Code Veronica, but he had no Dreamcast and no ability to get one, and there were no emulators that supported the game at that time (early 2000’s), since it wasn’t working in Chankast.

Nice! Emulation always fascinates me because of both the amount of work done for software to properly match what the original game expects, and how they get to explore the way hardware works; that second one often gets me very curious but I don’t know almost anything about emulator internals or how console hardware works in detail, which is why I’m often amazed when talking with someone that clearly knows about that well.

Something that always intrigued me was about how Naomi was mostly based on the Dreamcast but with some few hardware differences (like extra RAM).

I’d say it in other way: SEGA developed base hardware kit which may be used for various applications like home consoles, arcades and other. At the home market the biggest thing is the price tag, so Dreamcast was cost-reduced hardware and got less RAM (which was expensive back in the day.

And if being even more strict with details – this hardware was NOT developed by SEGA, but mainly done by Videologic (UK company, now Imagination Technologies), Hitachi and Yamaha; while SEGA was more like a customer in restaurant – “Hey, garson! Give me this and that!” ๐Ÿ˜‰

What would you comment about that, as well as what was needed to work on in order to get Naomi working?

In short, quite a lot of work. There was quite many people involved in NAOMI research: Elsemi (mainly known for CPS3, Model2, etc. emulators), D.Knute (Makaron emu author), Wind, CaH4e3, myself, Andres Naive (MAME’s math/encryption genius), and many others.

So, the current state of NAOMI emulation is the result of team-work made by many people. At tech side, there was the need of reverse-engineering how the cartridges worked and their protection/encryption (as there is several different types of encryption), as well as peripheral stuff, like JVS MCU RE, JVS I/O boards emulation, etcetera.

Can you comment about the other arcade hardware supported in DEMUL? Specifically, NAOMI 2, Hikaru, Gaelco and Cave? It would be great if you could give detail about each one, since I do know that they just share some hardware but most of it is vastly different.

Yes, we’ve noticed similar hardwares which used the same CPU (SH4), so we may reuse existing parts of code and get them working. About details, however:

NAOMI 2 is very similar to NAOMI 1; SEGA basically noticed that the Dreamcast/NAOMI 1 was weak and underpowered in math/transform & lightning (T&L), and that was even before Dreamcast or NAOMI 1 was released (I know that from internal documents I have). So Videologic started working on a more powerful system at late 1998, with an additional T&L coprocessor which may feed 2x HOLLY/PowerVR2 GPUs, and released in 2001 (IIRC) as NAOMI 2.

It had full backward compatibility with NAOMI 1, which is quite not typical in arcade world. I’m personally >90% sure it was originaly planned to be released for home market as well, as Dreamcast 2 or something like that.

Video of Virtua Fighter 4 Evolution (by VCDECIDE) comparing the original NAOMI 2 version with the Playstation 2 port. Note that graphics were much more advanced than previous Dreamcast/NAOMI entries, and that the PS2 port had some things downscaled too.

Hikaru, on the other hand, is unique hardware: It reuses the same SH4 CPU (2x of them) and AICA SPU, but there are no other similarities. It is like the successor of the Sega Model 1-2-3 series (like a Sega Model 4).

As of feature level differences, it had a T&L coprocessor by design, and also was capable of per-pixel lightning, which was quite cool for that time. But sadly, we still don’t know much about it, like the names of the GPUs and T&L chips there, who designed and developed them, among other things. I personally tend to think that they are the next generation of Lockheed Martin’s Real3D division.

You mean that it isn’t known who did them yet?

Yes, and for sure it was not SEGA, since they are not 3D chip designers or vendors. Saturn/ST-V’s VDPs were designed and developed by Hitachi, Dreamcast “HOLLY” chipset+GPU was designed by Videologic and developed by NEC, and the arcade Sega Model 1-2-3 GPUs were by Martin&Marietta (later absorbed by Lockheed Martin), so SEGA themselves never made GPU devices.

Footage of Virtual-On Force for the SEGA Hikaru. It would recieve a similar game on the PS2 (Virtual-On Marz), and a direct port for Xbox 360 (later on at PS4)

What can you say about how they were researched into getting to work in DEMUL?

Reverse-engineering code from BIOS, games, etc. Involves disassembling, analyzing and guessing what it is doing at this or that part of code, especially on hardware-access parts, in which we have to guess which hardware registers it might be, and how it might function, amond other things. I think all undocumented home or arcade platforms were reverse-engineered in this way for that matter.

About Cave CV1000, it was CaH4e3’s work; he liked these Cave games, so he mostly reverse-engineered this hardware by himself.

How difficult would you say that it was to implement arcade games in DEMUL with “extravagant” input devices? (SEGA Bass Fishing, Crackin DJ, NAOMI Terminal, etc)

I’d say that it was not perfect with their quirks ๐Ÿ™‚

Sadly, you can’t fully enjoy such games while playing on gamepad or keyboard+mouse, but I’ve tried to do the best: Implemented a MAME-like input mapping system, simulation of some mechanical devices if possible, among other things.

It was quite interesting, because now I understand game developers when they say “we got this game platform and its [control device] and started to create a game which will be fun to play using it”; the control device (gamepad, racing wheel, whatever) is really a starting point in game design, and quite much defines what the game will be and how the player will feel it during gameplay.

That’s quite interesting! About the emulator, what was your biggest task in it? (As in, working in the video, audio or control plugins? or on the core features? or something else?)

It is a hobby project; here are no tasks, it is more like “do whatever you want, how you want and when you want :)”. Same thing is true with other non-commercial projects, like MAME.

About the things I have done, I did quite many things, most of which were probably major tasks:

– NAOMI JVS MCU research and emulation, JVS IO boards connected to it, flexible input mapping system, input profiles for all games

– MAME’s CHD images support for arcade games

– AICA SPU rewrite

– NAOMI2 T&L emulation rewrite

– DC/NAOMI PowerVR2 GPU rewrite to use real VRAM, on the fly texture decode, framebuffer emulation, and tons of fixes and improvemets

– SystemSP reverse-engineering and emulation

– Reverse-engineering and emulation of various card and RFID readers

But I think that at one point, I’ve touched every part of this emulator, specially starting from mid 2010’s, when the rest of the team became not as interested with the project.

Now that you mention “the team”, what can you say about them?

I can say those were very fun times with them ๐Ÿ™‚

As part of work, Wind is the universal guy, who initially did most of DEMUL (many parts were repraced or rewritten later on, but he still did a great work), specially great in CPU emulation, dynamic recompiler/JIT design, and similar things.

DreamZZ was mainly a 3D reverse-engineering specialist, who RE’d the hardest parts of NAOMI2 and Hikaru GPUs.

CaH4e3 was mainly interested in whatever hardware research and reverse-engineering was being done (just like me), preferrably protection/encryption parts.

ajax16384 left the project before I joined, but I saw that he did a lot of “general purpose”/framework things to make other things easier. That’s it in short. I still see Cah4e3 and ajax16384 at IRC each day ๐Ÿ™‚

Nice, I didn’t know you guys still talked through IRC!

Well, IRC is a quite widely common way of communication in such projects, even in these days.

I just find that interesting; I used IRC to talk on X-Hax (group dedicated to modding Sonic Adventure DX), and didn’t know DEMUL had an IRC (unless it isn’t really for DEMUL but instead for something else)

It still exists, but almost dead, as we mostly talk at emu-russia channel at newnet instead.

Wind is sometimes (but very rarely) writing something at the forum, and same thing happens with DreamZzzz; it seems they are no longer interested in emu-scene or gaming (at least for now). CaHe3 and ajax16384 are active, but not Demul-related.

CaH4e3 mostly works on NES-related stuff, like game researching, working in FCEUX emulator, etc. He is mainly known as an expert in everything NES/Famicom pirated/unlicensed games and cartridges, and as far as I know, he dumped many of them.

Emulation communities themselves also are one certain interest of mine, so I want to ask about what can you comment of emu-russia?

Means nothing for me, just a forum. But as I know, back in those days it was the main center of emulation community at Russian speaking space, or at least one of the centers.

What can you say about contributing with MAMEdev?

It’s fun ๐Ÿ™‚

There are so many unique hardware platforms developed in the world during past decades, and it is fun for me to work and learn something new and interesting (that may be useful for others too). I’m also there kind-of like the “Everything early 00’s SEGA” guy, so everything NAOMI, SystemSP, etc-related which was dumped like the last 7 years was “passed through my hands” ๐Ÿ˜‰

You could often spot me oneBay or AuctionsYahooJapan (AYJ), and then I coordinated with all the guys until the point it was added to MAME romset; but it is mostly Dumping Union work than MAME.

That’s very cool! It is very interesting to think about how everything in MAME came to be, as it worked with separate drivers per hardware, and many people around the world working on it.

What can you say about your stuff in Dumping Union? (experiences, games dumped, anything special)

The Dumping Union is a great community, as they did unbelievable amount of work for preserving gaming history, mostly using personal funds and time (as sadly, public fundraisers and donations often give pretty small amounts of money). In general, it is just mailing list, where (mostly) tech people do gaming hardware repairs and/or hardware and game collection. So it isn’t like a real organization with some management, but it is more like a community where each have their own specific interests.

For example, my main interests were NAOMI stuff preservation, which involved like just 3-5 people that did all the work and paid all the costs, heh

What was your favorite game in any of the platforms supported in DEMUL? (Naomi, Naomi 2, etc)

Not sure, as there were many games I’ve enjoyed. The most I have played were probably shmups, mostly from Cave; and Rez for Dreamcast as well. I’d say such games are almost ageless, but in general, reverse engineering games and/or hardware is my favorite game ๐Ÿ˜€

What are some of your favorites in MAME?

There were too many great games in MAME; the most memorable arcade games for me probably were Final Fight, Shadow Warrior and R-Type.

What games have you dumped or provided for Dumping Union?

I’m personally not involved in dumping them, but I usually find them at auctions and kind of head all the process from acquiring to dumping. I also handle most of creative stuff – made instructions about how to properly dump different types of NAOMI cartridges, developed software dumpers for Sega SystemSP and Sammy Atomiswave, etc. which means I often solve the “we have this thing, but how to dump it ?” part, at software level.

And then, using the developed tools and/or instructions, other DU folks who have the actual hardware do the dumps of the games. But as I mentioned earlier, all was done by groups of people, and in the case of NAOMI & similar, a 3-5 person group, so it will be wrong to say “it was me who dumped XXX!!!”.

By the way, if you have heard of a “NAOMI 1/2 Multi Bios”, that was developed by me. Interestingly, it was a side effect of the SystemSP dumper solution development, when I found how to “hack” Dreamcast/NAOMI/SP/etc BIOS checksum protection, and make “moddable” BIOSes for these platforms. Most of modded DC BIOS out there used my method, using a boostrap from NAOMI HOTD2 prototype BIOS ๐Ÿ™‚

Hey that’s pretty cool! Makes me wonder what else there is about those hacked BIOS.

Well, there is special protection in “HOLLY” (main chipset chip of DC/NAOMI/etc), which calculates checksum of BIOS data, and allow access to GD-ROM (or cart/DIMM in NAOMI) only if the checksum is correct.

The sad part is that we still don’t know the exact checksum algorithm, which technically means that the Dreamcast protection is not fully cracked even today, 20 years after release!! But at least we have a method to workaround it using the magic bootstrap from HOTD2, though such a quirky method still has side effects, and some of the DC/NAOMI games don’t work with these BIOS.

I really hope that this HOLLY’s protection will be really cracked/RE’d one day. I was trying along with megavolt85 (guy from DC-SWAT / Dreamshell team) to solve this checksum and invested many time in researching, but sadly we had no success.

Now that you mention HOLLY protection, how did that affect its emulation development?

It didn’t. Its a real-hardware users only issue, which causes some problems if trying to develop customized BIOS for Dreamcast (or platforms based on it). You may have heard of japanese-cake, who did some modded BIOS for Dreamcast; there were no new releases for a long time, and the current version still may have issues (specially with homebrew CD games booting). That’s because of not fully solved BIOS protection in Dreamcast.

Just thought a curious question: I guess that NAOMI games in a Dreamcast wouldn’t work because of the extra hardware and RAM…but would Dreamcast games work in a modded NAOMI?

In theory, yes, if a special tool similar to Dreamshell’s ISO Loader gets developed, and if you can plug DC controllers into the NAOMI. Highly likely games would work (except for CDDA music), and if the game fits into the DIMM memory (512MB or 1GB).

That’s an interesting assumption!

I wouldn’t say its an assumption. I know deep details about how games works in both DC and NAOMI, and I have such ports in my TODO list ๐Ÿ™‚

The key part is that there is likely will be no need to port/mod the game itself from the Dreamcast, just use special loader for NAOMI.

I guess that, outside of an hypothetical port of the original NAOMI game to Dreamcast, you’d say that the theory of how NAOMI>DC games wouldn’t work because of the extra hardware is true?

Yes, the games that use full RAM support cannot be easily ported, and in any case there will be a need to patch/mod/port each game. In general though, (almost) everything is possible; its just the matter of how much time you can/want to invest in this work, so mostly it is question of time and will.

For example, even if game uses all the 16MB of NAOMI video RAM, while DC have only 8MB – it is possible to compress these textures or do other tricks to fit them, but it will be hell a lot of time to do this. Same is true for most of “is it possible to have game X from hardware Y to be ported to hadware Z?” cases.

So you would say that, in theory, both DC>NAOMI (through a special loader and extra tools) and NAOMI>DC (through painstaking porting/patching) are actually possible?

Yes. That’s because DC games does access DC-specific hardware (GD-drive, BIOS font, flash ROM) via “syscalls” code located in RAM, so we can use software replacement of them, same as Dreamshell’s ISO-loader (except for controllers – they should be plugged into NAOMI, there are ports for them, which may be used via adapter)

On the other hand, NAOMI games do NAOMI-specific hardware access directly, so each game should be RE’s and modified to run on DC.

Interesting. What do you think of how DEMUL allowed many to play some of their favorite rare gems (and even in some cases, researching on certain games like Sonic Adventure?)

It is very good!

What other emulators have particularly impressed you? (Code, development, functionality, design, etc)

MAME and WinUAE – these two impressed me the most, because of giant amount of work done and achieved results. In terms of “cool scene” stuff, bleem! for Dreamcast was a very advanced and mindblowing things. From recent things, skmp’s Reicast for Android is good too, considering the original version worked fine on a single core ~1Ghz device.

What would you say that were some of the best experiences you had with developing DEMUL (and MAME)?

There were a lot of memorable moments, so I’ll try to pick a few:

Metal Slug 6 for Atomiswave – it was good moment when I discovered how to enable dev.mode in it and enable “red blood” and violence in this game. Until that moment, no one was aware of such features in this game, as it was censored by the developers.

Another one was when I “grabbed” from a site of some JP game art developing company, a software for creating music/sounds for Yamaha YM773 sound chip. It allowed us to reverse-engineer it from the codec for the “Cave SH3” sound chip; had it not happened, there would have been zero chances to get any sounds from it.

Are you working in any other projects at the moment? (Personal, emulator-related, etc)

At the moment, ZX-Spectrum related research in MAME. Not too long ago there was a DEMUL task, when Dinosaur King game’s Chinese version was dumped, and there was a need to beat its protection.

There is a number of pending stuff on my list, like the Caio Loopy BIOS dump/troyan project with my friend. I also need to finish some Capcom CPS3 stuff in MAME; while I have improved emulation several months ago, there still are some few inaccuracies left, and as usual, they are the nastiest ones.

There’s also the need to make a new Demul release one day ๐Ÿ™‚

Sounds good! What can you comment about Kaillera being implemented in some DEMUL versions? There were some few communities that used that to play DC/Naomi games online.

I don’t know what to say. Online play is a great feature, but Kaillera is an awful tool; however, it is simple to use from both developer or user perspective.

Just got curious about your WinUAE mention. Did you have an Amiga before, or you just used WinUAE a lot?

I’ve had some ZX-Spectrum-s (there were a couple of variations) since late 80’s, then Amiga since ~mid 90’s, and then PC since ~2000.

What other emulation projects (not DEMUL/MAME) are you currently following? (as in, not involved in development but still keeping an interest on what’s done)

Redream. I’m often chatting with its author, as he’s usually asking questions like “how do I do this” or “this game has such glitches, do you know why?”. I was helping him a lot ๐Ÿ™‚

I also was following some other arcade emulators, like Supermodel 3; but I’m mostly reading in twitter about varios guys that do low-level reverse engineering of various hardware, like arcade custom GPUs, chips or CPUs. In general, various researchers who dig internals of various components, and get from there information which may be used later in software or hardware emulation development.

I found interesting how you happened to be following both redream and Supermodel. About redream, I remember chatting with inolen so that he could fix some things with my GPU; and funnily enough, about if he could make it work with OpenGL 3.1 (it previously needed 3.3), and after debugging some stuff, he made redream work with 3.1 lol. He’s pretty nice!

And about Supermodel, it was one of the emulators I first ever followed, as far back as 2011.

Well, I’ve also chatted sometimes with skmp, the NullDC/reicast author, and with D.Knute, the Makaron author. He is a very smart guy, but haven’t heard of him for ages.

Just to know, you also were known before as p1pkin, right?

That’s my 2nd nickname, and I use both.

Interesting! What did you think when I reached out to you for this interview?

Can’t remember, but probably was nothing special.

What could you say that you learned to do with development on DEMUL/MAME?

Many things: Thanks to DEMUL, I’ve learned how fun and efficient teamwork can be. Thanks to MAME, I’ve learned how non-big teams might achieve great results in research and preservation of gaming and computer history, using only personal resources/funds and time, with no begging for donations/patreons/bounties/etc like some so-called modern “emulation” projects do.

Do you have any greetings or special thanks for someone?

To all the Demul team members, and folks from DU and MAMEdev who been around during last decade.

Just by curiosity, do you have something where your progress can be followed?

Probably a good resource is my Youtube channel, where I have videos about interesting things. MAME news/what’s new page is another place to check.

And just for a little fun question, what are some of your all-time favorite games? (regardless of whatever platform they are on)

That’s a hard question, so I’d better say which games really impressed me recently; and I would say “Ori and the Will of Wisps” as well as the original “Ori and the Blind Forest” count in there.

As of Dreamcast favorites, I’d probably say Head Hunter, Rez, Omnikron, Draconus, Grandia II and Dead or Alive 2. Sorry, not a fan of Resident Evil games before 4 or Shenmue 1/2; however they are great games design-wise.

That’s quite nice!

Thank you so much for this interview! I’m very grateful that you gave me this chance; with DEMUL being out there for so long, as well as being referenced as the most accurate emulator out there for Dreamcast, it was truly an honor to have got to know more with you! And it was quite fun to have you here, with the expertise you have on development!

You’re welcome, it was nice to chat with you.

I wish you good luck in all your current projects, and please stay safe! ๐Ÿ˜€

Thanks, be safe you too.