Post subject: pfeMAME v2.20.2 Posted: Mar 26, 2022 - 11:03 AM
Joined: Jul 04, 2004
Location: Frankfurt a.M.
pfeMAME ist ein Frontend für MAME, das in der Programmiersprache Python geschrieben wurde. pfeMAME läuft platformübergreifend, getestet wurde es vom Autor unter Windows und Ubuntu Linux.
pfeMAME is a frontend for MAME written in Python. It is cross platform (tested on Linux - Ubuntu and Windows XP) and includes a graphical Tile View designed for MAME cabinets which allows control using joystick / gamepad. pfeMame was written by Gareth Finch and started in 2014.
Fixed an issue with packaged file size. It was adding pygame under windows and also tkinter, neither of which are used. It’s a problem with cx_freeze crawling my source folder, I think.
Refactored the toolbar creation code. Much easier to read now.
Clean-up of numerous PEP violations.
ROM Sample checks were not working correctly. Needed to change to the MAME path. Was also not checking if there was an error before saying that everything was actually ok. Also added a message to the output window if the samples folder has not been defined as that is kind of necessary for this to work.
Added the ability for the pfeMAME main application to restart itself. An additional developer button has been added to force this. On restart a message will be added to the messages window to indicate that a restart was forced. The plan is to use this to allow preferences and first time setup changes to force a restart rather than you having to do this manually.
Changes in preferences settings will cause the application to try and restart. At the moment is will restart minimised so you need to click on the icon in the taskbar.
After setting up the file paths for the first time the application will auto-restart.
On initial startup when the database has to be refreshed for the first time I have moved a chuck of code into a callafter to allow the display to be completely drawn before calling these long running tasks. This makes the display actually look as it should while the database is being refreshed.
Added a check if there was any quantity of joysticks added in panelpfemame. If not don’t try to read their info as that would crash on MAC.
Added an IndexError check to play_game in tileview (only found this issue with MacOS but it should have been there anyway)
Added os.getcwd() to the list of paths to check for file/folder matches in auto_find for file paths. This makes sure it can find catver.ini file if you’ve not included it in the MAME folder.
Added utf-8 encoding when reading from the mame.ini file just in case there are some non-standard characters in there.
The preferences window was not clearing the slots header text when slots were reconfigured. Until recently I didn’t realise that it was actually being hidden behind controls and then being drawn over.
Rewrote some version checking code and moved the now common process to functions
Started testing on MAC OS. Changes required so far;
Move the menubar color definitions to after the menubar is set
Added specific platform detection for ‘mac’ as Darwin.
Displaying pfeMAME manual
Filepaths & inifile code need to treat sections where I check if Windows or Linux as Windows like (root paths etc are same for MAC as Windows when looking at the MAME folder)
Added a .icns icon file for the application
Created a MAC specific file setup_mac.py for building a MAC distribution
Added self.Show() to tileview as the show full screen wouldn’t actually show the window on MacOS
Added mc.Raise() to tileview to ensure the media control is visible in front of the static bitmap button.
Changed tileview to use an index to remember the currently selected button (was previously using setfocus and getfocus methods but they don’t work on MacOS.
Added a lot of utf-8 encodings to file read & writes as MacOS app bundling has an issue if you don’t.
Have changed the preferences window to use a fixed size rather than auto-sizing based on the requirements. Had to do this as MacOS was not handling the auto-size very well at all.
Changed to using a generic button rather than the application based wx.Button. This is needed as on MacOS you are limited by button sizing and you cannot change the button background color.
Changed the scrolling rominfo control in TileView from textctrl to richtextctrl so that I could actually change the text foreground color as MacOS has further limitations to foreground colors for native text controls.
Changed the onscreendisplay toggle key for systems from FD-Delete to DEL which is correct for the MacOS