X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=testpico%2Fhcnt2linear.c;fp=testpico%2Fhcnt2linear.c;h=5f4c70843e2bd91164d419c08b10596887b53598;hb=e71680d5d5a8c60880f646c8b335ab67b709b4e1;hp=0000000000000000000000000000000000000000;hpb=234c45567cc77a4eca9cddca7daaacab27cab767;p=megadrive.git diff --git a/testpico/hcnt2linear.c b/testpico/hcnt2linear.c new file mode 100644 index 0000000..5f4c708 --- /dev/null +++ b/testpico/hcnt2linear.c @@ -0,0 +1,46 @@ +#include +#include + +//| Mode |H32 (RSx=00) |H40 (RSx=11) | +//|HCounter |[1]0x000-0x127 |[1]0x000-0x16C | 00-93 00-b6 +//|progression |[2]0x1D2-0x1FF |[2]0x1C9-0x1FF | e9-ff e4-ff + +int main() +{ + unsigned char result[256]; + int i, j, val, vals[420]; + + for (i = val = 0; val < 0x200; i++) + { + vals[i] = val++; + if (val == 0x16d) + val = 0x1C9; + } + assert(i == 420); + for (i = 0; i < 256; i++) + { + result[i] = 0; + for (j = 0; j < 420; j++) + if (vals[j] / 2 == i) + break; + if (j < 420) + result[i] = (255 * j + 210) / 419; + } + + printf("{"); + for (i = 0; i < 256; i++) + printf(" 0x%02x%s", result[i], i < 255 ? "," : ""); + printf(" }\n"); + + printf("{"); + for (i = 0; i < 64; i++) + printf(" 0x%02x%s", result[i*4+2], i < 63 ? "," : ""); + printf(" }\n"); + + printf("{"); + for (i = 0; i < 16; i++) + printf(" 0x%02x%s", result[i*16+8], i < 15 ? "," : ""); + printf(" }\n"); + + return 0; +}