Convertir Une Palette Pal En Palette Basic
Pour la petite histoire, Lastic, un gars cool rencontré lors de la Benediction Coding Party 4, m'a demandé s'il était possible de récupérer les valeurs des palettes générées via Ocp Art Studio (.pal) en valeurs utilisables par le basic.
Voici donc le résultat.
;
; Convert ocp .pal files to .bin files
; Files .bin are simply Basic ink 0-26
; .pal file is loaded, converted and saved in .bin file
; Code ; Ast/iMPACT 13/11/24
;
ORG &1000
; ENT start
palette
BYTE &54,&44,&55,&5C
BYTE &58,&5D,&4C,&45
BYTE &4D,&56,&46,&57
BYTE &5E,&40,&5F,&4E
BYTE &47,&4F,&52,&42
BYTE &53,&5A,&59,&5B
BYTE &4A,&43,&4B
;
start
;
; Load .pal file
;
ld hl,name ; ink filename
ld de,&C000
ld b,endn-name
call &BC77
ld hl,&2000 ; load .pal file at #2000
call &BC83
call &BC7A
;
call ocp_pal_to_ink
;
; Convert palette
;
call convert_pal
;
; Save .bin file
;
ld hl,name2
ld de,&C000
ld b,endn2-name2
call &BC8C
ld hl,&2000
ld de,16
ld bc,0
ld a,2
call &BC98
jp &BC8F
;
; Ocp Pal to Ink
;
ocp_pal_to_ink
ld hl,#2000
ld de,#2001
ld b,16
loop_cr push bc
ld bc,12
add hl,bc
ld a,(hl)
ld (de),a
inc e
pop bc
djnz loop_cr
ret
;
; Convert OCP .pal file in locomotive basic ink
;
convert_pal
;
ld de,&2000
ld b,16 ; palette countains 16 colours
;
loop_ink
ld hl,palette ; gate array palette
loop_ink2
ld a,(de)
ld c,(hl)
cp c
jr z,poke_l
;
; Mirror Palette
;
ld a,c
cp &50
jr z,c50 ;1
cp &48
jr z,c48 ;7
cp &41
jr z,c41 ;13
cp &51
jr z,c51 ;19
cp &49
jr z,c49 ; 25
;
inc l
jr loop_ink2
poke_l ld a,l
ld (de),a
inc e
djnz loop_ink
ret
;
; Poke Colour mirroring
;
c50 ld l,1
jr poke_l
;
c48 ld l,7
jr poke_l
;
c41 ld l,13
jr poke_l
;
c51 ld l,19
jr poke_l
;
c49 ld l,25
jr poke_l
; load file
name BYTE "toto.pal"
endn
; save file
name2 BYTE "toto.bin"
endn2Download File(s)
révision de page: 6, édité la dernière fois: 13 Nov 2024 15:27





