Negatron v1.0.0 is released. Negatron is yet another front-end for MAME, the well-known multi-system emulator. Negatron has been first engineered to assist users in managing the huge list of machines available in MAME as intuitively as possible, them being arcade machines, consoles or computers. It has been developed in order to be as much hassle-free as possible, checking for any changed or updated resources automatically.
Negatron v1.0.0 Changelog:
The initial plan was to version it as v0.200.0 following the trend of MAME numbering system but macOS doesn’t allow to version anything as v0.x.x. As this release fixes a lot of little annoying bugs and thus makes Negatron quite smoother to use in every aspect, here we are, out of the beta loop.
Since the last release of 2020, the retrogaming community at Pleasuredome.org.uk has moved to a Discord channel. They still provide new MAME EXTRAs packs with each version of MAME (at least as long as AntoPISA will provide pack updates) and those packs are now available from https://pleasuredome.github.io/pleasuredome/mame/index.html.
The main hightlights of this release are the following:
Since the last release, the content of the MAME EXTRAs packs has changed a bit. Notably, the history.dat file provided by https://www.arcade-history.com has been migrated to become an xml file and there is a new command.dat file. Negatron now supports those 2 dat files, albeit command.dat is supported in a very basic fashion for now.
Since the last release, MAME has deprecated its old bezel layer formats and some lua script functions in favour of a new format and new functions. When running a game, MAME promptly reports those old formats and functions as warning messages that were directly relayed by Negatron as annoying warning popups. Now, Negatron logs those warnings in a new logging panel, which is forcefully displayed only when MAME reports actual errors. No popups anymore!
This version fixes an important bug where Negatron couldn’t properly manage cartridge ports that are also used to plug hardware extensions into machines. That was mainly an issue for emulated computers like the Commodore 64 but, with the latest versions of MAME, this had also become an issue with popular consoles like the Super Nintendo, preventing from playing popular games from Negatron. Well, now those issues are all gone.
Negatron has always been provided with native installers for Windows and macOS. An attempt to provide Linux native installers (.deb and .rpm) was done with v0.99.4 but failed miserably: Negatron actually could not work within the imposed folder architecture of installed applications on Linux… Well, now it works.
Finally, now Negatron fully supports dual stick gamepads as a mean to navigate the different panes and panels. This is done by redirecting gamepad inputs to emulate mouse and keyboard interactions.
The native installers for macOS and Linux don’t embed VLC anymore. For macOS, this is because I stripped VLC from every file not strictly needed for local video play and this OS doesn’t allow to tamper with the application integrity. The alternative would be to embed the full VLC pack but, in this case, it’s better to let users install VLC from official sources. For Linux, it’s simply proper to let users install VLC from official sources and it is often already installed by default anyway.
I do not provide a native installer for Mac devices on Apple Silicon (M series) simply because I don’t own one and so I cannot generate and test a native installer for them.
Gamepad inputs are retrieved by using SDL3. This means a new dependency that must be downloaded from https://libsdl.org/. The native packs all already embed a version of SDL 3.1.8. My test results are the following:
All the gamepads I own work well on Windows 10. This means gamepads for Xbox 360, Xbox One, Xbox Series, PlayStation 3 (with third-party drivers), PlayStation 4 and PlayStation 5, also the Nintendo Switch Pro controller and PDP Realmz wired controllers for Nintendo Switch.
On macOS Monterey 12, Xbox family controllers are not recognised, the Nintendo Switch Pro controller is recognised but inputs are ignored, PDP Realmz controllers make Negatron to crash hard and PlayStation family controllers work quite well. The issue with Xbox controllers is well known on Mac devices and a third-party driver must be downloaded to fix this. I suppose that those other compatibility issues can also be ironed out with third-party drivers.
All those gamepads also works on Linux but there are 2 issues:
The input mapping for those Realmz controllers is totally wrong, I need to come up with a system to easily remap those buttons.
The left stick is supposed to emulate the movements of a mouse pointer. But on Linux, the pointer as a graphical element doesn’t move at all while the OS does register the pointer movements… Visual cues and actual input management are completely desynchronised.
This last bug on Linux is due to the fact that Java uses X11 on top of Wayland and the layer linking those 2 desktop systems, XWayland, has a bug when emulating mouse movements. I reported this to Oracle but they won’t fix it. They do have long-term plans to fix this eventually. But in the meantime, I found a workaround that is not ideal because it will put the burden of maintaining gamepad interactions on Linux on me. To simplify things, currently the software stack on Linux is like this: Negatron > Java framework > X11 > XWayland > Wayland > Libevdev > Kernel. The idea is to get a shortcut and completely ignore the Java framework in this way: Negatron > Libevdev > Kernel. Doing this takes time and a new release for Negatron is quite overdue. So, I should deliver this workaround for the next release, hopefully not in 5 years…
Enjoy!