•   
  • 1
  • 8
  • 9
  • 10
  • 11
  • 12(current)
Beta Advanced MAME Launcher - MAME frontend for Kodi
Hi Wintermute, thanks for the details and continued development of AML.  I look forward to trying the new version.  And although it'll be a while before I move to Kodi Matrix, I'm glad to know AML will work with it too.
Reply
(2020-08-12, 05:42)Dax9 Wrote: Hi Wintermute, thanks for the details and continued development of AML.  I look forward to trying the new version.  And although it'll be a while before I move to Kodi Matrix, I'm glad to know AML will work with it too.

You are welcomed, I enjoying very much coding AML. I will also wait before moving to Matrix, however I wanted to see how difficult it was to do the port and also learn in the process to port AEL. Compared with AML, the code of AEL is more complicated because it has more and diverse features so I wanted to port AML first. Interestingly, in terms of number of lines of code both AML and AEL are quite similar, however AML code structure is simpler but due to the huge amount of MAME each function in AML is bigger, but AEL has more functions... kind of Laugh

The new version does not have many new features, just more filtering options and some other minor improvements. If you have any good ideas you want to see in AML let me know.
Reply
(2020-07-17, 13:03)Wintermute0110 Wrote: [..]
@ciax I just had an idea that could be interesting to you. Adding an menu "MAME machines (Have ROMs)" will increase the databases fat, building the DBs will take longer, etc... My idea is to extend the current MAME filtering engine to include variables by the ROM scanner, so you can create a custom filter to show the ROMs you have. You can have a look at the current filter options here. The current optional filters are:
Code:
<Options>NoClones, NoCoin, NoCoinLess, NoROMs, NoCHDs, NoSamples</Options>
<Options>NoMature, NoBIOS, NoMechanical, NoImperfect, NoNonworking</Options>

All these filters refer to the MAME XML. For example, NoClones removes clone machines, NoROMs removes machines that have ROMs definitions in the MAME XML. I can create new filtering options, for example NoMissingROMs, NoMissingCHDs, NoMissingSamples, to exclude machines with missing ROM ZIPs, CHDs and Samples, resp. What do you think?
Oh, sorry for my late reply - had no time to further test or "play" with your great addon. Maybe you also added the new filter options in your new release(?). It will take some time to get back to topic, but i will comment any problems i'll find on the way .. thanks a lot for the new (for me) useful filtering options!
Reply
(2020-09-08, 13:47)ciax Wrote: Oh, sorry for my late reply - had no time to further test or "play" with your great addon. Maybe you also added the new filter options in your new release(?). It will take some time to get back to topic, but i will comment any problems i'll find on the way .. thanks a lot for the new (for me) useful filtering options!

No worries. The feature is already implemented. Currently I am working on the Matrix Python 3 version of the addon. The conversion from P2 to P3 was easy but I decided to do some code refactoring to make the code cleaner. Also I have optimized the MAME ROM scanner a bit. Finally, complete support for Retroarch/Retroplayer MAME 2003 Plus. Stay tuned for the new version.
Reply
added:
        machine = machines[m_name]
        cloneof = machines_render[m_name]['cloneof']
        romof   = machine['romof']

to line 4741 of mame.py.

else the _get_CHD_location function crashed cause the above variable where only filled within the if above not in general scope and as such
this scope hadn't any.

Not for developer he will understand:
If u used merge for chd set all was fine, this was cause of this function a problem for split only.
Reply
After above and my readin finally worked, i started to add all ini files. And i crashed again, 1st i tried to solve it myself in the code, but didn't managed to do so.
Cause it stayed unclear where the bug came from. Then i started the leave out file 1 by 1 approach. In the end it turned out that the 0.224 version of Series.ini by Progretto snaps contains something which makes it crash. After a short inspection it turned out this file is in ansi encoding, so i saved it to utf-8, also this didn't solved it.
I don't know what's wrong in series.ini, nor that if your next to come python3 version also snaps on it. But my guess is that Series.ini somewhere does something the python 2 code the least does not expect.
But after leaving our series.ini, all went finally fine Smile
Reply
@KillerSkunk I have fixed the problem when building a CHD Split set, thanks for reported. I always use merged CHD set.

Also, I solved the problem with series.ini. Yes, the problem is that the file has non-ASCII characters BUT it is not UTF-8 encoded. To solve this problem (and other potential problems) I redesigned all the AML IO system. If you like the details, I do not use built-in open() function anymore, only io.open(), they are very similar but not exactly the same and io.open() is P2/P3 compatible.

Currently the Python 3 version of AML is pretty finished, now I am porting the code refactor to Python 2. I want to release AML ASAP, I will update this thread when a beta-quality code is ready so you can test the development version, either Kodi Matrix P3 or Kodi Leia P2. Both version will be exactly the same, the only differences are the minimal changes required for AML to work in P3. Note that due to the code refactoring small regressions have been introduced, I'm trying to test as much as possible and get rid of all the regressions.
Reply
Announcing AML 1.0.0 for Kodi Matrix and 0.10.0 for Kodi Krypton/Leia beta

The new version of AML have reached beta state. The code in Github is quite stable and I ask users to download and try this beta. The main feature of the new version is complete support for MAME 2003 Plus. Also, a lot of minor things have been polished here and there.

AML release 1.0.0 is a pure Python 3 version of the addon for Kodi Matrix. AML release 0.10.0 is for Kodi Krypton/Leia. Both versions are identical feature wise, the only difference is the Python 3 conversion. Because of this conversion I have done a massive code refactoring mainly to clean the source code and make it more elegant. This refactoring may have introduced some regressions. After this point, new features will be developed exclusively for Kodi Matrix (series 1.0.x) and AML for Kodi Krypton/Leia will only receive bug fixes. To view a detailed list of changes have a look at the changelog.

To install the beta version go to Github and follow the instructions there at the bottom of the page. Use master branch for Kodi Matrix and python2 branch for Kodi Krypton/Leia.
Reply
@Wintermute0110 I have started trialing the python3 version of AML and so far so good. I did run into one issue when trying to save the MAME render cache in that the plugin kept giving issues that the files could not be written. I am going to try again to see if it was something I was doing on my end, but otherwise the addon is working as normal.

Cheers
Reply
So I found one issue with the alpha version. MAME Roms run correctly not issues there, however I can't get the software lists to run any ROMS. I get the following error below. The plugin in no longer pops up the selection box for selecting the machine you want to run the ROM on. I am going to try rebuilding everything again to make sure my machine lists were generated correctly. I am running MAME 0.225, just in case this is of relevance.

2020-10-19 21:50:48.146 T:16762    INFO <general>: AML INFO : Launching SL machine "sms" (ROM "alexhitw")
2020-10-19 21:50:48.146 T:16762    INFO <general>: AML INFO : run_SL_machine() Launching SL machine (location = STANDARD) ...
2020-10-19 21:50:48.146 T:16762    INFO <general>: AML INFO : run_SL_machine() SL_name     "sms"
2020-10-19 21:50:48.146 T:16762    INFO <general>: AML INFO : run_SL_machine() SL_ROM_name "alexhitw"
2020-10-19 21:50:48.146 T:16762    INFO <general>: AML INFO : run_SL_machine() SL ROM is in Standard Location
2020-10-19 21:50:48.148 T:16762 WARNING <general>: xbmc.translatePath is deprecated and might be removed in future kodi versions. Please use xbmcvfs.translatePath instead.
2020-10-19 21:50:48.148 T:16762    INFO <general>: AML INFO : run_SL_machine() SL ROMs JSON "/home/laptopcas/.kodi/userdata/addon_data/plugin.program.AML.dev/SoftwareLists/sms_items.json"
2020-10-19 21:50:48.151 T:16762 WARNING <general>: xbmc.translatePath is deprecated and might be removed in future kodi versions. Please use xbmcvfs.translatePath instead.
2020-10-19 21:50:48.153 T:16762    INFO <general>: AML INFO : run_SL_machine() launch_machine_name = ""
2020-10-19 21:50:48.153 T:16762    INFO <general>: AML INFO : run_SL_machine() launch_machine_desc = ""
2020-10-19 21:50:48.307 T:16762    INFO <general>: AML INFO : run_SL_machine() User selecting SL run machine ...
2020-10-19 21:50:48.326 T:16762   ERROR <general>: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                                    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                                   Error Type: <class 'TypeError'>
                                                   Error Contents: '<' not supported between instances of 'dict' and 'dict'
                                                   Traceback (most recent call last):
                                                     File "/home/laptopcas/.kodi/addons/plugin.program.AML.dev/addon.py", line 36, in <module>
                                                       resources.main.run_plugin(sys.argv)
                                                     File "/home/laptopcas/.kodi/addons/plugin.program.AML.dev/resources/main.py", line 427, in run_plugin
                                                       run_SL_machine(cfg, SL_name, ROM_name, location)
                                                     File "/home/laptopcas/.kodi/addons/plugin.program.AML.dev/resources/main.py", line 7675, in run_SL_machine
                                                       for SL_machine in sorted(SL_machine_list):
                                                   TypeError: '<' not supported between instances of 'dict' and 'dict'
                                                   -->End of Python script error report<--
                                                   
2020-10-19 21:50:48.421 T:16762    INFO <general>: Python interpreter stopped
Reply
So I have done some more sleuthing with the "TypeError: '<' not supported between instances of 'dict' and 'dict'" error and it would seem that Python3 handles lists/dicts differently than Python2. The machines can now be selected by replacing line 7675 (        for SL_machine in sorted(SL_machine_list):with:
        for SL_machine in sorted(SL_machine_list, key=lambda x: (x['machine'])):

I still have another error prior to launching the rom but the list of machines now displays and I can select the machine I am looking for.

Cheers,
Reply
Figured out the other error, Line 7832 and 7834 need the cfg placed in the brackets after the calls:

    run_before_execution() to run_before_execution(cfg)
    run_after_execution() to run_after_execution(cfg)

With the above 2 changes software list roms are running. I will continue to play around.

Thanks
Reply
@Rychem28 Thanks, well caught. Those kind of bugs/regressions are the ones introduced by the code refactoring. I will fix in Github ASAP.
Reply
  •   
  • 1
  • 8
  • 9
  • 10
  • 11
  • 12(current)



Logout Mark Read Team Forum Stats Members Help
Advanced MAME Launcher - MAME frontend for Kodi2
This forum uses Lukasz Tkacz MyBB addons.