Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: Advanced Automated Mame Compiler [Beta]  (Read 7401 times)

0 Members and 1 Guest are viewing this topic.

rain

  • Guest
  • Trade Count: (0)
Advanced Automated Mame Compiler [Beta]
« on: October 01, 2011, 02:31:45 am »
MyMame 1.24

Hello, I was instructed that posting here might be a good ideal for the development of an application that I have been working on for quite some time.  It is an automated Mame compiler, that allows users to compile a Mame distribution based on a variety of settings and configurations easily.  There is no need to download the MinGW environment, or source code for that matter as MyMame does all of this for you with the click of a few buttons.

MyMame is an application written in C# that consist of about 4,800 lines of code ATM and is expanding daily.  Most of the features that are included were suggested by the gaming of community and new features are being added daily.

I am posting this in the hopes that I can expand the beta version of the application, and gain user interaction that way MyMame could be considered a one stop solution for compiling the Mame executable.  

To use MyMame you first need to download MyMame and install it.  This can be done as so.

Download the application using the above link.
Extract the contents of MyMame_Installer.7z.
Run Setup.exe

Once MyMame is installed it will run for the first time.  Please be aware that MyMame auto updates as new features are put into the application, and eventually will cover all versions of Mame (from it's first release to the most recent builds.)  Also, do note that there are still a few limitations to MyMame, and not ever version listed will result in a complete compile.  However, as time progresses I am constantly adding new libraries to the application and creating new features based upon user request, comments and suggestions.

Here are some screenshots of the main interface:


This is the main interface tab.

On the main tab you have a host of options to choose from such as:

High Score Patch - Allows you to install (without downloading) any high score patch from 0.108 to 0.143u6
Compile To - Selects the directory you wish to output finished compile into.
Show in Folder - Opens the container folder when compiling is complete.
Compression Methods - Compresses the newly built distribution after compiling.

Patches & Extended Options


On the patches & extended options screen you have the following options:

Patch Now - Will apply a third party patch to your Mame distribution.
Build Log - Keeps a detailed log of your build in a file.
Disable Warnings as Errors - Disables fatal errors from warning flags.
Clean Compile - Deletes any failed, or faulty prior builds.
Force DirectInput - Forces the use of DirectInput (good if you have a light gun.)

Official Patches


On the official patches screen you have the opion of automatically installing Mame patches for the latest build.  These patches are source updates that are released by the MameDev team.  Please note: that you do not have to download the source patches as they are compiled into MyMame & you do not install the patches in the Patches & Extended options tab either.

When using official patches you select the maximum allowable patch allowed for building.  For instance if you wanted to build 0.143u4 then you would select 0.143u4 from the drop down list; all of the patches prior to 0.143u4 will be installed at runtime.

Terminal Output


Terminal output displays verbose information regarding the current processes.

Now, let us talk about the options tab for a moment if we can.


Here we have our main options that are used for the compiling of our Mame distribution such as processor information, and Mame build configuration.  Right now at this time MyMame only supports the building of Mame.  However, Mess, MessUI, MameUI support is currently being developed for automated compiling procedures.

Mame Version: From this drop down list you select what build of Mame you wish to compile.
Mame Subversion: Currently disabled.
Build Rule: The build rule is automatically selected by the application but can be overridden by the user to select what set of MinGW tools they wish to use to compile their Mame distribution.
Debug Mode: Will compile Mame in debug mode.

Target CPU: From this drop down list you will select the mfg of your systems processor.
Target Processor: From this drop down list you can select single core, dual core or quad core.
64-bit Processor: Specifies whether or not you are building for a 64-bit system.

Building Parameters

In the above photograph you can see the current building parameters.  What this does is it tells the compiler your variable options for compiling your Mame distribution.  Please Note: You can change these parameters manually, but do so just before hitting the compile button.

What happens at compile time?

When a user hits the compile button a wide range of things are fired of in a sequence.  First, the application will check for the target MinGW environment.  If the target MinGW environment is not found, it is then automatically extracted to a special folder within My Documents.  After the MinGW environment is extracted then the applications searches for any prior downloads of the selected Mame source code.  If no source code can be found in the archive folder, it is autmatically downloaded and extracted.  However, if the Mame source code is found then the user is prompted a question asking whether or not they want to keep the code, or redownload a fresh copy.  If a user chooses to keep the source code MyMame then looks for failed builds.  If a failed build is found then the user is prompted to dispose of the old OBJ folder (which will happen automatically upon hitting yes.)

After your Mame source code has been sorted MyMame will then check to see if the user wants to use forced DirectInput.  If a user has chosen to force DirectInput then the appropriate source code files are modified, else they are left alone.  After that MyMame checks the version of Mame against official updates.  If official updates have been marked for installation then they are done so at this time, along with the high score/no nag patches.

Finally after all of this your Mame compiling procedure begins, and you can kick back, relax and just wait for your distribution.  Please note that this program is fully automated, and you will never be asked to download anything externally - it's all done for you, no more headache!

Well, that is MyMame in a nutshell folks.  Over the past month I and my team have been in hard development of the application, and we are happy to share it with you.  Please feel free to post any suggestions, replies, comments or anything else here on this thread as I listen and take all suggestions.  Thanks guys!

Download 1.24 - http://www.mediafire.com/?6686d3d8zch2aua

djvj

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 32
  • Last login:August 12, 2022, 02:39:36 pm
Re: Advanced Automated Mame Compiler [Beta]
« Reply #1 on: October 01, 2011, 04:00:30 am »
This is his first post here so I wanted to vouch for him. This is legit and works great. Way easier to use then any other solution out there.
"Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."

HowTo mod GunCon2 with Aimtraks

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: Advanced Automated Mame Compiler [Beta]
« Reply #2 on: October 01, 2011, 10:46:05 am »
Hi Ronald. I received your e-mail the other day asking me for help with this program. I didn't reply because I don't like helping people copy my software. It's pretty obvious you were examining Mame Compiler so you could blantently copy it but the way you've named the text on the interface makes it even more obvious.

So what does MyMame do that Mame Compiler doesn't apart from set a line of code for the DirectInput support? It would take me a few minutes to implement this feature which has already been requested to me.

I don't find it flattering when people copy me. The exact same thing happened to my VJoy software (although that coder couldn't even be creative enough to call it something different). Why can't you people think of something original to create?

I just can't believe you had the nerve to actually contact me and ask for the code changes to make.exe so you could rip off my software. F**king amazing!

Instead of trying to steal my idea and take away my users why didn't you just request the features you wanted?

BTW I noticed you have obfuscated your code. I have a sneaky suspicion you're trying to hide something. Perhaps the fact you have actually ripped off parts of my source code?
« Last Edit: October 01, 2011, 11:19:07 am by headkaze »

rain

  • Guest
  • Trade Count: (0)
Re: Advanced Automated Mame Compiler [Beta]
« Reply #3 on: October 01, 2011, 11:09:00 am »
I obfuscate to protect an email password since I don't have a server of my own to catch bug reports.  I can give you the source if you so wanted.  I have already given it to several members thus far.  And the people over at Ming. Are the ones whom helped me recompile to redirect output. So yeah that is that.  I am sure all your program does is send a command line to the system, same as any other shell program out there.  But think what you will, my source code is available for any beta tester.  The only thing removed from it is the report routine.  Of course both programs will have drop down boxes, that's kind of a given.  And a timer?  That's not really your ideal is it. I think they have e'en using those since the 80's.

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: Advanced Automated Mame Compiler [Beta]
« Reply #4 on: October 01, 2011, 11:16:53 am »
The problem is when you copied that list of optimization options you didn't realise that it was text shortened by me to fit the width of my combo box. That makes it obvious to me you directly copied it from Mame Compiler.

So are you saying you were not aware of Mame Compiler and it was just a coincidence that you contacted me regarding compiling make.exe? That it's a coincidence that the program you were trying to solve this problem with did the exact same thing as Mame Compiler? Are you kidding me?

And it's not about the fact you have a timer in your program. It's the fact you placed it in the exact same position, just as you did with your status text. It's not the fact you're using these things it's the fact it makes it obvious you copied my program!

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: Advanced Automated Mame Compiler [Beta]
« Reply #5 on: October 01, 2011, 12:06:16 pm »
I obfuscate to protect an email password since I don't have a server of my own to catch bug reports.

So if you don't have your own server then who's password are you protecting?

And the people over at Ming. Are the ones whom helped me recompile to redirect output. So yeah that is that.

Your version of make.exe included in MyMame has the same date stamp and size as my custom compiled version. So you didn't even compile it, you just copied it directly from Mame Compiler.
« Last Edit: October 01, 2011, 12:11:48 pm by headkaze »

TopJimmyCooks

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2097
  • Last login:March 26, 2024, 01:18:39 pm
Re: Advanced Automated Mame Compiler [Beta]
« Reply #6 on: October 01, 2011, 10:39:08 pm »
Rain (and djvj) thanks for visiting the forum.  Feel free to come back when you've got something to contribute besides reverse engineering and copying the hard work of another valued forum member.

djvj

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 32
  • Last login:August 12, 2022, 02:39:36 pm
Re: Advanced Automated Mame Compiler [Beta]
« Reply #7 on: October 01, 2011, 11:10:42 pm »
If pieces of it are a copy, I have nothing to do with it, other then testing it to verify it works. I've used both apps, and even by the screenshots headkaze posted, you can see a big difference in features. Take a look at my sig as I have contributed.

I've crossed off the difference in ease of use rain's app is to use, from mame compilers instructions:


Install Mame Compiler No difference
Create a folder C:\MinGW\source\MameUI0143u3 Automated for you
Download the hiscore hi_143.txt from here and copy it into the C:\MinGW\patches (you can rename it to hi_143.diff if you like but it doesn't matter)  No difference
Download the mame0143s.zip from here and extract to C:\MinGW\source\MameUI0143u3 Automated for you
Download the updates from here (0143u1_diff, 0143u2_diff and 0143u3_diff) and extract them to C:\MinGW\patches Automated for you
Download MameUI source from here extract somewhere then copy the winui folder to C:\MinGW\source\MameUI0143u3\src\osd\winui and copy the winui.mak to C:\MinGW\source\MameUI0143u3 UI support coming
Apply the official Mame patches 0143u1_diff, 0143u2_diff then 0143u3_diff. Apply them by browsing to each one selecting it from the file browser then selecting "Apply Patch" Automated for you
Now apply the Hiscore patch you downloaded from step 3 (Eg. hi_143.diff or hi_143.txt depending on how you saved it) Automated for you
Set your "Mame Source Folder" to C:\MinGW\source\MameUI0143u3 and check you have MameUI Compile Option ticked Automated for you
Click GO! to compile. No difference

Competition is always good, but I don't agree with copying code if that has actually been done. I'm only posting on my findings. There aren't exactly many ways to go about compiling mame and I don't know the details in how it's automated or how both apps work. I would expect to have some things look pretty close or the same.

If you give me the option where everything is automated for you to the exact specifications you want, or to do all the required work manually, I think most would choose the automated way (granted it works).
« Last Edit: October 01, 2011, 11:17:32 pm by djvj »
"Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."

HowTo mod GunCon2 with Aimtraks

Gray_Area

  • -Banned-
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 3363
  • Last login:June 23, 2013, 06:52:30 pm
  • -Banned-
Re: Advanced Automated Mame Compiler [Beta]
« Reply #8 on: October 02, 2011, 12:01:20 am »
Who cares whose it is? If I made something, and someone took it and made it better, I'd pat them on the back, whether credit given to my original creation.
-Banned-

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: Advanced Automated Mame Compiler [Beta]
« Reply #9 on: October 02, 2011, 04:29:56 am »
Who cares whose it is? If I made something, and someone took it and made it better, I'd pat them on the back, whether credit given to my original creation.

I am fine with competition it's just how you go about it. I do not obfuscate Mame Compiler's source code so anyone with half a brain can reverse it and copy the code from it. But that doesn't mean it's okay to do that.

A similar thing happened to Tom's Instant Sheller, with Quick Sheller, but at least there was some credit given to him in the readme.

Recently an author released "vJoy" virtual joystick driver. Which is an original application but unfortunatly uses the same name as my own "VJoy" virtual joystick software. He was nice enough to link back to my website to prevent confusion between our customers but really a quick search on Google would have prevented the problem in the first place. The name of our drivers are actually the same too, so you can't install both applications on the same PC.

So you may think I'm overracting but Mame Compiler and VJoy are my most popular free software on my website. I advertise my commercial software there too, so it's the free software that brings in the traffic.

I'm sure if rain had of gone about things a little differently there wouldn't have been a problem. I'm not accusing him of directly copying my code since it's been obfuscated but the similarities are pretty obvious to me.
« Last Edit: October 02, 2011, 04:42:06 am by headkaze »

Haze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1296
  • Last login:October 04, 2023, 08:30:02 am
  • I want to build my own arcade controls!
    • MAME Development Blog
Re: Advanced Automated Mame Compiler [Beta]
« Reply #10 on: October 02, 2011, 12:07:53 pm »
obfuscating code isn't going to protect an email password...

including an email password in a piece of binary software is utterly utterly stupid beyond comprehension and is the kind of thing that would make me question the development abilities of anybody writing a piece of software because it just defies so much logic and basic common sense (which are rather essential attributes if you're to be a good programmer)

that said, I don't really agree that there is anything wrong with having the same list of build targets.

however, I'm not a big fan of either of these pieces of software, they make it far too easy for people to build crappy hacked up versions of MAME with patches we'd rather people didn't apply and as a result generate a bunch of false traffic on Mametesters etc. from idiots who have applied them and then report issues which are already known about.

djvj

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 32
  • Last login:August 12, 2022, 02:39:36 pm
Re: Advanced Automated Mame Compiler [Beta]
« Reply #11 on: October 02, 2011, 04:20:37 pm »
however, I'm not a big fan of either of these pieces of software, they make it far too easy for people to build crappy hacked up versions of MAME with patches we'd rather people didn't apply and as a result generate a bunch of false traffic on Mametesters etc. from idiots who have applied them and then report issues which are already known about.

With that logic, we should all still be using DoS and run everything from a command line. I think it's quite the opposite what rain's app does. It's never exposing the source to the end user, so they can't apply custom hacks unless they make their own diff. What you should really be against is all the mame offshoots that exist, they are countless.
« Last Edit: October 02, 2011, 04:23:47 pm by djvj »
"Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."

HowTo mod GunCon2 with Aimtraks

Haze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1296
  • Last login:October 04, 2023, 08:30:02 am
  • I want to build my own arcade controls!
    • MAME Development Blog
Re: Advanced Automated Mame Compiler [Beta]
« Reply #12 on: October 02, 2011, 10:15:20 pm »
however, I'm not a big fan of either of these pieces of software, they make it far too easy for people to build crappy hacked up versions of MAME with patches we'd rather people didn't apply and as a result generate a bunch of false traffic on Mametesters etc. from idiots who have applied them and then report issues which are already known about.

With that logic, we should all still be using DoS and run everything from a command line. I think it's quite the opposite what rain's app does. It's never exposing the source to the end user, so they can't apply custom hacks unless they make their own diff. What you should really be against is all the mame offshoots that exist, they are countless.

These tools appear to have specific options to apply / use common patches (like the hiscore ones, no nag ones etc.) which are known to cause issues.

Really the source is there for people who want to improve the emulation. it's intended for technical / knowledgeable users who understand the impact of any patches they might be applying and changes they might be making (the very fact that a number of people are probably wanting to jump on this and say 'but hiscore is good' without understanding just how hacky the implementation is, or the potential consequences and misunderstandings that can come from nonag builds stands as testament to that)

The binaries, in the default configurations are the things designed for everybody else.

These automated tools blur that line, although I can see why some people consider them useful.

There are a number of patches which would make things even worse, but I simply can't say I'm thrilled with these tools at all.

« Last Edit: October 02, 2011, 10:18:59 pm by Haze »

bmcdonald

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 5
  • Last login:February 20, 2014, 02:38:56 am
Re: Advanced Automated Mame Compiler [Beta]
« Reply #13 on: October 25, 2011, 12:43:10 am »
The tone in this forum saddens me.

I've been using computers since I first got my hands on a Commodore Pet with 8RAM and a cassette tape drive.  That said, I haven't programed since using basic back in the 80s.  I stumbled across MAME and built my own cabinet and my 6-year old and I have having a blast with it.

What I'm saying is that I am I struggle to compile MAME and I'm grateful to BOTH Rain and HeadKaze for their generous contributions to the MAME community.

I've done many goggle searches to find somebody...ANYBODY who would compile MAMEUI for me with the patches and stuff.  I'd pay for that....because doing it yourself sucks balls.  Anybody know where I can obtain that service?

I've tried Mr's Do's tutorial, Hedkaze's compiler and Rain's compiler.  It's freaking hard for a a NON-Programmer to follow some of the instructions as the programmer writing it always assumes something or leaves something out that cause headaches and waste time.  Same thing with stuff like RomLister.  I must observe that Rain's system is the easiest for a novice to use.

Building the cabinet was way easier than configuring Hyperspin and Mame. 

I encourage you to take up your issues in via PRIVATE messages.  In the meantime let's get back to killing evil aliens and beating up bad guys.

Gratefully yours
Brent


Lilwolf

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 4945
  • Last login:July 31, 2022, 10:26:34 pm
Re: Advanced Automated Mame Compiler [Beta]
« Reply #14 on: October 31, 2011, 08:32:55 am »
Trouble is, without the no-nag... it causes problems with some systems.  (I need it for a touchscreen only arcade I built.  I can't get past megatouchs warnings.  If mame added the option to bypass warnings after the first 'ok' if a setting is set in the mame.ini, then I think it would be fine).

And as for the hiscores.  I agree there are isses with it, and its getting better with save states.  But I really miss having all my hiscores on my arcade.  But I don't use hiscores myself at the moment on my main arcade, but miss it once a week or so... but not enough to recompile.


These tools appear to have specific options to apply / use common patches (like the hiscore ones, no nag ones etc.) which are known to cause issues.


Space Fractal

  • Wiki Master
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 1888
  • Last login:September 26, 2023, 11:32:13 am
  • Space Fractal
    • Space Fractal
Re: Advanced Automated Mame Compiler [Beta]
« Reply #15 on: October 31, 2011, 07:21:41 pm »
I might have did the same thing when I wrote the FuturePinball Extrator tool, but here I was not even aware at all before HeadKaze posted about his similar app. But since I was not aware, then its not a copy in this case. He did also no other than mention it of course and not even notice it here.

Also the tone on this thread is very hardly me think, but should been sovled by PM and not in public.

I do think obfuscating the source is really bad idea, and putting email password in code is more worse to do (use a keyfile instead or standalone app)... why release that such? So I do understand HZ here (and a least a link & credits could been nice).
Decade Old Work: MultiFE, ArcadeMusicBox
Today Works: Various Spectrum Next games from Rusty Pixels and html5 games.