homebrew/inc/dlist.inc

57 lines
1.3 KiB
PHP
Raw Normal View History

if HICOLOR {
constant G_SETCIMB_UPPER_WORD(0xFF180000)
} else {
constant G_SETCIMB_UPPER_WORD(0xFF100000)
}
define dpos(0)
macro WriteDL(evaluate L, evaluate R) {
lui t0, ({L} >> 16) & 0xFFFF
lui t1, ({R} >> 16) & 0xFFFF
ori t0, {L} & 0xFFFF
ori t1, {R} & 0xFFFF
sw t0, {dpos}+0(a0)
sw t1, {dpos}+4(a0)
global evaluate dpos({dpos}+8)
if {dpos} >= 0x2000 {
addiu a0, 0x2000
global evaluate dpos({dpos}-0x2000)
}
}
macro WriteCB(evaluate L) {
lui t0, ({L} >> 16) & 0xFFFF
ori t0, {L} & 0xFFFF
sw t0, {dpos}+0(a0)
sw a1, {dpos}+4(a0)
global evaluate dpos({dpos}+8)
if {dpos} >= 0x2000 {
addiu a0, 0x2000
global evaluate dpos({dpos}-0x2000)
}
}
macro MatEye() {
dh 0x0001, 0x0000, 0x0000, 0x0000
dh 0x0000, 0x0001, 0x0000, 0x0000
dh 0x0000, 0x0000, 0x0001, 0x0000
dh 0x0000, 0x0000, 0x0000, 0x0001
dh 0x0000, 0x0000, 0x0000, 0x0000
dh 0x0000, 0x0000, 0x0000, 0x0000
dh 0x0000, 0x0000, 0x0000, 0x0000
dh 0x0000, 0x0000, 0x0000, 0x0000
}
macro MatObject(variable x, variable y, variable z, variable scale) {
dh scale >> 16, 0, 0, 0
dh 0, scale >> 16, 0, 0
dh 0, 0, scale >> 16, 0
dh x >> 16, y >> 16, z >> 16, 1
dh scale, 0, 0, 0
dh 0, scale, 0, 0
dh 0, 0, scale, 0
dh x, y, z, 0
}