Okay. I'll put the ticket on "pending" until I or someone else has time for it.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Okay. I'll put the ticket on "pending" until I or someone else has time for it.
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).
More info here: https://rr.pokefinder.org/wiki/Power_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 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.
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
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
Thank you for your work.
I'll integrate it in a few days.
Ok, take your time.
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
Thanks for adding it. I’ve already tested the nightly build.
And thanks for the hint, noted.
OP: Thank you so much for your work, much appreciated!