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

Dark Sceptre / Firebird
https://cpcrulez.fr/forum/viewtopic.php?f=8&t=6641
Page 3 sur 4

Auteur :  marcel [ 16 Fév 2022, 13:32 ]
Sujet du message :  Re: Dark Sceptre / Firebird

bon, y a deux trois trucs qui me sautent aux yeux, j'ai une grosse hypothèse que j'aimerai confirmer
j'ai patché la coupe moteur du loader, si ceux chez qui la copie ne passe pas pouvaient me dire si cette version se charge, ça confirmerait mon soupçon (et je pourrai même faire ensuite un POC)
https://1fichier.com/?2bdumfhh3bhuohoz6phu

Auteur :  marcel [ 16 Fév 2022, 14:39 ]
Sujet du message :  Re: Dark Sceptre / Firebird

j'comprenais pas trop pourquoi ça ramait à lire la piste #12, alors j'ai tracé un peu...
bah il va lire les données du disque par dessus ce qu'il est en train de faire! donc potentiellement changer le loader
donc qui dit loader patché, dit patch sur la piste 0 ET AUSSI sur la piste 12 mais pas au même endroit (secteur 8) :sweatingbullets:

Auteur :  marcel [ 16 Fév 2022, 15:49 ]
Sujet du message :  Re: Dark Sceptre / Firebird

j'ai fait un dump commenté du loader en place, à part des trucs pas propres, y a rien de suspect, le mystère reste entier :D

Code :
retry call MOTORON_DELAY
    jr nc,retry
    ld a,3
    ld bc,#cc0
    call ReadTrack ; from track 3 read 12 tracks in #C000 => #8000
    jr nc,retry
    ld bc,#bc01
    ld hl,#2a
    call SetCRTC
    call MOTORON_DELAY
    jr nc,retry
    ld sp,#4000
    ld a,15
    ld bc,#480
    call ReadTrack ; from track 15 read 4 tracks in #8000
    jr nc,retry
    call MOTORON_DELAY
    jr nc,retry
    ld sp,labBFFF+1
    ld a,19
    ld bc,#4c0
    call ReadTrack ; from track 19 read 4 tracks in #C000
    jr nc,retry

    ld bc,#bc01
    ld hl,#202a
    call SetCRTC ; set screen
    ld c,6
    ld hl,#181d
    call SetCRTC
    ld b,127
    xor a
    ld hl,labBF98
.loop ld c,(hl)
    out (c),a
    out (c),c
    inc l
    inc a
    and 3
    jr nz,.loop
    rst 0

SetCRTC out (c),c
    inc b
    out (c),h
    dec b
    inc c
    out (c),c
    inc b
    out (c),l
    dec b
    ret

;
; si on n'arrive pas à avoir le READY et une disquette déprotégée après un (re)démarrage moteur,
; on coupe et on revient au tout tout début du loader
; Sinon, ben on coupe le moteur quand même oO
;
MOTORON_DELAY call MotorON ; BE6D
    ld hl,#C000
.rewait ld b,3
.wait djnz .wait
    dec hl
    ld a,h
    or l
    jr nz,.rewait

    ld bc,#fb7f
    call GetET3_02
    inc a
    jr z,MotorOFF
    call MakeCalibration
    scf
    jp labBE8D ; couper le moteur WTF ???

; motorOFF
MotorOFF and a
labBE8D push af
    ld bc,#fa7e
    xor a
    out (c),a
    pop af
    ret

MakeCalibration_01 call FDCIsReady
    ld a,7
    call PutFDC
    xor a
    out (c),a
    ld l,255
.get_ET3_loop call FDCIsReady
    ld a,4
    call PutFDC
    xor a
    call PutFDC
    in a,(c)
    and 16
    jp nz,FDCIsReady
    dec l
    jr nz,.get_ET3_loop
    jr MakeCalibration_01

MotorON ld bc,#fa7e ; BEBB
    ld a,1
    out (c),a
    ret

PutFDC  out (c),a ; BEC3
FDCIsReady dec c  ; BEC5
.ready in a,(c)
    rla
    jr nc,.ready
    inc c
    ret

GetET3_02 ld a,4    ; BECD
    call PutFDC
    xor a
    call PutFDC
    in a,(c)
    ld l,a
    and 32
    jr z,labBEE7
    ld a,l
    and 64
    jr nz,labBEEA
    call FDCIsReady
    xor a        ; ready + protected
    ret
labBEE7 ld a,255 ; not ready
    ret
labBEEA ld a,254 ; protected
    ret

SetVar ld (track),a
    ld h,c
    ld l,0
    ld (destination),hl
    ret

ReadTrack call SetVar ; préparation des variables, piste, destination, compteurs
    push bc
    call MotorON ; on rallume ce qu'on vient d'éteindre...
    ld bc,#fb7f
    call GetET3_02 ; statut du lecteur
    inc a
    jp z,MotorOFF ; pas ready tu coupes et tu te casses???

    call SeekTrack
    call ReadSector
    pop bc
    ld a,c
    add a,16 ; avance de 4K dans la RAM pour la destination
    ld c,a
    ld a,(track)
    inc a
    djnz ReadTrack ; on incrémente la piste autant de fois que requis
    scf ; flag OK
    ret

SeekTrack call FDCIsReady
    ld a,15
    call PutFDC
    xor a
    call PutFDC
    ld a,(track)
    call PutFDC
; Sense FDC Int
    ld a,8
    call PutFDC
    in l,(c)
    call FDCIsReady
    in a,(c)
    ld a,l
    and 192 ; DEGUEULASSE, on considère OK une erreur de calibration ou un lecteur eteint...
    jp z,FDCIsReady
    jr SeekTrack ; DEGUEULASSE !!!!! On ne devrait reboucler que sur le SensInterrupt (et encore, autrement)


ReadSector ld de,#4007
    call FDCIsReady
    ld a,70
    call PutFDC
    call ReadParam
    ld a,128
    out (c),a ; dernier parametre de la commande ReadSector...
    dec c
.ready in a,(c)
    rla
    jr nc,.ready
    and d
    jr z,GetResult
    inc c
    in a,(c)
    ld (hl),a
    inc hl
    dec c
    jr .ready

GetResult inc c
.loop in a,(c)
    dec e
    jp z,FDCIsReady
    call FDCIsReady
    jr .loop

ReadParam xor a
    call PutFDC
    ld a,0 : track EQU $-1
    call PutFDC
    xor a
    call PutFDC
    ld a,1
    call PutFDC
    ld a,2
    call PutFDC
    ld a,8
    call PutFDC
    ld a,42
    ld hl,#0 : destination EQU $-1
    jp PutFDC

    ld c,e
    ld d,h
    ld c,d
    ld d,a

labBF98 ld d,h
    ld c,d
    ld d,a
labBF9B ld d,(hl)

Auteur :  dlfrsilver [ 17 Fév 2022, 00:46 ]
Sujet du message :  Re: Dark Sceptre / Firebird

marcel a écrit :
j'comprenais pas trop pourquoi ça ramait à lire la piste #12, alors j'ai tracé un peu...
bah il va lire les données du disque par dessus ce qu'il est en train de faire! donc potentiellement changer le loader
donc qui dit loader patché, dit patch sur la piste 0 ET AUSSI sur la piste 12 mais pas au même endroit (secteur 8) :sweatingbullets:


Ah tienssss !!! ça m'étonnait aussi que ce jeu soit pas protégé côté programme !

Il y a la protection Lazer soft dessus, et les mecs de consult software était électroniciens et programmeurs !

Auteur :  marcel [ 17 Fév 2022, 10:05 ]
Sujet du message :  Re: Dark Sceptre / Firebird

dlfrsilver a écrit :
Ah tienssss !!! ça m'étonnait aussi que ce jeu soit pas protégé côté programme !
Il y a la protection Lazer soft dessus, et les mecs de consult software était électroniciens et programmeurs !


Pour moi c'est à double tranchant comme "protection". D'un côté il va écraser toute la RAM en lisant 64K, de l'autre c'est très facile à contourner/reproduire, suffit de lire en linéaire les pistes de 7 à 22 (3 à 6 pour l'image d'intro) et c'est tout! => éventuellement en omettant le dernier secteur de la dernière piste pour faire vraiment son loader +propre et hop

Ça serait intéressant d'avoir le fin mot de l'histoire sur qui a fait quoi et pourquoi?

Auteur :  Kris [ 19 Fév 2022, 11:03 ]
Sujet du message :  Re: Dark Sceptre / Firebird

Je vous joins le .SCP que j'ai utilisé et qui fonctionne, si ça peut aider...

Auteur :  dlfrsilver [ 28 Fév 2022, 11:10 ]
Sujet du message :  Re: Dark Sceptre / Firebird

Donc apparemment si j'ai bien compris, le jeu tourne de base que sur CPC 464 et DD1. Le jeu ne tourne pas sur 664 et 6128 ? :)

Auteur :  breiztiger [ 28 Fév 2022, 21:04 ]
Sujet du message :  Re: Dark Sceptre / Firebird

Hello Denis

Pour ce que j’ai testé, la disquette générée avec le kryoflux fonctionne sur mon 464 + ddi-1 mais ne passe pas ni sur mon 664 ni sur deux 6128 differents

Comme toi le redump kryoflux donne le même qu’au départ

Auteur :  dlfrsilver [ 02 Mars 2022, 22:36 ]
Sujet du message :  Re: Dark Sceptre / Firebird

breiztiger a écrit :
Hello Denis

Pour ce que j’ai testé, la disquette générée avec le kryoflux fonctionne sur mon 464 + ddi-1 mais ne passe pas ni sur mon 664 ni sur deux 6128 differents

Comme toi le redump kryoflux donne le même qu’au départ


Niquel. Ces andouilles de chez Firebird auraient pu le spécifier, ça aurait évité à tout le monde de perdre du temps à tout désosser et à faire des tests dans tout les sens.

Je vais donc ajouter l'information dans l'archive kryoflux du jeu, et indiquer que le jeu ne tourne que sur 464+DDI-1, plus une étiquette dans la boite du jeu.

Auteur :  Kris [ 03 Mars 2022, 08:41 ]
Sujet du message :  Re: Dark Sceptre / Firebird

Pourtant il marche chez moi sur 6128

Auteur :  breiztiger [ 03 Mars 2022, 18:37 ]
Sujet du message :  Re: Dark Sceptre / Firebird

Denis,

il devrait marcher sur 664/6128 comme indique dans le manuel

"LOADING THE GAME

Amstrad CPC 464 tape

Hold down CONTROL and press the small ENTER key. Press PLAY on tape.

Amstrad CPC 6128 and CPC 664 tape.

Hold down SHIFT and press the @ key. Type TAPE and then press RETURN.
Hold down CONTROL and press the small ENTER key. Press PLAY on tape.

Amstrad CPC 6128, 664 and 464 disc.
Hold down 'SHIFT' and press the '@' key. Type CPM and then press RETURN."

Auteur :  marcel [ 03 Mars 2022, 23:03 ]
Sujet du message :  Re: Dark Sceptre / Firebird

Kris a écrit :
Pourtant il marche chez moi sur 6128


Oui, ce sont leurs machines le problème (et le loader de merde qui ne protège rien y est pour beaucoup) le reste n'est que coincidences

De mon côté j'essaie de remettre en route correctement des CPC avec un 3 pouces ET des cartes d'extension mais l'alimentation semble être le talon d'Achille de l'ensemble...

Auteur :  dlfrsilver [ 04 Mars 2022, 00:04 ]
Sujet du message :  Re: Dark Sceptre / Firebird

breiztiger a écrit :
Denis,

il devrait marcher sur 664/6128 comme indique dans le manuel

"LOADING THE GAME

Amstrad CPC 464 tape

Hold down CONTROL and press the small ENTER key. Press PLAY on tape.

Amstrad CPC 6128 and CPC 664 tape.

Hold down SHIFT and press the @ key. Type TAPE and then press RETURN.
Hold down CONTROL and press the small ENTER key. Press PLAY on tape.

Amstrad CPC 6128, 664 and 464 disc.
Hold down 'SHIFT' and press the '@' key. Type CPM and then press RETURN."


Alors c'est pas normal...... Et je vois mal Firebird mettre en vente à l'époque un soft non testé avec un loader pourri qui ne passe pas sur certaines machines......

Auteur :  Kris [ 04 Mars 2022, 07:43 ]
Sujet du message :  Re: Dark Sceptre / Firebird

Un drive calibré aux petits oignons est nécessaire, sur mon 2nd 6128, la meme disquette bloque aprés l'ecran blanc....

Auteur :  dlfrsilver [ 04 Mars 2022, 11:17 ]
Sujet du message :  Re: Dark Sceptre / Firebird

Quand bien même...... Mon drive qui permet de dumper est niquel (preuve en est, je préserve assez facilement les jeux protégés par Hexagon.....)

Et pourtant, rien à faire, ça merdouille :(

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