Mercurial > repos > blastem
comparison cdimage.c @ 2352:76dfad6a53b5
Fix bug in CD-ROM scrambling algorithm
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 18 Oct 2023 23:27:14 -0700 |
parents | 9f0c67e5c50a |
children |
comparison
equal
deleted
inserted
replaced
2351:8f3cfb77f1e3 | 2352:76dfad6a53b5 |
---|---|
7 #include "wave.h" | 7 #include "wave.h" |
8 | 8 |
9 uint8_t cdrom_scramble(uint16_t *lsfr, uint8_t data) | 9 uint8_t cdrom_scramble(uint16_t *lsfr, uint8_t data) |
10 { | 10 { |
11 data ^= *lsfr; | 11 data ^= *lsfr; |
12 uint16_t new_bit = *lsfr; | 12 for (int i = 0; i < 8; i++) |
13 *lsfr >>= 1; | 13 { |
14 new_bit = (new_bit ^ *lsfr) & 1; | 14 uint16_t new_bit = *lsfr; |
15 *lsfr |= new_bit << 14; | 15 *lsfr >>= 1; |
16 new_bit = (new_bit ^ *lsfr) & 1; | |
17 *lsfr |= new_bit << 14; | |
18 } | |
16 return data; | 19 return data; |
17 } | 20 } |
18 | 21 |
19 static char* cmd_start(char *cur) | 22 static char* cmd_start(char *cur) |
20 { | 23 { |