CPC Rulez
https://cpcrulez.fr/forum/

TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE
https://cpcrulez.fr/forum/viewtopic.php?f=2&t=5279
Page 115 sur 138

Auteur :  dlfrsilver [ 28 Avr 2018, 01:57 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

Thomas, je te demanderais de ne pas poster de fichier SCP sur mon topic. Ce topic concerne les dumps effectués avec le kryoflux, je fais partie de l'équipe, et ils ne veulent pas être associé ou qu'une personne faisant partie de SPS soit rattaché avec le système SCP.

Je ne veux avoir aucune réflexion ni remarque à ce sujet, les auteurs du kryo ne peuvent pas saquer le père Drew !

Ensuite, pour en avoir parlé avec un français qui s'occupe de préservation au Japon, le SCP a un problème avec l'index. Le kryo est le seul matos étant OK (j'avoue que ça m'a surpris quand il m'a dit ça, mais il a fait des tests poussés avec le SCP sur un grand nombre de logiciels japonais, et ça le fait clairement pas, et ceci sans pousser jusqu'à la création d'IPFs (99% des logiciels japonais, même protégés ne sont pas vu comme dupliqués donc pas d'IPF).

Auteur :  Lone [ 28 Avr 2018, 09:27 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

Denis, si je comprends ton point de vue, j'aurais apprécié un déplacement de post plutôt qu'une édition pure et simple.
Egalement, je te serais gré, lors de tes éditions de modération, de ne pas y inclure tes opinions, que l'on pourrait prendre pour les miennes. Merci d'avance.

Je lancerais donc un nouveau topic sur le sujet pour ne pas polluer celui-ci.

Auteur :  dlfrsilver [ 28 Avr 2018, 16:07 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

Lone a écrit :
Denis, si je comprends ton point de vue, j'aurais apprécié un déplacement de post plutôt qu'une édition pure et simple.
Egalement, je te serais gré, lors de tes éditions de modération, de ne pas y inclure tes opinions, que l'on pourrait prendre pour les miennes. Merci d'avance.

Je lancerais donc un nouveau topic sur le sujet pour ne pas polluer celui-ci.


Le fait est que j'ai déjà demandé par le passé de ne pas poster sur ce topic au sujet du SCP.

Je n'inclue pas mes opinions, si tu avais été là à la BNF, il t'aurait dit la même chose.

Ce qu'il m'a dit n'est pas une opinion mais un fait. Les deux systèmes ont été testés au Japon de manière extensive, et le SCP a un problème avec l'index. Si tu veux en savoir plus, je peux te mettre en contact avec mon homologue Français au Japon, il t'expliquera les choses plus en détail.

Auteur :  Lone [ 28 Avr 2018, 16:53 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

dlfrsilver a écrit :
Ce qu'il m'a dit n'est pas une opinion mais un fait. Les deux systèmes ont été testés au Japon de manière extensive, et le SCP a un problème avec l'index. Si tu veux en savoir plus, je peux te mettre en contact avec mon homologue Français au Japon, il t'expliquera les choses plus en détail.


Ca sera avec grand plaisir !

Auteur :  dlfrsilver [ 28 Avr 2018, 18:19 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

Lone a écrit :
dlfrsilver a écrit :
Ce qu'il m'a dit n'est pas une opinion mais un fait. Les deux systèmes ont été testés au Japon de manière extensive, et le SCP a un problème avec l'index. Si tu veux en savoir plus, je peux te mettre en contact avec mon homologue Français au Japon, il t'expliquera les choses plus en détail.


Ca sera avec grand plaisir !


Ok, dès que je le vois en ligne, je lui en parle :)

Auteur :  Megachur [ 30 Avr 2018, 07:10 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

J'ai fait un analyse rapide du loader HEXAGON de << Les Chevaliers (UK) (Face 1) (1990) (1. BlackTiger - 2. Strider - 5. Led Storm) [Original] [COMPILATION] >> :
pour le chargement de Black Tiger (choix 1 du menu)

Code :
; Analyse du loader des Chevaliers (UK) (1990) (Face 1) (U.S.Gold - Capcom)
; Chargement des données de Black Tiger

org #754a
; -----------------------------> data
; db #00,#08,#18,#01
nop
ex af,af'
jr #754f
; -----------------------------> debut du loader
ld sp,#c000
push af      ; a = #41
ld a,#01
call #bc0e
ld bc,#0000
.l755a
call #bc38
call l75d7   ; changement des couleurs -> noir
pop af
ld c,a
and #0f      ; a=#01
ld (l7653),a
cp c      ; c != a
ld a,#0a
ld ix,#c000
call z,l75ef   ; on va pas en #75ef
ei
ld hl,l755a   ; on va prendre les couleurs entre &755a et &754a
ld a,#10
.l7577
dec hl
dec a
push af
push hl
ld b,(hl)
ld c,b
call #bc32
pop hl
pop af
jr nz,l7577   ; bon c'est fini on a mis des couleurs en fonction du debut des donnees du loader !
call l75e4   ; wait the new colors set...
; -----------------------------> recuperation des donnes
ld a,#0b   ; numero de piste
ld ix,#0500   ; emplacement des datas
call l75ef   ; go !
; -----------------------------> recuperation des donnes
ld a,#0c
ld ix,#ac00
call l75ef
; -----------------------------> recuperation des donnes
ld a,#0d
ld ix,#0100
call l75ef
; -----------------------------> recuperation des donnes
call l75ca   ; colors #10->#00 to black

ld a,#0e
ld ix,#f200
call l75ef
; -----------------------------> recuperation des donnes

ld a,(l7653)   ; a=#01
ld (#0102),a   ; (#0102)=#ff->#01
ld a,#f3
ld (#0000),a   ; (#0000)=#01->#f3
ld a,#c3
ld (#0001),a   ; (#0000)=#89->#c3
ld hl,#0100
ld (#0002),hl   ; (#0100)=#7f,#ED->#100

; org #0000
; di
; jp #0100
; cela prepare un rst #00 ;-) dans la suite du code !?

ld sp,#c000
jp #0500

;org #0500
;di
;jp #305a   ; suite du chargement et initalisation du jeu !


.l75ca      ; colors #10->#00 to black
ld bc,#7f10
.l75cd
out (c),c
ld a,#54
out (c),a
dec c
ret m
jr l75cd
.l75d7      ; changement couleurs -> noir
ld a,#10
.l75d9
ld bc,#0000
dec a
push af
call #bc32
pop af
jr nz,l75d9
.l75e4
call #bc41   ; Gets the periods with which the colours of the border and PENs flash - HL = &0a0b
inc l
ld b,l
.l75e9
call #bd19   ; Waits until a frame flyback occurs
djnz l75e9   ; wait some vbls
ret
; -----------------------------> get the data
.l75ef
di
ld (l7652),a   ; numero de la piste
ld a,#05
ld (l77f9),a   ; ?
call l76df   ; demarrage du moteur du lecteur de disquette avec a = &05 !
.l75fb
push ix
push ix
ld bc,#fb7e
.l7602
call l777c   ; send command and get result
ld a,(hl)   ; a = (hl=&77f2)
or a
jr nz,l7602
ld a,(l77fa)   ; a = (hl=&77fa)
or a
jr nz,l7648
dec a
.l7610
inc a
call l7761   ; go to track
call l777c   ; check status
ld a,(l77f8)
cp #06
ld a,(l77f1)   ; a=track number
jr nz,l7610
ld hl,l7918
push hl
push hl
ld bc,#0000
ld de,#01f8
;;;;;;;;;;;;;;;;;
call l771d   ; get &01f8 data to hl (=&7918)
pop iy
pop hl
ld e,#24
ld c,#0e
.l7636
ld d,(iy+#05)
ld b,c
.l763a      ; decode data with d=(iy+#05) (example, first block key in #7918 = (#7918+#05)=#35))
ld a,(hl)
xor d
ld (hl),a
inc hl
djnz l763a
ld (iy+#05),d   ; keep d value to (#7918+#05)=#35
add iy,bc   ; next bloc bc=&000e , iy+&000e
dec e
jr nz,l7636
.l7648
ld a,#01
ld (l77fa),a
ld ix,l7918   ;
.l7653 equ $ + 2
.l7652 equ $ + 1
ld de,#0000   ; de = #0100 + (#7652)=#0b 1st time
ld bc,#0000
.l7657      ; check checksum ?
add ix,bc
ld c,#0e
ld a,(ix+#00)
and #0f
cp d
jr nz,l7657
ld a,(ix+#01)
cp e
jr nz,l7657

ld a,(ix+#0b)
ld (l76eb),a
ld l,(ix+#0c)
ld h,(ix+#0d)
ld (l76ed),hl
pop hl
ld a,(ix+#06)
ld (l76f9),a
ld a,(ix+#05)
push af
ld a,(ix+#00)
ld (l76fb),a
ld e,(ix+#07)
ld d,(ix+#08)
rla
jr nc,l769c
and a
sbc hl,de
ld c,(ix+#09)
ld b,(ix+#0a)
add hl,bc
.l769c
ld a,(ix+#02)
ld c,(ix+#03)
ld b,(ix+#04)
push hl
push de
call l771d   ; get data from tracks
; ------------------------- calculate checksum of datas...
pop de      ; de=&5ce5 data to go
pop hl      ; hl=&0d1b
push de
push hl
ld c,#00
.l76b0      ; decode data
ld a,(hl)
xor c
ld c,a      ; xor with previous data
inc hl
dec de
ld a,d
or e
jr nz,l76b0
pop hl
pop de
pop af      ; a=#90
pop ix      ; ix=#0500
sub c
jr z,l76e5   ; z=0 -> go to #76e5
ld hl,l77f9
dec (hl)
jp nz,l75fb
ld hl,l76d5
push hl
ld de,#bf00
ld bc,#0009
ldir
ret
.l76d5
call l76de
ld bc,#7f80
out (c),c
rst #00
.l76de      ; fdd motor off
sub a
.l76df      ; fdd motor on if a = &01
ld bc,#fa7e
out (c),a
ret
; ------------------------ decode data loaded
.l76e5
; ------------------------ decode data loaded

; 1st time
; hl =#0d1b
; de =#5ce5
; ix =#0500
; bc =#fb90


; second time
; hl =#acd0
; de =#0150
; ix =#ac00
; bc =#fbc0

; third time
; hl =#0107
; de =#01e1
; ix =#0100
; bc =#fb72

; 4th time
; hl =#f449
; de =#0bb7
; ix =#f200
; bc =#fbf2

call l76de   ; set fdd motor off
push de      ; de= (length of data) (1st time #5ce5)
push hl      ; hl= (adr data) (1st time #0d1b=
.l76eb equ $ + 1
ld c,#00   ; first byte to decode (1st example c=#2a)
.l76ec
ld a,(hl)
.l76ed
xor e      ; e is always changing because of "dec de" after
xor c      ; c always the same
ld (hl),a
inc hl
dec de
ld a,d
or e
jr nz,l76ec
;----------- data is all decoded !
pop hl      ; hl= #0d1b (data loaded & decoded 1st address)
pop de      ; de= #5ce5 (length)
.l76f9 equ $ + 1
ld c,#00   ; c = &e2
.l76fb equ $ + 1
ld a,#00   ; a= &c1
rla
ret nc
.l76fe      ; move data (and decompress if any same data) to ix=&0500
ld b,#01
ld a,(hl)
cp c
jr nz,l770f   ; a != c -> 770f - if one data only, not a block of same data
inc hl
dec de
ld a,(hl)
or a
ld a,c
jr z,l770f
ld b,(hl)
inc hl
dec de
ld a,(hl)
.l770f
ld (ix+#00),a   ; data to ix=#0500...
inc ix
djnz l770f   ; do it b time if there is a block of same data !
inc hl
dec de
ld a,d
or e
jr nz,l76fe   ; end !?

; end 1st time
; hl =#6a00
; de =#0000
; ix =#6a00
; bc =#00e2


; second time
; hl =#ae20
; de =#0000
; ix =#ae20
; bc =#00ef

; third time
; hl =#02e8
; de =#0000
; ix =#02e8
; bc =#00fc

; 4th time
; hl =#0000
; de =#0000
; ix =#0000
; bc =#00ef


ret



.l771d
ld (l77f1),a
ld (l778f),bc
ld (l77a9),hl
ld (l7740),de   ; length of data to load
ld bc,#fb7e
.l772e
ld a,(l77f1)
call l7761
ld hl,#18a0   ; length of data ! #18a0 = 6304
ld de,(l778f)
and a
sbc hl,de
ex de,hl
.l7740 equ $ + 1
ld hl,#0000   ; length of data to load
sbc hl,de
jr nc,l774b
add hl,de
ex de,hl
sub a
ld h,a
ld l,a
.l774b
ld (l7740),hl
ld (l77ac),de
push af
ld hl,l77e1   ; send command to fdc in &77e1 - load sector to ...
call l777f
ld hl,l77f1
inc (hl)   ; next track
pop af
jr nz,l772e
ret
.l7761      ; go to track
ld (l77f1),a
ld (l77e4),a
.l7767
ld hl,l77ee   ; send command to fdc in &77ee - go to track
call l777f
.l776d
ld hl,l77df   ; send command to fdc in &77df - check if fdd as reached the right track number
call l777f
bit 5,(hl)   ; check first result fdc data (&77f2) = &20 (if ok)
jr z,l776d
bit 3,(hl)   ; check first result fdc data (&77f2) = &08 (if bad)
jr nz,l7767
ret
.l777c      ; send command to fdc in &77eb
ld hl,l77eb
.l777f      ; send command to fdc
ld e,(hl)
.l7780
inc hl
.l7781
in a,(c)
add a
jr nc,l7781
ld a,(hl)
inc c
out (c),a
dec c
dec e
jr nz,l7780
.l778f equ $ + 1
ld hl,#0000
jr l77a1
.l7793
in a,(c)
jp p,l7793
and #20
jr z,l77c7
inc c
in a,(c)
dec c
dec hl
.l77a1
ld a,h
or l
jr nz,l7793
ld (l778f),hl
.l77a9 equ $ + 1
ld hl,#0000
.l77ac equ $ + 1
ld de,#0000
jr l77bb
.l77b0
ld a,d
or e
jr z,l77bb
dec de
inc c
in a,(c)
dec c
ld (hl),a
inc hl
; -----------------------------> get result of the cmd from the fdc
.l77bb
in a,(c)
jp p,l77bb
and #20
jr nz,l77b0
ld (l77a9),hl
.l77c7
ld hl,l77f2
push hl
.l77cb
in a,(c)
bit 4,a
jr z,l77dd
cp #c0
jr c,l77cb
inc c
in a,(c)
dec c
ld (hl),a
inc hl
jr l77cb
.l77dd
pop hl
ret
.l77e4 equ $ + 5
.l77e1 equ $ + 2
.l77df
db #01,#08,#09,#46,#00,#00,#00,#01
.l77ee equ $ + 7
.l77eb equ $ + 4
db #06,#01,#2a,#ff,#02,#4a,#00,#03
.l77f2 equ $ + 3
.l77f1 equ $ + 2
db #0f,#00,#00,#00,#00,#00,#00,#00
.l77fa equ $ + 3
.l77f9 equ $ + 2
.l77f8 equ $ + 1
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
.l7918 equ $ + 1
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00,#00,#00,#00,#00,#00,#00,#00
db #00
...


ce que j'y vois c'est un chargement des pistes 8k avec #18a0 = 6304 données exactement...
donc il faut que ces 6304 données soient exactes puisque que calcul d'un checksum (cf code ci-dessus) !

sinon, ce que j'y ai vu :
- calcul de checksum avec clé dépendante des données
- decodage avec clé dépendante des données et même un petit decrunch si un block de données est avec la même donnée identique ;-) !!!

pas plus...pas moins !!! :winner:

Auteur :  dlfrsilver [ 30 Avr 2018, 20:23 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

Merci, c'est donc la variante Hexagon $18A0. Il doit y avoir une subtilité, parce que le CTA ne la reconnait pas.

ce qui nous met la puce à l'orteil, c'est la ligne suivante : ld hl,#18a0 ; length of data ! #18a0 = 6304

En tout cas, le mec qui a pondu ce loader, s'est inspiré des loaders en trackload de l'Amiga, c'est exactement le même principe que ces derniers utilisent.

J'ai adoré le :

ld sp,#c000
jp #0500

pour Black Tiger ! :mdr:

C'est carrément brutal comme méthode de chargement, et hop direct en $0500 !

Auteur :  dlfrsilver [ 30 Avr 2018, 20:26 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

Petit cadeau ce jour, j'ai reçu une disquette en loose du jeu Sly Spy Secret Agent, voilà les CTraw et eDSK du jeu (J'ai fait aussi un IPF).

En PJ, je laisse Hermol fait la MAJ sur CPCrulez :)

Auteur :  Megachur [ 30 Avr 2018, 21:50 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

@dlfrsilver :

en analyse rapide entre le dsk sur cpc-p0wer : Secret Agent - Sly Spy (UK) (Face A) (1990) (UK retail version) [Original] qui fonctionne mais avec une piste trop importante...
et celui-ci
la fin des pistes n'est pas exactement la même avant l'index : ce qui pourrait expliquer le pb de chargement (visible au lancement du première level par un beau plantage) !

pour le premier dsk piste 1 :

Code :
45 14 3F 3E 6D CF 9E 3D 3F 3C CF CF 3C 3F 3E 6D  E.?>m..=?<..<?>m
0017C0: CF 9E 3D 3F 3C CF CF 6D CF 3D 3F 3E CF 9F 28 28  ..=?<..m.=?>..((
0017D0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ................
0017E0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ................
0017F0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ................
001800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
001810: 00 00 00 00 00 00 6A C0 62 17 24 E4 E4 E4 E4 E4  ......j.b.$.....
001820: E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4  ................
001830: E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4  ................
001840: E4 E4 E4 E4 E0 00 00 00 00 00 00 00 00 00 00 00  ................
001850: 0A 1A 1A 1F E0 10 0C 10 6E A0 B4 E4 E4 E4 E4 E4  ........n.......
001860: E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4

pour le nouveau dsk piste 1 :

45143F3E6DCF9E3D3F3CCFCF3C3F3E6D
CF9E3D3F3CCFCF6DCF3D3F3ECF9F2828

puis que des zéros !!!
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000



mais il faudrait également analyser le loader pour voir combien il lit de données, quel checksum dans les datas (ou à la fin) ?! :magic:

Auteur :  Lone [ 30 Avr 2018, 22:43 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

Megachur : Pour cette piste 1, le CTRaw correspond exactement au dump que tu mentionnes. (Il fonctionne bien, en tout cas sur les deux premier niveaux !)

C'est assez curieux tout de même : Les FF après l'index (dans le cas de la piste 1) correspondent à des 00 avec bit clock/data inversés.

Autre remarque, la piste 8 : Dans la version correcte, on n'a pas de shift au passage d'index (E5 tout du long). La version dsk présente ci dessus , elle, est complétée par un tas de '00' dont la présence est inexpliquée... Sauf par une erreur de génération de dsk quelconque.

Auteur :  dlfrsilver [ 30 Avr 2018, 23:53 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

Megachur a écrit :
@dlfrsilver :

en analyse rapide entre le dsk sur cpc-p0wer : Secret Agent - Sly Spy (UK) (Face A) (1990) (UK retail version) [Original] qui fonctionne mais avec une piste trop importante...
et celui-ci
la fin des pistes n'est pas exactement la même avant l'index : ce qui pourrait expliquer le pb de chargement (visible au lancement du première level par un beau plantage) !

pour le premier dsk piste 1 :

Code :
45 14 3F 3E 6D CF 9E 3D 3F 3C CF CF 3C 3F 3E 6D  E.?>m..=?<..<?>m
0017C0: CF 9E 3D 3F 3C CF CF 6D CF 3D 3F 3E CF 9F 28 28  ..=?<..m.=?>..((
0017D0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ................
0017E0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ................
0017F0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ................
001800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
001810: 00 00 00 00 00 00 6A C0 62 17 24 E4 E4 E4 E4 E4  ......j.b.$.....
001820: E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4  ................
001830: E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4  ................
001840: E4 E4 E4 E4 E0 00 00 00 00 00 00 00 00 00 00 00  ................
001850: 0A 1A 1A 1F E0 10 0C 10 6E A0 B4 E4 E4 E4 E4 E4  ........n.......
001860: E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4 E4

pour le nouveau dsk piste 1 :

45143F3E6DCF9E3D3F3CCFCF3C3F3E6D
CF9E3D3F3CCFCF6DCF3D3F3ECF9F2828

puis que des zéros !!!
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000



mais il faudrait également analyser le loader pour voir combien il lit de données, quel checksum dans les datas (ou à la fin) ?! :magic:


Salut Megachur,

(j'ai bien reçu tes cassettes. J'ai traité Matchday II en version hitsquad, c'est la même version que celle qu'on a sur CPCrulez et CPCpower, le speedlock est identique, c'est un speedlock v6 1650 bauds.)

Concernant Sly Spy Secret Agent, la version sur cpc p0wer/CPCrulez est ancienne. Cette nouvelle version est tirée de ma disquette originale, et les eDSK ont été crée avec Samdisk v4.0.

La Face A est composée comme suit :

1 piste bootloader speedlock en 512 x 9, puis 8 pistes speedlock de 6K SANS checksum, mais AVEC variation de densité !

Les pistes dans l'eDSK font 6400 octets, dont 6224 octets utilisés, ça fait $1850 par pistes.

sur le dump lourd, les pistes speedlock font entre 6272 et 6290 octets.

Qu'est-ce qui vous chagrine ? Les eDSKs sont fonctionnels, ils fonctionnent avec sugarbox et CPCE.

Je note qu'il merde avec Caprice Forever (tiens tiens), et ton ému Megachur.....

Vous avez une couille dans le potage.....

Auteur :  dlfrsilver [ 01 Mai 2018, 00:05 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

Lone a écrit :
Megachur : Pour cette piste 1, le CTRaw correspond exactement au dump que tu mentionnes. (Il fonctionne bien, en tout cas sur les deux premier niveaux !)

C'est assez curieux tout de même : Les FF après l'index (dans le cas de la piste 1) correspondent à des 00 avec bit clock/data inversés.

Autre remarque, la piste 8 : Dans la version correcte, on n'a pas de shift au passage d'index (E5 tout du long). La version dsk présente ci dessus , elle, est complétée par un tas de '00' dont la présence est inexpliquée... Sauf par une erreur de génération de dsk quelconque.


la génération a été faite avec Samdisk v4.0 ; mais il s'agit d'un problème d'émulation.....

Je sais pas pourquoi, mais j'ai l'impression que c'est le dilemme de la poule et de l'oeuf, je veux dire par là que la nouvelle version de samdisk rabote les piste pour faire pile 6305 octets maximum (6400 octets structure comprise). Seulement voilà, comme on est en sectoriel, y a un loupé quelque part.

J'ai bien saisi que le FDC se cale avec un timing précis pour lire une piste, si ça s'arrête trop tot ou trop tard, ça merde.....

Il faut absolument caler les eDSKs sur le FDC et non le FDC sur les eDSKs :/

Auteur :  breiztiger [ 01 Mai 2018, 04:10 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

Juste pour info

samdisk 4 ne coupe pas à 6304 Max comme tu dis Denis

La coupure n’a que peut change depuis la version 3.8.10

Auteur :  Megachur [ 01 Mai 2018, 06:52 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

Analyse complémentaire de la fin du CTRAW (sans correction de données comme Sugarbox c'est si bien le faire ) :

Code :
45000045143f3e6dcf9e3d3f3ccfcf3c3f3e6d
cf9e3d3f3ccfcf6dcf3d3f3ecf9f2828

--> à partir de là, ce n'est plus comme le dsk généré à partir du CTRAW ???
--> donc il y a peut-être un correctif de données à voir par Lone ce qui se passe à ce moment dans son analyseur/correcteur de données...

31
fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000000000000000000000000000000000000
175840622092424242424242424242424242424242424242424242424242424242424242424242424242424242424243fffffffffffffffffffffffe5c2a1a1a1fe0100c106ea0b4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e000000000000000000000000a1a1a1f80c0c0c0c0c0c0c


donc clairement, les données ne sont pas alignés comme il devrait l'être dans l'eDSK car on devrait se retrouver (avec correctif de données et alignement pas le data separator ?) comme sur le premier eDsk existant pour moi...

bon dès que j'aurai 5 minutes j'irai voir le loader pour savoir combien de données il lit et comment il contrôle le tout (ou pas puisque qu'il ne bloque pas à ce stade du chargement même si les données sont fausses) !

Auteur :  Megachur [ 01 Mai 2018, 07:49 ]
Sujet du message :  Re: TOPIC DUMPS/JEUX PRESERVES AMSTRAD CPC DISK ET CASSETTE

Bon, je vais vous passez le détail de l'analyse du loader
mais en gros ce que j'ai vu

le loader se sert des premiers octets lus sur le secteur #c8 en piste 0 qu'il utilise mais j'ai pas pris le temps de comprendre plus :
= "01 01 01 40 02 03 11 7E" then E5 E5 ...

ensuite les datas qui sont lus : (break en &a829 si cela intéresse quelqu'un ?)
Piste 0 secteur #c8 :
hl = #a8a1 = address to store data loaded
de = #0000 = length of data to read
donc premier coup on lit #ffff data !!! ;-)

bon... on n'y va à fond cette fois, vas-y FDC !!!
mais non...on s'arrête à de = #FE00 grâce au result du fdc qui dit fin de secteur après #200 (=512 bytes)
lus comme demandé par la commande FDC Command=4c-00 00 00 c8 02 c8 2a ff

ouf !

next

Piste 1 secteur #c1 :
hl = #c000 = address to store data loaded
de = #1800 = length of data to read

next

Piste 2 secteur #c1
#d800
#1800

--> le screen d'intro apparait en &c000 !!!

next

Piste 3 secteur #c1
#f000
#1000
on en lit moins cette fois !!!

même piste ;-)

Piste 3 secteur #c1
#1400
#0800
on en lit encore moins cette fois !!!

Piste 4 secteur #c1
#1C00
#1800
ouf, on reprend la cadence !

Piste 5 secteur #c1
#3400
#1800

Piste 6 secteur #c1
#4c00
#1800

Piste 7 secteur #c1
#6400
#1800

Piste 8 secteur #c1
#7c00
#1600
un peu moins...mais c'est fini pour la face A !

Code :
et voilà la fin du loader
.la6c9      ; end of loading
exx
ld bc,#fa7e   ; motor off !
out (c),c
.la6d1 equ $ + 2
ld hl,la718
ld de,la719
ld bc,#0180
ld (hl),a
ldir
ld hl,la600
ld de,la601
ld bc,#00e5
ld (hl),a
ldir
di
ld hl,#1400
ld de,#0000
ld bc,#2c02
ldir
ld sp,#3a00
ld hl,la70a
ld de,#3000
ld bc,#0010
ldir
ld bc,#7f8c
out (c),c
xor a
ex af,af'
exx
jp (hl) ; on va où ?
.la70a  ;       et bien pas là mais en #3000
ld hl,#912f
ld de,#bfff
ld bc,#4002
lddr
jp #0078

et en #3000
ld hl,#912f
ld de,#bfff
ld bc,#4002
lddr
jp #0078





si ça peut aider... :kissed: :kissed: :kissed: :sweatingbullets:
pas vu de décodage ou de calcul checksum !!!

donc si le jeu plante après...c'est uniquement dû à une erreur de lecture sur les datas !

Page 115 sur 138 Le fuseau horaire est UTC+1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/