Monatsarchiv: Juni 2012

Computerspiele Museum, ich war da….

Wieder eine Bildungslücke geschlossen 🙂 Wer mehr erfahren möchte, es lohnt sich, der schaut da nach:

https://retrozock.com/2011/01/21/computerspielemuseum-berlin/

Image


Montezumas Revenge….

Ein Interview mit dem Programmierer  – Robert Jaeger – findet sich im „Retro Gaming Roundup“, Episode 47. 

Robert beschreibt einige Interna aus dem „making of“ . Speicherprobleme und kreative Ansätze zur Lösung derselben nehmen viel Raum innerhalb der Entwicklungsgeschichte ein. Das Resultat u.a. ein konsequent um die Kommentare erleichterter Source Code. Gruselig 🙂 Den Link zur Homepage des Podcast’s gibt es hier im Blog unter:

https://retrozock.com/2011/06/03/podcasts/


Millionäre, oder: Zahlenspiele die Dritte

Es ist schon erstaunlich, wie einfach es ist, nahezu beliebig große Zahlen auf einem 8-Bit Maschinchen auf den Bildschirm zu bringen. 

Es wurde bereits eine Methode gefunden, mit der 8- Bit Integer <=255 in Assembler, aus dem Speicher, in ATASCII umgewandelt werden konnten. Vergleiche hier im Blog

Unter http://www.atarimagazines.com/analog/issue62/boot_camp.php    findet sich eine Erweiterung des vorgenannten zur Umwandlung von 16- Bit Integern. Damit können dann  Zahlen bis 65535 dargestellt werden.

Last but not least, noch ein Stück Source zur Umwandlung von 8- Bit Integern nach Hex, hier im Blog: „Die Basis 16“

Aber kann ich auch 1 Million? Natürlich:

1. Ziffer (n)=9?
 Ja=> Ziffer (n)=0, gehe zu 2
 Nein=>Ziffer (n)=Ziffer(n)+1, 
 2. Alle Ziffern?

Nein, n=n-1, gehe zu 1

ja, Ende!

Startbedingung: n=6

In Deutsche übersetzt funktioniert der oben geschriebene Pseudo- Code so:

  • Wir habe eine Zahl, die besteht aus 6 Ziffern. Wir beginnen mit der letzten Ziffer.
  • Ist diese Ziffer schon „9“?
  • Ja, dann setzte diese auf „0“ wenn nicht, erhöhe diese um eins.
  • Weiter zur nächsten Ziffer, und beginne das Spiel von vorne, bis alle sechs Ziffern abgearbeitet sind.
Nachteil: Möchte ich damit die Zahl „2560“ darstellen, dann muss ich die Routine auch 2560 mal durchlaufen. Für die Darstellung der erreichten Punktezahl in Spielen reicht es aber allemal. Riesiger Vorteil: Das ganze benötigt in 6502 Assembler gerade mal 62 Bytes! Geht’s noch kleiner?
Keine Raketenwissenschaft, sondern ganz einfach!



„Projekt Rock“ geht voran…..

nein, das  ist nicht erzwungener Optimismus, sondern echter, aus der Freude über ein fast fertiges Retroprogrammier- Projekt  geborener, echter Optimismus!

Stand 11.6.2012

Der Offizielle Beginn meiner Arbeit am „Rock“ genannten Spieleprojekt ist der 28.12.2011. Nach fast 20 Jahren Abstinenz wurden die ersten zaghaften Schritte in 6502 Assembler unternommen. Geburtshelfer war der „ATMASII“. Obgleich ein RAM verschlingendes Monster, einzigartig bedienerfreundlich wegen des bildschirmorientierten Editors und des relativ schnellen Compilers.

Stand: 11.6.2012,
„Leveling“, Tot, kurtz die gesammte Logik des
Spielchens funktioniert…

Nun, ist das Ende also absehbar. Einige Ideen zu zusätzlichen Features müssen leider unterdrückt werden.

Unbedingt abgearbeitet werden muss noch:

  • Der Score Zähler funktioniert noch nicht (wenn ich nur wüsste…. verdammter Bug, den kann ich niemandem als „Feature verkaufen….)
  • Das generelle Timing (Bewegungsgeschwindigkeit des Spielers, das Fallen der Blöcke usw…)
  • Animation der Spielfigur
  • Titelscreen
  • An der Grafik basteln bis es stimmig ausschaut.
    Wichtig ist: Der Kontrast!

Und, last but not least:

  • Leveldesign. Auf die Spiele- Disk werden rund 84 Level passen…….
  • Die Musik. leider sträube ich mich da noch ein bisschen, weil, ich bin halt nicht musikalisch und habe da leider keine Ambitionen was zu programmieren. Eine Schande, ich weis. Mehr als ein paar Sound- Effekte sind nicht drin. Falls da draußen allerdings jemand eine fertige Sound- Routine in der Schublade hat und das ganze mit einem Spielchen verbinden möchte, bitte gerne, 5kB hätte ich noch zu vergeben 🙂
So long…

Apple II, Prince of Persia Source Code veröffentlicht……

Auf Jordan Mechner’s Homepage  findet sich hier ein sehr lesenswerter Artikel zu dem o.g, und, natürlich, der Link zum Source.

Viel Spass.


Midnight Magic Umsetzung. 2600 -> 800(XL)

Mal was Neues. Die Portierung eines Stella Titels in Richtung Atari 8-Bit Computer.

Den Download findet man hier: http://atari.fandal.cz/detail.php?files_id=6588

Viel Spass!


Projekt Rock, es schleppt sich so dahin….

…..Mühsam, mühsam. Die gröbsten Bug’s sind längst ausgemerzt. Die interessanten Programmteile längst in Code gehauen,  jetzt ist weiter Knochenarbeit angesagt. Aber, es wird:

Offen:

  • Die Punkteanzeige funktioniert noch nicht so richtig.
  • Todesroutine
  • Leveldesign
  • Sound fehlt
  • Titelscreen
  • Spieleranimation und ein gescheites Timing

 


Atari Macro Assembler, original Manual

…wurde hier im Blog bereits beschrieben. Wer auf dem original Atari größer Projekte in Assembler realisieren möchte, der kommt am AMAC nicht vorbei. Näheres dazu hier.

Das originale Manual, inklusive der Beschreibung des Editors, habe ich heute hier entdeckt.

Viel Spass!


Zahlenspiele die Zweite: Basis 16

…Idee wurde Algorythmus,  Algorythmus zu Mnemonic und Mnemonic zum Programm…….

Passiert oft während einer langweiligen Zugfahrt oder in Wartezimmern von Ärzten, nicht nur spektakuläres, sonder auch oft ganz grundlegendes.

Die Umwandlung eines 8-Bit Integers nach ASCII zur Ausgabe auf den Bildschirm in 6502 Assembler zum Beispiel, schau einfach mal hier nach:  https://retrozock.wordpress.com/2012/04/07/zahlenspiele/

Gleiches Prinzip, die Umwandlung eines 8-Bit Integres nach Hex. Dezimale Zahlen gründen sich auf der Basis 10 und werden mittels der Ziffern 0 bis 9 dargestellt.

Hexadezimale Zahlen gründen sich auf der Basis 16 und werden mittels der Ziffern 0 bis F dargestellt. Für die Umwandlung eines 8-Bit Integres benötigen wir im hexadezimalen Zahlensystem 2 Ziffern. Stelle 1 ergibt die Potenz 16^1=16 und die zweite Stelle 16^0=1 (vgl. dezimal: 10^2=100, 10^1=10, 10^0=1).

Wir fragen uns nun , wie oft kann ich von meiner Zahl, sagen wir der 169, die 16 abziehen? 10 mal, Rest 9!

Damit ist die erste Ziffer unserer gesuchten Zahl (hex) die 10, also A.

Weiter mit dem Rest. Wie oft kann ich von der Neun die 1 abziehen? Neun mal, Rest 0!

Damit ist die zweite Ziffer unserer gesuchten Zahl (hex) die 9 => 169 (dez.)=A9 (hex).

Das nachstehende Progrämmchen macht’s vor:

* INTHEX.SRC
*
* WANDELT DEN IN "ZAHL" ENTHALTENEN
* INTEGER IN BILDSCHRIMZEICHEN UM UND
* GIBT DIESE AUF DEM BILDSCHIRM
* ALS HEX- ZAHL AUS
*
* ZAHL KLEINER ODER GLEICH 255!
*
* B.FRITZ 5.6.2012
*************************************

BILD    EQU 88   ADRESSE BILDSPEICHER
BILDH   EQU 89

        ORG $A800
* ANZAHL DER STELLEN UNSERER ZAHL
* UND ZEIGER AUF UNSERE TABELLE DER
* POTENZEN VON 16

        LDY #0
* ANZAHL DER SUBTRAKTIONEN BIS DAS
* ERGEBNIS >0 WAR

        LDX #0
* LOS GEHTS
        LDA ZAHL  ZAHL VORHER RETTEN
        STA ZAHLB
L1      SEC
        LDX #0
L2      LDA ZAHLB
        SBC POW,Y
        STA ZAHLB
        BCC NULL  ERGEBNIS<0
        INX       ERGEBNIS>0 D.H.
        BCS L2    WEITER

NULL    LDA ZIFF,X      EREBNIS<0
        STA (BILD),Y    ZIFFER AUSG.

        LDA ZAHLB       ZAHL>0 MACHEN
        ADC POW,Y
        STA ZAHLB

        INY       NAECHST NIEDR.
        CPY #2    16ER, ALLE STELLEN
        BNE L1   DURCH?

BRK             JA!

*
* EINIGE DATEN
*

* UNSERE ZIFFERN- ZEICHEN

ZIFF    ASC %0123456789ABCDEF%
* 16ER
POW      DFB 16,1
* DIESE ZAHL SOLL AUSGEGEBEN WERDEN

ZAHL    DFB 169

* ZWISCHENSPEICHER ZUM RECHNEN

ZAHLB   DFB 0