Hacker News new | past | comments | ask | show | jobs | submit login
MAME 0.242 (mamedev.org)
61 points by chungy on April 2, 2022 | hide | past | favorite | 41 comments



Of particular interest to me is the arcade game Time Traveler, even though by most accounts it is a cheesy FMV game, the technical achievement embraced in MAME is the fascinating bit: the LaserDisc CHD for it is the first of its kind that was dumped by deep signal analysis on the disc and obtaining a level of quality never before seen from a LaserDisc dump; sharp visuals (at least, as far as 480i can be sharp), deep blacks, vibrant colors.

I don't know all the details, but the results speak for themselves. I wholeheartedly believe this should be the present and future standard of LaserDisc preservation.


If anyone else went "wait, WTF? Surely it can't be..." on reading that post: I checked, and yes, it can.

Wikipedia:

> Although similar in appearance to compact discs or DVDs, early LaserDiscs used analog video stored in the composite domain (having a video bandwidth and resolution approximately equivalent to the 1-inch (25 mm) Type C videotape format) with analog FM stereo sound and PCM digital audio. Later discs used D-2 instead of Type C videotape for mastering. The LaserDisc at its most fundamental level was still recorded as a series of pits and lands much like CDs, DVDs, and even Blu-ray Discs are today. In true digital media the pits, or their edges, directly represent 1s and 0s of a binary digital information stream. On a LaserDisc, the information is encoded as analog frequency modulation and is contained in the lengths and spacing of the pits.


I absolutely thought it was a joke! Thanks for the context!

Any clue it’s possible to read vinyl records this way or are the grooves/material too ill suited for lasers to easily read? Reading deformities of grooves seems like it would require orders of magnitude more precision than the length and spacing of pits, but I know nothing about the physics and hardware here.


ELP Japan has you covered!

https://www.elpj.com/

Last time I looked into this, I heard it was good if you had a REALLY good record cleaner. It’s extremely sensitive to dust in the groove.


Contact-free laser record players exist and have for quite a while, yeah. Main benefit AFAI can tell is avoiding wear on the vinyl.


None are sold to the common consumer or even usable if you had the money [1].

Vinyl wear by using a needle is overstated anyway [2].

[1]: https://youtu.be/2oeTqAogMvA?t=248

[2]: https://www.youtube.com/watch?v=xf_cPU8gtd8


I sort of assumed that Hacker News types would have already known that video on LaserDisc is analog. :)

Audio is somewhat more complicated; the original standards had that as analog too, but digital options were introduced (I'd like to say early 1980s, but not entirely sure).


The first digital audio laserdiscs I bought were in/around 1986. They used AC-3 encoding (later known as Dolby Digital 5.1) but were recorded as an RF signal onto the discs, because the format was analog. You needed a decoder to turn it into discrete channels, which a few receivers had. But most often you would get an external box, like the Yamaha DDP-1


I could never get Dragon's Lair to work with MAME. Going to give that another shot.


I’m not sure if the Dragon’s Lair emulation in Mame ever worked - I think Daphne http://www.daphne-emu.com/site3/index_low.php is the go-to for that one.

Unfortunately the laser disc games didn’t really withstand the test if time between defects in the media and the general failure rates of the consumer quality electronics inside them. Emulation seems to be the only way to enjoy them now. I’ve not seen a working cabinet in many years.


MAME is a great emulator. The big issue is of course locating and installing grey-area ROMS from potentially shady sites and torrents. Isn't it time the rights holders like Namco, Williams, Nintendo and Sony just quit living in the past and gave up on trying to restrict distribution of old games that are arguably a part of modern heritage. It seems petty and anachronistic to do anything other than just let go and give these ROMS their deserved freedom in the public domain.


Isn't it time for copyright to be abolished? Or at least fixed so that these companies no longer have functionally eternal monopolies? It's insane that stuff created 40+ years ago is still covered. They've already made their fortunes several times over, it's time to let go.


It's actually easier than ever nowadays. Do a quick search on archive.org and you'd be surprised on what you can find.


Yeah, it's really trivial to find full and complete sets of games for any system now.


The sheer number of man-years of work and sheer ingenuity that went into MAME is nothing short of amazing.

All for the sake of re-living one's teenage years :D


I would argue that the overarching goal is preservation, and the nostalgia is just a happy side-effect.


The fact that there, in fact, is someone who can write a joke like that on the project's official website makes it only 90% funny, and 10% very much real.


is there a mame distro you can install on some mini pc? i have used mame on desktops but would really like to have a small dedicated retro gaming setup that you just switch on and works. at the same time i don’t want to spend 2k on some ready to go cabinet.


Maybe something like Lakka[1]? It emulates many game consoles and I believe MAME is part of it.

[1]: https://lakka.tv/


Lakka is Retroarch packaged on top of a minimal Linux distro—like those distros that exist just to run Kodi, and, in fact, last I checked, it's build on exactly one of those (Libreelec, I think?).

Retroarch is a frontend for libretro, which provides a set of APIs that emulators can use for I/O. If you can produce a library from an emulator that conforms to the APIs, then you've got what Retroarch calls a "core".

Thus retroarch acts as a kind of target for emulators, that lets them all use a common frontend, including for things like button mapping (each emulator maps to a set of "fake" Retroarch inputs, which Retroarch then maps to your actual controller) or video output/filter settings.

This is a different approach from other meta-emulators that typically invoke full, independent emulators as if running them from the command line, and try to manage them externally.

And yes, there are multiple mame cores for Retroarch:

https://github.com/search?q=libretro%20mame&type=Everything

[EDIT] Also, I've run Lakka on hardware as weak as a Raspberry Pi 2. You can't use fancy video filters (say, to make games look the way they did on a CRT TV or monitor) but it'll run a whole bunch of Mame games, plus all 8-bit console games and most from the 16-bit era at acceptable frame rates and latency. It also worked well enough to be comfortably playable for a surprising number of Playstation (PSX/PS1, the first one, that is) games and for exactly one of the N64 games I tried on it (Super Mario 64—all other N64 games were a lag-fest, if they ran at all, but that one was smooth and snappy). Any mini PC from the last 10 years is probably more powerful than an RPi2, so should do even better. RPi4 takes that "most" on the 16 bit era and makes it "all" and makes a bunch more N64 and Playstation games playable. Probably many Playstation 2 games as well, but I've not tried it.


> including for things like button mapping (each emulator maps to a set of "fake" Retroarch inputs, which Retroarch then maps to your actual controller)

Is this really necessary? Why not map input devices directly to core inputs? Makes configuration needlessly complex in my experience.


That way the core authors don't need to know a thing about how the parent program (usually Retroarch, but it doesn't have to be) handles input re-mapping, and you can change all of them in one place—or use multiple for different cores, or even set it on a game-by-game basis, RA supports all that, too, and the cores don't have to care about it.

It's less complex than a wrapper program having to know a bunch of different config formats and conventions.

Again, cores run as shared libraries inside Retroarch. These "fake inputs" aren't, like, actual OS-level simulated devices. It's more like a core listens for events of type (name made up) "ra_analog_0" and treats anything coming in as left-stick x-axis positive-direction input, and by convention so do most or all other cores that emulate a system with a left analog stick (or perhaps with just one), unless they have a good reason not to, so default Retroarch-provided automatic input device mapping can make most common gamepads do something sensible with most cores, as soon as you connect them. Then if you prefer to swap left and right sticks, you do it one place and it works everywhere. Or if you prefer to swap left and right on just one game, you do that. The core never has to know about any of it.


Imagine that you swap out your GameCube + USB adapter controller for a PS5 controller.

Now you only have one place to go remap buttons, rather than N.

(That would be my guess, anyway.)


I use arch for my mame cab. It’s nice because it constantly updates mame to the latest (you should with your Roms as well) and only runs mame on boot. Very easy to setup and maintain.

I run it on some old quad core amd HP thin PC. Plays all non-3d games perfect.

Also look into a Mister. Not a mame cab but tons of arcade games and consoles. That’s my “ass in seat” gaming rig.


> it constantly updates mame to the latest (you should with your Roms as well)

This is not necessarily a feature; actually I consider it an anti-feature, as one is forced to chase the romset versions (either download the full set, which nowadays is tens of GBs, or the diff, which I've never tried).

If one actually plays games, and they play correctly, there's no value in upgrading the emulator and ROMs to new versions.


Existing ROMs don't change (hey, they're *read-only*) unless it's a better dump or perhaps some subcomponent was previously emulated through high-level emulation. There's generally no need to do anything with ROMs but it is beneficial to update MAME.


> Existing ROMs don't change

I think this is not exact, as, if memory serves me well, I had breakages with existing romsets when upgrading MAME.

While a romset itself may not change, another one may take the place of the default set, and the previous gets renamed, so it requires manual intervention.

I used to play with MAME games - not hundreds, but I think a few tens, and the hassle of upgrading was never worth, with I think only one case where upgrade was required.

So, YMMV. My suggestion for casual users is that if one has a given set of favourite ROMs, and they work, there's no reason to upgrade.


I see your point. My mame cab is also a mame BitTorrent sharer. So not only am I preserving video games by playing and sharing them with friends and family I’m also doing it for the bigger goal. It also takes me ~5 minutes per month to update.


mister looks cool. is it as simple as buying the hardware, putting the ROMs on it and powering it up?


https://github.com/theypsilon/Update_All_MiSTer

That will update it and download the mame Roms from archive.org. You will need a de-10 nano, sdram card, and a usb otg hub. I also have a Wi-Fi and a Bluetooth dongle. Works amazing. New PSX core is 90% there. Saturn is coming too, but no ETA


wow looks like this is the tits. will try this.


Pretty much, yes.

You run an updater script which pulls in all the stuff.


Retroarch is probably what you’re looking for. It supports pretty much any emulator, and gives a nice front end you can navigate with controllers. It takes a bit to get comfortable with the interface though.


I know it's not what GP is asking for, but you can also integrate RetroArch with Steam - it's on the Steam store. My kids can play steam games and emulated games now without having to run or figure out two systems. Also a high powered PC plays certain games much better.

The drawback to RetroArch is that the UI is non-intuitive and it's a bitch to configure.


that's my main concern - screwing around with config files.

I just want to download an OS image, write it to a USB stick, put my ROMs on the stick, put the stick in my mini PC, and boot it up and play.


There's a raspberry pi build that wraps RetroArch with EmulationStation and sane configs. It's pretty easy to use. I believe it's called RetroPi.


a quick search for retropi on amazon brings up listings for close to $300, for a pi in a case with a $15 controller. looks like there is business to be made by installing a distro on a $35 pi and marking it up by ~$250.


It also has some truly incredible features. Low latency optimizations, audio/video synchronization and the composable shader stack are some of the highlights.


I remember buying a CD with MAME emulator and a game pack from a local CD shop back in 2000 something and playing them on my old Pentium. Fun times.


Half the people I know who use MAME say "maim". The other half say "mah-mei". What's the preferred pronunciation?


Living in Japan, I have always said "ma-me", but it turns out that it should be "maim":

"On December 24th, 1996, Nicola Salmoria began working on his single hardware emulators (for example Multi-Pac), which he merged into one program during January 1997. He named the accomplishment by the name of Multiple Arcade Machine Emulator, or MAME for short (pronounced as the word 'maim' in English, other languages may differ). ..."




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: