August 22nd, 2009

Naze nani Makaron

After seeing - yet another - question on why doesn't Makaron support games in so-called "MAME format" I felt I need to explain this somewhat - yet again.

First of all, there is no hidden agenda here. In fact it's all pretty simple, you just have to try and see things from my perspective:

- I'm not affiliated with MAME in any way
- MAME dumps are not my only, and not even my primary, source of games
- I'm capable of dumping the games on my own, using different methods
- since I'm pretty much Dreamcast-oriented I prefer GDIs over the generic CHDs
- until recently I've been under the impression I can't use CHD-related algorithms without breaking MAME license

The ROMs:

The dumps I make are in different format to begin with, in my opinion easier to use. I need no prior knowledge of how to assemble my files to make them work, they just do. I fully intend to support any valid Dreamcast or NAOMI image, whether it's a dump of a game, or a hack/fansub, or maybe a homebrew of some sort. In other words if it works on the hardware I hope to have it working in Makaron. MAME can only run official and supported games (that also includes any BIOS images) since the code needs to know how to handle various files. Seeing how my approach suits me better I find little motivation to support another - and in my eyes inferior - format...

While I don't condone software piracy I'm not going to look down on so-called "ROM collectors". It's really not my place to judge, not to mention in many countries it's illegal to have copies of the software even if you are in possesion of the original media (EULA aside). The only issue I have is with, how should I put it, computer-illiterate people who have absolutely NO IDEA on what Dreamcast / NAOMI is and how to use it, and expect to just play free games. Full-speed in HD of course. If you are one of said people PRETTY PLEASE have at least some decency and learn a thing or two first, and then you can come here with your questions and ideas.

The CHDs:

Again, I see little benefit of having the images compressed. Really, when you think about it, you can get higher compression ratio with solid 7z or RAR archives and faster emulation with uncompressed files. This is not that important for NAOMI where the game is loaded whole into memory at startup - though with CHDs it would still be slower due to necessary decompression and decryption steps - but would have much higher impact on Dreamcast games. To make this simple:

* My approach, that is plain files are stored compressed with 7z or RAR:
PROS:
- better compression ratio, less disk space used
- faster loading times, less lag (important for Dreamcast)
- the code is already there, well tested and working
- both GDIs and NAOMI images are plain files and easily created/modified
- tools, that people who dump games for me use, create GDIs/plain files
- Makaron will load and run any valid file you choose
CONS:
- games have to be manualy decompressed first (and then deleted eventually)
- can't load MAME dumped games natively (though conversion is possible)
- MAME (MESS?) can't run plain images (conversion is possible but only for recognized games)

* MAME approach
PROS:
- dumped games can be used as-is, just download (har har) the files and run
CONS:
- see my approach PROS, reverse :)
- CHDs could change format in future breaking compatiblity (unlikely but not impossible)
- AFAIK even MAME guys dump GDs as GDI first and then make CHD out of them

So unless you jump from game to game every 5 minutes you won't much mind having to decompress a file every now and then. Also, all NAOMI needs is decompressed game image, having to repeat this step (even if automatically) every time you load a CHD seems kinda... unnecessary. Maybe one day MAME will fully emulate the DIMM unit, then it will make much more sense to have CHDs around. Still, I keep GDIs of NAOMI games so I can make CHDs anytime I want.
Oh, and about that "you can replace a faulty ROM thanks to MAME dump" - you can as easily extract that data from files that Makaron uses. Trust me, when it actually comes to replacing anything on NAOMI carts, finding the right data will be the least of your problems :)

To sum this up, I have nothing against MAME but I think the "standard" argument is debatable. As long as conversion is possible there is nothing wrong with a little variety, it's not like I try to enforce proprietary formats here. It's a pain for some people, true, but if you can't get it to work then perhaps you should look for a different emulator. If you want to run MAME dumps, get MAME - duh :)
These formats will be supported eventually I guess but thats future for you. You lot should know by now I don't exactly make ease of use my priority at this point :P