Homebrew Homebrew Development

mocalacace

Well-Known Member
Member
Joined
Sep 28, 2008
Messages
327
Trophies
1
Location
127.0.0.1
XP
960
Country
United States
I'm trying to compile a 3ds homebrew with ctrulib and I am getting the cannot find 3ds_crt0.o error. I have changed in the libctru makefile from -mfloat-abi=softfp to -mfloat-abi=hard and recompiled. Also these are the configuration flags in the makefile I am trying to make

ARCH := -marm

CFLAGS := -g -Wall -O2 -mthumb-interwork -save-temps \
-mcpu=mpcore -mtune=mpcore -fomit-frame-pointer \
-mfpu=vfp -ffast-math -mword-relocations \
$(ARCH)



and here is a screenshot of console output error.
http://imgur.com/3clu5jm

Any help would b appreciated
 

elhobbs

Well-Known Member
Member
Joined
Jul 28, 2008
Messages
1,044
Trophies
1
XP
3,036
Country
United States
I'm trying to compile a 3ds homebrew with ctrulib and I am getting the cannot find 3ds_crt0.o error. I have changed in the libctru makefile from -mfloat-abi=softfp to -mfloat-abi=hard and recompiled. Also these are the configuration flags in the makefile I am trying to make

ARCH := -marm

CFLAGS := -g -Wall -O2 -mthumb-interwork -save-temps \
-mcpu=mpcore -mtune=mpcore -fomit-frame-pointer \
-mfpu=vfp -ffast-math -mword-relocations \
$(ARCH)



and here is a screenshot of console output error.
http://imgur.com/3clu5jm

Any help would b appreciated
Unsure what you mean by recompiled - did you clean the project first? "make clean" is required for this type of change.
Edit: why are you adding float hard to the ctrulib makefile - I initially assumed you meant you added it your makefile? Get a newer version of ctrulib and build and install it. And add the float hard bit to your makefile as well.
 
Last edited by elhobbs,

mocalacace

Well-Known Member
Member
Joined
Sep 28, 2008
Messages
327
Trophies
1
Location
127.0.0.1
XP
960
Country
United States
Unsure what you mean by recompiled - did you clean the project first? "make clean" is required for this type of change.
Edit: why are you adding float hard to the ctrulib makefile - I initially assumed you meant you added it your makefile? Get a newer version of ctrulib and build and install it. And add the float hard bit to your makefile as well.

Well the new version of ctrulib causes other compile errors with the code (redefinitions of old functions, etc), so I'm trying to use the older version from when this was released and the float was set to softfp so I changed it to hard. And yes I "make clean" and then recompile ctrulib, and I have tried adding the -mfloat-abi=hard to the current makefile that I'm trying to compile
 

elhobbs

Well-Known Member
Member
Joined
Jul 28, 2008
Messages
1,044
Trophies
1
XP
3,036
Country
United States
Well the new version of ctrulib causes other compile errors with the code (redefinitions of old functions, etc), so I'm trying to use the older version from when this was released and the float was set to softfp so I changed it to hard. And yes I "make clean" and then recompile ctrulib, and I have tried adding the -mfloat-abi=hard to the current makefile that I'm trying to compile
You are going to have other issues. Crt and newlib among others. Less effort to upgrade your code to work with the new ctrulib.
 

mocalacace

Well-Known Member
Member
Joined
Sep 28, 2008
Messages
327
Trophies
1
Location
127.0.0.1
XP
960
Country
United States
You are going to have other issues. Crt and newlib among others. Less effort to upgrade your code to work with the new ctrulib.

Well I fixed the function redefinition errors I was having with the new ctrulib, there was only like 3, and during compilation I still get the 3ds_crt0.o error.

If you want to try to compile the code I uploaded it here, https://www.dropbox.com/s/8wqw7v771u2rjr4/server.zip?dl=0, this is the one with the errors fixed for the latest ctrulib.
 

elhobbs

Well-Known Member
Member
Joined
Jul 28, 2008
Messages
1,044
Trophies
1
XP
3,036
Country
United States
Well I fixed the function redefinition errors I was having with the new ctrulib, there was only like 3, and during compilation I still get the 3ds_crt0.o error.

If you want to try to compile the code I uploaded it here, https://www.dropbox.com/s/8wqw7v771u2rjr4/server.zip?dl=0, this is the one with the errors fixed for the latest ctrulib.
a few issues - the makefile for this project is per-historic. it looks pretty standard though - get a new one from the 3ds application template(C:\devkitPro\examples\3ds\templates\application\Makefile on a standard windows install). you will also need to update to the newer SOC api - socInit, socExit, and errno for SOC_GetErrno should get it built.
 

Traiver

Developer
Developer
Joined
Aug 1, 2014
Messages
1,326
Trophies
1
Location
???
XP
2,983
Country
United States
I think that means, I'm missing the C Libary... (I want to compile CIAngel...)


C:\Users\_\Desktop\CIAngel-master>make
linking CIAngel-master.elf
main.o: In function `getInput[abi:cxx11](HB_Keyboard*)':
c:/Users/_/Desktop/CIAngel-master/source/main.cpp:194: undefined reference to `HB_Keyboard::HBKB_CheckKeyboardInput[abi:cxx11]()'
main.o: In function `main':
c:/Users/_/Desktop/CIAngel-master/source/main.cpp:240: undefined reference to `sslcInit'
c:/Users/_/Desktop/CIAngel-master/source/main.cpp:319: undefined reference to `sslcExit'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/c/Users/_/Desktop/CIAngel-master/CIAngel-master.elf] Error 1
make: *** [build] Error 2
 

TarableCode

Well-Known Member
Member
Joined
Mar 2, 2016
Messages
184
Trophies
0
Age
37
XP
319
Country
Canada
Before I lose my mind copying a font manually into 16x16 cells, is there a known good program to do this automatically?
I'm gonna have to blit my own text for something I want to do but I'm lazy, especially on the UI design front.
 

elhobbs

Well-Known Member
Member
Joined
Jul 28, 2008
Messages
1,044
Trophies
1
XP
3,036
Country
United States
I don't want to sound like a total noob but how does one create a 3ds library? Is it a collection of header files or something else?
The same way you create a library for any other platform/purpose. A library is just a collection of reusable code - it can be one or more header files or source files or a precompiled .lib file or some combination thereof. There is nothing wrong with being a noob - everyone is at one point. So don't worry about your noob question :)
 
  • Like
Reactions: Coto

Hayleia

Well-Known Member
Member
Joined
Feb 26, 2015
Messages
1,485
Trophies
0
XP
1,294
Country
France
Anyone with experience with textures ? I'm trying to use some and I'm having problems.

Basically, I try to load textures from png files using
Code:
lodepng_decode32(&image, &width, &height, m1_png, m1_png_size);
as shown in the gpusprites example. But when I do this, I have a bunch of those coming out of citra
Code:
[  0.278690] HW.Memory <Error> core/memory.cpp:Read:137: unmapped Read32 @ 0x00000000
[  0.278697] HW.Memory <Error> core/memory.cpp:Read:137: unmapped Read32 @ 0x00000004
[  0.278704] HW.Memory <Error> core/memory.cpp:Read:137: unmapped Read32 @ 0x00000008
[  0.278711] HW.Memory <Error> core/memory.cpp:Read:137: unmapped Read32 @ 0x0000000C
It doesn't seem to come from my png files or something since then the textures are displayed fine on citra's screen... But when I try on a real 3DS, it never renders my scene (black screen) so I guess citra discards the error and keeps running but the 3DS doesn't.

And I'm saying the problem comes from that lodepng_decode32 line because when I replace it with
Code:
width = 64; height = 64; image = malloc(width*height*4);
for (int i=0; i<width*height*4; i++) image[i]=0xFF;
I don't have any of these errors and the program runs fine on both my 3DS and citra (though obviously, all my textures are white and that's not really what I want).
 

elhobbs

Well-Known Member
Member
Joined
Jul 28, 2008
Messages
1,044
Trophies
1
XP
3,036
Country
United States
Anyone with experience with textures ? I'm trying to use some and I'm having problems.

Basically, I try to load textures from png files using
Code:
lodepng_decode32(&image, &width, &height, m1_png, m1_png_size);
as shown in the gpusprites example. But when I do this, I have a bunch of those coming out of citra
Code:
[  0.278690] HW.Memory <Error> core/memory.cpp:Read:137: unmapped Read32 @ 0x00000000
[  0.278697] HW.Memory <Error> core/memory.cpp:Read:137: unmapped Read32 @ 0x00000004
[  0.278704] HW.Memory <Error> core/memory.cpp:Read:137: unmapped Read32 @ 0x00000008
[  0.278711] HW.Memory <Error> core/memory.cpp:Read:137: unmapped Read32 @ 0x0000000C
It doesn't seem to come from my png files or something since then the textures are displayed fine on citra's screen... But when I try on a real 3DS, it never renders my scene (black screen) so I guess citra discards the error and keeps running but the 3DS doesn't.

And I'm saying the problem comes from that lodepng_decode32 line because when I replace it with
Code:
width = 64; height = 64; image = malloc(width*height*4);
for (int i=0; i<width*height*4; i++) image[i]=0xFF;
I don't have any of these errors and the program runs fine on both my 3DS and citra (though obviously, all my textures are white and that's not really what I want).
I think I remember seeing somewhere that the lodepng function only supports certain encoding formats. Maybe check that your files are in the same or replace your file with the one from the sample.
 
  • Like
Reactions: Hayleia

Hayleia

Well-Known Member
Member
Joined
Feb 26, 2015
Messages
1,485
Trophies
0
XP
1,294
Country
France
I think I remember seeing somewhere that the lodepng function only supports certain encoding formats. Maybe check that your files are in the same or replace your file with the one from the sample.
I just tried replacing all my png files with the one from the example, I still get the same results: errors all over the place in citra but still runs, and black screen on 3DS...
Well, my textures are generated from a script so I guess I'll just add some lines to it to convert these textures into hex that will not need to be read with lodepng. Which will probably increase the size of the program but I don't care it it works.
 

randomdev

Well-Known Member
Member
Joined
Jun 7, 2015
Messages
155
Trophies
0
XP
236
Country
Brazil
About sftdlib, I can compile sample without problems, it runs on citra, but when I try to lauch it via HBL on 9.6 o3ds, it just freeze with a red bottom screen and a "colored" top screen.
Note that I can boot it using 3dslink!
I am using the latest version of sftd, tested with both libctru 1.0 & 1.1 .
Can anyone try to help me ?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: Ken so your saying there is a chance? Lol