Neues Solitaire (Kartenspiel) für den Commodore 64 in BASIC V2 - Gratis Abtipp-Listing zum Herunterladen (PDF)

Es gibt 140 Antworten in diesem Thema, welches 24.509 mal aufgerufen wurde. Der letzte Beitrag (22. Dezember 2021 um 16:39) ist von WebFritzi.

  • Die Zeit stimmt, TI$ wird vom Turbo nicht beeinflusst.

    Stimmt, der CIA hat seine eigene Taktung.

    Also doch CIA, denn TI$ hat nichts mit der TOD eines CIA zu tun, sondern wird rein über den Systeminterrupt gesetzt.

  • Die Zeit stimmt, TI$ wird vom Turbo nicht beeinflusst.

    Stimmt, der CIA hat seine eigene Taktung.

    Also doch CIA, denn TI$ hat nichts mit der TOD eines CIA zu tun, sondern wird rein über den Systeminterrupt gesetzt.

    Im Spiel die Abfrage von TI$ gegeben, daher schrieb ich das.

  • Das mit dem Doppelklick ist bereits implementiert, es könnte aber sein, dass bei Nutzung des Turbos der Doppelklick dann aufgrund des schnelleren Timings nicht mehr erkannt wird.

    Feedback: So, hab's auch mal mit Joystick probiert. Steuerung und Doppelklick funzt @4MHz einwandfrei. Aber mit Maus isses einfach geiler - the way it's meant to be played. :)

  • Die Zeit stimmt, TI$ wird vom Turbo nicht beeinflusst.

    Stimmt, der CIA hat seine eigene Taktung.

    Also doch CIA, denn TI$ hat nichts mit der TOD eines CIA zu tun, sondern wird rein über den Systeminterrupt gesetzt.

    Hmm, ok. Bin verwirrt. Erstmal danke für die Richtigstellung. Aus dem englischen C64-Wiki von TIME:

    Zitat

    It is normally incremented during the standard 1/60th-second Bitte melde dich an, um diesen Link zu sehen.-generated Bitte melde dich an, um diesen Link zu sehen. service routine (typically by means of the Bitte melde dich an, um diesen Link zu sehen. UDTIM routine). This "manually" operated timer has nothing to do with either Bitte melde dich an, um diesen Link zu sehen.'s TOD clock.

    Ich dachte eigentlich, der CIA-IRQ würde nach der CIA-Uhr getaktet. Hab mich wohl geirrt. Insbesondere stellt sich für mich die Frage, warum die Zeit im Turbo-Modus normal weiter läuft und wie im Allgemeinen IRQs getaktet werden. Magst du für einen verwirrten WebFritzi Licht ins Dunkel bringen? Bitte?

    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.
  • Das mit dem Doppelklick ist bereits implementiert

    Komisch. Ging bei mir nicht. Hab's mit Mouse-Support im Emulator (VICE) gespielt. Der Code ist der, auf den der erste Link in diesem Thread verlinkt. (Hab ihn nicht abgetippt, sorry :rolleyes:)

    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.
  • Autoablegen geht ratzfatz mit der rechten Maustaste. Sonst hätte ich nur two thumbs up vergeben. :)

    Aha, neu. Ja, stimmt, das klappt auch bei mir. Fände es aber mit Doppelklick besser.

    Noch was: die Maus ist hier bei mir im Emulator sehr, sehr sensitiv. Sprich: kleinste Bewegungen werden erkannt und umgesetzt. Die Maus ist dann sehr schnell. In einem Wisch vom einen Ende des Bildschirms zum anderen. Ich habe es mal mit einem Counter C im IRQ-Handler ausprobiert, der von 3 oder 2 abwärts zählt und nur bei C=0 feuert. Das sieht aber scheiße aus. Ruckelt dann irgendwie. Aber vielleicht liegt's ja auch am Emulator? Morgen bekomme ich hoffentlich meine eigene 1351-Maus. Dann kann ich es selber am U64 ausprobieren.

    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.

    Einmal editiert, zuletzt von WebFritzi (10. August 2021 um 15:15)

  • Das mit dem Doppelklick ist bereits implementiert

    Komisch. Ging bei mir nicht. Hab's mit Mouse-Support im Emulator (VICE) gespielt. Der Code ist der, auf den der erste Link in diesem Thread verlinkt. (Hab ihn nicht abgetippt, sorry :rolleyes:)

    Wenn ich mich da mal zitieren darf:

    "... Autoablegen geht ratzfatz mit der rechten Maustaste."

    Beim Joystick ist es aufgrund des einsamen Buttons ein Doppelklick.

    wizball6502 Du hast das optimal gelöst, wie ich finde, aber die Anleitung ist etwas dünn. ;)

  • wizball6502 Und noch was: Beim Spielmodus "Aufdecken von 3 Karten" behält dein Programm immer die gleiche Reihenfolge bei. Will sagen: Wenn am Ende vom großen Stapel nur noch z.B. eine Karte da ist, wird auch nur die aufgedeckt. Dann geht's wieder weiter mit den ersten drei Karten vom ersten Durchlauf. Ich glaube, beim Windows-Solitaire werden immer drei Karten aufgedeckt, so dass beim nächten Durchlauf der erste 3er-Stapel anders aussieht. So hat man wenigtens ne Chance an die anderen Karten zu kommen. Fände ich besser.

    Bei Aktivierung des IRQ wird irgendwie RUN/STOP deaktiviert. Kannst du mir evtl. sagen, wieso das passiert?

    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.

    Einmal editiert, zuletzt von WebFritzi (10. August 2021 um 15:58)

  • Das mit dem Doppelklick ist bereits implementiert

    Komisch. Ging bei mir nicht. Hab's mit Mouse-Support im Emulator (VICE) gespielt. Der Code ist der, auf den der erste Link in diesem Thread verlinkt. (Hab ihn nicht abgetippt, sorry :rolleyes:)

    Wenn ich mich da mal zitieren darf:

    "... Autoablegen geht ratzfatz mit der rechten Maustaste."

    Daraufhin möchte auch ich mich selber zitieren:

    Aha, neu. Ja, stimmt, das klappt auch bei mir. Fände es aber mit Doppelklick besser.

    :wink:

    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.
  • Die Zeigerbewegung ist von Maus-DPI und Emulatoreinstellung abhängig. Mit einer echten 1351 läuft das zumindest wie'n Smoothie, je nachdem, was Kugel und Rollen so hergeben. ;)

    Vom MouSTer Adapter bin ich begeistert, ideal für USB Gamepads und Mäuse, sogar der 8bitdo Wireless Adapter funktioniert damit.

    p.s. ja, WebFritzi meine Antwort lag arbeitsbedingt auch etwas länger rum. :)

  • Es gibt da sowohl die TOD (Time of Day), als auch Timer, um einen Interrupt auszulösen.

    Ok, aber der Timer taktet ja wohl im CIA, oder nicht? Dann wäre meine Originalaussage ja richtig. Der Turbo-Mode sollte ja nur den 6510 betreffen und nicht die CIAs.

    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.
  • Die Zeigerbewegung ist von Maus-DPI und Emulatoreinstellung abhängig.

    DPI? Ist normalerweise die Abkürzung für "Dots per inch", was du wohl nicht gemeint haben wirst. "PI" steht wohl für "Programming interface", aber das "D" vermag ich nicht zu interpretieren. Magst du aufklären?

    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.
  • wizball6502 So, ich habe jetzt mal gechecked, wie dein Programm läuft, wenn ich den Mouse-IRQ zwischenzeitlich ausschalte. Z.B. beim anfänglichen Auslegen der Karten. Ohne ist es signifikant schneller. Also tritt die Verlangsamung nicht nur bei mir auf. Man könnte sich jetzt überlegen, woran das liegt und wie man das vermeiden könnte. Dann bräuchte Lynx evtl auch nicht mehr seinen Turbo einzuschalten. :wink:

    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.
  • Ja, das ist die Auflösung der Maus. Google spuckt viel Erklärbär-Seiten aus bei "maus dpi", z.B. Bitte melde dich an, um diesen Link zu sehen.

    Einige Mäuse haben auch einen extra dpi Button zum Umschalten zwischen verschiedenen Werten. Und in den Systemeinstellungen des Betriebssystem gibt's zusätzlich die Zeigergeschwindigkeit und Beschleunigung, kennste ja.

    Beim MouSTer gibt's dafür auch einen Wert in den Settings, so kann man sich die Mausbewegung seinem Gefühl nach einstellen. Die 1351 hat einen recht großen Aktionsradius, beim Solitaire ca. 9-10 cm vom linken zum rechten Rand.

    Mit Kugel macht das nicht mehr so den Spaß, daher freu ich mich schon auf die Tank-Maus vom TheA500. :)

  • Hier noch zwei Seeds die aufgehen: 16979 & 43233

    Ich habe gerade gewonnen, und mit hoher Wahrscheinlichkeit war das keiner dieser Seeds. :wink:

    wizball6502 Ich habe mal die Pause in $c02b - $c034 rausgenommen (bzw durch NOPs ersetzt). Das hat leider nichts geändert - allerdings eben auch nichts an der Performance. Vielleicht ist sie gar nicht nötig.

    EDIT: Ich hatte mich getäuscht. Hatte nen Fehler gemacht. Ohne die Pause geht es so schnell wie wenn man den IRQ rausnimmt. Also ist sie die Bremse. Keine Ahnung, warum die da ist. Wo hast du den Treiber überhaupt her? Zumindest hier im Emulator läuft dein Spiel ohne die Pause viel flüssiger - und wird dadurch sogar kleiner. Hab mein letztes Spiel in 6 Minuten geschafft.

    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.

    4 Mal editiert, zuletzt von WebFritzi (10. August 2021 um 19:49)

  • Auf meinem originalen C64 (6581) hatte das ohne Pause nicht funktioniert.

    Was auch immer das Problem gewesen ist: Warteschleifen im Interrupt sind nicht die Lösung (tm).

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..

  • Auf meinem originalen C64 (6581) hatte das ohne Pause nicht funktioniert.

    Ahh, ok. Das muss irgendwas damit zu tun haben, dass der SID halb analog ist. Aber vielleicht ist die Pause zu lang? Das ist sie:

    Code
        LDX #4 ;Pause Anfang
        LDY #199
    loop
        DEY
        BNE loop
        DEX
        BNE loop ;Pause Ende

    Naja, das sind ca. 3200 Zyklen, also 3 Millisekunden. Also quasi nix. Ich verstehe nicht, warum das das BASIC dermaßen ausbremst.

    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.

    Einmal editiert, zuletzt von WebFritzi (10. August 2021 um 20:45)