Thanks for adding it. I’ve already tested the nightly build. And thanks for the hint, noted.
Ok, take your time.
One more update: Drag & drop handling was initially missing and has now been fixed: KCS cartridges are correctly classified as Freezer cartridges instead of GameCart, which resolves broken startup.
One more update: Drag & drop handling was initially missing and has now been fixed: KCS cartridges are correctly classified as Freezer cartridges instead of GameCart, which resolves broken startup, reset issues, and non-working freeze behavior.
Update: I’ve completed testing and the implementation now appears stable. I attached a patch that adds support for the KCS Power Cartridge to Denise. Tested cartridges: - KCS Power Cartridge 1985 V1 - KCS Power Cartridge 1985 V2 - KCS Power Cartridge 1989 Functionality tested: - Toolkit commands - Disk commands - Powermon commands - Backup disk - Reset functions - Freeze menu - Multiple freeze operations Features implemented: - Correct startup logo - Full IO1 / IO2 handling - 128 bytes cartridge...
I’ve been working on this in the meantime and I’ve implemented support for the KCS Power Cartridge in Denise locally. It is based on the 1989 version of the cartridge and closely follows the behavior of the VICE implementation (config modes, IO1/IO2 handling, 128 byte RAM, EXROM/GAME switching, freeze mode etc.). At the moment: - Startup logo appears correctly - Freeze menu works - Multiple freeze operations work - Cartridge behavior matches VICE in my tests so far All testing so far has been done...
I have tested the version from Bitbucket, and it's working as expected so far. Thanks.
Patch: Structured Basic (.CRT) Cartridge Support
No Problem for me, take your time. I only have patched on older Version, to see, if the problem is solved now. And it seems it is. So far i did not get any error.
Actually there are 2 different version existing of COMAL80 2.01 the pictures of the start screen can be found on my GitHub page in the README.md And the two CRT files are also available there. 1. Copyright (C) 1984 by UniComal ApS (grey module version) 2. (C) 1984 by UniComal & Commodore (black module version)
Then I will try to compile it later.
I probably have the best overview of Comal's internal processes, but maybe I'm wrong. lol
For my understanding, the software should run on both versions. And with your fixes, it will.
Actually there are to different version existing of COMAL80 2.01 the pictures of the start screen can be found on my GitHub page in the README.md And the two CRT files are also available there. 1. Copyright (C) 1984 by UniComal ApS (grey module version) 2. (C) 1984 by UniComal & Commodore (black module version)
I think to disable the joystick support is beyond my capabilities. :( But I have some good news. I managed to patch an older version with the changes you made. I'm able to compile this, and it works now as expected. Existing CRT images are now correctly recognized as the black CRT image. If you set bit $1A in the CRT image to $01, it will be recognized as the gray CRT module. I tested it with my test program and it now works as it should under both images. From my point of view this patch is ok Additional...
I get an error during compiling the code on my mac: /Volumes/Common/SourceForge/vice-emu-code/vice/src/arch/gtk3/joystickdrv/joystick_osx.c:327:64: fatal error: too many arguments to function call, expected 2, have 3 327 | joy_axis_event(joyport, e.ordinal, JOY_AXIS_NEGATIVE); | ~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~ /Volumes/Common/SourceForge/vice-emu-code/vice/src/joyport/joystick.h:408:6: note: 'joy_axis_event' declared here 408 | void joy_axis_event (joystick_axis_t *axis, int32_t value); | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...
I have found a solution. Replacing the following code: static void comal80_io1_store(uint16_t addr, uint8_t value) { int cmode, currbank; currregval = value & 0xc7; currbank = value & 7; switch (value & 0xe0) { case 0xe0: cmode = CMODE_RAM; break; default: case 0x80: cmode = CMODE_16KGAME; break; case 0x40: cmode = CMODE_8KGAME; break; } #ifdef DEBUGCART if ((value != 0x82) && (value != 0x83)) { DBG(("COMAL80: IO1W %04x %02x mode: %d bank: %d\n", addr, value, cmode, currbank)); } #endif cart_config_changed_slotmain(0,...
Thank you for your response. I would like to provide additional background and reasoning to support the conclusion that the current COMAL80 CRT file is likely based on a hardware variant that does not match the official Commodore cartridge and that this mismatch contributes to the issues observed in emulation (specifically in VICE). Context and Assumption It appears that the COMAL80 CRT was created using a hardware layout corresponding to a cartridge distributed by the Comal Users Group, U.S.A.,...
Incorrect ROM/RAM Paging in VICE with COMAL80 CRT