MAME 0.260
mamedev.org
mamedev.org
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.
If I may ask, as python3 came out in 2008, why did you choose python2 for the frontend in 2011?
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?).
So much so that I had a visceral reaction to reading the GP's question about why this hadn't been done. My default reaction was to read it as accusatory rather than a genuine question.
Still running some containerized 2.6 and 2.7 workloads and there are no engineering dollars to justify doing anything about it. Dead code can still be running code and can hang around for _decades_.
It is a great example of how to do it, and I say that as somebody who used to write a lot of Perl 5 and kept wondering when Perl 6 was going to be available.
Anyway, I need to try it, I love it'đ sound, I wonder how close it is to original.
Would be quite a thing.
Recently discussed on HN about 49 days ago. https://news.ycombinator.com/item?id=37377529
https://www.neogaf.com/threads/mame-can-now-succesfully-emul...
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
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.
The rest of their post is about as accurate too
Just look at the source for most any 3d polygon rendering platform. Take the gaelco stuff or the Midway V platform. The CPU might be well emulated (enough), but the GPU is very frequently only simulated at the highest level. Someone might look at the displaylist generated by the CPU and pick out the vertex format, then they copy-paste a generic triangle rasterizer in its place and try to implement whatever features can be figured out. Attention is only paid to things such as interrupt timing and DMA timing, Fifo timing and so on only to the extent that is blocks operation or crashes the CPU.
This is not to dismiss the incredible work in MAME. It is frequently the first and only source of documentation at all. But parent is correct that it's common for more specialized emulators to go dig up more details and get more things correct than MAME.
Sega Genesis is a poor example; MAME runs the entire commercially released library fine, but some homebrew stuff that seeks to stretch or break the hardware doesn't do well (notably the Titan demos).
On the other hand, MAME's 8-bit Apple II emulation is cycle-accurate and you can raster-split mid-scanline by counting cycles (as some people crazier than me have done). So it really depends on the specific driver.
mametesters.org/view_all_bug_page.php?filter=125692
It plays more games but that’s not the same thing as accurate.
MAMEs emulation is incomplete, that’s why there are bugs.
I guess the hardware is similar enough.
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_...
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.
How large is a full ROM set these days, I wonder?
a full set for 0.258 is 1073gb (CHDs + ROMs + Extras):
But for games 1tb is roughly correct. Assuming no deduplication
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.
I have omitted quite a few.
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)
However it famously doesn’t support Dragons Lair! Not properly (it can play the video but that’s about it). Tho work has been ongoing.
Daphne is the only emulator of Dragons Lair I know of
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.
It only moves files in the torrent, and leaves redundant stuff in the old directory.
I'm not sure how your "move" would resolve this if it was already copied in a previous release.
The method here works as well. You basically run the new torrent over the old files (so you start half way done). Then move the data folder. In the old folder will be any files that are no longer part of the torrent. In the new folder will be only the files for the new torrent.
Back in the days I used an awesome utility called TorrentCheck ( https://pleasuredome.miraheze.org/wiki/TorrentCheck ) developed by the Pleasuredome user "blackpudd".
I miss that community so much.
(I don't like Discord, personally, but when a community moves en masse, there's not much you can do about it.)
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).
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!
So… it’s asymptoticly approaching v1 you could say.
Of course they keep adding more machines… so…
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.
It’s not incorrect as such
FWIW, this is commit https://github.com/mamedev/mame/commit/d1172bf710f2a7b1777ed...
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.
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
Did you try to compile mame with cproc/qbe, simple-cc/qbe or even tcc?
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.