Hydra-Buch und Hive-Programmierung

Immer wieder bekomme ich Mails mit Fragen zur Programmierung des Hive. Zu einigen Aspekten gibt es ja schon passende Tutorials, im Besonderen zu den speziellen Fragen wie im Hive die drei Propeller-Mikrocontroller zusammenwirken:

Für den Bereich der Gameprogrammierung gibt es ein wunderbares Buch zur Hydra-Spielkonsole, welche ja mit einem Prop arbeitet – also so eine Art Bellatrix. Das Buch erklärt, ausgehend von den Grundlagen des Enwurfs einer Gamekonsole auch sehr ausführlich die Programmierung von tile- und vektorbasierter Spielegrafik, bis hin zum Sound und zur Abfrage eines Gamepads – inklusive vieler Demos und kleiner Games. Das schöne an der ganzen Sache: Das Buch und die CD mit dem Democode ist frei als PDF erhältlich:

Wie einfach es ist, ein kleines Game für den Hive unzupassen, hat Volker im Forum in einem Minitutorial gezeigt, weshalb ich ihn hier einfach mal direkt zitiere:

Unter http://www.parallax.com/tabid/768/Produ … fault.aspx kann man das Buch zum HYDRA Game Development Kit komplett downloaden, ebenso die CD zum Buch. Das habe ich getan und die ersten Programme umgesetzt.

Dank Programmierung mit Spin beschränken sich die Anpassungen i.W. auf die andere Pin-Belegung. Für die Demos aus Kapitel 16 (s. 319-423) musste nur wenig angepasst werden.

0. Die Programme werden direkt in Bellatrix geladen, also die Dip-Schalter passend stellen.
Die Programme können mit dem Propeller-Tool oder mit BST mit F10 zum Hive übertragen werden.

Was ist zu ändern?

1. Clock
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000

2. TV
im Hydra-Treiber tv_drv_010.spin ist ein Fehler. Zeile 279 musste korrigiert werden: tjz t1,#:off statt tjz t1,:off

Parameter ändern:
Pins: %010_0101
Mode Bit0 := 1 für PAL
broadcast: 0 (kann auch unverändert bleiben)
auralcog: 0 (kann auch unverändert bleiben)

3. Maus
da die Maus eine etwas andere Ansteuerung als beim Hydra-Bord hat, wird einfach ein anderer Mouse-Treiber genutzt.

OBJ
mouse : „bel-mouse“
Init:
mouse.start(2) -> mouse.start(19, 18)

4. Keyboard
da die Tastatur eine etwas andere Ansteuerung als beim Hydra-Bord hat, wird ein anderer Keyboard-Treiber genutzt.

OBJ
key : „bel_keyb.spin“ ‚ instantiate a keyboard object
init:
key.start(3) -> key.start(17, 16)

allgemein können die Objekte gegen die HIVE-Objekte aus trios\lib ausgetauscht werden:

tv : „tv_drv_010.spin“ -> „bel-tv“
gr : „graphics_drv_010.spin“ -> „bel-graphics“
mouse : „mouse_iso_010.spin“ -> „bel-mouse“
key : „keyboard_iso_010.spin“ -> „bel_keyb“

Volker war auch gleich so nett und hat einige kleine Hydra-Demos und Games angepasst – alles lauffähig, aber noch ohne Sound. Unter anderem Dr. Hydra und Mondlander: