{"id":52077,"date":"2017-09-30T10:29:47","date_gmt":"2017-09-30T08:29:47","guid":{"rendered":"http:\/\/www.emu-france.com\/?p=52077"},"modified":"2017-09-30T10:29:47","modified_gmt":"2017-09-30T08:29:47","slug":"mame-support-files-pfemame-v2-0","status":"publish","type":"post","link":"https:\/\/www.emu-france.com\/?p=52077","title":{"rendered":"[MAME Support Files] pfeMame v2.0"},"content":{"rendered":"<p>pfeMame (\u00e9crit par Gareth Finch) est un frontend pour MAME, \u00e9crit en Python. Il est multiplateforme (test\u00e9 sur Linux &#8211; Ubuntu et Windows). Il comprend \u00e9galement une interface graphique destin\u00e9e aux MameCab qui permet le contr\u00f4le \u00e0 l&rsquo;aide de joystick \/ manette.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2014\/06\/pfemame_main.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-30703\" src=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2014\/06\/pfemame_main-1024x838.jpg\" alt=\"pfemame_main\" width=\"500\" height=\"409\" srcset=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2014\/06\/pfemame_main-1024x838.jpg 1024w, https:\/\/www.emu-france.com\/wp-content\/uploads\/2014\/06\/pfemame_main-300x245.jpg 300w, https:\/\/www.emu-france.com\/wp-content\/uploads\/2014\/06\/pfemame_main.jpg 1026w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>&nbsp;<br \/>\n<em>v2.0.0 Build 1<br \/>\n\u2022\tUpdated version control to something more standard MAJOR.MINOR.REVISION BLUILD<br \/>\n\u2022\tMade the right click menu item \u2018Play game without softlist hash support\u2019 only enabled if the program selected actually has a short name.<br \/>\n\u2022\tAdded right click menu items to run Sega model 2\/3 games using a different emulation engine.  I\u2019ve done this as I quite like some of those games (Daytona), but MAME currently doesn\u2019t emulate them very well, if at all.<br \/>\n\u2022\tFixed bug in dynamic search \u2013 when setting current row to the first row (0), it needs to ensure there are actually results otherwise the ultimatelistctrl throws an error.<br \/>\n\u2022\tVisual Pinball tables support has now been added in properly.  When you refresh the database, if you have set a path to the visual pinball tables and the executable file, then the tables will be added to the games list under \u2018Visual Pinball\u2019 \u2013 just search for that.  The number of runs, favorites, etc work as per normal.  You will have to copy game snaps into the snapshots folder yourself though.<br \/>\n\u2022\tRemoved the old \u2018temporary\u2019 method for playing Visual Pinball tables<br \/>\n\u2022\tThe manual has been updated to include the new alternate emulation engines<br \/>\n\u2022\tRemoved some more unnecessary use of \u2018global\u2019<br \/>\n\u2022\tMoved some repeated code into functions<br \/>\n\u2022\tUpdated the menubar code to be more consistent and make it easier to add icons or effects \/ colors at a later date<br \/>\n\u2022\tHave moved some global variable declarations to the main module in the main application \u2013 now that I know how to use global variables properly.  No change to function and personally I think it\u2019s a bit harder to read, but hey, apparently, it\u2019s the right way to do it.  Have a lot more that will need to be corrected over time \u2013 no hurry.<br \/>\n\u2022\tImproved output display of the rom information window \u2013 style now consistent with the rest of the application<br \/>\n\u2022\tAdded a copy to clipboard option for the rom information display window.  Aligned the buttons to the right and made the text uppercase as per other windows<br \/>\n\u2022\tWhen running a game using a non-MAME emulation engine (e.g. Sega Model 2\/3), a note is made in a new DAT file called enginetouse.dat.  After that when you select that same game it will look up what engine to use.  For now, if you want to go back to using MAME you will have to delete this game entry from the enginetouse.dat file manually.<br \/>\n\u2022\tReplaced the exists and favorites columns Yes \/ no text with ticks and crosses \u2013 this requires a database refresh to start working properly.<br \/>\n\u2022\tFixed a bug that picks up on a configparser error when reading the catver.ini file.  If it finds an error you will now be told that it can\u2019t parse the file and you should revert to a previous one.  Had to do this with the catver.ini version 0.189 as it broke my parser.  Change made in pfemame.py and gametypes.py.<br \/>\n\u2022\tAdded a \u2018allow no value=true\u2019 to the configparser reading the catver.ini file as 0.189 version contains some lines with no values and it broke my parser.  Change made in pfemame.py and gametypes.py.<br \/>\n\u2022\tAdded \u2018Computer\u2019 as a system type.  Prior to catver 0.189 it was called \u2018Home Computer\u2019<br \/>\n\u2022\tYOU MUST OPEN GAME CATEGORIES AND SET UP YOUR GAME CATEGORIES AGAIN AND THEN REFRESH THE GAMES DATABASE WHEN UPDATING TO THIS VERSION OF PFEMAME DUE TO CATVER.INI CHANGES.<br \/>\n\u2022\tUpdated the project to work with Python 3 and wxpython phoenix.  A lot of code changes to support the differences between 2.7 and 3.x.  If you want to build the project yourself then you will need to move across to Python 3.x .<br \/>\n\u2022\tConfirmed issue with Ultimatelistctrl.py library.  As of wxpython phoenix a divide is treated as a float.  This was causing exceptions in the right click context menu.  Raised the issue on Github and a change will be made.  If you are building from scratch you will need to find this line in the ultimatelistctrl.py library and add a second slash (divide) to instruct it to perform an integer divide (Note, as of 17 Sept I see that the download files are updated so you no longer have to do this manually);<br \/>\ncurrent = y\/self.GetLineHeight()<br \/>\n\u2022\tChanged the Windows exe creation script and batch file to use cx_Freeze (Was previously using py2exe) as py2exe is currently not supporting python 3.6.  This change means you have to install cx_Freeze (pip install cx_Freeze) if building from source.<br \/>\n\u2022\tAdded a check in rungame to make sure that if we are trying to use an alternate emulation engine, that the paths to that engines executable file are actually valid.<br \/>\n\u2022\tRemoved wx.richtext import from checkall as its not been used in a long time.<br \/>\n\u2022\tMerged icons and images folders into the images folder (removed icons folder).  Moved the pfeMAME.ico file from root to the images folder.<br \/>\n\u2022\tReplaced the old wait display with a proper splash screen \u2013 its displayed for 5 seconds on application startup<br \/>\n\u2022\tFixed bug in preferences.py.  The code to write to game specific INI files used a binary write which worked ok in python 2.7 but is not valid in 3.x as its text I am writing.<br \/>\n\u2022\tRemoved the minimise button from sub windows (preferences etc) and set them to always on top so that you can\u2019t have a confusing situation where the window gets minimised so you think you\u2019re working with the main window but nothing is happening as the sub window has control.<br \/>\n\u2022\tA whole lot of code improvements \/ corrections.  Not bug fixes but things like removing unnecessary duplications, id\u2019s, variables, complexity, etc)<br \/>\n\u2022\tAdded a verify rom toolbar icon<br \/>\n\u2022\tAdded an adjuster to the horizontal size of the filepaths frame and panels to try and may it lay out better in both Windows and Linix \u2013 its better but still needs some work.<br \/>\n\u2022\tRemoved the blank.png image used in Tileview with wx.Image(x,y) as this does the same thing and is built in.<br \/>\n<\/em><\/p>\n<p>&nbsp;<br \/>\n<p class=\"p_telecharger_icone_zip\"><a class=\"telecharger_icone_zip\" href=\"https:\/\/www.emu-france.com\/?wpfb_dl=6557\" title=\"Download pfeMame (32 bits)\">T\u00e9l\u00e9charger pfeMame (32 bits) v3.4.4 (110 Mo)<\/a><\/p><p class=\"p_telecharger_icone_zip\"><a class=\"telecharger_icone_zip\" href=\"https:\/\/www.emu-france.com\/?wpfb_dl=7268\" title=\"Download pfeMame (64 bits)\">T\u00e9l\u00e9charger pfeMame (64 bits) v1.008 (12.5 Mo)<\/a><\/p><\/p>\n<p class=\"p_site_officiel\"><a class=\"site_officiel\" href=\"http:\/\/sourceforge.net\/projects\/pfemame\/\" target=\"_blank\">Site Officiel<\/a><\/p>\n<p class=\"p_en_savoir_plus\"><a class=\"en_savoir_plus\" href=\"https:\/\/www.emu-france.com\/utilitaires\/17-mame-support-files\/263-frontends\/\">En savoir plus&#8230;<\/a><\/p>\n<div class=\"fcbkbttn_buttons_block\" id=\"fcbkbttn_left\"><div class=\"fb-share-button  \" data-href=\"https:\/\/www.emu-france.com\/?p=52077\" data-type=\"button_count\" data-size=\"small\"><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>pfeMame (\u00e9crit par Gareth Finch) est un frontend pour MAME, \u00e9crit en Python. Il est multiplateforme (test\u00e9 sur Linux &#8211; Ubuntu et Windows). Il comprend \u00e9galement une interface graphique destin\u00e9e aux MameCab qui permet le contr\u00f4le \u00e0 l&rsquo;aide de joystick &#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-52077","post","type-post","status-publish","format-standard","hentry","category-par-defaut","uentry","postonpage-1","odd","post-author-Jets"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pKi2R-dxX","jetpack_likes_enabled":false,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/52077","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=52077"}],"version-history":[{"count":1,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/52077\/revisions"}],"predecessor-version":[{"id":52078,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/52077\/revisions\/52078"}],"wp:attachment":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=52077"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=52077"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=52077"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}