Jos'b, respecto al código del descompresor de BitBuster, mi aportación fue simplemente adaptar el BitBuster Extreme a asMSX. El código en cuestión es este
;----------------------------------------------------------
DEPACK_BITBUSTER:
; Depacks Bitbuster encoded data to RAM
; Author: TeamBomba and Gasman (Bitbuster Extreme)
; Parameters: HL=Bitbuster data source; DE=RAM destination
;----------------------------------------------------------
inc hl
inc hl
inc hl
inc hl
ld a,128
exx
ld de,1
exx
depack_loop:
call getbits
jr c,output_compressed
ldi
jr depack_loop
output_compressed:
ld c,[hl]
inc hl
output_match:
ld b,0
bit 7,c
jr z,output_match1
call getbits
call rlbgetbits
call rlbgetbits
call rlbgetbits
jr c,output_match1
res 7,c
output_match1:
inc bc
exx
ld h,d
ld l,e
ld b,e
get_gamma_value_size:
exx
call getbits
exx
jr nc,get_gamma_value_size_end
inc b
jr get_gamma_value_size
get_gamma_value_bits:
exx
call getbits
exx
adc hl,hl
get_gamma_value_size_end:
djnz get_gamma_value_bits
get_gamma_value_end:
inc hl
exx
ret c
push hl
exx
push hl
exx
ld h,d
ld l,e
sbc hl,bc
pop bc
ldir
pop hl
jr depack_loop
rlbgetbits:
rl b
getbits:
add a,a
ret nz
ld a,[hl]
inc hl
rla
ret
;---------------------------------------------------------