Formatting
This commit is contained in:
41
external/cic_nus_6105/n64_cic_nus_6105.cpp
vendored
41
external/cic_nus_6105/n64_cic_nus_6105.cpp
vendored
@@ -90,29 +90,22 @@
|
|||||||
|
|
||||||
#include "n64_cic_nus_6105.hpp"
|
#include "n64_cic_nus_6105.hpp"
|
||||||
|
|
||||||
void n64_cic_nus_6105(char chl[], char rsp[], int len)
|
void n64_cic_nus_6105(char chl[], char rsp[], int len) {
|
||||||
{
|
static char lut0[0x10] = {0x4, 0x7, 0xA, 0x7, 0xE, 0x5, 0xE, 0x1, 0xC, 0xF, 0x8, 0xF, 0x6, 0x3, 0x6, 0x9};
|
||||||
static char lut0[0x10] = {
|
static char lut1[0x10] = {0x4, 0x1, 0xA, 0x7, 0xE, 0x5, 0xE, 0x1, 0xC, 0x9, 0x8, 0x5, 0x6, 0x3, 0xC, 0x9};
|
||||||
0x4, 0x7, 0xA, 0x7, 0xE, 0x5, 0xE, 0x1,
|
char key, *lut;
|
||||||
0xC, 0xF, 0x8, 0xF, 0x6, 0x3, 0x6, 0x9
|
int i, sgn, mag, mod;
|
||||||
};
|
|
||||||
static char lut1[0x10] = {
|
|
||||||
0x4, 0x1, 0xA, 0x7, 0xE, 0x5, 0xE, 0x1,
|
|
||||||
0xC, 0x9, 0x8, 0x5, 0x6, 0x3, 0xC, 0x9
|
|
||||||
};
|
|
||||||
char key, *lut;
|
|
||||||
int i, sgn, mag, mod;
|
|
||||||
|
|
||||||
for (key = 0xB, lut = lut0, i = 0; i < len; i++) {
|
for (key = 0xB, lut = lut0, i = 0; i < len; i++) {
|
||||||
rsp[i] = (key + 5 * chl[i]) & 0xF;
|
rsp[i] = (key + 5 * chl[i]) & 0xF;
|
||||||
key = lut[rsp[i]];
|
key = lut[rsp[i]];
|
||||||
sgn = (rsp[i] >> 3) & 0x1;
|
sgn = (rsp[i] >> 3) & 0x1;
|
||||||
mag = ((sgn == 1) ? ~rsp[i] : rsp[i]) & 0x7;
|
mag = ((sgn == 1) ? ~rsp[i] : rsp[i]) & 0x7;
|
||||||
mod = (mag % 3 == 1) ? sgn : 1 - sgn;
|
mod = (mag % 3 == 1) ? sgn : 1 - sgn;
|
||||||
if (lut == lut1 && (rsp[i] == 0x1 || rsp[i] == 0x9))
|
if (lut == lut1 && (rsp[i] == 0x1 || rsp[i] == 0x9))
|
||||||
mod = 1;
|
mod = 1;
|
||||||
if (lut == lut1 && (rsp[i] == 0xB || rsp[i] == 0xE))
|
if (lut == lut1 && (rsp[i] == 0xB || rsp[i] == 0xE))
|
||||||
mod = 0;
|
mod = 0;
|
||||||
lut = (mod == 1) ? lut1 : lut0;
|
lut = (mod == 1) ? lut1 : lut0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user