.byte 0, 2, 7, 12, 16, 21, 26, 31 # -3
.byte 0, 3, 7, 12, 17, 22, 26, 31 # -2
.byte 0, 4, 8, 13, 17, 22, 26, 31 # -1
.byte 0, 2, 7, 12, 16, 21, 26, 31 # -3
.byte 0, 3, 7, 12, 17, 22, 26, 31 # -2
.byte 0, 4, 8, 13, 17, 22, 26, 31 # -1
.byte 0, 5, 10, 15, 16, 21, 26, 31 # 0
.byte 0, 6, 10, 15, 19, 23, 27, 31
.byte 0, 7, 11, 15, 19, 23, 27, 31
.byte 0, 5, 10, 15, 16, 21, 26, 31 # 0
.byte 0, 6, 10, 15, 19, 23, 27, 31
.byte 0, 7, 11, 15, 19, 23, 27, 31
-.global do_pal_convert # dest, src, gammaa_val
+#.global pal_gmtab
+.global do_pal_convert # dest, src, gammaa_val, black_lvl
+ beqz $a3, dpc_gma_loop
+ sb $0, 0($a2) # black level 0
+ bnez $t2, dpc_gma_loop # gamma < 0, keep black at 0
+ addiu $a3, -2
+ slt $t2, $a3, $0 # t2 = a3_orig == 1 ? 1 : 0
+ lb $t1, 1($a2)
+ addiu $t1, -2
+ srlv $t1, $t1, $t2
+ sb $t1, 0($a2)