enable 15khz csync mode for retro monitors#934
Open
matjam wants to merge 3 commits intoMEGA65:developmentfrom
Open
enable 15khz csync mode for retro monitors#934matjam wants to merge 3 commits intoMEGA65:developmentfrom
matjam wants to merge 3 commits intoMEGA65:developmentfrom
Conversation
gardners
approved these changes
Jan 21, 2026
Contributor
gardners
left a comment
There was a problem hiding this comment.
Looks ok to me, so long as testing confirms no regressions created. Well done on consolidating this feature.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds support for 15khz mode and potentially addresses #452. To enable 15Khz mode, your cable needs to bridge pin 12 and 15 with a 470Ω resistor.
Interlace is enabled just for this output (not for HDMI) if V400 mode is enabled. You can still toggle on interlace for HDMI (why?) via
POKE $D031, PEEK($D031) OR 1. Interlace however is kinda garbage as I've not figured out how to offset the interlace signal so it's actually interlaced. Probably a followup PR.Tested as a slot 0 core, and confirmed everything all works as expected.
The cable is wired the same as what is needed for the C64MEGA65 core, except for the
addition of a 470Ω resistor which will not interfere with the C64 core operation.
Call for testing
It would be useful to test the core on as many displays as possible. I'm particularly interested in knowing if it will also work with SCART - I don't have any SCART devices.
The build is available here: https://builder.mega65.org/job/mega65-core/job/PR-934/
You will also need the latest beta Mega65 ROM installed or you'll just see a blue screen as this PR is based off the Development branch. Its available at https://files.mega65.org/?id=mega65-rom-beta
To test, copy the core to your sdcard and flash it to a spare slot, and plug in a cable
with the resistor prepared as above.
I have an R6 device so I've only tested it on that, but it should work on the other
MEGA65 devices.
Known Working Monitors
Example cable
If you want to make your own cable you can use the following parts off Amazon. This cable also works with the C64 core (the impetus for this whole thing).
Required Parts
DB-9 cable (pre-wired, colored conductors, 3 ft):
https://www.amazon.com/dp/B0C6K1MNDQ
VGA DB-15 screw terminal adapter:
https://www.amazon.com/dp/B08155LH92
1000 Pcs 25 Values Resistor Kit:
https://www.amazon.com/dp/B08FD1XVL6
(potentially you have a 470Ω resistor; values smaller than that might also work)
Wiring Pinout (DB-9 to VGA DB-15)
The DB-9 cable wire colors are matched to the pins to make
it easier to build the cable. So, connect the Black wire to
pin 5, etc.
Bridge pin 12 & 15 on the VGA DB-15 adapter with the 470Ω resistor.