Skip to content

Canon X07 - fix VRAM access functions in T6834 subsystem emulation#14752

Merged
angelosa merged 1 commit intomamedev:masterfrom
Aurelien34:canon_x07_fix_vram_functions
Jan 27, 2026
Merged

Canon X07 - fix VRAM access functions in T6834 subsystem emulation#14752
angelosa merged 1 commit intomamedev:masterfrom
Aurelien34:canon_x07_fix_vram_functions

Conversation

@Aurelien34
Copy link
Contributor

Access by the Z80 main CPU to the VRAM is done through the T6834 subsystem, which hosts its own RAM.

In MAME, the subsystem functions are implemented using a simple switch/case statement.
Functions 0x05 and 0x06 allow subsystem RAM access. Access to the specific VRAM location did not take drawing functions impacts on VRAM.
With this changes, VRAM accesses (and only VRAM accesses) target the LCD component memory directly.

@Aurelien34 Aurelien34 marked this pull request as ready for review January 1, 2026 12:54
@Aurelien34
Copy link
Contributor Author

And it's working:
image

@Aurelien34 Aurelien34 force-pushed the canon_x07_fix_vram_functions branch from 44985fc to 247c51b Compare January 2, 2026 08:32
@angelosa angelosa self-requested a review January 2, 2026 12:21
Copy link
Member

@angelosa angelosa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The memory system should really use a standard memory map, this is something not reflected in header. I'll add it later after this is merged.

@Aurelien34
Copy link
Contributor Author

The memory system should really use a standard memory map, this is something not reflected in header. I'll add it later after this is merged.

I am doing some code on the X07 in the context of a game jam. I might have some other T6834 functions to implement or fix in the coming weeks.
Shoud I wait for you to makr changes to the memory management?
To do things correctly, the memery space should be clearly defined, the gralhic functions should access the VRAM section, and the VRAM should be transfered to the LCD every frame.
As the T6834 is not really implemented as a controller executing a program in ROM, it is hard to do things correctly :-(

@angelosa
Copy link
Member

angelosa commented Jan 2, 2026

Sorry but I don't have spare time to look at this in the short term, I'm just waiting for the CI to complete before applying.

@Aurelien34
Copy link
Contributor Author

Sorry but I don't have spare time to look at this in the short term, I'm just waiting for the CI to complete before applying.

I wasn't trying to tell you what to do, I'm just pointing out that this part of the driver is nowhere near perfect and there’s a huge amount of work to do to fix it.
Thanks for your work on this!

@angelosa angelosa merged commit bcfb2a2 into mamedev:master Jan 27, 2026
6 checks passed
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.

3 participants