Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.1 - 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 

Pipe Dream (Lucasfilm, 1990)

 
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: 2928
Localisation: Le Chesnay, France

MessagePosté le: Mer 06 Jan 2016, 10:53    Sujet du message: Pipe Dream (Lucasfilm, 1990) Répondre en citant

A great DHGR semi-arcade, semi-board game. You are a plumber and you must assemble a certain number of pipes to let the water flow. A very challenging one.

Protection type
It is an off-disk protection. You must assemble three pipes to match a color. If you succeed, you can play. If you miss three times... you can play! How weird? So, what is the interest of putting a protection if its result is not used. Really?!?

No... Just play and you'll have a long message telling that people at Lucasfilm want the best for the players, buy our games. And, they are right! We'll have to find how that text is activated.

How to pseudo boot-trace
In file PM0, we find pointers to the color strings at $8963. It is used at $B460.
The entry point of the code is at $B679. After some jumps, the code at $B69C is executed, it calls a routine at $B289 that starts the password protection check depending on the value of zero page index $80.

By default, that value is set to #$FF
At $B289, the branch is taken because it matches the BMI (bit 7=1) and the check is performed.
If we fail entering the password three times, $80 is set to #$00 and then, the long message is displayed, see $A460.
But, if we put #$01 at $80 then:
1. The protection routine is not called
2. The later warning message is not displayed.
And w're done!

How to copy
Just use your favorite 5.25" disk copier, mine is Locksmith Fast Disk Backup.

How to crack
Launch Block.Warden
Prefix /PIPEDREAM
Follow PM0
At offset $35FF: 88 -> C8 (from DEY to INY)
Save the block

Reboot and... enjoy,
LoGo
1/2016
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: Mer 06 Jan 2016, 10:55    Sujet du message: Répondre en citant

Excerpt from the code

Code:

The entry point to the protection if $80 has bit 7=1.
00/B289: 2480                       BIT   $80                                   
00/B28B: 3001                       BMI   $B28E                                 
00/B28D: 60                         RTS                                         
00/B28E: 20F9EC                     JSR   $ECF9                                 
00/B291: A902                       LDA   #$02                                 
00/B293: A004                       LDY   #$04                                 
00/B295: 203909                     JSR   $0939                                 
00/B298: A000                       LDY   #$00                                 
00/B29A: 8CAAB4                     STY   $B4AA                                 
00/B29D: 8480                       STY   $80                                   
00/B29F: 8D10C0                     STA   KBDSTROBE                             
00/B2A2: A424                       LDY   $24                                   
00/B2A4: E624                       INC   $24                                   
00/B2A6: B960DB                     LDA   $DB60,Y                               
00/B2A9: 290F                       AND   #$0F                                 
00/B2AB: C90F                       CMP   #$0F                                 
00/B2AD: F0F3                       BEQ   $B2A2                                 
00/B2AF: 8DA5B4                     STA   $B4A5                                 
00/B2B2: A424                       LDY   $24                                   
00/B2B4: E624                       INC   $24                                                                                                     

This is where $80 is initialized, the DEY at $B67F (offset $35FF because $8080 + $35FF...)
00/B679: A000                       LDY   #$00                                 
00/B67B: 8424                       STY   $24                                   
00/B67D: 8487                       STY   $87                                   
00/B67F: 88                         DEY                                         
00/B680: 8480                       STY   $80                                   
00/B682: 203898                     JSR   $9838                                 
00/B685: A200                       LDX   #$00                                 
00/B687: 864A                       STX   $4A                                   
00/B689: 864B                       STX   $4B                                   
00/B68B: 864C                       STX   $4C                                   
00/B68D: 4C46A8                     JMP   $A846                                 
00/B690: 4CB5A8                     JMP   $A8B5                                 
00/B693: 4CD2AB                     JMP   $ABD2                                 
00/B696: 2007ED                     JSR   $ED07                                 
00/B699: 202D98                     JSR   $982D                                 
00/B69C: 2089B2                     JSR   $B289                                 
00/B69F: 204B98                     JSR   $984B                                 
00/B6A2: 20639D                     JSR   $9D63                                 
00/B6A5: A0FF                       LDY   #$FF                                 
00/B6A7: 8449                       STY   $49                                   

...

This routine waits while game play and then displays the warning message
00/A460: A680                       LDX   $80                                   
00/A462: E001                       CPX   #$01                                 
00/A464: F00F                       BEQ   $A475                                 
00/A466: E682                       INC   $82                                   
00/A468: D00B                       BNE   $A475                                 
00/A46A: E683                       INC   $83                                   
00/A46C: A583                       LDA   $83                                   
00/A46E: C90E                       CMP   #$0E                                 
00/A470: 9003                       BCC   $A475                                 
00/A472: 4CBAB4                     JMP   $B4BA                                 
00/A475: 60                         RTS                                         
00/A476: A902                       LDA   #$02                                 
00/A478: 20DDB4                     JSR   $B4DD                                 
00/A47B: A200                       LDX   #$00                                 
00/A47D: 8666                       STX   $66                                   
00/A47F: A2FF                       LDX   #$FF                                 
00/A481: 8E6DA7                     STX   $A76D                                 
00/A484: 867A                       STX   $7A                                   
00/A486: 867C                       STX   $7C                                   
00/A488: ADC08A                     LDA   $8AC0                                 
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