Homebrew The (Un)Official 3DS Homebrew Development Guide

YugamiSekai

Well-Known Member
OP
Member
Joined
Dec 24, 2014
Messages
1,995
Trophies
1
Age
19
XP
2,036
Country
United States
HELP WANTED
This is only getting harder with each chapter so if there are some devs who want to see this go further, that would be great.
Also if A mod sees this, the title should be ”[WIP] The Homebrew Dev Guide Pack"

Seeing how ctrulib is barely documented and how there aren't many tutorials on 3DS Homebrew Dev I decided to go ahead and take matters into my own hands and create this Homebrew Development tutorial pack. It's only in C (Assembly too) and it consists of a 3DS homebrew dev guide, a PICA200 Assembly guide, and a Citro3D C guide.​


V0.1 - Initial Release
V0.2 - More Content added to guides and tweaks, changed Readme and Todo
V0.3 - More changes to guides, added code to Citro3D book
V0.4 - More Guide changes, added more code to Citro3D guide, fixed code folders in PICA200 guide
V0.5 BETA - More guide changes, added more code to Citro Dev Pack
V0.5 - More guide changes, added something new ;), edited readme, removed todo (I couldn't keep up)
V0.6 PREVIEW - Split guides to C and C++ with the addition of delete12345's citro3d guide

So far there are more chapters planned for these books. I hope you all enjoy as I improve on this! I'm also gonna make guides for other libs in the future and include it in the pack.
 
Last edited by YugamiSekai,

MasterFeizz

Well-Known Member
Member
Joined
Oct 15, 2015
Messages
1,081
Trophies
0
Age
27
XP
3,525
Country
United States
Let me give you some constructive criticism. The formatting on this pdf is not ideal, you should make the paragraphs smaller and increase the font size. I would also suggest highlighting keywords instead of using quotes and using syntax highlighted blocks for the code samples.

Lastly, you could use github and gitbooks, this way other's could contribute to the tutorials in a more organized way as opposed to PM's. This would also help with accessibility, as users wouldn't need to download a pdf.

Anyhow, keep it up man.
 

Tjessx

Well-Known Member
Member
Joined
Dec 3, 2014
Messages
1,160
Trophies
0
Age
25
XP
924
Country
Belgium
Looks good, it's nice to see someone working on something like this.
If i may suggest something, you could put the file publicly on google drive, so that people can contribute on it (you can work on the same file in google drive simultaneous), if you would do this: maybe only give trusted gbatemp people access to it though, (you can always undo changes)
 

YugamiSekai

Well-Known Member
OP
Member
Joined
Dec 24, 2014
Messages
1,995
Trophies
1
Age
19
XP
2,036
Country
United States
CRAP. It seems I don't know how to work gitbooks. I imported the .docx version and my pictures are gone. Not only that, #include turns into a bold "include", so yeah I might change to github or keep the GDrive method.
 

TricksterGuy

Well-Known Member
Newcomer
Joined
Jan 16, 2016
Messages
81
Trophies
0
Age
34
Location
California
XP
190
Country
United States
Cool, I've read this from start to end.

Suggested corrections

All:
You may want to consider using a monospace font in all code you include in your document, makes everything look better.

page 2
1: Know the C Programming Language (Definitely structs and OOP)
C isn't an object oriented programming language, C++ is
2: Installed and setup devkitPro and the 3DS environment
Installed an setup devkitPro along with ctrulib

Maybe link to those resources in the tutorial to save people a google search.

page 3
The first thing you see are the 2 preprocessor statements which include stdio.h (which defines printf and other main C functions), and 3ds.h (that has
all of the 3ds features in it).

Inside the parentheses you see, GFX_TOP and NULL which initializes the top screen
with GFX_TOP, but makes it empty with NULL.

the NULL here causes ctrulib to use the default PrintConsole which defines the font used width/height of the console etc - printconsole

page 10
Include the file <3ds/services/hid.h> which will enable you to use the HID service.
This isn't needed 3ds.h appears to include this file? http://smealum.github.io/ctrulib/3ds_8h.html

page 12
here's the link you was missing - https://github.com/xerpi/3ds_portlibs
I'm not sure any changes are needed with that repo. It compiled out of the box for me.

onward
You may want to consider file IO (SD card and romfs), sound (csnd / dsp), etc
 
Last edited by TricksterGuy,

YugamiSekai

Well-Known Member
OP
Member
Joined
Dec 24, 2014
Messages
1,995
Trophies
1
Age
19
XP
2,036
Country
United States
Cool, I've read this from start to end.

Suggested corrections

All:
You may want to consider using a monospace font in all code you include in your document, makes everything look better.

page 2
1: Know the C Programming Language (Definitely structs and OOP)
C isn't an object oriented programming language, C++ is
2: Installed and setup devkitPro and the 3DS environment
Installed an setup devkitPro along with ctrulib

Maybe link to those resources in the tutorial to save people a google search.

page 3
The first thing you see are the 2 preprocessor statements which include stdio.h (which defines printf and other main C functions), and 3ds.h (that has
all of the 3ds features in it).

Inside the parentheses you see, GFX_TOP and NULL which initializes the top screen
with GFX_TOP, but makes it empty with NULL.

the NULL here causes ctrulib to use the default PrintConsole which defines the font used width/height of the console etc - printconsole

page 10
Include the file <3ds/services/hid.h> which will enable you to use the HID service.
This isn't needed 3ds.h appears to include this file? http://smealum.github.io/ctrulib/3ds_8h.html

page 12
here's the link you was missing - https://github.com/xerpi/3ds_portlibs
I'm not sure any changes are needed with that repo. It compiled out of the box for me.

onward
You may want to consider file IO (SD card and romfs), sound (csnd / dsp), etc
Thanks! I actually finished the next version and finished chapter 8 (battery and pedometer) and I noticed some of these mistakes. I'll fix them now. And romfs/dsp (especially dsp) might take a while, unless someone would like to help out with it.
 

YugamiSekai

Well-Known Member
OP
Member
Joined
Dec 24, 2014
Messages
1,995
Trophies
1
Age
19
XP
2,036
Country
United States
Version 0.3 Released! I just learned how to use PTMU at midnight so here it is! Also, I might skip Chapter 7 and Chapter 9 for now (unless some experienced Devs want to help with Amiibo, and Circle Pad/Gyroscope/Accelerometer). I'm still organizing the code files so excuse them for now (it's still usable). The next version will include quizzes and challenges (optional, but recommended to follow) and more on makefiles. Enjoy this version!

Download:
https://drive.google.com/open?id=0B3QuEXHQiGd6aTNJVnpWRGdzcmM
 
General chit-chat
Help Users
    AncientBoi @ AncientBoi: go to the restroom then