• 1
  • 10
  • 11
  • 12
  • 13(current)
  • 14
Advanced MAME Launcher - MAME frontend for Kodi
New AML release 0.10.0

AML release 0.10.0 is finally out! Current users of AML will notice few changes compared with the previous release 0.9.12. However, in preparation for the Kodi Matrix release a huge refactoring in the AML Python code has been done. The main new feature is the more-or-less full support of Retroarch MAME 2003 Plus. Also, many minor things have been improved here and there and also there are a couple of bug fixes.

The code refactoring was necessary to ease the transition from Python 2 to Python 3 and some regressions may have been introduced. In you notice any crash or malfunction please report it in this thread or in Github.

IMPORTANT AML 0.10.0 will be the last Python 2 feature release for Kodi Krypton and Kodi Leia. From now on, new features will be developed exclusively for Kodi Matrix and Python 3. For some time I will also release bug fix releases in the 0.10.x series.

Upgrading AML from a previous release

1) Download AML from the Kodi addon repository. AML is under the categories Program add-ons and Game add-ons, Game providers. It is likely that Kodi will download the latest release of the addon automatically.

2) Before generating the database and scanning your assets, go to Utilities and select Check AML configuration. Make sure every feature you want is OK and green, otherwise check the AML addon settings because some settings may have changed.

3) Open the context menu in any root window row, select Setup Plugin and then All in one (Extract, Build, Scan, Filters). This will extract MAME XML, rebuild all the databases, rescan ZIPs/CHDs/assets, and rebuild the custom filters.

4) In the root window, go to Utilities and select Check/Update all Favourite objects. This will bring your MAME Favourites, MAME Most Played, etc. up to date with the last version of the database. After this step completes AML is ready for use and totally updated.

5) If AML crashes after an upgrade it is very likely that the databases are not up to date. Make sure you execute steps 2) to 4) before submitting a bug report.

Advanced MAME Launcher | version 0.10.0 | 27 November 2020

Code:
FEATURE  [CORE] Big code refactoring to prepare Kodi Python API changes.

FEATURE  [CORE] Include Software Lists that have no associated MAME machines in "Machines
         by Software List" filter.

FEATURE  [CORE] Create branch python2 and place series 0.10.x into this branch.

FEATURE  [CORE] Support Retroarch MAME 2003 Plus.

FEATURE  [FILTERS] Implement filtering options NoMissingROMs, NoMissingCHDs and NoMissingSamples.
         See https://forum.kodi.tv/showthread.php?tid=304186&pid=2964109#pid2964109

FEATURE  [CORE] Different colours for different filters in the root window.

FEATURE  [CORE] In the Setup Plugin CM, Build Fanarts and 3D boxes: add an option to
         build all the Fanarts and 3D boxes at once.

FEATURE  [CORE] Reorganised the Setup Plugin context menu a bit.

FEATURE  [CORE] Export MAME info with billyc999s XML format.

FEATURE  [CORE] New Utility "Show machines with biggest ROMs"

FEATURE  [CORE] New Utility "Show machines with smallest ROMs"

FEATURE  [CORE] Disable Kodi screensaver when launching MAME and reenable after MAME finishes.
         See https://forum.kodi.tv/showthread.php?tid=304186&pid=2934194#pid2934194

FIX      [CORE] Fixed crash when creating ROM audit database when MAME CHD set was SPLIT.
         See https://forum.kodi.tv/showthread.php?tid=304186&pid=2975566#pid2975566

FIX      [CORE] Fix parsing of mameinfo.dat 0.226.
Reply
New AML release 1.0.0

AML 1.0.0 is a Python 3 version of the addon intended for Kodi Matrix. Feature-wise this version is identical to the Python 2 0.10.0 release. Kodi Matrix is now in beta stage and it is likely the final version will be released in January 2021. Enjoy!

Upgrading AML from a previous release

1) Download AML from the Kodi addon repository. AML is under the categories Program add-ons and Game add-ons, Game providers. It is likely that Kodi will download the latest release of the addon automatically.

2) Before generating the database and scanning your assets, go to Utilities and select Check AML configuration. Make sure every feature you want is OK and green, otherwise check the AML addon settings because some settings may have changed.

3) Open the context menu in any root window row, select Setup Plugin and then All in one (Extract, Build, Scan, Filters). This will extract MAME XML, rebuild all the databases, rescan ZIPs/CHDs/assets, and rebuild the custom filters.

4) In the root window, go to Utilities and select Check/Update all Favourite objects. This will bring your MAME Favourites, MAME Most Played, etc. up to date with the last version of the database. After this step completes AML is ready for use and totally updated.

5) If AML crashes after an upgrade it is very likely that the databases are not up to date. Make sure you execute steps 2) to 4) before submitting a bug report.

Advanced MAME Launcher | version 1.0.0 | 27 November 2020

Code:
FEATURE  [CORE] Port the addon to Kodi Matrix and Python 3.

FEATURE  [CORE] xbmc.translatePath is deprecated in Matrix, use xbmcvfs.translatePath instead.

FIX      [MANUALS] The pdfwr library is not working well with Python 3. PDF image extraction
         have been disabled until this issue is fixed.
Reply
Comparison of MAME 0.226 with Retroarch MAME 2003 Plus (November 2020)

AML supports now Retroarch MAME 2003 Plus (M2003P) and I though that it could be interesting to compare Vanilla MAME with M2003P. Retroarch users have many MAME cores to chose from, ranging from M2003P until a recent MAME version close to Vanilla MAME, and often I see in forums the question "What MAME core to use?". I will try to give an answer to that question by looking at the AML statistics for both versions of MAME. First let's have a look at the machine statistics of MAME 0.226:

Code:
MAME machine count
Type        Total   Parent  Clones
----------------------------------
Machines    42,878  17,866  25,012
Runnable    37,791  12,779  25,012
Coin        25,736   7,920  17,816
Nocoin      12,055   4,859   7,196
Mechanical  15,355   3,355  12,000
Dead         8,814   3,441   5,373
Devices      5,087   5,087       0
BIOS            73      73       0
Samples      1,237     702     535

And compare with MAME 2003 Plus:

Code:
MAME machine count
Type        Total   Parent  Clones
----------------------------------
Machines     4,944   2,818   2,126
Runnable     4,928   2,802   2,126
Coin         4,838   2,726   2,112
Nocoin          90      76      14
Mechanical       0       0       0
Dead            36      35       1
Devices          0       0       0
BIOS             0       0       0
Samples        154      35     119

The number of machines of MAME 0.226 is vastly superior to M2003P. Note that M2003P does not include mechanical machines at all, such as pinball machines. M2003P also does not have BIOS nor device machines. Also, M2003P almost does not have machines with no coin slot (consoles, computers and the like) because at that time those machines were part of MESS and MESS was not integrated in MAME like it is today. It is not shown here but M2003P does not include Software Lists at all.

Things get interesting if we compare the MAME main filters only. Next there is a table of the main filters for MAME 0.226:

Code:
MAME machine statistics
Type (parents/total)  Total          Good          Imperfect         Nonworking      
--------------------------------------------------------------------------------------
Coin slot (Normal)    4,120  10,181  2,298  6,364        962  2,240         860  1,577
Coin slot (Unusual)   1,975   6,474    850  1,959        185    327         940  4,188
No coin slot          2,040   3,837    900  1,557        336    570         804  1,710
Mechanical machines   1,203   8,487      0      0          0      0       1,203  8,487
Dead machines         3,441   8,812      0      0          0      0       3,441  8,812
Device machines       5,087   5,087    N/A    N/A        N/A    N/A         N/A    N/A

And here is the same table for M2003P:

Code:
MAME machine statistics
Type (parents/total)  Total         Good          Imperfect       Nonworking    
---------------------------------------------------------------------------------
Coin slot (Normal)    2,576  4,662  2,360  4,289          0    0         182  317
Coin slot (Unusual)     142    168    142    168          0    0           0    0
No coin slot             65     78      4      4          0    0          45   58
Mechanical machines       0      0      0      0          0    0           0    0
Dead machines            35     36      0      0          0    0          35   36
Device machines           0      0    N/A    N/A        N/A  N/A         N/A  N/A

Note that there are no Imperfect machines in M2003P. Often, imperfect machines are playable and enjoyable as they have only minor graphical or sound glitches. If we consider imperfect machines the same as good machines, Vanilla MAME has 3,260 playable parent arcade machines (with coin slot), compared with 2,360 M2003P has. Surprisingly, the difference is not huge if we only look at the playable parent arcade machines.

So, to summarize. If you are interested in playing your favorite arcade machines from your youth, M2003P can be a pretty good option. Likely, 99% of the arcade machines that you want to play are included and working in M2003P. On the other hand, users that prefer to be up-to-date, are interested not only in arcade machines but also in consoles, computers and the like, and want to use the Software Lists, can use Vanilla MAME. The number of machines in Vanilla MAME is vast compared with M2003P, however most of these machines are non-arcade such as mechanical machines, pinball, computers, consoles, etc., or clone machines.
Reply
Hi Wintermute, Happy New Year.
With MAME 0.227 just released, I installed AML 0.10.0 on Kodi 18.9.  AML gave this error when trying to parse mameinfo.dat 0.227:
python:
2020-12-31 21:33:27.084 T:5564  NOTICE: AML INFO : mame_load_MameInfo_DAT() Parsing "C:\EMU\MAME\ini\mameinfo.dat"
2020-12-31 21:33:27.559 T:5564   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.UnicodeDecodeError'>
                                            Error Contents: 'utf8' codec can't decode byte 0xc5 in position 2351: invalid continuation byte
                                            Traceback (most recent call last):
                                              File "C:\Users\HTPC\AppData\Roaming\Kodi\addons\plugin.program.AML\addon.py", line 38, in <module>
                                                resources.main.run_plugin(sys.argv)
                                              File "C:\Users\HTPC\AppData\Roaming\Kodi\addons\plugin.program.AML\resources\main.py", line 436, in run_plugin
                                                command_context_setup_plugin(cfg)
                                              File "C:\Users\HTPC\AppData\Roaming\Kodi\addons\plugin.program.AML\resources\main.py", line 5925, in command_context_setup_plugin
                                                db_dic = mame_build_MAME_main_database(cfg, st_dic)
                                              File "C:\Users\HTPC\AppData\Roaming\Kodi\addons\plugin.program.AML\resources\mame.py", line 4174, in mame_build_MAME_main_database
                                                (mameinfo_idx_dic, mameinfo_dic, mameinfo_version) = mame_load_MameInfo_DAT(MAMEINFO_FN.getPath())
                                              File "C:\Users\HTPC\AppData\Roaming\Kodi\addons\plugin.program.AML\resources\mame.py", line 1181, in mame_load_MameInfo_DAT
                                                for file_line in f:
                                              File "C:\Program Files (x86)\Kodi\system\python\Lib\codecs.py", line 314, in decode
                                                (result, consumed) = self._buffer_decode(data, self.errors, final)
                                            UnicodeDecodeError: 'utf8' codec can't decode byte 0xc5 in position 2351: invalid continuation byte
                                            -->End of Python script error report<--
I got around the error by changing line 1177 of mame.py from this:
python:
f = io.open(filename, 'rt', encoding = 'utf-8')
to this:
python:
f = io.open(filename, 'rt', encoding = 'windows-1252')
MASH's mameinfo.dat and INI files are in Windows-1252 encoding, although only mameinfo.dat is causing an error.
After resolving the error, Setup completed successfully and AML 0.10.0 launches ROMs with MAME 0.227 just fine.
Reply
@Dax9 Happy New Year and thanks for reporting. I will have a look ASAP and also contact the MAMEINFO author and ask him to change the encoding to UFT-8 for future releases.
Reply
@Dax9 The author of Mameinfo.dat has changed the encoding to UTF-8 so please revert your patch if you use mameinfo.dat 0.228 and up.
Reply
New AML release 0.10.1

AML release 0.10.1 is a minor bugfix release. See the changelog below for the details.

Upgrading AML from a previous release

The changes in 0.10.1 are small compared with 0.10.0 so it should work perfectly. If you experience any problem follow these steps.

1) Download AML from the Kodi addon repository. AML is under the categories Program add-ons and Game add-ons, Game providers. It is likely that Kodi will download the latest release of the addon automatically.

2) Before generating the database and scanning your assets, go to Utilities and select Check AML configuration. Make sure every feature you want is OK and green, otherwise check the AML addon settings because some settings may have changed.

3) Open the context menu in any root window row, select Setup Plugin and then All in one (Extract, Build, Scan, Filters). This will extract MAME XML, rebuild all the databases, rescan ZIPs/CHDs/assets, and rebuild the custom filters.

4) In the root window, go to Utilities and select Check/Update all Favourite objects. This will bring your MAME Favourites, MAME Most Played, etc. up to date with the last version of the database. After this step completes AML is ready for use and totally updated.

5) If AML crashes after an upgrade it is very likely that the databases are not up to date. Make sure you execute steps 2) to 4) before submitting a bug report.

Advanced MAME Launcher | version 0.10.1 | 04 February 2021

Code:
FIX      [CORE] Fix crash when building Controls (Expanded) catalog in MAME 2003 Plus mode.
         Also fixed Controls (Expanded) and Controls (Compact) catalogues for empty controls.

FIX      [CORE] Fix SKIN_SHOW_* launchers.

FIX      [CORE] Fix bug in mame_update_MAME_MostPlay_objects().
Reply
@Wintermute0110 There has been a recent change to the MAME history.dat file and has been moved to xml type structure. For the time being it would seem that the history.dat format will still be generated and I can only assume that at some point in the future the move will be made to supporting only the xml format. The changes were made as of 0.227.

Thought I would make you aware, and maybe put in a feature request to support the new format. I am going to do some reading up on the changes to see if there is any help I can offer. I have linked below the orignally MAMEWorld forum topic for this item and linked the history.dat (now xml) for reference purposes.

History.Dat Main Page
MAMEWorld Entry
Reply
(2021-04-07, 03:23)Rychem28 Wrote: @Wintermute0110 There has been a recent change to the MAME history.dat file and has been moved to xml type structure. For the time being it would seem that the history.dat format will still be generated and I can only assume that at some point in the future the move will be made to supporting only the xml format. The changes were made as of 0.227.

Thought I would make you aware, and maybe put in a feature request to support the new format. I am going to do some reading up on the changes to see if there is any help I can offer. I have linked below the orignally MAMEWorld forum topic for this item and linked the history.dat (now xml) for reference purposes.

History.Dat Main Page
MAMEWorld Entry

Hi @Rychem28, I am aware of the change and plan to support it ASAP.
Reply
Hello, I just installed AML and I get an error:
Mame control file not found. You need to build the Mame main database using the context menu "Setup addon in the AML main window"
But I don't find such option there.
EDIT:
I found it, but I get an error:
in db_safe_edit raise TypeError('Field {} not in dictionary'.format(field)) TypeError: Field scan_machine_archives_ROM_total not in dictionary -->End of Python script error report<--:
in db_safe_edit
                                                raise TypeError('Field {} not in dictionary'.format(field))
                                            TypeError: Field scan_machine_archives_ROM_total not in dictionary
                                            -->End of Python script error report<--
EDIT2:
I had retroarch's mame and there I get the error. I changed to vanila mame and now I manage to start building the main database(some other options still give an error).
Reply
(2021-06-06, 10:38)dancaer69 Wrote: Hello, I just installed AML and I get an error:
Mame control file not found. You need to build the Mame main database using the context menu "Setup addon in the AML main window"
But I don't find such option there.
EDIT:
I found it, but I get an error:
in db_safe_edit raise TypeError('Field {} not in dictionary'.format(field)) TypeError: Field scan_machine_archives_ROM_total not in dictionary -->End of Python script error report<--:
in db_safe_edit
                                                raise TypeError('Field {} not in dictionary'.format(field))
                                            TypeError: Field scan_machine_archives_ROM_total not in dictionary
                                            -->End of Python script error report<--
EDIT2:
I had retroarch's mame and there I get the error. I changed to vanila mame and now I manage to start building the main database(some other options still give an error).

I need a full debug log to track the problem. Please follow the instructions in the first posts.
Reply
New AML beta

I have included History.xml support in AML. Code in Github now is beta version of 1.0.2 for Kodi Matrix and 0.10.2 for Kodi Krypton/Leia. Please test if you can and if nobody reports major issues I will upload to the Kodi repository in a few days.
Reply
I tested AML 1.0.2 alpha in Kodi 19.1.  I experienced no crashes, but it seems there are issues with parsing history.xml.  For example, no history entries are found for the Atari arcade games Asteroids Deluxe and Millipede, and the wrong entries are shown for Centipede and Missile Command.  Also, the ROM menu has Play listed twice.

On the positive side, the All in One setup completes much quicker than AML 0.10.1 in Kodi 18.9.  Thanks Wintermute for the continued development and support.
Reply
(2021-06-11, 05:43)Dax9 Wrote: I tested AML 1.0.2 alpha in Kodi 19.1.  I experienced no crashes, but it seems there are issues with parsing history.xml.  For example, no history entries are found for the Atari arcade games Asteroids Deluxe and Millipede, and the wrong entries are shown for Centipede and Missile Command.  Also, the ROM menu has Play listed twice.

On the positive side, the All in One setup completes much quicker than AML 0.10.1 in Kodi 18.9.  Thanks Wintermute for the continued development and support.

OK, I have also observed the discrepancies between history.dat and history.xml. I need to further investigate this and will take me some time. Currently AML picks the XML file if present, but if not it will use the DAT file so you can keep using the DAT as a workaround.

It makes sense that Pyhton 3 is much faster than Python 2. The Python 2 interpreter was under maintenance mode for many years, getting only security bug fixes. On the other hand, Python 3 got many performance improvements over the years.
Reply
Hola ayer puse desde el repositorio oficial kodi, aml.
Cuando lo abro y abro cualquier opción me sale un mensaje que tengo que configurar la raíz de aml.
He estado mirando en el foro y no encuentro como configurarlo.
No tengo pc, pero que se pueda hacer desde el mismo kodi en mi tvbox
Reply
  • 1
  • 10
  • 11
  • 12
  • 13(current)
  • 14

Logout Mark Read Team Forum Stats Members Help
Advanced MAME Launcher - MAME frontend for Kodi2