Citra vs citro - close enoughAre you serious
Citra vs citro - close enoughAre you serious
Wrong place, but as far as I know there is no other way on PC to play these files. Strange though that vgmstream doesn't give good quality audio for you. A while back I was also playing with these files (from one of the Professor Layton games for 3DS) and the audio quality was the same as on 3DS (though it sounded better with proper PC speakers).any way to play brstm/bcstm files other than vgmstream? vgmstream plays them but the playback has horrible quality for some reason
no i meant playing bcstms on my homebrewWrong place, but as far as I know there is no other way on PC to play these files. Strange though that vgmstream doesn't give good quality audio for you. A while back I was also playing with these files (from one of the Professor Layton games for 3DS) and the audio quality was the same as on 3DS (though it sounded better with proper PC speakers).
Ah, didn't even know there was a vgmstream for 3DS, just looked it up, pretty cool. But then I don't know. Currently I just use WAVs for my audio, and that seems to be the most common way. You could do that (though it does use quite a bit of memory for longer clips).no i meant playing bcstms on my homebrew
void RenderMainScreen( void ) {
SetRenderTarget( main );
AddText( 0, 0, "okay" );
CallList( OurVBO );
}
void RenderSubScreen( void ) {
SetRenderTarget( sub );
AddText( 20, 20, "lol" );
CallList( OurVBO );
}
I think you'r problem is that GPUs work asynchronous.I'm not sure how to handle text rendering using a VBO...
I would like to be able to draw text on both screens but it only works properly on one.
pseudocode:
void RenderMainScreen( void ) {
SetRenderTarget( main );
AddText( 0, 0, "okay" );
CallList( OurVBO );
}
void RenderSubScreen( void ) {
SetRenderTarget( sub );
AddText( 20, 20, "lol" );
CallList( OurVBO );
}
The 3DS doesn't like this and both screens end up with weird text, or maybe just the upper one I don't remember since I tried 2 days ago.
What is the proper way to handle having different text on each screen?
Text/Font code starts here: https://github.com/TaraHoleInIt/minivmac-3ds/blob/master/src/3DSGLU.c#L519
well, the simplest thing would imagine, would be to not restart the vertex counter when drawing on the second screen and inserting the amount of vertices drawn on the other screen as an offset(the second parameter) in C3D_DrawArrays.That's what I figured, what is the best way to go about having different text on both screens?
I looked into having 2 vertex buffers but didn't see how you would tell the GPU to use a different one.
As far as I know, there isn't a hard limit(like on the DS where it's 2048 verts) by definition. There is probably a hard limit(somewhere in the hardware or software), but I think before you get even close to it, your game will run at such a rubbish performance, that "scratching" it, isn't something you want to do.Is there a hard limit on the number of vertices?
I'm not much for 3D lol, I did the first few NeHe tutorials like 10 years ago and only somehow bumbled my way into having what I have now.
Let's do some math:I was just trying to think of a worst case scenario where both screens are filled with text.
8x16 Font where each glyph requires 6 vertices plus 6 for the background color, most likely won't overflow the buffer but sometimes I worry.
It's easy, you have all the code already(https://github.com/TaraHoleInIt/minivmac-3ds/blob/master/src/3DSGLU.c#L722)That's what I figured, what is the best way to go about having different text on both screens?
I looked into having 2 vertex buffers but didn't see how you would tell the GPU to use a different one.
C3D_BufInfo* buf = C3D_GetBufInfo();
BufInfo_Init(buf);
BufInfo_Add(your data);
C3D_DrawArrays(...);
C3D_GetBufInfo(); // needs to be called once more so that C3d knows that that the buffer content was changed
BufInfo_Init(buf);
BufInfo_Add(your data);
C3D_DrawArrays(...);
SureLooks good, can I credit you for your help in the next release?
ReadJson rj; //ReadJson is an struct
for(u32 i = 0; i < json->u.object.length; i++) {
char* name = val->u.object.values[i].name;
u32 nameLen = val->u.object.values[i].name_length;
json_value* subVal = val->u.object.values[i].value;
LogFM("Name:", name);
LogFM("Value:", subVal->u.string.ptr);
if(subVal->type == json_string) {
// Unrelated. Do something with values.
}
}// <--- CRASH IN THIS LINE
LogFM("DEBUG","THIS LINE NEVER GET PRINTED");
return rj;
Method: <Name:> :
Message:<blablabla>
Method: <Value:> :
Message:<data>
Method: <Name:> :
Message:<blablabla>
Method: <Value:> :
Message:<data>
Method: <Name:> :
Message:<blablabla>
Method: <Value:> :
Message:<data>
Method: <Name:> :
Message:<blablabla>
Method: <Value:> :
Message:<data>