Cohen's tower

On ne parle pas vieilleries ici? ah? Tiens... ;o)

Modérateur : Politburo

Répondre
sidchip_fr
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 288
Inscription : 24 févr. 2003 01:24

Cohen's tower

Message par sidchip_fr » 19 juin 2018 17:43

Hello,

si vous êtes l'heureux possesseur d'un commodore 128(D) et que vous avez dans votre collection de jeu C64 "Cohen's tower",je vous invite donc à mettre votre 128(D) en mode 64,charger le jeu et taper run...
Résultat : on entend la musique mais foirage total des graphismes :!:
Je vous le donne en mille : ce jeu fait partie des 0,01% des logiciels du C64 incompatibles avec le 128(D)(en mode 64)
ça me fait penser aussi à un autre jeu "tiger mission" qui lui fonctionnait parfaitement et dans l'intro du jeu précisait si la machine était un C64 ou un C128 (en mode 64).Certainement qu'il y a au moins un octet qui différe entre le C64 et le C128(D) en mode 64.
Par ailleurs,d'après mes souvenirs,on pouvait activer le mode 2mhz du C128(D) en mode 64.

Avatar de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1807
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Cohen's tower

Message par C.Ret » 21 juin 2018 14:28

Oui, il y a moyen, c'est en fait comme cela que le C128(D) va plus vite, il suffit de désactiver l'affichage VIC II :
POKE 53296,PEEK(53296) OR 1

Certains jeux font de même entre deux écrans et désactivant l'affichage, le système passe deux fois plus de temps à calculer d'où le nom "2 mHz". On peux aussi dessiner plus vite l'écran suivant à l'abris du regard de l'utilisateur. C'est utile aussi pour diminuer le temps d'un calcul où rien n'est affiché.
Notons que c'est aussi ce qui se passe quand on fait un LOAD depuis le DataSet.

Le souci et de réactiver l'affichage du C64 en tapant à l'aveugle. L'idéal et de programmer cela pour éviter d'avoir un C64 double vitesse mais sans affichage.


Quand aux différences entre C128et C64 elles sont nombreuses. Il y a bien plus qu'un octet. En réalité, en mode émulé C64, le MMU du C128 reste diffèrent de celui d'un C64 et donc l'accès aux BANKS est toujours possible, il y a 128 kio au lieu de 64 !!

Il y a aussi l'octet à l'adresse $D030 qui est au delà de la RAM mappée sur un vrai C6, on peut y mettre la valeur que l'on veut le C64 ne retient pas et renverra la valeur 'FillFelByte' #$FF de cette page mémoire (non installée).
Par contre sur un C128, le MMU y met à chaque cycle mémoire son "checksum" de fin de cycle. La valeur que l'on y met sera donc immédiatement remplacée par 252 (mode 1 MHz) ou 253 (mode 2 MHz)

D'où le petit code qui permet de différencier un vrai C64, d'un C128(D) en mode émulé:

Code : Tout sélectionner

LDA #$CC
STA $D030
LDA $D030
CMP #$FC (or $FD if is computer in 2MHz mode)
BEQ C128 in C64 mode
JMP real C64 
Source:http://commodore128.mirkosoft.sk/herdware.html

Mais il y a d'autres moyens, comme par exemple de POKé/PEEKé au-dela de la RAM d'un C64 ou trouver quelques octets de la ROM 128 , etc...
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-15C | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator . .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

sidchip_fr
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 288
Inscription : 24 févr. 2003 01:24

Re: Cohen's tower

Message par sidchip_fr » 27 juin 2018 14:41

Merci pour toutes ces précisions :)
Il me semblait bien aussi que certains programmes désactivaient l'affichage en se mettant en mode 2 mhz pour décompresser les données par exemple,puis revenaient en mode 1 mhz (avec retour de l'affichage)

Répondre

Revenir vers « Bistrot »