Home Page
Posted By: xinyingho Commodore 64 doesn't load cartridges - 08/31/20 07:45 AM
Hi there,

I have a weird behaviour with C64 loading cartridges when adding a lot of options.

When launching MAME like this on Windows 10:
mame64.exe c64p -cartridge batman

everything works fine, the cartridge gets loaded and the game gets run.

However, when I add all those parameters like this by forcing all the default parameters to appear on the command line:
c64p -bios r3 -ramsize 65536 -exp "" -iec10 "" -iec11 "" -iec4 "" -iec8 c1541 -iec9 "" -joy1 "" -joy2 joy -tape c1530 -user "" -cassette "" -floppydisk "" -cartridge batman -quickload ""

MAME gets me to the default Basic V2 prompt and then I can try to type commands like load or list but it looks like the cartridge hasn't been loaded at all.

Is it me not understanding how C64 works, a bug, a feature?
Posted By: hap Re: Commodore 64 doesn't load cartridges - 08/31/20 08:36 AM
exp is the cartridge slot, you overwrote the romtype of batman with ""
Posted By: xinyingho Re: Commodore 64 doesn't load cartridges - 08/31/20 09:17 AM
Shouldn't exp be the expansion slot to add more input slots like additional cartridge slots, hard disk slots and so on?

It works when I simply remove the exp parameter:
mame64 c64p -bios r3 -ramsize 65536 -iec10 "" -iec11 "" -iec4 "" -iec8 c1541 -iec9 "" -joy1 "" -joy2 joy -tape c1530 -user "" -cassette "" -floppydisk "" -cartridge batman -quickload ""

But then, what value should I set for exp so that it works?
Posted By: Vas Crabb Re: Commodore 64 doesn't load cartridges - 08/31/20 09:36 AM
Cartridges connect to the "exp" port. You shouldn't specify -cart/-cartridge and -exp at the same time. You can that the -cart/-cartridge media option and -exp slot option are the same thing because you have this:
    <device type="cartridge" tag="exp" interface="c64_cart,vic10_cart">
        <instance name="cartridge" briefname="cart"/>
        <extension name="80"/>
        <extension name="a0"/>
        <extension name="e0"/>
        <extension name="crt"/>

The poorly-named "instance" tells you the command-line media options, and the "tag" attribute shows the media device's tag relative to the machine root.

Then you have this:
    <slot name="exp">
        <slotoption name="buscard" devname="c64_buscard"/>
        <slotoption name="turbo232" devname="c64_turbo232"/>
        <slotoption name="midisiel" devname="c64_midisiel"/>
        <slotoption name="swiftlink" devname="c64_swiftlink"/>
        <slotoption name="supercpu" devname="c64_supercpu"/>
        <slotoption name="speakez" devname="c64_speakeasy"/>
        <slotoption name="sfxse" devname="c64_sfxse"/>
        <slotoption name="neoram" devname="c64_neoram"/>
        <slotoption name="georam" devname="c64_georam"/>
        <slotoption name="cpm" devname="c64_cpm"/>
        <slotoption name="dqbb" devname="c64_dqbb"/>
        <slotoption name="reu1764" devname="c64_1764reu"/>
        <slotoption name="buscard2" devname="c64_buscard2"/>
        <slotoption name="16k" devname="c64_16kb"/>
        <slotoption name="ide64" devname="c64_ide64"/>
        <slotoption name="reu1700" devname="c64_1700reu"/>
        <slotoption name="midipp" devname="c64_midipp"/>
        <slotoption name="midisci" devname="c64_midisci"/>
        <slotoption name="reu1750" devname="c64_1750reu"/>
        <slotoption name="easyflash" devname="c64_easyflash"/>
        <slotoption name="midimap" devname="c64_midimap"/>
        <slotoption name="music64" devname="c64_music64"/>
        <slotoption name="midins" devname="c64_midins"/>

The "name" attribute is the tag relative to the machine root - it's the same as the tag for the media device, so you know it's the same thing.
Posted By: xinyingho Re: Commodore 64 doesn't load cartridges - 08/31/20 12:40 PM
I see. So this is a default slotoption, which can't be selected from the slot itself. This design is a bit weird but thanks for your precise explanations Vas Crabb, as usual.
© Forums