zLauncher 0.1 - noch einer ! ;-)


kilroy

Member
Joined
Nov 6, 2005
Messages
341
Also, nachdem meine multiLib (Windows und GPE Executables von einem Source erzeugen) weiter gereift ist, habe ich mal mit meiner ersten Anwendung begonnen: Ein Launcher (oh ja...)

Der Launcher benutzt ein von mir erfundenes Skin Format, das nicht nur Aussehen, sondern auch die Navigation diktiert (und später auch minimal scripting erlaubt). Dieses Format ist so flexibel gehalten, das man auch ohne Probleme das GPH Skin laden kann (und das tut er auch in dieser Version)...

D.h. nach dem Starten sieht das Ding fast genauso aus wie das von GPH, nur das oben noch ein "Quit" zusätzlich steht (und es ein bissel flackert, das korrigiere ich noch)...

Also, was kann dieses Ding mehr als das originale GP2xMenu?
- fully skinnable
- Anständige Navigation (hoch/runter :) )
- Fortgeschrittener Navigator für Dateien, z.B. kann bei Klicken auf ein ROM direkt das dazugehörige Programm gestartet werden
- Mehrere Selektoren pro Seite: z.B. links Auswahl Frodo/FrodoPC und rechts die ROMS (siehe Menu "Explorer" was ich missbraucht habe)

Was wird noch eingebaut:
- History sowie Most Recently Used/Played
- dynamisches hinzufügen von Erweiterungen und direkt Starts von z.B. ROM->Emulator - so kann jeder Emulator sein eigenes StartSkin für sich mitbringen
- MP3 Player mit Playlists - und dann mit Option, diese MP3s weiterzuspielen, wenn man ein Spiel startet (!)
- Konfiguration der Taktfrequenz für Launcher und für jedes Spiel einstellen
- Neuer Image Viewer
- USB dauerhaft an/ausschalten
- SD remount Option (SD Karten wechseln)
- ...

Was im Moment klappt:
- Video,Music,Photo,Ebook startet die alten Programme
- Game,Utility ist mein neuer Selektor
- Explorer ist ein Test
- Setting ist ein Beispiel, wie man Jumps in den Menus realisert (test.skin ansehen)

Die Windows Version lässt sich mit Numlock (die 5 ist Stick Press), A, B, X, Y, S, Enter, LSHIFT, RSHIFT, NUM+, NUM- bedienen, ESC ist quit - Sie stürzt natürlich bei einem Klick auf eine GP Datei ab - aber das sollte ja klar sein :)
Starten muss man die Windows Version in dem zLauncher Verzeichnis...
Mann kann und soll sie benutzen, um die Skins zu testen...

Wie benutzt man ihn auf dem GP2x? Entpacken des ZIPs in den / Ordner der SD Karte (klappt nirgendwo anders!), dann starten von zLauncher.gpu (unter Utility).

Hier bekommt Ihr ihn: http://rz-home.de/~kilroy/zLauncher-0.1.zip

Freue mich über Anregungen, Ideen, konstruktive Kritik und mehr :)
 
Will noch ein bisschen das Skin Format erklären:
Code:
<i>
</i>STARTPAGE=0

PAGE=0
    BACKGROUND=image,"imgmain/body.png"

    BUTTON=0
		TYPE=image,30,50,"imgmain/icon1.png","imgmain/icon1_on.png"
		NAVIGATION=-1,1,8,4
		ACTION=exec,,/mnt/sd/zLauncher/mplayerStarter,
		
    BUTTON=1
		TYPE=image,100,50,"imgmain/icon2.png","imgmain/icon2_on.png"
        NAVIGATION=0,2,-1,5
        ACTION=page,11
...

definiert zwei Knöpfe an den jeweiligen Stellen, einen startet sofort den alten mplayer (ACTION=exec), der andere ruft eine andere Seite auf:
Code:
<i>
</i>PAGE=11
	RETURN=0
	BACKGROUND=image,"imggame/body.png"

	BUTTON=0
		TYPE=selector,30,70,290,220
		ACTION=exec,%p0%,%P0%,
		NAVIGATION=-1,-1
		FILTER=gpe

Auf dieser neuen Seite wird ein Selektor angezeigt, der nur GPE dateien zur auswahl gibt und sie dann in ihrem Pfad (%p0%) startet (%P0%).

Wenn man Roms einbinden will, dann setzt man anstatt %P0% den Emulator ein, hinter das Komma ein %P0% und bei FILTER noch z.B. ROM und das wars...

In Version Zwei wird das ganze dann noch dynamisch gemacht, das heisst wenn er z.B. in dem Verzeichnis Frodo solch eine Skin Datei findet, dann lädt er diese und zeigt direkt einen Rom selektor an mit custom background - ohne das man jeweils sich um die konfiguration kuemmern muesste :)
 
klingt sehr interessant! werd ich auf jedenfall im auge behalten.
dein explorer gefällt mir besonders (die idee), son 2 seiten format.
hier könntest du aber finde ich vom gph design abweichen, vieleicht sone kleine mc version (vieleicht auch mit skins)

alles in allem finde ich die idee die normalen gp2x skins zu behalten sehr gut.


EDIT:
dein script format fürs menu ist auch sehr interessant, so kann man später wenns alternativen zu den einzelnen programmen (movie player, audio player etc) sein liebstes programm einbinden oder ne neue seite mit generell anderen programmen erstellen. sehr sehr cool. wer ihn wohl bald fest auf meinem gp2x installieren ;)
 
Playlist, cool. Genau was ich brauche. ID3 Tags kommen bestimmt auch irgendwann dazu, oder? :wink:
 
SirDzstic said:
Du Sack machst mir konkurrenz! ;)

Find es schade das jetzt alle lunchers bauen und nicht einen guten zusammen :(

Wer viel cooler wenn sich jemmand um xrick kümmern könnte :)

Ich bekomms nicht hin :(

MfG
IceOnly
 
Da hast du Recht. Besser ein sehr guter als viele gute.

Vielleicht tun sich noch welche zusammen.

Und wenn nicht, dann macht halt jeder sein Projekt wie es ihm spass macht.
Ist ja das gute Recht.
 
ihr könnt doch zusammen arbeiten, unify finde ich wär sehr gut um den part für utility und games zu übernehmen und deine gp2x menu mit den neuen features und dem explorer finde ich auch verdammt cool.
müsste halt alles son bischen auf einen nenner bringen.
wär am ende sehr sehr cool
 
SEHR GEIL!

Sobald das alles sauber funktioniert und auf der NAND einfach das gp2xmenu ersetzen kann (und den MP3-Player, etc.), dann schmeissen wir das auf ALLE verkauften gp2x :)
(haben craig und ich gerade beschlossen)

WEITER SO :)
 
Und da fällt mir doch gleich ein bisschen was ein:

- Konfigurierbare Start-Verzeichnisse (so dass z.B. bei der Auswahl von GAMES man in /mnt/sd/games landet, bei EBOOKS in /mnt/sd/ebooks, etc.)

- Icon - Unterstützung!
Es ist momentan fürchterlich, wenn man mehrere Sachen auf der Karte hat, die richtige Startdatei in all dem Verzeichniswust zu finden...
Wenn man da schöne Icons (32*32 Pixel oder 16*16 Pixel) in die .gpe-Dateien integrieren könnte, die dann angezeigt wird, wäre das viiiiel schöner :). Kann man da nicht einfach 4k große Icons oder so am Ende der .gpe-Dateien hängen, oder stört sich das Executable dran? Ansonsten einfach ein .png mit gleichem Namen wie das .gpe

- Die Möglichkeit, Verzeichnisse zu verstecken (kann man ja im Filesystem schön machen), damit man die ganzen Data-Verzeichnisse der Spiele nicht sieht, etc.

- Lass den Launcher mit sowenig MHz wie möglich laufen, das dürfte die Batteriezeit stark erhöhen :)

- MP3-Player im Background: Dann kann man eBooks lesen, während der Player weiter die Musik dudelt.

Soo, das ist mir mal so alles eingefallen.

Werde das ganze auch gerne bei Bedarf finanziell unterstützen :)
 
Wenn man da schöne Icons (32*32 Pixel oder 16*16 Pixel) in die .gpe-Dateien integrieren könnte, die dann angezeigt wird, wäre das viiiiel schöner . Kann man da nicht einfach 4k große Icons oder so am Ende der .gpe-Dateien hängen, oder stört sich das Executable dran?

I was wondering about this too, so I did a little test
Code:
<i>
</i>bash-2.05a# pwd
/bin
bash-2.05a# cd /mnt/nand/SysUtils/
bash-2.05a# ls
NAND_unlock.gpu      bash.gpu             log.txt
SD_mount_umount.gpu  g_serial.o           screen
bash-2.05a# ./screen
Screen version 4.00.02 (FAU) 5-Dec-03

Copyright (c) 1993-2002 Juergen Weigert, Michael Schroeder
Copyright (c) 1987 Oliver Laumann
<snip>
Send bugreports, fixes, enhancements, t-shirts, money, beer & pizza to
screen@uni-erlangen.de


                        [Press Space or Return to end.]
sh-2.05a# cd /mnt/sd
sh-2.05a# cp sterm.gpu testing.gpu
sh-2.05a# cp ab/images/youLose.bmp .
sh-2.05a# cat testing.gpu youLose.bmp > testimg.gpu
sh-2.05a# ./testimg.gpu
SDL_SYS_JoystickInit
SDL_SYS_JoystickInit
VK_LEFT
EXIT
sh-2.05a#

(First SDL_SYS_JoystickInit is from the sterm-with-img-slapped-on, not shown is that I go around doing things with it, then I press start, which goes back to the built-in launcer -> second init, VK_LEFT (to see that it also works) then pressed ctrl-C -> EXIT, back at prompt.)

So, it looks like this will work. Perhaps we should agree on a format, something like <executablecode><icon-data><4 bytes to indicate length of icon-data per icon><1 byte number of icons in file><3 bytes 'magic' number>.
(of course, even if the magic number is there and seems to be ok, the application looking for the icons should expect that sometimes there WON'T be an icon there after all.)
Maybe there is already a standard for this kind of things that we can use?
- MP3-Player im Background: Dann kann man eBooks lesen, während der Player weiter die Musik dudelt.

seems like something the mp3-player should be able to do, e.g. a menu entry that makes it stop output to the screen, fork and exec the launcher. The launcher would need some sort of way to 'reactivate' programs running in the background (basically an interface to 'kill' so you can send signals to running apps, either to stop them outright, or tell them to come back to life), again this should be standardized so most programs can benefit.

I suppose 'we' should replace all the players with something else eventually, to support improvements by the community, adding more supported formats, more convenience functions etc.
- Die Möglichkeit, Verzeichnisse zu verstecken (kann man ja im Filesystem schön machen), damit man die ganzen Data-Verzeichnisse der Spiele nicht sieht, etc.

Different filesystems have different ways to hide things. I guess that at the least it should 'support' the unix way, i.e. be able to toggle display of dot-files.

- Lass den Launcher mit sowenig MHz wie möglich laufen, das dürfte die Batteriezeit stark erhöhen

There ought to be little commandline utillities to switch of the screen, under/overclock, lcd-timings, volume etc. so they can easily be run from scripts, or the code 'reused' in projects such as this.

Also I'd like to see this and unify to be integrated; I think it would make for a better end product.. Maybe the two authors could PM eachother, see if something is desirable, and set up something like an sourceforge account to work on this collaboratively with the community?

P.

I wish I had the time to spend to 'show you the code' instead of just making these stupid suggestions (in English no less). I'll try to make some time...
 
I think it's not at all a good idea to mess around with binaries, even if they
keep working.
What if other people have the same idea, and put other things into the
binaries, that don't belong there?
Some day 923792 applications put all their stuff into the binary, maybe
one or two still recognize theirs, and one of them killed it off, because they
didn't think of the others, and the binary doesn't work anymore at all.

Having icons displayed beside the file is ok, fuckin' with the binaries is not.
 
@alle: danke :)

@SirDzstic: Sorry - wäre an einer Zusammenarbeit interessiert ;-)

@Experience: Die sollten eigentlich sogar vor den Playlists klappen, mal sehen

@IceOnly: xrick?

@ED: Whee - das wäre cool. Dafür muss ich aber noch ein paar Dinger einbauen :)

@ED#2:
- Startverzeichnisse: Schon so gut wie gemacht
- Icons haben den Nachteil, das das Laden lange dauert wenn viele Icons in einem Verzeichnis sind. Hab' da aber schon eine Idee :)
- Das mit dem Hidden Directory kommt anders - besser :)
- Launcher Speed: Auch schon so gut wie gemacht
- MP3 Player: Oder Bilder gucken ;-)

Geld: Will ich und brauche ich nicht. Lieber wäre mir Dev Unterstützung und Mitarbeiter :) Ich mache das schliesslich zum Spass ;-)

@luteijn: Yes, I agree we should write a library to support speed switching, display on/off, ... (btw, a screensaver [display off] will be integrated, too)
Image handling will be dealt with a windows/linux program that creates an image cache like Windows does later on :)
 
Zusammenarbeit ist nicht schlecht.
Was ist denn von unify für dich verwertbar, was noch nicht
implementiert ist? Unsere Ansätze gehen ja etwas auseinander,
so wie ich deine Beschreibung verstanden habe.
Mach mal nen Vorschlag, ich bin da offen :>
 
Although I empiracally showed ED's idea might work, actually on second thought (or maybe on first tought ;) )I agree with SirDzstic that it's probably a bad idea to tag icons to the end of executables, not just for the reason given by him, but also, it's not extendable to other types of files. adding this wouldn't harm the binary executable (as long as you don't have more meta data appended like that), but what about a text file, or any other file that's less organized than a binary executable?


Of course this must have come up before, so I did some google-searches, these results might give some ideas..
http://www.cs.ucdavis.edu/~haungs/paper/node14.html#sections
http://www.kerneltraffic.org/wine/wn20040514_222.html#4 (mainly at the end of the chapter)
http://mail.gnome.org/archives/gnome-list/1998-April/msg00578.html

(all I have time for at the moment)
P.
 
funkyferdy said:
Geld: Will ich und brauche ich nicht. Lieber wäre mir Dev Unterstützung und Mitarbeiter Smile Ich mache das schliesslich zum Spass Wink

Ich hab da so eine Skin-Idee die ich gerne umsetzen würde. Wirds ein Beispiel-Skin geben oder ein how-to? Dann bin ich dabei.

skins sind erstmal wie die gph skins, aber man kann jetzt und später noch mehr modifzieren, wie schriftart oder position der buttons und so.
 
@funkyferdy: Ich werde noch ein Beispiel skin machen, nachdem die Skin Funktionalität noch ein paar addons bekommen hat :)
 
Back
Top