Skip to content

Add support for mapper 118 (TxSROM)#555

Merged
bfirsh merged 1 commit intomainfrom
bfirsh/mapper-118
Feb 15, 2026
Merged

Add support for mapper 118 (TxSROM)#555
bfirsh merged 1 commit intomainfrom
bfirsh/mapper-118

Conversation

@bfirsh
Copy link
Owner

@bfirsh bfirsh commented Feb 15, 2026

Summary

Implements mapper 118 (TxSROM), an MMC3 variant where nametable mirroring is controlled via bit 7 of CHR bank register values instead of the standard $A000 mirroring register. This enables single-screen and diagonal mirroring modes that standard MMC3 cannot produce.

The mapper is used by games like Armadillo, Pro Sport Hockey, and Goal! Two.

Implementation Details

  • $A000 mirroring register is bypassed (writes have no effect)
  • Bit 7 of CHR bank values (R0-R5) controls CIRAM A10 (nametable page selection)
  • Supports both 2KB and 1KB CHR banking modes with dynamic nametable mapping
  • Full save state support via JSON serialization

Testing

All existing tests pass (445 passed, 0 failed).

Implement MMC3 variant where nametable mirroring is controlled via bit 7 of CHR bank values instead of the $A000 register, enabling single-screen and diagonal mirroring modes. Used by games like Armadillo, Pro Sport Hockey, and Goal! Two.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@bfirsh bfirsh merged commit 3413b34 into main Feb 15, 2026
5 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.

1 participant