Skip to content

MMC5 (Mapper 5): completely non-functional stub #596

@bfirsh

Description

@bfirsh

Summary

The Mapper 5 (MMC5) implementation calls methods that don't exist anywhere in the codebase. Any game using this mapper will crash immediately.

Missing methods called

  • `this.SetBank_SRAM(3, value & 3)` — line 61
  • `this.SetBank_CPU(address, value)` — line 67
  • `this.SetBank_PPU()` — lines 79, 88
  • `this.nes.cpu.ClearIRQ()` — lines 101, 105

Other issues

  • Many instance properties used but never initialized (`nametable_type`, `chr_page`, `chr_mode`, `irq_status`, etc.)
  • `loadROM()` error message says "UNROM" instead of "MMC5"
  • No battery RAM loading

Affected games

Castlevania III: Dracula's Curse, Just Breed, Laser Invasion, Metal Slader Glory, Uncharted Waters

Recommendation

Either implement MMC5 properly or remove it from the mapper list with a clear error message explaining it's unsupported. The current stub is worse than no support because it crashes silently.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugcomponent: mapperMemory mappers (mappers/)difficulty: hardComplex change spanning multiple subsystems or requiring deep NES knowledgepriority: highSignificantly wrong behavior affecting many games

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions