Development of module-script generator for lr-mess, lr-mame and mame standalone
-
@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-microprocessorThis is probably why it's slower.
-
@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. -
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-cartI added speech to the "**********-ti99_4a-32kb-superxb-keyb_nat-flop1" loader, so it will become :
************-ti99_4a-32kb-speech-superxb-keyb_nat-flop1Edit :
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. -
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. -
@folly No problem.
Just let me know and I'll pull it down.
-
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
-
To make it working we really need to explore how this machine works.
I learned a lot of the ti99_4a and how it works.In basic or extended basic (superxb) we can list what files are on the disk with
call dir(1)
.
Loading files in basicold DSK1.<FILENAME>
.
Typingrun
will run the file.In the editor/assembler (editass) we can type 5 and type the filename
DSK1.<FILENAME>
.
The the game will start.Some disk images are only properly read when using the correct floppy type.
I used both 525dd and 525qd successfully.
You also have to set the correct DIP switches in the GUI. (40 track / 80 track)
This is an example of loading "Attack of the Creepers" (dsk file is 254.1kb using 525qd / 80 track/2ms) :
-
@folly I'll be working with it tonight, but I can see you've done an amazing job on it.
This is more than any other emulator does. You're really able to work with it as if you're actually adding in modules and cart to run basic.
I assume it was done this way originally because the original system had no DOS system, much like a C64 or Tandy, not like MS-DOS based PC's that you loaded DOS onto a HD. Back then.. no HD's. LOL.
This is good. I'm sure there are a TON of games that will run now, just have to figure out what they need to run. I've pulled down many and just committed to them not working. I'll be messing around with all these options to try and get them to work now.
-
@folly I also found with your script, that you can use it per game name as well. What I mean by this, is there are some compilation disks out there that are driven by a menu. Menu loads, select a game.
Your script actually allows you to use the same file as many times as you want and just rename it to the games that are on it. So if there is defender, Poker, Adventure.. whatever listed on the disk. The one file can be copied and just renamed Defender.bin, Poker.bin or whatever it's listed as. If it's a game in basic, drop the .bin as you know. Then select the correct loader.
What this means is you don't have to go out into the internet and spend HOURS looking for a specific title if it's part of a compilation disk. Your script will read it and load it as long as you name the file correctly as listed on the file directory of the disk. Not sure I've seen that before.
-
I read you post several times it's a very nice feature.
It looks like you described it thoroughly, though I can't put my finger on it on how/what you did exactly.
Can you describe the example more precise, with some steps ?
Or did you do this with an autoboot loader ?
Then I understand.I probably should add some help pages, for all the features, in the script.
-
Forgot to tell.
lr-mess seems to have an issue with using
shift
typing thedot
manually.So the example of "Attack of the Creepers", given earlier, is done with mame.
Not really sure how this can be fixed with lr-mess.
-
@folly Yes, I noticed this. I hadn't said anything because I wasn't sure it was me or Mess. So now you confirmed it. It's not just the ".", it's a few keys in that area. I wonder if there is a region setting for the keyboard? Not sure it made a difference with the Ti99, but it is odd that some of the lower right keys are not working.
I remapped the "." to the "-" as I don't see the need for the "-" just yet.
-
@folly
Ok, I kinda figured my explanation would require further explanation.. lol.I was working with a zipped game file Varloc (1985)(Tandy)[26-3291].dsk When it loaded, it gave me a menu to choose from a list of games on the disk. I took it a step further, broke out of the menu program and with DIR , it produced a list showing all kinds of other games on the disk other than Varloc. berserk.bin, digdug.bin, defender.bin... etc.
I renamed the Varloc (1985)(Tandy)[26-3291].zip to berserk.bin.zip and ran it with the new CoCo3 script for Flop1. It worked. It pulled the Berserk game from the disk and ran it. Then I renamed the zip file to digdug.bin.zip, that worked. I've never seen an emulator do this before, where it pulls a game title from a list of games on an .dsk image. Ususally it will only run the main title it was dumped from, which in this case, should have been the menu... or Varloc.
At any rate, it might just be me, but I thought it was worth mentioning. So if a .dsk file like this has 10 games stored on it, you could literally rename the .zip file to each game and now have all 10 from 1 .zip file.
-
@folly I've been trying all sorts of different disk files tonight. With success and some failures... it's definately a challenge to figure out which disk to choose per game, but many do work once you get it right.
I find many seem to work good with lr-run-mess (superxb 525qd). Some examples from TOSEC:
13 Extended Basic Games (198x)(-)(PD)
D-Station (1988)(John Phillips)[with source code]
Draw Poker (1981)(Texas Instruments)[PHD 5037][req. PHM 3026]
Night Mission (1985)(Millers Graphics)
Old Dark Caves 2 (1986)(Donn Granros)You example for Attack of the Creepers worked for me as well using the same method. So that's good as well.
The bigger questions is... how do you know what version of Mess to choose to run the game. And, in the Editor/Assembler, how did you get the file name to run the game? I tried call dir(1), but it just gives me an error. I though "call" was a command for voice anyway.
Definitely challenging to get working. The .rpk files all run good. I haven't tried the zipped .bin files, but they worked for me before anyway.
Does this support .ctg files?
-
@jamrom2 said in Development of module-script generator for lr-mess and mame standalone:
Does this support .ctg files?
No, don't think so, it's ti99sim specific.
-
@jamrom2 said in Development of module-script generator for lr-mess and mame standalone:
@folly
Ok, I kinda figured my explanation would require further explanation.. lol.I was working with a zipped game file Varloc (1985)(Tandy)[26-3291].dsk When it loaded, it gave me a menu to choose from a list of games on the disk. I took it a step further, broke out of the menu program and with DIR , it produced a list showing all kinds of other games on the disk other than Varloc. berserk.bin, digdug.bin, defender.bin... etc.
I renamed the Varloc (1985)(Tandy)[26-3291].zip to berserk.bin.zip and ran it with the new CoCo3 script for Flop1. It worked. It pulled the Berserk game from the disk and ran it. Then I renamed the zip file to digdug.bin.zip, that worked. I've never seen an emulator do this before, where it pulls a game title from a list of games on an .dsk image. Ususally it will only run the main title it was dumped from, which in this case, should have been the menu... or Varloc.
At any rate, it might just be me, but I thought it was worth mentioning. So if a .dsk file like this has 10 games stored on it, you could literally rename the .zip file to each game and now have all 10 from 1 .zip file.
Now I understand,
I will try it If I have the time ;-) -
@jamrom2 said in Development of module-script generator for lr-mess and mame standalone:
@folly Yes, I noticed this. I hadn't said anything because I wasn't sure it was me or Mess. So now you confirmed it. It's not just the ".", it's a few keys in that area. I wonder if there is a region setting for the keyboard? Not sure it made a difference with the Ti99, but it is odd that some of the lower right keys are not working.
I remapped the "." to the "-" as I don't see the need for the "-" just yet.
Ok, this solution worked for me too.
To be able to use theshift
too I had to set the keyboard on emulated instead of natural.
Perhaps I have to remove the "keyboard natural mode", what do you think ? -
@folly I think that's a good call. I find I have to switch back and forth. But I don't see how to delete on emulated. Works on Natural. I'll just have to re-map the key to something else.
Works better in Emulated anyway.
-
Tested keyboard emulated mode in both mame and lr-mess.
Indeed it works far better.
Improvements with both :
- We are able to use the ti99 function keys, which do not work in natural mode.
- we also reduce the amount of text in our loaders a our and our loader names
Improvements in lr-mess :
- We are able to use
capslock
andshift
and thedot
key when reassigned
I will remove the
-nat
option in all lines. -
I found that there is still a huge development around the ti99.
A Richard Gilbertson is still working on a combination :
- Rich eXtended Basic
- Rich Editor Assembler
There is a 2021 version in rpk and they are working on a 2022 version.
I think it could replace allsuperxb
andeditass
loaders.It looks like this :
You should probably e-mail me so I can give you some more information.
(you can find my e-mail by clicking on my user information)
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.