Development of module-script generator for lr-mess, lr-mame and mame standalone
-
Seemed like a good idea to separate c64gs from the c64 install and just install it as c64gs :
https://github.com/FollyMaddy/RetroPie-Share/commit/46d5966e9de009bae61faea51ddc99199d8ecd00Created also a separate theme as pull request for @DTEAM :
https://github.com/DTEAM-1/cygnus-blue-flames/pull/11 -
@folly this is all amazing, thank you! I am confused though about 2 things:
-
What are you putting the commands into? It looks like command line stuff you'd enter straight into linux but I doubt that's what you're doing here? Sorry, I'm quite an amateur here.
-
What I don't really understand about the c64gs is I wouldn't think it would use any of the c64_cart roms, because it seems like the games made for it were not standard c64 cartridges, right? I think the games were modified from the c64 versions to not require the keyboard. Unless somehow the emulator modifies the cartridge roms, I don't really get how that would work.
FYI, the Zemmix list you came up with seems right, though I do wonder if there were Korean-released MSX cartridges before/separate from the Zemmix that might be included but not actually work properly (if they required the keyboard). But it is a good start and I could test the games. The Zuul list doesn't match up so probably you are right that something is iffy there.
-
-
@bbilford83 said in Development of module-script generator for lr-mess, lr-mame and mame standalone:
@folly this is all amazing, thank you! I am confused though about 2 things:
- What are you putting the commands into? It looks like command line stuff you'd enter straight into linux but I doubt that's what you're doing here? Sorry, I'm quite an amateur here.
Correct, no doubts, I am putting the commands into the CLI/Terminal of linux.
It can also be done on the RetroPie image as it is just linux-lite without desktop environment with using the RetroPie bash scripts on top of it.
You can enter the CLI by :- exiting
emulationstation
with F4 - opening a new CLI with ctrl+alt+F2 (or F3 etc) (going back with ctrl+alt+F1)
- or connecting with ssh to the raspberry pi
I use Debian11 with desktop environment with using the RetroPie bash scripts on top of it.
So I open the CLI with ease.- What I don't really understand about the c64gs is I wouldn't think it would use any of the c64_cart roms, because it seems like the games made for it were not standard c64 cartridges, right? I think the games were modified from the c64 versions to not require the keyboard. Unless somehow the emulator modifies the cartridge roms, I don't really get how that would work.
Here are some wiki's :
https://en.wikipedia.org/wiki/Commodore_64_Games_System
https://videogameconsolelibrary.com/pg90-64gs.htm#page=reviewsThey explain that the hardware is quite similar.
Although the c64gs will only accept a cartridge and has no keyboard.
That is why some games had to be converted from cassette, and other conversions had to be done because of the keyboard not being there.
It also explains that it was not a popular sale but its creation did help bring Commodore users (particularly in Europe) more cartridge titles to enjoy.
So the cartridges are compatible with the regular c64.
Seems some games can only be played when using a Cheetah Annihilator joystick with 2 separate buttons.
I tested Robocop2 and was not able to jump, perhaps the reason.
Amazing, 60.000 not sold !, very curious what the did with them.FYI, the Zemmix list you came up with seems right, though I do wonder if there were Korean-released MSX cartridges before/separate from the Zemmix that might be included but not actually work properly (if they required the keyboard). But it is a good start and I could test the games. The Zuul list doesn't match up so probably you are right that something is iffy there.
I think it's a pretty good list.
-
@Folly Thanks for all the info! I watched a video where a guy said (though who knows where he got the info) that the ones they didn't sell commodore cannibalized to turn back into normal c64s, and that's why they're so expensive/rarer. I will try out what you suggest - I do use putty for ssh so it should be possible. If I do create a gamelist for either c64gs or Zemmix I will share them to the google drive so others don't have to do the figuring out of which games are appropriate from scratch.
-
Aha, great info.
I have used lists only for categorising multiple drivers into one catagory, not for sharing parts of some softwarelists.
I will think about it how a proper list can be implemented one way or another.
Really not sure yet ;-)What do you think, should I separate the zemmix types from the msx ones ?
If you manage to do some CLI commands then I would suggest to try some simple things first like
ls
(the msdosdir
equivalent) orcd
.
Or useecho
orcat
for starters.
After that you can try to "pipe" with|
exchanging output from one command to another.
Look on the internet, there are many tutorials. -
@Folly Thanks much!!
-
@Folly sorry for the delay in responding. For the Zemmix ones, I think whether it makes sense probably depends on whether the Korean subset actually works if run through that emulator. I was on solo parenting duty this weekend so I haven't had much time to mess around with it but sometime in the next week I will definitely test out both that and the c64gs sets!
-
No problem.
In the meantime I will have a look at the joystick settings of the c64gs if I can manage to add slot options to add "joybstr".
Because I found that with robocop2 you have to select "c64 joystick" in the game with the default joystick settings of mame.
In order to use the "c64gs joystick", with which you can use 3 buttons,
you have to use the other slot joystick setting in mame but you will only be able to use that after a reset and sadly the setting it's not being saved.Reminds me when playing oilswell, switching joysticks is also a problem.
Many games start with joy2 instead of joy1 but for some games it's the other way around.
Perhaps the solution is to add 2 joysticks by default so that joysticks can be configured by game with the game-specific runcommands.Edit 1 :
Able to implement extra options for default driver installs.
However adding 2 joysticks confuses robocop2, 1 could probably do in port 2 but other games still need in port1.
Will look at it tomorrow again.Edit 2 :
I added stuff in my script version 260.03 / 260.04 so I have the possibility to add options when a default driver is installed.
As first test I added the 3 button joystick on port2 for c64gs.
For robocob2 this will work directly and hope it will for more standard c64gs games. -
Both versions 260.03 and 260.04 didn't correctly configure mame after a binary install, so skip these versions.
In version 260.05 this problem should be fixed now.
-
@Folly lr-mame fails to build on my pi5 using your script. I am overclocking to 2.8Ghz so I'll try again at stock. Edit: I tried with stock settings and building also failed. https://pastebin.com/N6eJEZTS
-
@Folly I am finally giving Zemmix a shot now but so far no luck - I think it is acting like I have no bios but as far as I can tell the system should use standard MSX 2 bios, right?
Edit: I actually installed lr-fmsx to see if that would work and it does (though obviously it's not really playing it "as a Zemmix"). But I think that means probably something is wrong with the install, or at least something wrong with how I installed it? I must have OK bios.
Edit 2: Actually, a lot of games don't work, some not at all (blue screen) and some loading to awful noises or no controls working. I think it is maybe because it is emulating as a regular MSX2? So I think I have to try to get it to work via mess/your script if I want it to work properly :).
Is it maybe that the bios has to be in a zip named something different? I tried all the options I could think of but nothing fixed it.
-
@Darksavior said in Development of module-script generator for lr-mess, lr-mame and mame standalone:
@Folly lr-mame fails to build on my pi5 using your script. I am overclocking to 2.8Ghz so I'll try again at stock. Edit: I tried with stock settings and building also failed. https://pastebin.com/N6eJEZTS
My script is not the problem it links to the stock lr-mame module-script.
Looking at your log I would expect that the swap space is set too low in the module-script.
How much memory does your pi5 have, 4GB ?
Try to increase the swap space, in the lr-mame module-script, from 4096 to 8192.
Or if you really want to be safe to 12288.
Make sure you have much more space free on your SD or HD.If above doesn't work then it's best to open up a new topic for it.
Edit :
I am testing on my Apple M1 with VMware and Bookworm installed, using :- VM with 4 cpu cores and 4096M ram using 4096 swap : failed
- VM with 4 cpu cores and 4096M ram using 8192 swap : failed
- VM with 4 cpu cores and 4096M ram using 12288 swap : my vm doesn't have enough space for this.
- VM with 3 cpu cores and 4096M ram using 8192 swap : ok
So you have 2 options :
- try to compile with 12288 swap and make sure you have enough space on your SD
- try to compile with 8192 swap and edit
make
tomake -j3
I will make my binary available here :
If you like to test and use my binary then do the following.
Extract the content and copy it to the libretrocores directory as super user / root.
Then use the retropie_packages script to install dependancies and configure lr-mame like this :cd RetroPie-Setup sudo ./retropie_packages.sh lr-mame depends sudo ./retropie_packages.sh lr-mame configure
-
You probably installed the Zemmix cpg120, right.
You need the cpg120.zip bios file.
Read this post for all drivers it's the same procedure. -
@Folly Thank you! Trying this now. I was just renaming the regular msx bios to that, didn't realize it would be something different though of course that makes sense.
That worked!!! Now even the boot screen is in Korean so it is clearly loading as a Zemmix :). Thank you.
Only weird thing though, first time game I loaded, 1942, I can select between one or two players and hit the main button to pick, but then once I am in game my controller does nothing and I just die over and over. I thought maybe I needed to "turn off" the keyboard somehow, but everything I changed in "keyboard selection" doesn't fix it (emulated vs. "natural" keyboard, "root" enabled or disabled.... though I have no idea what that means).
Do you have any idea what I should be doing in the mame menu to fix this? FYI, the "input assignments" show [root] and then all the keyboard buttons, then "MSX Digital Joystick [rootgen1:joystick]" and "MSX Digital Joystick[rootgen2:joystick]." The first joystick is mapped properly by default, so I don't know what I'm doing wrong or how to disable the keyboard taking over, if that's even what's happening...
Edit: I see in "slot devices" I can change "gen1" from "MSX Digital Joystick" to a few other options but I doubt they are right. One was an FM Towns marty pad, for example. Unless Maybe the Zemmix controller should be registered by mame as something else?
Edit 2: I tested a few other "slot device" options but they all did the same thing... I can always go up and down and select the number of players, and then in game I can't do anything. Weird.
-
I have the same problem when selecting the 2 player option.
Then the controls of player 1 don't function correctly.
If I remove joystick 2 from the slot options and reset the computer and select player 2 again my first joystick works ok.Somehow I had that same problem with the c64gs when adding 2 joysticks to the slots, read here edit 1.
Could be an issue of mame.Don't think I can fix this with the regular mame settings.
Will have a look later. -
@Folly Thank you ! I doubt I'm going to be playing this 2-player, so that's fine :).
Except I just tried it after reading your older posts and I'm not totally sure I understand. I got it to work by disabling the first player joystick and leaving the second one on. But it doesn't remember that the next time I load. I tried now loading with the game_specific_cart choice, did the same thing, but it still didn't remember my selection (to turn off joystick 1) when I reboot into the game from emulationstation.
Maybe I need to update your script if it sounds like you changed something, and then it will work with the game_specific thing?
Edit: I updated the script to current and re-installed cpg120, but when I change the slot devices it still isn't remembering it even when I load in game_specific_cart.
I can see it is creating a game-specific config file in a subfolder in configs/msx2/lr-mess/, and in that folder it says this:
<mameconfig version="10">
<system name="cpg120">
<image_directories>
<device instance="cartridge1" directory="" />
<device instance="cartridge2" directory="/home/pi/RetroPie/roms/msx2/1942k.zip/" />
<device instance="cassette" directory="" />
</image_directories>
<input>
<keyboard tag=":" enabled="1" />
</input>
</system>
</mameconfig>Not sure why it's adding the keyboard tag but I would've thought that's where it would've saved the removed joystick setting. If it's just not fixable no worries but I think if I read your earlier post right you did think it might be working with game_specific loading?
-
@bbilford83 said in Development of module-script generator for lr-mess, lr-mame and mame standalone:
@Folly Thank you ! I doubt I'm going to be playing this 2-player, so that's fine :).
Ok, then just use the player 1 joystick and select 1 player then it should work fine.
Should also work when 2 joysticks are attached.Except I just tried it after reading your older posts and I'm not totally sure I understand.
Well, it's not exactly the same because with c64 the second joystick has mostly priority over the first.
With msx it's the other way around.I got it to work by disabling the first player joystick and leaving the second one on. But it doesn't remember that the next time I load. I tried now loading with the game_specific_cart choice, did the same thing, but it still didn't remember my selection (to turn off joystick 1) when I reboot into the game from emulationstation.
Maybe I need to update your script if it sounds like you changed something, and then it will work with the game_specific thing?
Didn't change much of the stuff for game-specific in the script, so in that perspective an update will not work.
Seems Zemmix will load with 2 joysticks by default.
I see now that slot options are not saved in a config file, sadly no way around that.
I can however try and do the same as I did with c64gs just adding 1 joystick to the slot options when installing cpg120.Not sure why it's adding the keyboard tag but I would've thought that's where it would've saved the removed joystick setting.
You fiddled with the keyboard settings that is why something has been saved.
I you want a clean start then you can just delete the config as mame will make a default new one. -
@Folly said in Development of module-script generator for lr-mess, lr-mame and mame standalone:
Didn't change much of the stuff for game-specific in the script, so in that perspective an update will not work.
Seems Zemmix will load with 2 joysticks by default.
I see now that slot options are not saved in a config file, sadly no way around that.
I can however try and do the same as I did with c64gs just adding 1 joystick to the slot options when installing cpg120.I think I understand now, thank you. So there's nothing I can do to "save" that setting now, but eventually you can create commandline options that can be selected from the runcommand menu that will load it with either the first or the second joystick selected?
Just to be clear, I think msx is also prioritizing the second controller by default. If you disable 2 and leave 1 on, nothing works. If you disable 1 and leave 2 on, it does work. At least for the only game so far I tested that needs only one plugged in for some reason (1942).
Edit: I see now what you did in c64gs, the "-joy2 joybstr" after each command line. Obviously this wouldn't fix the issue for the world but I understand how to use that command, except I don't know how to tell it to leave the joy1 or joy2 unassigned/blank. Is it like "joy-2 --" or something similar?
Not sure why it's adding the keyboard tag but I would've thought that's where it would've saved the removed joystick setting.
You fiddled with the keyboard settings that is why something has been saved.
Sorry I wasn't clear, I understand that's why it changed, I just didn't get why it would change that but not the slot devices.
-
One other quick update you might find interesting @Folly, I am pretty sure the list you created by limiting to Korean games for the two msx_cart systems will include a few games at least that don't work for Zemmix - probably they were made for MSX in Korea before the Zemmix was released. One game I have tested so far - Antarctic Adventure - asks you to hit a button 1 or 2 on the keyboard and also asks if you want to play with a joystick or keyboard. So from what I read I am pretty sure it couldn't have originally been produced for the Zemmix.
-
@bbilford83 said in Development of module-script generator for lr-mess, lr-mame and mame standalone:
Edit: I see now what you did in c64gs, the "-joy2 joybstr" after each command line. Obviously this wouldn't fix the issue for the world but I understand how to use that command, except I don't know how to tell it to leave the joy1 or joy2 unassigned/blank. Is it like "joy-2 --" or something similar?
Should be doable for the zemmix too.
I have no idea yet how I would unassigned a joystick, we will have to experiment.
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.