Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It's a fair bit of engineering to design an interface to the original ROMs that can map them into the memory space of whatever modern hardware they're using. It's much easier to design an interface that allows you to bit-bang the data out of the ROM and snarf it into RAM. The loading game screen might've been the only way to keep costs below a certain threshold.

And I have a 2600+. Games usually take ~2-3s to load on it.



If you were to write a program to make the Atari 2600 copy its own ROM--not that A) it had the RAM and B) it ever had a need, it would very roughly take about 15-20 cycles per byte, and 15-20 more cycles per 256 bytes for looping. Heavily depends on the code used to copy it, probably less if optimized.

The 6507 is a 1Mhz cpu, and again very roughly about 64,000 microseconds to copy 4096 bytes, or twice as many to copy 8192 bytes. Under a second on the original hardware.

So even 2-3 seconds is a long time. Is the embedded OS on the 2600+ bit-banging the ROM via GPIO pins? Is it a Python script doing that from userspace (lol maybe something recycled from a ROM dumper's toolkit posted on some random forum in the early 00's)? Not bad for a script to do that in 2-3 seconds to be honest if that's what it is.


Interesting. I wonder why TFA said 15-20s? An optimized small Linux boot takes ~1s, so what is the delay from?

Still likely a lot faster than loading a PS1/2/3 game from optical disc. And miles ahead of installing a game on PS4/5 (and downloading gigabytes of patches.)


It's not clear if we're talking consistently about the sizes. If 15-20s is referring to a 7800 cartridge that's up to 48kb, that makes sense. This subthread is talking about 2600 games up to 4kb.

Also it's not clear how the console reads cartridges with bankswitching hardware. It can't really know if a cart has that. So it may just have to try all the common schemes on every cart, and read through the entire ROM space multiple times in case anything changed. That would account for the timing.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: