Enigma (aka Oxyd) <- läuft


whynodd

Member
Joined
Sep 20, 2008
Messages
262
Edit:

Nun läuft das Spiel und ist als pnd im File Archive verfügbar
http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,25,174
enigma.png

Code:
Enigma is a puzzle game inspired by Oxyd on the Atari ST and Rock'n'Roll on the Amiga. The object of the game is to find uncover pairs of identically colored Oxyd stones. Simple? Yes. Easy? Certainly not! Hidden traps, vast mazes, laser beams, and, most of all, countless hairy puzzles usually block your direct way to the Oxyd stones.

Buttons
-------
Rolling: Mouse-Nub or touchscreen
Use inventory: X
Switch inventory left/right: A B
Speed+: Dpad right
Speed-: Dpad left
Pause: Y or ESC
Menu navigation: Dpad, Mouse-nubbing, Enter, Esc

Press F1 for an ingame help screen. 


Changelog
---------
8.8.2010: 800x480 widescreen support. Now you can use the
          black borders for touchscreen control and the menu
          is widescreen now. Change resolution in options. 
6.8.2010: Touchscreen now works as a control.
          Took out mousebuttons for inventory because 
          it was interfering with touchscreen control.
          You don't collect an item after you just dropped
          it if you hold the X button.


Bugs:
Touchscreen control works but if you mix it with nubbing, the marble sometimes flicks around.
Sometimes, the marble flicks if you start/restart a level
If you hold X to drop an item and roll the marble around, it will drop and use more items as long as you hold X. It is because the X button (PGDown) works differently than the mousebuttons in SDL. Comment in the forums or here if I should iron this out. SDL event switch cascades are a nightmare ;).


---------------- Alter Beitrag ------------
Mich hat heute Nacht die Kompilierwut gepackt.

Erstmal rausfinden, wie es geht und so, source von Enigma und dieser ausgesprochen klobigen (aber benötigten) libxerces besorgen, mittels der Extendutils (http://www.gp32x.com/board/index.php?/topic/54508-simple-dev-pnd/page__hl__extend) alles schön durchkompilieren, mit Linkerfehlern herumschlagen weil bei irgendeiner von den gefühlten 5 Millionen Quellcodedateien dieser libxerces die Groß- und Kleinbuchstaben vermixt waren. Natürlich landete die libxerces im falschen Verzeichnis nach dem "make install", musste mit einem Symlink behoben werden weil das Spiel diese nicht findet und nicht startet. Jap, sowas frisst Zeit.

Naja, nach mehreren Stunden Herumkompiliererei auf der Pandora kann ich das Spiel starten. So. Jetzt habe ich nur keinen Plan, wie ich diesen Wust an Dateien aufräume und zu einer pnd packe. Wer hilft mir dabei? Was mache ich mit der lib? Muss ich die irgendwie statisch verlinken oder kann ich die wieauchimmer mit in die pnd tun, und zwar so, dass das Spiel sie findet? Wie ist da die Vorgehensweise? Und dann muss ich noch dafür sorgen, dass das Spiel nicht im NAND herumkritzelt sondern alles schön im appdata-Verzeichnis ablegt.

Zum Spiel selbst: Es lief erstaunlicherweise auf Anhieb perfekt ohne Änderungen am Code. Steuerungsmäßig wird die Kugel mit dem Maus-Nub herumgerollt. Das klappt natürlich nicht ganz so doll wie mit einer Maus aber es ist spielbar. Im Menü funzt der Touchscreen nicht richtig (offset). Macht nix, lässt sich alles mit den Pfeiltasten steuern. Ich müsste evtl. die Inventartasten auf die Actionbuttons umfriemeln, per Nub-Mausklicks gehts zwar auch, ist aber nicht ganz Konsoleromäßig.

Das war meine erste Portiertätigkeit auf der Pandora. Man will ja einen Beitrag zur Community leisten und so... ;)
 

Attachments

  • enigma.jpg
    enigma.jpg
    85.5 KB · Views: 4,418
Bravo, ich bin ein großer Fan der OXYD Reihe. :)
Ich war sogar irre genug, genau diese ENIGMA Version hier auf dem GP2X zu zocken, mit dem F100 D-Pad! :-D
Da gingen leider nicht alle Level weil das game natürlich vor allem ne analoge Steuerung braucht. Touchscreen sollte auch helfen, glaub, es gibt Methoden, den Touchscreen auf Vollbild richtig anzusteuern, man muss wohl nur die Touchscreen Matrix mit auf die richtige größe bringen, irgendwo stand dazu was.

Vom GP2X (wo außerdem noch alle Grafiken runter skalliert werden mussten) hab ich noch einige Bugs von ENIGMA in erinnerung:
-levelauswahl war quählend langsam, bis man durch die Bilder durch war dauerte es ewig, ein Mouseover über die Bilder brachte fast Stillstand
-"Meditationslevel" mit den kleinen grünen Kugeln waren unspielbar langsam, hat wohl was mit der Physik zu tun.

Wie ist das auf der Pandora? Jedenfalls find ich die Idee gut, den Quellcode zu "entmüllen" oder wie du das vorhast. Da kann sicher einiges optimiert werden. :)

Ach, kann man die Sensibilität der Nubs anpassen um die Kugeln nach persönlichem Gefühl zu steuern?
 
Fusion_Power said:
... Touchscreen sollte auch helfen, glaub, es gibt Methoden, den Touchscreen auf Vollbild richtig anzusteuern, man muss wohl nur die Touchscreen Matrix mit auf die richtige größe bringen, irgendwo stand dazu was.

... hab ich noch einige Bugs von ENIGMA in erinnerung:
-levelauswahl war quählend langsam, bis man durch die Bilder durch war dauerte es ewig, ein Mouseover über die Bilder brachte fast Stillstand
-"Meditationslevel" mit den kleinen grünen Kugeln waren unspielbar langsam, hat wohl was mit der Physik zu tun.

Wie ist das auf der Pandora? Jedenfalls find ich die Idee gut, den Quellcode zu "entmüllen" oder wie du das vorhast. Da kann sicher einiges optimiert werden. :)

Ach, kann man die Sensibilität der Nubs anpassen um die Kugeln nach persönlichem Gefühl zu steuern?

Touchscreen: Es ist kein statisches Offset, da müsste ich tiefer in den Code schauen und den Cursor direkt setzen statt über den SDL-Umweg. Macht jedenfalls nix, denn das Menü lässt sich prima per Nubmousing + Enter + ESC + Pfeiltasten bedienen.
Langsame Levelauswahl: Die ist nur langsam, bis die Vorschaubildchen alle vorhanden sind. Dann läufts perfekt.
Meditationslevel: Auf der Pandora laufen die überhaupt nicht langsam.
Quellcode entmüllen: Das meinte ich eigentlich nicht. Mit Aufräumen meinte ich, dass ich keine Ahnung habe, welche Dateien vom Spiel benötigt werden und welche nur für den Build da sind.
Naja, mal sehen wie weit ich heute komme. Vielleicht habe ich in 1-2 Tagen eine fertige pnd für euch alle. Die gibts aber erst, wenn die angesprochenen Unstimmigkeiten behoben sind. Ich kanns nicht leiden, wenn z.B. ein Dink Smallwood im Archiv auftaucht mit verkorkster Steuerung und ohne Anleitung, welche Tasten denn nun benötigt werden. Jeder Emulator wird anders beendet und sowieso backt da jeder sein eigenes Brot.

So spielt es sich: Fullspeed, überhaupt nicht ruckelig. Die Mausgeschwindigkeit lässt sich während dem Spiel ganz prima mit Dpad links rechts anpassen. Inventar durchschalten mit Rechtsklick, Inventargegenstand anwenden/abwerfen mit Linksklick, Kugeln rumrollen mit Nubmaus. Inventar werde ich auf die Actionbuttons legen, die Mausklicks per Nub sind nämlich sehr empfindlich. Das Spiel läuft in 640x480 mit Balken links und rechts, also genau in der für die Grafiken passenden Auflösung - perfekt.
 
Whynodd said:
So spielt es sich: Fullspeed, überhaupt nicht ruckelig. Die Mausgeschwindigkeit lässt sich während dem Spiel ganz prima mit Dpad links rechts anpassen. Inventar durchschalten mit Rechtsklick, Inventargegenstand anwenden/abwerfen mit Linksklick, Kugeln rumrollen mit Nubmaus. Inventar werde ich auf die Actionbuttons legen, die Mausklicks per Nub sind nämlich sehr empfindlich. Das Spiel läuft in 640x480 mit Balken links und rechts, also genau in der für die Grafiken passenden Auflösung - perfekt.
Hört sich super an! :juhu:
Gute idee dass man bequem mit dem D-Pad die Empfindlichkeit anpassen kann. Somit sollten auch heikle Passagen kein Problem sein. Erwähnte ich, dass ich mich mit einem vermurksten Digital-Stick durch viele Level gequählt hab? :lol: Dagegen ist jede andere Steuerung ein echter Luxus. :)

Ach, währe es bei dem game cheaten, wenn man die Kugel mit dem Stylus ziehen könnte? :confused:??
 
Ich möchte noch hinzufügen, dass Folgendes geht:

X-Forwarding ist auf der Pandora standardmäßig aktiviert. Das heißt, ich kann per Putty und mit einem laufenden Xming-Xserver in Windows (xming so starten: "xming -multiwindow") die Pandora fernsteuern und nicht nur herumkonsolen, sondern auch mal thunar& oder mousepad& starten und bei mir am Desktop bequem dran arbeiten. Nice. Sogar per pnd_run kann ich vom Desktop aus manche pnd's starten. Leider klappt das nicht mit der Codeblocks.pnd.

Man muss also nur einen xserver auf dem Desktop laufen haben (bei mir xming in Windows) und in Putty das X-forwarding aktivieren. Dann läuft das.

-- Di Aug 03, 2010 23:55 --

So, habe nun die Steuerung an die Pandora etwas angepasst und herausgefunden, wie das Spiel die benötigte Library beim Start findet und es nicht mehr im Homeverzeichnis rumschreibt.

Nun also eine PXML.xml geschrieben, die das Startskript für Enigma aufrufen soll. Das Icon erscheint auf dem Desktop mit dem von mir festgelegten Icon. Leider lässt sich das Spiel so nicht starten. Ich sehe, dass kurz /mnt/pnd/enigma erscheint und dann wieder verschwindet. Ich bekomme keine Fehlermeldungen.

Wenn ich das Startskript (sd-karte: /pandora/desktop/enigma/enigma) selbst aufrufe, dann läufts. Ich verzweifle. Eine pnd habe ich noch nicht erstellt.

Nochwas: pnd_run ist global in der Konsole verfügbar, pnd_make aber nicht. Wieso? Die liegen doch beide in usr/pandora/scripts

-- Mi Aug 04, 2010 16:26 --

Ich nochmal. Kann jemand mal Folgendes testen und mir sagen, wo mein Fehler liegt?
Nach sdkarte/pandora/desktop entpacken. Ein Icon sollte auf dem Desktop erscheinen. Starte das. Es passiert nix. Starte mal run_enigm.sh aus der zip direkt - ein Zenity File Picker erscheint. Warum klappts nicht mittels der pxml? Habe ich die PXML.xml vermurkst? Falsches Encoding oder sowas? Ich habe mir das bei diversen pnds abgeguckt. Aber es geht nicht...

-- Mi Aug 04, 2010 22:59 --

Hat sich erledigt. Habe wohl zuviel mit Windows gearbeitet. Nachdem ich den pxml und pnd Kram auf der pandora selbst gemacht habe, hat es geklappt. Das Spiel findet ihr im Pandora File Archive.

http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,25,174

Sensitivity: Dpad left right
Use item: Left click or X
Switch items: A B or right click
Pause: Y

Menu navigation with nubmousing, Dpad, Enter, ESC
 

Attachments

  • test.rar
    1.3 KB · Views: 186
Sauber! :-D
Spätestens jetzt vermisse ich meine Pandora. Ich bin noch sehr weit hinten in der liste vom 1. batch. Aber ich freu mich schon drauf, das game in all seiner Pracht mal wieder mobil zu testen, auf dem GP2X mit nur 320x240er Auflösung war das ja nix gescheits. ^^"
 
Habs gerade gezupft und ausprobiert. Macht mega Spaß!! Super Auflösung und die Steuerung mit dem linken Analog-Nub ist perfekt!

Ich habe früher immer Oxyd auf dem Atari-ST meines Vaters gespielt - da kommen Erinnerungen hoch!

Danke für diesen Port, Whynodd. ;)
 
Super vielen Dank für den Port! Ich krieg meine Pandora erst aus dem 2. Batch (wenn mein Bruder mittlerweile bestellt/bezahlt hat, wird ein Geburtstagsgeschenk von ihm und unserer Mutter) aber sammle schon fleißig Infos und Software und bin begeistert von dem was alles schon veröffentlicht wurde. Weiter so!
 
Freut mich, dass euch das Spiel gefällt. Ich habe mittlerweile den Hilfescreen im Spiel an die Pandoratasten angepasst. Die nächsten Tage über werde ich Touchscreensteuerung ermöglichen. Dann wird der Touchscreen sich im Spiel wie ein Notebook-Touchpad verhalten. Entsprechende Codepassagen habe ich schon gefunden.

Gestern war ich hauptsächlich damit beschäftigt, per Windows Netzlaufwerk und Samba-Freigabe zum bequemen Entwickeln auf die Pandora zuzugreifen. (Will jemand wissen wie es geht?). Jetzt habe ich einen Workflow gefunden und kann möglicherweise noch mehr Krempel portieren.
 
klasse Port!! :ph34r:


und ...
Whynodd said:
... Gestern war ich hauptsächlich damit beschäftigt, per Windows Netzlaufwerk und Samba-Freigabe zum bequemen Entwickeln auf die Pandora zuzugreifen. (Will jemand wissen wie es geht?). Jetzt habe ich einen Workflow gefunden und kann möglicherweise noch mehr Krempel portieren.
... solche Infos schaden doch nie ;)
 
Whynodd said:
Gestern war ich hauptsächlich damit beschäftigt, per Windows Netzlaufwerk und Samba-Freigabe zum bequemen Entwickeln auf die Pandora zuzugreifen. (Will jemand wissen wie es geht?).

Machst Du das Crosscompilieren denn unter Windows, oder wozu die Windowsfreigabe/Samba?

Bei meiner Entwicklung für die Archos-Geräte habe ich mich einfach immer auf dem Archos-Gerät per ssh eingeloggt und die Crosscompilate per scp auf das Gerät kopiert und dort per ssh ausgeführt.
 
Sooo, habe neue Version von Enigma grade ins File Archive geladen. Sobald es angenommen wurde, seht ihr das am Changelog. Das Spiel lässt sich nun auch mit dem Touchscreen steuern. Eure Spielstände bzw. Erfolge bleiben erhalten und die pnd wird nun korrekt im menu einsortiert, falls ihr sie ins menu-Verzeichnis packt.
http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,25,174
grond said:
Whynodd said:
Gestern war ich hauptsächlich damit beschäftigt, per Windows Netzlaufwerk und Samba-Freigabe zum bequemen Entwickeln auf die Pandora zuzugreifen. (Will jemand wissen wie es geht?).

Machst Du das Crosscompilieren denn unter Windows, oder wozu die Windowsfreigabe/Samba?

Bei meiner Entwicklung für die Archos-Geräte habe ich mich einfach immer auf dem Archos-Gerät per ssh eingeloggt und die Crosscompilate per scp auf das Gerät kopiert und dort per ssh ausgeführt.

Ich kompiliere direkt auf der Pandora. Aber ich editiere die Quellcodes vom PC aus. Und das geht prima über eine Freigabe. Coden am PC, das make auf der Pandora. Die Entwicklungswerkzeuge bekomme ich mit dem netten Extend Utils (im engl. Forum wird man fündig) und dem dafür vorbereiteten Dev Extend auf die Pandora. Kompilieren ist zwar schnarchlahm, zumindest bei diesem Spiel. Aber für so ein paar kleine Anpassungen an der Steuerung geht das gerade noch klar so.

Zuerst hatte ich überlegt, statt Samba einfach winscp zu benutzen. Aber das ist nicht so bequem. Eine Sambafreigabe ist wirklich schnell eingerichtet. Habe ich bis gestern noch nie gemacht und es hat trotzdem geklappt. Anleitung siehe unten.

Ach ja, und das pnd-Paket schnüre ich auch direkt auf der Pandora nach den Hinweisen im Wiki (http://pandorawiki.org/PND_quickstart). Abschnitt "Command-line (alternate instructions)". Dort ist ein nettes Template verlinkt. Das pnd'en auf dem Windows PC hat nur Probleme gebracht und mir 2 Tage gekostet. Lag wohl an dem Dateisystemdurcheinander mit NTFS+Fat32+Linux, vermixten Groß-Kleinbuchstaben bei Dateinamen und verborkten permissions.
Handheld said:
... solche Infos schaden doch nie ;)
Anleitung: Per Windows und Netzlaufwerk/Freigabe auf Pandora zugreifen:
- Neueste Firmware/Bugfixes installieren
- In Startup den Samba Service aktivieren und Pandora neu starten
- Pandora per Wlan ins gleiche Netz hängen wie den Win-Desktop
- "sudo smbpasswd -a deinbenutzername" in Konsole eingeben um den Benutzer hinzuzufügen *
- "smbpasswd" in die Konsole eingeben um ein passwort zu registrieren falls das noch nicht geschehen ist*
- "sudo mousepad /etc/samba/smb.conf" eingeben. In diese Datei folgende Sektion unter Share Definitions eintragen:
Code:
<i>
</i>[freigabename]
  comment = irgendwas
  path = /media/DEINESDKARTE       (oder anderen Pfad du freigeben willst)
  valid users = deinbenutzername
  public = no
  writable = yes
  printable = no
- Speichern und Pandora neustarten
- Auf dem Win-Desktop: Im Arbeitsplatz Netzlaufwerk verbinden mit \\PandoranameOderIP\freigabename
- Vorher festgelegten Benutzernamen und Passwort eingeben.
(- Alternativ \\Pandoraname in die Adresszeile eingeben, dort sieht man, dass standardmäßig dein Homeverzeichnis auch freigegeben ist)
So, jetzt kann man prima auf der Pandora herumwursteln. Es bietet sich an, die SDKarte zum Arbeiten freizugeben. Den Sambakram muss man nur einmal machen, dann funktionierts immer wieder.

Troubleshooting:
Funktioniert die Verbindung nur unregelmäßig, dann gib auf der Pandora in einer Konsole "ping 192.168.1.1" ein. (Eben den Router oder den DeskopPC dauernd anpingen). Das hält anscheinend die Verbindung aufrecht, jedenfalls bei mir.

* Mit dem meldet man sich vom WindowsPC aus an
 
Hier lernt man auch noch was nebenbei. :D
Ich nehme an, es ist ne verdammt praktische Sache, Teile der Programmentwicklung gleich auf der Pandora machen zu können, sowas kann man mit dem NDS und der PSP sicher nicht so easy. :)
Ach, nette Idee, den Touchscreen zum steuern nutzen zu können, es ist immer gut wenn man Auswahl hat und ich bin nun auch sicher dass das kein cheaten ist.

P.S.: kleines Video vielleicht, um die ganzen Steuerungsmöglichkeiten des Pandora-Ports zu demonstrieren? ;)
 
Fusion_Power said:
Ich nehme an, es ist ne verdammt praktische Sache, Teile der Programmentwicklung gleich auf der Pandora machen zu können

Kommt halt darauf an, ob der 600 MHz Prozessor der Pandora schneller kompiliert, als Dein PC mit dem Crosscompiler oder nicht. Er hat ja selbst geschrieben, dass das Kompilieren auf der Pandora lange dauert und es eher nur für kleinere Änderungen geeignet ist, wo nicht alles neukompiliert werden muss. Kompilierzeiten können schon extrem nerven, wenn man wirklich viele Testläufe macht, um sich an ein Optimum anzunähern, oder einfach mal ausprobieren muss. Dann hat man eine halbe Minute editieren des Codes und fünf Minuten, bis man weiß, ob es funktioniert oder nicht. Da wird man schon deutlich schneller, wenn es nur die halbe Minute plus ein paar Sekunden für den Testlauf sind.
 
Yo, sicher ist der PC schneller. Ich bin mehr davon ausgegangen, dass man auf der Pandora halt direkt seine Ergebnisse testen kann und direkt das richtige System hat dafür. Man muss so sicher nicht ständig die Programme hin und her kopieren, sofern man einiges gleich auf der Pandora lassen kann und vor allem, wenn man unterwegs ist und den Drang verspürt etwas coden zu wollen, dann ist es natürlich auch ganz praktisch, nicht erst einen PC suchen zu müssen oder den dicken Laptop raus zu kramen. (Ich mußte früher bei Grafiken für den GP2X ständig hin und her kopieren, denn der GP2X hatte kein gescheites Malprogramm und der PC nicht das GP2X Display, viele Farben waren anders und Grafiken wirkten auf dem kleinen Screen auch ganz anders, daher hab ich immer einen Weg gewünscht, sowas direkt auf dem kleinen Gerät machen zu können)
Das geht sicher nur bei ein paar Sachen, aber immerhin. Im engl. Forum gibts ja nen thread drüber, wie man allein mit der Pandora entwickeln kann, ohne Cross-Compiler oder extra PC.
Und sowas kann halt nur die Pandora, wenn man sie als "Handheld" betrachtet undn icht als Netbook/PDA/Whatever. :)
 
Fusion_Power said:
Yo, sicher ist der PC schneller. Ich bin mehr davon ausgegangen, dass man auf der Pandora halt direkt seine Ergebnisse testen kann und direkt das richtige System hat dafür. Man muss so sicher nicht ständig die Programme hin und her kopieren, sofern man einiges gleich auf der Pandora lassen kann

Das Rüberkopieren kann Teil des build-Skripts sein. Du hast auf dem PC Deinen Editor, dann kompilierst Du das Programm, es wird auf die Pandora kopiert. In einem anderen Fenster bist Du auf der Pandora eingeloggt, da startest Du das Programm und guckst auf den Pandora-Bildschirm, wo es läuft. Für manche Fälle könntest Du gleich auch noch die Bildausgabe der Pandora auf den PC umleiten, dann erscheint der Output des Programms gleich in einem Fenster auf dem PC-Bildschirm.

und vor allem, wenn man unterwegs ist und den Drang verspürt etwas coden zu wollen

Wenn man das will, muss man natürlich auf der Pandora selbst kompilieren. Dass die das kann, ist aber nicht überraschend, ist sie doch ein ganz normaler Linux-PC.
 
grond said:
... In einem anderen Fenster bist Du auf der Pandora eingeloggt, da startest Du das Programm und guckst auf den Pandora-Bildschirm, wo es läuft. Für manche Fälle könntest Du gleich auch noch die Bildausgabe der Pandora auf den PC umleiten, dann erscheint der Output des Programms gleich in einem Fenster auf dem PC-Bildschirm. ...
Vielleicht habe ich etwas Fundamentales noch nicht verstanden, aber wenn ich per SSH mit Putty auf die Pandora zugreife und dann etwas starte, erscheint das Programm oder die Ausgabe nicht auf dem Pandorabildschirm sondern auf dem Desktop. Bei laufendem Xserver auf dem Desktop (bei mir XMing) werden dann sogar die graphischen Programme auf meinem Desktop dargestellt.
Wie kann ich z.B. thunar per ssh starten und auf dem Pandorabildschirm erscheinen lassen?
 
Whynodd said:
Vielleicht habe ich etwas Fundamentales noch nicht verstanden, aber wenn ich per SSH mit Putty auf die Pandora zugreife und dann etwas starte, erscheint das Programm oder die Ausgabe nicht auf dem Pandorabildschirm sondern auf dem Desktop. Bei laufendem Xserver auf dem Desktop (bei mir XMing) werden dann sogar die graphischen Programme auf meinem Desktop dargestellt.
Wie kann ich z.B. thunar per ssh starten und auf dem Pandorabildschirm erscheinen lassen?

Öhm, indem Du Dich per ssh auf der Pandora einloggst, dann hast Du eine Shell dort. Wenn Du ein Programm aus der Shell startest, läuft es ja auf der Pandora. Du musst ja nicht unbedingt eine X-Umleitung machen.
 
Back
Top