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