MEGA65 - Fragen zur Software

Es gibt 30 Antworten in diesem Thema, welches 5.575 mal aufgerufen wurde. Der letzte Beitrag (10. Juni 2022 um 14:03) ist von Snoopy.

  • Sorry, keine Idee. Noch habe ich ja keine Maschine hier, in Xemu und von diversen Testern wurde mir immer beschrieben, das alles passt. Ein paar (visuelle) Sachen hatten wir noch korrigiert, aber sonst lüpte das.

    Wie gesagt mit dem ausgelieferten Factory Core läuft Mega Sisters ... nur mit dem neuen dev core 180 nicht mehr ....

    "Werter Pöbel, wertes Gesocks ... aus dem Arsche zieht euch den Stock ..."

  • Bei mir auch mit dem factory Core und ROM nicht.

    Bricht beim Spielstart ab, zeigt einen zerlegten Monitor-Bildschirm

    Commodore, Atari, Sinclair, Schneider, TI, HP, Sharp, Epson, Multitech, Apple, MB, Nintendo...

  • Ich weiß, dass es irgendwo schon mal gefragt wurde, ich find‘s aber nicht wieder: Wie kann ein Programm sicher erkennen, ob es auf einem Mega65 läuft?


    Arndt

    GoDot C64 Image Processing
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Ich weiß, dass es irgendwo schon mal gefragt wurde, ich find‘s aber nicht wieder: Wie kann ein Programm sicher erkennen, ob es auf einem Mega65 läuft?

    Geht es dir um die Unterscheidung "C64 / MEGA65" oder "MEGA65-Emulator / echter MEGA65"?

  • Geht es dir um die Unterscheidung "C64 / MEGA65"

    Wenn es darum geht, kannst du z.B. den Wert aus Adresse 58555 auslesen. Wenn der 170 ist, hast du einen C64 (oder C64-Emulator) vor dir. Ansonsten ist es der MEGA65 (C64- oder C65-Modus):

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

  • Wert aus Adresse 58555 auslesen. Wenn der 170 ist, hast du einen C64 (oder C64-Emulator) vor dir. Ansonsten ist es der MEGA65 (C64- oder C65-Modus):

    Genau das wollte ich wissen. Danke Snoopy !


    Arndt

    GoDot C64 Image Processing
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Wer es wissen will: Für den Check wird der Kernal an der Adresse 58555 ausgelesen. Beim C64 ist da ein Block von ein paar Bytes reserviert für zukünftige Erweiterungen, die Bytes sind alle mit 170 ($AA) belegt.

    Der Mega65 hat das ROM etwas vollgestopfter. Mit etwas Glück sollte sich an die Adresse nie eine 170 verirren.

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Mit etwas Glück sollte sich an die Adresse nie eine 170 verirren.

    Ja, hab ich mir angeschaut. Der Tipp bringt also auch nicht wirklich was Sicheres. Gibt's andere Tricks? Erst den KEY aktivieren (das schadet im C64-Modus ja nicht) und dann irgendwohin POKEn/wieder auslesen, wo der C64 statisch ist?

    Arndt

    (Ich frage deshalb, weil sowohl TSB als auch GoDot im M65-C64-Modus (bisher) klaglos laufen.)

    GoDot C64 Image Processing
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Der Tipp bringt also auch nicht wirklich was Sicheres.

    Doch, der ist sicher, zumindest solange du das Original-ROM beim C64 hast. Dort ist fix bei 58555 die 170 und im C64-Modus des MEGA65 fix die 208. Und damit kannst du sicher die Unterscheidung machen.

  • Die Idee mit PEEK funktioniert mit keinem geänderten ROM wie z.B. JiffyDOS. Bei dem Original C65 ROM funktioniert die Abfrage des Reset-Vektors besser:


    IF PEEK(65532)+256*PEEK(65533) = 64738 THEN C64=1

  • Es gibt eine - meines Erachtens relative umständliche - Methode, wie man rausfindet, welcher VIC-Chip (II, III oder IV) vorhanden ist. Die ist im "großen Handbuch" mit einem Beispiel beschrieben. Hiermit kann man nicht nur C64 und MEGA65 trennen, sondern auch erkennen, ob das Programm auf einem C65 läuft (okay, ist wahrscheinlicher vom Blitz getroffen zu werden, aber theoretisch könnte es ja sein :whistling: ).

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.


    Für den praktischen Normalfall halte ich ein Auslesen von einer oder zwei,drei Adressen für absolut ausreichend, um zu trennen, ob das Programm auf einem C64 läuft oder im C64-Modus des MEGA65.

    Um die Möglichkeit eines alternativen ROMs beim C64 miteinzubeziehen, ist es dann in der Tat sicherer, die fixen Werte vom C64-ROM-Teil des MEGA65 als Vergleichswert zu nehmen:

    Code
    Adresse  C64  C64-Modus beim MEGA65 
    
    58552    170    32
    58553    170     2
    58554    170   253
    58555    170   208

    Also, ich halte ein

    Code
    10 IF PEEK(58555) = 208 THEN PRINT "MEGA65":GOTO 30
    20 PRINT "C64"
    30 REM HIER GEHT ES WEITER ...

    für hinreichend sicher. Wer will kann auch noch die drei anderen Werte vergleichen, das sollte dann auch "höchste Sicherheit" ausreichend sein. Die Wahrscheinlichkeit, dass irgendein C64-ROM exakt diese Werte an dieser Stelle hat, halte ich für extremst gering, es sei denn es springt auf einem C64 zurück zum C65-Modus. :)