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.3m 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

      @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
                • jamrom2J
                  jamrom2 @Folly
                  last edited by

                  @folly Looks great.

                  So I copied the script as usual, and cleared out all the other version I loaded, deleted the emulators.cfg from ti99_4a.

                  Where is this one located once I load the new script? In the long list under "T" as the other set was and which one is it? I see Ti99/4a Home Computer US. Do I just load that one?

                  Maybe as each of these are worked on, you can move them into the same area as the Dragon and Tandy are just for ease of finding it.

                  Once I get it loaded, I'll play around with it for sure.

                  Thanks!

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

                    @jamrom2

                    Hi,

                    When installing it from next selections it doesn't matter, ti99_4a will always be installed the same way.
                    Installing the regular basename loaders and the regular loaders with the media option (if the system supports them).

                    regular_resized.png

                    However, installing it with the extra options this is placed in Systems: with extra options because the install procedure is different.

                    extras_resized.png

                    You will find it in the blue selected part.

                    extra_options_resized.png

                    I didn't make any auto-boot loader lines, so in section 3 you will not find anything.

                    When starting the game, then you can select something like this in the dialog on start.
                    on_start_resized.png

                    I agree it's a long, not obvious, name and in the blue section you can't really see if you picked the correct one.
                    Beneath "Emulator:" you can view the whole line and see if you picked the correct one.

                    The disadvantage is that the more options we add the longer the name becomes.
                    I would like it to be shorter and perhaps I can use the install description name for that.
                    It is still something that could be improved upon but not directly in the priority list.

                    On the other hand it's nice to see all the options in the name from a learning perspective.
                    Then people can basically see what the options are called in mame/lr-mess.

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

                      @folly Well, after playing with this for a long time...

                      It works, but nothing I tried in .dsk format worked with it. The only file I got to run was some silly music file called 5 foot 2.

                      Everything else I ran comes back with either an * I/O Error 52 or it crashes with a SYNTAX line error.

                      So I don't know if this was successful for me. It does work though. And I noticed I can only run the "extended basic" option (lr-mess-system-ti99_4a_exbasic...). The other choice that you have selected in that screenshot gives me the unrecognized file black screen error.

                      I downloaded every variant of the Ti99/4a BOIS from the usual archive, so I'm thinking I have enough of them.

                      Not sure why I'm getting all these errors in the games.
                      I tried:
                      Defender
                      Virus Attack
                      Astro Blitz
                      Attack of the Creepers

                      Again, they will run after I type in the OLD DSK1.GAME command... in fact Astro Blitz gets to the menu where you choose between the two games, but when it starts to load the actual game file, it crashes.

                      Are you planning on adding cartridge support to this as well?

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

                        @jamrom2

                        For me it also something new, so I will try some more.

                        I did add cartridge support.
                        This is what I added :

                        • new basename loaders for lr-mess which will load only cartridges because there is only a 1 hash file for ti99 with cartridges (use .zip with .bin inside from ti99_cart)
                        • a new ti99 loader that adds the speech sythesizer and sets the keyboard into natural mode and load cartridges (use .rpk files because it's a media loader not a basename)
                        • a new ti99 loader that adds extended basic and a floppy drive and sets the keyboard into natural mode and load dsk files
                        1 Reply Last reply Reply Quote 0
                        • F
                          Folly @jamrom2
                          last edited by Folly

                          @jamrom2

                          I updated the installer from :
                          TI-99/4A Home Computer + exbasic + keyb_nat + flop1
                          to :
                          TI-99/4A Home Computer (32Kb) + superxb + keyb_nat + flop1

                          I have tested quite some disks and many work. (but not all)
                          Many games require the "super extended basic" so I used that.
                          superxb seems the newest extended basic and seems to be backwards compatible too.
                          (superxb.zip)(place the file from the ti99_cart to BIOS files in /home/pi/RetroPie/BIOS/mame)
                          Most games require 32kb memory, so I added that too.
                          Most games, that I tried, load automatically now.

                          I tried these too :
                          Defender (I have no disk file but the cart file works )
                          Virus Attack (disk auto boots but has an error, can't load a file)
                          Astro Blitz (disk auto boots and works)
                          Attack of the Creepers (disk auto boots but has an error, can't load a file)

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

                            @folly sound good. I'll pull down the new script and try it later. Just have to assume some of the games are just bad ROM or Disk dumps.

                            Looking forward to the changes. I'll let you know how it goes

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

                              @jamrom2

                              I just made a huge improvement.

                              All loader descriptions are shortened and added with better descriptions, especially for the loader lines with "extra's" and "autoboot".
                              I manually added these description addons in the CSV structure of the script.

                              For the normal media lines I removed the -system part.

                              I think the loader descriptions look much better now.

                              Just like earlier, I advise to remove the specific emulators.cfg before installing that system again, so the emulators.cfg will contain the latest loader lines.

                              I did some tests and it seems there are no issues. (fingers crossed)

                              Here is the commit :
                              https://github.com/FollyMaddy/RetroPie-Share/commit/6c6aa49ba9a9ffd2e211698997c299349d436b11

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

                                @folly

                                I don't know what to make of this... I had some success and some failures I don't understand.

                                Loaded new script and looks good in menus and emulator choices. Easy to read now. I have all the new options you created.

                                alpiner.zip (3 zipped .bin files) and barrage.zip (zipped .bin)

                                • "lr-mess-ti99_4a-basename" --> fails with all grey screen. missing BIOS?
                                • "mame-ti99_4a-basename" --> works but performance is disastrous.
                                  Seems like no matter what zipped .bin files I try, I get the same result.

                                4a_flyer (zipped .rpk file)

                                • "lr-mess-ti99_4a-speech-keyb_nat-cart" - fails with all black initialization error
                                • "mame-ti99_4a-speech-keyb_nat-cart" - runs, but again... un-playable slide show

                                as_shamus.rpk (unzipped .rpk file)

                                • "lr-mess-ti99_4a-speech-keyb_nat-cart" - WORKS - need to add ".rpk and .RPK" to es_systems.cfg to display in ES gamelists

                                13 Extended Basic Games (198x)(-)(PD) - From TOSEC batch - (zipped .dsk file)

                                • "lr-mess-ti99_4a-32kb-superxb-keyb_nat-flop1" - WORKS and autoloads. Performance sucks, game crashed anyway.

                                The following zipped .dsk files all worked - performance is definitely a problem. For such an old system, you would imagine it would run like the Dragon, Tandy, C64 or A800.

                                Micro Pinball II (1984)(Software Specialities)[req. PHM 3026]
                                Night Mission (1985)(Millers Graphics)
                                Old Dark Caves 2 (1986)(Donn Granros)
                                Astroblitz (1988)(-) & TI-Mazogz (1988)(B. Waldmann)(PD)

                                All unzipped .rpk files seem like they work. Enough do that I stopped testing.

                                We're definately on the right track. The zipped .bin files are the only ones that didn't work for me at all in the new script using the lr-mess side. If it can be done from the script, it needs to add in the missing file names to the es_systems.cfg... and maybe remove many of the formats that won't be used. Seems to be a lot of them...again... if that's possible.

                                F 4 Replies 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:

                                  I will do some tests.

                                  For such an old system, you would imagine it would run like the Dragon, Tandy, C64 or A800.

                                  The TMS9900 was ahead of it's time, you might want to read these links :
                                  https://en.wikipedia.org/wiki/Texas_Instruments_TMS9900
                                  https://spectrum.ieee.org/the-inside-story-of-texas-instruments-biggest-blunder-the-tms9900-microprocessor

                                  This is probably why it's slower.

                                  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:

                                    Thanks for testing !

                                    alpiner.zip (3 zipped .bin files) and barrage.zip (zipped .bin)

                                    • "lr-mess-ti99_4a-basename" --> fails with all grey screen. missing BIOS?
                                    • "mame-ti99_4a-basename" --> works but performance is disastrous.
                                      Seems like no matter what zipped .bin files I try, I get the same result.

                                    Tested both.
                                    For me both worked with both loaders.
                                    My files are in : /home/pi/RetroPie/roms/ti99_4a/ti99_cart
                                    You should try again and check your runcommand.log if it doesn't work.

                                    4a_flyer (zipped .rpk file)

                                    • "lr-mess-ti99_4a-speech-keyb_nat-cart" - fails with all black initialization error
                                    • "mame-ti99_4a-speech-keyb_nat-cart" - runs, but again... un-playable slide show

                                    I don't have that file so I can't test.
                                    The zipped .bin file works for me with the basename loaders.

                                    • "lr-mess-ti99_4a-speech-keyb_nat-cart" - WORKS - need to add ".rpk and .RPK" to es_systems.cfg to display in ES gamelists

                                    I had a look at the issue that the .rpk extension isn't in the es_systems.cfg.
                                    I discovered that when installing the multiple extra lines, extension are overwritten when installing a different one (from the same system).
                                    To fix it I have to add all available extensions to the extra CSV lines.

                                    While testing for this issue another issue has risen :
                                    When extra media as slot-devices are added like a floppy or a harddrive the extension can be added like the fix above.
                                    But the regular install will not see them because these extensions aren't in the default.
                                    This means that the extra slot-device extensions are lost when doing a regular install after an install with extra predefined devices.
                                    After I have fixed the script the only solution to get all available extensions into the es_systems.cfg is to do the extra installs after the regular install.

                                    All unzipped .rpk files seem like they work. Enough do that I stopped testing.

                                    Works for me too.

                                    13 Extended Basic Games (198x)(-)(PD) - From TOSEC batch - (zipped .dsk file)

                                    • "lr-mess-ti99_4a-32kb-superxb-keyb_nat-flop1" - WORKS and autoloads. Performance sucks, game crashed anyway.

                                    Here it works, I noticed some lag too.
                                    These games are probably written in basic, so I think the are also slow on real hardware.

                                    maybe remove many of the formats that won't be used. Seems to be a lot of them...again... if that's possible.

                                    For the regular loaders the script just takes over the extension from the mame data base.
                                    When I started writing the script I added a filter for removing some unnecessary media.
                                    That way a lot of unnecessary extensions were also filtered out.
                                    Though I had to remove some filters because otherwise some systems could not be installed.
                                    I think, for the best compatibility the most extensions have to be added though.
                                    Otherwise I am restricting users too much in what the want to try out, you see.
                                    So I think it's better to keep it this way.

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

                                      @jamrom2

                                      I changed the lr-mess loaders that use the runmess.sh script to distinguish these from loaders and future loaders that don't use the runmess script.
                                      The will look like this :
                                      lr-run_mess-********

                                      I added all possible extensions to all the extra and autoboot install lines.
                                      This should fix the issue with missing extensions in es_systems.cfg.
                                      For systems with added media slot-devices such as ti99_4a and apple2gs, for example, the extra and autoboot installers have to be installed after the regular install to make sure all required extensions are added in the es_systems.cfg.
                                      (I probably should add it in the help for these installers)

                                      I added 32kb to the "**********-ti99_4a-speech-keyb_nat-cart" loader, so it will become :
                                      ************-ti99_4a-32kb-speech-keyb_nat-cart

                                      I added speech to the "**********-ti99_4a-32kb-superxb-keyb_nat-flop1" loader, so it will become :
                                      ************-ti99_4a-32kb-speech-superxb-keyb_nat-flop1

                                      Edit :
                                      Oops I made some mistakes yesterday with above install options.
                                      I used slot1 but that slot doesn't exist ;-)
                                      I can't use (rm) in loader names otherwise I get duplicates in emulators.cfg.
                                      I fixed it today !

                                      I added the first lr-mess direct loaders for media.
                                      They seem to work very good and savestate names are also ok with these media loaders
                                      Added some HELP and improved the menu a bit.

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

                                        @jamrom2

                                        I am doing many changes and came across some issues I am trying to fix.
                                        I advise you to wait a while until I think it's stable.

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

                                          @folly No problem.

                                          Just let me know and I'll pull it down.

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

                                            @jamrom2

                                            It looks like it's all stable now.
                                            I would suggest you try this one (this file will always be the same) :
                                            https://github.com/FollyMaddy/RetroPie-Share/blob/7017185fb4756559de9ce31f7f22afdf24f09111/00-workdir-00/backup/add-mamedev-systems-0238_test.sh
                                            Meanwhile I will work towards new updates.

                                            I have changed, added and improved a lot of things when starting to work on this test script :

                                            • improve menu text and help text
                                            • add plain lr-mess loaders that don't use the run_mess.sh script
                                              • reorganise the options in the commands so the savestate files don't have the command options in the filename (only issue is a space in the beginning of the filename)
                                            • change the name of the lr-mess loaders that do use the run_mess.sh script and add -autoframeskip to the name
                                            • prevent downloading the current version run_mess.sh script every time a system is installed
                                              • it will download the first time when a system is installed, next time it will skip this version.
                                              • this will help to prevent saving a corrupt run_mess.sh script when there is a bad internet connection
                                                • a corrupted run_mess.sh script could be the reason why the loader doesn't work
                                              • if the database and run_mess.sh script are both stored locally then the script can be used offline
                                            • shorten the names of the all the loaders with extra options so we can find better what we need
                                            • remove the options in the filename of the generated basename/cmd module-scripts
                                            • add config directories to all the loaders
                                              • normally a mame directory was created in the roms/<system> directory now the mame and lr-mess configs are stored in /opt/retropie/configs/<system>/mame (or lr-mess) (here are also the game-specific configs)
                                            • add both rompaths BIOS/mame and roms/<system> to all the loaders
                                              • now we don't need to add , for example, "extended basic roms" to the BIOS/mame anymore if the are in the correct path of the roms/<system> directory (for the ti99_4a this will mean that the BIOS ti99_4a.7z is placed and found in BIOS/mame and that the extended bios superxb is placed and found in roms/ti99_4a/ti99_cart, so the superxb doesn't have to be placed in BIOS/mame anymore)
                                            • add extra predefined install options for ti99_4a
                                              • loaders with different floppy drive types
                                              • loaders with editass (editor/assember) needed to load PD/c99/asm software like "Attack of the Creepers" or asm games from "tigameshelf"
                                            • remove an obsolete function
                                            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.