The other option is to decompress a sprite sheet in the background at about 8 tiles each frame. For a character like Donny or Tami from Haunted: Halloween '86, whose animations fill eight 1 KiB pages out of the game's 32 KiB CHR RAM, loading a sprite sheet when the player tags out takes about one second. For an enemy, whose sprite sheet is usually 1 page (for most enemies) or 2-3 pages (for bosses), it's done in a quarter second just before the camera reaches the enemy, and the player usually can't even tell that any sort of loading happened.
The Game Boy, Genesis, and Super NES use all CHR RAM all the time. Consider how they pull it off.
Genesis and SNES have DMA. GB has so little VRAM the issue does not affect it as much.
(After all, sound still works, and there's a tradition of starting the soundtrack before the picture in cinema as well as games anyway)
As to the other point, it's not a fair comparison to compare heavily animated CHR RAM bandwidth load to a impossible-to-animate CHR ROM load. The point is just that equal-sized CHR RAM can do a fine job of emulating CHR ROM.
Now if players accept Solstice: The Quest for the Staff of Demnos
Wait for PPU to boot up (3 frames)
Load 4 KiB of tiles for an ASCII font and a publisher logo (8 frames)
Load 2 KiB of nametables for copyright screen and publisher logo screen (4 frames)
So far 15 frames have elapsed, and the player is just barely removing their finger from the Power button on the Control Deck. But you have enough data loaded to display something.
Display copyright screen while loading 32 KiB of game tiles (256 frames)
Display "$publisher Presents" while loading 32 KiB of game tiles (256 frames)
Now you've been displaying notices and logos for 512 frames, or the exact amount of time that Solstice plays a simple fanfare-ish tune before beginning the arp spam for which composer Tim Follin is so famous. Now toss up a title screen using the 64 KiB of data you've loaded.
Or if players accept Mike Tyson's Punch-Out!!
Punch-Out!! begins with rendering off for three seconds, playing bells and crowd noises before launching into the Gillette jingle "Look Sharp". By the previous assumption, that's enough to load 90 KiB of data. After the player has chosen to start the game, it spends four more seconds at the title screen with the glove breaking through the logo followed by "Let's keep it clean! Now come out boxing!". There's another 30 KiB loaded.
Anyway, unless you need to do something like play a video on your title screen, you could probably load only what you need to get started at first and "background" load the rest. There's lots of ways to hide load times from the user, and this has been continuously relevant to game development across all platforms that have media that need loading over the years... though honestly stuff like this is often neglected.
I did that as a test, and then when the rom first boots up, i loaded all my game's 512 KB of graphics to the CHR-RAM thing without worrying about vblank or anything, cause the screen would be off anyways before the copyright ya know ?? ..and it still took like 10 or 15 seconds.
Felt super weird as if you were waiting for a playstation 1 game to startup after the "sony of america" screen thing.
It's still such a pain to code for, and the unskippable long waits will annoy some users. At that point it becomes "does the programmer's time to implement that cost more than designing a custom rom-ram board".
Code: Select all
innerloop: LDA (zp),Y STA $2007 INY BNE innerloop
I think I'm seeing better prices than that? Right now, I'm seeing 128Kx8 SRAMs for as low as 1.29USD/@100 (via Mouser), and 256Kx8 SRAMs for 2.08USD/@100 (via AVnet Europe).
In contrast, 5V flash I'm seeing 128Kx8 sectored Flash (SST39SF010A) as low as 0.75USD/@100 (via Digi-Key), and 256Kx8 whole-chip-erasable Flash (GLS27SF020) as low as 0.993USD/@100 (via Mouser).
The cheapest 5V RAM I can find at all is a 32Kx8 SRAM at 0.665USD/@100, but it feels a little fishy - only two distributors are offering that price and there's no volume discount (i.e. it smells like a close-out), so the same geometry for 0.905USD/@100 (via Arrow or Verical) is probably more trustworthy.
(Similarly, I found Arrow and Verical selling Micron's M29F200 256Kx8 5V flash for what also smells like a close-out price - 0.386USD/@100)
So ... all-in-all, manufacturing in the US can get a any flash + any RAM situation for roughly as much cost as a 256K RAM.
Not clear what the raw cost shipped for an unprogrammed MINDKIDS or COOLBOY cart would be. I can't even find them on Aliexpress, but I assume I'm looking in the wrong place.
There shouldn't be plural waits unless you're using the whole RAM as RAM, not as a fair comparison to the RAM+ROM situation.the unskippable long waits will annoy some users.