Convertir Une Palette Ink 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 iMPdraw (.ink) en valeurs utilisables par le basic.
Voici donc le résultat.
;
; Convert .ink files to .bin files
; Files .bin are simply Basic ink 0-26
; ink 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 .ink file
;
ld hl,name ; ink filename
ld de,&C000
ld b,endn-name
call &BC77
ld hl,&2000 ; load .ink file at #2000
call &BC83
call &BC7A
;
; 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
;
; Convert .ink 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.ink"
endn
; save file
name2 BYTE "toto.bin"
endn2Download files
révision de page: 6, édité la dernière fois: 13 Nov 2024 15:27





