Skip to content

denise: OCS DENISEID ($07C) floats the undriven bus high to 0xFFFF#122

Merged
LinuxJedi merged 1 commit into
mainfrom
fix/ocs-deniseid-floats-high
Jul 5, 2026
Merged

denise: OCS DENISEID ($07C) floats the undriven bus high to 0xFFFF#122
LinuxJedi merged 1 commit into
mainfrom
fix/ocs-deniseid-floats-high

Conversation

@LinuxJedi

Copy link
Copy Markdown
Owner

Problem

The 8362 OCS Denise has no DENISEID register, so a CPU read of $DFF07C reads
the undriven custom data bus. That bus floats high, so the read returns 0xFFFF
-- and because the low byte (0xFF) is not the 0xFC that the 8373 ECS Denise
drives, software still correctly detects OCS. Copperline returned its
deterministic-zero undriven-bus fallback, so the ID read back as 0x0000 on OCS.

Fix

Read $07C as the Denise revision id when it drives one (ECS = 0xFFFC) and as
the float-high 0xFFFF otherwise, and list it as a readable register.

Validation

  • vAmigaTS Denise/Misc/Id/deniseid (OCS): 39.9% -> 0.0% differing pixels vs
    the vAmiga 4.4 reference (verified with tools/adf-compare.sh).
  • ECS is unchanged (still reads 0xFFFC).
  • phooey / tomato / roots-ecs / roots-aga / zool screenshots stay
    byte-identical at 5s and 9s (the change only affects an OCS read of $07C).
  • 1303 unit tests green (the DENISEID tests updated to the correct OCS value);
    clippy and fmt clean.

The 8362 OCS Denise has no DENISEID register, so a CPU read of $DFF07C reads
the undriven custom data bus. That bus floats high, so the read returns 0xFFFF
-- and because the low byte (0xFF) is not the 0xFC that the 8373 ECS Denise
drives, software still correctly detects OCS. Copperline returned the
deterministic-zero undriven-bus fallback instead, so the ID read back as 0x0000
on OCS.

Read $07C as the Denise revision id when it drives one (ECS 0xFFFC) and as the
float-high 0xFFFF otherwise, and list it as a readable register.

vAmigaTS Denise/Misc/Id/deniseid on OCS drops from 39.9% to 0.0% differing
pixels against the vAmiga 4.4 reference; ECS is unchanged and the standard demo
screenshots stay byte-identical (the change only affects an OCS read of $07C).
@LinuxJedi LinuxJedi merged commit 1ce5e7b into main Jul 5, 2026
7 checks passed
@LinuxJedi LinuxJedi deleted the fix/ocs-deniseid-floats-high branch July 5, 2026 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant