A recent thread prompted me to ponder something:
A limiting factor I keep seeing people encounter on the NES, specifically when working with CHR-RAM, is chewed up CPU time when copying data from ROM into CHR-RAM/pattern table space. Sacrifices have to be made in general (and I take no issue with that), but there are cases where people basically want the best of both worlds: the benefits of CHR-RAM (RAM-based pattern table data), but with the large expansive capabilities of CHR-ROM (e.g. 512KBytes). There's even a wiki page discussing the pros/cons to both.
As such, I'd like to ask a hardware-related question: given that several homebrew-oriented mappers have been created in the past several years, why is it nobody has added basic hardware-based DMA capability to their mapper? I'm not talking something as complex as what the SNES has (especially not HDMA), nor an identical implementation, but rather a simple MMIO- and hardware-based mechanism for linearly copying data from ROM space to PPU RAM.
It's been a very long time since I've partaken in such discussions, but going purely off of (my now old and failing) memory, I can't recall this ever being proposed as a possibility. I imagine it complicates the PCB circuitry depending on how its implemented. Is this why it never came up? Or maybe it has and was shot down due to the fact that the pre-existing CHR-ROM vs. CHR-RAM methodology as they stand today work for most things?
Food for thought.
A limiting factor I keep seeing people encounter on the NES, specifically when working with CHR-RAM, is chewed up CPU time when copying data from ROM into CHR-RAM/pattern table space. Sacrifices have to be made in general (and I take no issue with that), but there are cases where people basically want the best of both worlds: the benefits of CHR-RAM (RAM-based pattern table data), but with the large expansive capabilities of CHR-ROM (e.g. 512KBytes). There's even a wiki page discussing the pros/cons to both.
As such, I'd like to ask a hardware-related question: given that several homebrew-oriented mappers have been created in the past several years, why is it nobody has added basic hardware-based DMA capability to their mapper? I'm not talking something as complex as what the SNES has (especially not HDMA), nor an identical implementation, but rather a simple MMIO- and hardware-based mechanism for linearly copying data from ROM space to PPU RAM.
It's been a very long time since I've partaken in such discussions, but going purely off of (my now old and failing) memory, I can't recall this ever being proposed as a possibility. I imagine it complicates the PCB circuitry depending on how its implemented. Is this why it never came up? Or maybe it has and was shot down due to the fact that the pre-existing CHR-ROM vs. CHR-RAM methodology as they stand today work for most things?
Food for thought.