Homebrew [Preview] cpp3ds - Homebrew library and environment tutorial (for developers)

TheCruel

Developer
OP
Banned
Joined
Dec 6, 2013
Messages
1,350
Trophies
2
XP
3,130
Country
United States
I've been working on this for a few months and will be finalizing some code within the next couple weeks that will make it usable by all homebrew developers.

https://github.com/cpp3ds/cpp3ds

cpp3ds is a port of SFML, paired with an emulator and complete CMake build environment, made specifically for 3ds homebrew development. It uses gl3ds, which is my WIP OpenGL port for the 3DS (so you can directly use OpenGL functions just like you can in SFML) but it's very limited and somewhat broken atm.

It's very easy to use and keeps your games relatively portable, assuming you don't break out of the framework and start using ctrulib directly or something. The only difficult part really is installing and getting your development environment set up properly. Many people already struggle with getting ctrulib and devkitarm set up properly, but this is more difficult since it has several dependencies (one being Qt5 for the emulator, though that can be optional).

I suggest reading the SFML tutorials if you want to learn more about what can be done with this library.



The purpose of this thread is to primarily inform people of the project's existence and upcoming release. The actual release that discusses installation and usage will be in another thread when ready.
 
Last edited by TheCruel,

JerwuQu

Well-Known Member
Newcomer
Joined
Feb 15, 2015
Messages
56
Trophies
0
Age
27
XP
191
Country
I'm surprised I'm the first one to say that this is f**king awesome.

This is going to help lots of people that want to create homebrew. I mean, we already have Rinnegatamante's lpp-3ds but this is native and looks fresh as f**k.

I've used SFML in the past so I'm really looking forward to a stable version of this.

Thanks a lot, man! :D
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,649
Country
France
nice tutorial :)
it looks great and easy (when it's you doing it).
I always use notepad++ to write codes, but having an IDE with integrated emulator/3dslink is easier to see the result.
 
  • Like
Reactions: Margen67

TheCruel

Developer
OP
Banned
Joined
Dec 6, 2013
Messages
1,350
Trophies
2
XP
3,130
Country
United States
This is going to help lots of people that want to create homebrew. I mean, we already have Rinnegatamante's lpp-3ds but this is native and looks fresh as f**k.
Yeah, thanks.

My goal is mostly to bring 3ds game dev up to normal modern standards. You can barely make any decent homebrew for the 3ds without learning a lot about the hardware, exploits, different tools like makerom, etc. Most game developers don't want to have to do that much, they don't want to have to read reversed engineered documentation about how to access low-level hardware stuff. Then when cpp3ds is more stable, I can focus on making gl3ds more complete (I literally just implemented the functions that SFML uses to get cpp3ds working).
 

BurningDesire

Well-Known Member
Member
Joined
Jan 27, 2015
Messages
4,999
Trophies
1
Location
Behind a screen reading news
XP
4,885
Country
United States
Yeah, thanks.

My goal is mostly to bring 3ds game dev up to normal modern standards. You can barely make any decent homebrew for the 3ds without learning a lot about the hardware, exploits, different tools like makerom, etc. Most game developers don't want to have to do that much, they don't want to have to read reversed engineered documentation about how to access low-level hardware stuff. Then when cpp3ds is more stable, I can focus on making gl3ds more complete (I literally just implemented the functions that SFML uses to get cpp3ds working).
I know this is awesome and all but. Woudn't it be even more awesome if it had support for lua and the devkit arm c library! I'm thinking something like xcode where when you want to develop you get a dropdown menu (after you select create new project) then when you click on ios it say "Spritekit, etc" then you develop with that syntax/language
 

robot56

Well-Known Member
Newcomer
Joined
Sep 13, 2015
Messages
94
Trophies
0
Age
34
XP
111
Country
United States
I'd definitely be interested in using something like this. Any update on the status of the project?
 

TheCruel

Developer
OP
Banned
Joined
Dec 6, 2013
Messages
1,350
Trophies
2
XP
3,130
Country
United States
I'd definitely be interested in using something like this. Any update on the status of the project?
Yeah, I got a test build for everyone to test. For the sake of more simpler beta testing, I excluded the emulator (it's too buggy now anyways).

The build is linux-only (64-bit) atm, but in reality you can use this build in Windows and 32-bit linux too, but everything in the bin directory will need to be replace with Windows-built tools (makerom, bannertool, etc.)

Here are the steps to testing the beta:

1. Download the build: https://github.com/cpp3ds/cpp3ds/releases/download/v0.1/cpp3ds-linux-v0.1.tar.xz

2. Extract it anywhere you want and create a CPP3DS env variable that points to the cpp3ds folder that was extracted.

3. Using the above env variable, add $CPP3DS/bin to your PATH

4. Then you just clone the template repo and build it with the following commands:

Code:
git clone https://github.com/cpp3ds/cpp3ds-template.git
cd cpp3ds-template
mkdir build && cd build
cmake ..
make

Please let me know if anything fails.
 
Last edited by TheCruel,
  • Like
Reactions: Tjessx and Garcia98

Garcia98

Hey! Listen!
Member
Joined
Sep 8, 2015
Messages
361
Trophies
0
Location
Salamanca
Website
github.com
XP
267
Country
Yeah, I got a test build for everyone to test. For the sake of more simpler beta testing, I excluded the emulator (it's too buggy now anyways).

The build is linux-only atm, but in reality you can use this build in Windows too, but everything in the bin directory will need to be replace with Windows-built tools (makerom, bannertool, etc.)

Here are the steps to testing the beta:

1. Download the build: https://github.com/cpp3ds/cpp3ds/releases/download/v0.1/cpp3ds-linux-v0.1.tar.xz

2. Extract it anywhere you want and create a CPP3DS env variable that points to the cpp3ds folder that was extracted.

3. Using the above env variable, add $CPP3DS/bin to your PATH

4. Then you just clone the template repo and build it with the following commands:

Code:
git clone https://github.com/cpp3ds/cpp3ds-template.git
cd cpp3ds-template
mkdir build && cd build
cmake ..
make

Please let me know if anything fails.

It works fine :D
 
  • Like
Reactions: Deleted User

cere_ender

Active Member
Newcomer
Joined
Jul 7, 2015
Messages
44
Trophies
0
Age
31
XP
97
Country
Yeah, I got a test build for everyone to test. For the sake of more simpler beta testing, I excluded the emulator (it's too buggy now anyways).

The build is linux-only atm, but in reality you can use this build in Windows too, but everything in the bin directory will need to be replace with Windows-built tools (makerom, bannertool, etc.)

Here are the steps to testing the beta:

1. Download the build: https://github.com/cpp3ds/cpp3ds/releases/download/v0.1/cpp3ds-linux-v0.1.tar.xz

2. Extract it anywhere you want and create a CPP3DS env variable that points to the cpp3ds folder that was extracted.

3. Using the above env variable, add $CPP3DS/bin to your PATH

4. Then you just clone the template repo and build it with the following commands:

Code:
git clone https://github.com/cpp3ds/cpp3ds-template.git
cd cpp3ds-template
mkdir build && cd build
cmake ..
make

Please let me know if anything fails.
Have an error in "make" step in file bannertool when Generating cpp3ds-template.smdh : syntax error: "(" unexpected
 

cere_ender

Active Member
Newcomer
Joined
Jul 7, 2015
Messages
44
Trophies
0
Age
31
XP
97
Country
Any additional detailed from output?

And did you modify anything else in CMake file (like APP_TITLE or something)?
That's my output. I didn't edit anything, only I configured the enviroment variables for DEVKITPRO,DEVKITARM, and CPP3DS.
 

Attachments

  • Captura de pantalla de 2015-10-06 19_45_14.png
    Captura de pantalla de 2015-10-06 19_45_14.png
    52.1 KB · Views: 318

cere_ender

Active Member
Newcomer
Joined
Jul 7, 2015
Messages
44
Trophies
0
Age
31
XP
97
Country
I had this version of bannertool installed beforehand so you can try to compile this and use this instead
hahahahaha I compiled bannertool and I use it copying on the cpp3ds/bin directory. Now I get this:
 

Attachments

  • Captura de pantalla de 2015-10-06 21_24_36.png
    Captura de pantalla de 2015-10-06 21_24_36.png
    39.3 KB · Views: 318

TheCruel

Developer
OP
Banned
Joined
Dec 6, 2013
Messages
1,350
Trophies
2
XP
3,130
Country
United States
Use the other version then xD
IDK why are you getting that error though as I didn't get any and I'm also using Ubuntu.
Does running "sh --version" say you're using bash? Or dash?

I think his error come from the fact that Ubuntu uses dash by default. But if you're using dash too, I must be wrong.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: @Psionic Roshambo, Thats pretty cool.