Homebrew Homebrew Development

  • Thread starter Thread starter aliak11
  • Start date Start date
  • Views Views 1,475,091
  • Replies Replies 6,048
  • Likes Likes 54
I've made a homebrew application, that I need to pack as a CIA: https://github.com/TuxSH/TWLSaveTool
However, even if I have recreated sysUpdater's and/or CHMM2's build environment, but makerom crashes all the time, no matter what I do (on both Windows and Linux, x86_64).
Would help if you posted more info on the crash from makerom, but if you're using latest ctrulib, it's probably this issue. That can be solved by building latest commit on that repo. But there are other known issues too, like using an outdated rsf format, so depends how it's crashing.
 
Anyone know where I can find documentation on the NN3DSXL's face tracking feature (like on the Homebrew Launcher's demo for it)?
 
Does someone have a sample for the 2.X bootloader usage?

I tried to use the hbmenu ones but it has too many dependencies and trying to "extract it" from the main source finished with a system crash when trying to launch a 3dsx file.
 
Guys, need a little help. I killed my computer and have reinstalled windows, devkitpro and ctrulib. however my code wont compile. I am erroring at the following line---

Code:
    APP_STATUS status;

Which worked fine earlier.
Have I missed a step when setting up my environment or something? I really want to get back to updating BreadBox.
 
  • Like
Reactions: SLiV3R

Can someone here re-build the .cia HBLauncherLoader to search for a different filename than "boot.3dsx"? I recently came across someone who wanted a homebrew channel while being able to coldboot into cfw, and this seems like the most viable solution. Bonus points if the filename variable can be configurable via a .txt.


Actually, wait a second. The filename is actually inside of the payload. Just hex-edit the string that says "boot.3dsx" hex editor to change the filename the payload attempts to load.
 
Last edited by CrispyYoshi,
Differences between signed and unsigned? I mean, if in an unsigned PCM16 sample has 65000 as value, in signed PCM16 its value is a simple cast (so 32767 - 65000) or something different?
Yeah, it should be that simple. Google could tell you for sure tho. (Or just try it & see)
 
Last edited by hippy dave,
Guys, how can I load a .3dsx from another homebrew? Something like app launch (used for installed .cias) but using some .3dsx in the sd card instead.
Thanks.

My best regards,
Pedro.
 
Hi guys, I'm new into 3DS HB developing and I just wrote my first HB. You can increase an integer by pressing A (or decrease it by pressing B). At the moment, the longer you hold the button, the bigger/smaller the integer gets, but I'd like it to increase by one for everytime A is pressed. Is there any easy way to do this? I thought of something like if A is pressed set a variable to one, this happens in a loop at which's beginning it increases the int if the variable is set to one and then resets it again. (Haven't got it to work by now)
Here is the actual source code of the version "the longer, the bigger":
#include <stdio.h>
#include <string.h>
#include <3ds.h>

int choice = 0;

void choose(void);
void flush(void);

int main()
{
gfxInitDefault();
consoleInit(GFX_TOP, NULL);
u32 kDown;
u32 kHeld;
u32 kUp;

printf("\nWelcome to an input test, where you can choose\nyour own integer!\nThe start value for it is %i.\n\n", choice);

flush();

choose();

printf("\n\nIf you want to adjust your integer again press A, else B.\n\n");

while (1) {
hidScanInput();
u32 kDown = hidKeysDown();

if (kDown & KEY_A) {
choose();
break;
}
if (kDown & KEY_B) {
flush();
break;
}
}

printf("\nPress START to exit.\n");

while (aptMainLoop()) {
hidScanInput();
u32 kDown = hidKeysDown();

if (kDown & KEY_START) break;
}

gfxExit();
return 0;
}

void choose(void)
{
printf("To increase your integer press A, to decrease it\npress B (the longer the button is pressed, the\nbigger/smaller will the number get).\nWhen finished press X and the number will be\ndisplayed.\n");

while (1) {
hidScanInput();
u32 kDown = hidKeysDown();

if (kDown & KEY_A)
choice += 1;
if (kDown & KEY_B)
choice -= 1;
if (kDown & KEY_X)
break;
}

printf("\nYour integer: %i.\n", choice);

flush();
}

void flush(void)
{
gfxFlushBuffers();
gfxSwapBuffers();

gspWaitForVBlank();
}
I'd really appreciate it if someone could tell me a way to do it (the idea is enough, I think I can code the rest by myself :)), and if you have some tips in genereal for 3DS HB development please tell me! ^^
 
Hi guys, I'm new into 3DS HB developing and I just wrote my first HB. You can increase an integer by pressing A (or decrease it by pressing B). At the moment, the longer you hold the button, the bigger/smaller the integer gets, but I'd like it to increase by one for everytime A is pressed. Is there any easy way to do this? I thought of something like if A is pressed set a variable to one, this happens in a loop at which's beginning it increases the int if the variable is set to one and then resets it again. (Haven't got it to work by now)
Here is the actual source code of the version "the longer, the bigger":
#include <stdio.h>
#include <string.h>
#include <3ds.h>

int choice = 0;

void choose(void);
void flush(void);

int main()
{
gfxInitDefault();
consoleInit(GFX_TOP, NULL);
u32 kDown;
u32 kHeld;
u32 kUp;

printf("\nWelcome to an input test, where you can choose\nyour own integer!\nThe start value for it is %i.\n\n", choice);

flush();

choose();

printf("\n\nIf you want to adjust your integer again press A, else B.\n\n");

while (1) {
hidScanInput();
u32 kDown = hidKeysDown();

if (kDown & KEY_A) {
choose();
break;
}
if (kDown & KEY_B) {
flush();
break;
}
}

printf("\nPress START to exit.\n");

while (aptMainLoop()) {
hidScanInput();
u32 kDown = hidKeysDown();

if (kDown & KEY_START) break;
}

gfxExit();
return 0;
}

void choose(void)
{
printf("To increase your integer press A, to decrease it\npress B (the longer the button is pressed, the\nbigger/smaller will the number get).\nWhen finished press X and the number will be\ndisplayed.\n");

while (1) {
hidScanInput();
u32 kDown = hidKeysDown();

if (kDown & KEY_A)
choice += 1;
if (kDown & KEY_B)
choice -= 1;
if (kDown & KEY_X)
break;
}

printf("\nYour integer: %i.\n", choice);

flush();
}

void flush(void)
{
gfxFlushBuffers();
gfxSwapBuffers();

gspWaitForVBlank();
}
I'd really appreciate it if someone could tell me a way to do it (the idea is enough, I think I can code the rest by myself :)), and if you have some tips in genereal for 3DS HB development please tell me! ^^
I believe you are having this problem because you are calling hidScanInput() too fast, try letting the thread sleep for a bit or doing something else on that loop to take some time.
To sleep the thread you can use svcSleepThread(nanoseconds).
 
I believe you are having this problem because you are calling hidScanInput() too fast, try letting the thread sleep for a bit or doing something else on that loop to take some time.
To sleep the thread you can use svcSleepThread(nanoseconds).
That sounds great! I didn't know about that function, maybe I should first work through the documentation of ctrulib... (but it's so big!) I'm gonna try this out and tell you my progress. :)
 

Site & Scene News

Popular threads in this forum