Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Fix TMS9918A display blank bit - tiles rendered when display blanked#516

Merged
Oliodh merged 2 commits into
mainHexagon/hemulator:mainfrom
copilot/fix-blue-screen-issueHexagon/hemulator:copilot/fix-blue-screen-issueCopy head branch name to clipboard
Jan 19, 2026
Merged

Fix TMS9918A display blank bit - tiles rendered when display blanked#516
Oliodh merged 2 commits into
mainHexagon/hemulator:mainfrom
copilot/fix-blue-screen-issueHexagon/hemulator:copilot/fix-blue-screen-issueCopy head branch name to clipboard

Conversation

Copilot AI commented Jan 19, 2026

Copy link
Copy Markdown
Contributor

The TMS9918A VDP was rendering background tiles even when the display blank bit (register 1, bit 6) was set. This caused games like Bomb Jack on SG-1000 to show a blue screen with garbled tiles instead of just the backdrop color during initialization.

Changes

crates/core/src/tms9918a.rs

  • Moved display blank check from sprite-only to encompass both tile and sprite rendering
  • When blank bit is set, only backdrop color renders (no tiles, no sprites)

Before:

fn render_scanline(&mut self, line: u8) {
    // Clear to backdrop
    // Render tiles (always)
    if !display_blanked {
        self.render_sprites(line, line_offset);  // Only sprites checked blank bit
    }
}

After:

fn render_scanline(&mut self, line: u8) {
    let display_blanked = (self.registers[1] & 0x40) != 0;
    // Clear to backdrop
    if !display_blanked {
        // Render tiles
        // Render sprites
    }
}

Impact

Affects SG-1000 and ColecoVision (both use TMS9918A). Games using display blanking during screen transitions or initialization will now render correctly.

Documentation:

  • Updated SG-1000 and ColecoVision READMEs with fix details
Original prompt

bomb jack sg 1000 only blue screen


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Co-authored-by: Oliodh <249356858+Oliodh@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix blue screen issue in Bomb Jack SG 1000 Fix TMS9918A display blank bit - tiles rendered when display blanked Jan 19, 2026
Copilot AI requested a review from Oliodh January 19, 2026 13:09
@Oliodh
Oliodh requested a review from Copilot January 19, 2026 13:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes a bug in the TMS9918A VDP emulation where background tiles were still being rendered even when the display blank bit was set. This affected games like Bomb Jack on SG-1000 that relied on display blanking during initialization, causing them to show garbled tiles instead of just the backdrop color.

Changes:

  • Fixed display blank bit handling to disable both tile and sprite rendering when bit 6 of register 1 is set
  • Updated documentation in SG-1000 and ColecoVision READMEs to reflect the fix

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
crates/core/src/tms9918a.rs Moved display blank check to encompass both tile and sprite rendering instead of only sprites
crates/systems/sg1000/README.md Added documentation about the display blanking fix
crates/systems/colecovision/README.md Added documentation about the display blanking fix with proper formatting

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Oliodh
Oliodh marked this pull request as ready for review January 19, 2026 13:12
@Oliodh
Oliodh merged commit 6dd07a2 into main Jan 19, 2026
6 checks passed
@Oliodh
Oliodh deleted the copilot/fix-blue-screen-issue branch January 19, 2026 13:12
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

Morty Proxy This is a proxified and sanitized view of the page, visit original site.