GMA87: Difference between revisions

From Software Archive
Jump to navigation Jump to search
No edit summary
No edit summary
Line 14: Line 14:
if a sync length is longer than the second length a 1 is shifted in a byte<br>
if a sync length is longer than the second length a 1 is shifted in a byte<br>
if a sync length is shorter than the second length a 0 is shifted in a byte.
if a sync length is shorter than the second length a 0 is shifted in a byte.


GMA uses a single byte as EOR decode code that is determined on the basis of sync length on track 38.
GMA uses a single byte as EOR decode code that is determined on the basis of sync length on track 38.
 
===== Example from Exolon =====
Example from Exolon:
 
We know that the GMA byte decode code is 4F -> 01001111
We know that the GMA byte decode code is 4F -> 01001111



Revision as of 00:55, 21 September 2022

Description

On Track 38 look for signature of raw bytes after a sync: 69 XX XX XX A9

Should occur only once per track.

Logic

Starting from next sync 10 sync lengths are determined by counting on X register.

The next sync length is not evaluated.

The second sync length is used as reference length.

The following 8 sync lengths are compared to the second sync length
if a sync length is longer than the second length a 1 is shifted in a byte
if a sync length is shorter than the second length a 0 is shifted in a byte.

GMA uses a single byte as EOR decode code that is determined on the basis of sync length on track 38.

Example from Exolon

We know that the GMA byte decode code is 4F -> 01001111

On Track 38 we see in G64Conv text format of the track:

First the signature bytes:

sync 42
  ; Following raw bytes:  69 57 57 a9 a9 55 55 55 55 55 55 55 55 55 55 aa ff

Then the following syncs appear (raw bytes after syncs omitted):

  sync 39
  sync 87   <- This is the reference sync length
  sync 40   <- This is shorter -> 0
  sync 136  <- This is longer -> 1
  sync 40   <- This is shorter -> 0
  sync 40   <- This is shorter -> 0
  sync 136  <- This is longer -> 1
  sync 136  <- This is longer -> 1
  sync 136  <- This is longer -> 1
  sync 136  <- This is longer -> 1
  result of 8 bits after shift: 01001111 -> 4F

Pages that refer to this protection