COS 3.0 Emulator Config Help Needed

Help and guidance on all things regarding classic computer and console emulation via Commodore OS.
Post Reply
User avatar
LeoNigro
Site Admin
Posts: 326
pinterest Kuchnie na Wymiar Warszawa
Joined: Mon Aug 14, 2023 1:29 pm
Contact:

COS 3.0 Emulator Config Help Needed

Post by LeoNigro »

Hi Everyone,

We're getting really close to the release of Commodore OS 3 and I'm rushing to get some of the more nice-to-have things in for launch.
I am busy with a few things simultaneously, but the thing getting the most time right now is a new alternate Universal ROM Emulation launcher that goes beyond the Linux system file associations. As a default the existing COS2 scripts for RunCommodore will run as is until the Universal ROM Emulation Launcher is ready. It might take a few updates to get things right. I've now automated a system for more frequent updates.

Emulation will ultimately be launched via the LOAD command. e.g. LOAD AmigaFile.adf or LOAD C64File.D64.
Of course it will do the usual process or better of mapping multiple disks and I hope to make it even process zip files.

It should work out the correct emulator to run via both the extension and a hint within the folder path,
e.g LOAD /usr/share/commodoreos/system/Commodore/C64/ADiskFile.d64 will see "64" in the path, and not confuse it with the same d64 files for any of the other commodore machines.
I know the VIC-20 has some more stringent demands regarding cartridge memory while I'll probably have to get to in an update.

The ROM launcher should be able to execute absolutely any emulator, not just the Commodore ones, and so I have created a config file (below).
Any suggestions or help in working out all the file associations in this thread for all the below emulators would be appreciated.

Here is a list of the emulators included in Commodore OS 3.0, so you can see I have my work cut out for me.
Of course some of the emulators like Mednaffe and Ares etc and whatever lies beneath them, can perform emulation for heaps of other systems not listed. You will still need to hunt down and include system ROMs for some of these emulators for obvious reasons.
Commodore Emulators
Commodore Emulators
CommodoreEmulators.jpg (21.88 KiB) Viewed 43871 times
Non Commodore Emulators
Non Commodore Emulators
Emulators.jpg (75.77 KiB) Viewed 43871 times
Mednaffe Emulators
Mednaffe Emulators
MednaffeEmulators.jpg (34.03 KiB) Viewed 43871 times
I am now going to include the Emulation.cfg file contents that will be read to determine the emulation and display options to the user.

Code: Select all

Emu1Name=Amiga Floppies
Emu1Filetypes=DMS,ADF
Emu1Hint=500,1000,2000,3000,1200,4000,AMIGA
REM1Command=fs-uae --floppy-drive-0="$FILE1" --floppy-drive-1="$FILE2" --floppy-drive-2="$FILE3" --floppy-drive-3="$FILE4" --fullscreen=1 --kickstart_file="$KICKSTART" --kickstart_ext_file="$KICKSTARTEXT" --amiga-model="$MODEL" &> /dev/null
Emu1Command=fs-uae --floppy-drive-0="$FILE1" --floppy-drive-1="$FILE2" --floppy-drive-2="$FILE3" --floppy-drive-3="$FILE4" --fullscreen=1 --kickstart_file="amiga-os-310-a1200.rom" --kickstart_ext_file="" --amiga-model="A1200" &> /dev/null
Emu1Print1=**** Commodore AMIGA Emulator Instructions ****
Emu1Print2=Press ALT + F to toggle fullscreen and window mode.
Emu1Print3=Press ALT + Q to exit.
Emu1Print4=Press ALT + R to reboot emulation.
Emu1Print5=
Emu1Print6=LOAD "$FILE1"
Emu1Print7=SEARCHING FOR $FILE1
Emu1Print8=LOADING
Emu1Print9=ATTACHING DISK/s $FILE1 $FILE2 $FILE3 $FILE4
Emu1Print10=READY
Emu1Print11=RUN

Emu3Name=Amiga Hard Drive
Emu3Filetypes=HDF
Emu3Hint=500,1000,2000,3000,1200,4000,AMIGA
Rem3Command=fs-uae --hard-drive-0="$FILE1" --fullscreen=1 --kickstart_file="$KICKSTART" --kickstart_ext_file="$KICKSTARTEXT" --amiga-model="$MODEL" &> /dev/null
Emu3Command=fs-uae --hard-drive-0="$FILE1" --fullscreen=1 --kickstart_file="amiga-os-310-a1200.rom" --kickstart_ext_file="" --amiga-model="A1200" &> /dev/null
Emu3Print1=**** Commodore AMIGA Emulator Instructions ****
Emu3Print2=Press ALT + F to toggle fullscreen and window mode.
Emu3Print3=Press ALT + Q to exit.
Emu3Print4=Press ALT + R to reboot emulation.
Emu3Print5=
Emu3Print6=LOAD "$FILE1"
Emu3Print7=SEARCHING FOR $FILE1
Emu3Print8=LOADING
Emu3Print9=FOUND HARD DISK FILE $FILE1
Emu3Print10=READY
Emu3Print11=RUN

Emu4Name=C64 Floppies
Emu4Filetypes=D64,G41,G64,LNX
Emu4Hint=64
Emu4Command=x64sc -fullscreen -8 "$FILE1" -9 "$FILE2" -10 "$FILE3" -autostart "$FILE1" > /dev/null
Emu4Print1=**** Commodore 64 Emulator Instructions ****
Emu4Print2=Press ALT+Q to exit emulator.
Emu4Print3=Press ALT+D to exit fullscreen mode.
Emu4Print4=Press ALT+J to exit switch joystick ports.
Emu4Print5=
Emu4Print6=LOAD \"$FILE1\"
Emu4Print7=SEARCHING FOR $FILE1
Emu4Print8=LOADING
Emu4Print9=ATTACHING $FILE1 $FILE2 $FILE3
Emu4Print10=READY
Emu4Print11=RUN

Emu5Name=C64 Tapes
Emu5Filetypes=T64,PRG,TAP
Emu5Hint=64
Emu5Command=x64sc -fullscreen "$FILE1"  
Emu5Print1=**** Commodore 64 Emulator Instructions ****
Emu5Print2=Press ALT+Q to exit emulator.
Emu5Print3=Press ALT+D to exit fullscreen mode.
Emu5Print4=Press ALT+J to exit switch joystick ports.
Emu5Print5=
Emu5Print6=LOAD "$FILE1"
Emu5Print7=SEARCHING FOR $FILE1
Emu5Print8=LOADING
Emu5Print9=ATTACHING $FILE1
Emu5Print10=READY
Emu5Print11=RUN

Emu6Name=C64 Cartridges
Emu6Filetypes=CRT
Emu6Hint=64
Emu6Command=x64sc -fullscreen -cartcrt "$FILE1" &> /dev/null
Emu6Print1=**** Commodore 64 Emulator Instructions ****
Emu6Print2=Press ALT+Q to exit emulator.
Emu6Print3=Press ALT+D to exit fullscreen mode.
Emu6Print4=Press ALT+J to exit switch joystick ports.
Emu6Print5=
Emu6Print6=LOAD "$FILE1"
Emu6Print7=SEARCHING FOR $FILE1
Emu6Print8=LOADING
Emu6Print9=FOUND $FILE1
Emu6Print10=READY
Emu6Print11=RUN

Emu7Name=C16/Plus4 Disks
Emu7Filetypes=D64
Emu7Hint=16,PLUS4
Emu7Command=xplus4 -fullscreen -8 "$FILE1" -9 "$FILE2" -10 "$FILE3" -autostart "$FILE1" &> /dev/null
Emu7Print1=**** Commodore 16/Plus4 Emulator Instructions ****
Emu7Print2=Press ALT+Q to exit emulator.
Emu7Print3=Press ALT+D to exit fullscreen mode.
Emu7Print4=Press ALT+J to exit switch joystick ports.
Emu7Print5=
Emu7Print6=LOAD "$FILE1"
Emu7Print7=SEARCHING FOR $FILE1
Emu7Print8=LOADING
Emu7Print9=ATTACHING DISK/s $FILE1 $FILE2 $FILE3
Emu7Print10=READY
Emu7Print11=RUN

Emu8Name=C16/Plus4 Tapes
Emu8Filetypes=TAP
Emu8Hint=16,PLUS4
Emu8Command=xplus4 -fullscreen -8 "$FILE1" -9 "$FILE2" -10 "$FILE3" -autostart "$FILE1" &> /dev/null
Emu8Print1=**** Commodore 16/Plus4 Emulator Instructions ****
Emu8Print2=Press ALT+Q to exit emulator.
Emu8Print3=Press ALT+D to exit fullscreen mode.
Emu8Print4=Press ALT+J to exit switch joystick ports.
Emu8Print5=
Emu8Print6=LOAD "$FILE1"
Emu8Print7=SEARCHING FOR $FILE1
Emu8Print8=LOADING
Emu8Print9=FOUND $FILE1
Emu8Print10=READY
Emu8Print11=RUN

Emu9Name=C16/Plus4 Cartridges
Emu9Filetypes=CRT
Emu9Hint=16,PLUS4
Emu9Command=xplus4 -fullscreen -cartcrt "$FILE1" &> /dev/null
Emu9Print1=**** Commodore 16/Plus4 Emulator Instructions ****
Emu9Print2=Press ALT+Q to exit emulator.
Emu9Print3=Press ALT+D to exit fullscreen mode.
Emu9Print4=Press ALT+J to exit switch joystick ports.
Emu9Print5=
Emu9Print6=LOAD "$FILE1"
Emu9Print7=SEARCHING FOR $FILE1
Emu9Print8=LOADING
Emu9Print9=FOUND $FILE1
Emu9Print10=READY
Emu9Print11=RUN

Emu10Name=C128 Disks
Emu10Filetypes=D64
Emu10Hint=128
Emu10Command=x128 -fullscreen -8 "$FILE1" -9 "$FILE2" -10 "$FILE3" -autostart "$FILE1" &> /dev/null 
Emu10Print1=**** Commodore 128 Emulator Instructions ****
Emu10Print2=Press ALT+Q to exit emulator.
Emu10Print3=Press ALT+D to exit fullscreen mode.
Emu10Print4=Press ALT+J to exit switch joystick ports.
Emu10Print5=
Emu10Print6=LOAD "$FILE1"
Emu10Print7=SEARCHING FOR $FILE1
Emu10Print8=LOADING
Emu10Print9=ATTACHING DISK/s $FILE1 $FILE2 $FILE3
Emu10Print10=READY
Emu10Print11=RUN

Emu11Name=C128 Tapes
Emu11Filetypes=T64
Emu11Hint=128
Emu11Command=x128 -fullscreen -8 "$FILE1" -9 "$FILE2" -10 "$FILE3" -autostart "$FILE1" &> /dev/null
Emu11Print1=**** Commodore 128 Emulator Instructions ****
Emu11Print2=Press ALT+Q to exit emulator.
Emu11Print3=Press ALT+D to exit fullscreen mode.
Emu11Print4=Press ALT+J to exit switch joystick ports.
Emu11Print5=
Emu11Print6=LOAD "$FILE1"
Emu11Print7=SEARCHING FOR $FILE1
Emu11Print8=LOADING
Emu11Print9=FOUND $FILE1 $FILE1 $FILE1 $FILE1
Emu11Print10=READY
Emu11Print11=RUN

Emu12Name=PET Disks
Emu12Filetypes=D64
Emu12Hint=PET
Emu12Command=xpet -fullscreen -8 "$FILE1" -9 "$FILE2" -10 "$FILE3" -autostart "$FILE1" &> /dev/null
Emu12Print1=**** Commodore PET Emulator Instructions ****
Emu12Print2=Press ALT+Q to exit emulator.
Emu12Print3=Press ALT+D to exit fullscreen mode.
Emu12Print4=Press ALT+J to exit switch joystick ports.
Emu12Print5=
Emu12Print6=LOAD "$FILE1"
Emu12Print7=SEARCHING FOR $FILE1
Emu12Print8=LOADING
Emu12Print9=ATTACHING DISK/s $FILE1 $FILE2 $FILE3
Emu12Print10=READY
Emu12Print11=RUN

Emu13Name=PET Tapes
Emu13Filetypes=T64
Emu13Hint=PET
Emu13Command=xpet -fullscreen -8 "$FILE1" -9 "$FILE2" -10 "$FILE3" -autostart "$FILE1" &> /dev/null
Emu13Print1=**** Commodore PET Emulator Instructions ****
Emu13Print2=Press ALT+Q to exit emulator.
Emu13Print3=Press ALT+D to exit fullscreen mode.
Emu13Print4=Press ALT+J to exit switch joystick ports.
Emu13Print5=
Emu13Print6=LOAD "$FILE1"
Emu13Print7=SEARCHING FOR $FILE1
Emu13Print8=LOADING
Emu13Print9=FOUND FILE $FILE1
Emu13Print10=READY
Emu13Print11=RUN

Emu14Name=PET Cartridges
Emu14Filetypes=CRT
Emu14Hint=PET
Emu14Command=xpet -fullscreen -cartcrt "$FILE1" &> /dev/null
Emu14Print1=**** Commodore PET Emulator Instructions ****
Emu14Print2=Press ALT+Q to exit emulator.
Emu14Print3=Press ALT+D to exit fullscreen mode.
Emu14Print4=Press ALT+J to exit switch joystick ports.
Emu14Print5=
Emu14Print6=LOAD "$FILE1"
Emu14Print7=SEARCHING FOR $FILE1
Emu14Print8=LOADING
Emu14Print9=FOUND CARTRIDGE $FILE1
Emu14Print10=READY
Emu14Print11=RUN

Emu15Name=VIC-20 Disks
Emu15Filetypes=D64
Emu15Hint=VIC,VC
Emu15Command=xvic -fullscreen -8 "$FILE1" -9 "$FILE2" -10 "$FILE3" -autostart "$FILE1" &> /dev/null 
Emu15Print1=**** Commodore VIC-20 Emulator Instructions ****
Emu15Print2=Press ALT+Q to exit emulator.
Emu15Print3=Press ALT+D to exit fullscreen mode.
Emu15Print4=Press ALT+J to exit switch joystick ports.
Emu15Print5=
Emu15Print6=LOAD "$FILE1"
Emu15Print7=SEARCHING FOR $FILE1
Emu15Print8=LOADING
Emu15Print9=ATTACHING DISK/s $FILE1 $FILE2 $FILE3
Emu15Print10=READY
Emu15Print11=RUN

Emu16Name=VIC-20 Tapes
Emu16Filetypes=T64
Emu16Hint=VIC,VC
Emu16Command=xvic -fullscreen -8 "$FILE1" -9 "$FILE2" -10 "$FILE3" -autostart "$FILE1" &> /dev/null
Emu16Print1=**** Commodore VIC-20 Emulator Instructions ****
Emu16Print2=Press ALT+Q to exit emulator.
Emu16Print3=Press ALT+D to exit fullscreen mode.
Emu16Print4=Press ALT+J to exit switch joystick ports.
Emu16Print5=
Emu16Print6=LOAD "$FILE1"
Emu16Print7=SEARCHING FOR $FILE1
Emu16Print8=LOADING
Emu16Print9=FOUND TAPE $FILE1
Emu16Print10=READY
Emu16Print11=RUN

Emu17Name=VIC-20 Cartridges
Emu17Filetypes=CRT
Emu17Hint=VIC,VC
Emu17Command=xvic -fullscreen -cartcrt "$FILE1" &> /dev/null
Emu17Print1=**** Commodore VIC-20 Emulator Instructions ****
Emu17Print2=Press ALT+Q to exit emulator.
Emu17Print3=Press ALT+D to exit fullscreen mode.
Emu17Print4=Press ALT+J to exit switch joystick ports.
Emu17Print5=
Emu17Print6=LOAD "$FILE1"
Emu17Print7=SEARCHING FOR $FILE1
Emu17Print8=LOADING
Emu17Print9=FOUND CARTRIDGE $FILE1
Emu17Print10=READY
Emu17Print11=RUN

So if you would like to help me with adding more emulators to the Universal Rom Launcher please post an Emu section in your comments within this thread. That would be really awesome and would save me a tonne of time, and even if we keep making changes after launch it will be in an update.
I'll keep the this top post as the main source, that will be modified.

I'll try to modify the config as I go. Don't worry so much about the parameter numbering, I will correct it in the final.
Also, I'll probably be adding an optional EmuXSystemRom parameter and an EmuXSystemRomFallback parameter, to handle kickstart selection for the Amigas.
Image Commodore OS creator. Site Admin. Owns: C64, C128D(Sidekick64), A500, A1000(piStorm), C64x(i7)

wiisoldier
Posts: 8
Joined: Fri Nov 15, 2024 11:34 am
Contact:

Re: COS 3.0 Emulator Config Help Needed

Post by wiisoldier »

Hi Leo,
thanks for adding Amiberry to the COS3 setup.
It should be noted that Amiberry is not currently supporting x11 on ARM and this may also affect x11 on x86 in the future as the current choice is Wayland. If you have any issues with the instalation, please let me know and I can pass it on to the developer.

wii

User avatar
LeoNigro
Site Admin
Posts: 326
Joined: Mon Aug 14, 2023 1:29 pm
Contact:

Re: COS 3.0 Emulator Config Help Needed

Post by LeoNigro »

I'm sure there are going to be all sorts of things that will need to be tweaked, included or excluded, for an ARM port.
This will just be another one of them.

I've included Amiberry, but I've not yet actually associated anything with AmiBerry.
FSUAE doesn't have it's usual front-end baked in any more either which is a PITA. It's no longer developed.
It's written in Python, and I may have mentioned, I was thinking of somehow scraping it out of COS2 for inclusion in COS3.
Yikes! That may be a project for another day. :?
I've also included WinUAE through WINE but I haven't done any testing to be sure its useful.

I guess we'll need an option in the Commodore OS Settings manager to prioritise the Amiga emulator of choice.
I'm going to keep the original COS2 scripts and associations for the time being, until I can get all this sorted, or I fear COS3 will never get released in a useful time-frame. We can have users switch to the Universal ROM Launcher when its most useful via the COS settings as it gets developed. I've put in a flag that can be flipped in an update to make it standard when we're happy. I know I'm kicking the can down the road.... :oops:
Image Commodore OS creator. Site Admin. Owns: C64, C128D(Sidekick64), A500, A1000(piStorm), C64x(i7)

User avatar
LeoNigro
Site Admin
Posts: 326
Joined: Mon Aug 14, 2023 1:29 pm
Contact:

Re: COS 3.0 Emulator Config Help Needed

Post by LeoNigro »

I have consolidated the list.

I'll be running all Amiga emulation with the 3.1 ROM and A1200 model, which I gather would still be the most compatible.
Unless you have a big objection to this we can separate them out, but short of the folder path there isn't much I can do to discern between machines.
The nice part about specifying the 3.1 ROM is that if it hasn't been found it reverts to the open source AROS 68k ROM, and that works fine quite a bit of the time. Sometimes its glitchy, but it'll usually soldier through.

Also the Emulation.cfg will be auto updated. So if you want to play with it, just remember it'll refresh on update.
So please suggest in this forum right here for any permanent changes so we can pass it on to everyone automatically.
The list will expand for all ROM types for all emulators.
Image Commodore OS creator. Site Admin. Owns: C64, C128D(Sidekick64), A500, A1000(piStorm), C64x(i7)

theokeist
Posts: 2
Joined: Wed Mar 19, 2025 10:13 am
Contact:

Re: COS 3.0 Emulator Config Help Needed

Post by theokeist »

What is the current state of Os 3 version?

User avatar
LeoNigro
Site Admin
Posts: 326
Joined: Mon Aug 14, 2023 1:29 pm
Contact:

Re: COS 3.0 Emulator Config Help Needed

Post by LeoNigro »

The Universal ROM launcher as discussed above is complete. It just needs to be configured further (see above).
I'll need to go through all the emulators above, try and work out the ROM extensions, and associate them with the LOAD command so they can be handled in future by the Universal ROM Launcher (The LOAD command).
Then that's ready for COS3 launch.

The LOAD command enables the next phase of the roadmap which is an all-on-one graphical Linux compatible Game and emulation launcher/installer/appstore that is currently in development. Yet to be named.
COS3 will launch without it, as it is unlikely to be available until later in the year and will become more functional in stages.

The ultimate goal of this Game launcher is to automagically suck in ALL your retro system ROMs(TOSEC etc) wherever you have them located, and present them nicely with more information and connected content, sorta like Plex.
Maybe, we can do some peer to peer stuff and share ROM libraries. We'll see. That's not a priority.
But this app will be more of a themed database app than say RetroPie.
It'll look like more of a Gamebase looking app, that isn't Gamebase (which is also included BTW with some demobases).
I also hope to include the ability for community additions, reviews and ratings of games.
Yes, there will be logins, workflow and moderators for that part, but you won't need to login to play games.
The Game launcher(unless I suddenly decide to make it a separate app) will be made available through the Commodore OS Central app.

The main intention of the Commodore OS Central app is to function as a retro community resource locator.
We can make it whatever we want. Magazines, manuals, instructional videos etc. Anything.
It's just a blank page at COS3 launch, and will be populated soon after.

Another thing holding up the launch, is waiting on Commodore OS BASIC to be successfully ported.
Commodore OS BASIC Studio works as an editor but needs a slight theme fix.
That should hopefully be resolved by the end of the week.

Still fixing a few things that came up during betatesting, but it isn't much. A few glitches and quality of life things.
There's a few more games to add, because 200+ linux compatible games are not enough. :lol:

COS3 will be functionally complete next week and available for new C64x purchasers and the machines which will begin shipping next week.
I hope to be able to set a launch date very soon after that. I just want to get my ducks in a row.
There are a few things keeping me busy in my personal life at the moment, so I just want to ensure the release comes at a time when I'm most available to provide support.
Image Commodore OS creator. Site Admin. Owns: C64, C128D(Sidekick64), A500, A1000(piStorm), C64x(i7)

wiisoldier
Posts: 8
Joined: Fri Nov 15, 2024 11:34 am
Contact:

Re: COS 3.0 Emulator Config Help Needed

Post by wiisoldier »

Like many others here, I cannot wait to see how good COS3 will be.

Thank you for all your hard work on this. :)

User avatar
LeoNigro
Site Admin
Posts: 326
Joined: Mon Aug 14, 2023 1:29 pm
Contact:

Re: COS 3.0 Emulator Config Help Needed

Post by LeoNigro »

Thanks Wiisoldier.

I just noticed you've been messaging me....Sorry I haven't responded.
My inbox suddenly filled, and it isn't alerting me any more....so I was oblivious to it and didn't check.
I'll need to get through the messages(and delete a bunch) and get back to you.
I'll have to see if I can extend the number of private messages the forum can handle because this is ridiculously small.
(edit: pm size increased. Now to get to the messages.)

Cheers,
Leo
Image Commodore OS creator. Site Admin. Owns: C64, C128D(Sidekick64), A500, A1000(piStorm), C64x(i7)

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests