58 lines
3 KiB
Markdown
58 lines
3 KiB
Markdown
---
|
||
id: rmvm
|
||
tags: [computer-architecture, memory]
|
||
created: Monday, June 24, 2024
|
||
---
|
||
|
||
# ROM versus disk loading
|
||
|
||
I will explore the concept via the practical examples of cartridge-based and
|
||
disk-based video games console.
|
||
|
||
When you insert a disk into an Xbox, the game data is typically read from the
|
||
disk and transferred into the console's memory by the OS. If the game is
|
||
installed to the hard drive, this initially involves transferring substantial
|
||
amounts of data to speed up future access. When you insert a cartridge into a
|
||
console like the SNES, the data is not transferred in the same way. Instead, the
|
||
cartridge contains a ROM chip that, when inserted, integrates directly with the
|
||
motherboard. From the operating system’s point of view, this ROM chip behaves as
|
||
an extension of the system’s memory architecture.
|
||
|
||
The primary advantage of a ROM-based game is significantly reduced latency. The
|
||
game data can be accessed as rapidly as any other data moving along the buses of
|
||
the motherboard. With a disk, the data must first be read into a buffer and then
|
||
transferred to a memory address where it can be accessed by the CPU.
|
||
|
||
With a ROM, while the console CPU still uses its own RAM to run the game
|
||
(similar to disk-based systems), the game data on the ROM can be loaded into
|
||
this RAM more quickly because it is directly attached to the motherboard. This
|
||
makes the ROM cartridge effectively a fast, directly connected storage device.
|
||
|
||
However, despite its speed, the limitation of a ROM cartridge is its storage
|
||
capacity—it can hold only as much data as the chip can accommodate. In contrast,
|
||
a disk can store much more data. This larger storage capacity allows not just
|
||
for bigger and more complex games but also for the possibility of expanding the
|
||
game through additional data downloaded to the console's hard drive. Such
|
||
expansions or patches represent additional data from the console’s storage that,
|
||
combined with the original disk data, are synthesized in memory at runtime for
|
||
enhanced or updated gameplay experiences.
|
||
|
||
(Note however that modern cartridge-based consoles like the Nintendo Switch can
|
||
also combine ROM-data with expanded data from the console HDD, sourced from the
|
||
internet.)
|
||
|
||
Both disks and ROMs are forms of static storage in the context of a game
|
||
console. While disks can technically be overwritten with new data, in practice,
|
||
manufacturers implement various locks and protections to prevent this. Any
|
||
changes or additions to the game, such as patches or expansions, are not written
|
||
back to the original disk. Instead, these updates are stored on the console's
|
||
hard drive.
|
||
|
||
Therefore, if you download an expansion for a game on your Xbox, the original
|
||
disk remains unchanged as when you first purchased it. Consequently, if you were
|
||
to take that disk and load it on another Xbox, it would not include any of the
|
||
expansions or updates. The game would function in its original form, as the
|
||
additional content and updates reside solely on the hard drive of the first
|
||
console where they were downloaded.
|
||
|
||
## Related notes
|