What's New:
- Added a lot more logging of the MAME executable location process in FilePaths. I have done this in order to assist with major problems in the MacOS distributable version of pfeMAME no longer getting the right responses from subprocess when trying to run MAME from the system path rather than an absolute path.
- Modified the method used to find the MAME executable when auto-finding to try and be a bit more robust for MacOS.
- Simplified the icon code for the main menu
- Simplified the on_control_changed code in alternate emulator engines
- Fixed bug in panelslots.py that was generating bios names for all machine types for the selected system, rather that the specific system machine type (i.e. list was way too long and selections could be incorrect for the actual system)
- Simplified and made more pythonic a number of other sections of code in panelslots.py
- Fixed bugs in panelslots
- Fixed bug that would cause a crash for systems that don’t have a bios option
- Added a first bios option to be a blank field which is possible for some systems
- Fixed bug that would prevent you from being able to default or empty slots for systems that you are configuring for the first time
- Fixed bug that would stop you from clearing a single line in slot options
- After closing the alternate_emulators window, the XML file is reloaded to update the alternate emulator data in memory. This way you shouldn’t have to restart pfeMAME but you will have to refresh the database to see the changes.
- The Tile View filter (All of Favorites) is now set based on the value from the Main View. You can still toggle it when in Tile View.
- Updated the non mame defaults XML file to include additional command line options for visual pinball that send it to the background and fully close when the table exits. Much better for non-keyboard implementations.
- Added a feature to allow all ROMs tagged as a favorite to be exported to a selected folder. Can be found in the ‘File’ menu.
- Added a new preference setting to set the main window Fullscreen on startup
- Added a new preference setting to recall the main view ROMs list columns widths on startup. Whatever they were when the application was last closed will be recalled.
- Updated the preferences window to expand vertically to use available space.
- Fixed issue with the joystick code causing high CPU usage. By default the polling is set to maximum speed (0 delay) which chews up to 20% CPU which is ridiculous. Have set to 50 which is just fine.
- Added a set-focus event so that when changing the filtered view for the main list, the list is selected for focus so you can start scrolling without having to first click into the window. At the same time I force the visible row back to ZERO to ensure that a row is aways selected.
- Had to change the get checkbox controlls code as for some reason I don’t currently understand, its causing errors in python 3.13. Also moved it to a function as its used in 3 different places.
- Fixed a bug in the code that recalled the last ROM selected. For systems this would work if the first system ROM was the top level system (e.g. ZX Spectrum) and then the next ROM after that was the program you wanted to run. This would not work if the first system was the system and also the ROM (e.g. pinball tables).
- Significant improvement to how the mame history file was loaded into memory and then searched on the fly. Previously done in a list which was then iterated through for searching using pure python. Have moved to keeping it in one massive string and using the inbuilt ‘find’ which is in C so a heck of a lot faster. We’re talking x10 speed improvement on a fast system. I would expect slower systems to be even better. The net result is that scrolling through ROMs will be just that little bit faster now. IMPORTANT: At the same time I have dropped the legacy support for the older history.dat file. Only the XML file is now supported.
- Updated the manual – please read it if this is your first time using this application.
- Fixed a bug in alternate emulator engines when using the set defaults feature that would cause an error if you didn’t select any engine types. Also fixed a bug in the same custom dialog that would return an wx.ID_OK event even if you pressed ESC or closed the dialog without selecting anything in the drop-down.