Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.65 - CLIENT : 54.226.209.201

 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 

The asteroid field (Cavalier computer, 1980)

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

MessagePosté le: Mer 09 Mar 2016, 23:57    Sujet du message: The asteroid field (Cavalier computer, 1980) Répondre en citant

#805 - A great ŕ la Vectrex arcade game by Cavalier Computer. They know ho to use the Disk II disk drive. What is funny is that to restart a game (press ESC), the game will reboot the disk. That's not the crack, that is the normal behaviour.

Protection type
Ouch, an interesting 5.3 encoding scheme with data to be decyphered and change of track step during load. Copiers will be annoyed (but that's not impossible as my disk is a copy of the original)

Boot trace
A great advantage is that the game loads in a single pass.
Our usual trick to get the T0/S0 will run fine. Then, the code loads at $300 then loads at $4200 then loads the entire game from $0200 to $7FFF and jumps to $4000 to start the game.
We have to preserve the zero page as some addresses (at least $06) are checked by the game.
We also have data loaded from $200 to $7FF, we cannot interrupt the program or we'll lose data (we're in the keyboard buffer and text screen and data is decyphered). We have two options: use the upper RAM area or the stack area. I'll use both:
- the stack area for the code
- the upper RAM area for the data to move before going into the monitor

Code:

We move the boot controller in RAM:
9600<C600.C6FFM

We want to jump to $9800 before jumping to T0/S0
96FB:A9 00 8D 842 A9 98 8D 843 4C 801

We patch T0/S0 and tell it to jump to $140 before going to $301
9800:A9 4C 8D 33C A9 40 8D 33D A9 01 8D 33E 4C 301

Here we patch the load game code at $4200 and tell it to jump to $0100
140:A9 01 8D 42D3 4C 4200

And here, at $100, we move the zero page area and $200..$7FF to $8000, $8200..$87FF and go into the monitor:
100:A2 00 BD 0000 9D 8000 BD 0200 9D 8200 BD 0300 9D 8300 BD 0400 9D 8400 BD 0500 9D 8500 BD 0600 9D 8600 BD 0700 9D 8700 CA D0 D3 4C FF59

9600G
*Beep*
We have everything in memory!


Funny boot tracing!
We have everything in memory, we must put that onto disk.

Normalizing
As I have a IIgs, I've put bank 00 RAM in bank $12 but if you have a 128K Apple II, just move the data to the aux mem.
I then booted my copy disk, launched Mobby Disk and I moved data that way:
- $0800..$17FF: track 1
- $1800..$27FF: track 2
- $2800..$37FF: track 3
- $3800..$47FF: track 4
- $4800..$57FF: track 5
- $5800..$67FF: track 6
- $6800..$77FF: track 7
- $7800..$87FF: track 8

We have to prepare track 0 and the boot phase. I've chosen to go the RWTS route and modified some bytes in sector 0 and sector 1. They are detailed in a message below.

The disk image is at http://www.brutaldeluxe.fr/crack/

Reboot and... enjoy,

LoGo
3/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: 2949
Localisation: Le Chesnay, France

MessagePosté le: Mer 09 Mar 2016, 23:58    Sujet du message: Répondre en citant

Some code from track 0, sector 0

Code:

0001:A5 27          LDA   $27           
0003:C9 09          CMP   #$09         
0005:D0 18          BNE   $001F         
0007:A5 2B          LDA   $2B           
0009:4A             LSR                 
000A:4A             LSR                 
000B:4A             LSR                 
000C:4A             LSR                 
000D:09 C0          ORA   #$C0         
000F:85 3F          STA   $3F           
0011:A9 5C          LDA   #$5C         
0013:85 3E          STA   $3E           
0015:18             CLC                 
0016:AD FE 08       LDA   $08FE         
0019:6D FF 08       ADC   $08FF         
001C:8D FE 08       STA   $08FE         
001F:AE FF 08       LDX   $08FF         
0022:30 15          BMI   $0039         
0024:BD 4D 08       LDA   $084D,X       
0027:85 3D          STA   $3D           
0029:CE FF 08       DEC   $08FF         
002C:AD FE 08       LDA   $08FE         
002F:85 27          STA   $27           
0029:CE FF 08       DEC   $08FF         
002C:AD FE 08       LDA   $08FE         
002F:85 27          STA   $27           
0031:CE FE 08       DEC   $08FE         
0034:A6 2B          LDX   $2B           
0036:6C 3E 00       JMP   ($003E)       
0039:EE FE 08       INC   $08FE         
003C:EE FE 08       INC   $08FE         
003F:20 89 FE       JSR   $FE89         
0042:20 93 FE       JSR   $FE93         
0045:20 2F FB       JSR   $FB2F         
0048:A6 2B          LDX   $2B           
004A:4C 80 B6       JMP   $B680         

...

B680:AD 81 C0       LDA   $C081         
B683:AD 81 C0       LDA   $C081         
B686:AD 50 C0       LDA   $C050         
B689:AD 52 C0       LDA   $C052         
B68C:AD 54 C0       LDA   $C054         
B68F:AD 57 C0       LDA   $C057         
B692:4C 00 B7       JMP   $B700         
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: 2949
Localisation: Le Chesnay, France

MessagePosté le: Jeu 10 Mar 2016, 0:01    Sujet du message: Répondre en citant

And sector 1:

Code:

0000:8E E9 B7       STX   $B7E9         
0003:8E F7 B7       STX   $B7F7         
0006:A9 01          LDA   #$01         
0008:8D F8 B7       STA   $B7F8         
000B:8D EA B7       STA   $B7EA         
000E:AD E0 B7       LDA   $B7E0         
0011:8D E1 B7       STA   $B7E1         
0014:A9 08          LDA   #$08         
0016:8D EC B7       STA   $B7EC         
0019:A9 0F          LDA   #$0F         
001B:8D ED B7       STA   $B7ED         
001E:AC E7 B7       LDY   $B7E7         
0021:88             DEY                 
0022:8C F1 B7       STY   $B7F1         
0025:A9 01          LDA   #$01         
0027:8D F4 B7       STA   $B7F4         
002A:8A             TXA                 
002B:4A             LSR                 
002C:4A             LSR                 
002D:4A             LSR                 
002E:4A             LSR                 
002F:AA             TAX                 
0030:A9 00          LDA   #$00         
0032:9D F8 04       STA   $04F8,X       
0035:9D 78 04       STA   $0478,X       
0038:20 93 B7       JSR   $B793         
003B:A2 FF          LDX   #$FF         
003D:9A             TXS                 
003E:A2 00          LDX   #$00         
0040:BD 00 80       LDA   $8000,X       
0043:9D 00 00       STA   $0000,X       
0046:BD 00 82       LDA   $8200,X       
0049:9D 00 02       STA   $0200,X       
004C:BD 00 83       LDA   $8300,X       
004F:9D 00 03       STA   $0300,X       
0052:BD 00 84       LDA   $8400,X       
0055:9D 00 04       STA   $0400,X       
0058:BD 00 85       LDA   $8500,X       
005B:9D 00 05       STA   $0500,X       
005E:BD 00 86       LDA   $8600,X       
0061:9D 00 06       STA   $0600,X       
0064:BD 00 87       LDA   $8700,X       
0067:9D 00 07       STA   $0700,X       
006A:CA             DEX                 
006B:D0 D3          BNE   $0040         
006D:4C 00 40       JMP   $4000         


The rest is a standard 16-sec RWTS. The number of sectors, the first track sector have been updated. See line $E0

Code:

-------------- DISK EDIT ---------------
TRACK $00/SECTOR $01/VOLUME $FE/BYTE $E0
----------------------------------------
$80: 00 00 00 00 00 00 00 00    @@@@@@@@
$88: 00 00 00 00 00 00 00 00    @@@@@@@@
$90: 00 00 00 AD E5 B7 AC E4    @@@-%7,$
$98: B7 20 B5 B7 AC ED B7 88    7 57,-7.
$A0: 10 07 A0 0F EA EA CE EC    PG O**N,
$A8: B7 8C ED B7 CE F1 B7 CE    7.-7N17N
$B0: E1 B7 D0 DF 60 08 78 20    !7P_`H8
$B8: 00 BD B0 03 28 18 60 28    @=0C(X`(
$C0: 38 60 AD BC B5 8D F1 B7    8`-<5.17
$C8: A9 00 8D F0 B7 AD F9 B5    )@.07-95
$D0: 49 FF 8D EB B7 60 A9 00    I?.+7`)@
$D8: A8 91 42 C8 D0 FB 60 00    (.BHP;`@
$E0:>80<02 0A 1B E8 B7 00 88    .BJ[(7@.
$E8: 01 60 02 FE 00 01 FB B7    A`B>@A;7
$F0: 00 B7 00 00 02 EB FE 60    @7@@B+>`
$F8: 02 00 00 00 01 EF D8 00    B@@@A/X@
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