Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.129 - CLIENT : 54.198.23.251

 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Mandragore (Infogrames, 1985)
Aller ŕ la page Précédente  1, 2
 
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> PROTECTION MALEFIQUE
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 2945
Localisation: Le Chesnay, France

MessagePosté le: Jeu 02 Fév 2012, 23:37    Sujet du message: Répondre en citant

Good remark, Peter, I'll check for the memory requirements,
antoine
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
qkumba



Inscrit le: 29 Jan 2012
Messages: 176

MessagePosté le: Mar 24 Nov 2015, 3:22    Sujet du message: Répondre en citant

So, I finally did the read conversion myself, in 48kb. It took longer to repair the very badly corrupted image, than to perform the deprotection itself.

Code:
BB1D       JSR    $BA00


We change this to LDA instead, to skip the layer.

Code:
BB42       JSR    $BC03


We change this to $BC00 to enable reading.

Code:
BDD2       STA    $42
BDD4       LDA    #$DD
BDD6       STA    $43
BDD8       LDA    #$CC


We use this part to enable 12-sector reads using the boot1 loader, like this:

Code:
BDD0       LDA    #$A9 ;disable indexed LDA
BDD2       STA    $705
BDD5       LDA    #$98 ;use Y as sector index
BDD7       STA    $707


Code:
BE1E       LDY    #0
BE20       STY    $26
BE22       STY    $27
BE24       LDA    $4B
BE26       BEQ    $BE38
BE28       JSR    $BD51


We use this part to copy the address, and adjust the next address, like this:

Code:
BE1E       LDA    $48
BE20       STA    $3E
BE22       CLC
BE23       ADC    $45
BE25       STA    $48
BE27       DEY
BE28       JSR    $705


That's it. We use ProDOS order for the sector data, storing only 12 pages per track, and the game loads almost as quickly as the original.

By the way, very bad bug here. Can you see it?

Code:
BD85       LDA    $C08C,X
BD88       BPL    $BD85
BD8A       CMP    $44
BD8C       BNE    $BD51


If there is a mismatch with the page checksum, the read is restarted from the start of the sector, but the read address ($48) is not reset, so the content is duplicated instead of replaced.

I will check the write support next. It should be trivial because we have routines already to find regular address markers, and there is a 6-and-2 encoding table in the boot1, so the existing write routine could use it. The only problem then is to find space to store the encoded form before writing it, but there must be something in a graphics screen or similar.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> PROTECTION MALEFIQUE Toutes les heures sont au format GMT + 1 Heure
Aller ŕ la page Précédente  1, 2
Page 2 sur 2

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com