Home Page
Posted By: Bletch BletchMAME 2.0 - 08/23/20 05:08 PM

This release does not offer any new features, but rather is the result of an overhaul of the application itself. Most notably, BletchMAME was transitioned from wxWidgets to Qt.
Posted By: nerd4gw Re: BletchMAME 2.0 - 08/24/20 01:49 PM
Nice one! It's cool too see the progress you have made, I really think BletchMAME has huge potential to be a proper 'realtime interface' to MAME and not just another bloated dumb front end.

I think MAME has reached a point now, where it really needs a better way to get systems hooked up without getting lost and or relying on 'Mary's blog or some guy on reddit or some forums even here from 7 years ago etc etc'.

There are so many awesome old systems to tinker with that work good enough or are pretty much perfect and I wouldn't be the only one who finds it clunky and off-putting to workout how too connect anything up with a big long commandline, plus I worry about missing out on what's really available rather than default etc. A perfect example is, setting up a 486 or Mac etc. Basics such as Network, Sound Card (what works now, what's the best?) even a HDD from scratch, CDROM, MIDI, Serial etc + connecting things 'outside' the emulator box..

I really think half of the battle is won by having an a proper GUI that you can set things up and specifically with Bletch interact directly with MAME, I really think it it's the bridge lol. (you need a better name too, Bletch seems a bit awkward?).

Also, I don't know what it is and i'm interested in other opinions, but Qt always for me seems a bit laggy and it has these annoying interface things that make it not feel like a proper windows app. Just comparing your older version and the new one, I noticed searching and re-sizing windows are not as snappy. But other things are ok Qt fonts looks better now, I suppose more cross compatible now. But yeah Qt apps always seems a bit flickery/clunky with the interfaces, one of my gripes with QMC2 has something about it. But hey should be great to add a 'Dark theme' pretty quick haha.

Can't wait to see this progress!
Posted By: R. Belmont Re: BletchMAME 2.0 - 08/24/20 02:10 PM
The major thing with the switch to Qt is that BletchMAME now also compiles on Mac and Linux (I've been following along with development on this port and feeding changes back to Bletch).

There's a linking issue on Linux that hasn't been resolved, but BletchMAME does run and work on the Mac (I installed cmake and Qt from Brew to make that happen).
Posted By: Bletch Re: BletchMAME 2.0 - 08/24/20 04:27 PM
Well, if we don't call it BletchMAME, what do we call it? I couldn't think of a better name.

I will say that not everything about Qt is an improvement. It does feel a bit more heavyweight, my executable is now double the size, and the UI feels (from a Windows user's perspective) slightly more "foreign" for lack of a better world. However, it is become clear to me that Qt has far more momentum. Plus, BletchMAME seems to be much more portable in practice now.
Posted By: nerd4gw Re: BletchMAME 2.0 - 08/25/20 01:00 AM
hmm I think a cool name like XIMAME or MAMEXI meaning interface somehow. MAMEICS (interface controller system lol).
Posted By: Vas Crabb Re: BletchMAME 2.0 - 08/25/20 01:11 AM
Those are lame names. Bletch’s name is a reference to the apex of New Zealand cinema.
Posted By: Heihachi_73 Re: BletchMAME 2.0 - 08/25/20 03:37 AM
Yeah, nah, the letters XI make me think of the leader of a certain place where millions of illegal xxxx-in-1 knockoff consoles are made, not a good look for MAME.
Posted By: nerd4gw Re: BletchMAME 2.0 - 08/25/20 08:49 AM
haha fair enough guys.. wait, MAMEHooker what about that Heihachi is that better?

What about these?


Posted By: Bletch Re: BletchMAME 2.0 - 08/25/20 02:07 PM
Meh... I'm inclined to stick to my tribute to New Zealand cinema.
Posted By: Stiletto Re: BletchMAME 2.0 - 08/26/20 12:47 AM
MAMEHooker exists, it's some output device (like cabinet force feedback and LEDs) utility thingy.
Posted By: MAMEBase Re: BletchMAME 2.0 - 08/27/20 01:04 AM
(Raises hand from back corner)

I'd be quite interested in taking a look at this... Is there a pre-compiled Mac binary available, or barring that, a set of instructions that even I might be able to follow to compile this for the Mac?

(Retreats to back corner)
Posted By: R. Belmont Re: BletchMAME 2.0 - 08/27/20 01:19 AM
Let me pull the 2.0 release branch and reconstruct how I compiled it from scratch so I have instructions. You will need Homebrew installed (along with Xcode naturally). The good news is it's using CMake so it generates a project file you just load into the Xcode GUI and build.
Posted By: Monotremata Re: BletchMAME 2.0 - 08/27/20 02:37 AM
This sounds rad.. Guess its time to finally install Xcode on the new Mac mini!
Posted By: R. Belmont Re: BletchMAME 2.0 - 08/27/20 02:53 AM
Mac build instructions. These work on Catalina and Big Sur developer beta 5. They should be OK on Mojave at least as well.

Prereqs: install Xcode from the Mac App Store, and Homebrew following the instructions on https://brew.sh/

Open a Terminal window and install the necessary brew modules:
% brew install cmake
% brew install expat
% brew install zlib
% brew install qt

Get BletchMAME:
% git clone https://github.com/npwoods/bletchmame.git

This gets the BletchMAME source into a newly created folder called "bletchmame".

Currently (August 26, 2020) there's a minor edit you need to do to the source to make Clang happy. Use TextEdit or BBEdit or whatever to open the file lib/quazip/minizip_crypt.h and delete the word "register" on line 57, then save the file.

Setup for cmake:
% cd bletchmame
% mkdir build
% cd build

Run cmake (I recommend copy/pasting this command):
% cmake .. -DEXPAT_INCLUDE_DIR=/usr/local/opt/expat/include/ -DEXPAT_LIBRARY=/usr/local/opt/expat/lib/libexpat.a -DZLIB_ROOT=/usr/local/opt/zlib -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5/

Once this completes, build:
% make -j5 (for a 4-core Mac; use -j3 for a 2-core or -j9 for an 8-core).

And run:
% ./BletchMAME

I haven't gotten BletchMAME to successfully launch MAME yet on the Mac, but it's interesting to play around with.
Posted By: Carbon Re: BletchMAME 2.0 - 08/27/20 09:31 AM
I followed all the steps and they completed without errors. But during compilation, I get this error:

In file included from /Users/charel/bletchmame/lib/quazip/unzip.cpp:202:
/Users/charel/bletchmame/lib/quazip/minizip_crypt.h:57:7: error: ISO C++17 does not allow 'register'
      storage class specifier [-Wregister]
      register int keyshift = (int)((*(pkeys+1)) >> 24);
1 error generated.
make[2]: *** [CMakeFiles/QuaZip.dir/lib/quazip/unzip.cpp.o] Error 1
make[1]: *** [CMakeFiles/QuaZip.dir/all] Error 2
make: *** [all] Error 2
Posted By: Just Desserts Re: BletchMAME 2.0 - 08/27/20 10:54 AM
If you're getting that error, then no, you didn't follow all the steps.
Posted By: MAMEBase Re: BletchMAME 2.0 - 08/27/20 04:47 PM
I followed all the instructions, and successfully compiled BletchMAME 2.0.

As indicated, I was unable to launch MAME, but still, I appreciate the instructions, and eagerly await a time when we can have BletchMAME working on the Mac.
Posted By: Bletch Re: BletchMAME 2.0 - 08/27/20 09:14 PM
On Windows, BletchMAME relies on a command line option "-attach_window" to instruct MAME to "borrow" an existing Window instead of creating its own.

-attach_window is currently Windows-only. I don't see BletchMAME on non-Windows platforms being usable without equivalent functionality on those platforms.
Posted By: mizapf Re: BletchMAME 2.0 - 09/03/20 01:25 PM
I was able to build BletchMAME on Linux with

$ cmake .. -DEXPAT_INCLUDE_DIR=/usr/include/ -DEXPAT_LIBRARY=/usr/lib64/libexpat.so.1 -DZLIB_LIBRARY=/usr/lib64/libz.so

but clicking on a driver gives me a sigabrt, after a window for the emulation briefly popped up.

Does BletchMAME make use of the Lua interface? I've already been thinking about a fully detachable UI, text or graphics, using a remote Lua connection. (Would mean to make the Lua console accessible by socket first.)
Posted By: Bletch Re: BletchMAME 2.0 - 09/03/20 10:37 PM
Yes, there is a LUA plugin ("worker_ui") distributed with BletchMAME that essentially provides what is sort of a hybrid between a command console and an RPC-like mechanism. Its not using sockets, but rather standard IO - meaning that you can execute MAME with that plugin and control MAME using the same facilities BletchMAME is using.
© Forums