RGCD 16kB Cartridge Competition 2013

Es gibt 367 Antworten in diesem Thema, welches 63.994 mal aufgerufen wurde. Der letzte Beitrag (8. Januar 2014 um 10:19) ist von Nognir.

  • Puzzle-Bobble.. naja, Puzzle-Spiele mag ich ja gar nicht.
    Ok, ausser Tetris, aber sonst mag ich die gar nicht.
    Ok, ausser Bejewled. Aber das sind auch die einzigen.
    Ok, ausser Assembloids, das ist auch genial. Aber sonst...
    Just kidding, :P bin gespannt.

  • Ich habe einen neuen Thread (Bitte melde dich an, um diesen Link zu sehen.) fĂĽr das Atari 2600 Thema angelegt und dorthin alle Ă„uĂźerungen dazu verschoben.

    Bitte melde dich an, um diesen Link zu sehen. | Meine Lieblings-Themen im Forum64:

    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. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

  • Bitte melde dich an, um diesen Anhang zu sehen.
    Herrje, hatte gar keinen Schriftzug im Titelbild! (glaub beim C64 ist das ja 50% der Gesamtnote) Supi, bin wieder bei 17k. Hurrah!

    Ähmja, ich hatte noch nie einen Abgabetermin. Wieviel Wochen vorher sollte man fertig sein und nur noch Fehler verbessern? Uh... Panik!

  • Supi, bin wieder bei 17k. Hurrah!

    Das kenne ich nur zu gut. Habe gerade eine exomizer Orgie hinter mir. Code-Optimierung, Titelbild verkleinert und gepackt. Voll Freude gemerkt, dass ich unter 16384 Bytes bin und vollkommen vergessen, dass die Cartridge-Routine ja auch noch mal ein paar Bytes braucht. Also wieder ran und alles kleiner gemacht und jetzt läuft es. :party:

    64er-Zeitschriften gesucht:
    1984: 9 in gutem Zustand

    Ansonsten 64er 1984-1994 sind komplett wieder da. :D

  • (glaub beim C64 ist das ja 50% der Gesamtnote)


    :D Das wohl nicht – aber ein hübsches Intro-Logo kann nicht schaden. Früher hat man aber auch schon mal einfach den Spiele-Namen hingetippt und die Kunden waren auch zufrieden.

    Supi, bin wieder bei 17k. Hurrah!


    Ja, so ein Logo frisst – das haben wir auch schon gemerkt – aber was tut man nicht alles für die Schönheit.

    Wieviel Wochen vorher sollte man fertig sein und nur noch Fehler verbessern?


    Nullkommavierzehn? ;) Bleib mal locker, wir haben noch keine Sounds, keine Levels, keine AuswahlmenĂĽs, keine Intermissions, keine Effekte, keine Extras, keine Hi-Scores ... Aber wir sind optimistisch. Das ist doch auch schon was.

    Also wieder ran und alles kleiner gemacht und jetzt läuft es.


    Bei SPACE LORDS haben wir zum Schluss im einstelligen Byte-Bereich gekämpft, ob es reinpasst oder nicht.

    Bitte melde dich an, um diesen Link zu sehen. | Meine Lieblings-Themen im Forum64:

    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. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

  • Wieviel Wochen vorher sollte man fertig sein und nur noch Fehler verbessern?

    wegen Space Lords hatte ich irgendwann von heavy stylus folgende mail bekommen: "You have 10 minutes! D:" und mit "I know, and we don't need them all :-)" geantwortet, so ca. 5 minuten vor deadline (01:00, 01.12. CET).

    Also wieder ran und alles kleiner gemacht und jetzt läuft es.

    Ich hatte extra fuer Space Lords einen vor-packer entwickelt, der aendert die reihenfolge des codes (und klebt einen entpacker dran) was zum ergebnis hat das der exomizer danach besser packen kann, bei 4k code (reiner code, keine daten, musik, ...) kann man ca. 10% sparen.

  • Zitat

    POWERGLOVE

    Meine Freundin hat den rechten Teil des Schriftzugs im Malprogramm gesehn: "oh, ist das fĂĽr mich?" :facepalm:

    Zitat

    "You have 10 minutes! D:" und mit "I know, and we don't need them all :-)"

    8\|

    vor-packer

    Du hast einen Vorpacker der 6510 Code so abändert, dass er 10% besser gepackt werden kann? Hab ich das richtig verstanden? ALX, Friend, Kumpel, Towarischtsch! sag mir mehr...

  • Du hast einen Vorpacker der 6510 Code so abändert, dass er 10% besser gepackt werden kann? Hab ich das richtig verstanden? ALX, Friend, Kumpel, Towarischtsch! sag mir mehr...

    Ja, du hast das richtig verstanden. Ich sollte da mal ein ordentliches tool draus machen.

    hier stats von Space Lords:
    Code: 12303 bytes
    Exomized: 8628 bytes
    Vorgepackt: 12633 bytes
    Exomized: 7894 bytes = 734 bytes kuerzer

    Kleines manko: man braucht $groesse+330 bytes freies ram zusaetzlich, von da aus wird dann in das eigentliche programm entpackt (das entpacken geht sehr schnell - zumindest im vergleich zu exomizer) (und ausserdem braucht man 12 zeropage addressen, am stueck) (und das byte hinter dem entpackten programm wird ueberschrieben)

    ok, also wenn ich mal zeit habe schreibe ich ein C programm daraus. (weiss aber nicht, ob das noch vor der deadline passieren wird)

  • Hmm, das klingt interessant. Bei Soulless und Wonderland hatte ich dann auch byte-weise rumgewĂĽrgt und zum Schluss nur Code/Datenblöcke umsortiert, damit Exomizer ein paar Bytes mehr rausgeschlagen hat.

    Da hatte ich auch mal ĂĽberlegt, so ein rumsortieren zu automatisieren, testweise zu packen und die optimale Kombination rauszusuchen :)

    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.

  • Wenn Daten, waren es SichtprĂĽfungen. Wenn Byte-Folgen ähnlich waren (Bit-Verteilung), dann hat das Aneinanderreihen da gelegentlich einige Bytes gebracht.
    Teilweise habe ich Lookup-Tabellen ineinander geschoben.

    Bei Codeabschnitten war es dann wirklich nur blindes Ausprobieren.

    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.

  • Fuer die Newt0rn 4k demo 'damals' hab ich die Vektordaten (waren Ketten) durchpermutiert und (fast) jede moegliche Kombination durch den Packer gejagt (natuerlich automatisch), um dann das kleinste Resultat zu waehlen.
    Hat fast ewig gedauert ueber Nacht *g* und haette wirklich ewig gedauert bei mehr Daten.
    Das geht SO natuerlich nur mit eher wenig Kombinationsmoeglichkeiten, da bei komplexen Packern wie Exomizer die Daten zum Ergebnis nicht wirklich linear sind, kann man das nur in Grenzen vor-optimieren.
    Schon im code. Sowas wie IMMER clc vor adc auch wenn man ab und an 1 Byte dafuer mehr braucht und sowas.

    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.

  • ein relativ leicht anzuwendender und oftmals ĂĽberaschend effektiver trick: häufig benötigte zeropage variablen an adressen legen die einem wiederum häufig benötigten opcode entsprechen.... zb $a9 (LDA#). das fĂĽhrt zu weniger entropie und damit besserem packergebnis :) wenn ich mich recht erinnere hatte krill in dem source zu dem "artefact" 4k noch ein paar solcher tricks beschrieben.

    einen generischen "vorpacker" der bei exomizer noch was rausholt fänd ich aber auch mal interessant zu sehen..... ist evtl auch was das zagon interessant fände =)

  • $a9 (LDA#)

    Ha! :thumbup:

    Aber so wie ich das verstanden hab, hat das Spezialprogramm von ALX den 6510 code so umgruppiert, dass er nicht mehr lauffähig ist und ein 6510 Unterprogramm (von 330 bytes Länge) wird dann nach dem Entpacken aufgerufen und dieses stellt den lauffähigen Code wieder her.

    ALX, erleuchte uns! Nach welchen Kriterien? Ich wĂĽrde mich auch opfern fĂĽr die Erstellung eines C Programms.

  • Vielleicht Opcodes und Operanden getrennt voneinander speichern?

    Wenn man Lookup-Tabellen hat, die 16-Bit-Wörter bzw. Adressen enthalten, dann ist es oft besser, wenn man die 16-Bit-Wörter nicht stur hintereinander in einer Tabelle ablegt, sondern Low- und High-Byte in zwei getrennten Tabellen. Das kann i.d.R. besser gepackt werden und der Lookup ist meistens auch noch ein paar Takte schneller, weil man nicht erst den Index verdoppeln muss.

  • So, mein vorpacker ist nun oeffentlich:
    Bitte melde dich an, um diesen Link zu sehen.

    und ja, ich sortiere opcodes und die div. argumente in verschiede tabellen um.

  • Soll es zeitliche Beschränkungen in MonsterBuster geben? Und falls ja, welche? 24

    1. Keinerlei zeitliche Vorgabe (3) 13%
    2. Nach einer bestimmten Zeit wird der Schuss ausgelöst (6) 25%
    3. Nach einer bestimmten Zeit wird der Schuss-Counter soweit hochgesetzt, dass nach dem nächsten Schuss das Monsterfeld nach unten schiebt (4) 17%
    4. Nach einer bestimmten Zeit wird das Monsterfeld automatisch einen Schritt nach unten geschoben (8) 33%
    5. Choplifter (egal) (3) 13%

    Da ALeX und ich nicht sicher sind, wie man mit zeitlichen Vorgaben bei MonsterBuster umgehen soll, möchte ich dazu eine kleine Umfrage starten, um uns evtl. am Ergebnis zu orientieren (keine Garantie).

    Dazu eine Erläuterung: Bei Puzzle Bobble wird das Bubble-Feld am oberen Rand nach einer bestimmten Anzahl von Schüssen nach unten geschoben. Da somit der Spieler das Spiel durch Nichtagieren einfach anhalten könnte, wird nach einiger Zeit Untätigkeit seitens des Spielers automatisch der vorhandene "Schuss" ausgelöst. Nun ist das aber im Original ein Automat, der natürlich nicht unendlich lange blockiert werden soll. Bei den meisten Original-Portierungen ist dieses Zeitlimit auch vorhanden, weil die sich natürlich möglichst nah am Original orientieren wollen und man auch etwas Druck aufbauen möchte. Es gibt aber Clones, die den Spieler solange pausieren lassen, wie er möchte, wahrscheinlich um den Action/Arcade-Anteil zu verringern und den Puzzle-Aspekt zu stärken. Wir sind unsicher, welchem Weg wir folgen sollen und wie wir das realisieren.

    Also entweder gibt es keine zeitlichen Vorgaben (und die Monster wandern ausschließlich über die Anzahl der Schüsse nach unten) oder aber es wird nach einer bestimmten Zeit der Schuss ausgelöst oder aber es wird nach einer bestimmten Zeit (sollte sie eher eintreten, als die Anzahl der nötigen Schüsse) das Monsterfeld einen Schritt nach unten geschoben oder aber nur dafür vorbereitet, sodass es nach dem nächsten Schuss schiebt. Wir haben somit 4 Optionen, neben "egal".

    Also, eine Frage an die Leute, die gerne Puzzle Bobble (und Clones) spielen:

    Bitte melde dich an, um diesen Link zu sehen. | Meine Lieblings-Themen im Forum64:

    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. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

  • fehlende Antwort:
    beides (optional), i.e. shift-lock to pause timer.

    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.

  • Zitat

    shift-lock to pause timer.


    ...and blank screen :)