GP32 It Does Not Compile


GiG

The mighty penguin cat
Joined
Jun 8, 2003
Messages
326
Age
48
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