As imagens do início do jogo estão comprimidas com o algoritmo de Huffmann. Para quem se interessar, segue abaixo a rotina de descompressão, com as seguintes observações:
- t3 recebe a posição do buffer de descompressão
- $2054(t7) é a posição de memória do byte atual da stream comprimida
- a0 possui o endereço da raiz da árvore de huffmann ($10d90)
- O arquivo "TITLE.EXE" possui o programa de descompressão, bem como a stream de dados.
00045480 addu t6,a3,0
00045484 addiu t2,0,$80
00045488 addu t5,0,0
0004548C addu t4,t5,0
00045490 addu t1,t5,0
00045494 addu t0,t5,0
00045498 lui v0,$5
0004549C lw t3,-$2050(v0)
000454A0 addu t8,t2,0
000454A4 lui t7,$5
000454A8 andi a3,$FF
000454AC addu v0,a1,0
000454B0 bgez v0,$454C0
000454B4 sra v1,v0,$3
000454B8 addiu v0,$7
000454BC sra v1,v0,$3
000454C0 bne t2,t8,$454E0
000454C4 and v0,t5,t2
000454C8 lw v0,-$2054(t7)
000454CC nop
000454D0 lbu t5,$0(v0)
000454D4 addiu v0,$1
000454D8 sw v0,-$2054(t7)
000454DC and v0,t5,t2
000454E0 beq v0,0,$454F8
000454E4 sll v0,v1,$3
000454E8 addu v0,a0
000454EC lh v0,$6(v0)
000454F0 j $45500
000454F4 nop
000454F8 addu v0,a0
000454FC lh v0,$4(v0)
00045500 nop
00045504 bgez v0,$45510
00045508 nop
0004550C addiu v0,$7
00045510 srl t2,$1
00045514 bne t2,0,$45520
00045518 sra v1,v0,$3
0004551C addiu t2,0,$80
00045520 sltiu v0,v1,$101
00045524 beq v0,0,$454C0
00045528 addiu v0,0,$100
0004552C beq v1,v0,$455D0
00045530 addiu v0,0,$1
00045534 beq a2,v0,$45554
00045538 slti v0,a2,$2
0004553C bne v0,0,$45564
00045540 addiu v0,0,$2
00045544 beq a2,v0,$4555C
00045548 addu v0,v1,t1
0004554C j $45568
00045550 addu t1,v1,0
00045554 j $45568
00045558 xor t1,v1
0004555C j $45568
00045560 andi t1,v0,$FF
00045564 addu t1,v1,0
00045568 beq t4,0,$455C4
0004556C lbu v0,$4C434
00045574 nop
00045578 beq v0,0,$455AC
0004557C nop
00045580 beq t0,0,$45590
00045584 nop
00045588 addu t0,a3
0004558C andi t0,$FF
00045590 beq t1,0,$455A0
00045594 addu v0,t1,a3
00045598 sll v0,$8
0004559C addu t0,v0
000455A0 sh t0,$0(t3)
000455A4 j $455C8
000455A8 addiu t3,$2
000455AC sll v0,t1,$8
000455B0 addu v0,t0,v0
000455B4 addu v0,t6,v0
000455B8 sh v0,$0(t3)
000455BC j $455C8
000455C0 addiu t3,$2
000455C4 addu t0,t1,0
000455C8 j $454AC
000455CC xori t4,$1
000455D0 beq t4,0,$45608
000455D4 lbu v0,$4C434
000455DC nop
000455E0 beq v0,0,$45600
000455E4 addu v0,t6,t0
000455E8 beq t0,0,$455F8
000455EC andi v0,t6,$FF
000455F0 addu t0,v0
000455F4 andi t0,$FF
000455F8 j $45604
000455FC sh t0,$0(t3)
00045600 sh v0,$0(t3)
00045604 addiu t3,$2
00045608 lui v0,$5
0004560C jr ra
Quem se interessar pela edição gráfica do grandia, eu já tô com ele 100% traduzido. Tava só fazendo a revisão do texto mesmo... Então, se alguém quiser, já sabe. ^^