Try doing make clean and then makeIm trying to render a model using citro3d and im getting this:
What rule do i add to the makefile?
Try doing make clean and then makeIm trying to render a model using citro3d and im getting this:
What rule do i add to the makefile?
Im trying to render a model using citro3d and im getting this:
What rule do i add to the makefile?
I have the latest Devkitpro and ctrulib. I am using a modified textured_cube example but the makefile is intact. I have the .obj file in the data folder.If you are trying to compile this you should only need the lates devkitpro with updated citro3d lib from the next branch (not the master one) fron the gitub repository
But if you are using a modified version of the example we need the full source code (and some info on your compiler enviroment and toolchain) to be able to give you some hints.
the data folder is to build a romfs from where to load resources at run time. Reading the error seems the linker needs that file at compile time but don't know how to handle the obj extension.I have the latest Devkitpro and ctrulib. I am using a modified textured_cube example but the makefile is intact. I have the .obj file in the data folder.
I'm writing homebrew, and I'm currently working on adding a media player to my program. But I don't know where to start. Anyone know how to play wav mp3 and or mp4 files? I'm coding in c++
I've got gdb working and can use VS Code to attach and debug my test app, but is there a way to attach before the app launches so I can debug from the start?
Also a neat thing I found is that you can pass 80 to APT_SetAppCpuTimeLimit and it'll work but it breaks the luma menu and hardlocks the 3ds once
you enter the button combo.
Doesn't work so far, can't get the ffmpeg-configure3ds script to run properly, gives me a long list of errors in bash.Take a look at this: https://github.com/Lectem/3Damnesic
void test(u8* screen, int color)
{
int width = (screen == TOP_SCREEN) ? SCREEN_WIDTH_TOP : SCREEN_WIDTH_BOT;
for (int i = 0; i < (width * SCREEN_HEIGHT); i++) {
*(screen++) = color >> 16; // B
*(screen++) = color >> 8; // G
*(screen++) = color & 0xFF; // R
}
}
u8* fb = gfxGetFramebuffer(GFX_BOTTOM, GFX_LEFT, NULL, NULL);
test(fb, RGB(255, 0, 0));
That will work fine for this simple case. But at some point you are going to want to use double buffering. A better solution would be to callMy bottom screen is flickering, how to fix it?
I am using the following void to set a background color to the buffer:
Code:void test(u8* screen, int color) { int width = (screen == TOP_SCREEN) ? SCREEN_WIDTH_TOP : SCREEN_WIDTH_BOT; for (int i = 0; i < (width * SCREEN_HEIGHT); i++) { *(screen++) = color >> 16; // B *(screen++) = color >> 8; // G *(screen++) = color & 0xFF; // R } }
And this to set it:
Code:u8* fb = gfxGetFramebuffer(GFX_BOTTOM, GFX_LEFT, NULL, NULL); test(fb, RGB(255, 0, 0));
UPDATE: Got it fixed by adding gfxSetDoubleBuffering(GFX_BOTTOM, false); to it.
Thanks.
Does it does that with 8.0 (and 8.1) ?
I'm changed the menu thread priority between 8.0 and 8.1, is there any difference between the two versions?Here's what I've noticed, the rosalina menu works fine with APT_SetAppCpuTimeLimit at 30, and beyond that it works less and less.
At 60% it's dropping input and at 80% it doesn't register anything at all afaik.
Edit:
The weird thing is sometimes thread creation fails, and I don't know why and as far as I've seen there's no error code.
Ignore the messy code, it's all kludged to approximate what I'm working with on my other project.
It does seem to increase conversion speed, but sometimes thread creation fails.
Pastebin link because the code tag ignores whitespace...
https://pastebin.com/Tafih3iE
though, this doesn't work because the second argument is a const char, not a "FS_Path".
FS_Path dirPath = (FS_Path){PATH_ASCII, 8, "/mydir/"};
#include <dirent.h>
#include <errno.h>
---
DIR* dir = opendir("mydir");
if (dir)
{
/* Directory exists. */
closedir(dir);
}
else if (ENOENT == errno)
{
/* Directory does not exist. */
}
else
{
/* opendir() failed for some other reason. */
}
because libctru has a function to delete a folder recursively (or in other words it can delete non-empty folders). C++ does not natively know how to do this. And I don't want to use the 'boost' system.FS_Path is a struct and you can define it like this
Code:FS_Path dirPath = (FS_Path){PATH_ASCII, 8, "/mydir/"};
The second value is the size of the path string.
But why don't you use common C functions to handle directory? You can check if a directory exist with something like this:
Code:#include <dirent.h> #include <errno.h> --- DIR* dir = opendir("mydir"); if (dir) { /* Directory exists. */ closedir(dir); } else if (ENOENT == errno) { /* Directory does not exist. */ } else { /* opendir() failed for some other reason. */ }
Note: not tested, just taken from the net
FS_Path is a struct and you can define it like this
Code:FS_Path dirPath = (FS_Path){PATH_ASCII, 8, "/mydir/"};
The second value is the size of the path string.
But why don't you use common C functions to handle directory? You can check if a directory exist with something like this:
Code:#include <dirent.h> #include <errno.h> --- DIR* dir = opendir("mydir"); if (dir) { /* Directory exists. */ closedir(dir); } else if (ENOENT == errno) { /* Directory does not exist. */ } else { /* opendir() failed for some other reason. */ }
Note: not tested, just taken from the net
FS_Path testDir = (FS_Path){PATH_ASCII, 20, "sdmc:/3ds/ROT_Data/"};
FSUSER_DeleteDirectoryRecursively(ARCHIVE_SDMC, testDir);