diff --git a/src/boot/boot.c b/src/boot/boot.c index 58f89bc40..7b6cd32ae 100644 --- a/src/boot/boot.c +++ b/src/boot/boot.c @@ -1295,7 +1295,7 @@ glabel func000019f4 /* 1a34: 24a5d900 */ addiu $a1,$a1,%lo(var8008d900) /* 1a38: 2484dbd0 */ addiu $a0,$a0,%lo(var8008dbd0) /* 1a3c: 2406001e */ addiu $a2,$zero,0x1e -/* 1a40: 0c000713 */ jal func00001c4c +/* 1a40: 0c000713 */ jal osCreateScheduler /* 1a44: 24070001 */ addiu $a3,$zero,0x1 /* 1a48: 10000006 */ b .L00001a64 /* 1a4c: 00000000 */ nop @@ -1303,7 +1303,7 @@ glabel func000019f4 /* 1a50: 3c058009 */ lui $a1,%hi(var8008d900) /* 1a54: 24a5d900 */ addiu $a1,$a1,%lo(var8008d900) /* 1a58: 24060002 */ addiu $a2,$zero,0x2 -/* 1a5c: 0c000713 */ jal func00001c4c +/* 1a5c: 0c000713 */ jal osCreateScheduler /* 1a60: 24070001 */ addiu $a3,$zero,0x1 .L00001a64: /* 1a64: 3c048009 */ lui $a0,%hi(var8008dbd0) @@ -1490,137 +1490,50 @@ void func00001b98(u32 value) } } -void func00001c28(void) +void osCreateLog(void) { var8005ce70 = osGetCount(); } -GLOBAL_ASM( -glabel func00001c4c -/* 1c4c: 27bdffd8 */ addiu $sp,$sp,-40 -/* 1c50: afbf0024 */ sw $ra,0x24($sp) -/* 1c54: afb0001c */ sw $s0,0x1c($sp) -/* 1c58: afb10020 */ sw $s1,0x20($sp) -/* 1c5c: afa60030 */ sw $a2,0x30($sp) -/* 1c60: afa70034 */ sw $a3,0x34($sp) -/* 1c64: 240e0001 */ addiu $t6,$zero,0x1 -/* 1c68: 240f0005 */ addiu $t7,$zero,0x5 -/* 1c6c: 00808025 */ or $s0,$a0,$zero -/* 1c70: ac8000c8 */ sw $zero,0xc8($a0) -/* 1c74: ac8000cc */ sw $zero,0xcc($a0) -/* 1c78: ac8000b4 */ sw $zero,0xb4($a0) -/* 1c7c: ac8000d0 */ sw $zero,0xd0($a0) -/* 1c80: ac8000b8 */ sw $zero,0xb8($a0) -/* 1c84: ac8000bc */ sw $zero,0xbc($a0) -/* 1c88: ac8000c0 */ sw $zero,0xc0($a0) -/* 1c8c: ac8000c4 */ sw $zero,0xc4($a0) -/* 1c90: a48e0000 */ sh $t6,0x0($a0) -/* 1c94: a48f0020 */ sh $t7,0x20($a0) -/* 1c98: 0c000bdc */ jal resetThreadCreate -/* 1c9c: ac8500b0 */ sw $a1,0xb0($a0) -/* 1ca0: 26110040 */ addiu $s1,$s0,0x40 -/* 1ca4: 02202025 */ or $a0,$s1,$zero -/* 1ca8: 26050058 */ addiu $a1,$s0,0x58 -/* 1cac: 0c0120d0 */ jal osCreateMesgQueue -/* 1cb0: 24060008 */ addiu $a2,$zero,0x8 -/* 1cb4: 26040078 */ addiu $a0,$s0,0x78 -/* 1cb8: 26050090 */ addiu $a1,$s0,0x90 -/* 1cbc: 0c0120d0 */ jal osCreateMesgQueue -/* 1cc0: 24060008 */ addiu $a2,$zero,0x8 -/* 1cc4: 0c000c14 */ jal osCreateViManager -/* 1cc8: 240400fe */ addiu $a0,$zero,0xfe -/* 1ccc: 93b80033 */ lbu $t8,0x33($sp) -/* 1cd0: 3c098006 */ lui $t1,%hi(var8005f710) -/* 1cd4: 2529f710 */ addiu $t1,$t1,%lo(var8005f710) -/* 1cd8: 0018c880 */ sll $t9,$t8,0x2 -/* 1cdc: 0338c821 */ addu $t9,$t9,$t8 -/* 1ce0: 0019c900 */ sll $t9,$t9,0x4 -/* 1ce4: 03291021 */ addu $v0,$t9,$t1 -/* 1ce8: 8c4a001c */ lw $t2,0x1c($v0) -/* 1cec: 3c018009 */ lui $at,%hi(var8008de08) -/* 1cf0: 3c038009 */ lui $v1,%hi(var8008dd60) -/* 1cf4: ac2ade08 */ sw $t2,%lo(var8008de08)($at) -/* 1cf8: 8c4b0030 */ lw $t3,0x30($v0) -/* 1cfc: 3c018009 */ lui $at,%hi(var8008de0c) -/* 1d00: 3c078009 */ lui $a3,%hi(var8008dd68) -/* 1d04: ac2bde0c */ sw $t3,%lo(var8008de0c)($at) -/* 1d08: 8c4c0044 */ lw $t4,0x44($v0) -/* 1d0c: 3c018009 */ lui $at,%hi(var8008de10) -/* 1d10: 24e7dd68 */ addiu $a3,$a3,%lo(var8008dd68) -/* 1d14: 2463dd60 */ addiu $v1,$v1,%lo(var8008dd60) -/* 1d18: 3c088009 */ lui $t0,%hi(var8008ddb8) -/* 1d1c: ac2cde10 */ sw $t4,%lo(var8008de10)($at) -/* 1d20: 2508ddb8 */ addiu $t0,$t0,%lo(var8008ddb8) -/* 1d24: ac670000 */ sw $a3,0x0($v1) -/* 1d28: ac680004 */ sw $t0,0x4($v1) -/* 1d2c: 00e0c025 */ or $t8,$a3,$zero -/* 1d30: 00407825 */ or $t7,$v0,$zero -/* 1d34: 244e0048 */ addiu $t6,$v0,0x48 -.L00001d38: -/* 1d38: 8de10000 */ lw $at,0x0($t7) -/* 1d3c: 25ef000c */ addiu $t7,$t7,0xc -/* 1d40: 2718000c */ addiu $t8,$t8,0xc -/* 1d44: af01fff4 */ sw $at,-0xc($t8) -/* 1d48: 8de1fff8 */ lw $at,-0x8($t7) -/* 1d4c: af01fff8 */ sw $at,-0x8($t8) -/* 1d50: 8de1fffc */ lw $at,-0x4($t7) -/* 1d54: 15eefff8 */ bne $t7,$t6,.L00001d38 -/* 1d58: af01fffc */ sw $at,-0x4($t8) -/* 1d5c: 8de10000 */ lw $at,0x0($t7) -/* 1d60: 00405025 */ or $t2,$v0,$zero -/* 1d64: 01005825 */ or $t3,$t0,$zero -/* 1d68: af010000 */ sw $at,0x0($t8) -/* 1d6c: 8dee0004 */ lw $t6,0x4($t7) -/* 1d70: 24490048 */ addiu $t1,$v0,0x48 -/* 1d74: af0e0004 */ sw $t6,0x4($t8) -.L00001d78: -/* 1d78: 8d410000 */ lw $at,0x0($t2) -/* 1d7c: 254a000c */ addiu $t2,$t2,0xc -/* 1d80: 256b000c */ addiu $t3,$t3,0xc -/* 1d84: ad61fff4 */ sw $at,-0xc($t3) -/* 1d88: 8d41fff8 */ lw $at,-0x8($t2) -/* 1d8c: ad61fff8 */ sw $at,-0x8($t3) -/* 1d90: 8d41fffc */ lw $at,-0x4($t2) -/* 1d94: 1549fff8 */ bne $t2,$t1,.L00001d78 -/* 1d98: ad61fffc */ sw $at,-0x4($t3) -/* 1d9c: 8d410000 */ lw $at,0x0($t2) -/* 1da0: 24040004 */ addiu $a0,$zero,0x4 -/* 1da4: 02202825 */ or $a1,$s1,$zero -/* 1da8: ad610000 */ sw $at,0x0($t3) -/* 1dac: 8d490004 */ lw $t1,0x4($t2) -/* 1db0: 2406029b */ addiu $a2,$zero,0x29b -/* 1db4: 0c012148 */ jal osSetEventMesg -/* 1db8: ad690004 */ sw $t1,0x4($t3) -/* 1dbc: 24040009 */ addiu $a0,$zero,0x9 -/* 1dc0: 02202825 */ or $a1,$s1,$zero -/* 1dc4: 0c012148 */ jal osSetEventMesg -/* 1dc8: 2406029c */ addiu $a2,$zero,0x29c -/* 1dcc: 02202025 */ or $a0,$s1,$zero -/* 1dd0: 2405029a */ addiu $a1,$zero,0x29a -/* 1dd4: 0c012178 */ jal func000485e0 -/* 1dd8: 8fa60034 */ lw $a2,0x34($sp) -/* 1ddc: 0c00070a */ jal func00001c28 -/* 1de0: 00000000 */ nop -/* 1de4: 24040002 */ addiu $a0,$zero,0x2 -/* 1de8: 0c00062b */ jal allocateStack -/* 1dec: 24050400 */ addiu $a1,$zero,0x400 -/* 1df0: 8e0400b0 */ lw $a0,0xb0($s0) -/* 1df4: 3c067000 */ lui $a2,%hi(func00001e94) -/* 1df8: 240c001e */ addiu $t4,$zero,0x1e -/* 1dfc: afac0014 */ sw $t4,0x14($sp) -/* 1e00: 24c61e94 */ addiu $a2,$a2,%lo(func00001e94) -/* 1e04: afa20010 */ sw $v0,0x10($sp) -/* 1e08: 24050002 */ addiu $a1,$zero,0x2 -/* 1e0c: 0c000fb8 */ jal osCreateThread -/* 1e10: 02003825 */ or $a3,$s0,$zero -/* 1e14: 0c01207c */ jal osStartThread -/* 1e18: 8e0400b0 */ lw $a0,0xb0($s0) -/* 1e1c: 8fbf0024 */ lw $ra,0x24($sp) -/* 1e20: 8fb0001c */ lw $s0,0x1c($sp) -/* 1e24: 8fb10020 */ lw $s1,0x20($sp) -/* 1e28: 03e00008 */ jr $ra -/* 1e2c: 27bd0028 */ addiu $sp,$sp,0x28 -); +void osCreateScheduler(OSSched *sc, void *stack, u8 mode, u32 numFields) +{ + sc->curRSPTask = 0; + sc->curRDPTask = 0; + sc->clientList = 0; + sc->frameCount = 0; + sc->audioListHead = 0; + sc->gfxListHead = 0; + sc->audioListTail = 0; + sc->gfxListTail = 0; + sc->retraceMsg.type = OS_SC_RETRACE_MSG; + sc->prenmiMsg.type = 5; // OS_SC_PRE_NMI_MSG + sc->thread = stack; + + resetThreadCreate(); + + osCreateMesgQueue(&sc->interruptQ, sc->intBuf, OS_SC_MAX_MESGS); + osCreateMesgQueue(&sc->cmdQ, sc->cmdMsgBuf, OS_SC_MAX_MESGS); + + osCreateViManager(OS_PRIORITY_VIMGR); + + var8008de08 = osViModeTable[mode].comRegs.hStart; + var8008de0c = osViModeTable[mode].fldRegs[0].vStart; + var8008de10 = osViModeTable[mode].fldRegs[1].vStart; + + var8008dd60[0] = &var8008dd68; + var8008dd60[1] = &var8008ddb8; + + var8008dd68 = osViModeTable[mode]; + var8008ddb8 = osViModeTable[mode]; + + osSetEventMesg(OS_EVENT_SP, &sc->interruptQ, (OSMesg)RSP_DONE_MSG); + osSetEventMesg(OS_EVENT_DP, &sc->interruptQ, (OSMesg)RDP_DONE_MSG); + + osViSetEvent(&sc->interruptQ, (OSMesg)VIDEO_MSG, numFields); + osCreateLog(); + osCreateThread(sc->thread, THREAD_SCHED, &__scMain, sc, allocateStack(THREAD_SCHED, 0x400), 30); + osStartThread(sc->thread); +} GLOBAL_ASM( glabel func00001e30 @@ -1700,7 +1613,7 @@ glabel func00001e8c ); GLOBAL_ASM( -glabel func00001e94 +glabel __scMain /* 1e94: 27bdffb0 */ addiu $sp,$sp,-80 /* 1e98: afbf0034 */ sw $ra,0x34($sp) /* 1e9c: afb70030 */ sw $s7,0x30($sp) @@ -2357,12 +2270,12 @@ glabel func00002768 /* 2920: adcc0004 */ sw $t4,0x4($t6) /* 2924: 3c0d8006 */ lui $t5,%hi(var8005ce74) /* 2928: 8dadce74 */ lw $t5,%lo(var8005ce74)($t5) -/* 292c: 3c048009 */ lui $a0,%hi(var8008dd64) +/* 292c: 3c048009 */ lui $a0,%hi(var8008dd60+0x4) /* 2930: 000dc080 */ sll $t8,$t5,0x2 /* 2934: 00187823 */ negu $t7,$t8 /* 2938: 008f2021 */ addu $a0,$a0,$t7 /* 293c: 0c012354 */ jal func00048d50 -/* 2940: 8c84dd64 */ lw $a0,%lo(var8008dd64)($a0) +/* 2940: 8c84dd64 */ lw $a0,%lo(var8008dd60+0x4)($a0) /* 2944: 3c048006 */ lui $a0,%hi(var8005ce90+0x3) /* 2948: 0c012338 */ jal func00048ce0 /* 294c: 9084ce93 */ lbu $a0,%lo(var8005ce90+0x3)($a0) diff --git a/src/boot/reset.c b/src/boot/reset.c index 6b67ceeee..b876992a1 100644 --- a/src/boot/reset.c +++ b/src/boot/reset.c @@ -30,12 +30,12 @@ glabel resetproc /* 2e54: 24010002 */ addiu $at,$zero,0x2 /* 2e58: 24020400 */ addiu $v0,$zero,0x400 /* 2e5c: 15e10004 */ bne $t7,$at,.L00002e70 -/* 2e60: 3c048006 */ lui $a0,%hi(var8005f7b0) -/* 2e64: 3c048006 */ lui $a0,%hi(var80060070) +/* 2e60: 3c048006 */ lui $a0,%hi(osViModeTable+0xa0) +/* 2e64: 3c048006 */ lui $a0,%hi(osViModeTable+0x960) /* 2e68: 10000002 */ b .L00002e74 -/* 2e6c: 24840070 */ addiu $a0,$a0,%lo(var80060070) +/* 2e6c: 24840070 */ addiu $a0,$a0,%lo(osViModeTable+0x960) .L00002e70: -/* 2e70: 2484f7b0 */ addiu $a0,$a0,%lo(var8005f7b0) +/* 2e70: 2484f7b0 */ addiu $a0,$a0,%lo(osViModeTable+0xa0) .L00002e74: /* 2e74: ac82002c */ sw $v0,0x2c($a0) /* 2e78: 0c012354 */ jal func00048d50 @@ -87,9 +87,9 @@ glabel resetproc /* 2f2c: 1420ffed */ bnez $at,.L00002ee4 /* 2f30: 00000000 */ nop .L00002f34: -/* 2f34: 3c048006 */ lui $a0,%hi(var8005f7b0) +/* 2f34: 3c048006 */ lui $a0,%hi(osViModeTable+0xa0) /* 2f38: 0c005467 */ jal func0001519c -/* 2f3c: 2484f7b0 */ addiu $a0,$a0,%lo(var8005f7b0) +/* 2f3c: 2484f7b0 */ addiu $a0,$a0,%lo(osViModeTable+0xa0) .L00002f40: /* 2f40: 1000ffff */ b .L00002f40 /* 2f44: 00000000 */ nop diff --git a/src/game/chr/chraction.c b/src/game/chr/chraction.c index f2a25f968..7b9622e47 100644 --- a/src/game/chr/chraction.c +++ b/src/game/chr/chraction.c @@ -3104,7 +3104,7 @@ glabel var7f1a8d44 .L0f031fd0: /* f031fd0: 271852b8 */ addiu $t8,$t8,%lo(var800652b8) /* f031fd4: 145801c9 */ bne $v0,$t8,.L0f0326fc -/* f031fd8: 3c198006 */ lui $t9,%hi(var80060000) +/* f031fd8: 3c198006 */ lui $t9,%hi(var800652b8+0x4) /* f031fdc: 0c00744f */ jal modelGetAnimNum /* f031fe0: 8e040020 */ lw $a0,0x20($s0) /* f031fe4: 24010269 */ addiu $at,$zero,0x269 @@ -3411,7 +3411,7 @@ glabel var7f1a8d44 /* f032458: 8fb90040 */ lw $t9,0x40($sp) /* f03245c: 8fa60034 */ lw $a2,0x34($sp) /* f032460: 8fa90038 */ lw $t1,0x38($sp) -/* f032464: 8f380000 */ lw $t8,%lo(var80060000)($t9) +/* f032464: 8f380000 */ lw $t8,0x0($t9) /* f032468: 9204032f */ lbu $a0,0x32f($s0) /* f03246c: 03061821 */ addu $v1,$t8,$a2 /* f032470: 8c6d000c */ lw $t5,0xc($v1) @@ -3593,7 +3593,7 @@ glabel var7f1a8d44 /* f0326f4: 100000ae */ b .L0f0329b0 /* f0326f8: 8fa20040 */ lw $v0,0x40($sp) .L0f0326fc: -/* f0326fc: 273952bc */ addiu $t9,$t9,0x52bc +/* f0326fc: 273952bc */ addiu $t9,$t9,%lo(var800652b8+0x4) /* f032700: 145900ab */ bne $v0,$t9,.L0f0329b0 /* f032704: 3c017f1b */ lui $at,%hi(var7f1a8d40) /* f032708: c42a8d40 */ lwc1 $f10,%lo(var7f1a8d40)($at) diff --git a/src/game/data/data_003dc0.c b/src/game/data/data_003dc0.c index 99474fb54..869f77907 100644 --- a/src/game/data/data_003dc0.c +++ b/src/game/data/data_003dc0.c @@ -525,846 +525,1471 @@ u32 var8005f700 = 0x00000000; u32 var8005f704 = 0x00000000; u32 var8005f708 = 0x00000000; u32 var8005f70c = 0x00000000; -u32 var8005f710 = 0x00000000; -u32 var8005f714 = 0x0000320e; -u32 var8005f718 = 0x00000140; -u32 var8005f71c = 0x03e52239; -u32 var8005f720 = 0x0000020d; -u32 var8005f724 = 0x00000c15; -u32 var8005f728 = 0x0c150c15; -u32 var8005f72c = 0x006c02ec; -u32 var8005f730 = 0x00000200; -u32 var8005f734 = 0x00000000; -u32 var8005f738 = 0x00000280; -u32 var8005f73c = 0x00000400; -u32 var8005f740 = 0x002501ff; -u32 var8005f744 = 0x000e0204; -u32 var8005f748 = 0x00000002; -u32 var8005f74c = 0x00000280; -u32 var8005f750 = 0x00000400; -u32 var8005f754 = 0x002501ff; -u32 var8005f758 = 0x000e0204; -u32 var8005f75c = 0x00000002; -u32 var8005f760 = 0x01000000; -u32 var8005f764 = 0x0000324e; -u32 var8005f768 = 0x00000140; -u32 var8005f76c = 0x03e52239; -u32 var8005f770 = 0x0000020c; -u32 var8005f774 = 0x00000c15; -u32 var8005f778 = 0x0c150c15; -u32 var8005f77c = 0x006c02ec; -u32 var8005f780 = 0x00000200; -u32 var8005f784 = 0x00000000; -u32 var8005f788 = 0x00000280; -u32 var8005f78c = 0x01000400; -u32 var8005f790 = 0x002301fd; -u32 var8005f794 = 0x000e0204; -u32 var8005f798 = 0x00000002; -u32 var8005f79c = 0x00000280; -u32 var8005f7a0 = 0x03000400; -u32 var8005f7a4 = 0x002501ff; -u32 var8005f7a8 = 0x000e0204; -u32 var8005f7ac = 0x00000002; -u32 var8005f7b0 = 0x02000000; -u32 var8005f7b4 = 0x0000311e; -u32 var8005f7b8 = 0x00000140; -u32 var8005f7bc = 0x03e52239; -u32 var8005f7c0 = 0x0000020d; -u32 var8005f7c4 = 0x00000c15; -u32 var8005f7c8 = 0x0c150c15; -u32 var8005f7cc = 0x006c02ec; -u32 var8005f7d0 = 0x00000200; -u32 var8005f7d4 = 0x00000000; -u32 var8005f7d8 = 0x00000280; -u32 var8005f7dc = 0x00000400; -u32 var8005f7e0 = 0x002501ff; -u32 var8005f7e4 = 0x000e0204; -u32 var8005f7e8 = 0x00000002; -u32 var8005f7ec = 0x00000280; -u32 var8005f7f0 = 0x00000400; -u32 var8005f7f4 = 0x002501ff; -u32 var8005f7f8 = 0x000e0204; -u32 var8005f7fc = 0x00000002; -u32 var8005f800 = 0x03000000; -u32 var8005f804 = 0x0000305e; -u32 var8005f808 = 0x00000140; -u32 var8005f80c = 0x03e52239; -u32 var8005f810 = 0x0000020c; -u32 var8005f814 = 0x00000c15; -u32 var8005f818 = 0x0c150c15; -u32 var8005f81c = 0x006c02ec; -u32 var8005f820 = 0x00000200; -u32 var8005f824 = 0x00000000; -u32 var8005f828 = 0x00000280; -u32 var8005f82c = 0x01000400; -u32 var8005f830 = 0x002301fd; -u32 var8005f834 = 0x000e0204; -u32 var8005f838 = 0x00000002; -u32 var8005f83c = 0x00000280; -u32 var8005f840 = 0x03000400; -u32 var8005f844 = 0x002501ff; -u32 var8005f848 = 0x000e0204; -u32 var8005f84c = 0x00000002; -u32 var8005f850 = 0x04000000; -u32 var8005f854 = 0x0000330f; -u32 var8005f858 = 0x00000140; -u32 var8005f85c = 0x03e52239; -u32 var8005f860 = 0x0000020d; -u32 var8005f864 = 0x00000c15; -u32 var8005f868 = 0x0c150c15; -u32 var8005f86c = 0x006c02ec; -u32 var8005f870 = 0x00000200; -u32 var8005f874 = 0x00000000; -u32 var8005f878 = 0x00000500; -u32 var8005f87c = 0x00000400; -u32 var8005f880 = 0x002501ff; -u32 var8005f884 = 0x000e0204; -u32 var8005f888 = 0x00000002; -u32 var8005f88c = 0x00000500; -u32 var8005f890 = 0x00000400; -u32 var8005f894 = 0x002501ff; -u32 var8005f898 = 0x000e0204; -u32 var8005f89c = 0x00000002; -u32 var8005f8a0 = 0x05000000; -u32 var8005f8a4 = 0x0000324f; -u32 var8005f8a8 = 0x00000140; -u32 var8005f8ac = 0x03e52239; -u32 var8005f8b0 = 0x0000020c; -u32 var8005f8b4 = 0x00000c15; -u32 var8005f8b8 = 0x0c150c15; -u32 var8005f8bc = 0x006c02ec; -u32 var8005f8c0 = 0x00000200; -u32 var8005f8c4 = 0x00000000; -u32 var8005f8c8 = 0x00000500; -u32 var8005f8cc = 0x01000400; -u32 var8005f8d0 = 0x002301fd; -u32 var8005f8d4 = 0x000e0204; -u32 var8005f8d8 = 0x00000002; -u32 var8005f8dc = 0x00000500; -u32 var8005f8e0 = 0x03000400; -u32 var8005f8e4 = 0x002501ff; -u32 var8005f8e8 = 0x000e0204; -u32 var8005f8ec = 0x00000002; -u32 var8005f8f0 = 0x06000000; -u32 var8005f8f4 = 0x0000301f; -u32 var8005f8f8 = 0x00000140; -u32 var8005f8fc = 0x03e52239; -u32 var8005f900 = 0x0000020d; -u32 var8005f904 = 0x00000c15; -u32 var8005f908 = 0x0c150c15; -u32 var8005f90c = 0x006c02ec; -u32 var8005f910 = 0x00000200; -u32 var8005f914 = 0x00000000; -u32 var8005f918 = 0x00000500; -u32 var8005f91c = 0x00000400; -u32 var8005f920 = 0x002501ff; -u32 var8005f924 = 0x000e0204; -u32 var8005f928 = 0x00000002; -u32 var8005f92c = 0x00000500; -u32 var8005f930 = 0x00000400; -u32 var8005f934 = 0x002501ff; -u32 var8005f938 = 0x000e0204; -u32 var8005f93c = 0x00000002; -u32 var8005f940 = 0x07000000; -u32 var8005f944 = 0x0000305f; -u32 var8005f948 = 0x00000140; -u32 var8005f94c = 0x03e52239; -u32 var8005f950 = 0x0000020c; -u32 var8005f954 = 0x00000c15; -u32 var8005f958 = 0x0c150c15; -u32 var8005f95c = 0x006c02ec; -u32 var8005f960 = 0x00000200; -u32 var8005f964 = 0x00000000; -u32 var8005f968 = 0x00000500; -u32 var8005f96c = 0x01000400; -u32 var8005f970 = 0x002301fd; -u32 var8005f974 = 0x000e0204; -u32 var8005f978 = 0x00000002; -u32 var8005f97c = 0x00000500; -u32 var8005f980 = 0x03000400; -u32 var8005f984 = 0x002501ff; -u32 var8005f988 = 0x000e0204; -u32 var8005f98c = 0x00000002; -u32 var8005f990 = 0x08000000; -u32 var8005f994 = 0x0000324e; -u32 var8005f998 = 0x00000500; -u32 var8005f99c = 0x03e52239; -u32 var8005f9a0 = 0x0000020c; -u32 var8005f9a4 = 0x00000c15; -u32 var8005f9a8 = 0x0c150c15; -u32 var8005f9ac = 0x006c02ec; -u32 var8005f9b0 = 0x00000400; -u32 var8005f9b4 = 0x00000000; -u32 var8005f9b8 = 0x00000500; -u32 var8005f9bc = 0x00000400; -u32 var8005f9c0 = 0x002301fd; -u32 var8005f9c4 = 0x000e0204; -u32 var8005f9c8 = 0x00000002; -u32 var8005f9cc = 0x00000a00; -u32 var8005f9d0 = 0x00000400; -u32 var8005f9d4 = 0x002501ff; -u32 var8005f9d8 = 0x000e0204; -u32 var8005f9dc = 0x00000002; -u32 var8005f9e0 = 0x09000000; -u32 var8005f9e4 = 0x0000324e; -u32 var8005f9e8 = 0x00000280; -u32 var8005f9ec = 0x03e52239; -u32 var8005f9f0 = 0x0000020c; -u32 var8005f9f4 = 0x00000c15; -u32 var8005f9f8 = 0x0c150c15; -u32 var8005f9fc = 0x006c02ec; -u32 var8005fa00 = 0x00000400; -u32 var8005fa04 = 0x00000000; -u32 var8005fa08 = 0x00000500; -u32 var8005fa0c = 0x02000800; -u32 var8005fa10 = 0x002301fd; -u32 var8005fa14 = 0x000e0204; -u32 var8005fa18 = 0x00000002; -u32 var8005fa1c = 0x00000a00; -u32 var8005fa20 = 0x02000800; -u32 var8005fa24 = 0x002501ff; -u32 var8005fa28 = 0x000e0204; -u32 var8005fa2c = 0x00000002; -u32 var8005fa30 = 0x0a000000; -u32 var8005fa34 = 0x0000305e; -u32 var8005fa38 = 0x00000500; -u32 var8005fa3c = 0x03e52239; -u32 var8005fa40 = 0x0000020c; -u32 var8005fa44 = 0x00000c15; -u32 var8005fa48 = 0x0c150c15; -u32 var8005fa4c = 0x006c02ec; -u32 var8005fa50 = 0x00000400; -u32 var8005fa54 = 0x00000000; -u32 var8005fa58 = 0x00000500; -u32 var8005fa5c = 0x00000400; -u32 var8005fa60 = 0x002301fd; -u32 var8005fa64 = 0x000e0204; -u32 var8005fa68 = 0x00000002; -u32 var8005fa6c = 0x00000a00; -u32 var8005fa70 = 0x00000400; -u32 var8005fa74 = 0x002501ff; -u32 var8005fa78 = 0x000e0204; -u32 var8005fa7c = 0x00000002; -u32 var8005fa80 = 0x0b000000; -u32 var8005fa84 = 0x0000305e; -u32 var8005fa88 = 0x00000280; -u32 var8005fa8c = 0x03e52239; -u32 var8005fa90 = 0x0000020c; -u32 var8005fa94 = 0x00000c15; -u32 var8005fa98 = 0x0c150c15; -u32 var8005fa9c = 0x006c02ec; -u32 var8005faa0 = 0x00000400; -u32 var8005faa4 = 0x00000000; -u32 var8005faa8 = 0x00000500; -u32 var8005faac = 0x02000800; -u32 var8005fab0 = 0x002301fd; -u32 var8005fab4 = 0x000e0204; -u32 var8005fab8 = 0x00000002; -u32 var8005fabc = 0x00000a00; -u32 var8005fac0 = 0x02000800; -u32 var8005fac4 = 0x002501ff; -u32 var8005fac8 = 0x000e0204; -u32 var8005facc = 0x00000002; -u32 var8005fad0 = 0x0c000000; -u32 var8005fad4 = 0x0000334f; -u32 var8005fad8 = 0x00000500; -u32 var8005fadc = 0x03e52239; -u32 var8005fae0 = 0x0000020c; -u32 var8005fae4 = 0x00000c15; -u32 var8005fae8 = 0x0c150c15; -u32 var8005faec = 0x006c02ec; -u32 var8005faf0 = 0x00000400; -u32 var8005faf4 = 0x00000000; -u32 var8005faf8 = 0x00000a00; -u32 var8005fafc = 0x00000400; -u32 var8005fb00 = 0x002301fd; -u32 var8005fb04 = 0x000e0204; -u32 var8005fb08 = 0x00000002; -u32 var8005fb0c = 0x00001400; -u32 var8005fb10 = 0x00000400; -u32 var8005fb14 = 0x002501ff; -u32 var8005fb18 = 0x000e0204; -u32 var8005fb1c = 0x00000002; -u32 var8005fb20 = 0x0d000000; -u32 var8005fb24 = 0x0000324f; -u32 var8005fb28 = 0x00000280; -u32 var8005fb2c = 0x03e52239; -u32 var8005fb30 = 0x0000020c; -u32 var8005fb34 = 0x00000c15; -u32 var8005fb38 = 0x0c150c15; -u32 var8005fb3c = 0x006c02ec; -u32 var8005fb40 = 0x00000400; -u32 var8005fb44 = 0x00000000; -u32 var8005fb48 = 0x00000a00; -u32 var8005fb4c = 0x02000800; -u32 var8005fb50 = 0x002301fd; -u32 var8005fb54 = 0x000e0204; -u32 var8005fb58 = 0x00000002; -u32 var8005fb5c = 0x00001400; -u32 var8005fb60 = 0x02000800; -u32 var8005fb64 = 0x002501ff; -u32 var8005fb68 = 0x000e0204; -u32 var8005fb6c = 0x00000002; -u32 var8005fb70 = 0x0e000000; -u32 var8005fb74 = 0x0000320e; -u32 var8005fb78 = 0x00000140; -u32 var8005fb7c = 0x04541e3a; -u32 var8005fb80 = 0x00000271; -u32 var8005fb84 = 0x00170c69; -u32 var8005fb88 = 0x0c6f0c6d; -u32 var8005fb8c = 0x00800300; -u32 var8005fb90 = 0x00000200; -u32 var8005fb94 = 0x00000000; -u32 var8005fb98 = 0x00000280; -u32 var8005fb9c = 0x00000400; -u32 var8005fba0 = 0x005f0239; -u32 var8005fba4 = 0x0009026b; -u32 var8005fba8 = 0x00000002; -u32 var8005fbac = 0x00000280; -u32 var8005fbb0 = 0x00000400; -u32 var8005fbb4 = 0x005f0239; -u32 var8005fbb8 = 0x0009026b; -u32 var8005fbbc = 0x00000002; -u32 var8005fbc0 = 0x0f000000; -u32 var8005fbc4 = 0x0000324e; -u32 var8005fbc8 = 0x00000140; -u32 var8005fbcc = 0x04541e3a; -u32 var8005fbd0 = 0x00000270; -u32 var8005fbd4 = 0x00170c69; -u32 var8005fbd8 = 0x0c6f0c6d; -u32 var8005fbdc = 0x00800300; -u32 var8005fbe0 = 0x00000200; -u32 var8005fbe4 = 0x00000000; -u32 var8005fbe8 = 0x00000280; -u32 var8005fbec = 0x01000400; -u32 var8005fbf0 = 0x005d0237; -u32 var8005fbf4 = 0x0009026b; -u32 var8005fbf8 = 0x00000002; -u32 var8005fbfc = 0x00000280; -u32 var8005fc00 = 0x03000400; -u32 var8005fc04 = 0x005f0239; -u32 var8005fc08 = 0x000d0269; -u32 var8005fc0c = 0x00000002; -u32 var8005fc10 = 0x10000000; -u32 var8005fc14 = 0x0000311e; -u32 var8005fc18 = 0x00000140; -u32 var8005fc1c = 0x04541e3a; -u32 var8005fc20 = 0x00000271; -u32 var8005fc24 = 0x00170c69; -u32 var8005fc28 = 0x0c6f0c6d; -u32 var8005fc2c = 0x00800300; -u32 var8005fc30 = 0x00000200; -u32 var8005fc34 = 0x00000000; -u32 var8005fc38 = 0x00000280; -u32 var8005fc3c = 0x00000400; -u32 var8005fc40 = 0x005f0239; -u32 var8005fc44 = 0x0009026b; -u32 var8005fc48 = 0x00000002; -u32 var8005fc4c = 0x00000280; -u32 var8005fc50 = 0x00000400; -u32 var8005fc54 = 0x005f0239; -u32 var8005fc58 = 0x0009026b; -u32 var8005fc5c = 0x00000002; -u32 var8005fc60 = 0x11000000; -u32 var8005fc64 = 0x0000305e; -u32 var8005fc68 = 0x00000140; -u32 var8005fc6c = 0x04541e3a; -u32 var8005fc70 = 0x00000270; -u32 var8005fc74 = 0x00170c69; -u32 var8005fc78 = 0x0c6f0c6d; -u32 var8005fc7c = 0x00800300; -u32 var8005fc80 = 0x00000200; -u32 var8005fc84 = 0x00000000; -u32 var8005fc88 = 0x00000280; -u32 var8005fc8c = 0x01000400; -u32 var8005fc90 = 0x005d0237; -u32 var8005fc94 = 0x0009026b; -u32 var8005fc98 = 0x00000002; -u32 var8005fc9c = 0x00000280; -u32 var8005fca0 = 0x03000400; -u32 var8005fca4 = 0x005f0239; -u32 var8005fca8 = 0x000d0269; -u32 var8005fcac = 0x00000002; -u32 var8005fcb0 = 0x12000000; -u32 var8005fcb4 = 0x0000330f; -u32 var8005fcb8 = 0x00000140; -u32 var8005fcbc = 0x04541e3a; -u32 var8005fcc0 = 0x00000271; -u32 var8005fcc4 = 0x00170c69; -u32 var8005fcc8 = 0x0c6f0c6d; -u32 var8005fccc = 0x00800300; -u32 var8005fcd0 = 0x00000200; -u32 var8005fcd4 = 0x00000000; -u32 var8005fcd8 = 0x00000500; -u32 var8005fcdc = 0x00000400; -u32 var8005fce0 = 0x005f0239; -u32 var8005fce4 = 0x0009026b; -u32 var8005fce8 = 0x00000002; -u32 var8005fcec = 0x00000500; -u32 var8005fcf0 = 0x00000400; -u32 var8005fcf4 = 0x005f0239; -u32 var8005fcf8 = 0x0009026b; -u32 var8005fcfc = 0x00000002; -u32 var8005fd00 = 0x13000000; -u32 var8005fd04 = 0x0000324f; -u32 var8005fd08 = 0x00000140; -u32 var8005fd0c = 0x04541e3a; -u32 var8005fd10 = 0x00000270; -u32 var8005fd14 = 0x00170c69; -u32 var8005fd18 = 0x0c6f0c6d; -u32 var8005fd1c = 0x00800300; -u32 var8005fd20 = 0x00000200; -u32 var8005fd24 = 0x00000000; -u32 var8005fd28 = 0x00000500; -u32 var8005fd2c = 0x01000400; -u32 var8005fd30 = 0x005d0237; -u32 var8005fd34 = 0x0009026b; -u32 var8005fd38 = 0x00000002; -u32 var8005fd3c = 0x00000500; -u32 var8005fd40 = 0x03000400; -u32 var8005fd44 = 0x005f0239; -u32 var8005fd48 = 0x000d0269; -u32 var8005fd4c = 0x00000002; -u32 var8005fd50 = 0x14000000; -u32 var8005fd54 = 0x0000301f; -u32 var8005fd58 = 0x00000140; -u32 var8005fd5c = 0x04541e3a; -u32 var8005fd60 = 0x00000271; -u32 var8005fd64 = 0x00170c69; -u32 var8005fd68 = 0x0c6f0c6d; -u32 var8005fd6c = 0x00800300; -u32 var8005fd70 = 0x00000200; -u32 var8005fd74 = 0x00000000; -u32 var8005fd78 = 0x00000500; -u32 var8005fd7c = 0x00000400; -u32 var8005fd80 = 0x005f0239; -u32 var8005fd84 = 0x0009026b; -u32 var8005fd88 = 0x00000002; -u32 var8005fd8c = 0x00000500; -u32 var8005fd90 = 0x00000400; -u32 var8005fd94 = 0x005f0239; -u32 var8005fd98 = 0x0009026b; -u32 var8005fd9c = 0x00000002; -u32 var8005fda0 = 0x15000000; -u32 var8005fda4 = 0x0000305f; -u32 var8005fda8 = 0x00000140; -u32 var8005fdac = 0x04541e3a; -u32 var8005fdb0 = 0x00000270; -u32 var8005fdb4 = 0x00170c69; -u32 var8005fdb8 = 0x0c6f0c6d; -u32 var8005fdbc = 0x00800300; -u32 var8005fdc0 = 0x00000200; -u32 var8005fdc4 = 0x00000000; -u32 var8005fdc8 = 0x00000500; -u32 var8005fdcc = 0x01000400; -u32 var8005fdd0 = 0x005d0237; -u32 var8005fdd4 = 0x0009026b; -u32 var8005fdd8 = 0x00000002; -u32 var8005fddc = 0x00000500; -u32 var8005fde0 = 0x03000400; -u32 var8005fde4 = 0x005f0239; -u32 var8005fde8 = 0x000d0269; -u32 var8005fdec = 0x00000002; -u32 var8005fdf0 = 0x16000000; -u32 var8005fdf4 = 0x0000324e; -u32 var8005fdf8 = 0x00000500; -u32 var8005fdfc = 0x04541e3a; -u32 var8005fe00 = 0x00000270; -u32 var8005fe04 = 0x00170c69; -u32 var8005fe08 = 0x0c6f0c6d; -u32 var8005fe0c = 0x00800300; -u32 var8005fe10 = 0x00000400; -u32 var8005fe14 = 0x00000000; -u32 var8005fe18 = 0x00000500; -u32 var8005fe1c = 0x00000400; -u32 var8005fe20 = 0x005d0237; -u32 var8005fe24 = 0x0009026b; -u32 var8005fe28 = 0x00000002; -u32 var8005fe2c = 0x00000a00; -u32 var8005fe30 = 0x00000400; -u32 var8005fe34 = 0x005f0239; -u32 var8005fe38 = 0x000d0269; -u32 var8005fe3c = 0x00000002; -u32 var8005fe40 = 0x17000000; -u32 var8005fe44 = 0x0000324e; -u32 var8005fe48 = 0x00000280; -u32 var8005fe4c = 0x04541e3a; -u32 var8005fe50 = 0x00000270; -u32 var8005fe54 = 0x00170c69; -u32 var8005fe58 = 0x0c6f0c6d; -u32 var8005fe5c = 0x00800300; -u32 var8005fe60 = 0x00000400; -u32 var8005fe64 = 0x00000000; -u32 var8005fe68 = 0x00000500; -u32 var8005fe6c = 0x02000800; -u32 var8005fe70 = 0x005d0237; -u32 var8005fe74 = 0x0009026b; -u32 var8005fe78 = 0x00000002; -u32 var8005fe7c = 0x00000a00; -u32 var8005fe80 = 0x02000800; -u32 var8005fe84 = 0x005f0239; -u32 var8005fe88 = 0x000d0269; -u32 var8005fe8c = 0x00000002; -u32 var8005fe90 = 0x18000000; -u32 var8005fe94 = 0x0000305e; -u32 var8005fe98 = 0x00000500; -u32 var8005fe9c = 0x04541e3a; -u32 var8005fea0 = 0x00000270; -u32 var8005fea4 = 0x00170c69; -u32 var8005fea8 = 0x0c6f0c6d; -u32 var8005feac = 0x00800300; -u32 var8005feb0 = 0x00000400; -u32 var8005feb4 = 0x00000000; -u32 var8005feb8 = 0x00000500; -u32 var8005febc = 0x00000400; -u32 var8005fec0 = 0x005d0237; -u32 var8005fec4 = 0x0009026b; -u32 var8005fec8 = 0x00000002; -u32 var8005fecc = 0x00000a00; -u32 var8005fed0 = 0x00000400; -u32 var8005fed4 = 0x005f0239; -u32 var8005fed8 = 0x000d0269; -u32 var8005fedc = 0x00000002; -u32 var8005fee0 = 0x19000000; -u32 var8005fee4 = 0x0000305e; -u32 var8005fee8 = 0x00000280; -u32 var8005feec = 0x04541e3a; -u32 var8005fef0 = 0x00000270; -u32 var8005fef4 = 0x00170c69; -u32 var8005fef8 = 0x0c6f0c6d; -u32 var8005fefc = 0x00800300; -u32 var8005ff00 = 0x00000400; -u32 var8005ff04 = 0x00000000; -u32 var8005ff08 = 0x00000500; -u32 var8005ff0c = 0x02000800; -u32 var8005ff10 = 0x005d0237; -u32 var8005ff14 = 0x0009026b; -u32 var8005ff18 = 0x00000002; -u32 var8005ff1c = 0x00000a00; -u32 var8005ff20 = 0x02000800; -u32 var8005ff24 = 0x005f0239; -u32 var8005ff28 = 0x000d0269; -u32 var8005ff2c = 0x00000002; -u32 var8005ff30 = 0x1a000000; -u32 var8005ff34 = 0x0000334f; -u32 var8005ff38 = 0x00000500; -u32 var8005ff3c = 0x04541e3a; -u32 var8005ff40 = 0x00000270; -u32 var8005ff44 = 0x00170c69; -u32 var8005ff48 = 0x0c6f0c6d; -u32 var8005ff4c = 0x00800300; -u32 var8005ff50 = 0x00000400; -u32 var8005ff54 = 0x00000000; -u32 var8005ff58 = 0x00000a00; -u32 var8005ff5c = 0x00000400; -u32 var8005ff60 = 0x005d0237; -u32 var8005ff64 = 0x0009026b; -u32 var8005ff68 = 0x00000002; -u32 var8005ff6c = 0x00001400; -u32 var8005ff70 = 0x00000400; -u32 var8005ff74 = 0x005f0239; -u32 var8005ff78 = 0x000d0269; -u32 var8005ff7c = 0x00000002; -u32 var8005ff80 = 0x1b000000; -u32 var8005ff84 = 0x0000324f; -u32 var8005ff88 = 0x00000280; -u32 var8005ff8c = 0x04541e3a; -u32 var8005ff90 = 0x00000270; -u32 var8005ff94 = 0x00170c69; -u32 var8005ff98 = 0x0c6f0c6d; -u32 var8005ff9c = 0x00800300; -u32 var8005ffa0 = 0x00000400; -u32 var8005ffa4 = 0x00000000; -u32 var8005ffa8 = 0x00000a00; -u32 var8005ffac = 0x02000800; -u32 var8005ffb0 = 0x005d0237; -u32 var8005ffb4 = 0x0009026b; -u32 var8005ffb8 = 0x00000002; -u32 var8005ffbc = 0x00001400; -u32 var8005ffc0 = 0x02000800; -u32 var8005ffc4 = 0x005f0239; -u32 var8005ffc8 = 0x000d0269; -u32 var8005ffcc = 0x00000002; -u32 var8005ffd0 = 0x1c000000; -u32 var8005ffd4 = 0x0000320e; -u32 var8005ffd8 = 0x00000140; -u32 var8005ffdc = 0x04651e39; -u32 var8005ffe0 = 0x0000020d; -u32 var8005ffe4 = 0x00040c11; -u32 var8005ffe8 = 0x0c190c1a; -u32 var8005ffec = 0x006c02ec; -u32 var8005fff0 = 0x00000200; -u32 var8005fff4 = 0x00000000; -u32 var8005fff8 = 0x00000280; -u32 var8005fffc = 0x00000400; -u32 var80060000 = 0x002501ff; -u32 var80060004 = 0x000e0204; -u32 var80060008 = 0x00000002; -u32 var8006000c = 0x00000280; -u32 var80060010 = 0x00000400; -u32 var80060014 = 0x002501ff; -u32 var80060018 = 0x000e0204; -u32 var8006001c = 0x00000002; -u32 var80060020 = 0x1d000000; -u32 var80060024 = 0x0000324e; -u32 var80060028 = 0x00000140; -u32 var8006002c = 0x04651e39; -u32 var80060030 = 0x0000020c; -u32 var80060034 = 0x00000c10; -u32 var80060038 = 0x0c1c0c1c; -u32 var8006003c = 0x006c02ec; -u32 var80060040 = 0x00000200; -u32 var80060044 = 0x00000000; -u32 var80060048 = 0x00000280; -u32 var8006004c = 0x01000400; -u32 var80060050 = 0x002301fd; -u32 var80060054 = 0x000b0202; -u32 var80060058 = 0x00000002; -u32 var8006005c = 0x00000280; -u32 var80060060 = 0x03000400; -u32 var80060064 = 0x002501ff; -u32 var80060068 = 0x000e0204; -u32 var8006006c = 0x00000002; -u32 var80060070 = 0x1e000000; -u32 var80060074 = 0x0000311e; -u32 var80060078 = 0x00000140; -u32 var8006007c = 0x04651e39; -u32 var80060080 = 0x0000020d; -u32 var80060084 = 0x00040c11; -u32 var80060088 = 0x0c190c1a; -u32 var8006008c = 0x006c02ec; -u32 var80060090 = 0x00000200; -u32 var80060094 = 0x00000000; -u32 var80060098 = 0x00000280; -u32 var8006009c = 0x00000400; -u32 var800600a0 = 0x002501ff; -u32 var800600a4 = 0x000e0204; -u32 var800600a8 = 0x00000002; -u32 var800600ac = 0x00000280; -u32 var800600b0 = 0x00000400; -u32 var800600b4 = 0x002501ff; -u32 var800600b8 = 0x000e0204; -u32 var800600bc = 0x00000002; -u32 var800600c0 = 0x1f000000; -u32 var800600c4 = 0x0000305e; -u32 var800600c8 = 0x00000140; -u32 var800600cc = 0x04651e39; -u32 var800600d0 = 0x0000020c; -u32 var800600d4 = 0x00000c10; -u32 var800600d8 = 0x0c1c0c1c; -u32 var800600dc = 0x006c02ec; -u32 var800600e0 = 0x00000200; -u32 var800600e4 = 0x00000000; -u32 var800600e8 = 0x00000280; -u32 var800600ec = 0x01000400; -u32 var800600f0 = 0x002301fd; -u32 var800600f4 = 0x000b0202; -u32 var800600f8 = 0x00000002; -u32 var800600fc = 0x00000280; -u32 var80060100 = 0x03000400; -u32 var80060104 = 0x002501ff; -u32 var80060108 = 0x000e0204; -u32 var8006010c = 0x00000002; -u32 var80060110 = 0x20000000; -u32 var80060114 = 0x0000330f; -u32 var80060118 = 0x00000140; -u32 var8006011c = 0x04651e39; -u32 var80060120 = 0x0000020d; -u32 var80060124 = 0x00040c11; -u32 var80060128 = 0x0c190c1a; -u32 var8006012c = 0x006c02ec; -u32 var80060130 = 0x00000200; -u32 var80060134 = 0x00000000; -u32 var80060138 = 0x00000500; -u32 var8006013c = 0x00000400; -u32 var80060140 = 0x002501ff; -u32 var80060144 = 0x000e0204; -u32 var80060148 = 0x00000002; -u32 var8006014c = 0x00000500; -u32 var80060150 = 0x00000400; -u32 var80060154 = 0x002501ff; -u32 var80060158 = 0x000e0204; -u32 var8006015c = 0x00000002; -u32 var80060160 = 0x21000000; -u32 var80060164 = 0x0000324f; -u32 var80060168 = 0x00000140; -u32 var8006016c = 0x04651e39; -u32 var80060170 = 0x0000020c; -u32 var80060174 = 0x00000c10; -u32 var80060178 = 0x0c1c0c1c; -u32 var8006017c = 0x006c02ec; -u32 var80060180 = 0x00000200; -u32 var80060184 = 0x00000000; -u32 var80060188 = 0x00000500; -u32 var8006018c = 0x01000400; -u32 var80060190 = 0x002301fd; -u32 var80060194 = 0x000b0202; -u32 var80060198 = 0x00000002; -u32 var8006019c = 0x00000500; -u32 var800601a0 = 0x03000400; -u32 var800601a4 = 0x002501ff; -u32 var800601a8 = 0x000e0204; -u32 var800601ac = 0x00000002; -u32 var800601b0 = 0x22000000; -u32 var800601b4 = 0x0000301f; -u32 var800601b8 = 0x00000140; -u32 var800601bc = 0x04651e39; -u32 var800601c0 = 0x0000020d; -u32 var800601c4 = 0x00040c11; -u32 var800601c8 = 0x0c190c1a; -u32 var800601cc = 0x006c02ec; -u32 var800601d0 = 0x00000200; -u32 var800601d4 = 0x00000000; -u32 var800601d8 = 0x00000500; -u32 var800601dc = 0x00000400; -u32 var800601e0 = 0x002501ff; -u32 var800601e4 = 0x000e0204; -u32 var800601e8 = 0x00000002; -u32 var800601ec = 0x00000500; -u32 var800601f0 = 0x00000400; -u32 var800601f4 = 0x002501ff; -u32 var800601f8 = 0x000e0204; -u32 var800601fc = 0x00000002; -u32 var80060200 = 0x23000000; -u32 var80060204 = 0x0000305f; -u32 var80060208 = 0x00000140; -u32 var8006020c = 0x04651e39; -u32 var80060210 = 0x0000020c; -u32 var80060214 = 0x00000c10; -u32 var80060218 = 0x0c1c0c1c; -u32 var8006021c = 0x006c02ec; -u32 var80060220 = 0x00000200; -u32 var80060224 = 0x00000000; -u32 var80060228 = 0x00000500; -u32 var8006022c = 0x01000400; -u32 var80060230 = 0x002301fd; -u32 var80060234 = 0x000b0202; -u32 var80060238 = 0x00000002; -u32 var8006023c = 0x00000500; -u32 var80060240 = 0x03000400; -u32 var80060244 = 0x002501ff; -u32 var80060248 = 0x000e0204; -u32 var8006024c = 0x00000002; -u32 var80060250 = 0x24000000; -u32 var80060254 = 0x0000324e; -u32 var80060258 = 0x00000500; -u32 var8006025c = 0x04651e39; -u32 var80060260 = 0x0000020c; -u32 var80060264 = 0x00000c10; -u32 var80060268 = 0x0c1c0c1c; -u32 var8006026c = 0x006c02ec; -u32 var80060270 = 0x00000400; -u32 var80060274 = 0x00000000; -u32 var80060278 = 0x00000500; -u32 var8006027c = 0x00000400; -u32 var80060280 = 0x002301fd; -u32 var80060284 = 0x000b0202; -u32 var80060288 = 0x00000002; -u32 var8006028c = 0x00000a00; -u32 var80060290 = 0x00000400; -u32 var80060294 = 0x002501ff; -u32 var80060298 = 0x000e0204; -u32 var8006029c = 0x00000002; -u32 var800602a0 = 0x25000000; -u32 var800602a4 = 0x0000324e; -u32 var800602a8 = 0x00000280; -u32 var800602ac = 0x04651e39; -u32 var800602b0 = 0x0000020c; -u32 var800602b4 = 0x00000c10; -u32 var800602b8 = 0x0c1c0c1c; -u32 var800602bc = 0x006c02ec; -u32 var800602c0 = 0x00000400; -u32 var800602c4 = 0x00000000; -u32 var800602c8 = 0x00000500; -u32 var800602cc = 0x02000800; -u32 var800602d0 = 0x002301fd; -u32 var800602d4 = 0x000b0202; -u32 var800602d8 = 0x00000002; -u32 var800602dc = 0x00000a00; -u32 var800602e0 = 0x02000800; -u32 var800602e4 = 0x002501ff; -u32 var800602e8 = 0x000e0204; -u32 var800602ec = 0x00000002; -u32 var800602f0 = 0x26000000; -u32 var800602f4 = 0x0000305e; -u32 var800602f8 = 0x00000500; -u32 var800602fc = 0x04651e39; -u32 var80060300 = 0x0000020c; -u32 var80060304 = 0x00000c10; -u32 var80060308 = 0x0c1c0c1c; -u32 var8006030c = 0x006c02ec; -u32 var80060310 = 0x00000400; -u32 var80060314 = 0x00000000; -u32 var80060318 = 0x00000500; -u32 var8006031c = 0x00000400; -u32 var80060320 = 0x002301fd; -u32 var80060324 = 0x000b0202; -u32 var80060328 = 0x00000002; -u32 var8006032c = 0x00000a00; -u32 var80060330 = 0x00000400; -u32 var80060334 = 0x002501ff; -u32 var80060338 = 0x000e0204; -u32 var8006033c = 0x00000002; -u32 var80060340 = 0x27000000; -u32 var80060344 = 0x0000305e; -u32 var80060348 = 0x00000280; -u32 var8006034c = 0x04651e39; -u32 var80060350 = 0x0000020c; -u32 var80060354 = 0x00000c10; -u32 var80060358 = 0x0c1c0c1c; -u32 var8006035c = 0x006c02ec; -u32 var80060360 = 0x00000400; -u32 var80060364 = 0x00000000; -u32 var80060368 = 0x00000500; -u32 var8006036c = 0x02000800; -u32 var80060370 = 0x002301fd; -u32 var80060374 = 0x000b0202; -u32 var80060378 = 0x00000002; -u32 var8006037c = 0x00000a00; -u32 var80060380 = 0x02000800; -u32 var80060384 = 0x002501ff; -u32 var80060388 = 0x000e0204; -u32 var8006038c = 0x00000002; -u32 var80060390 = 0x28000000; -u32 var80060394 = 0x0000334f; -u32 var80060398 = 0x00000500; -u32 var8006039c = 0x04651e39; -u32 var800603a0 = 0x0000020c; -u32 var800603a4 = 0x00000c10; -u32 var800603a8 = 0x0c1c0c1c; -u32 var800603ac = 0x006c02ec; -u32 var800603b0 = 0x00000400; -u32 var800603b4 = 0x00000000; -u32 var800603b8 = 0x00000a00; -u32 var800603bc = 0x00000400; -u32 var800603c0 = 0x002301fd; -u32 var800603c4 = 0x000b0202; -u32 var800603c8 = 0x00000002; -u32 var800603cc = 0x00001400; -u32 var800603d0 = 0x00000400; -u32 var800603d4 = 0x002501ff; -u32 var800603d8 = 0x000e0204; -u32 var800603dc = 0x00000002; -u32 var800603e0 = 0x29000000; -u32 var800603e4 = 0x0000324f; -u32 var800603e8 = 0x00000280; -u32 var800603ec = 0x04651e39; -u32 var800603f0 = 0x0000020c; -u32 var800603f4 = 0x00000c10; -u32 var800603f8 = 0x0c1c0c1c; -u32 var800603fc = 0x006c02ec; -u32 var80060400 = 0x00000400; -u32 var80060404 = 0x00000000; -u32 var80060408 = 0x00000a00; -u32 var8006040c = 0x02000800; -u32 var80060410 = 0x002301fd; -u32 var80060414 = 0x000b0202; -u32 var80060418 = 0x00000002; -u32 var8006041c = 0x00001400; -u32 var80060420 = 0x02000800; -u32 var80060424 = 0x002501ff; -u32 var80060428 = 0x000e0204; -u32 var8006042c = 0x00000002; + +OSViMode osViModeTable[42] = { + {OS_VI_NTSC_LPN1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 34, 5, 62), //burst + VSYNC(525), //vSync + HSYNC(3093, 0), //hSync + LEAP(3093, 3093), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(640), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(640), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_NTSC_LPF1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 34, 5, 62), //burst + VSYNC(524), //vSync + HSYNC(3093, 0), //hSync + LEAP(3093, 3093), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(640), //origin + SCALE(1, 0.25), //yScale + HSTART(35, 509), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(640), //origin + SCALE(1, 0.75), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_NTSC_LAN1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_ANTIALIAS_MODE_1 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 34, 5, 62), //burst + VSYNC(525), //vSync + HSYNC(3093, 0), //hSync + LEAP(3093, 3093), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(640), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(640), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_NTSC_LAF1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_SERRATE_ON | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 34, 5, 62), //burst + VSYNC(524), //vSync + HSYNC(3093, 0), //hSync + LEAP(3093, 3093), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(640), //origin + SCALE(1, 0.25), //yScale + HSTART(35, 509), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(640), //origin + SCALE(1, 0.75), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_NTSC_LPN2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_ANTIALIAS_MODE_3 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 34, 5, 62), //burst + VSYNC(525), //vSync + HSYNC(3093, 0), //hSync + LEAP(3093, 3093), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_NTSC_LPF2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 34, 5, 62), //burst + VSYNC(524), //vSync + HSYNC(3093, 0), //hSync + LEAP(3093, 3093), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0.25), //yScale + HSTART(35, 509), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(1280), //origin + SCALE(1, 0.75), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_NTSC_LAN2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 34, 5, 62), //burst + VSYNC(525), //vSync + HSYNC(3093, 0), //hSync + LEAP(3093, 3093), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_NTSC_LAF2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_SERRATE_ON | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 34, 5, 62), //burst + VSYNC(524), //vSync + HSYNC(3093, 0), //hSync + LEAP(3093, 3093), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0.25), //yScale + HSTART(35, 509), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(1280), //origin + SCALE(1, 0.75), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_NTSC_HPN1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(1280), //width + BURST(57, 34, 5, 62), //burst + VSYNC(524), //vSync + HSYNC(3093, 0), //hSync + LEAP(3093, 3093), //leap + HSTART(108, 748), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(35, 509), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(2560), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_NTSC_HPF1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(640), //width + BURST(57, 34, 5, 62), //burst + VSYNC(524), //vSync + HSYNC(3093, 0), //hSync + LEAP(3093, 3093), //leap + HSTART(108, 748), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(0.5, 0.5), //yScale + HSTART(35, 509), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(2560), //origin + SCALE(0.5, 0.5), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_NTSC_HAN1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_SERRATE_ON | + 0x3000, //ctrl + WIDTH(1280), //width + BURST(57, 34, 5, 62), //burst + VSYNC(524), //vSync + HSYNC(3093, 0), //hSync + LEAP(3093, 3093), //leap + HSTART(108, 748), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(35, 509), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(2560), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_NTSC_HAF1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_SERRATE_ON | + 0x3000, //ctrl + WIDTH(640), //width + BURST(57, 34, 5, 62), //burst + VSYNC(524), //vSync + HSYNC(3093, 0), //hSync + LEAP(3093, 3093), //leap + HSTART(108, 748), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(0.5, 0.5), //yScale + HSTART(35, 509), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(2560), //origin + SCALE(0.5, 0.5), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_NTSC_HPN2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_3 | + 0x3000, //ctrl + WIDTH(1280), //width + BURST(57, 34, 5, 62), //burst + VSYNC(524), //vSync + HSYNC(3093, 0), //hSync + LEAP(3093, 3093), //leap + HSTART(108, 748), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(2560), //origin + SCALE(1, 0), //yScale + HSTART(35, 509), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(5120), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_NTSC_HPF2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(640), //width + BURST(57, 34, 5, 62), //burst + VSYNC(524), //vSync + HSYNC(3093, 0), //hSync + LEAP(3093, 3093), //leap + HSTART(108, 748), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(2560), //origin + SCALE(0.5, 0.5), //yScale + HSTART(35, 509), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(5120), //origin + SCALE(0.5, 0.5), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_PAL_LPN1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(58, 30, 4, 69), //burst + VSYNC(625), //vSync + HSYNC(3177, 23), //hSync + LEAP(3183, 3181), //leap + HSTART(128, 768), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(640), //origin + SCALE(1, 0), //yScale + HSTART(95, 569), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(640), //origin + SCALE(1, 0), //yScale + HSTART(95, 569), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_PAL_LPF1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(58, 30, 4, 69), //burst + VSYNC(624), //vSync + HSYNC(3177, 23), //hSync + LEAP(3183, 3181), //leap + HSTART(128, 768), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(640), //origin + SCALE(1, 0.25), //yScale + HSTART(93, 567), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(640), //origin + SCALE(1, 0.75), //yScale + HSTART(95, 569), //vStart + BURST(105, 2, 13, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_PAL_LAN1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_ANTIALIAS_MODE_1 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(58, 30, 4, 69), //burst + VSYNC(625), //vSync + HSYNC(3177, 23), //hSync + LEAP(3183, 3181), //leap + HSTART(128, 768), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(640), //origin + SCALE(1, 0), //yScale + HSTART(95, 569), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(640), //origin + SCALE(1, 0), //yScale + HSTART(95, 569), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_PAL_LAF1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_SERRATE_ON | + 0x3000, //ctrl + WIDTH(320), //width + BURST(58, 30, 4, 69), //burst + VSYNC(624), //vSync + HSYNC(3177, 23), //hSync + LEAP(3183, 3181), //leap + HSTART(128, 768), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(640), //origin + SCALE(1, 0.25), //yScale + HSTART(93, 567), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(640), //origin + SCALE(1, 0.75), //yScale + HSTART(95, 569), //vStart + BURST(105, 2, 13, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_PAL_LPN2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_ANTIALIAS_MODE_3 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(58, 30, 4, 69), //burst + VSYNC(625), //vSync + HSYNC(3177, 23), //hSync + LEAP(3183, 3181), //leap + HSTART(128, 768), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(95, 569), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(95, 569), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_PAL_LPF2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(58, 30, 4, 69), //burst + VSYNC(624), //vSync + HSYNC(3177, 23), //hSync + LEAP(3183, 3181), //leap + HSTART(128, 768), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0.25), //yScale + HSTART(93, 567), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(1280), //origin + SCALE(1, 0.75), //yScale + HSTART(95, 569), //vStart + BURST(105, 2, 13, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_PAL_LAN2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + 0x3000, //ctrl + WIDTH(320), //width + BURST(58, 30, 4, 69), //burst + VSYNC(625), //vSync + HSYNC(3177, 23), //hSync + LEAP(3183, 3181), //leap + HSTART(128, 768), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(95, 569), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(95, 569), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_PAL_LAF2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_SERRATE_ON | + 0x3000, //ctrl + WIDTH(320), //width + BURST(58, 30, 4, 69), //burst + VSYNC(624), //vSync + HSYNC(3177, 23), //hSync + LEAP(3183, 3181), //leap + HSTART(128, 768), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0.25), //yScale + HSTART(93, 567), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(1280), //origin + SCALE(1, 0.75), //yScale + HSTART(95, 569), //vStart + BURST(105, 2, 13, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_PAL_HPN1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(1280), //width + BURST(58, 30, 4, 69), //burst + VSYNC(624), //vSync + HSYNC(3177, 23), //hSync + LEAP(3183, 3181), //leap + HSTART(128, 768), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(93, 567), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(2560), //origin + SCALE(1, 0), //yScale + HSTART(95, 569), //vStart + BURST(105, 2, 13, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_PAL_HPF1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(640), //width + BURST(58, 30, 4, 69), //burst + VSYNC(624), //vSync + HSYNC(3177, 23), //hSync + LEAP(3183, 3181), //leap + HSTART(128, 768), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(0.5, 0.5), //yScale + HSTART(93, 567), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(2560), //origin + SCALE(0.5, 0.5), //yScale + HSTART(95, 569), //vStart + BURST(105, 2, 13, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_PAL_HAN1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_SERRATE_ON | + 0x3000, //ctrl + WIDTH(1280), //width + BURST(58, 30, 4, 69), //burst + VSYNC(624), //vSync + HSYNC(3177, 23), //hSync + LEAP(3183, 3181), //leap + HSTART(128, 768), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(93, 567), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(2560), //origin + SCALE(1, 0), //yScale + HSTART(95, 569), //vStart + BURST(105, 2, 13, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_PAL_HAF1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_SERRATE_ON | + 0x3000, //ctrl + WIDTH(640), //width + BURST(58, 30, 4, 69), //burst + VSYNC(624), //vSync + HSYNC(3177, 23), //hSync + LEAP(3183, 3181), //leap + HSTART(128, 768), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(0.5, 0.5), //yScale + HSTART(93, 567), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(2560), //origin + SCALE(0.5, 0.5), //yScale + HSTART(95, 569), //vStart + BURST(105, 2, 13, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_PAL_HPN2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_3 | + 0x3000, //ctrl + WIDTH(1280), //width + BURST(58, 30, 4, 69), //burst + VSYNC(624), //vSync + HSYNC(3177, 23), //hSync + LEAP(3183, 3181), //leap + HSTART(128, 768), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(2560), //origin + SCALE(1, 0), //yScale + HSTART(93, 567), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(5120), //origin + SCALE(1, 0), //yScale + HSTART(95, 569), //vStart + BURST(105, 2, 13, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_PAL_HPF2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(640), //width + BURST(58, 30, 4, 69), //burst + VSYNC(624), //vSync + HSYNC(3177, 23), //hSync + LEAP(3183, 3181), //leap + HSTART(128, 768), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(2560), //origin + SCALE(0.5, 0.5), //yScale + HSTART(93, 567), //vStart + BURST(107, 2, 9, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(5120), //origin + SCALE(0.5, 0.5), //yScale + HSTART(95, 569), //vStart + BURST(105, 2, 13, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_MPAL_LPN1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 30, 5, 70), //burst + VSYNC(525), //vSync + HSYNC(3089, 4), //hSync + LEAP(3097, 3098), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(640), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(640), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_MPAL_LPF1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 30, 5, 70), //burst + VSYNC(524), //vSync + HSYNC(3088, 0), //hSync + LEAP(3100, 3100), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(640), //origin + SCALE(1, 0.25), //yScale + HSTART(35, 509), //vStart + BURST(2, 2, 11, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(640), //origin + SCALE(1, 0.75), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_MPAL_LAN1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_ANTIALIAS_MODE_1 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 30, 5, 70), //burst + VSYNC(525), //vSync + HSYNC(3089, 4), //hSync + LEAP(3097, 3098), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(640), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(640), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_MPAL_LAF1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_SERRATE_ON | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 30, 5, 70), //burst + VSYNC(524), //vSync + HSYNC(3088, 0), //hSync + LEAP(3100, 3100), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(640), //origin + SCALE(1, 0.25), //yScale + HSTART(35, 509), //vStart + BURST(2, 2, 11, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(640), //origin + SCALE(1, 0.75), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_MPAL_LPN2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_ANTIALIAS_MODE_3 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 30, 5, 70), //burst + VSYNC(525), //vSync + HSYNC(3089, 4), //hSync + LEAP(3097, 3098), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_MPAL_LPF2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 30, 5, 70), //burst + VSYNC(524), //vSync + HSYNC(3088, 0), //hSync + LEAP(3100, 3100), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0.25), //yScale + HSTART(35, 509), //vStart + BURST(2, 2, 11, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(1280), //origin + SCALE(1, 0.75), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_MPAL_LAN2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 30, 5, 70), //burst + VSYNC(525), //vSync + HSYNC(3089, 4), //hSync + LEAP(3097, 3098), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_MPAL_LAF2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_SERRATE_ON | + 0x3000, //ctrl + WIDTH(320), //width + BURST(57, 30, 5, 70), //burst + VSYNC(524), //vSync + HSYNC(3088, 0), //hSync + LEAP(3100, 3100), //leap + HSTART(108, 748), //hStart + SCALE(2, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0.25), //yScale + HSTART(35, 509), //vStart + BURST(2, 2, 11, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(1280), //origin + SCALE(1, 0.75), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_MPAL_HPN1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(1280), //width + BURST(57, 30, 5, 70), //burst + VSYNC(524), //vSync + HSYNC(3088, 0), //hSync + LEAP(3100, 3100), //leap + HSTART(108, 748), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(35, 509), //vStart + BURST(2, 2, 11, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(2560), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_MPAL_HPF1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(640), //width + BURST(57, 30, 5, 70), //burst + VSYNC(524), //vSync + HSYNC(3088, 0), //hSync + LEAP(3100, 3100), //leap + HSTART(108, 748), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(0.5, 0.5), //yScale + HSTART(35, 509), //vStart + BURST(2, 2, 11, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(2560), //origin + SCALE(0.5, 0.5), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_MPAL_HAN1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_SERRATE_ON | + 0x3000, //ctrl + WIDTH(1280), //width + BURST(57, 30, 5, 70), //burst + VSYNC(524), //vSync + HSYNC(3088, 0), //hSync + LEAP(3100, 3100), //leap + HSTART(108, 748), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(1, 0), //yScale + HSTART(35, 509), //vStart + BURST(2, 2, 11, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(2560), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_MPAL_HAF1, //type + { + //comRegs + VI_CTRL_TYPE_16 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_DIVOT_ON | + VI_CTRL_SERRATE_ON | + 0x3000, //ctrl + WIDTH(640), //width + BURST(57, 30, 5, 70), //burst + VSYNC(524), //vSync + HSYNC(3088, 0), //hSync + LEAP(3100, 3100), //leap + HSTART(108, 748), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(1280), //origin + SCALE(0.5, 0.5), //yScale + HSTART(35, 509), //vStart + BURST(2, 2, 11, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(2560), //origin + SCALE(0.5, 0.5), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_MPAL_HPN2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_3 | + 0x3000, //ctrl + WIDTH(1280), //width + BURST(57, 30, 5, 70), //burst + VSYNC(524), //vSync + HSYNC(3088, 0), //hSync + LEAP(3100, 3100), //leap + HSTART(108, 748), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(2560), //origin + SCALE(1, 0), //yScale + HSTART(35, 509), //vStart + BURST(2, 2, 11, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(5120), //origin + SCALE(1, 0), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, + {OS_VI_MPAL_HPF2, //type + { + //comRegs + VI_CTRL_TYPE_32 | + VI_CTRL_GAMMA_DITHER_ON | + VI_CTRL_GAMMA_ON | + VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | + 0x3000, //ctrl + WIDTH(640), //width + BURST(57, 30, 5, 70), //burst + VSYNC(524), //vSync + HSYNC(3088, 0), //hSync + LEAP(3100, 3100), //leap + HSTART(108, 748), //hStart + SCALE(1, 0), //xScale + VCURRENT(0), //vCurrent + }, + {//fldRegs + { + //[0] + ORIGIN(2560), //origin + SCALE(0.5, 0.5), //yScale + HSTART(35, 509), //vStart + BURST(2, 2, 11, 0), //vBurst + VINTR(2), //vIntr + }, + { + //[1] + ORIGIN(5120), //origin + SCALE(0.5, 0.5), //yScale + HSTART(37, 511), //vStart + BURST(4, 2, 14, 0), //vBurst + VINTR(2), //vIntr + }}}, +}; + u32 var80060430 = 0x2a000000; u32 var80060434 = 0x0000320e; u32 var80060438 = 0x00000140; diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 5f53c736d..2f16dc49f 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -2700,48 +2700,9 @@ u32 var8008dd50 = 0; u32 var8008dd54 = 0; u32 var8008dd58 = 0; u32 var8008dd5c = 0; -u32 var8008dd60 = 0; -u32 var8008dd64 = 0; -u32 var8008dd68 = 0; -u32 var8008dd6c = 0; -u32 var8008dd70 = 0; -u32 var8008dd74 = 0; -u32 var8008dd78 = 0; -u32 var8008dd7c = 0; -u32 var8008dd80 = 0; -u32 var8008dd84 = 0; -u32 var8008dd88 = 0; -u32 var8008dd8c = 0; -u32 var8008dd90 = 0; -u32 var8008dd94 = 0; -u32 var8008dd98 = 0; -u32 var8008dd9c = 0; -u32 var8008dda0 = 0; -u32 var8008dda4 = 0; -u32 var8008dda8 = 0; -u32 var8008ddac = 0; -u32 var8008ddb0 = 0; -u32 var8008ddb4 = 0; -u32 var8008ddb8 = 0; -u32 var8008ddbc = 0; -u32 var8008ddc0 = 0; -u32 var8008ddc4 = 0; -u32 var8008ddc8 = 0; -u32 var8008ddcc = 0; -u32 var8008ddd0 = 0; -u32 var8008ddd4 = 0; -u32 var8008ddd8 = 0; -u32 var8008dddc = 0; -u32 var8008dde0 = 0; -u32 var8008dde4 = 0; -u32 var8008dde8 = 0; -u32 var8008ddec = 0; -u32 var8008ddf0 = 0; -u32 var8008ddf4 = 0; -u32 var8008ddf8 = 0; -u32 var8008ddfc = 0; -u32 var8008de00 = 0; -u32 var8008de04 = 0; +OSViMode *var8008dd60[2] = {NULL, NULL}; +OSViMode var8008dd68 = {0}; +OSViMode var8008ddb8 = {0}; u32 var8008de08 = 0; u32 var8008de0c = 0; u32 var8008de10 = 0; diff --git a/src/include/PR/os_vi.h b/src/include/PR/os_vi.h index 9293ab08a..58944e650 100644 --- a/src/include/PR/os_vi.h +++ b/src/include/PR/os_vi.h @@ -4,6 +4,54 @@ /* Ultra64 Video Interface */ +/* + * Video Interface (VI) mode type + */ +#define OS_VI_NTSC_LPN1 0 /* NTSC */ +#define OS_VI_NTSC_LPF1 1 +#define OS_VI_NTSC_LAN1 2 +#define OS_VI_NTSC_LAF1 3 +#define OS_VI_NTSC_LPN2 4 +#define OS_VI_NTSC_LPF2 5 +#define OS_VI_NTSC_LAN2 6 +#define OS_VI_NTSC_LAF2 7 +#define OS_VI_NTSC_HPN1 8 +#define OS_VI_NTSC_HPF1 9 +#define OS_VI_NTSC_HAN1 10 +#define OS_VI_NTSC_HAF1 11 +#define OS_VI_NTSC_HPN2 12 +#define OS_VI_NTSC_HPF2 13 + +#define OS_VI_PAL_LPN1 14 /* PAL */ +#define OS_VI_PAL_LPF1 15 +#define OS_VI_PAL_LAN1 16 +#define OS_VI_PAL_LAF1 17 +#define OS_VI_PAL_LPN2 18 +#define OS_VI_PAL_LPF2 19 +#define OS_VI_PAL_LAN2 20 +#define OS_VI_PAL_LAF2 21 +#define OS_VI_PAL_HPN1 22 +#define OS_VI_PAL_HPF1 23 +#define OS_VI_PAL_HAN1 24 +#define OS_VI_PAL_HAF1 25 +#define OS_VI_PAL_HPN2 26 +#define OS_VI_PAL_HPF2 27 + +#define OS_VI_MPAL_LPN1 28 /* MPAL - mainly Brazil */ +#define OS_VI_MPAL_LPF1 29 +#define OS_VI_MPAL_LAN1 30 +#define OS_VI_MPAL_LAF1 31 +#define OS_VI_MPAL_LPN2 32 +#define OS_VI_MPAL_LPF2 33 +#define OS_VI_MPAL_LAN2 34 +#define OS_VI_MPAL_LAF2 35 +#define OS_VI_MPAL_HPN1 36 +#define OS_VI_MPAL_HPF1 37 +#define OS_VI_MPAL_HAN1 38 +#define OS_VI_MPAL_HAF1 39 +#define OS_VI_MPAL_HPN2 40 +#define OS_VI_MPAL_HPF2 41 + /* Special Features */ #define OS_VI_GAMMA_ON 0x0001 #define OS_VI_GAMMA_OFF 0x0002 @@ -21,6 +69,27 @@ #define OS_VI_UNK200 0x200 #define OS_VI_UNK100 0x100 +#define VI_CTRL_ANTIALIAS_MODE_3 0x00300 /* Bit [9:8] anti-alias mode */ +#define VI_CTRL_ANTIALIAS_MODE_2 0x00200 /* Bit [9:8] anti-alias mode */ +#define VI_CTRL_ANTIALIAS_MODE_1 0x00100 /* Bit [9:8] anti-alias mode */ + +#define BURST(hsync_width, color_width, vsync_width, color_start) \ + (hsync_width | (color_width << 8) | (vsync_width << 16) | (color_start << 20)) +#define WIDTH(v) v +#define VSYNC(v) v +#define HSYNC(duration, leap) (duration | (leap << 16)) +#define LEAP(upper, lower) ((upper << 16) | lower) +#define START(start, end) ((start << 16) | end) + +#define FTOFIX(val, i, f) ((u32)(val * (f32)(1 << f)) & ((1 << (i + f)) - 1)) + +#define F210(val) FTOFIX(val, 2, 10) +#define SCALE(scaleup, off) (F210((1.0f / (f32)scaleup)) | (F210((f32)off) << 16)) + +#define VCURRENT(v) v //seemingly unused +#define ORIGIN(v) v +#define VINTR(v) v +#define HSTART START /* Types */ diff --git a/src/include/PR/sched.h b/src/include/PR/sched.h index d29aab672..6591f804d 100644 --- a/src/include/PR/sched.h +++ b/src/include/PR/sched.h @@ -47,6 +47,14 @@ typedef struct OSScTask_s { #define OS_SC_YIELD 0x0010 /* set if yield requested */ #define OS_SC_YIELDED 0x0020 /* set if yield completed */ +/* + * private typedefs and defines + */ +#define VIDEO_MSG 666 +#define RSP_DONE_MSG 667 +#define RDP_DONE_MSG 668 +#define PRE_NMI_MSG 669 + /* * OSScClient: * @@ -78,8 +86,7 @@ typedef struct { s32 doAudio; } OSSched; -void osCreateScheduler(OSSched *s, void *stack, OSPri priority, - u8 mode, u8 numFields); +void osCreateScheduler(OSSched *s, void *stack, u8 mode, u32 numFields); void osScAddClient(OSSched *s, OSScClient *c, OSMesgQueue *msgQ); void osScRemoveClient(OSSched *s, OSScClient *c); OSMesgQueue *osScGetCmdQ(OSSched *s); diff --git a/src/include/boot/boot.h b/src/include/boot/boot.h index e4ea636aa..c1374637d 100644 --- a/src/include/boot/boot.h +++ b/src/include/boot/boot.h @@ -16,6 +16,7 @@ s32 func000022e0(void); void __scHandleRetrace(OSSched *sc); void __scAppendList(OSSched *sc, OSScTask *t); void __scExec(OSSched *sc, OSScTask *sp, OSScTask *dp); +void __scMain(void *arg); struct bootbufferthing *func0000244c(void); void func000024e8(void); void func00002510(void); diff --git a/src/include/constants.h b/src/include/constants.h index a3e85db6d..047c032c5 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -3147,6 +3147,7 @@ #define TELEPORTSTATE_EXITING 4 #define THREAD_IDLE 1 +#define THREAD_SCHED 2 #define THREAD_AUDIO 4 #define THREAD_FAULT 5 #define THREAD_RESET 6 diff --git a/src/include/game/data/data_000000.h b/src/include/game/data/data_000000.h index 7379c562c..e37bcb28f 100644 --- a/src/include/game/data/data_000000.h +++ b/src/include/game/data/data_000000.h @@ -162,7 +162,7 @@ extern u32 var8005f108; extern u32 var8005f548; extern u32 var8005f6f8; extern u32 var8005f6fc; -extern u32 var8005f710; +extern OSViMode osViModeTable[42]; extern u32 var8005f7b0; extern u32 var8005f8f0; extern u32 var8005fa80; diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index acfda623e..3627dc8f2 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -334,11 +334,12 @@ extern u32 var8008dbd0; extern u32 var8008dca8; extern u32 g_OsMemSize; extern u32 var8008dcc0; -extern u32 var8008dd60; -extern u32 var8008dd64; -extern u32 var8008dd68; -extern u32 var8008ddb8; +extern OSViMode *var8008dd60[2]; +extern OSViMode var8008dd68; +extern OSViMode var8008ddb8; +extern u32 var8008de08; extern u32 var8008de0c; +extern u32 var8008de10; extern u32 var8008de18; extern u32 var8008fa68; extern OSMesg g_ResetMesg; diff --git a/src/include/lib/lib_485e0.h b/src/include/lib/lib_485e0.h index 5f6b70ab9..ce20c6f67 100644 --- a/src/include/lib/lib_485e0.h +++ b/src/include/lib/lib_485e0.h @@ -3,6 +3,4 @@ #include #include "types.h" -u32 func000485e0(void); - #endif diff --git a/src/lib/lib_09660.c b/src/lib/lib_09660.c index a4e61c327..9593b7542 100644 --- a/src/lib/lib_09660.c +++ b/src/lib/lib_09660.c @@ -708,10 +708,10 @@ glabel func00009ed4 /* 9f44: 8fa50018 */ lw $a1,0x18($sp) /* 9f48: 8cf90000 */ lw $t9,0x0($a3) /* 9f4c: 000d4c03 */ sra $t1,$t5,0x10 -/* 9f50: 3c068009 */ lui $a2,%hi(var8008dd64) +/* 9f50: 3c068009 */ lui $a2,%hi(var8008dd60+0x4) /* 9f54: 01255821 */ addu $t3,$t1,$a1 /* 9f58: 00194080 */ sll $t0,$t9,0x2 -/* 9f5c: 24c6dd64 */ addiu $a2,$a2,%lo(var8008dd64) +/* 9f5c: 24c6dd64 */ addiu $a2,$a2,%lo(var8008dd60+0x4) /* 9f60: 00084823 */ negu $t1,$t0 /* 9f64: 00c95021 */ addu $t2,$a2,$t1 /* 9f68: 000b6400 */ sll $t4,$t3,0x10 @@ -738,12 +738,12 @@ glabel func00009ed4 /* 9fbc: adf80044 */ sw $t8,0x44($t7) /* 9fc0: 3c088006 */ lui $t0,%hi(var8005ce74) /* 9fc4: 8d08ce74 */ lw $t0,%lo(var8005ce74)($t0) -/* 9fc8: 3c048009 */ lui $a0,%hi(var8008dd64) +/* 9fc8: 3c048009 */ lui $a0,%hi(var8008dd60+0x4) /* 9fcc: 00084880 */ sll $t1,$t0,0x2 /* 9fd0: 0009c823 */ negu $t9,$t1 /* 9fd4: 00992021 */ addu $a0,$a0,$t9 /* 9fd8: 0c012354 */ jal func00048d50 -/* 9fdc: 8c84dd64 */ lw $a0,%lo(var8008dd64)($a0) +/* 9fdc: 8c84dd64 */ lw $a0,%lo(var8008dd60+0x4)($a0) /* 9fe0: 3c048006 */ lui $a0,%hi(var8005ce90+0x3) /* 9fe4: 0c012338 */ jal func00048ce0 /* 9fe8: 9084ce93 */ lbu $a0,%lo(var8005ce90+0x3)($a0) @@ -846,16 +846,16 @@ glabel func0000a044 /* a14c: 3c198009 */ lui $t9,%hi(var8008dcc0) /* a150: 2739dcc0 */ addiu $t9,$t9,%lo(var8008dcc0) /* a154: 14980019 */ bne $a0,$t8,.L0000a1bc -/* a158: 3c0f8006 */ lui $t7,%hi(var80060048) +/* a158: 3c0f8006 */ lui $t7,%hi(osViModeTable+0xa0) /* a15c: 000bc880 */ sll $t9,$t3,0x2 /* a160: 032bc821 */ addu $t9,$t9,$t3 /* a164: 3c0e8009 */ lui $t6,%hi(var8008dcc0) /* a168: 25cedcc0 */ addiu $t6,$t6,%lo(var8008dcc0) /* a16c: 0019c900 */ sll $t9,$t9,0x4 /* a170: 032e2021 */ addu $a0,$t9,$t6 -/* a174: 3c0f8006 */ lui $t7,%hi(var80060070) -/* a178: 25ef0070 */ addiu $t7,$t7,%lo(var80060070) -/* a17c: 25f90048 */ addiu $t9,$t7,%lo(var80060048) +/* a174: 3c0f8006 */ lui $t7,%hi(osViModeTable+0x960) +/* a178: 25ef0070 */ addiu $t7,$t7,%lo(osViModeTable+0x960) +/* a17c: 25f90048 */ addiu $t9,$t7,0x48 /* a180: 00807025 */ or $t6,$a0,$zero .L0000a184: /* a184: 8de10000 */ lw $at,0x0($t7) @@ -877,7 +877,7 @@ glabel func0000a044 /* a1c0: 030bc021 */ addu $t8,$t8,$t3 /* a1c4: 0018c100 */ sll $t8,$t8,0x4 /* a1c8: 03192021 */ addu $a0,$t8,$t9 -/* a1cc: 25eff7b0 */ addiu $t7,$t7,-2128 +/* a1cc: 25eff7b0 */ addiu $t7,$t7,%lo(osViModeTable+0xa0) /* a1d0: 25f80048 */ addiu $t8,$t7,0x48 /* a1d4: 0080c825 */ or $t9,$a0,$zero .L0000a1d8: @@ -905,8 +905,8 @@ glabel func0000a044 /* a228: 25efdcc0 */ addiu $t7,$t7,%lo(var8008dcc0) /* a22c: 0018c100 */ sll $t8,$t8,0x4 /* a230: 030f2021 */ addu $a0,$t8,$t7 -/* a234: 3c198006 */ lui $t9,%hi(var800601b0) -/* a238: 273901b0 */ addiu $t9,$t9,%lo(var800601b0) +/* a234: 3c198006 */ lui $t9,%hi(osViModeTable+0xaa0) +/* a238: 273901b0 */ addiu $t9,$t9,%lo(osViModeTable+0xaa0) /* a23c: 27380048 */ addiu $t8,$t9,0x48 /* a240: 00807825 */ or $t7,$a0,$zero .L0000a244: @@ -931,8 +931,8 @@ glabel func0000a044 /* a288: 2718dcc0 */ addiu $t8,$t8,%lo(var8008dcc0) /* a28c: 000e7100 */ sll $t6,$t6,0x4 /* a290: 01d82021 */ addu $a0,$t6,$t8 -/* a294: 3c198006 */ lui $t9,%hi(var8005f8f0) -/* a298: 2739f8f0 */ addiu $t9,$t9,%lo(var8005f8f0) +/* a294: 3c198006 */ lui $t9,%hi(osViModeTable+0x1e0) +/* a298: 2739f8f0 */ addiu $t9,$t9,%lo(osViModeTable+0x1e0) /* a29c: 272e0048 */ addiu $t6,$t9,0x48 /* a2a0: 0080c025 */ or $t8,$a0,$zero .L0000a2a4: @@ -1130,8 +1130,8 @@ glabel func0000a044 /* a55c: 2718dcc0 */ addiu $t8,$t8,%lo(var8008dcc0) /* a560: 0019c900 */ sll $t9,$t9,0x4 /* a564: 03382021 */ addu $a0,$t9,$t8 -/* a568: 3c0f8006 */ lui $t7,%hi(var80060340) -/* a56c: 25ef0340 */ addiu $t7,$t7,%lo(var80060340) +/* a568: 3c0f8006 */ lui $t7,%hi(osViModeTable+0xc30) +/* a56c: 25ef0340 */ addiu $t7,$t7,%lo(osViModeTable+0xc30) /* a570: 25f90048 */ addiu $t9,$t7,0x48 /* a574: 0080c025 */ or $t8,$a0,$zero .L0000a578: @@ -1156,8 +1156,8 @@ glabel func0000a044 /* a5bc: 2739dcc0 */ addiu $t9,$t9,%lo(var8008dcc0) /* a5c0: 000e7100 */ sll $t6,$t6,0x4 /* a5c4: 01d92021 */ addu $a0,$t6,$t9 -/* a5c8: 3c0f8006 */ lui $t7,%hi(var8005fa80) -/* a5cc: 25effa80 */ addiu $t7,$t7,%lo(var8005fa80) +/* a5c8: 3c0f8006 */ lui $t7,%hi(osViModeTable+0x370) +/* a5cc: 25effa80 */ addiu $t7,$t7,%lo(osViModeTable+0x370) /* a5d0: 25ee0048 */ addiu $t6,$t7,0x48 /* a5d4: 0080c825 */ or $t9,$a0,$zero .L0000a5d8: diff --git a/src/lib/lib_485e0.c b/src/lib/lib_485e0.c index 101a90ff3..59fa94359 100644 --- a/src/lib/lib_485e0.c +++ b/src/lib/lib_485e0.c @@ -11,7 +11,7 @@ #include "types.h" GLOBAL_ASM( -glabel func000485e0 +glabel osViSetEvent /* 485e0: 27bdffd8 */ addiu $sp,$sp,-40 /* 485e4: afbf001c */ sw $ra,0x1c($sp) /* 485e8: afa40028 */ sw $a0,0x28($sp)