GP32 It Does Not Compile


GiG

The mighty penguin cat
Joined
Jun 8, 2003
Messages
326
Age
45
Location
Venice - ITALY
Website
www.webalice.it
Hi,
I am trying to compile GPSpout: it uses MMSDK (version 0.85 if I am not wrong).

I have installed the latest devkit + the latest MMSDK (the step by step tutorial in MrMirko's page is very clear), and the examples compile correctly, so I shouldn't have problems with paths.

My directory structure is

C:\gp32_MrMirko\gp32_SDK for the necessary stuff (as the tutorial says)

and

C:\GPSpout for the GPSpout source code


When I compile I obtain this:

arm-elf-gcc -c -I../gp32_MrMirko/gp32_SDK/include -I. -Wall -mcpu=arm9 -O2 -g -o
sys_gp32.o sys_gp32.c
sys_gp32.c: In function `pceFileWriteSct':
sys_gp32.c:265: warning: passing arg 1 of `smc_fwrite' discards qualifiers from
pointer target type
sys_gp32.c: In function `initGP32':
sys_gp32.c:285: warning: large integer implicitly truncated to unsigned type
sys_gp32.c:286: warning: large integer implicitly truncated to unsigned type
sys_gp32.c:287: warning: large integer implicitly truncated to unsigned type
sys_gp32.c: In function `main':
sys_gp32.c:315: warning: implicit declaration of function `pceAppInit'
sys_gp32.c:330: warning: implicit declaration of function `pceAppProc'
sys_gp32.c:357: warning: implicit declaration of function `pceAppExit'
sys_gp32.c: In function `pceFontPrintf':
sys_gp32.c:245: warning: control reaches end of non-void function
sys_gp32.c: In function `main':
sys_gp32.c:359: warning: control reaches end of non-void function
arm-elf-gcc -c -I../gp32_MrMirko/gp32_SDK/include -I. -Wall -mcpu=arm9 -O2 -g -o
spout.o spout.c
spout.c: In function `pceAppInit':
spout.c:109: warning: implicit declaration of function `gp32GetTicks'
spout.c:87: warning: statement with no effect
spout.c:107: warning: statement with no effect
spout.c: In function `pceAppExit':
spout.c:750: warning: statement with no effect
arm-elf-gcc -L../gp32_MrMirko/gp32_SDK/lib -Wall -specs=gp32.specs -o HSpout.elf
sys_gp32.o spout.o -L../gp32_MrMirko/gp32_SDK/lib -lmirkoSDK
arm-elf-gcc: gp32.specs: No such file or directory
make: *** [HSpout.elf] Error 1



First of all, I can't find gp32.specs anywhere.

The paths in the makefile are:

WARNINGS = -Wall
INCLUDES = -I../gp32_MrMirko/gp32_SDK/include -I.
#INCLUDES = -I/gp32_MrMirko/gp32_SDK/lib.src/include -I.
LIBPATH = -L../gp32_MrMirko/gp32_SDK/lib
LIBS = -L../gp32_MrMirko/gp32_SDK/lib -lmirkoSDK
#LIBS = -lmirkoSDK -lm

OBJS = sys_gp32.o \
spout.o

#-------------------------------------------------------------------------------

CFLAGS = $(INCLUDES) ${WARNINGS} -mcpu=arm9 -O2 -g
LFLAGS = ${LIBPATH} ${WARNINGS} -specs=gp32.specs
CPPFLAGS = ${CFLAGS}

CROSS = arm-elf-
CC = $(CROSS)gcc
CXX = $(CROSS)g++
AS = $(CROSS)gcc -c
CPP = $(CROSS)gcc -E -P
LD = $(CROSS)gcc
OBJCOPY = $(CROSS)objcopy


Any suggestion? Thanks
 
GiG posted on Sep 29 2005 at 08:45 PM said:
Hi,
I am trying to compile GPSpout: it uses MMSDK (version 0.85 if I am not wrong).

I have installed the latest devkit + the latest MMSDK (the step by step tutorial in MrMirko's page is very clear), and the examples compile correctly, so I shouldn't have problems with paths.

My directory structure is

C:\gp32_MrMirko\gp32_SDK for the necessary stuff (as the tutorial says)

and

C:\GPSpout for the GPSpout source code


When I compile I obtain this:

arm-elf-gcc -c -I../gp32_MrMirko/gp32_SDK/include -I. -Wall -mcpu=arm9 -O2 -g -o
sys_gp32.o sys_gp32.c
sys_gp32.c: In function `pceFileWriteSct':
sys_gp32.c:265: warning: passing arg 1 of `smc_fwrite' discards qualifiers from
pointer target type
sys_gp32.c: In function `initGP32':
sys_gp32.c:285: warning: large integer implicitly truncated to unsigned type
sys_gp32.c:286: warning: large integer implicitly truncated to unsigned type
sys_gp32.c:287: warning: large integer implicitly truncated to unsigned type
sys_gp32.c: In function `main':
sys_gp32.c:315: warning: implicit declaration of function `pceAppInit'
sys_gp32.c:330: warning: implicit declaration of function `pceAppProc'
sys_gp32.c:357: warning: implicit declaration of function `pceAppExit'
sys_gp32.c: In function `pceFontPrintf':
sys_gp32.c:245: warning: control reaches end of non-void function
sys_gp32.c: In function `main':
sys_gp32.c:359: warning: control reaches end of non-void function
arm-elf-gcc -c -I../gp32_MrMirko/gp32_SDK/include -I. -Wall -mcpu=arm9 -O2 -g -o
spout.o spout.c
spout.c: In function `pceAppInit':
spout.c:109: warning: implicit declaration of function `gp32GetTicks'
spout.c:87: warning: statement with no effect
spout.c:107: warning: statement with no effect
spout.c: In function `pceAppExit':
spout.c:750: warning: statement with no effect
arm-elf-gcc -L../gp32_MrMirko/gp32_SDK/lib -Wall -specs=gp32.specs -o HSpout.elf
sys_gp32.o spout.o -L../gp32_MrMirko/gp32_SDK/lib -lmirkoSDK
arm-elf-gcc: gp32.specs: No such file or directory
make: *** [HSpout.elf] Error 1



First of all, I can't find gp32.specs anywhere.

The paths in the makefile are:

WARNINGS = -Wall
INCLUDES = -I../gp32_MrMirko/gp32_SDK/include -I.
#INCLUDES = -I/gp32_MrMirko/gp32_SDK/lib.src/include -I.
LIBPATH = -L../gp32_MrMirko/gp32_SDK/lib
LIBS = -L../gp32_MrMirko/gp32_SDK/lib -lmirkoSDK
#LIBS = -lmirkoSDK -lm

OBJS = sys_gp32.o \
spout.o

#-------------------------------------------------------------------------------

CFLAGS = $(INCLUDES) ${WARNINGS} -mcpu=arm9 -O2 -g
LFLAGS = ${LIBPATH} ${WARNINGS} -specs=gp32.specs
CPPFLAGS = ${CFLAGS}

CROSS = arm-elf-
CC = $(CROSS)gcc
CXX = $(CROSS)g++
AS = $(CROSS)gcc -c
CPP = $(CROSS)gcc -E -P
LD = $(CROSS)gcc
OBJCOPY = $(CROSS)objcopy


Any suggestion? Thanks

This uses devkitARM, see http://www.devkitpro.org
 
Last edited by a moderator:
gp32 wasn't build with devkitarm, but with a self compiled gcc in cygwin.

should work the same on devkitarm though.

afaik the gp32.specs should come with mrmirkos sdk / devkitarm anyway.

or did i use the original sdk?

honestly... i don't know. spout was done a long time ago.


however: it seems like that gpspout only doesn't compile because of the missing gp32.specs.

other than that i can't find a problem. dunno where that got from etc.
 
GiG posted on Sep 30 2005 at 10:43 AM said:
WinterMute posted on Sep 30 2005 at 09:36 AM said:
This uses devkitARM at see http://www.devkitpro.org

Ah! :huh:
In the Setting Up section I can't see the images, what's the problem?

Have you got something installed that hides the referrer? The site has hotlink protection enabled.
 
Last edited by a moderator:
I have a working environment now, but there are a few doubts yet:

- compiling MrMirko's examples everything is ok

- compiling GPSpout I receive lots of warning

arm-elf-gcc -c -Ic:/devkitPro/libmirko/include -I. -Wall -mcpu=arm9 -O2 -g -o sy
s_gp32.o sys_gp32.c
sys_gp32.c:172: warning: pointer targets in initialization differ in signedness
sys_gp32.c: In function 'pceFontSetType':
sys_gp32.c:178: warning: pointer targets in initialization differ in signedness
sys_gp32.c:178: warning: pointer targets in initialization differ in signedness
sys_gp32.c:178: warning: pointer targets in initialization differ in signedness
sys_gp32.c: In function 'pceFontPrintf':
sys_gp32.c:218: warning: pointer targets in assignment differ in signedness
sys_gp32.c:227: warning: pointer targets in assignment differ in signedness
sys_gp32.c: In function 'pceFileWriteSct':
sys_gp32.c:265: warning: passing argument 1 of 'smc_fwrite' discards qualifiers
from pointer target type
sys_gp32.c: In function 'initGP32':
sys_gp32.c:285: warning: large integer implicitly truncated to unsigned type
sys_gp32.c:286: warning: large integer implicitly truncated to unsigned type
sys_gp32.c:287: warning: large integer implicitly truncated to unsigned type
sys_gp32.c: In function 'main':
sys_gp32.c:315: warning: implicit declaration of function 'pceAppInit'
sys_gp32.c:330: warning: implicit declaration of function 'pceAppProc'
sys_gp32.c:357: warning: implicit declaration of function 'pceAppExit'
sys_gp32.c: In function 'pceFontPrintf':
sys_gp32.c:245: warning: control reaches end of non-void function
sys_gp32.c: In function 'main':
sys_gp32.c:359: warning: control reaches end of non-void function
arm-elf-gcc -c -Ic:/devkitPro/libmirko/include -I. -Wall -mcpu=arm9 -O2 -g -o sp
out.o spout.c
spout.c: In function 'pceAppInit':
spout.c:87: warning: statement with no effect
spout.c:107: warning: statement with no effect
spout.c:109: warning: implicit declaration of function 'gp32GetTicks'
spout.c: In function 'pceAppExit':
spout.c:750: warning: statement with no effect
arm-elf-gcc -Lc:/devkitPro/libmirko/lib -Wall -specs=gp32.specs -o gpSpout.el
f sys_gp32.o spout.o -lmirkoSDK -lm
arm-elf-objcopy -O binary gpSpout.elf gpSpout.bin
b2fxec -t "gpSpout 1.1" -a "Florian Hufsky" -b "icon.bmp" gpSpout.bin gpSpout.fx
e

b2fxeC v0.6a-pre2 - © 2002-4 Jouni 'Mr.Spiv' Korhonen

Crunched 50.8% - total 57136 bytes


- the fxe works, but it is for BLU+, and I have a BLU: maybe a default option of the new MMSDK?

The makefile is

PROG = gpSpout
AUTHOR = "Florian Hufsky"
PROGNAME = "gpSpout 1.1"
ICON = "icon.bmp"

WARNINGS = -Wall

INCLUDES = -Ic:/devkitPro/libmirko/include -I.
LIBPATH = -Lc:/devkitPro/libmirko/lib

#INCLUDES = -I/DEVKITPRO/libmirko/include -I.
#LIBPATH = -L/DEVKITPRO/libmirko/lib
LIBS = -lmirkoSDK -lm

OBJS = sys_gp32.o \
spout.o

#-------------------------------------------------------------------------------
#todo: switch to march
CFLAGS = $(INCLUDES) ${WARNINGS} -mcpu=arm9 -O2 -g
LFLAGS = ${LIBPATH} ${WARNINGS} -specs=gp32.specs
CPPFLAGS = ${CFLAGS}

CROSS = arm-elf-
CC = $(CROSS)gcc
CXX = $(CROSS)g++
AS = $(CROSS)gcc -c
CPP = $(CROSS)gcc -E -P
LD = $(CROSS)gcc
OBJCOPY = $(CROSS)objcopy

#-------------------------------------------------------------------------------

.PHONY : all clean

all: $(PROG).fxe

$(PROG).fxe: $(PROG).bin
b2fxec -t ${PROGNAME} -a ${AUTHOR} -b ${ICON} $< $@

$(PROG).bin: $(PROG).elf
$(OBJCOPY) -O binary $< $@

$(PROG).elf: $(OBJS)
$(LD) $(LFLAGS) -o $(PROG).elf $(OBJS) ${LIBS}

%.o: %.bin
$(OBJCOPY) -I binary -O elf32-little $< $@

%.o: %.c
$(CC) -c $(CFLAGS) -o $@ $<

%.o: %.cpp
$(CXX) -c $(CFLAGS) -o $@ $<

%.o: %.S
$(CPP) "-DIN_ASM" $(CPPFLAGS) $< > temp.s
$(CC) -c $(CFLAGS) -o $@ temp.s
-rm temp.s

%.o: %.s
$(CC) -c $(CFLAGS) -o $@ $<

clean:
rm -rf $(OBJS) $(PROG).elf $(PROG).bin *.map *~



...but I think it is correct.
So, the doubts now are: the warnings and the BLU+ mode.




WinterMute posted on Oct 1 2005 at 11:22 AM said:
GiG posted on Sep 30 2005 at 10:43 AM said:
WinterMute posted on Sep 30 2005 at 09:36 AM said:
This uses devkitARM at see http://www.devkitpro.org

Ah! :huh:
In the Setting Up section I can't see the images, what's the problem?

Have you got something installed that hides the referrer? The site has hotlink protection enabled.

I have a pop-up blocker only (and FW, AV, but they shouldn't block such things).
 
Last edited by a moderator:
warnings: my sloppy programming style combined with the sloppy programming of the sdl spout port combined with being relatively new to gp32 development at the time of writing spout.

blu+/whatever: mrmirkos latest sdk shoudl autodetect your blu. the place to ask for this is the mr sdk thread (link on mrmirko sdk site)
 
no_skill posted on Oct 1 2005 at 04:55 PM said:
blu+/whatever: mrmirkos latest sdk shoudl autodetect your blu. the place to ask for this is the mr sdk thread (link on mrmirko sdk site)

Mr. Mirko's routine can't detect all units. Some blu are seen as blu+
To workaround, press left shoulder when game starts to force blu mode or the right one to force blu+
 
Last edited by a moderator:
M-.-n posted on Oct 4 2005 at 02:01 PM said:
no_skill posted on Oct 1 2005 at 04:55 PM said:
blu+/whatever: mrmirkos latest sdk shoudl autodetect your blu. the place to ask for this is the mr sdk thread (link on mrmirko sdk site)

Mr. Mirko's routine can't detect all units. Some blu are seen as blu+
To workaround, press left shoulder when game starts to force blu mode or the right one to force blu+

Thanks M-.-n

Yes, I remembered something like that, and already tried it (and it works), but..... I should see how to select the video mode from inside the code. I'll do this as soon as I will have a few spare time. For Tanda we used our own routines, I am now exploring MrMirko's SDK :)
 
Last edited by a moderator:
Back
Top