As the title says, I'm interested in the creation of payloads used by a9lh or sighax. Specifically, Id like to create a payload that would play .m4a audio files.
The speakers are not initialised this early into boot.As the title says, I'm interested in the creation of payloads used by a9lh or sighax. Specifically, Id like to create a payload that would play .m4a audio files.
is it possible to initialize them via the payload?The speakers are not initialised this early into boot.
No. Also, why not just use the built in sound player?is it possible to initialize them via the payload?
For all intents, no.is it possible to initialize them via the payload?
Well this is a hard question...As the title says, I'm interested in the creation of payloads used by a9lh or sighax. Specifically, Id like to create a payload that would play .m4a audio files.
No. Also, why not just use the built in sound player?
The 3DS sound is not bad dudeI have never seen such a god-awful audio player in my life.
The 3DS sound is not bad dude
What? It has shuffle, playlists, metadata, and repeats...yea, but its 100% featureless. no shuffle, no playlists, no repeats, no statistics, no metadata.
There is playlists, just create folders in the SD card. And there is a shuffleyea, but its 100% featureless. no shuffle, no playlists, no repeats, no statistics, no metadata.
It even runs snes games!What? It has shuffle, playlists, metadata, and repeats...
On the O3DS too!It even runs snes games!
As the title says, I'm interested in the creation of payloads used by a9lh or sighax.
Specifically, Id like to create a payload that would play .m4a audio files.
thanks for the reply man! I cracked the first part. I found a test for a payload in @d0k3 's github, fixed an error in his make file, and I can now build and load firms. as for the second part, I doubt ill be able to do all of that.I'll break this into two 'replies' of sorts since the question branches into two different areas (even if they're related).
This isn't terribly difficult, but basically, you'd compile your code into an ELF and use objcopy to extract the binary code out of it (in the case of a9lh), or take the ELF and build a FIRM file for it with TuxSH's firmtool (sighax/b9s). The thing is you have to understand the environment in which you're wanting to work, which I'll describe below in the second 'reply'.
Now this is where things would get iffy. You have to consider the A9LH/Sighax environment to be like an embedded device, or perhaps a better analogy would be a PC that's still booting/the BIOS/EFI* just finished executing. Hardware generally isn't initialised to a level where you need it to be, and there aren't any operating system drivers or services in place to let you do what you want. It's an extremely primitive environment where you have to do everything yourself (you could even think about it being like the DS or GBA). You would have to bring the screens up to show graphics (relatively easy to do, there's lots of code for it in Luma, godmode9, etc.) for a menu, and get input to drive the menu (easy to do, it's just a hardware register that you read like on the DS or GBA).
Finally, you have the issue of sound. The 3DS has a DSP chip that plays sound, but it uses its own firmware, so you would have to figure out how to initialise the chip, upload firmware to it, and then start sending sound data to it. Nobody has done this outside of the FIRM/horizon environment (meaning the main 3DS OS), so you'd not have any references to work with. You could reverse engineer parts of the 3DS OS to get going, but that would take a lot of time and effort for something you could do as suggested above: get menuhax and run a program that way, or just wait the 6-9 seconds it takes for your console to boot and run your favourite music player. Alternatively, if something like MarcusD's TreeHome gets finished, maybe it could autoboot into certain titles, but until that happens, the prior ideas are all that are really available at this point.
*Leaving aside the fact that both BIOS and UEFI have extremely rudimentary device drivers and services to get the system going, it's for the sake of analogy and explanation.
thanks for the reply man! I cracked the first part. I found a test for a payload in @d0k3 's github, fixed an error in his make file, and I can now build and load firms. as for the second part, I doubt ill be able to do all of that.