RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Development of module-script generator for lr-mess, lr-mame and mame standalone

    Scheduled Pinned Locked Moved Ideas and Development
    developmentlr-messmamelr-mamescripts
    2.2k Posts 36 Posters 6.1m Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      Folly @jamrom2
      last edited by Folly

      @jamrom2

      Did you use : mame-ti99_4a-basename ?
      The /dev/shm/runcommand.info should look like this :
      ti99_4a
      mame-ti99_4a-basename
      /home/pi/RetroPie/roms/ti99_4a/ti99_cart/baseball.zip
      /opt/retropie/emulators/mame/mame -rompath /home/pi/RetroPie/BIOS/mame;/home/pi/RetroPie/roms/ti99_4a -v -c ti99_4a "baseball"

      You will see that there are 2 rompaths added in the runcommand. (last line)
      In the first rompath it will find the BIOS file.
      In the second rompath it will find the game.
      (Though, I have baseball.zip in/home/pi/RetroPie/roms/ti99_4a/ti99_cart/ which also seems to works, for this system)

      You can also find the runcommand in the beginning of the /dev/shm/runcommand.log

      If you don't have the same line, to load your game, then you have to update my script to the latest and install ti99_4a again.

      If you have above it should load.
      But I came a-cross an issue with this game.
      Schermafbeelding 2022-01-15 om 09.40.10.png

      Here is some info on the MBX Expansion module :
      http://www.mainbyte.com/ti99/hardware/mbx/mbx.html
      (I don't know how to get it working, yet)

      Try breakth.zip or buckrog.zip, these should work.

      jamrom2J 1 Reply Last reply Reply Quote 0
      • jamrom2J
        jamrom2 @Folly
        last edited by

        @folly No,I don't have specific version on my default emulator choices.

        I have:

        lr-mess-basename and variants
        lr-mess-system-ti99_4a-cart and cass1&1
        mame-basenane and variants
        mame-system-ti99_4a-cart and variants.

        I pulled these from your script in the systems list. Is there one I missed because I don't have what you have.

        F 2 Replies Last reply Reply Quote 0
        • F
          Folly @jamrom2
          last edited by Folly

          @jamrom2

          You probably use an older version.
          The new mame basename ones seem to be missing.
          I added these options on 9 december 2021.
          I think you should download the latest script and install ti99_4a again.
          After that you should have the same choices as I have, stored in /opt/configs/ti99_4a/emulators.cfg :

          mame-ti99_4a-basename-autoframeskip = "/opt/retropie/emulators/mame/mame -rompath /home/pi/RetroPie/BIOS/mame\;/home/pi/RetroPie/roms/ti99_4a -v -c -autoframeskip ti99_4a %BASENAME%"
          mame-ti99_4a-basename-frameskip_10 = "/opt/retropie/emulators/mame/mame -rompath /home/pi/RetroPie/BIOS/mame\;/home/pi/RetroPie/roms/ti99_4a -v -c -frameskip 10 ti99_4a %BASENAME%"
          mame-ti99_4a-basename = "/opt/retropie/emulators/mame/mame -rompath /home/pi/RetroPie/BIOS/mame\;/home/pi/RetroPie/roms/ti99_4a -v -c ti99_4a %BASENAME%"
          

          BTW.
          It's advisable to rename or remove your old emulators.cfg before updating.
          That way you have no old lines in there anymore.

          1 Reply Last reply Reply Quote 1
          • F
            Folly @jamrom2
            last edited by

            @jamrom2

            This is a cool game (barrage) :
            Schermafbeelding 2022-01-15 om 18.14.23.png

            jamrom2J 1 Reply Last reply Reply Quote 1
            • jamrom2J
              jamrom2 @Folly
              last edited by jamrom2

              @folly yup, that was it. I didn't know the script had been updated. working now...

              But how do you break out of it. Buy doing the usual "key-press of desperation" I figured out:

              8 - restart the game
              9 - stops game and put you make to game menu
              "+ "- brings you back to TI menu

              Is there a file I can set key-codes, or is that in retroarch.cfg?

              It's definitely great to have running, but just needs a little access tweaking. Usually Mame gives you "tab" for key assignments, this is just running the games. I had to reboot my set to get out of the game.

              Would be great to have the usual lr-mess/mame options with overlays and shaders. Some really fun games were on the Ti99/4a.

              F 1 Reply Last reply Reply Quote 0
              • F
                Folly @jamrom2
                last edited by Folly

                @jamrom2

                Indeed the basename lines do not have the option -ui_active.
                I detected that too and had some trouble with it when using and apple keyboard.

                For now, you can use the scroll-lock key to enable or disable the GUI.
                I think it's better to add the option in the future so both non-basename and basename lines will act the same.

                jamrom2J 1 Reply Last reply Reply Quote 0
                • jamrom2J
                  jamrom2 @Folly
                  last edited by

                  @folly is there a file for setting inputs? I don't have "scroll-lock" on my Rii Mini i8+ BT keyboard.

                  I had to do the same for the Dos Games. The hot key to turn on the keyboard was set to "scroll lock" so I re-assigned it to my "page up" key.

                  Unfortunately even though this little keyboard works great, it is missing a few of the usual keys that aren't used on a normal sized keyboard. Those keys are normally what these extra hot key commands are set to.

                  If I can re-assign, I'm good. If not, I need to come up with something else, or dump the system because I can't break out of the game shell.

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    Folly @jamrom2
                    last edited by Folly

                    @jamrom2

                    I have the same problem sometimes when using a small keyboard or using my macpro.
                    Sometimes you can use the fn key together with F13 or something like that.
                    But indeed that's sometimes quite problematic.

                    So I added and fixed a few things :

                    https://github.com/FollyMaddy/RetroPie-Share/commit/51a47f0166f67404cac8765e51122564f623c793

                    So if you update the script and install ti99_4a the tab and esc keys will work by default.

                    jamrom2J 1 Reply Last reply Reply Quote 0
                    • jamrom2J
                      jamrom2 @Folly
                      last edited by

                      @folly Perfect. Works great. It's good to have this system up and usable.

                      Not sure what keeps it from using the lr-mess/mame side of the emulator, but if ever it comes a day when it does, it will definitely benefit from it. This system has a lot of nostalgia behind it, much like the Tandy CoCo does.

                      Great job!

                      F 1 Reply Last reply Reply Quote 0
                      • F
                        Folly @jamrom2
                        last edited by Folly

                        @jamrom2

                        Nice to hear it's working for you ​;-)

                        Well, the improvements are little steps and take a lot of time.
                        For mame and lr-mess I want to use the dirname solution we talked about earlier in this thread.

                        But the dirname solution cannot be applied directly to the lr-mess core.
                        lr-mess is just mame but without the arcade systems and it's a RetroArch core.

                        Here starts the trouble because the core is loaded by RetroArch.
                        RetroArch by itself accepts options to be added like loading a core, adding a save path or something else like verbose mode.
                        When we want to add options to the lr-mess-core, in a regular way, these options are recognised as a RetroArch options and not as lr-mess options.
                        There seems to be a way around this problem and the best way is to use double quotes around these lr-mess options.
                        But double quotes are neglected in the process.
                        So if we want to use this solution then probably another solution has to be added to the runcommand.sh.

                        Also adding multiple rompaths is troublesome because we have to use ; in this process.
                        In bash terms ; splits commands so sometimes we have to escape this character somehow with \.
                        I have tested the solutions but then the savepath for savestates is wrongly recognised by lr-mess.
                        So adding a savepath option to RetroArch can probably fix this problem.

                        You see there are a huge amount discovering has to be done to get lr-mess working the same as mame does.
                        My goal is to make a plain loaders for lr-mess that will function just like mame.
                        But it's a pain in the ass, if you know what I mean.

                        This is probably the reason why Valerino made the run_mess.sh script which my script still uses for the lr-mess media loaders.
                        That script is a .cmd creator which is loaded after creation so the game is loaded and then deleted again after exit.

                        jamrom2J 1 Reply Last reply Reply Quote 0
                        • jamrom2J
                          jamrom2 @Folly
                          last edited by

                          @folly Wow. I wasn't aware it was that complicated. Have you tried asking the Retroarch dev team if they can add in what you are looking for? It makes sense because at this point, MAME can support hundreds more emulators than when RetroArch was first designed.

                          I know to some save-states are critical, but many of these older games just didn't have that as an option anyway. A cart game is a cart game and didn't really save anything. If the cassette side of the emulator works, you saved to cassette anyway. So if that is working, it should cover saved games.

                          As for using MAME to run this. I'm seeing slow-downs on some games, and I've noticed I have no "UP" action on my controller. I tried to assign it via the MAME UI now that I have access, but it doesn't seem to want to open any of the lists once it's on the screen.. and wow, it's really slow.

                          Regardless, I'm sure over time all this will be sorted. Seems to be a need for it as these emulators become more available and more people use RetroPie. I've noticed there are a lot more people posting on the forum now, many with issues that I've never seen before and asking for help with emulators I've never heard of.

                          Keep plugging... we'll get there soon enough!

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            Folly @jamrom2
                            last edited by Folly

                            @jamrom2 said in Development of module-script generator for lr-mess and mame standalone:

                            As for using MAME to run this. I'm seeing slow-downs on some games, and I've noticed I have no "UP" action on my controller. I tried to assign it via the MAME UI now that I have access, but it doesn't seem to want to open any of the lists once it's on the screen.. and wow, it's really slow.

                            The RPI3b is sadly not that fast.
                            I can do some tests on my RPI3.
                            Which game does slow down that much ?
                            Have you tried using the loader with -frameskip 10 or -autoframeskip ?
                            With these solutions it should improve a bit.
                            Have you tried lowering the resolution in the launcher menu ?

                            2022-01-17-082609_800x600_scrot.png

                            jamrom2J 1 Reply Last reply Reply Quote 0
                            • F
                              Folly
                              last edited by Folly

                              @DTEAM

                              This is the first evolved and tested command that should work with the dirname solution without adding more code to the runcommand.sh

                              /opt/retropie/emulators/retroarch/bin/retroarch --config /opt/retropie/configs/apfm1000/retroarch.cfg -v -L /opt/retropie/libretrocores/lr-mess/mess_libretro.so 'mame apfm1000 -v -c -ui_active -rp /home/pi/RetroPie/BIOS/mame -swpath /home/pi/RetroPie/roms/apfm1000 -hash /opt/retropie/emulators/mame/hash pinball'
                              

                              or this (with the double-quotes normally added by %BASENAME% or the future %DIRNAME):

                              /opt/retropie/emulators/retroarch/bin/retroarch --config /opt/retropie/configs/apfm1000/retroarch.cfg -v -L /opt/retropie/libretrocores/lr-mess/mess_libretro.so 'mame apfm1000 -v -c -ui_active -rp /home/pi/RetroPie/BIOS/mame -swpath "/home/pi/RetroPie/roms/apfm1000" -hash /opt/retropie/emulators/mame/hash "pinball"'
                              

                              Major improvement is that I use single-quotes.
                              These single-quotes can be implemented directly in our script.
                              Next improvement is that I don't add 2 rompaths using ; or \;
                              (the disadvantage of this was that I had to use double-quotes in order to get it working so code had to be added to the runcommand.sh).
                              Now I use 2 options to add 2 paths : -rompath and -swpath.
                              (the advantage is that we can use single-quotes)
                              We are also able to add other options and the hashpath of mame standalone, for that matter.

                              We can probably use the -swpath option also for mame standalone.

                              1 Reply Last reply Reply Quote 0
                              • jamrom2J
                                jamrom2 @Folly
                                last edited by jamrom2

                                @folly

                                I'll try this and see if there is any positive effect.

                                I saw it on Pac-Man (atarisoft version) while other games seem fine. I've been going through the list of games that work and don't work. So I've seen it a few times, but I don't remember which other games.

                                I also want to see if it effects the GUI as well because right now, it's un-useable due to how it seems to drag on the Pi so much. As soon as I get in to the GUI, I can check my controller assignments and see why I'm missing "UP". All other buttons and directions work fine.

                                I was thinking of switching to a Pi4, but I'm so embedded in the build of my Pi3 that until I finish it, it doesn't make sense.

                                *** update***
                                Tried it with both frame-rate skips. Still unplayable, but better if using Autoframeskip. I checked all my settings for controls in Global and Local machine. Everything is set correctly, but I have no UP control in the game. Works fine in the GUI. Have no idea what could cause that.

                                F 2 Replies Last reply Reply Quote 0
                                • F
                                  Folly @jamrom2
                                  last edited by

                                  @jamrom2

                                  It's probably due to the fact that the game uses an other key for up.
                                  I think you have to find that key and then re-assign the up key or button to that key.

                                  jamrom2J 1 Reply Last reply Reply Quote 0
                                  • F Folly referenced this topic on
                                  • F Folly referenced this topic on
                                  • jamrom2J
                                    jamrom2 @Folly
                                    last edited by jamrom2

                                    @folly @folly hiya.

                                    Is there any way to beef-up the already present lr-mess-ti99 script valerino was working on?

                                    https://retropie.org.uk/forum/topic/25576/new-scriptmodules-lr-vice-xvic-gsplus-proper-lr-mess-integration/61

                                    I have it running. It's very good, but the performance is a mess. Total slide show. With the shaders active, I have it looking exactly as it does in the screen shot from the thread. Even with them off, the performance result is the same.

                                    This was the last dump he did that I loaded.
                                    https://github.com/valerino/RetroPie-Setup/blob/master/scriptmodules/libretrocores/lr-mess-ti99.sh

                                    F 2 Replies Last reply Reply Quote 0
                                    • F
                                      Folly @jamrom2
                                      last edited by Folly

                                      @jamrom2

                                      I think it's probably better to improve my script so the ti99 can be installed with the extra predefined options like the module-script of Valerino.

                                      I see that these options are added :
                                      -ioport peb -ioport:peb:slot3 speech -nat -joy

                                      Now some reverse engineering :

                                      adding -ioport peb only :
                                      Listing the slots will explain that it's a peripheral expansion box and that all slots available are empty, because no extra adaptor cards are added after the command.
                                      (found using this cmd : /opt/retropie/emulators/mame/mame -listslots ti99_4a)

                                      adding -ioport peb -ioport:peb:slot3 speech means that the peripheral expansion box is inserted and that a speech synthesizer adaptor card is inserted in slot3.
                                      Bios file ti99_speech.7z is needed for this.
                                      I think it's a text to speech card.
                                      (info can be found using the mame GUI or using this cmd : /opt/retropie/emulators/mame/mame -listslots ti99_4a -ioport peb)

                                      The above cmd will also give more options that can be added into a slot :
                                      32kmem TI-99 32KiB memory expansion card
                                      bwg SNUG BwG Floppy Controller
                                      ccdcc CorComp Disk Controller Card
                                      ccfdc CorComp Floppy Disk Controller Card Rev A
                                      ddcc1 Myarc Disk Controller Card
                                      forti FORTi Sound Card
                                      hfdc Myarc Hard and Floppy Disk Controller
                                      horizon Horizon 4000B RAMdisk
                                      hsgpl SNUG High-speed GPL card
                                      ide Nouspikel IDE interface card
                                      myarcmem Myarc Memory expansion card MEXP-1
                                      pcode TI-99 P-Code Card
                                      pgram PGRAM(+) memory card
                                      samsmem SuperAMS memory expansion card
                                      sidmaster SID Master 99
                                      speech TI-99 Speech synthesizer (on adapter card)
                                      tifdc TI-99 Standard DSSD Floppy Controller
                                      tirs232 TI-99 RS232/PIO interface
                                      usbsm Nouspikel USB/Smartmedia card
                                      whtscsi Western Horizon Technologies SCSI host adapt

                                      adding -nat:
                                      Using -nat will set the keyboard mode in the natural mode.
                                      (info can be found using the mame GUI)

                                      adding -joy:
                                      adding -joy will give no error but it looks like -joy is an old option, because adding it seems to make no difference as the twin joysticks are always added by default.
                                      (info can be found using the mame GUI)
                                      Listing the slots will explain that joy doesn't exist as a slot, but joyport does :

                                      joyport          mecmouse         TI-99 Mechatronics Mouse
                                                       twinjoy          TI-99/4(A) Twin Joysticks
                                      

                                      (found using this cmd : /opt/retropie/emulators/mame/mame -listslots ti99_4a)

                                      So the the correct options should be -joyport mecmouse or -joyport twinjoy but not needed as the twinjoy is added by default.

                                      It probably quite easy to add the ti99_4a with the extra predefined options into the script.

                                      Can you explain what difference you experience between my loader lines and the Valerino loader lines ?

                                      BTW:
                                      This is interesting, we will even be able to use floppy files or harddrive files :

                                      pi@raspberrypi:~ $ /opt/retropie/emulators/mame/mame -listmedia ti99_4a -ioport peb -ioport peb -ioport:peb:slot2 hfdc -ioport:peb:slot3 ide
                                      SYSTEM           MEDIA NAME       (brief)    IMAGE FILE EXTENSIONS SUPPORTED
                                      ---------------- --------------------------- -------------------------------
                                      .
                                      ti99_4a          floppydisk1      (flop1)    .mfi  .dfi  .hfe  .mfm  .td0  .imd  .d77  .d88  .1dd  .cqm  .cqi  .dsk  .dtk  
                                      ti99_4a          floppydisk2      (flop2)    .mfi  .dfi  .hfe  .mfm  .td0  .imd  .d77  .d88  .1dd  .cqm  .cqi  .dsk  .dtk  
                                      ti99_4a          harddisk         (hard)     .chd  .hd   .hdv  .2mg  .hdi 
                                      

                                      Here we can find a good wiki page :
                                      https://www.ninerpedia.org/wiki/MAME_TI_emulation_usage

                                      jamrom2J 1 Reply Last reply Reply Quote 0
                                      • jamrom2J
                                        jamrom2 @Folly
                                        last edited by

                                        @folly I

                                        @folly said in Development of module-script generator for lr-mess and mame standalone:

                                        Can you explain what difference you experience between my loader lines and the Valerino loader lines ?

                                        For the most part, it's all visual from the Valerino script. Because it uses the Libretro side, you get the usual bennies with it. HOWEVER... that's it. As far as I can tell, there are no other benefits simply because the performance is horrendous, and it only supports .RPK files...which many I've tested out of the offered library do not work.

                                        Yours comes with the benefit of expansion as you are doing now, and will see more of if you can get the periferials working like the MBX module and the floppy drives. Because it's in the MAME environment, it does not allow for the use of overlays and shaders from inside the core, but I'm wondering if you can use simular files like you do with the arcade side of MAME to get them to work.

                                        The performance is better, but still not as good as the native Ti99sim. Voice needs to be supported as well and Valerino's did... but again, it was unplayable on a Pi3b+. I don't know if that will be the deciding factor of this whole thing, I was hoping it could still work well with less horsepower requirements much like the Apple, Dragon and Tandy do.

                                        Looking forward to your next update...

                                        F 2 Replies Last reply Reply Quote 0
                                        • F
                                          Folly @jamrom2
                                          last edited by Folly

                                          @jamrom2

                                          I have added a test version of my script in the backup directory :
                                          https://github.com/FollyMaddy/RetroPie-Share/blob/main/00-workdir-00/backup/add-mamedev-systems-0238_test.sh
                                          (just right-click on "raw" and select "save link as")

                                          I have done these commits on the file :
                                          https://github.com/FollyMaddy/RetroPie-Share/commits/main/00-workdir-00/backup/add-mamedev-systems-0238_test.sh

                                          The plain lr-mess basename loaders are now identical as the mame basename loaders.
                                          For systems/drivers that use media it will not generate this loader anymore : lr-mess-basename
                                          Only issue with lr-mess is that the save directories aren't recognised properly.
                                          I fixed this by adding these paths as RetroArch options.
                                          So now we can also make savestate files and loading also works.
                                          Only problem now is, the savestate files will still have strange names because lr-mess will add the lr-mess options into the savestate filenames.

                                          I added ti99_4a with the predefined options for :
                                          -ioport peb -ioport:peb:slot3 speech -nat
                                          These loader lines will also contain -autoframeskip and -ui_active.
                                          (so TAB works for the GUI and you will have "auto frame skipping" by default)

                                          I added ti99_4a with the predefined options for :
                                          exbasic -ioport peb -ioport peb -ioport:peb:slot2 hfdc with flop1 support.
                                          With this we will be able to load programs from floppydisk.

                                          Btw.
                                          Shaders will take a lot of resources, try not using them or find a shader that uses less resources.

                                          Let me know how it goes.

                                          Be aware of the fact that this is probably a temporary test-script because I will try to work towards loaders that contain our %DIRNAME% solution.

                                          1 Reply Last reply Reply Quote 0
                                          • F
                                            Folly @jamrom2
                                            last edited by Folly

                                            @jamrom2

                                            Loading the first game from floppy (selecting 2) (commands are upper-case):

                                            BIOS files in /home/pi/RetroPie/BIOS/mame :
                                            exbasic.zip (from ti99_cart)
                                            ti99_hfdc.7z

                                            resized_resized_2022-01-25-160938_1600x900_scrot.png resized_resized_2022-01-25-161023_1600x900_scrot.png resized_resized_2022-01-25-161043_1600x900_scrot.png resized_resized_2022-01-25-161055_1600x900_scrot.png

                                            jamrom2J 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.