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
 |