Homebrew Anyone know how to make a basic .firm?

FenexFox

Well-Known Member
OP
Member
Joined
Jul 17, 2017
Messages
116
Trophies
0
Location
Scotland
XP
181
Country
United Kingdom
Hello, I basically just want to know how to make a basic .firm file that can print text
i never really made anything homebrew before.

Sorry if this sound stupid
i just need to make a .firm file that when booted/launched it displays text
 
Last edited by FenexFox,

FenexFox

Well-Known Member
OP
Member
Joined
Jul 17, 2017
Messages
116
Trophies
0
Location
Scotland
XP
181
Country
United Kingdom
I thought all it would be is sticking some C++ cout and saving as .firm but no it's not as simple as i thought and i realised this is prob a really stupid post
 
  • Like
Reactions: jamieyello

jamieyello

Professional Dumbass
Member
Joined
Mar 11, 2013
Messages
385
Trophies
0
XP
556
Country
United States
I thought all it would be is sticking some C++ cout and saving as .firm but no it's not as simple as i thought and i realised this is prob a really stupid post

C++ is compiled into machine code, raw binary quickly readable instructions. A PC uses x86, a 3DS uses ARM9/ARM11. By changing the extension, you would basically be handling the 3DS a text file.

Because Visual Studio (and Windows for that matter) doesn't know what a 3DS is, you have to use a custom compiler. Read this
http://wiki.gbatemp.net/wiki/3DS_Homebrew_Development

What are you trying to display text for?
 
Last edited by jamieyello,
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,947
Country
United States
I thought all it would be is sticking some C++ cout and saving as .firm but no it's not as simple as i thought and i realised this is prob a really stupid post

Your post is not stupid. It's just way more advance a typical 3DS user would know about. What are you trying to accomplishing making a .firm app?

How good is your programming skills?

Look for the (source code) archives:
GodMode9 - https://github.com/d0k3/GodMode9/releases
Luma3DS - https://github.com/AuroraWright/Luma3DS/releases
boot9strap - https://github.com/SciresM/boot9strap/releases

You're going to have to study and reverse engineering how the devs made their .firm programs.

Depending on your computer Operating System (Windows, Linux, or Mac iOS)
You'll need devkitPro (specifically devkitARM) for your environment
-and-
either Cygwin , minGW , and/or Window's Command Prompt (cmd) for compiling source with the "make" command. Linux and Mac have their own command shell.

Refer to 3ds examples folder to learn basic homebrew coding.
https://www.3dbrew.org/ has information for the ins and outs of the 3DS more technical aspects (ie, hardware and software).
 

FenexFox

Well-Known Member
OP
Member
Joined
Jul 17, 2017
Messages
116
Trophies
0
Location
Scotland
XP
181
Country
United Kingdom
Your post is not stupid. It's just way more advance a typical 3DS user would know about. What are you trying to accomplishing making a .firm app?

How good is your programming skills?

Look for the (source code) archives:
GodMode9 - https://github.com/d0k3/GodMode9/releases
Luma3DS - https://github.com/AuroraWright/Luma3DS/releases
boot9strap - https://github.com/SciresM/boot9strap/releases

You're going to have to study and reverse engineering how the devs made their .firm programs.

Depending on your computer Operating System (Windows, Linux, or Mac iOS)
You'll need devkitPro (specifically devkitARM) for your environment
-and-
either Cygwin , minGW , and/or Window's Command Prompt (cmd) for compiling source with the "make" command. Linux and Mac have their own command shell.

Refer to 3ds examples folder to learn basic homebrew coding.
https://www.3dbrew.org/ has information for the ins and outs of the 3DS more technical aspects (ie, hardware and software).
My skill are very novice but i can work my way around a few things i know parts of different languages but i am not good with a very specific one
i have most experience with C# but i know some things in C++(mainly basics)

i'm just trying to make a application that when booted will print a message then on input from the user will shutdown the console
 

zoogie

playing around in the end of life
Developer
Joined
Nov 30, 2014
Messages
8,560
Trophies
2
XP
15,000
Country
Micronesia, Federated States of
I thought all it would be is sticking some C++ cout and saving as .firm but no it's not as simple as i thought and i realised this is prob a really stupid post
This is all you need to get started
https://3dbrew.org/wiki/Setting_up_Development_Environment

https://github.com/devkitPro/3ds-examples/blob/master/templates/application/source/main.c
That is basically the text printout code you requested. Very simple.

Don't make .firm binaries yet, that's for advanced tools mainly, not typical homebrew.
 
Last edited by zoogie,
  • Like
Reactions: wicksand420

FenexFox

Well-Known Member
OP
Member
Joined
Jul 17, 2017
Messages
116
Trophies
0
Location
Scotland
XP
181
Country
United Kingdom
Fake brick?

...Or would that be a real brick? I am out of the loop.
i'm using fastboot witch you can choose the firmware to boot so i was wanting it to boot to this firm with a message saying something like "NOPE!!"
but then able to boot into the real firmware (Luma CFW) by doing a button combo

i know how to setup the boot order and stuff but i just don't have the firm to display the message
 
Last edited by FenexFox,

FenexFox

Well-Known Member
OP
Member
Joined
Jul 17, 2017
Messages
116
Trophies
0
Location
Scotland
XP
181
Country
United Kingdom
yea i can do the code but i don't know how to compile it so its compatible as a .firm file
like i think i needa makefile or something
 
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,947
Country
United States
yea i can do the code but i don't know how to compile it so its compatible as a .firm file
like i think i needa makefile or something

Every homebrew app whether it is .elf -> .cia, .3dsx & .sdmh, or .firm has a Makefile tailored coded specifically to how devkitPro is supposed to compile that source code into its end user form.

You can't drag and drop any Makefile from another program into yours like how you wouldn't graft a random person's liver into an alcoholic patient needing a new liver transplant due to cirrhosis. (I mean you could but that patient will quickly die from organ rejection without serious immuno-suppressant drugs).

Your Makefile has to be coded to tell devkitPro how to build and compile your source code:
  • Which directories its supposed to look in
  • What files it should look for
  • What dependencies does those files require to build it
  • How it is suppose to package all those files into .elf, .cia , .3dsx + .sdmh, etc.
 

FenexFox

Well-Known Member
OP
Member
Joined
Jul 17, 2017
Messages
116
Trophies
0
Location
Scotland
XP
181
Country
United Kingdom
Every homebrew app whether it is .elf -> .cia, .3dsx & .sdmh, or .firm has a Makefile tailored coded specifically to how devkitPro is supposed to compile that source code into its end user form.

You can't drag and drop any Makefile from another program into yours like how you wouldn't graft a random person's liver into an alcoholic patient needing a new liver transplant due to cirrhosis. (I mean you could but that patient will quickly die from organ rejection without serious immuno-suppressant drugs).

Your Makefile has to be coded to tell devkitPro how to build and compile your source code:
  • Which directories its supposed to look in
  • What files it should look for
  • What dependencies does those files require to build it
  • How it is suppose to package all those files into .elf, .cia , .3dsx + .sdmh, etc.
Okay,
there is clearly stuff i don't know and gonna take me a while to understand so i think im just gonna scrap the idea i had planned cause its just not working
 
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,947
Country
United States
Okay,
there is clearly stuff i don't know and gonna take me a while to understand so i think im just gonna scrap the idea i had planned cause its just not working
It's okay if you don't get it the first time. Every programmer who has ever done high level coding will run into a stumbling block and feel stupid about how any of this works, especially when you look at someone else's code and you're not familiar at first with how to program for the 3DS or any system. This doesn't make you a amateur or derpy coder who doesn't know that 1+1 = 2, A does not equal B, and what do for cases where if/else/switch/strut are required.

Take a break. Retreat and don't think about it too much. When you're feeling inquisitive and ready again, take a look at the main.c file which almost every program centralizes calling for all the other .c .h .cpp , etc. files. Study what those #include <...> point to and what those #include <...> lead to other #include <...>.

Every file is connected to one another like a tree having nodes with roots spreading out in all directions.

Never get caught up looking at every file all at once. Always look for the most basic building block, kinda like examining how one LEGO brick attaches to another. Piece-by-piece analyses and NOT the entire assembly. Start with what you know and understand. Hit a textbook to refer to how a specific syntax is typically utilized. Don't get too caught up with how the programmers named their variables with their big, fancy-smancy jargons.

Always remember that you're programmer because at heart, you're a masochist with a love-hate relationship with computers and 3DS bending them to do what you want to your will.
 

FenexFox

Well-Known Member
OP
Member
Joined
Jul 17, 2017
Messages
116
Trophies
0
Location
Scotland
XP
181
Country
United Kingdom
It's okay if you don't get it the first time. Every programmer who has ever done high level coding will run into a stumbling block and feel stupid about how any of this works, especially when you look at someone else's code and you're not familiar at first with how to program for the 3DS or any system. This doesn't make you a amateur or derpy coder who doesn't know that 1+1 = 2, A does not equal B, and what do for cases where if/else/switch/strut are required.

Take a break. Retreat and don't think about it too much. When you're feeling inquisitive and ready again, take a look at the main.c file which almost every program centralizes calling for all the other .c .h .cpp , etc. files. Study what those #include <...> point to and what those #include <...> lead to other #include <...>.

Every file is connected to one another like a tree having nodes with roots spreading out in all directions.

Never get caught up looking at every file all at once. Always look for the most basic building block, kinda like examining how one LEGO brick attaches to another. Piece-by-piece analyses and NOT the entire assembly. Start with what you know and understand. Hit a textbook to refer to how a specific syntax is typically utilized. Don't get too caught up with how the programmers named their variables with their big, fancy-smancy jargons.

Always remember that you're programmer because at heart, you're a masochist with a love-hate relationship with computers and 3DS bending them to do what you want to your will.
I think ill just tinker around in the homebrew launcher and try learn my way up from the basic since homebrew apps have alot more support for them rather than just jumping into something like firm
 
  • Like
Reactions: TurdPooCharger

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • Sicklyboy @ Sicklyboy:
    College costs, college loans, book prices, the entire thing is predatory, oft touted as essential to a successful life for my generation and the ones since, and completely unaffordable without putting you through an insane financial hardship for literal decades in many situations.
    +1
  • Sicklyboy @ Sicklyboy:
    Many of the same issues can be seen for the insanely predatory healthcare and health insurance system in the US
    +1
  • mthrnite @ mthrnite:
    ^this
  • Sicklyboy @ Sicklyboy:
    It's important for society to be healthy and educated. If those things can't happen because all of the institutions that prop up those industries make it unattainable for all but a small portion of society, then your society is largely going to be disease ridden, dying, and uneducated in very short order.
  • K3Nv2 @ K3Nv2:
    Issue is it's too rich of a coperation already with bad sugar diets causing diabetes and killing teeth a new set of teeth around 90k
  • cearp @ cearp:
    I agree it's not easy for the average American, let alone the ones below that average. Free / cheaper healthcare is much more important I think than free university education.
    Of course like @mthrnite said, why not both. But I doubt both will get solved at once, and surely healthcare is top priority.
    +1
  • mthrnite @ mthrnite:
    they go hand in hand unless you want a plumber performing your triple bypass
  • K3Nv2 @ K3Nv2:
    Everyone should be Medicaid elegable for implants at the most
  • Sicklyboy @ Sicklyboy:
    If it's needed to keep you healthy it shouldn't cost you $90k. The fact that it does is an enormous problem
  • mthrnite @ mthrnite:
    but yeah, affordable is all i'm asking for
  • mthrnite @ mthrnite:
    i'd be happy with affordable dentures
  • K3Nv2 @ K3Nv2:
    With my old dentist he even encouraged switching insurance every quarter
  • Sicklyboy @ Sicklyboy:
    And if the concern is that "well we can't trust the government to intervene for this because the government can't do anything right and wastes tons of money" then holy shit push for a better government. I'm certainly trying to. Don't throw your hands up and go "we've tried nothing and we're all out of ideas"
  • K3Nv2 @ K3Nv2:
    Plus technology cost iirc even a water jet drill is 1k per
  • cearp @ cearp:
    @K3Nv2 that's crazily expensive. how long will that take to pay off?

    Although diet is largely education, people don't need to go to university to learn what's healthy and what's not,
    it's the whole country, big corporations and advertising that is to blame for leading most of the population to believe that poptarts and froot loops are healthy to feed a child
  • mthrnite @ mthrnite:
    i would think the population knows better but with food deserts and abject poverty, sometimes a poptart gonna have to do.
  • mthrnite @ mthrnite:
    it's a big ol complicated world innit
    +1
  • Sicklyboy @ Sicklyboy:
    As someone who went through the grade school system in the US some time within the past 30 or so years, not nearly enough is done to promote and educate on how to eat healthy in a way that is feasible to do on a regular basis and also affordable. Eating healthy is, comparatively, fucking expensive. So is eating unhealthy, but in many cases eating unhealthy is more affordable than eating healthy
    +1
  • cearp @ cearp:
    90k could get you a 3 bedroom house in some poorer parts of the country
  • K3Nv2 @ K3Nv2:
    @cearp, it's like buying a new car most dentists say so $250 per the rest of your life
  • cearp @ cearp:
    Jesus
  • K3Nv2 @ K3Nv2:
    These are actual implants to dentures though
  • cearp @ cearp:
    Well once it's all done I'm sure you'll be happy with the result
  • K3Nv2 @ K3Nv2:
    Just a flappity denture would probably be 5k
  • mthrnite @ mthrnite:
    sold
    mthrnite @ mthrnite: sold