mirror of https://github.com/nmlgc/ReC98.git
20 lines
447 B
C++
20 lines
447 B
C++
/// Score data file encryption and decryption algorithms
|
|
|
|
// Encrypts backwards.
|
|
#define scoredat_encode_byte_at(p, feedback, key1, key2) { \
|
|
p[0] = (p[0] - (key1 + feedback)); \
|
|
feedback = p[0]; \
|
|
_AL = key2; \
|
|
__asm { ror feedback, 3 } \
|
|
feedback ^= _AL; \
|
|
}
|
|
|
|
// Decrypts forwards.
|
|
#define scoredat_decode_byte_at(p, tmp, key1, key2) { \
|
|
tmp = p[1]; \
|
|
_AL = key2; \
|
|
__asm { ror tmp, 3 } \
|
|
tmp ^= _AL; \
|
|
p[0] = (key1 + tmp + p[0]); \
|
|
}
|