Loading time: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 2: Line 2:


Comparition of loading times in various games (French): [[http://neogeocdworld.info/html/dossiers/temps_chargements.htm]]
Comparition of loading times in various games (French): [[http://neogeocdworld.info/html/dossiers/temps_chargements.htm]]
Wether on CD or CDZ there's a 4.48 seconds constant, and a 0.65 seconds overhead per file. Depending on the loading file list, the CD drive speed relates to 50~75% of the total loading time.


==Why ?==
==Why ?==
Line 51: Line 53:
The long, scary black screen before the initial loading is caused by the CD drive initialization and reading of the [[IPL]] file. It's scary because there's no loading bar and the drive makes funny noises (pickup slide, chirping lens coils).
The long, scary black screen before the initial loading is caused by the CD drive initialization and reading of the [[IPL]] file. It's scary because there's no loading bar and the drive makes funny noises (pickup slide, chirping lens coils).


All in all, on the NeoGeo CD, the CD drive speed makes up for only 60% of the loading time, 20% seeking (mechanical, by design of CD technology), and 20% buffering/copy (NeoGeo CPU and DRAM speed).
All in all, on the NeoGeo CD, the CD drive speed makes up for only 50~75% of the loading time, the rest is seeking (mechanical, by design of CD technology), and buffering/copy (NeoGeo CPU and DRAM speed).


TODO: Match that with the CD to CDZ ratio.
TODO: Match that with the CD to CDZ ratio.
Line 59: Line 61:
*Use a faster CD drive, which implies changing the CD host chip for a faster, compatible one (good luck !)
*Use a faster CD drive, which implies changing the CD host chip for a faster, compatible one (good luck !)
*Kick the [[68k]]'s butt so it goes faster: overclocking, using a 16MHz+ grade one
*Kick the [[68k]]'s butt so it goes faster: overclocking, using a 16MHz+ grade one
*Use faster DRAM, probably implies chaning DRAM controllers too
*Use faster DRAM, probably implies changing DRAM controllers too


Basically: Redesign 1/3 of the console :) Buy a damn MVS board.
Basically: Redesign 1/3 of the console :) Buy a damn MVS board.


[[Category:CD systems]]
[[Category:CD systems]]

Revision as of 03:18, 29 October 2015

Aka "the juggling monkey", loading times are a (shamefully) well known issue of arguably all the NeoGeo CD systems.

Comparition of loading times in various games (French): [[1]]

Wether on CD or CDZ there's a 4.48 seconds constant, and a 0.65 seconds overhead per file. Depending on the loading file list, the CD drive speed relates to 50~75% of the total loading time.

Why ?

Loading in CD systems is an inavoidable step. It allows the system's CPU to access all data randomly, from a media which can only be read in long, contiguous streams.

CDDA tracks are not loaded or even loadable, since they are read like a regular music CD while the game is running.

Back when the NeoGeo CD was designed, common CD drives used x1, x2 or x4 speeds for the most expensive ones. The base speed (x1) is 150kB/s, x2 is 300kB/s...

To make it clear: the NeoGeo CDs loading time issue is caused by large game data loaded by a slow CD drive.

To fill up all the NeoGeo CD's DRAM, which corresponds to the largest loading possible, it would ideally take 7MB/150kB = 47 seconds, and 7MB/300kB = 24 seconds on the CDZ.

Comparison with the Sega MegaCD

This is like comparing a Megadrive cart with a NeoGeo cart: one's bigger than the other.

The MegaCD also has a x1 drive, but only 0.75MB of DRAM (to check), which means around 9 times less loading memory than the NeoGeo CD. The games are just way bigger (code, graphics, sound...) on the NeoGeo.

Ideally and reality

It is commonly assumed that the "x" speed indication of a CD drive is directly related to the loading time.

Actually that is the ideal speed, which would correspond to loading a unique 600MB file into a zero-lag memory with infinite speed copy. This does not happen in reality.

Seeking

A CD is made of an unique, continuous track containing all the data. Seeking in this track can take a huge amount of time because it requires the CD drive to mechanically move the laser pickup head and wait for the required data to "pass by" while the CD is spinning. For example, seeking from the first to the last sector of a CD can take up to 4 seconds, regardless of the drive's data speed.

Since there are numerous files in a typical game CD, seeking times add up when multiples files need to be loaded.

The seeking times depend on the physical relative position of the file's data on the CD.

This also means that the crapload of files in Samurai RPG makes it the most innefficient game regarding loading times (not necessarily the longest).

Error correction

A "CD host chip" decodes and error-checks and corrects data from the (possibly scratched) CD in real time (no delay), but buffers the data in cache memory waiting for copy. This adds a small but frequent overhead on every CD sector loaded.

Copy

Each CD sector is then copied to the appropriate DRAM chip. The copy procedure is handled by the NeoGeo CPU itself (DMA sometimes ? Still slow...), which is slow (TODO: need average data throughput).

Razoola indicated that his CD Unibios optimized the copy procedure, reducing the total loading time a bit.

The initial black screen

The long, scary black screen before the initial loading is caused by the CD drive initialization and reading of the IPL file. It's scary because there's no loading bar and the drive makes funny noises (pickup slide, chirping lens coils).

All in all, on the NeoGeo CD, the CD drive speed makes up for only 50~75% of the loading time, the rest is seeking (mechanical, by design of CD technology), and buffering/copy (NeoGeo CPU and DRAM speed).

TODO: Match that with the CD to CDZ ratio.

How to improve

  • Use a faster CD drive, which implies changing the CD host chip for a faster, compatible one (good luck !)
  • Kick the 68k's butt so it goes faster: overclocking, using a 16MHz+ grade one
  • Use faster DRAM, probably implies changing DRAM controllers too

Basically: Redesign 1/3 of the console :) Buy a damn MVS board.