|
Verfasser |
Nachricht |
Ceikor
Ex-Developer
Beiträge: 581
Gruppe: User
Registriert seit: Dec 2008
Status:
Abwesend
Danke erhalten: 701
|
[TUT] VLF Hallo Welt.
Hier will ich euch ein kurzen einblick geben wie ihr VSH ähnliche Homebrew erstellt mit dem Beispiel "Hallo Welt (Text ausgabe)".
Ich setze für diese TUT grundkenntnisse im C++ für die PSP vorraus, da ich hier nicht erkläre was "include", "return" usw. bedeutet.
Das hier ist die "crt0.c" sie bereitet soweit alles vor was dazu benötigt wird eine VSH oberfläche zu erstellen. Sie sollte auch nicht geändert werden wenn ihr keine zusätzlichen Module laden wollt!
#include <pspsdk.h> #include <pspkernel.h> #include <stdio.h>
#include <vlf.h>
extern int Title(); //hier wird die externe sprungmarke für "vlfGuiInit" deklariert
int start_thread(SceSize args, void *argp) { SceUID mod; char *path = (char *)argp; int last_trail = -1; int i;
if (path) { for (i = 0; path[i]; i++) { if (path[i] == '/') last_trail = i; } }
if (last_trail >= 0) path[last_trail] = 0;
sceIoChdir(path); path[last_trail] = '/';
[align=center]//**Ab hier werden die Module geladen, mehr brauch man am anfang nicht wissen :D**[/align]
mod = sceKernelLoadModule("iop.prx", 0, NULL); mod = sceKernelStartModule(mod, args, argp, NULL, NULL); mod = sceKernelLoadModule("intraFont.prx", 0, NULL); mod = sceKernelStartModule(mod, args, argp, NULL, NULL); mod = sceKernelLoadModule("vlf.prx", 0, NULL); mod = sceKernelStartModule(mod, args, argp, NULL, NULL); vlfGuiInit(-1, Title); return sceKernelExitDeleteThread(0); }
int module_start(SceSize args, void *argp) { SceUID thid = sceKernelCreateThread("start_thread", start_thread, 0x10, 0x4000, 0, NULL); if (thid < 0) return thid;
sceKernelStartThread(thid, args, argp); return 0; }
der 1. wert gibt die Speichergröße an, die wird in KB berechnet zB: 15000 macht dann 15MB. Wenn dort ein Negativer Wert steht ist der
Speicher nicht begrenzt.
der 2. wert gibt an wo er in der main.c anfangen soll.
Das hier ist jetzt die "main.c" hier wird ganz normal euere programm gecodet.
#include <pspsdk.h> #include <pspkernel.h> #include <pspdebug.h> #include <pspctrl.h> #include <psprtc.h> #include <pspgu.h> #include <pspgum.h> #include <stdlib.h> #include <stdio.h> #include <vlf.h>
PSP_MODULE_INFO("Hallo_Welt", 1, 1, 0); //PSP_MODULE_INFO(TITLE, MODE, VERSION, VERSION); // wenn MODE den wert 1 hat bedeutet das es ist der USER-Mode // "kein Kernel zugriff möglich".
PSP_MAIN_THREAD_ATTR(0);
int Exit() // Exit funktion { sceKernelExitGame(); //Gibt an das das Programm verlassen werden soll. return VLF_EV_RET_NOTHING; //es soll nichts weiter geschehen. }
int Title() { // Hier wird das Datum, Hintergrund und die Batterie generiert //<<< vlfGuiSystemSetup(int battery, int clock, int notuserwp);>>>>> //wenn int notuserwp den wert 0 hat wird der aktuelle hintergrund dargestellt. vlfGuiSystemSetup(1, 1, 1);
//Hier wird eine Titelleiste generiert. vlfGuiSetTitleBar(vlfGuiAddText( 0, 0 ,"Hallo Welt Titel"), 0, 1, 0);
//Text ausgabe auf dem Bildschirm vlfGuiAddText( 100, 110 ,"Hallo Welt!\n\nMeine erste VSH ähnliche EBOOT.");
// weißt drauf hin das er zu "Exit" springen soll und die funktion soll erst mit dem drücken des Buttons erfolgen vlfGuiCustomBottomDialog("Exit", NULL, 1, 0, VLF_DEFAULT, Exit); while (1) { vlfGuiDrawFrame(); //Gibt an das der nächste Frame geladen werden soll von der Wave. } return 0; }
Hier sollten eigentlich fast alle befehle bekannt sein.
Hier die "Makefile"
TARGET = Hallo_welt_source OBJS = crt0.o main.o
INCDIR = ../../include CFLAGS = -O2 -G0 -Wall -fshort-wchar -fno-pic -mno-check-zero-division CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti ASFLAGS = $(CFLAGS) -c
LIBDIR = ../../lib LDFLAGS = -mno-crt0 -nostdlib -nodefaultlibs LIBS = -lpsprtc -lvlfgui -lvlfgu -lvlflibc -lpspsystemctrl_user
PSP_FW_VERSION = 150
EXTRA_TARGETS = EBOOT.PBP PSP_EBOOT_TITLE = Hallo Welt PSP_EBOOT_ICON =
BUILD_PRX = 1 PSP_LARGE_MEMORY = 1
PSPSDK=$(shell psp-config --pspsdk-path) include ./build.mak
sollte soweit eigentlich auch alles klar sein.
PS: Wenn Interesse hab kann ich auch gern noch ein leines TUT für ein Menü erstellen.
Die copilierte EBOOT und source daten sind im anhang.
Dieser Beitrag wurde zuletzt bearbeitet: 16.05.2009 17:20 von Ceikor.
|
|
16.05.2009 13:42 |
|
Folgende User bedanken sich: Total_freak (Jan-2-2012), Suicide_Diamond (Sep-1-2011), ~Hook~ (Jun-23-2011), XiaDao (Feb-12-2011), eMKayWe (Jan-29-2011), WinterFrost (Nov-6-2010), -blue7 (Aug-13-2010), sankt_g. (Jul-3-2010), Master_Jens (Feb-22-2010), pspbricker (Nov-1-2009), Raiden1996 (Aug-25-2009) |
|
DasFragezeichen
Halbprofi
Beiträge: 191
Gruppe: User
Registriert seit: Jan 2009
Status:
Offline
Danke erhalten: 13
|
RE: [TUT] VLF Hallo Welt.
Ähm, ne, nix ist klar. Soviel Code, für so wenig Programminahlt? Was machen den die einzelnen Zeilen? Warum kann man einige nicht einfach weglassen? Also ich wäre schon für eine genauere -Erklärung dankbar.
Wenn man auf dem Computer ein "Hallo Welt" ausgeben will, sind das mit Einbindung der diversen Bibliotheken vielleicht drei, vier Zeilen oder so.
|
|
16.05.2009 14:02 |
|
|
|
Ceikor
Ex-Developer
Beiträge: 581
Gruppe: User
Registriert seit: Dec 2008
Status:
Abwesend
Danke erhalten: 701
|
RE: [TUT] VLF Hallo Welt.
Eine PSP ist kein Computer (PC^^). Auf dieser etwas darzustellen und dann noch mit VFL ist nichts mit dem man anfangen sollte. Da schlage ich dir eher vor fang hiermit an, das ist dann auch nur eine stink normale text ausgabe auf der PSP.
Dieser Beitrag wurde zuletzt bearbeitet: 16.05.2009 14:11 von Ceikor.
|
|
16.05.2009 14:10 |
|
Folgende User bedanken sich: |
|
PSP_Joker
King
Beiträge: 2.537
Gruppe: User
Registriert seit: Apr 2009
Status:
Offline
Danke erhalten: 2814
|
RE: [TUT] VLF Hallo Welt.
Das Tutorial ist echt nicht schlecht, aber darin was zu proggen ist echt hart o.O Ich bleib glaub ich doch erstmal bei Lua, 3 Zeichen für Hallo Welt und nicht eine halbe Seite, aber ansonsten Top
Also das Schönste, was wir tun können, ist tanzen.
|
|
16.05.2009 14:16 |
|
|
|
pleet
Experte
Beiträge: 850
Gruppe: User
Registriert seit: May 2008
Status:
Offline
Danke erhalten: 89
|
RE: [TUT] VLF Hallo Welt.
Kinnlade offen.....Gut daß unsere Jugend sowas heut zu Tage schon in der Schule mit auf'm Weg bekommt!! Raff' gar nix... trotzdem...danke!?
|
|
16.05.2009 16:36 |
|
|
|
-blue7
/dev/null/
Beiträge: 1.926
Gruppe: Mod a.D.
Registriert seit: May 2009
Status:
Abwesend
Danke erhalten: 1768
|
RE: [TUT] VLF Hallo Welt.
Hm, mit PSP Programmierung sollte man als C Neuling wohl eher nicht anfangen
[Ex-Moderator] ; [Ubuntu-User] ; [Designer] ; [Coder] ;
running out of bugs`.
___________________________________________
#define TRUE FALSE // Happy debugging suckers
// sometimes I believe gcc ignores all my comments
Dieser Beitrag wurde zuletzt bearbeitet: 16.08.2009 20:16 von -blue7.
|
|
14.08.2009 03:39 |
|
|
|
Tobs!as
Experte
Beiträge: 792
Gruppe: User
Registriert seit: Dec 2009
Status:
Offline
Danke erhalten: 251
|
RE: [TUT] VLF Hallo Welt.
sry, wenn ich das jetzt aufwühle: warum hat der des so komplizert gemacht ??
|
|
22.02.2010 21:06 |
|
|
|
HacKmaN
Ex-Developer
Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 3319
|
RE: [TUT] VLF Hallo Welt.
Wie willste es anders machen?
Er hat alles perfekt erklährt!
|
|
22.02.2010 21:14 |
|
Folgende User bedanken sich: |
|
Tobs!as
Experte
Beiträge: 792
Gruppe: User
Registriert seit: Dec 2009
Status:
Offline
Danke erhalten: 251
|
RE: [TUT] VLF Hallo Welt.
oder verwechsle ich da was? . was is eig vlf
|
|
22.02.2010 21:22 |
|
|
|
Dan-PSP
Halbprofi
Beiträge: 199
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 15
|
RE: [TUT] VLF Hallo Welt.
in vlf ist, wenn man zb ein menü will, das aussieht wie zb die Updater Programme von sony(zb Go!Store von suleman hat VLF) .
Model: PSP fat
Datacode: 5c
Firmware: 5.50 Gen d2
|
|
22.02.2010 21:27 |
|
|
|
HellcatX
Banned
Beiträge: 108
Gruppe: Banned
Registriert seit: May 2010
Status:
Abwesend
Danke erhalten: 38
|
RE: [TUT] VLF Hallo Welt.
Ich hab ne Frage: Also bei mir (ich verwende PSPSDK v0.9.2) Kommt so ein komischer Error raus:
Was isch mein Fehler?? Ich benutze auch den Source den du als DW gegeben hast funzt immer noch nicht!!
Hab ich etwas falsch gemacht??
Mein YouTube Channel:
http://www.youtube.com/user/HellcatX04/
My PSP's:
PSP 1004
DateCode: 6C
MoBo: TA-082
Firmware: 6.31 + 5.50 F13 switch
2 GB MemoryCard
32 GB MemoryCard
1 GB MMS (5.50 F13 + TM)
PSP 2004
Datecode: 8B
MoBo: TA-088 v1
5.50 F13
Pandora Batterie for Slim
|
|
03.07.2010 20:31 |
|
|
|
HacKmaN
Ex-Developer
Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 3319
|
RE: [TUT] VLF Hallo Welt.
Ich hab ne Frage: Also bei mir (ich verwende PSPSDK v0.9.2) Kommt so ein komischer Error raus:
Was isch mein Fehler?? Ich benutze auch den Source den du als DW gegeben hast funzt immer noch nicht!!
Hab ich etwas falsch gemacht??
Die systemctrl_user Libary fehlt, google danach
|
|
03.07.2010 21:08 |
|
|
|
pspkilled
Legende
Beiträge: 1.630
Gruppe: User
Registriert seit: Jan 2010
Status:
Offline
Danke erhalten: 351
|
RE: [TUT] VLF Hallo Welt.
ja schönes tut. ich hab es übrigens auf eigene faust gelernt und hab mich direkt der lieben psp gewidmet, in der abendschule hab ich grundkenntnisse gelernt und dann an der psp alles getestet und viel im www gelesen. es ist möglich direkt auf der psp anzufangen aber sau schwer.
|
|
03.07.2010 21:31 |
|
|
|
Namenloser
Redakteur a.D.
Beiträge: 2.683
Gruppe: User
Registriert seit: Apr 2009
Status:
Offline
Danke erhalten: 2111
|
RE: [TUT] VLF Hallo Welt.
@HellcatX
Oder einfach Updaten auf PSP SDK 1.0
Da ist die lib schon dabei
|
|
12.07.2010 17:13 |
|
|
|
HellcatX
Banned
Beiträge: 108
Gruppe: Banned
Registriert seit: May 2010
Status:
Abwesend
Danke erhalten: 38
|
RE: [TUT] VLF Hallo Welt.
Ok THX!!!
-- -- -- CFW i come to you -- -- --
MfG
HellcatX
Mein YouTube Channel:
http://www.youtube.com/user/HellcatX04/
My PSP's:
PSP 1004
DateCode: 6C
MoBo: TA-082
Firmware: 6.31 + 5.50 F13 switch
2 GB MemoryCard
32 GB MemoryCard
1 GB MMS (5.50 F13 + TM)
PSP 2004
Datecode: 8B
MoBo: TA-088 v1
5.50 F13
Pandora Batterie for Slim
|
|
20.07.2010 19:02 |
|
|
|
|