KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: [PSP C] Oslib installieren
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute,

ich habe folgendes Problem:

Ich habe auf der Seite von PSP-Hilfe ein Tutorial gefunden (Link) mit dem man mit Hilfe der Oslib kleine 2D spiele für die PSP in C schreiben kann. Allerdings ist dort nicht erläutet wie man sie installiert.

Die Entwicklungsumgebung habe ich ganz normal nach diesem Tut eingerichtet:
Toolchain Tutorial

Wie ich allerdings jetzt die Oslib installiere habe ich nicht ganz verstanden, vielleicht kann mir einer von euch das ja mal erklären.

PS: Sowohl readme.txt als auch dieverse andere Tuts haben mir nicht weitergeholfen.

Schaschlix
Lad dir einfach MinPSPw herunter und installier es. Da ist die OSLib soweit ich weiß schon integriert.
Oslib ist bei dem PSP-SDK integriert Smile

Aber nimm am besten diesen SDK: http://sourceforge.net/projects/minpspw/files/SDK %2B devpak/pspsdk 0.10.0/pspsdk-setup-0.10.0.exe/download

Deinstalliere davor den anderen!
Muss ich danach noch irgendetwas installieren, um meine geschriebenen Programme kompilieren zu können?

Schaschlix :
Muss ich danach noch irgendetwas installieren, um meine geschriebenen Programme kompilieren zu können?


Nein dein Toolchain aus dem Tutorial kannst du eigentlich auch wieder runter schmeißen. Mit MinPSPw hast du direkt alles was du brauchst.

Schau mal hier.

Wenn ich jetzt aber diesen Code kompilieren will:

Code:
#include <oslib/oslib.h>
#include "spielfigur.h"
#include "hintergrund.h"
PSP_MODULE_INFO("Tutorial", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
OSL_IMAGE *spielfigurbild, *hintergrundbild;
int main()
{
        oslInit(0);
        oslInitGfx(OSL_PF_8888, 1);
        oslSetTransparentColor(RGB(255,0,255));
        OSL_VIRTUALFILENAME rambilder[] =
        {
                {"ram:/spielfigur.png", (void*)spielfigur, size_spielfigur, &VF_MEMORY},
                {"ram:/hintergrund.png", (void*)hintergrund, size_hintergrund, &VF_MEMORY}
        };
        oslAddVirtualFileList(rambilder, oslNumberof(rambilder));
        spielfigurbild = oslLoadImageFile("ram:/spielfigur.png", OSL_IN_RAM | OSL_SWIZZLED, OSL_PF_5551);
        hintergrundbild = oslLoadImageFile("ram:/hintergrund.png", OSL_IN_RAM | OSL_SWIZZLED, OSL_PF_5551);
        int speed = 0;
        int bildteil = 0;
        int letzterichtung = 0;
        int positionx = 0;
        int positiony = 156;
        while (!osl_quit)
        {
                oslStartDrawing();
                oslReadKeys();
                if ((osl_keys->held.right) || (osl_keys->held.left))
                {
                        speed++;
                        if (speed == 10)
                        {
                                speed = 0;
                                bildteil ++;
                                if (bildteil > 2) bildteil = 0;
                                if (osl_keys->held.right)
                                {
                                        oslSetImageTileSize(spielfigurbild, (bildteil*72), 0, 72, 69);
                                        letzterichtung = 0;
                                }
                                if (osl_keys->held.left)
                                {
                                        oslSetImageTileSize(spielfigurbild, (bildteil*72), 69, 72, 69);
                                        letzterichtung = 69;
                                }    
                        }
                        if ((osl_keys->held.right) && (positionx < 408))  positionx +=1;
                        if ((osl_keys->held.left) && (positionx > 0))  positionx -=1;
                }
                if ((!osl_keys->held.right) && (!osl_keys->held.left)) oslSetImageTileSize(spielfigurbild, 69, letzterichtung, 72, 69);
                oslDrawImage(hintergrundbild);
                oslDrawImageXY(spielfigurbild, positionx, positiony);
                oslEndDrawing();
                oslSyncFrame();
        }
        oslDisableTransparentColor();
        oslEndGfx();
        oslQuit();
        return 0;
}


Mit dieser Makefile:

Code:
TARGET = tutorial
OBJS = main.o  
INCDIR =
CFLAGS = -G4 -Wall -O2 -G0
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
LIBDIR =
LDFLAGS =
STDLIBS= -losl -lpng -lz \
  -lpspsdk -lpspctrl -lpspumd -lpsprtc -lpsppower -lpspgu -lpspaudiolib -lpspaudio -lm
LIBS=$(STDLIBS)$(YOURLIBS)
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = tutorial
PSPSDK=$(shell psp-config –pspsdk-path)
include $(PSPSDK)/lib/build.mak


Bekomme ich diesen Fehler:


Wo ist das Problem?
Beim kompilieren von den sdk samples klappt alles wunderbar.

Schaschlix :
Bekomme ich diesen Fehler:


Wo ist das Problem?
Beim kompilieren von den sdk samples klappt alles wunderbar.


Der findet den Pfad zur build.mak nicht.
Ich glaub da fehlt ein -

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

Jetzt bekomm ich diesen Fehler:



PS: Sorry wenn ich nerve...
Genau das habe ich ja gemacht.

1. Ich öffne die start.bat
2. Ich gehe mit cd pspsdk/... in der Projektordner
3. Ich gebe make ein
4. Ich bekomme den obigen Fehler

Kann es viellecht sein das ich noch zusätzlich libs installieren muss. Das hatte ich schon einmal aber ich weiß nicht mehr wie ichs gemacht hab.
Oder müssen noch mehr Dateien außer der main.c , Makefile , spielfigur.h , hintergrund.h in dem Projektordner sein?
Meine start.bat:

Code:
set path=%path%;c:\pspsdk\bin
set PSPSDK=C:\pspsdk\psp\sdk
cmd


Und installiert habe ich es unter C:/pspsdk
Das hab ich aber auch schon in der start.bat so geändert.

Edit: Doppelpost??

Hi,

es fehlen Libraries in deinem makefile bei "STDLIBS=".

Einmal die für JPEG und einmal die in der die funktionen "sceHprm*" drin sind (welche das ist weiß ich aber nicht)

anmabagima :
und einmal die in der die funktionen "sceHprm*" drin sind (welche das ist weiß ich aber nicht)


lpsphprm, IIRC

Und wie kann ich das Problem lösen?
Es scheint wohl ein Fehler in deiner MakeFile zu sein, poste diese dann kann eine korrigierte Version gepostet werden.
Das hier ist meine Makefile:

Code:
TARGET = tutorial
OBJS = main.o  
INCDIR =
CFLAGS = -G4 -Wall -O2 -G0
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
LIBDIR =
LDFLAGS =
STDLIBS= -losl -lpng -lz \
  -lpspsdk -lpspctrl -lpspumd -lpsprtc -lpsppower -lpspgu -lpspaudiolib -lpspaudio -lm
LIBS=$(STDLIBS)$(YOURLIBS)
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = tutorial
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

Seiten: 1 2
Referenz-URLs