Homebrew Homebrew Development

aliak11

Pokemon Master
OP
Member
Joined
Dec 5, 2010
Messages
195
Trophies
1
Age
29
Location
Florida
XP
1,108
Country
United States
The purpose of this thread it to help with homebrew development by centralizing all progress, and having a place to discuss development.

Getting started: http://wiki.gbatemp.net/wiki/3DS_Homebrew_Development

You can find a list of current released 3DS homebrew on Wikitemp.
If one is missing, feel free to add it to maintain a list of existing releases.
http://wiki.gbatemp.net/wiki/List_of_3DS_homebrew


Examples of released homebrew:


Rop Loaders

fierce waffle's ROP Loader

Alternate Rop Installer

Rop Multi-loader(use this one)


Development

fierce waffle's RAM dumper

Python Tools for 3DS

3DS_Homebrew_Stuff2

Modified build.py for GNU/Linux

ctrulib


Homebrew

BlargSnes

3DNES

Mandelbrot homebrew

nop90's 3DS_Homebrew

homebrew screen test

yeti3DS
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,648
Country
France
I think the python script is used to inject your homebrew into the launcher.dat (or create it from scratch).
the homebrew is coded in C/C++ or ASM, not in python.

Once you have a launcher.dat, you can boot it like usual, from the DS profile menu (after installing the ROPLoader exploit).

There's no homebrew "channel", because nobody created a homebrew lister/launcher yet.
"The Homebrew Channel" is the name of a file lister/launcher on wii, it doesn't mean that all homebrew launchers are/will be/should be called "Homebrew channel".

There's no SDK, libraries, functions ready to use, etc.
You have to code it all yourself based on hardware specification (like video buffer's addresses to write to the screen, etc.)


I'm happy to see developers releasing their own homebrew now :)
Mandelbrot is a classic one for new plateform ;)
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,648
Country
France
launcher.dat is only a name.
Wii used "boot.elf", 3DS use "Launcher.dat".
There's no "boom" in it if you don't add one.


I'm curious to try things myself too.
But I don't know how much I could produce, I'll have to read a lot before doing even a text output on screen.
 

Abcdfv

What comes around goes around.
Member
Joined
Dec 24, 2013
Messages
1,455
Trophies
0
XP
827
Country
United States
I dont get it, if homebrew is up and running, then why havent things been released yet, how come no hc or anything?

It's just a matter of time. Right now they're working with a blank canvas that has very specific rules of how paint can be applied, and no one quite knows exactly what those rules are yet.
 
  • Like
Reactions: SLiV3R and Huntereb

pistone

Well-Known Member
Member
Joined
Feb 18, 2010
Messages
503
Trophies
0
Age
35
Location
in your heart...coz secretly you love me !!!!
XP
232
Country
Albania
it would be nice if someone just post how to do a simple hello world on both screens and HOW TO SET UP THE ENVIRONMENT and building the necessary files :shy:
i know a little how to program (java oop) but i don't know well how to set up the environment (on linux maybe)
hope someone reads this a does a little tutorial :wub:

Also can you use a python ide for coding ?
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,648
Country
France
the environment is probably Devkitpro with latest devkitARM (seeing the mandelbrot sources, it's using arm-none-eabi).
then use naehrwert python script to create your launcher.dat

I'm just guessing here, Aliak could tell us what's required to compile his mandelbrot homebrew.
 

Abcdfv

What comes around goes around.
Member
Joined
Dec 24, 2013
Messages
1,455
Trophies
0
XP
827
Country
United States
it would be nice if someone just post how to do a simple hello world on both screens and HOW TO SET UP THE ENVIRONMENT and building the necessary files :shy:
i know a little how to program (java oop) but i don't know well how to set up the environment (on linux maybe)
hope someone reads this a does a little tutorial :wub:

Also can you use a python ide for coding ?

To set up the enviroment, install:

https://launchpad.net/gcc-arm-embedded
http://www.python.org/

Then add python to your $PATH. Build.bat will then compile whatever your C\ARM code is into the Launcher.dat.

As far as how to set up the makefile and all that, I can't help you, I don't know that much yet. But I was able to get other users code running and am studying what they did.


Now, to get the launcher.dat to actually do something once it's on your SDCard, get a copy of Fierce Waffle's ROPLoader.nds from the first post, put it on your DS-Mode flashcart, run it, press home instead "A" once it's verified, then go into DS Profile and it should launch (Or crash, but if it crashes then ROPLoader worked)
 

Abcdfv

What comes around goes around.
Member
Joined
Dec 24, 2013
Messages
1,455
Trophies
0
XP
827
Country
United States
i dint understand it quite well :wacko:
so you use the c/c++ to write the homebrew and then python to build it?

It's a very limited kind of C, as we don't have true 3DS headers but yes the Python script is just for compiling Launcher.DAT.

I recommend downloading some of the other homebrew and reading through their lib folders for an idea of what commands are available.
 
  • Like
Reactions: pistone

TheCruel

Developer
Banned
Joined
Dec 6, 2013
Messages
1,350
Trophies
2
XP
3,130
Country
United States
Nice, I'm a software developer and I will probably fill some of my free time learning more about the 3DS hardware. I'll probably make a simple tutorial for getting started with Hello World and all once I get in the groove of things. Unfortunately for some, I only use Linux.

I'm assuming the ROPLoader is what's used to prep the 3DS for the DS Profile exploit?
 

Abcdfv

What comes around goes around.
Member
Joined
Dec 24, 2013
Messages
1,455
Trophies
0
XP
827
Country
United States
Nice, I'm a software developer and I will probably fill some of my free time learning more about the 3DS hardware. I'll probably make a simple tutorial for getting started with Hello World and all once I get in the groove of things. Unfortunately for some, I only use Linux.

I'm assuming the ROPLoader is what's used to prep the 3DS for the DS Profile exploit?

Yes.
 

pistone

Well-Known Member
Member
Joined
Feb 18, 2010
Messages
503
Trophies
0
Age
35
Location
in your heart...coz secretly you love me !!!!
XP
232
Country
Albania
To set up the enviroment, install:

https://launchpad.net/gcc-arm-embedded
http://www.python.org/

Then add python to your $PATH. Build.bat will then compile whatever your C\ARM code is into the Launcher.dat.

As far as how to set up the makefile and all that, I can't help you, I don't know that much yet. But I was able to get other users code running and am studying what they did.


Now, to get the launcher.dat to actually do something once it's on your SDCard, get a copy of Fierce Waffle's ROPLoader.nds from the first post, put it on your DS-Mode flashcart, run it, press home instead "A" once it's verified, then go into DS Profile and it should launch (Or crash, but if it crashes then ROPLoader worked)


It's a very limited kind of C, as we don't have true 3DS headers but yes the Python script is just for compiling Launcher.DAT.

I recommend downloading some of the other homebrew and reading through their lib folders for an idea of what commands are available.
Thank you for the tips ill will try ti set it up on linux ( no windows access right now) also is time for me to buy a new 3ds just for the homebrews :D
 

pistone

Well-Known Member
Member
Joined
Feb 18, 2010
Messages
503
Trophies
0
Age
35
Location
in your heart...coz secretly you love me !!!!
XP
232
Country
Albania
Nice, I'm a software developer and I will probably fill some of my free time learning more about the 3DS hardware. I'll probably make a simple tutorial for getting started with Hello World and all once I get in the groove of things. Unfortunately for some, I only use Linux.

I'm assuming the ROPLoader is what's used to prep the 3DS for the DS Profile exploit?
That would be awesome :wub: , i also work only in linux ( just in my work office with windows :nayps3:)
Also i would like to know the developers are writing their libs ...........like blindly ? trying to find what "this/that" does ? :blink: (reverse engineering ?)
 

Abcdfv

What comes around goes around.
Member
Joined
Dec 24, 2013
Messages
1,455
Trophies
0
XP
827
Country
United States
That would be awesome :wub: , i also work only in linux ( just in my work office with windows :nayps3:)
Also i would like to know the developers are writing their libs ...........like blindly ? trying to find what "this/that" does ? :blink: (reverse engineering ?)

Yes, basically reverse engineering libs right now. No one has barely and knowledge of the ins and outs.
 

TheCruel

Developer
Banned
Joined
Dec 6, 2013
Messages
1,350
Trophies
2
XP
3,130
Country
United States
Also i would like to know the developers are writing their libs ...........like blindly ? trying to find what "this/that" does ? :blink: (reverse engineering ?)


From what I can tell, there are lot of hardware reverse engineering and people just documenting what registers/addresses control which features of the hardware.

But the most effective way to document information is to get your hands on the beautiful Development/Debug hardware. ;)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • Psionic Roshambo @ Psionic Roshambo:
    @The Real Jdbye, I could see AMD trying to pull off the CPU GPU tandem thing, would be a way to maybe close the gap a bit with Nvidia. Plus it would kinda put Nvidia at a future disadvantage since Nvidia can't make X86/64 CPUs? Intel and AMD licensing issues... I wonder how much that has held back innovation.
  • The Real Jdbye @ The Real Jdbye:
    i don't think nvidia wants to get in the x64 cpu market anyways
  • The Real Jdbye @ The Real Jdbye:
    you've seen how much intel is struggling getting into the gpu market
  • The Real Jdbye @ The Real Jdbye:
    and nvidia is already doing ARM
  • The Real Jdbye @ The Real Jdbye:
    i don't think they want to take more focus away from their gpus
  • Psionic Roshambo @ Psionic Roshambo:
    Yeah I think Nvidia s future lays in AI GPU acceleration stuff if they can get that going it's going to be super interesting in the long term
  • Psionic Roshambo @ Psionic Roshambo:
    AI assisted game creation might become a thing
  • Psionic Roshambo @ Psionic Roshambo:
    At least that's something I think would be pretty cool.
  • Psionic Roshambo @ Psionic Roshambo:
    Don some VR glasses and gloves and talk to the computer and paint entire worlds
  • Psionic Roshambo @ Psionic Roshambo:
    "OK Cortana I want that mountain a little taller and more snow on top, and I would like some random ancient pine forest around the bottom"
  • Psionic Roshambo @ Psionic Roshambo:
    "Now we need a spring fed river flowing down the north side and add some wild life appropriate for the biome"
  • Psionic Roshambo @ Psionic Roshambo:
    Many TBs of assets and the programming of something like that is going to be tough but I think it's something we might see in 20 years maybe sooner
  • The Real Jdbye @ The Real Jdbye:
    @Psionic Roshambo AI assisted game creation is kinda already here, there was recently that AI that can turn any 2D image into a fully modeled 3D object, it's not perfect, but it's a starting point, beats starting from zero
    +1
  • The Real Jdbye @ The Real Jdbye:
    before that there was one to generate a fully modeled scene from a 2D image
    +1
  • The Real Jdbye @ The Real Jdbye:
    but most recently, there was one that actually generates a working unity scene with terrain and textures already set up that you can import right into unity, that's a huge time saver right there
    +1
  • The Real Jdbye @ The Real Jdbye:
    and using LLMs to generate NPC dialogue and even dynamically generated quests is something i'm sure is already happening
    +1
  • The Real Jdbye @ The Real Jdbye:
    will just take some time for games made using those things to be completed and released
    +1
  • K3Nv2 @ K3Nv2:
    @The Real Jdbye, it's bed bath and beyond you nitwit
  • The Real Jdbye @ The Real Jdbye:
    @K3Nv2 you said instructions with pictures, same difference
  • Psionic Roshambo @ Psionic Roshambo:
    Lol now with 32GBs of VRAM Ken?
  • K3Nv2 @ K3Nv2:
    No IKEA shit breaks within a month bed bath and beyond goes beyond
  • K3Nv2 @ K3Nv2:
    Plus pictures don't always cut it with furniture when there's like 10 different bolt styles and they're just like figure it out
  • K3Nv2 @ K3Nv2:
    It's not like how people whack it to uremums onlyfans :teach:
    K3Nv2 @ K3Nv2: It's not like how people whack it to uremums onlyfans :teach: