Homebrew Homebrew Development

  • Thread starter Thread starter aliak11
  • Start date Start date
  • Views Views 1,475,439
  • Replies Replies 6,048
  • Likes Likes 54
This shouldn't exist in your project:
c:/devkitPro/ctrulib-master/libctru/

c:/devkitPro/libctru/
is correct.
 
This shouldn't exist in your project:
c:/devkitPro/ctrulib-master/libctru/

c:/devkitPro/libctru/
is correct.

got it when I read it again seconds after posting. I though I removed the post before anyone seen it. Guess I didn't :-P

bah, now makerom.exe is crashing, that's not helpful.
 
I'm pretty fast with replying usually. ;p

For that makerom issue, I know some recent-ish builds have been crashy.
Did you try the latest one from here? https://github.com/profi200/Project_CTR/releases

Just got the recent one, only half works though,
Code:
built ... BreadBox.3dsx
/c/devkitPro/examples/3ds/_mine/BreadBoxSource/makerom -f cia -o /c/devkitPro/examples/3ds/_mine/BreadBoxSource/BreadBox.cia -rsf /c/devkitPro/examples/3ds/_mine/BreadBoxSource/resources/build_cia.rsf -target t -exefslogo -elf BreadBox_stripped.elf -icon /c/devkitPro/examples/3ds/_mine/BreadBoxSource/resources/icon.icn -banner /c/devkitPro/examples/3ds/_mine/BreadBoxSource/resources/banner.bin
[RSF ERROR] Unrecognised Key: 'ExeFs'
[RSF ERROR] Error Proccessing RSF file
built ... BreadBox.cia

but no BreadBox.cia appears.
 
Just got the recent one, only half works though,
Code:
built ... BreadBox.3dsx
/c/devkitPro/examples/3ds/_mine/BreadBoxSource/makerom -f cia -o /c/devkitPro/examples/3ds/_mine/BreadBoxSource/BreadBox.cia -rsf /c/devkitPro/examples/3ds/_mine/BreadBoxSource/resources/build_cia.rsf -target t -exefslogo -elf BreadBox_stripped.elf -icon /c/devkitPro/examples/3ds/_mine/BreadBoxSource/resources/icon.icn -banner /c/devkitPro/examples/3ds/_mine/BreadBoxSource/resources/banner.bin
[RSF ERROR] Unrecognised Key: 'ExeFs'
[RSF ERROR] Error Proccessing RSF file
built ... BreadBox.cia

but no BreadBox.cia appears.
Yeah forgot to tell you about that, they changed the rsf format a little.
Here's a sample that should work
https://gist.github.com/jakcron/9f9f02ffd94d98a72632
or this
https://gist.github.com/jakcron/c3801fc54d0e4347e385

I think it's just removing the exefs: section mostly.
 
Last edited by zoogie,
Yeah forgot to tell you about that, they changed the rsf format a little.
Here's a sample that should work
https://gist.github.com/jakcron/9f9f02ffd94d98a72632
or this
https://gist.github.com/jakcron/c3801fc54d0e4347e385

I think it's just removing the exefs: section mostly.
I just deleted a couple of lines from my rfs file, wasn't using those options anyway.


[edit]
On a slightly related note, is it possible to rip a banner from a homebrew .cia to use in a different one?
 
Last edited by spinal_cord,
  • Like
Reactions: zoogie
So is DSP better than CSND? If so/not, why?
For one shot non-looping sounds they are about the same. For streaming sound I prefer dsp. Dsp allows you to submit sound in small chunks that will play seamlessly and you can tell when they have finished so the stream does not get out of sync. With csnd you need to use system ticks to track the sound playing position and it tends to get out of sync. There are downsides to dsp though. It requires a dsp binary which is accessible when launched as a 3dsx file but not as a cia file. To work with a cia file you first need to dump the dsp binary to a file.
 
  • Like
Reactions: cearp
For one shot non-looping sounds they are about the same. For streaming sound I prefer dsp. Dsp allows you to submit sound in small chunks that will play seamlessly and you can tell when they have finished so the stream does not get out of sync. With csnd you need to use system ticks to track the sound playing position and it tends to get out of sync. There are downsides to dsp though. It requires a dsp binary which is accessible when launched as a 3dsx file but not as a cia file. To work with a cia file you first need to dump the dsp binary to a file.

Is there a nice streaming example someplace? I'm currently using csnd in around 1 second chuncks. like so --

Code:
            int divide = 50;
            thisTime = svcGetSystemTick();
            if (oldTime < thisTime){
                oldTime = thisTime + (TPS/CALC_FREQ) ;//  50ish times per second
                calc_buffer(sound_calc_buf + offset, sample_length/(divide/2)); // 2 50ths of a second of sound
                if(showMenu == 1 || filesGot == 1){
                    memset(sound_calc_buf, 0, sample_length);
                }
                offset += (sample_length/divide); // increment by 50th of sample length
                if(offset >= sample_length/2) offset -= (sample_length/2);
            }

which does get out of sync quite easily.

is dsp hard to setup?
 
Is there a nice streaming example someplace? I'm currently using csnd in around 1 second chuncks. like so --

Code:
            int divide = 50;
            thisTime = svcGetSystemTick();
            if (oldTime < thisTime){
                oldTime = thisTime + (TPS/CALC_FREQ) ;//  50ish times per second
                calc_buffer(sound_calc_buf + offset, sample_length/(divide/2)); // 2 50ths of a second of sound
                if(showMenu == 1 || filesGot == 1){
                    memset(sound_calc_buf, 0, sample_length);
                }
                offset += (sample_length/divide); // increment by 50th of sample length
                if(offset >= sample_length/2) offset -= (sample_length/2);
            }

which does get out of sync quite easily.

is dsp hard to setup?
The 3ds audio streaming example is a good place to start. https://github.com/devkitPro/3ds-examples/tree/master/audio/streaming

You may want to play with the buffer size and count to suit your need. Fewer large buffers for streaming music and more small buffers for software mixing sound effects. Either way the principle is the same - keep a fixed number of buffers submitted/playing and as they get marked as done then fill more buffers to keep the submitted/playing count constant.
 
Anyone know why my CIAs won't work when I set SystemMode to anything higher than 64MB (like 80MB or any higher mode)? I know @aliaspider used 80MB with some RetroArch emus, and my rsf is really no different. Upon launch it just goes black and reboots. Could this be a CFW issue? I'm using CakesFW. I'm trying the RetroArch builds that use it just to see, so I'll edit with that detail.
 
Last edited by TheCruel,
Anyone know why my CIAs won't work when I set SystemMode to anything higher than 64MB (like 80MB or any higher mode)? I know @aliaspider used 80MB with some RetroArch emus, and my rsf is really no different. Upon launch it just goes black and reboots. Could this be a CFW issue? I'm using CakesFW. I'm trying the RetroArch builds that use it just to see, so I'll edit with that detail.

It's a CFW issue usually. Assuming we're talking about an o3ds here, are you able to run Smash and/or MH4U from Cakes? If not, you might want to use AuReiNand/Luma since it has reboot patches which support both the 80MB mode on O3DS and the 178MB mode on N3DS.
 
  • Like
Reactions: TheCruel
It's a CFW issue usually. Assuming we're talking about an o3ds here, are you able to run Smash and/or MH4U from Cakes? If not, you might want to use AuReiNand/Luma since it has reboot patches which support both the 80MB mode on O3DS and the 178MB mode on N3DS.
Yeah, figured that must be it. I just tried Neo Geo emu that uses it and experienced the same thing. So I'll just switch to Luma, thanks.
 

Site & Scene News

Popular threads in this forum