Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.129 - CLIENT : 54.80.247.119

 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 

Crisis Mountain (Synergistic Software Inc., 1982)

 
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
qkumba



Inscrit le: 29 Jan 2012
Messages: 174

MessagePosté le: Ven 20 Nov 2015, 23:06    Sujet du message: Crisis Mountain (Synergistic Software Inc., 1982) Répondre en citant

Crisis Mountain is an action game where you must dodge the boulders and volcanoes (and later, a bat), while trying to disarm the bombs.

All is normal DOS 3.3 startup, so I won't show the trace, until we hit this part:

Code:
BE38-   4C 00 BB    JMP   $BB00

BB00-   08          PHP
BB01-   90 03       BCC   $BB06
BB03-   4C C9 BD    JMP   $BDC9


This is functionally equivalent to the original DOS 3.3 code. However...

Code:
BB06-   BD 8C C0    LDA   $C08C,X
BB09-   10 FB       BPL   $BB06
BB0B-   A5 2D       LDA   $2D
BB0D-   C9 0F       CMP   #$0F
BB0F-   D0 07       BNE   $BB18
BB11-   28          PLP
BB12-   20 1C BB    JSR   $BB1C
BB15-   08          PHP
BB16-   B0 EB       BCS   $BB03
BB18-   28          PLP
BB19-   4C 3C BE    JMP   $BE3C


So there's our main protection check.

Before we get to that, the address epilogue was changed from DE AA to 9E [E7 but not checked].
The data epilogue was changed from DE AA to D5 AA.
So every sector, including boot sector, is protected.
We must change these to the regular values for both read and write support, too - the game will save the high score.

As for the main protection check, it looks like this (relocated to $2B1C):

Code:
2B1C-   A0 00       LDY   #$00
2B1E-   84 26       STY   $26
2B20-   84 27       STY   $27
2B22-   BD 8C C0    LDA   $C08C,X
2B25-   10 FB       BPL   $2B22
2B27-   C9 FF       CMP   #$FF ;skip sync bytes
2B29-   D0 08       BNE   $2B33
2B2B-   E6 26       INC   $26
2B2D-   D0 F3       BNE   $2B22
2B2F-   E6 27       INC   $27
2B31-   D0 EF       BNE   $2B22
2B33-   C9 9E       CMP   #$9E ;select pattern 1
2B35-   F0 3A       BEQ   $2B71
2B37-   C9 CF       CMP   #$CF ;select pattern 2
2B39-   F0 32       BEQ   $2B6D
2B3B-   A8          TAY   ;random
2B3C-   B9 09 BB    LDA   $BB09,Y
2B3F-   30 34       BMI   $2B75 ;fail
2B41-   A8          TAY   
2B42-   BD 8C C0    LDA   $C08C,X
2B45-   10 FB       BPL   $2B42
2B47-   D9 09 BC    CMP   $BC09,Y ;try to match sequence
2B4A-   D0 29       BNE   $2B75 ;different sequence depending on the track
2B4C-   EA          NOP   
2B4D-   EA          NOP   
2B4E-   EA          NOP   
2B4F-   BD 8C C0    LDA   $C08C,X
2B52-   10 FB       BPL   $2B4F
2B54-   D9 11 BC    CMP   $BC11,Y ;match more sequence
2B57-   D0 1C       BNE   $2B75
2B59-   EA          NOP   
2B5A-   EA          NOP   
2B5B-   EA          NOP   
2B5C-   BD 8C C0    LDA   $C08C,X
2B5F-   10 FB       BPL   $2B5C
2B61-   D9 19 BC    CMP   $BC19,Y ;match more sequence
2B64-   D0 0F       BNE   $2B75
2B66-   B9 21 BC    LDA   $BC21,Y
2B69-   D0 2A       BNE   $2B95 ;run part 2 starting in different positions
2B6B-   F0 19       BEQ   $2B86 ;depending on which pattern is in use
2B6D-   A0 05       LDY   #$05
2B6F-   D0 D1       BNE   $2B42
2B71-   A0 06       LDY   #$06
2B73-   D0 CD       BNE   $2B42
2B75-   38          SEC   
2B76-   60          RTS   
2B77-   BD 8C C0    LDA   $C08C,X
2B7A-   10 FB       BPL   $2B77
2B7C-   C9 9E       CMP   #$9E
2B7E-   D0 26       BNE   $2BA6
2B80-   E6 26       INC   $26
2B82-   D0 02       BNE   $2B86
2B84-   E6 27       INC   $27
2B86-   BD 8C C0    LDA   $C08C,X
2B89-   10 FB       BPL   $2B86
2B8B-   C9 E7       CMP   #$E7
2B8D-   D0 E6       BNE   $2B75
2B8F-   E6 26       INC   $26
2B91-   D0 02       BNE   $2B95
2B93-   E6 27       INC   $27
2B95-   BD 8C C0    LDA   $C08C,X
2B98-   10 FB       BPL   $2B95
2B9A-   C9 F9       CMP   #$F9
2B9C-   D0 D7       BNE   $2B75
2B9E-   E6 26       INC   $26
2BA0-   D0 D5       BNE   $2B77
2BA2-   E6 27       INC   $27
2BA4-   D0 D1       BNE   $2B77
2BA6-   C9 FF       CMP   #$FF
2BA8-   D0 CB       BNE   $2B75
2BAA-   A0 00       LDY   #$00
2BAC-   BD 8C C0    LDA   $C08C,X
2BAF-   10 FB       BPL   $2BAC
2BB1-   C9 FF       CMP   #$FF
2BB3-   D0 05       BNE   $2BBA
2BB5-   C8          INY   
2BB6-   EA          NOP   
2BB7-   EA          NOP   
2BB8-   D0 F2       BNE   $2BAC
2BBA-   C9 D5       CMP   #$D5
2BBC-   D0 B7       BNE   $2B75
2BBE-   C0 0F       CPY   #$0F
2BC0-   D0 B3       BNE   $2B75
2BC2-   BD 8C C0    LDA   $C08C,X
2BC5-   10 FB       BPL   $2BC2
2BC7-   C9 AA       CMP   #$AA
2BC9-   D0 AA       BNE   $2B75
2BCB-   A9 11       LDA   #$11
2BCD-   18          CLC   
2BCE-   65 26       ADC   $26
2BD0-   85 26       STA   $26
2BD2-   90 02       BCC   $2BD6
2BD4-   E6 27       INC   $27
2BD6-   A0 04       LDY   #$04
2BD8-   B1 48       LDA   ($48),Y
2BDA-   A8          TAY   
2BDB-   B9 B8 BF    LDA   $BFB8,Y
2BDE-   38          SEC   
2BDF-   E5 26       SBC   $26
2BE1-   30 92       BMI   $2B75
2BE3-   C9 05       CMP   #$05
2BE5-   B0 8E       BCS   $2B75
2BE7-   B9 DC BF    LDA   $BFDC,Y
2BEA-   C5 27       CMP   $27
2BEC-   D0 87       BNE   $2B75
2BEE-   18          CLC   
2BEF-   60          RTS   


That's a huge protection routine, and I got tired of commenting it, but guess what - nothing bad happens if we don't run it at all.
If we change the sector at $BB0E to something huge so that it can never match, the game boots, and is playable.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


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

MessagePosté le: Sam 21 Nov 2015, 11:04    Sujet du message: Répondre en citant

Neat trick!
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
Page 1 sur 1

 
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