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,
bin gespannt.
RGCD 16kB Cartridge Competition 2013
-
Endurion -
2. Mai 2013 um 22:00 -
Erledigt
Es gibt 367 Antworten in diesem Thema, welches 63.994 mal aufgerufen wurde. Der letzte Beitrag (
-
-
- Offizieller Beitrag
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 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.

-
- Offizieller Beitrag
(glaub beim C64 ist das ja 50% der Gesamtnote)
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. -
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?"
Zitat"You have 10 minutes! D:" und mit "I know, and we don't need them all :-)"

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 kuerzerKleines 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

-
rumgewürgt und zum Schluss nur Code/Datenblöcke umsortiert
Interessant! Was waren Kriterien? -
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.
-
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. -
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!

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.
-
danke Alex fĂĽr das interessante Tool

-
- Offizieller Beitrag
Soll es zeitliche Beschränkungen in MonsterBuster geben? Und falls ja, welche? 24
-
Keinerlei zeitliche Vorgabe (3) 13%
-
Nach einer bestimmten Zeit wird der Schuss ausgelöst (6) 25%
-
Nach einer bestimmten Zeit wird der Schuss-Counter soweit hochgesetzt, dass nach dem nächsten Schuss das Monsterfeld nach unten schiebt (4) 17%
-
Nach einer bestimmten Zeit wird das Monsterfeld automatisch einen Schritt nach unten geschoben (8) 33%
-
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:
-
fehlende Antwort:
beides (optional), i.e. shift-lock to pause timer. -
Zitat
shift-lock to pause timer.
...and blank screen
-