[go: up one dir, main page]

Menu

#120 [Feature request] Support for KCS Power Cartridge

closed
nobody
None
C64
Linux
2025-12-06
2025-11-09
Anonymous
No

Could Denise have support for the KCS Power Cartridge, which was a well known freezer cartridge? That would be great, thank you.

Discussion

  • PiCiJi

    PiCiJi - 2025-11-09
    • status: open --> pending
     
  • PiCiJi

    PiCiJi - 2025-11-09

    Okay. I'll put the ticket on "pending" until I or someone else has time for it.

     
  • Anonymous

    Anonymous - 2025-11-10

    Thank you very much. The Power Cartridge was very popular here. There were two versions, one from 1985 and one from 1989, although I don't know what the differences are (if any).

     
  • ClausS

    ClausS - 2025-11-26

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

    I still want to do some more testing before providing a .diff / patch, but the integration is basically complete.

    Once I’m confident everything is stable, I will submit the changes as a diff.

     
  • ClausS

    ClausS - 2025-11-26

    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 RAM
    - Proper GAME / EXROM switching
    - Multi-freeze support
    - Behavior matches the VICE implementation

    All tests were done on macOS using Denise v2.7.
    No issues found so far.

    Patch attached: kcs_power_cartridge.diff

    Claus Schlereth

     
  • ClausS

    ClausS - 2025-11-26

    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.

     

    Last edit: ClausS 2025-11-26
  • PiCiJi

    PiCiJi - 2025-11-26

    Thank you for your work.
    I'll integrate it in a few days.

     
    • ClausS

      ClausS - 2025-11-27

      Ok, take your time.

       
  • PiCiJi

    PiCiJi - 2025-11-28

    Thank you, I've added it. Nightly should be built.

    A few more hints for carts.
    - constructor: do not use system functions such as "changeExpansionPortMemoryMode", as not everything may be initialized at this time.
    - BIN compatibility: CRTs can be converted to BINs using "cartconv". BINs do not contain information about the cart's structure. This information must be added using "assumeChips", if the chunks are not 8k. I haven't tested this with KCS or Structured Basic, but it should work in both cases, since they are 8k chunks.
    "assumeChips" function is used only in case of BIN files.

    "assumeChips( {16384} )" for 16 k chunks or in case of mixed chunk sizes like Zaxxon "assumeChips( {4096, 8192} )"

     

    Last edit: PiCiJi 2025-11-28
    • ClausS

      ClausS - 2025-11-29

      Thanks for adding it. I’ve already tested the nightly build.
      And thanks for the hint, noted.

       
  • PiCiJi

    PiCiJi - 2025-12-04
    • status: pending --> closed
     
  • Anonymous

    Anonymous - 2025-12-06

    OP: Thank you so much for your work, much appreciated!

     

Anonymous
Anonymous

Add attachments
Cancel