Index du Forum
IDENTIFICATION SERVEUR : 213.186.33.87 - CLIENT : 74.109.56.191

 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 

Olympic Decathlon (Microsoft, 1981)

 
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



Inscrit le: 15 Juin 2007
Messages: 326
Localisation: Paris, France

MessagePost� le: Mer 11 Juil 2007, 23:49    Sujet du message: Olympic Decathlon (Microsoft, 1981) R�pondre en citant

Compete for the Gold Medal. I enjoy that game, it has many interesting features such as a smooth scroll on the intro page and the protection was interesting too... This is my second crack of that game, the first one had been done in 1991.

PROTECTION TYPE
disk protection (D5 AA B5, DE AA EB, D5 AA AD, DE AA EB)
ten sectors per track only!
...not even a DOS 3.2 disk structure...

BOOT TRACING
(T=Track, S=Sector)
T0/S0 is loaded at $0800..$08FF
The code loads the other sectors from T0 at $8900.$91FF (first part of the introduction)
- loads other parts of the game at $0F00 and $8000 and $9200
- read routine is located at $9000..$91FF (nice read routines)
Then code goes to $8000 (the second part of the introduction)
Then code goes to $9900

Each event is loaded at $2000, $4000 or $6000 depending on the needs for hires pictures

THE READ ROUTINE
The read routine located at $9000 requires the following information on ZPage:
$0B : slot * 16
$0C : the target phase (track number * 2)
$0D : sector
$0E : current phase (track * 2)
$03 : number of 256-byte page to load into memory
$07..$08 : address to load data

THE METHOD
I boot a DOS 3.3 diskette (the objective is to get a standard RWTS) then I rely on the original read routines to copy a disk, therefore:
- on drive 1, I put the original game,
- on drive 2, my blank DOS 3.3 volume 254 diskette
Then,
- 4600<C600.C6FFM,
- 46FB:A9 59 8D 27 08 A9 FF 8D 28 08 4C 01 08
- 4600G
Now,
- you have the read routine in $9000, re-use it Wink
- what I have done in a short program in $0300 to read one track from drive 1 and copy the data read in $4000 to the same track on drive 2.

ARRANGE THE DISK STRUCTURE
As I do not master the low-level disk read routines, I have put a standard RWTS on track 0 and I have copied the original track 0 data to sector F of track 0 to track 8 Wink A smart person would have rewritten the read routine...
For those who are curious, the original read routine is on T7/SE, my modified read routine is on T7/SF.

THE NEW READ ROUTINE
You now have to rewrite the read routine at $9000. Please note that you need to keep the different wait routines in $91xx as they are used during the game.
Please refer to track 7, sector F to display the new read routine that uses the RWTS to load sectors into memory. Please note that the RTS opcode in $902C must remain as it is called during the event loading phases.

COMMENTS
- That was an interesting crack to do Wink
- If you press * at the beginning of the introduction page, you are led to a disk backup routine. That is nice!
- It seems that pressing SWT (Timothy W. Smith) sometime during the introduction page goes to the monitor Wink
- Sector editing is an interesting task to do as source code parts remain...

Toinet

15/AUG/2007: 4600<4600.46FFM has been corrected.
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