Hallo Besucher, der Thread wurde 17k mal aufgerufen und enthält 36 Antworten

letzter Beitrag von Markie am

1. Frage: Highscoreanzeige realisieren

  • Also ich denke, Ihr seit inzwischen 3 Level zu fortgeschritten für die Frage.

    +1
    Die Frage war wie macht man einen Punktezähler, nicht "Welches Paradigma würdet ihr mir für meine Timingangelegenheiten empfehlen unter Berücksichtigung des Standes des Uranus über einem frisch geernteten Maisfeld?"
    Die Jungs stehen am Anfang, da bringt solch eine Diskussion nichts ausser Verwirrung, denke ich. Lasst sie mal gehen lernen bevor sie rennen müssen ;)

  • Ja so wird's wohl sein! ^^


    Aber die Sache mit den Schüssen, der ursprünglichen Verzögerungsschleife und der resultierenden Kollisionsabfrage erfordern nunmal einen kleinen, aber stimmigen Gesamtablauf. Wenn man anfangs nur am stolpern ist, verliert man womöglich die Lust.


    Okay, lassen wir sie mal die ersten Babyschritte tun...

  • Decimal mode würde ich wirklich nur nehmen, wenn (warum auch immer) in der Game Score bereits dieser Mode benutzt wird.


    Ansonsten kommt es drauf an, was man will. Beim Cracken stößt man immer mal auf sehr ökonomische Lösungen, z.B. Score Counter wird komplett im Screen erledigt, nirgendwo sonst, oder auf sehr verschwurbelte (vielleicht um fiese Cracker zu ärgern, irgendwo durch doppelt verwuselte indirekte ZP-Adressierungen).


    Irgendwo braucht man dann genug RAM, um sagen wir mal 5 Scores (und evtl. Names) abzulegen.


    Dann bastelt oder sucht man sich ne Sortier-Routine, baut sich noch ne KERNAL-Save-Orgie, fertig ist der Lack.


    Beispiel: auf codebase64 ne Bubble Sort Routine nehmen und anpassen und die dortigen Snippets für KERNAL SAVE/LOAD anschauen.

  • die dortigen Snippets für KERNAL SAVE/LOAD anschauen

    Aber bitte nur anschauen!


    Ärgere mich immer wieder, dass selbst im Jahre 2016 noch mit der festen Geräteadresse #8 gearbeitet wird. Wie stupid! :(


    Auch ist leider vieles aus dem Netz zu den CMD Laufwerken oder anderen KERNAL ROMs inkomatibel!


    Martin Piper (Berzerk Redux) war so clever und setzte für den popligen Block der Hiscore-Datei einen Schnelllader ein, der natürlich nicht - na was wohl? - mit anderen Laufwerken außer der 1541 funktionierte!!! Dankeschön! EINEN SCHNELLADER WEGEN EINEM VERDAMMTEN BLOCK! Grrr...


    Insgsamt ist es sinnvoller zu lesen (READ), als zu laden (LOAD) und zu schreiben (WRITE) als zu speichern (SAVE). Habe hier meine Umsetzung - kompatibel zu allem!


    http://csdb.dk/release/?id=107830

  • Ja, du hast recht, $jemand sollte Grahams Snippets mal auf ZP Reg $BA anpassen, damit es nicht jeder selbst tun oder vergessen muss :)


    OFFTOPIC: auf irgend ner BunkerParty wurde ich mal von Skern ausgeschimpft, der einen PlayEm-Protoypen auf Device 23 oder so wiedergeben wollte, bei ner Connected hatte JMP mal n 1541 I auf Dev No. 9 festgelötet, seit diesen Erfahrungen immer $BA :)

  • Ich erschrecke manchmal schon fast, wenn ein neuer Crack tatsächlich mal von der Bootadresse die HI-Datei nachläd! ^^


    Wenn nicht suche ich mit dem Monitor gelegentlich nach $FFBA und finde dann sowas:


    LDA #$08
    TAX
    TAY
    JSR $FFBA


    Da habe ich dann keine Chance ein etwaiges LDX #$08 durch ein LDX $BA wegzupoken! :(
    Und dabei hat es uns Commodore so einfach gemacht - hmmm...

  • oder gleich .....

    is alles doppelt gemoppelt, denn ein JSR$FFBA bewirkt nix anderes als

    Code
    1. .,FE00 85 B8 STA $B8 logische Filenummer
    2. .,FE02 86 BA STX $BA Geräteadresse
    3. .,FE04 84 B9 STY $B9 Sekundäradresse
    4. .,FE06 60 RTS Rücksprung

    Ähnliches gilt für JSR$FFBD !
    Also einfach die Adressen direkt beschreiben (und $BA so lassen wie es ist) und das JSR$FFBA und JSR$FFBD einfach weglassen bzw. auf die eigenen Routinen umlenken ;)

  • Bei TrapThem64 habe ich auch zunächst mit dem Dezimalmodus des Prozessors gearbeitet. Im Zuge der Optimierung des Arbeitsspeichers nutze ich nun den VIC dazu. D.h. die Berechnung +x findet auf dem Bildschirm statt. Vermutlich ist dieses Vorgehen keine gute Lösung, wenn man viel hohe Zahlen addieren möchte, die keine Zehnerpotenzen sind.

  • Beispiel: auf codebase64 ne Bubble Sort Routine nehmen und anpassen und die dortigen Snippets für KERNAL SAVE/LOAD anschauen.

    Siehst du TheRyk - das ist es, was ich meinte. Wir haben 2016 und es passiert immer noch und immer wieder:


    23.01.2016
    http://csdb.dk/release/?id=144610
    05.02.2016
    http://csdb.dk/release/?id=144935
    13.02.2016
    http://csdb.dk/release/?id=145220
    24.02.2106
    http://csdb.dk/release/index.php?id=145505


    Ich chabe alle 4 Releases daraufhin kommentiert - mal schauen, ob es sich der eine oder andere zu Herzen nimmt!?


    Es geht mir hier nicht um bestimmte Leute, Spiele oder um Codebase64. Es geht mir einfach nur darum, davon abzuraten, blind irgendwelche Schnibbel aus dem Internetz zu übernehmen, die möglicherweise nicht ausgereift sind. Was nützt die ganze zusätzliche Hardware, wenn sie nicht unterstützt wird? Und es spricht absolut nix dafür, dieses poplige CURRENT DEVICE Register zu ignorieren!


    Lieber eigene Techniken entwickeln oder vorhandenes verbessern - und vor allem testen!

  • Klar, im Idealfall rafft und/oder testet/verbessert man natürlich auch den Snippet (bzw. wenn man zu Faul ist KERNEL-ROM durchzuklappern, schaut man wenigstens mal, wofür die im Snippet enthaltenen ZP-Regs denn so da sind...)


    Wenn da wirklich Murks auf der Base steht, Account anlegen und optimieren.


    Cheers
    Ryk

  • Mein Tipp: Plant von vornherein einen Rastzeilen-IRQ ein, erstens sind etwaige Bewegungen dann sehr geschmeidig und ruckelfrei, aber noch viel wichtiger - ihr habt die Grundlage für eine 100% funktionierende Kollisionsabfrage geschaffen. Lest euch bei Interesse die Anleitung zu folg. Kit durch und schaut euch die Beispiele an. Der CeVi liefert hervorragend alle Voraussetzungen für ein technisch professionelles Spiel, eure Aufgabe ist nun die Rezeptur für diese Zutaten. Mit dem Kit hättet ihr schon mal so eine Art Gerüst, dass ihr nach erfolgreichem Test erweitern und anpassen könnt. Viel Erfolg! ;)


    http://csdb.dk/release/?id=134517


    Hallo DATA-LAND!


    Danke vielmals für das Kit! :)
    Aber hast Du den Inhalt dieses Kits zufällig auch für PC oder nur im Turboassembler im C64?
    Der geht bei mir auf wenn ich das File darin im VICE öffne.
    Ich hätte die Erklärungen gerne als Textdatei die ich auf dem PC lesen kann und den Quellcode
    so, dass ich ihn mit ACME auf dem PC assemblieren kann. Kann mit Turboassembler auf C64
    leider nicht umgehen... :cry:


    LG,
    Markie

  • @Markie: Da muss ich dich leider enttäuschen!


    Ich habe alle Quellcodes für den C 64 auch an einem originalen C 64 geschrieben - im TurboAss Format. Die entsprechenden Anleitungen teils mit dem Voodoo-Noter. Von dem Kit gibt es von meiner Seite her keine Anleitung in einem gängigen PC-Format.