Rob Finch on Thu 21 Jul 2022 wrote:
I remember buying the RAM chips one or two at a time when I could afford it, until I had enough chips.
Kids nowadays won't believe that we bought RAM in individual bit slices. Actual conversation at an electronics retailer:-
Seller: You know that's one bit RAM. It won't work on its own.
Buyer: If I can get this one working, I'll come back and buy another seven. There's no point buying eight if I can't the first one to work.
Rob Finch on Fri 22 Jul 2022 wrote:
I felt it was better to have more smaller sprites, as larger images can be built out of smaller ones.
Smaller sprites are preferable, especially when they can be ganged.
Some systems are sprite only because sprites are sufficiently flexible. For example, sprites can be used to make a text display. Indeed, if you can extend your system to 80 sprites, you may have 80 column text as a corollary. It you weren't aiming for VIC-II compatibility, I would suggest a sprite only system where a double buffered line buffer is only populated with sprite data. If it is convenient in your implementation, this configuration could be offered as one of the extended modes.
I've briefly considered VIC-II compatibility within John West's C640 project. A quick win is to upscale 8*8 text (320*200 pixels) to 16*16 text (640*400 pixels) which is more suitable for VGA display. You are very brave to add sprites and maintain timing compatibility. I'd be much more inclined follow Atari's approach and use the legacy bitmaps and sprites as overlays. Either way, if the legacy display is decoupled and timings are maintained, there is scope to have a wider bus and, for example, 24 bit RGB polygon blitting. For memory map compatibility, the additional bus and memory do not have to be exposed to 6502. Only the blitter registers need to be accessible to 6502. From here, the next obvious step is a co-processor which feeds the polygon blitter. If bandwidth for display has migrated to a separate bus, 6502 low bus phase may be allocated to co-processor read operations. Co-processor writes may be restricted to a shadow set of polygon blitter registers using a separate write strobe. This averts the two sequential write problem on 65xx/68xx bus. Specifically, processor and co-processor can write to the same peripheral chip with abandon. Notably, this all works with low scale integration.
The general principle is that Commodore64 successors could have greatly exceeded the capability of Commodore Amiga systems.
VIC and VIC-II have notoriously tight timing but there remain many ways to extend them. There is an argument that VIC-II systems have cruft. However, I counter that x86 displays invariably have cruft derived from 6845 - and even clean sheets designs, such as the Amiga shipped with cruft from the outset. Specifically, the Amiga's HAM [Hold And Modify] mode was intended for military style flight simulator games working in YUV color-space. After a decision was made to switch to RGB rather than YUV, the HAM circuitry was not removed.