Salut,
Je vais faire un bref bilan du travail effectué, pour rendre compte des avancements du projet... et donner l'opportunité aux contributeurs précédents d'y participer et valoriser le travail déjà fait.
Donc,
* Conversion du programme Basic (programme Exel de base), en le faisant maigrir des variables Basic REP$ et COM$, avec migration en Bank haute et ASM.
* Création de la routine ASM pour l'affichage des textes.
* Création de la routine ASM pour l'affichage des éléments vectoriels pour l'affichage des objets (décors en bitmap).
Eléments vectoriels:
La version Exel étant basée sur des éléments bitmap, il faut donc remonter à la version Apple2 pour avoir les données.
Avec les fichiers DUMPés récupérés, il est donc possible de les traiter avec une petite routine assembleur.
Mais, certaines fonctions n'étant pas documentées, il reste des "erreurs" de tracés...
- screen vecoriel sur CPC
- trans_vect.jpg (36.56 Kio) Consulté 4365 fois
Il semble y avoir des informations en trop!
En effet, les DATAs de dessin vectoriel semble utiliser des "TAGs" de fonction, permettent des animations et autre joyeusetés.
Ma routine de lecture en &8000, Datas en &9000:
Code : Tout sélectionner
;#F0# EXIT
;#F1# &20 bit5 %0|0|1|0|0|0|0|0 ; ND (1By) [20]
;#F2# &40 bit6 %0|1|0|0|0|0|0|0 ; ND (1By) [41,42,43]
;#F3# &60 bit6+bit5 %0|1|1|0|0|0|0|0 ; ND (2By) [60]
;#F4# &80 bit7 %1|0|0|0|0|0|0|0 ; MOVE TO / ABSOLUTE
;#F5# &A0 bit7+bit5 %1|0|1|0|0|0|0|0 ; LINE TO / ABSOLUTE
;#F6# &C0 bit7+bit6 %1|1|0|0|0|0|0|0 ; ? LINE TO / ABSOLUTE
;#F7# &E0 bit7+bit6+bit5 %1|1|1|0|0|0|0|0 ; FILL
Write "VTRACE.BIN"
org &8000
LD de,0 ; X coord.
LD hl,-100 ; Y coord.
CALL &BBC9
LD hl,&9000
Loop
XOR a
LD(TagDE+2),a ; Reset A > X up to 256
LD a,(hl)
CP &00
RET Z
AND &E0 ; get 111xxxxx
RLCA ; Rot 11xxxxx1
RLCA ; Rot 1xxxxx11
RLCA ; Rot xxxxx111
CP 1
JR z,tag20
CP 2
JR z,tag40
CP 3
JR z,tag60
CP 4
JR z,tag80 ; +BIT 0 RES
CP 5
JR z,tagA0 ; +BIT 0 RES
CP 6
JR z,tagC0 ; +BIT 0 RES
;; F7: tagE0
JR tagE0 ; +BIT 0 RES
;; Dist..
;#F1#;; ????
tag20
INC hl
JR loop
;#F2#;; ????
tag40 LD a,(hl)
CP &40
JR nz,tag41
JR Tag4X
tag41
CP &41
JR nz,tag42
JR Tag4X
tag42
CP &42
JR nz,Tag4X
tag43
;; &43 or BIT0 from RES 0,a
Tag4X
INC hl
JR end_loop
;#F3#;; ????
tag60
INC hl
INC hl
JR loop
;#F4#;; MOVE TO ; ABSOLUTE
tag80 CALL Get_A; tag81 + 256 offset
JR init_plot
;#F5#;; LINE TO ; ABSOLUTE
tagA0 CALL Get_A; tagA1 + 256 offset
CP &A0
JR nz,tagA2
JR init_line
tagA2
JR init_line
;#F7#;; LINE TO ; ABSOLUTE
tagC0 CALL Get_A
JR init_line
;#F6#;; FILL
tagE0 CALL Get_A; tagE1 + 256 offset
CP &E0
JR nz,tagE2
JR init_plot
tagE2
JR init_plot
end_loop
JR loop
init_line
LD a,&F6
JR int_launch
init_plot
LD a,&EA
int_launch
LD (callarg+1),a
CALL get_coo
CALL line1
JR end_loop
get_coo
INC hl
LD a,(hl)
LD (TagDE+1),a ; X coord.
INC hl
LD a,(hl)
XOR &FF
LD (TagHL+1),a ; Y coord.
INC hl
RET
line1
PUSH hl
TagHL
LD hl,&00FF
RL l
RL h
TagDE
LD de,&0000
RL e
RL d
callarg
CALL &BB00
POP hl
RET
Get_A
LD a,(hl)
BIT 0,a ; Test if X>256 from 81,A1,E1...
JR Z,Ret_1
ex af,af'
LD a,1
LD(TagDE+2),a
ex af,af'
Ret_1
RES 0,a
RET
J'ai créé deux disquettes CPC pour visualiser les décors et les objets du jeu.
- trace.zip
- Disquettes tracé Objet/Décors
- (51.96 Kio) Téléchargé 128 fois
lancez la démo en tapant : RUN"DEMO pour les deux disquettes.
On peut s'apercevoir que le programme ASM ci-dessus est perfectible, et qu'un certain nombre d'information passent mal...
Surtout pour les objets...
Il reste encore du travail sur ces Objets, car ils seront utilisés lors du jeu.
Pour ce qui est du décor, ils seront redessinés en s'inspirant des tracés obtenu.
Pour le moment en mode 1, le jeu pourra être converti en mode 0 pour la partie décor, et mode 1 pour la partie texte, mais les routines de splitting trouvées, ne me semble pas stable.
Il est donc prioritaire de décortiquer les bases du jeu avant de parler cosmétique!
A plus, pour un version plus aboutie de ce traceur vectoriel.
Par contre, si quelqu'un a une idée, ou trouve l'utilité des fonctions non documentée....
Ce projet est participatif, et je n'ai pas la prétention de coller mon pseudo sur cette portage, car beaucoup de travail a déjà été fait par les différent contributeurs de ce forum!
Au fait, on a perdu Baptiste ?
[EDIT]
J'ai l'impression de faire mon 'Defcard' avec ce message pourri !
[EDIT]