Closed EnsignRutherford closed 7 months ago
How is it supposed to work?
Not sure... I'm researching how it works on other platforms.
So I've made some progress... Placed two xml files from MESS into the hash folder of mame, and put the bios files in the proper folder. This command is used to execute: /usr/local/bin/retroarch -v -L /home/ark/.config/retroarch/cores/mess_libretro.so /roms2/coco/nebula.zip
This loads up everything ok and identifies the proper emulation "coco" but fails to find the rom file. [INFO] RetroArch 1.16.0 (Git 14cb3732eb) [INFO] Saving files in content directory is set. This overrides other save file directory settings. [INFO] Saving save states in content directory is set. This overrides other save state file directory settings. [INFO] === Build ======================================= [INFO] Capabilities: ASIMD [INFO] Version: 1.16.0 [INFO] Git: 14cb3732eb [INFO] Built: Oct 3 2023 [INFO] ================================================= [INFO] [Input]: Found input driver: "udev". [INFO] [Core]: Loading dynamic libretro core from: "/home/ark/.config/retroarch/cores/mess_libretro.so"
[INFO] Saving files in content directory is set. This overrides other save file directory settings. [INFO] Saving save states in content directory is set. This overrides other save state file directory settings. [INFO] [Overrides]: Redirecting save file to "/roms2/coco/nebula.srm". [INFO] [Overrides]: Redirecting save state to "/roms2/coco/nebula.state".
[INFO] [Environ]: SYSTEM_DIRECTORY: "/roms2/bios". [libretro INFO] SYSTEM_DIRECTORY: /roms2/bios [INFO] [Environ]: CORE_ASSETS_DIRECTORY: "/home/ark/.config/retroarch/downloads". [libretro INFO] CONTENT_DIRECTORY: /home/ark/.config/retroarch/downloads
[libretro INFO] SAVE_DIRECTORY: /roms2/coco/ [INFO] [Environ]: SET_PIXEL_FORMAT: XRGB8888. [INFO] [Content]: Content loading skipped. Implementation will load it on its own. [ERROR] [Environ]: GET_VARIABLE: mame_nobuffer - Invalid value. [libretro INFO] Joystick map: disabled
[libretro INFO] Starting game from command line:/roms2/coco/nebula.zip [libretro INFO] ARGUV[0]=/roms2/coco/nebula.zip [libretro WARN] Driver nebula not found -1 [libretro WARN] Game not found: nebula [libretro INFO] Game name: coco, Game description: Color Computer [libretro INFO] Game name: coco, Game description: Color Computer [libretro INFO] System found: coco Adding monitor screen0 (640 x 480) a:1.333333 [libretro INFO] SOURCE FILE: ../../../../../src/mame/trs/coco12.cpp [libretro INFO] PARENT: 0 [libretro INFO] NAME: coco [libretro INFO] DESCRIPTION: Color Computer [libretro INFO] YEAR: 1980 [libretro INFO] MANUFACTURER: Tandy Radio Shack [libretro ERROR] bas10.rom NOT FOUND (tried in coco) [libretro ERROR] Fatal error: Required files are missing, the machine cannot be run. [libretro INFO] RES:2
bas10.rom is in /roms2/coco, /roms2/bios, and roms2/bios/coco but still doesn't find it.
Still investigating. I'm close.
Got it... moved bas10.rom to coco.zip in /roms2/coco and it works!
Sweet. I'll check this out when possible.
Okay much like Dungeons of Daggorath, abandon hope all ye that enter the dungeon... or something like that. I've tried several cartridges to test and the high resolution screens are mangled. It's not playable unless I'm doing something incredibly wrong. No errors are being generated.
Ok, got it working after doing something silly. Changed the name of the rom folder from 'coco' to 'coco3' and all the cartridges I've tested work and I was even able to play Canyon Climber to complete the first level! I'll update this post with the configuration details shortly.
Fantastic!
Roms Folder: /roms/coco3 or /roms2/coco3
BIOS location: coco3.zip in Roms folder specified above
Hash files: /roms/bios/mame/hash or /roms2/bios/mame/hash
Hash files: coco_carts.xml and coco_flop.xml
es_systems.cfg system entry:
`
<fullname>Color Computer 3</fullname>
<path>/roms2/coco3/</path>
<extension>.zip .ZIP .bin .BIN .7z .7Z</extension>
<command>sudo perfmax %GOVERNOR%; nice -n -19 /usr/local/bin/retroarch -L /home/ark/.config/retroarch/cores/mess_libretro.so %ROM%; sudo perfnorm</command>
<platform>coco3</platform>
<theme>coco3</theme>
` This should get you to the point where you can test. I'm still working out how to assign a keyboard emulation in RetroArch. Some games don't need any changes, e.g. Canyon Climber, Downland but Project Nebula requires you to press a keystroke 1,2,3 or 4 to start the game. I think they require game specific controls because there was no standard on the original Coco. Games would use left joystick, right joystick, keyboard arrow keys, etc. It was my first computer I started programming on.
Man the nostalgia is strong here. The Tandy CoCo3 was my first computer before I got my first IBM Compatible PC. First computer game I got for it was Rampage. I'll be testing this soon. I'm hoping if it's stable enough to include this with the next update I release either later this week or next.
I wrote a bunch of utilities sold by Spectrum Projects back in the day... 40k Basic, Print Spooler, Multipak-Crack, etc. In 2000 I wrote Return of Coco, a coco 1/2 emulator so I could play Dungeons of Daggorath in Windows. Nostalgia indeed!!
By the way any help leading me to map a keyboard to buttons would be helpful... been researching that for a bit now and nothing I do seems to work.
You're using mess so unless mess has the keyboard feature built-in, it might be a situation where a keyboard would need to be plugged to get that functionality. Once I get to a point I can test this, I'll report what I find.
If you were into the Coco back then you must remember the work that Steve Bjork did, MegaBug, Sands of Egypt, just to name a couple of awesome titles. I found out recently he passed, news from the Glendale Color Computer Club,
I remember the name but I never played those titles. Hopefully this will be a chance to play them.
While I'm doing this I tried the Jedi Academy and Outcast ports. A fix needs to be applied to the screen size. Check out this reddit post for the specifics: https://www.reddit.com/r/RG353V/comments/yttkxg/port_master_jedi_academy_resolution_fix/
I no longer handle port master ports. There's a separate team that handles those.
Okee... I'll send this to them. Easy peasy fix.
Oops... coco_carts.xml: https://github.com/mamedev/mame/blob/master/hash/coco_cart.xml and coco_flop.xml: https://github.com/mamedev/mame/blob/master/hash/coco_flop.xml
I just remembered that for my arcade build to play some ports without a keyboard I used either qjoypad for joy2key. I will look into that.
We can use gptokeyb https://github.com/christianhaitian/gptokeyb
I had a dog and his name was BINGO!
Leveraging love.sh as an example I now have it setup where a unique gptokeyb file is created for each game if not already defined and a default gptk is copied from /opt/coco3. Testing out things now.
Cool. You can also use mvem.sh
as an example as well.
Ok, I finally got a chance to try this out and as usual, there's some hurdles that have to be cleared to play these systems when dealing with MESS/Mame. For Canyon Climber, I had to make sure to have the coco3.zip bios file in the coco3 folder and it had to contain the coco3.rom
and disk11.rom
files. I had to make sure the zip file was named cclimber.zip and within that file, it had to have Canyon Climber (1982) (26-3089) (DataSoft) [a1].rom
in it. I could only control the game with the joystick and action buttons but that might just be needing to redo the controller configuration.
Either way, it's definitely a process to run these games. Thank goodness for the retrobat documentation here related to what needed to be in the respective bios zip files.
So cool to play Rampage on the CoCo 3 via emulation on this. Thanks again for this suggestion and the research on getting this running. For keyboard input, gptokeyb allowing custom keyboard entry will have to do.
Ok, looks like you can just run the .ccc files directly as long as their named as the short name shown in the xml file. For instance, Canyon Climber (1982) (26-3089) (DataSoft) [a1].ccc
needs to be renamed to cclimber.ccc
and then it loads fine.
Good News, there's a workaround for the keyboard bind need for some games. See here. Just load this remap file and you can assign a keyboard key to any button. For instance, I assigned the start key the letter Y and I could start Rampage just fine. Better than setting up a keydaemon for this.
Let me check it out and I will update my configuration accordingly!
Can you send me an example of the remap file that you used for Rampage. It's not obvious from the one you posted.
The one I attached in the message above your last post is what I used. It has not keys assigned but the device will show as unknown and you can assign any keyboard key to it from the assignment menu for each key.
Also, the controls for trs-80 via MESS are a little annoying. In Canyon Climber, the character starts by walking to the right and when you turn his direction, he keeps walking that direction unless you tap the joystick slightly the opposite direction. Same for Rampage. It's probably related to how the emulator tries to emulate the old trs-80 joystick that didn't self center.
I noticed the same behavior. On the third level of Canyon Climber the player walks off the edge if you are not fast enough to stop. Interestingy some games generate segmentation faults, e.g. robocop, upon starting. Not sure why,
The one I attached in the message above your last post is what I used. It has not keys assigned but the device will show as unknown and you can assign any keyboard key to it from the assignment menu for each key.
Ok so I'm trying to figure out how I create a rom-specific remap file. I now have a coco3.sh script that executes the rom. It creates a custom retroarch.cfg which points the saves into a saves subfolder under coco3.
UPDATE: I have gptokeyb working so far. Just played Project Nebula. So much nostalgia. I'm not sure how to use the file you sent me... retroarch docs are all over the place.
Just place the remap file contained in the zip in the coco3 folder for instance, then load the remap while in game.
Ok I figured out where the filles are stored per content. So my coco3.sh will copy a default coco3.rmp to that location in "/home/ark/.config/retroarch/config/remaps/MAME" for each one if it doesn't already exist. I was trying to move it to under the coco3 folder to have it autoload by setting input_mapping_path in the appended retroarch_coco3.cfg but that wasn't working. Now have to figure out how to support mouse AND keyboard. Almost there.
gptokeyb can do mouse emulation. Not sure how it will work with retroarch though.
Ok. Got the retroarch.cfg working now where it goes to a custom folder for the configs. :)
Ok... :) I have 76 cartridges that are able to run, each having it's own remap file so it can be configured to work with keyboard characters! Predator and Robocop don't run because they are larger than 16K cartridges and the earlier versions of mess don't support that size so they segmentation fault. Oh well.
Is there a way to compile xroar for the RockChip? I had to make a custom rom/game set that natches the coco_carts.xml in order for them to run.
What is xroar? Can you link the source?
https://www.6809.org.uk/xroar/. It's standalone but supports a lot more than MESS or MAME do, at least the versions that are in ArkOS.
I was able to successfully build and run xroar. It seems like it's easier to run game carts that are 8Kb in size or less. I can't seem to get bigger carts to run though like Rampage, Robocop, or Castle of Tharoggad. Attached is the binary and launch script xroar.sh
in /usr/local/bin
. You can restore this backup that will install everything needed except for the coco3.rom and disk11.rom files needed for coco3 emulation. The script is set to look for bios from the /roms/bios
or /roms2/bios
folder depending on where you launch your carts from.
Take the attached compressed file (arkosbackup.tar.gz) and put it in your roms/backup folder. Do not uncompress the contents! Just place the file as is in your roms/backup folder. If you don't have a backup folder in the roms folder, just create it.
Then go into the Emulationstation Menu, scroll to Options, hit A, then go to Advanced, hit A, then scroll all the way down to Restore Settings, hit A.
Once completed, you should be able to launch your coco3 games by doing xroar.sh _<path to rom>_
from a terminal session.
Make sure the emulationstation has been shutdown before you attempt this so you can see how it works. Hopefully you can help figure out how to run games larger than 8k.
arkosbackup.tar.gz <--Updated to version 1.5
I'll start looking at this today. Rainy day.
I installed the XRoar Windows version 1.4.2 and Rampage, Predator, Robocop and Castle run on that platform.
And I'm able to now run them on the RG353V! Well, almost. More to follow.
I couldn’t get them to run in my windows install of xroar. Perhaps it’s the bios or game files I used? I was attempting to use the .ccc cartridges of those games. What all bios files did you install?
I couldn’t get them to run in my windows install of xroar. Perhaps it’s the bios or game files I used? I was attempting to use the .ccc cartridges of those games. What all bios files did you install?
Predator I can play on Windows and the RG353V. Robocop gets to the splash screen on both then hangs. Castle does not run. :(
I never tried Predator. Robocop and castle i got the same results. Rsmpage doesn’t run either.
I wonder of an older version will run them? Maybe a regression in the new version.
So far, xroar seems to run 8k cartridges and lower fine. It's much easier to deal with this emulator vs MESS. Maybe future versions will add the ability to run larger titles.
Even at the color computer archive, xroar there can't play larger roms either so it must be a limitation of the emulator. I've emailed the developer to see if this is known and if there's any plans to eventually review the issue.
Until, then I'm thinking of including this emulator and making it the primary choice with MESS as another option since it can load more coco3 games but control is just wonky with that.
I was going to setup es_systems.cfg to support both.
Hi,
I've been trying to add support following the examples of how other emulators are currently setup, but to no avail.
I've tried all mame and mess cores to try and load a game disk in a zip file. I have the roms required in the bios folder, but retroarch starts and stops with no error message.
Can you assist?
ER