Brian Lovin
/
Hacker News
Daily Digest email

Get the top HN stories in your inbox every day.

mdtrooper

About this, I have a old frontend for mame in python2 (and old pygame):

https://gitlab.com/tres-14159/pyretro

More or less in 2011 we made a arcade cabinet for a public social center and I was looking for a frontend for mame for public spaces (not home or private spaces), unsupervised. I did not find one. Well I thought "I am going make a new mame frontend" and yes, I made it (but now it need a lot of work for update to python3 an pygame3).

PyRetro has the next features:

- the users can not the config of frontend by the joystick or buttons. For example, in others frontends a naughty boys (or adult person) can delete games of the list or change something.

- you can manage the frontend (and other things of GNU/Linux) by webpanel. For example, there is a bad boy (or adult person) greedy playing and he does not let another person play to the arcade. You can force exit the game and return to frontend or restart all cabinet.

- it has as screensaver mode when nobody plays it.

Tajnymag

Firstly, kudos for the project.

If I may ask, as python3 came out in 2008, why did you choose python2 for the frontend in 2011?

ynik

python3 in 2008 was practically unusable. It was incompatible, none of the libraries on pypi supported it; and it was extremely hard to write a code base that was compatible with both python2.6 and python3.0 at the same time, so almost none of the library authors bothered to add python3 support.

In 2010, python2.7 was released, backporting a bunch of python3 features. In 2012, python3.3 was released, fixing a bunch of needless incompatibilities. This finally made it viable to support both 2.7 and 3.3 in the same code base. For the most part, the migration of the Python library ecosystem only started in/after 2012.

python3 wasn't really a viable choice for application development until most libraries were ported (2014? 2015?).

jehb

I think a lot of people forget this long, slow rollout. Even after most major libraries were ported, it took even longer to be able to count on every dependency having a Python 3 version available. RHEL didn't default to Python 3 until RHEL8 was released in 2019, for example.

EDevil

It took a long time for projects to begin using Python 3 due to it being backwards incompatible. Django 1.5 for example, the first version that had Python 3 support, came out in 2013.

rebolek

MAME supports Casio CZ-101? My favourite synth? I thought MAME is for arcade emulation.

Anyway, I need to try it, I love it'đ sound, I wonder how close it is to original.

ajxs

I'm super impressed that someone has emulated the CZ-101's sound generation LSI!

Lots of people use MAME as an emulator to help reverse-engineering vintage synthesisers. I only recently discovered this too. Since most 80s synths were built mostly out of 'off the shelf' components, it's not too difficult to build a MAME driver which is capable of running the synth's firmware. The actual sound generation is another story though.

I wrote a MAME driver for the Yamaha DX9 while working on this project: https://github.com/ajxs/yamaha_dx97

I wrote a little bit about the project here in case anyone is interested: https://ajxs.me/blog/Hacking_the_Yamaha_DX9_To_Turn_It_Into_...

rebolek

I wrote my own CZ-101-like synth (it's not an emulation, more like "based on", as it has some unique features), I've tried various CZ-like VSTs but nothing beats the original. So I'm really interested what MAME has to offer. Even if the synth is digital, its waveforms do not look like anything you would expect from some simple digital emulation, so emulating CZ properly isn't that easy as it would sound. Thanks for the links, I'm definitely going to check your DX9 emulation. As a proud owner of FB-01 I really dig that 4-op sound.

nyanpasu64

Haha the pitch modulation noise sounds like LFSR white noise from an 8-bit console...

chungy

MAME stopped being "just arcade" long ago. It's basically an "emulate every hardware thing ever made" project :)

anthk

Even Tamagotchis, plus Casio assistants, even that one which was made for girls.

philistine

MAME can even emulate Nintendo Game & Watch!

codetrotter

Speaking of which, see also Bintracker. A Chiptune Audio Workstation that uses MAME as emulation backend.

https://bintracker.org/

Recently discussed on HN about 49 days ago. https://news.ycombinator.com/item?id=37377529

mahrain

I was surprised to learn it is the most capable emulator for SGI machines: https://sgi.neocities.org/

I guess the hardware is similar enough.

MarcusE1W

I am running Mame as a SGI Indigo on a Pinebook Pro (an ARM based laptop) It is slow. But it a SGI Indigo on my $200 laptop. I was so thrilled to see that’s possible :-D

mepian

Apparently SGI emulation is very slow. I'm not familiar enough with MAME, so I wonder if this is expected performance for such a complex system in MAME or it can be significantly improved in the future.

LeoPanthera

MAME absorbed MESS and became a more generic multi-system emulator. It aims for 100% accuracy in emulation, even at the expense of speed, and so it is quite resource hungry for a lot of things.

rbanffy

I remember I have started using MESS (because I care more about computers than games) before the merge. One thing I notice in many drivers (the "plugboards" where various emulator parts are connected) is that they could, with some work, be compiled to some HDL.

Would be quite a thing.

G3rn0ti

It also emulate home consoles. It’s got the best Sega Genesis emulator to my knowledge. Usually, emulators have issues with its sound hardware. But not MAME.

photonerd

It’s usually got the “best” everything emulator. As long as by best you mean most accurate.

It may not be the fastest (usually never is) and may not be the most compatible (because it may not be complete vs hacks in other emulators) but what it does emulate is usually pretty close to perfect & will converge on that at least.

It’s Genesis emulator is a great example of that: about as perfect as non-hardware can get… but definitely not the fastest or most fancy

philistine

Nah, there is a whole cadre of emulators who have pushed emulation to the next step in the early 2010s, kind of spearheaded by Higan. They achieved cycle-accurate emulation of systems by eliminating the use of shortcuts. Behaviours are adequately reproduced, performance comes second. MAME has never held the crown of most acurate emulator, except in its field of expertise, the arcade.

MAME of course has gone in the same direction, but the project is known for its portability. So it means it has many emulation options to use less cycle accurate methods to run on RaspberryPi for example. From my limited experience, those far older emulators filled with performance-focused shortcuts are the default in MAME. So if you want the most acurate emulation, MAME isn't really it.

newiln3_5

You can't be serious. MAME's Genesis driver is far from perfect and most definitely less accurate than BlastEm.

mametesters.org/view_all_bug_page.php?filter=125692

undefined

[deleted]

undefined

[deleted]

dfxm12

At some point, MAME combined with MESS (Multi Emulator Super System), so now MAME is just a multi purpose emulation framework & it doesn't focus solely on arcade emulation.

mdtrooper

I wonder that I am only one enjoy with reading of changelog files. Hahaha.

For example: whith mame, for years ago I have the same bunch of favorite games (that run fine from years ago) but it is a party for me each new version of mame because there is new changelog.

undefined

[deleted]

rere-2525

Out of curiosity what are your favorites games ?

ur-whale

> MAME 0.260

How large is a full ROM set these days, I wonder?

m463

Looks like > 1tb

a full set for 0.258 is 1073gb (CHDs + ROMs + Extras):

https://archive.org/details/mame-chds-roms-extras-complete

ShadowBanThis01

What are ROMs vs. CHDs vs. extras?

rnd0

It sounds ike CHDs are hard disk images -similar to vhd files? While ROMS is semi-obvious (game images or firmware), "extras" can probably mean just about anything ...

photonerd

It’s 2.5tb for the software archive alone.

But for games 1tb is roughly correct. Assuming no deduplication

LeoPanthera

Compressed (and so sizes are approximate):

74GiB for the arcade ROMs

83GiB for the software ROMs (which used to be for MESS)

937GiB for the arcade hard disk images

2.6TiB for the software hard disk images

BitTorrent makes distribution less painful these days, since you can point your client at your existing roms folder and it won't bother to re-download things you already have. Only a small percentage of the set changes with each version.

amlib

Using bit torrent to do partial downloads is nice but it will not remove deleted or renamed files. Over the years, specially if you update each release, you will end up with lots of files that shouldn't be there. You can of course have some kind of script that checks file lists for each set and delete anything not in there.

LeoPanthera

I use qBittorrent, and all I have to do is tell it to "Move" the torrent after the download is complete.

It only moves files in the torrent, and leaves redundant stuff in the old directory.

ShadowBanThis01

I'm looking at the torrents but I don't know what I need to just have the complete arcade collection and the software to run it.

Right now I'm downloading the ROMs torrent, which does add up to 74 GB. But what else do I need for arcade emulation only? Thanks for any insight!

TheMogMiner

The "arcade hard disk images" torrent, too. Lots of arcade machines weren't purely based on ROM chips.

TheRealDunkirk

They should break it up by year. I've had it all downloaded and installed and working in several ways over the years, but I only really care about stuff released before, say, 2000.

rnd0

I can kinda understand. I'm looking at MAME (again) because I'm seeing people here say it emulates synths and because I'm interested in some older systems it emulates that simh and qemu don't quite (eg SGI, though qemu may do that one now?).

So it would be nice to be able to pick by category (game,arcade,instrument,computer ...just a for instance) and by year (nothing after 2000, for instance).

plugin-baby

What’s the difference between arcade ROMs and arcade hard disk images? Do these cover different games?

sumtechguy

CHD (compressed hunks of data) They represent a CD DVD or hard drive.

Now for most items in MAME you will need both some ROMs and CHDs. The ROMs usually in that case are the firmware of the device that loads up the CHD. The arcade platforms basically ended up being fairly beefy PCs or in some cases retooled game consoles.

At one point the ROMs for those devices were split out into their own torrent. They usually represent something like an playstation. With the CHDs being the CDs. It is also used in places like the Atari platform that runs some of its hardware that has basically different hard drives and some roms to switch out the board being the same between all the arcade games. It is also used for laserdisc games but those probably will change in the next few years as the doomsday project gets its preservation setup the way they want it. In the laserdisc game it would represent the console the arcade game used to load up the disc.

Many of the emus out there are adopting the CHD format for CD/DVD support.

dfxm12

CHD's also represent optical media, not just HDD's. For example the SEGA NAOMI arcade hardware was based on the Dreamcast. As such, GD-ROM was one medium for games. the GD-ROMs are dumped as CHD's.

photonerd

Basically hdd arcade games are PCs or similar (occasionally customized console hardware) with HDDs attached.

Pretty much anything made post 2002 is that. It started a few years earlier tho.

Before that: custom roms (or at least some custom Roms on standard arcade platform hardware for that company)

LeoPanthera

Yes, although some need both. ROMs are images of physical ROM chips. The hard disk images are called "CHDs" and are usually hard disk images but can also be laserdiscs.

chongli

Huge, if you include all the laserdisc games!

undefined

[deleted]

dean2432

only 74 years left before MAME 1.0 releases with the current versioning

chungy

Who says 0.999 won't be followed by 0.1000?

nperez

Is the versioning scheme only in .001 increments? I know version numbers aren't indicative of progress, but I still find it fascinating that a 26 year old project is just releasing 0.260

LeoPanthera

Yes. Although some numbers were skipped. 0.32, and 0.38 through 0.52 don't exist.

sumtechguy

ah yes they skipped because there were a ton of releases from .38 to .52 that where basically .39 v6 (fixes something). So they figured out how many then added it.

photonerd

Their idea is that v1 is when all machines they support are perfectly emulated.

So… it’s asymptoticly approaching v1 you could say.

Of course they keep adding more machines… so…

MegaDeKay

Yep. In fact, the first releases of MAME had 0.01 increments. Not sure when they went to finer steps, but it is pretty much a given that they'll do it again when the current revision gets too close to 1.

chungy

Version numbers don't work like that :)

MAME just has a permanent "0" major version, and the minor version continues to be bumped up forever. It's not a decimal number, so "close to 1" doesn't really make any sense.

netol

> As requested by users, you can finally use delta CHD files for clone systems and software items. This allows for major disk space savings in some cases when you have multiple versions of a system or software item.

FWIW, this is commit https://github.com/mamedev/mame/commit/d1172bf710f2a7b1777ed...

beebeepka

Is there a modern name fronted for Linux?

Even after all these years I still get back to my territory outdated version of mame32++ wine.

It's not a perfect setup but the alternatives, that I am aware of, suck even more.

jandrese

It comes with a mostly text but technically graphical ROM selector. It's not the most pretty, but it is quite functional. Given the size of the project it is almost inevitable that the interface feels like a database front end.

beebeepka

It's only been an year since I've tried it. There have been massive improvements over the years but I still prefer dealing with the above setup.

They do have autofire, saves, art, snapshots, etc. but I got tired of having to configure my joypad cfg after every restart. Maybe time to give it another try

sylware

I remember the good old times when I could compile mame with a simple C compiler...

TheMogMiner

Huh, it doesn't compile with GCC anymore? That's weird, as someone contributing for the past 20 years, I could swear I just compiled it yesterday with GCC.

sylware

simple C compiler, not gcc and its languages.

Did you try to compile mame with cproc/qbe, simple-cc/qbe or even tcc?

cpill

could someone explain to me why the ROM set changes with every release? it makes me think the developer is an idiot.

TheMogMiner

Sure: They don't, and the people who imply that they do are the idiots.

A full set of ROMsets consists of tens of thousands of archives, each containing a set of files where one file holds the contents of one programmable device: a ROM chip, a GAL/PAL, a microcontroller with internal firmware, and others.

99.9% of these individual sets do not change from version to version.

When a given set does change, it's because a previously incorrectly-dumped chip's data has been replaced by a newer - correct - dump, or a chip that was never dumped previously has now been dumped, or (rarely) the set was renamed.

What you're probably doing is finding full-set torrents per version, posted by some independent group, and assuming that that somehow means that every one of tens of thousands of individual sets within that larger set has changed.

So, hopefully this clarifies which individual is an idiot here.

HelloNurse

Just to state the obvious, in addition to correcting old rom sets every MAME release also adds new rom sets for newly supported games (either variations of known games like hacks, prototypes, foreign versions, special editions or completely new work). Typically, there are enough changes to actually disrupt a very large portion of the segments of any full set torrent.

Daily Digest email

Get the top HN stories in your inbox every day.

MAME 0.260 - Hacker News