MAME has been doing a good job of emulating several video based slot machines for a while now, for the most part they’re easy enough tech to get going and if anything the more simple ones can be a pretty good starting point for understanding how to write a MAME driver. They have a few idiosyncrasies associated with them such as the need to simulate payout hopper hardware which doesn’t apply to most arcade games, but for the most part they’re just like anything else.
One area that’s lacked attention in recent years however is the non-video based gamblers, which have been prominent in UK arcades since the 80s, and are in many ways just as iconic as any other classic video game. The 80s and early 90s machines especially had memorable melodies, and art, attractive patterns of flashing lights and were clearly developed by people who were interested in creating an experience that was not only about winning money, but also having fun, something which really set them apart from the majority of gamblers produced outside the UK, and the very methodical design of most video based ones.
There’s no technical reason MAME can’t emulate these, and emulate them well, there are a couple of potential problems I’ll talk about later, but essentially they’re just a bunch of off-the-shelf components stuck together. The machines are in part mechanical, but really things like the fruit machine reels can’t truly be considered any more mechanical than the various input devices MAME supports, they spin under the control of the program, and their position can be read back.
As a matter of fact, MAME is so adept to emulating these things that the basic codebase (CPU cores etc.) of one of the more popular existing emulators was ripped straight from an older version of MAME, as shown by a source leak. Source leak? Well yes, the emulator is ‘closed source’ in complete violation of the MAME license, although people had suspected it stole MAME cores for a long time even before the code was leaked. The MAME license is very clear, and always has been, that if you derive something from the MAME code then the source must be available. A fair number of people have come down like a ton of bricks on the author for not abiding by this, and deservedly so, based on what’s been said the team would be well within their rights to take legal action over it, especially as if reported by some, it was also previously sold.
My take on this is quite simple, as long as the author agrees to release sources to any future versions as per the license agreement I don’t mind too much about the past, finding the old source trees at this point would no doubt be rather tricky. I do applaud whoever leaked the previous code to prove it wasn’t entirely an original piece of work however.
I’d also say that just because code was stolen doesn’t detract from the work put in to actually emulating the machines. Sure, without the MAME cores the project may never have come about, and sure, any findings should have been shared back by keeping the project open, but there is still real work involved in emulating the systems. If everything automatically fell into place MAME would automatically emulate systems be emulated as soon as there was a CPU core, which simply isn’t true. Furthermore work would have still been needed on some of the cores because the fruit machines in several cases used variants which weren’t supported in the cores (although again, such fixes should have been shared back via the project being open)
Anyway, with that said, it is about time MAME started paying more attention to these things, with, or without others co-operating. In MAME terms all these things are simple systems, and there is very little reason they shouldn’t be emulated. One of the most complex parts of emulating a system is usually the video hardware, and these have none, their video is 100-200 lights which illuminate actual artwork on the cabs (you could picture the lights as the video hardware if you wanted, but the actual workings are rather different)
The only game that really runs in current versions of MAME is ‘Dr Who’ You can see an example of this being rendered in MAME with external artwork, using the artwork system at http://maws.mameworld.info/maws/romset/m_bdrwho (Click ‘artwork’ next to Mr. Do)
MAME’s artwork system, as you can see, is perfectly capable of rendering such a display, and without the artwork you get a fallback to the internal layout (which in the case of these is a grid representing the lights, handy for debugging) Some work is probably needed to make the reels scroll more smoothly (they’re rather hacked in at the moment) and a layout editor would be handy (done by hand at the moment) but in reality there are no real showstoppers in being able to represent the display, in fact it might even become feasible to write a program that converts the already extensive collection of layouts created for other emulators to work with MAME (I haven’t studied their formats and requirements yet)
The only other real caveat I can think of in terms of MAME is the timer system, I’ve noticed with the existing drivers that some set incredibly high frequency timers, especially when playing samples, this unfortunately can cause MAME to run like a dog due to some pretty severe flaws in the design when it comes to this use case. Not everything is affected, but some are.
In terms of emulation the games can be incredibly finicky, testing the hardware extensively, and outright refusing to run if they detect a fault. Naturally this comes from the requirement of the original machine to be reliable, and often secure ways to deal with regulated payout amounts etc. As long as things get emulated properly this isn’t a real problem though, just extra work.
In terms of what’s dumped, it’s a mess. You can find dat files documenting fruit machine ROMs, but for the most part things are poorly sorted, give no indication of hardware, have multiple hardware revisions within the same sets, and even have things which are completely misnamed. Furthermore, even beyond that many sets are just plain incomplete. I was looking at the Epoch hardware stuff and out of ~150 games only in the region of 4 actually have sound ROMs dumped, and for other systems the only complete sets are in many cases non English versions. We’ve already seen this problem even with a large number of the video based games in MAME, missing question ROMs and such.
To make matters worse the community built up around the existing emulators seems to have a philosophy of ‘find a set that works and stick with it’ yet in many cases these fruit machines have multiple clones, for different payouts, different regions, in addition to bug fixes. One game I counted has in excess of 100 clone sets and the majority of these are completely untested, and some have been obviously hacked just to add insults towards people in. People seem to have attempted to make up for missing sound ROMs by substituting them with others from games which usable, but still wrong sound, and in some cases it appears where only sound ROMs were dumped, substituting missing program ROMs from games with similar gameplay. Sorting them out is going to be a complete nightmare. To make matters worse some of the emulators appear to have adopted a console ROM like format for some of the MPU5 hardware games, requiring correctly split ROMs to be merged into a single file before they work, creating further confusion.
From a documentation point of view it’s a tower of neglect. It’s going to take years to sort out, and while I *greatly* appreciate the efforts of the people who have attempted to make dats for these things (I’m sure plenty has been saved from being lost as a result and it has saved me an enormous amount of time) there is still a ton of work to do. To a degree it’s understandable, it’s hard to categorize things which don’t work, if you’re lucky the games contain the title in plaintext somewhere in the ROMs, but many of the earlier ones don’t. Without being able to run the code it’s not always obvious what hardware things are, although there are usually hints based on code / data structure and that kind of thing.
Where is this leading? Well, I’m not a huge fan of these games myself, but part of being involved in emulation development is keeping a level of impartiality, if as a developer you only work on drivers for games you like then you end up being rather limited in what you can do, so, I’m putting into action a plan to at least try to sort some of this out.
As a first step I’ve created skeleton drivers for the common platforms, these really don’t do much yet, but they act as placeholders.
Secondly, I’ve started trying to identify each and every set I can identify, and move it to the appropriate skeleton driver. For the initial pass I’m lumping all the clones in the same set (they’re too unwieldy to sort at this point) but splitting out anything which is obviously mixed in with wrong set, and adding precursory comments where things appear to be missing or bad, to mark in the correct way later.
Obviously some games are on unique hardware, like anything else, and with no hardware information these will be tricker, but I’ll come back to them at a later date. Some of them are clearly things like CD jukebox ROMs and even one for a VHS player anyway, so are more likely to be put in MESS at some point if anything.
Identifying the ROMs is as much about looking for common structure at the moment, obviously for already emulated stuff there is a guide, if something is running in an emulator already, it becomes rather obvious what hardware it is. 68k and H8 code can be identified by a large quantity of certain hex values in the code, which is good for splitting Impact and Epoch apart. MPU5 stuff tends to all have a similar vector table, 68xx stuff (usually MPU3/4) has vectors at the end. Maygay M1AB hardware always has a MayGay copyright string just before 0x10000. Bellfruit stuff has very specific encryption patterns. The 3rd party stuff is often hardware, especially on the earlier systems as it’s quite obvious some of it was developed by reverse engineering the hardware from scratch, and thus doesn’t conform to the same standards.
After nearly a week of having myself locked in this room and doing nothing else this is where we stand right now anyway. I’m going through this process, and several of the main systems have comprehensive preliminary lists. At this point many things are probably named incorrectly, there will be duplicates, there will be bad dumps, there will probably even be things I’ve misidentified, but it’s going to be a long hard slog. A few things do actually boot, especially MPU4 games, but most fail on the characterizer (game specific PAL), or reel errors, because of variations in the hardware attached. For the more complex systems there is extra hardware still to be emulated before they even start to do anything so the skeleton drivers really are just that (eg. MPU5 uses a variation of the 68020 called the 68340, which has extra timers and DMA)
Once things have been sorted, and the majority of valid looking sets placed somewhere, then a more focused effort on emulating the hardware can take place. No particular rhyme or reason exists for this stage yet, it’s going to depend on what seems the most viable, what can be broken down into smaller chunks and tackled most easily. I imagine this stage is likely to be when sets start getting split out into clones better, as the differing requirements in terms of extra hardware of each of the sets will become more clear as emulation processes (many expect data recording devices, some variations expect jackpot / percentage keys attached, while others work with dipswitches etc.)
Progress will also depend on exactly what degree of burnout is being felt over these things at that point. As things stand I’m doing this pretty much on my own, just bouncing a few questions off people to clarify one or two things. Many of these systems are ones where external contributors could become involved, as I’ve said near the start of the article, they’re all just combinations of off-the-shelf hardware, so emulating them shouldn’t be too difficult, but rather require a good understanding of how the components should work.
In the end, if MAME can do a good enough job on these things hopefully we’ll see many benefits. First off, the petty arguments which seem to dominate the Fruit Emu scene would be done away with, for all the problems with MAME none sink quite that low. You’re guaranteed the source, and guaranteed a complete knowledge dump of everything the developers involved know, no holding back of information and such. Hopefully all the nonsense with the other emulator and stolen source will become irrelevant as MAME obsoletes it anyway.
Secondly, these things will hopefully end up being properly documented, that’s going to take a long time, but the framework exists, the MAME database is a great place to make a permanent record of what’s what. Right now there is no central point of knowledge for these, neither in terms of the hardware, or software, even Googling the names of many of the machines turns up nothing which is worrying when you consider a key part of all these machines was what they looked like!
Thirdly the emulation of many of the components used will improve, as I’ve said earlier, these things can be very fussy over the hardware working correctly, and will provide some excellent test cases.
Forth, it could lead to improvements to the MAME artwork system, more flexible custom elements for things like the reels. I know one day I’d still like to see full 3D cabinet support in there and these would be a perfect showcase for something like that if it ever happens.
Fifth, MAME is the ideal platform for emulating the one-off obscure boards, the majority of components you need to work with are there already, you don’t have to write (or steal!) CPU cores and sound cores just to quickly test what hardware something is, you have things at your fingertips for testing, so hopefully it will lead to many of the more obscure machines being emulated in some form too, even if finding the artwork for them will be another challenge entirely.
Sixth, MAME is a platform anybody can contribute to, the compile tools are always freely available, and getting it to build it literally a one-stop process. Nothing fancy is required, if *you* want to contribute to fruit machine emulation MAME allows you to.
On closing I should stress that none of this is magically going to happen overnight, the underlying message here is that there is a lot of work involved. I’ve been up all night, and asleep half the day, every day for the past week just trying to make headway into this, yet I know as soon as the next MAME update is out somebody is going to slag off the addition of these sets, because either they don’t care about them, or because nothing actually works yet without even considering the work that has gone into it so far.
Look, I don’t even play these kinds of games, but I’m going to say this anyway:
Thank you.
Without this kind of thankless effort, these games would never be sorted out– and let’s be honest, this situation you speak of with the dumps is not really all that different from where the arcade emulation world was pre-MAME. If it wasn’t 100% of all sets out there having at least one major problem, it was pretty damn close, and it took years to sort it all out.
Let’s just hope there’s enough interest to push this on through to the end.
OK, confession time (although Haze knows this I think) – there’s a very narrow profile of these kinds of games that I have any interest in, despite being the flag waver for this I’ve never really been a gambler. That said I’ve always felt that MAME was the right place for this stuff, and feel glad that someone shares my opinion. I’ll share as much of my resource list as I can, and I know one of the other FME authors is keen on this too, and he’s cracked a lot of these CHR protections already.
If you need to know anything MPU4, JW has my contact details.
Would be great to see this in mame, no more holding scene to ransom with 1 Emulator (which we wont ever see)
Tho Guitars is comming along nicely! (Hopefully) ;-)
Man, I wish you luck with this although I think possibly your underestimating the task at hand. many have tried to get Epoch to work and have failed. Even now after donkeys years of work Epoch is only just looking like a possibility for a near future release.
Will follow your progress with interest and thanks for the effort you’ve already put in.
To be fair, back in the early days of the fruit machine scene MAME didn’t actually allow gambling/payout games to be included in its codebase (somehow the bet-version mahjong games escaped this rule), which is most likely what started all of these smaller emulators in the first place – because they couldn’t submit to the official MAME, they had to go their own way.
I do agree though, there is absolutely no excuse for keeping these MAME-derived emulators closed source; not only was it against the MAME license if they decided to use MAME code (modified or not), all it does is actually stop ‘outsiders’ from adding their own dumps and finds, or making other people create and leak hacked emulators (or source code) to run other games, which can sometimes actually put a dead stop to the original; the programmers refuse to continue after ‘their’ code has been leaked.
There was really no excuse for merging game ROM data either, this has only been done for ease of going through assembly code rather than helping emulation or preserving these classic machines; it’s the classic free-gamez-for-PC scene, where no-one gave a toss about how the original games were.
It is an exact reflection of the console emulation scene of the late 1990s, where nearly every game system has its own binary blob ROM image format with added non-ROM extras. There is really no need at all for emulator-use-only headers, interleaved all-in-one ROM data or stupid ‘scene’ intros that were definitely not in the original game (or any released bootleg game for that matter).
David can you contact me please so we can finally sort this out ?
El Condor (James) has been contacting you on behalf of the MAME side of things, and most of the replies from that have been forwarded to me.
The simple fact is, MAME has always been under a license which requires you to release your sources, and has an explicit no commercial use clause. The modern license is just a streamlined version of the old one, but the same has always applied.
The license applies to the MAME code, it doesn’t matter what you do with it, that you emulated Fruit Machines not Arcade games, the license applies to the code used for the components emulated by MAME. Any project using the MAME code is considered a derivative work of that code base.
Without explicit permission from the author of a piece of code to make it available under an additional license it can’t be treated as such and thus the MAME license applies. The current MAME codebase grants additional liberties to some of the core code (such as CHD support) to encourage use in other emulators. The authors of a number of the CPU cores will also make available their cores under your requested license if you ask, and they agree to it (although many will be difficult to contact these days)
Maybe there is some misunderstanding about this, but from what’s been said
1) MAME code was used
2) No permission was granted to relicense that code for closed source, or commercial use
3) The source continues to be unavailable through official channels
As I’ve said, I can appreciate the amount of work put into the project, to say you’ve done nothing just because you used some cores you didn’t write yourself is rubbish. I’ve never actually written a CPU core for MAME, but I’ve emulated hundreds of games across many platforms. The difference is the spirit of MAME is to keep things open and free, if you take, you also give so none of the additional code I’ve written is locked in a closed project.
I’m not looking to start a war here, I’m quite happy to re-implement everything myself, from what I’m told the cores you used are from a far older version anyway, so any changes probably won’t apply directly to current versions, and the entire architecture of MAME has changed massively from the early days.
Issues like this come up time and time again, and in the end it’s the community that loses out. Similar has happened with people doing special ‘vector only’ versions of MAME for use with actual Vector monitors and such, no source despite the legal requirement, project dead because author lost interest, community can’t benefit from the latest improvements in the actual emulation, nor is it possible to even consider merging such support into mainline.
Fruit Machine emulation could have happened a long time ago in MAME, the main reason gamblers were excluded for a long time during Nicola’s reign was because in Italy they’re distinctly different from arcades, and various laws and regulations there made supporting them a potential problem.
If you don’t want to release your sources then I do kindly ask that you remove everything MAME related, or derived from MAME in any way from your piece of software, and rewrite said components from scratch unless you can strike a deal with the individual authors of each core (which as I said could be tricky)
I don’t like to say this, because again it’s something that will have a negative effect on the community, a period of instability while everything is rewritten, so simply having the sources available would be a lot easier for everyone concerned. I do have to ask you, what do you feel you have to lose, especially with one major version already having had it’s sources posted for the world to see.
MAME will continue to be MAME regardless of what you do, and I’m being polite in saying these things (which is why I didn’t explicitly name and shame the emulator in my post) I don’t think anybody is going to drag you through the courts over this, because quite frankly everybody involved with MAME has better things to do than such nonsense, and despite being annoyed when people rip up off we’re not a bad bunch. I’m just saying that if you used MAME code you really should be sharing under a compatible license. I understand fully that the vast majority of your program is very different to MAME, but if you built it around MAME cores this all still applies.
MAME has it’s own reasons for looking at these things, and distinctly different goals from your emulator in the sense that the overall goal is to document all known revisions properly, and all hardware systems for future generations, whereas yours is simply to provide something easy to pick up and play, without being concerned about the specifics of revisions and such. Whatever you choose to do will have no real bearing on the path taken with these as far as MAME is concerned.
At the end of the day when I work on MAME I do it to help people, to provide an open document of things, help people understand how things worked, and provide a resource. I’m perfectly happy for people to use my findings, it would be a waste of time if nobody did, but all I ask is that they give back in equal measure.
Posted by c0nfu53d “Man, I wish you luck with this although I think possibly your underestimating the task at hand. many have tried to get Epoch to work and have failed. Even now after donkeys years of work Epoch is only just looking like a possibility for a near future release.
Will follow your progress with interest and thanks for the effort you’ve already put in.”
Who has tried and failed. Afaik, 2 have tried and 2 have succeeded.
That’s not to say it isnt a massive task though.
Yes I’m not disputing any of that, I would like to talk about the future.
This is some of the best news FME has had for a great number of years. Finally a part of the scene has been totally vindicated over Wizard’s contempt for the MAME license and I can presume that because of this Wizard will NEVER release any more emulators to the public.
I can’t see Wizard following Haze’s recommendations and I can’t see him re-writing all the MAME bits from scratch. So to conclude we more than likely will never see MFME again however we should be able to look forward to great things in MAME.
Thanks Wizard but no thanks. Your thunder is stolen once and for all now.
Well you can ask James for contact details if you wish, but I don’t feel there is much to discuss on that topic. As far as your emulator is concerned you have two (realistic) clear choices if you want to do things ‘The Right Way(tm)’ or you can continue to rebel against the community. I can’t put you in touch with individual core authors and such, because I no longer even have contact details for many of them myself.
If you wish to contribute to MAME instead then the codebase is always available and contributions always welcome. Caution is needed if dealing with currently active platforms and any title more recent than a couple of years old isn’t going to be supported in the mainline builds, even if the hardware it’s running on might be. (Hardware emulation can’t be directly excluded on those grounds alone, Fruit Bonus 2010 for example appears to be running on basically a rereleased version of the same hardware as the original 80s Cherry Master!)
What I’d like to see is everybody getting things done, and pulling together for the sake of proper documentation, proper recognition of these things and for the benefit of the community as a whole. These things are every bit as much a part of our heritage, and classic culture as the likes of Pacman and Street Fighter 2 and deserve the same treatment, not being put at risk by infighting and a community which can no longer put their full weight behind things due to ongoing uncertainty over the projects.
So Wizard are you going to release a new MFME and thus the source code or are you not going to bother? I think the community as a whole for once deserves an honest open answer so people can decide which way to go. Thanks.
That’s not the issue here, there are things to sort out before I even think about releasing a new version.
Yes I could recode all the MAME stuff but that would take a lot of time and really isn’t worth it. Why re-invent new wheels ? When time can better be spent investigating and coding new stuff.
No the issue at the moment is to resolve the current situation, the leaked code is out there and the MAME team obviously has access to it as haze points out in his reply.
I think I see the problem here, Wizard is talking about just one version (the leaked one) and Haze is talking about all the versions released. Maybe there’s some common ground here after all, just frame of reference issues?
Personally, as long as this doesn’t stop me playing Give us a Break I don’t really mind.
@Wizard I think the release of a future MFME IS the current situation here.
What Haze is trying to say (I think) is that you have had plenty of time and opportunity to ‘do things right’ but have decided for one reason or another not to take that option. I think again the option you have is IF you are going to release a new MFME that (unless you re-code it which you state you will not be) is that you release the source code as well.
You did not leak the code and have punished the whole community for that leak when it was only one individual who leaked it. The problem was and as we have found out the code was not exactly yours as such to be possessive about.
No beating about the bush here the current situation IS if you release a new MFME are you going to play ball. So agian the question are you intending to release a new MFME (as suggested at the forums you post) AND adhere to Haze’s wishes OR are you just going to not bother again?
@Wizard sorry to add. If my question of you releasing a new MFME is NOT the ‘current situation’ what is?
@R3solution
That is the same sort of attitude that segments the code in the first place and causes good devs to just say ‘screw it I am going to work on something else’. All Haze is asking for is compliance (and rather nicely too).
The project was born out of a segmenting of the types of code in the first place. The very thing Haze has been arguing should not happen. As it causes rework and bugs that just shouldnt exist. That segmentation no longer exists.
I for one welcome these into the fold of MAME/MESS. Those sorts of systems have very strict requirements in how they run. These things will help other devices in the system be better.
I also agree with Haze but in a different way. Art work of the cabinets has been semi ignored (not completely as some are putting great effort into getting snapshots of them). However I argue they were just as much a part of the device just as much as the CPU. The very layout of the speakers, what stickers were on the side (and back, and inside) of the box, the vent holes on the back, even the manual to run/maintain the boxes, and such things are just as important to document. All of those things were just as much part of the experience.
In many ways pinball machine emulators have just as big of a problem as these older gambling boxes. As they are almost all art work and bumpers. But then putting all of it back together and looking and acting like the original is going to be a huge challenge in the system.
@R3solution
Yes, that’s the situation. He can’t (legally) release a new version without resolving the license situation. Technically all existing versions should be pulled from the internet unless source is available, but I believe the last official release is close to the source leak, so I’ll let that slide.
The only realistic way for him to resolve the license situation is to open the source given that he’s not willing to rewrite things. Tracking down authors to relicense things is near enough impossible, the current MAME team is bare bones, most have moved on to other projects.
I can understand that time would be better spent coding new things fully, but that doesn’t really change the past, what exists today wouldn’t exist in it’s current form had the code not been used without permission.
From his emails with El Condor I believe the main beef to be with the apparent use of some of the code from his emulator in MAME, however due to said emulator technically being a derivative of MAME that isn’t a real issue, it’s already considered to be under MAME license. Credit could be considered an issue as it would be a conflict of interest directing people towards an emulator which fails to adhere to the basic licensing agreement. That said, I haven’t even compared the disputed code in this case like-for-like, and I’ve been told nothing has been used directly from his emulator anyway, even if the team would be well within their rights to do so at this point.
The root cause of all these problems is the use of MAME code without full source being officially available. A change in that situation fixes everything. Beyond that I’ll continue to develop these things in MAME, there are documents available for all the major components. I don’t need the other emulator as a technical reference (the most I’ve used it is actually the layout files, to get a preliminary idea of what runs on what hardware as a first stage in sorting, which doesn’t require me to look at the code at all)
If you are referring to 2.0 and 3.2, I’ll sort the code out and send it to James, though I don’t think it has much or anything that wasn’t in the leaked version apart from a revised graphics engine.
I’ve already stated to James that I have no issues with the use of code from the leaked build !
@me
Pinball is very much a different beast tho, because it relies heavily on real world physics, right down to how hard the player can shove the table without causing a tilt. Fruit Machines are pretty much digital, the reels aren’t even really that different to some force feedback wheels in that they can be motor driven, and it must be possible to read back their position.
I think a closer comparison would be the chess computers in MESS, which are almost all artwork but underneath them are complex chess programs for the AI, and management of the game board, they don’t rely on real world physics and such, just the pieces being removed and inserted into the board correctly.
Artwork, for legal reasons, will almost certainly be kept external to the main MAME project (MESS has a different policy there, but I can’t agree with it) but it’s been shown already that this situation works just fine for the arcade games MAME supports, with many stunning pieces of bezel art available and preserved just as well as if it were an actual part of the distribution. There’s no legal reason why MAME can’t have the basic generic layouts built in with everything in the right position for others to build on tho.
Isn’t 3.2 the one with The Crystal Maze in it? Never could get that to work, couldn’t get the pointer to stay in the little window.
@Wizard
I’m simply talking about all versions.
As long as there is MAME code in there the source needs to be published in the same place as the binaries.
It’s a black & white issue.
I’m less bothered about the past, you have better things to do with your time than digging up old source files, but going forward I’d like to see things handled correctly.
“In terms of emulation the games can be incredibly finicky, testing the hardware extensively, and outright refusing to run if they detect a fault. Naturally this comes from the requirement of the original machine to be reliable, and often secure ways to deal with regulated payout amounts etc. As long as things get emulated properly this isn’t a real problem though, just extra work.”
Aristo MK5 to a tee. It’s been sitting in MAME for 3 years as ‘broken’ mainly because of all the hardware checks it has, even now the games can’t even get further than the POST screen because they’re looking for every single insignificant thing to be dead perfect.
If you OK all of the POST checks (or bypass the POST entirely with a cheat, as written in the driver’s comments), it ends up stopping anyway, with it saying that it ‘could not allocate stack for the new process’ (for any people wondering, this system does NOT use protection – the System Startup Code simply refers to it loading program code (akin to the old ‘Starting Windows 95…’ text), rather than the word ‘code’ as in a physical decryption key ala CPS2).
What design/layout tools exist for MAME as it stands? It seems to be that if its not easy to use, noone will, which I found out myself with FMEF. BFeMu suffers because of this, as an emulator, technically its very very good, but it hasnt been embraced by many because of its technical nature in building a layout. Personally its not that big an issue as for the more technical minded, it makes decent sense, but for joe public, just installing MAME can be a bit daunting, let alone building a layout.
I realise the MAME interest in FME is pretty recent and I dont want to jump the gun, but its worthy of consideration sooner rather than later.
Visual Pinball is awesome, but I could probably never build a layout for it from scratch, but maybe that’s more my lack of knowledge in pinball rather than an endightment of the tools.
Yeah MK5 is going to be especially nasty, it’s already based off a rather complex home system (the AA) which doesn’t work properly in MESS yet either.
As I’ve stated in the past, you’d be best concentrating your efforts with the AA on that, if you get RISCOS booting without hacks I reckon you have a significantly better chance of being able to isolate the specifics of MK5 and get it working. Stack allocation really doesn’t sound like a MK5 specific issue.
MAME doesn’t really have any tools for creating layouts at the moment, although it’s an open enough text based format.
It does require some technical knowledge, and is an area which could definitely be improved, most likely with external tools to help manage it.
Some improvements could definitely be made, I get the impression the system has been built in an expandable, extendible way.
These are things more likely to be looked at once more machines are actually running, and something like C# would probably be better suited to quickly prototyping a layout editor than trying to hack MAME to also do the same.
We were talking with the author of Arculator (who also does RPCemu) about the MK5 games recently, so there may be some good news regarding AA emulation in the future.
Seeing that Arculator also supports ertictac and poizone with good sound and no video problems (which I must admit were caused by trying to merge the AA and MK5 video differences instead of making them specific to one another – e.g. one way has the MK5 video halfway off the screen, whereas the current way makes the Eterna logo of poizone flicker). It does seem promising, however I naturally won’t be able to tell if he will contribute to MAME/MESS or not.
Very interesting. The question still remains. Is a newer version of MFME going to be released and if so will it comply with the MAME license?
It’s a simple enough question for Wizard to answer.
No sorry.
I will contribute to MAME though if asked.
You’re being asked to contribute by correctly releasing the source to the current and any future versions you may release, as per the legal agreement that is the MAME license.
If by ‘No’ you’re declining to do this entirely then you’re placing yourself in a position where any reputable community would simply ban all talk, all posting and all discussions of your software and related materials. Your software is after all illegal because it fails to comply with the basic software license agreements of the components that it is built from.
If by ‘No’ you simply mean there will be no future versions then I ask you to officially post the source to the current released version, as is.
If you want to do things right then simply continuing with things the way they are at the moment is not an option.
No future versions, and I have already said above I’ll send the code of the released version’s to James.
End of Story.
Ok, thank you, and if you do decide to change your mind at some point w/regards future versions please keep this discussion in mind.
Meanwhile I’ll continue to sort through things for MAME.
Thank you for your answer Wizard however I’m not surprised. You could have at least kept your ‘promise’ to the scene to release again but just because you would have to release the code you are saying no.
Typical, another kick in the teeth for the community. At least with MAME we might have to wait a lot longer than your ‘promised’ release but at least when we get it we won’t have all the ‘issues’ you bring to the table. Looking forward to the code though although that does not really cut the mustard does it, I mean you have admitted on the Mecca forums your version is far more advanced with fixes and new techs emulated than what is released. Typical.
@R3solution
What Wizard does in his own time, with his own unreleased codebase is his business, as long as he isn’t publishing the binaries, or selling it then he’s free to tinker with things himself. The same applies to others working on MAME, Luca hasn’t submitted his driver for the newer Cave titles for his own reasons, but hasn’t violated any license agreements by emulating them for himself, in his own time because he hasn’t ever published a binary containing support for them.
As long as Wizard complies with the license, which he’s agreed to do by releasing the source to the last public version, I have no issue.
@Haze I appreciate what you are saying. The problem is Wizard has slapped the community in the face again. He could have easily released what he promised to release AND the code but because he has to comply with the MAME license will not, thus punishing the scene more.
He could have released a new MFME, released the code AND worked with the MAME team in a more open manner but has chose not too. That is the shame here.
Thanks for you time.
Ok Chris, I’ll PM you – I’m thinking a special page on the AGEMAME site to house it, that way we can put appropriate credits on it, disclaimers and the like.
Something useful needs to be hosted on that thing, anyway ;)
@R3solution
That’s his choice, it may seem like it’s punishing the community, but the best thing that can be done is to move on from that; it’s not as if nobody else can emulate the systems that aren’t in the last release, or make other improvements.
MAME is one avenue, I’m going to see where things can be taken. It’s a decent framework to develop it, and most importantly anything figured out automatically becomes public.
If somebody else wants to take the knowledge from MAME and make their own emulator they can (no ownership is claimed on the knowledge) If they want to take the code and do the same, they can as long as they keep it under an appropriate license.
Likewise if somebody wants to extend the released emulator sources with anything from MAME because they feel it a better base to work from then that will also be possible, again as long as they keep it open and such.
No single person has control over a community unless that community allows it, and emulation isn’t black magic, far tougher things have been emulated any of the tech in these machines.
This is old news now and it seems some have the hump still.
Get a grip you bunch of moaning tossers
Just to state that this is being taken care of, and no, I don’t have it yet. I think you might need some Borland components to make it compile (it’s old C++ Builder source apparently), but as a body of FME technical information it’s currently unsurpassed.
Also, Hi Canonman, long time no see! You still selling GUAB stuff?
Now it has been made clear that Wizard isn’t going to release any of the emulators that he has created since the official release of 3.2, and that as long as he only uses the emulators he has created for his OWN personal use, does that apply to the ‘inner circle’ that has evolved around Wizard and the copies of the emulators THEY have that isn’t the official releases? If he is sharing those newer emulators that he has created, then surely that isn’t personal use, and the public are playing them… what is the standing on that Haze?
James,
2.1 MFME source has been mailed to AGEMAME@gmail.com as agreed.
3.2 to follow ( when I find it! )
Bear in mind they are both pre-leak builds so older than what you already have.
I’m fairly sure the ‘leaked’ source was much older than v3.2.
Sorry about this, but 2.1 has bounced due to Gmail being idiots (no EXEs or similar in emails), any chance of a reup to a file sharing service of some sort?
I think it’s more a case of making it the right ones to match the releases, rather than age.
Thanks, a page is being constructed as we speak
If Wizard distributes binaries to ANYBODY, he must also distribute the source to the same people, be public release or not, it’s distribution and the license terms apply. Anybody with a binary based off MAME code is 100% entitled to ask whoever provided it for the source. Distributing to 1 person or 1,000,000 is exactly the same thing.
They can be given the source under the same terms as they’re given the binary (testing only, no further distribution), that’s not a problem IMHO, what’s important to note is they’re paired, with every distributed binary there should legally be a source from which that binary can be built. If a binary gets leaked to the public then Mamedev are entitled to ask for the source to that binary too because it’s clearly been distributed beyond ‘private use by the author’ This is the risk taken if you start distributing your binaries beyond ‘personal use’.
Basically if something leaves Wizard’s HDD in binary form, it must also leave his HDD in source form. Anything that never leaves his HDD is his to do whatever he pleases with. Based on the source leaks I’d hazard a guess that he was already actually abiding by the license in these cases, as somebody had the source in order to leak it.
Something like SendSpace is good for uploading files, I’ve found them to be rather non-intrusive when it comes from getting a file from one person to another where other means fail.
@Haze
I find Mediafire to be just as good, and none of that stupid wait 30 seconds & fill in a captcha crap
To be fair, with the likes of jDownloader installed, I don’t notice the 30 second wait & fill in captcha crap ;-)
Haze,I remember you have ever release a to do list for Mame,do you wish to work on these drivers in the future?
It’s all sorted out, see the website attached to my name on here.
@Guitar
Off the top of my head and without spending hours looking for forum topics from years ago seven tried and also I believe you have in the past. Although I may be confusing failed with not publicly released.
Whether seVen ever did or not I have no idea, but he certainly had the resources.
I looked into it so far as seeing how much of a monster the H8 core is, and I left well alone. C/C++ would be a neccessity(sp?) and I don’t like C, though I can see me renewing my efforts with C once Amber is finished.
It would appear that both Wizard and DT have functioning emulations of epoch though.
Guitar wrote ” I don’t like C, though I can see me renewing my efforts with C once Amber is finished. ”
Fantastic news mate ! That’s what I have been waiting to hear ;)
@Guitar
Who’s DT?
EDIT
Dialtone I guess.
DT did post a couple of vid’s of epoch running, looked in early stages but it ran, no idea if he ever finished it
I’ve asked RB to look into the missing H8 opcodes while I work on continuing to sort out the sets. (It’s his core)
The protection stuff with Epoch could be a sticking point, but it sounds like most people have managed to work around it rather easily, so I doubt it’s anything significant.
Reading through what was said about emulating various fruit machines and that (no fan of slots myself), makes me wonder if any of the video coin pusher / penny falls machines such as Namcos Pac Ball would ever be emulated. I’m sure it would be much more involved, as you would have to simulate coin drops and payouts as well as the hardware.
Coin drop stuff, as you point out, is more complex. It relies on real-work physics like pinball etc. The logic behind it could be done, but a physics simulation on tens of thousands of coins isn’t something even most recent games do ;-)
As for the rest, I’m really quite shocked by the reception to this from the FME scene. I was asked multiple times to look into this situation, I looked, and I explained it, and even offered a very liberal and generous solution, yet I’m being treated like the devil for doing so? I didn’t create the problem, the people using code without permission, and without relicensing it properly, for their own commercial gain did, makes me sick and half of me just wants to say ‘fuck you guys’ and get on with something else instead.
I’m trying to help here.
In short, quite frankly I’m not surprised their scene has been dead for 5 years.
There seem to be a bunch of cunts who will protect their ‘god’ (who hasn’t really ever done anything that great IMHO) and insult anybody who dare disagree or challenge what he’s done, no matter how wrong it might have been.
This will put genuine contributors, genuine people who can HELP, and not hold things, real projects, and real progress right off.
I’m determined enough to get on with things anyway, because I feel they need doing, but my god is it a despicable scene if anybody actually dare try anything new.
However, can I just say Haze, that we all aren’t like that in the FME scene.
We have been seeking progress for ages, but I am not technically minded and wouldn’t even know where to start with anything to do with coding etc but have been desperate for the scene to move on, but you said that the ‘god’ and his cronies have held us back for five years, and to a great extent that is true, but I don’t want the people of MAME to think that we are all in that category, and have indeed been frustrated by the lack of progress throughout the baron years.
MAME seems to be giving FME a new start, and hopefully, with you and other coders on the job, we will have something in time to look forward to.
No, I’m not saying everybody is like that in the scene, there are some good ones.
Actually if you look at a scene as a whole the real value is in what the PEOPLE have built. Not the emulator.
Basically FME consists of 2 main things, an emulator which was built using some MAME code, and a community which have painstakingly recreated the artwork, layouts and everything else for the machines.
Unfortunately a lot of people can’t seem to recognize this, and seem to think the only thing that matters in the scene is one guy who took some MAME code, and built an emulator around it, and that it was perfectly fine to do so.
With this kind of attitude it’s hard for things to progress. Other people aren’t going to want to open up their code in case it gets ripped off too, yet the irony is the guy who did this in the first place seems to be the most paranoid about somebody doing it to him, and with the community generally supporting that it’s very discouraging for others.
To a degree the same has happened with MAME, the community only wanted MAME, and even if other single game emulators popped up, their first question was ‘when will it be in MAME’. This pretty much killed off things like Raine back in the day. Likewise, as I’ve pointed out before people like Byuu have failed to gain popularity with Bsnes because everybody is so hooked on Zsnes. Thankfully this seems to have changed as of late, more people have recognized the role of MAME as an important one as far as being there to help others is concerned, but are also happy to see other emulators try something different now and again.
Such closed minded attitudes won’t help anybody.
But yes, back to the point, the major point about FME is that the community is what gives it the value, the emulator alone is nothing. People somehow trying to claim that I’ve killed the scene simply for spelling out the obvious terms of the license when asked to do so are quite frankly being ridiculous.
Paranoid levels need to drop, I fully expect any MAME code I write on this to be ripped off somewhere, I tend to get pissed off if it’s for obvious commercial reasons, and switch to something else for a while in those cases but at the end of the day it’s something you have to deal with. If people knowingly rip things off, they can expect to be told to stand back in line to keep things fair for everybody.
Selfish behaviour and inequality will kill the scene, people defending such behaviour are catalysts to that, make it look acceptable, and spread a really bad vibe about things.
Answer me this, was I somebody else, would I want to put real effort into a scene, write an emulator from scratch, and try and keep things open for the benefit of all if I knew that there was somebody in that scene, who was highly regarded, and the only person others cared about likely to take my code, throw it in a closed source project against my will, and build on it without giving anything back with no regard for my license, thus leaving my contributions to just be forgotten while continuing to make a mindless following think the other emulator was far superior to the rest?
It wouldn’t work. The stupid arguments over the new ‘Project Amber’ emulator show that, the comments on this subject near enough read like threats of ‘if you develop and release a new emulator, I’ll blow it away and make sure nobody cares by releasing an update to mine to distract the community from your newcomer’ Likewise the MAME license talk has turned into near enough threats.
There’s one way the community can really move forward, and that’s by embracing change, embracing something new, a different approach. Not be so impatient, realise this could take time, but ultimately will provide a healthier environment for FME development.
Just to mirror a comment made a few posts back Haze, please don’t tar everyone on the FME scene with the same brush. Many, many people have given huge amounts of their time, effort and money over the years to FME as a whole in the ‘true spirit’ of emulation – and despite all the problems the scene has had, a lot of us are still around after ten years and still as keen as ever.
As you correctly note any emulation scene is more than a single emulator or a single person, but unfortunately all we’ve ever really had when it comes to FME is one coder and one closed-source emulator, (there were a couple of others but MFME has been the constant), and the rest of the scene has simply had to work around that.
FME always has and I feel always will come with a lot of ’emotional baggage’, perhaps you weren’t prepared for and/or expecting that, or the response you’ve seen in some quarters from the FME community – but I’m afraid it goes with the territory.
For the record I think MAME’s ‘official’ involvement with FME is a positive development and over the long term is in the best interests of everyone. Open source, collaboration, sharing, and the pursuit of a common goal are, ultimately, the only ways an emulation scene can function, be healthy, be inclusive, and be future-proofed.
All that said, what I think you’ve seen is the reaction of some folks who care nothing for any of that and simply see the ‘promised prize’ of a new release of MFME having been taken from them, and they’re kicking against that. It’s short-termism and it’s blinkered too, but there you have it.
In short, thanks for getting involved with FME and I I for one am looking forward to seeing what the future holds :)
I echo Choppers, it’s been so long without any concrete alternative that people seem to think no such thing can exist, but I bet you as soon as you do something MFME can’t, all those people will be queuing up at your door, saying they were supporting you all along.
Fickle, but fair.
this should be a positive step forward….. change is always difficult when there is so much passion and emotion involved
Indeed Haze you are correct. FME history has always said if the crown of Wizard is dislodged those close to him (i.e. with secret goodies) will rise up and cause a stink often to make sure the new kid on the block fucks off. I hope this is not the case with you.
I consider recent events very important and hope yourself will continue to move it forward. As Choppers said the *disgust* will be short term and if you can ride that out and show some *guts* then you will have a long peaceful time in FME land. Hope you can stay with *us*
Scary isn’t it folks are fighting because there will be an emulator release we won’t have to rim for.
As I’ve posted elsewhere, my message to people is simple.
Don’t be put off by this kind of stuff. The ONLY way things are going to change / move forward is if people contribute regardless. Yeah, maybe some people will rip you off, maybe some people will insult you. One thing I’ve noticed is that people get really aggressive if they feel they’re better than somebody else (because they have private builds of X that runs Y and nobody else can run it, or are part of a specific team) and fear that somebody or something else is a threat to that.
I’m not saying that IS the case here, but other people have suggested it, and I wouldn’t be surprised if there was some truth behind it (no smoke without fire etc.)
I don’t care if people want to contribute to MAME, this new ‘Project Amber’ thing, or even the properly released MFME build sources, or their own brand new project. FME needs more people actually doing the work coding these things, preferably with the source available to keep the scene healthy. Secrets and hidden code in emulation benefit *nobody*
So… Wizard says that he’s offered to give MAME the code they wanted, and this was turned down – is this true? No-one seems to have mentioned it
I don’t want any specific code, nor have I asked for such.
I’ve asked him to comply with the license, which requires him to release all his code for any public binaries. To my knowledge he has done this.
Maybe specific offers to continue to break the license but exclusively supply some MAME dev with specific bits of code were turned down, I don’t know, that’s the only condition I could see something being turned down because it’s not how the license works.
AFAIK, there’s been no permanent offer of such a contribution aside from the one in these comments “I will contribute to MAME if asked” or something similar.
I think what he’s saying is that he wants to protect the new layout graphics tools, which he wouldn’t be able to do if completely open sourced. The answer to that for me would be to relicense or rework the MAME code, and make this a non-issue.
He could make the layout editing tools an entirely separate binary, not linked to any of the MAME code at all, not sharing any files which are under the MAME license, and offered as a separate download entirely.
If there were shared files he’d written himself those can be dual licensed (MAME license for the ‘Play’ binary with source, and no edit capabilities, Private/Closed license for the Editor binary)
Of course, I think the entire integration is part of the overall ‘product’ there, and layout parsing support + rendering support would have to exist in the available source files to run/play the things, so the most he could actually hide by this method is the source to the tools to actually edit the layouts.
I’m guessing the real reason is he wants to do something silly, like encrypt them so nobody else can use them, which is something you really can’t do in open code.
Possibly, there used to be individual conversion and editing tools separate to the main body of things, made by third parties.
MERC
During my studies in England I was always intrigued by the fruit machines I saw in pubs (noise and flashing lights… hell yes). It seemed like guys were “playing them”, but from my definition of a slot machine (every spin is independent) that wouldn’t be possible, so I couldn’t figure out what was going on. Certainly interested in this being added to MAME, and look forward to giving them a whirl (in the future that is). Thanks Haze.