[Coco] Mame CoCo 3 emulation questions...

Barry Nelson barry.nelson at amobiledevice.com
Tue Mar 25 12:19:46 EDT 2025


On 2025-03-25 01:18, coco-request at maltedmedia.com wrote:

> Message: 2
> Date: Mon, 24 Mar 2025 17:44:52 -0700
> From: Andrew Ayers <keeper63 at cox.net>
> To: coco at maltedmedia.com
> Subject: Re: [Coco] Mame CoCo 3 emulation questions...
> Message-ID: <e42a43a6-8075-462f-a772-88e317481298 at cox.net>
> Content-Type: text/plain; charset=UTF-8; format=flowed
> 
> Hello all.
> 
> After the last message to the list, in regards to using Mame emulation
> for the CoCo 3...well, I had to play with things. So, now I have some
> questions, which I'm sure with a little (or a lot) of digging, I can
> find answers to...but maybe I can get a quicker response here.
> 
> First, note that my operating system is a version of Ubuntu 22.04LTS
> (with the latest updates), and my Mame version is 0.220; I am not sure
> if either will matter to any answers, but I thought it best to mention 
> it...
> 
> --- Start of Questions ---
> 
> 1. In the directory where I have my rom zip files, I had an 
> "rgbdos.rom"
> file; I am not sure why I put it there originally, but if I had to
> guess, it's because (IIRC) that is the version of "dos" that I am using
> under VCC to "access" a virtual hard drive I had set up, with "256"
> "floppy drives", for a project I was working on...and I played with it,
> but either couldn't make it work, or made it work in some other manner.
> 
> I wanted to see if I could get it to work again, so for my attempt, I
> took my "coco3.zip" file, and dropped the "rgbdos.rom" into it; when I
> ran Mame, it barfed, saying that the image didn't match what it 
> expected.
> 
> So I dumped the "disk11.rom", and replaced it with the "rgbdos.rom"
> renamed to "disk11.rom"; this time, when I ran Mame (ie, "mame -w
> coco3") it complained about the file, but loaded it up anyhow, saying 
> it
> might have problems; rgbdos started up, but failed to find a hard 
> drive.
> 
> So now I have a couple of questions about this in itself:
> 
> a. It seems like Mame does have a "hard coding" of things; renaming the
> file (ie, "coco3rgb.zip", plus the internal files - ie, "coco3.rom" ->
> "coco3rgb.rom", etc) didn't seem to help matters at all; I also noticed
> in the menu (I figured out how to get to it again) seemed to indicate
> some kind of "coco" driver (the emulated machine) - I think it was
> "coco.c"?
> 
> b. If I wanted to use an image not recognized normally, does this mean 
> I
> would need to alter and compile a custom Mame, in order to reference 
> the
> new rom zip file (instead of renaming and "faking" it to be
> "coco3.zip")? I mean, that works - but it still shows a "warning error"
> at the start; I could, for example, create a shell script to do the 
> swap
> (or build a new zip file, rename the old one, etc and rename things 
> back
> on exist, yadayada), and run that instead; but that warning looks 
> "janky"...
> 
> ---
> 
> 2. Something else I noticed: I couldn't find anywhere in the Mame menu
> system how much memory this emulated CoCo 3 had. Looking at the
> "coco3.ini" file I have, there is a setting called "romsize" (I think
> that's right) - but it isn't set to anything; does it default to 128K
> then? If I set that particular setting to something, would it recognize
> that as the amount of memory? Does it need to be referenced as a "total
> number of bytes" (ie, for 512K it would be set to 524288), or does it
> allow for a "shortcut notation" of some sort (or both)? Also - is there
> a limit to what I can set this to (ie - 2MB? 4MB? 8MB? That is, 
> whatever
> the largest size the CoCo 3 could support by various means; yes, I know
> this means that for best usage, I would need "OS-9", unless I used the
> usual means to access the extra memory - and maybe some "unusual" means
> to access anything over 512K, which I don't know how it was done, but 
> if
> I had to guess, by using the same register(s?) for bank selection, but
> also using the couple of extra "unused/reserved bits" on (well, 
> whatever
> the memory location is in the 64K map - I think it something like $FF##
> where I don't recall offhand what the other 8-bits were).
> 
> ---
> 
> 3. Also - am I missing something in the menu system (or elsewhere) that
> would show the amount of total memory (?MEM of course is not it); or
> would it be some kind of CoCo 3 utility I'd have to run (and I would
> assume that most or all of those utilities max out at 512K - except
> perhaps newer utilities, and/or including things under OS-9)?
> 
> --- End of Questions ---
> 
> Well...that's it for now; thank you for any answers/suggestions.
> 
> I'll play around with it some more, and try out any of the community's
> suggestions...but right now it's really just a diversion, as like I
> mentioned before, I don't really use Mame for CoCo emulation, and the
> other emulators I have set up are used rarely, and my actual hardware
> even less (aka, hardly at all for any of it)...something I want to get
> back to, but right now, just another of my "back burner" projects...
> Andrew L. Ayers
> Glendale, Arizona
> phoenixgarage.org
> github.com/andrew-ayers

First, I should mention that MAME 0.220 is a VERY old version, it will 
definately lack some features and will probably have many bugs. That out 
of the way, let me describe somewhat how MAME handles ROM files. If the 
files are inside a zip file in the roms folder, they are identified by 
the name of the zip file and a checksum of the file, the name of the 
file inside the zip does not matter. If the file is not zipped it there 
must not be a zip file present with the component name and the files are 
identfied by their name, if the checksum doesn't match it will throw a 
warning but as long as the file is the right size it will be loaded. hat 
said, there are several RGBDOS rom files, you need the proper one for 
the emulated MAME controller. For the MAME HD emulation you need THIS 
RGBDOS ROM https://colorcomputerarchive.com/repo/ROMs/RGBDOS/MESS/

Newer versions of MAME recognize this ROM when placed in an rgbdos.zip 
file, older version require it to be place in a coco_fdc_v11 folder and 
named disk11.rom.

The emulated system ram is set from the command line with the switch 
-ramsize, for the CoCo3 valid options are 512K,128K,2M,8M with the 
default being 512k (at least on the latest versions of MAME). Nothing I 
know of in MAME displays the ram size setting, if you boot OS-9 you can 
run mfree this will show the free memory, which is around 360k on my 
system. I am running MAME version 0.353 bn custom from here: 
https://github.com/abcbarryn/mame/releases/tag/mame0252bn

That link includes a Windows binary and also source code for compiling 
on other operating system such as Linux or MacOS.


More information about the Coco mailing list