Home / News / Homebrew Channel Coming Soon to the 3DS

Homebrew Channel Coming Soon to the 3DS

3ds1

(Update) The 3DS exploit game, will be announced this week. So you to can start enjoying some homebrew and emulators on the 3DS.

wpid-screenshot_2014-08-25-21-09-37-1.png

 The Nintendo DS has had a healthy homebrew scene but has been limited to only certain firmware. @smealum has said “that this exploit should support 3DSxl and the 2DS consoles, on firmware versions  4.0-8.1. He also has mentioned that the exploit game will be cheap around 7-10 dollars. It will also be available in the eshop but it’s not in every region.

3ds2

3ds

 Smealum has stated that his homebrew channel for the 3DS is using an exploit that isn’t enough to play pirated 3DS games”.

 So, your best bet is to get a physical copy of the game needed to run this exploit. The 3DS exploit game will be announced this week. So you to can start enjoying some homebrew and emulators on the 3DS.

Here a video of the 3DS exploit : running unsigned code on 6.3

“What the title says. If you have seen lolSnes, you know what to expect. This project even reuses a lot of lolSnes’s code.

Like everything else regarding 3DS homebrew, this is in early stages and full of issues. I won’t be distributing builds before the first official release for this very reason. First official release will be when there’s enough PPU support.

The source code is available in a Github repo: https://github.com/StapleButter/blargSnes

This isn’t the cleanest code ever, but it can serve as a handy reference for 3DS homebrew development (or SNES emulation, although I wouldn’t recommend it :P ).

There’s a thread somewhere in this forum explaining how to build 3DS homebrew. If you want to build blargSnes, follow exactly that. To run blargSnes, you’ll need a 3DS on 4.5 or lower and a Gateway. This will surely change in the future (although you don’t have to be scared of bricking your 3DS if you have a genuine Gateway and downloaded Launcher.dat from their website).

blargSnes works the same way as lolSnes. On the 3DS’s SD card (not the Gateway MicroSD), create a folder named ‘snes’ and put your SNES ROMs in there. With that done, start blargSnes, and you see a ROM selection menu. Select your ROM and press A (or B). See what happens.

Current status

It runs SMW.

MOlCax07CLbczx

https://cdnssl.hackinformer.com/wp-content/uploads/2014/08/09152335/MOlCax0.jpg
https://cdnssl.hackinformer.com/wp-content/uploads/2014/08/09152334/7CLbczx.jpg

Shitty colors brought to you by usage of a phone camera in the dark. The emulator itself renders colors accurately.

For now, nothing else will run, because there is a very dirty hack that skips SMW’s SPC700 upload routine. This will change in the near future though. I might use methods similar to the ones SnesAdvance employed back then.

PPU support is very preliminary, as you can see. It’s hardcoded to render a couple layers for the sake of testing, no sprites yet.

lolSnes’s PPU code can’t be reused in blargSnes. It relied extensively on the DS’s 2D GPU, and the 3DS has nothing similar in 3DS mode. Because of that, rendering has to be done in software, which may end up killing performance. In the worst case, frameskip will be used to achieve decent speeds.

I tried to port in lolSnes’ SPC700 core, but it gave me trouble. Due to the way SPC700 transfers are done, synchronizing it with the CPU less often makes transfers take more time, but at the same time, synchronizing more often tends to kill performance.

So for now, I just skipped all that, so I can get a serious game running and work on the PPU.

I didn’t have that kind of issues on the DS because I didn’t care about syncing the two. One ran on the ARM9, the other on the ARM7, and they were happy. On the 3DS however, no such parallel execution for userland apps, you need to hack the kernel to be able to use the two ARM11 cores.

There’s also vertical tearing and all sorts of artifacts caused by the framebuffer rendering which isn’t quite mastered yet (in particular, it isn’t known how to sync to the display refresh rate). Closing your 3DS, pressing the Home button or moving the 3D slider can also cause images to disappear or become garbled (top screen is particularly susceptible to that because it uses an atypical color format).

Roadmap

* implement enough PPU support to be able to call it useful (in particular, sprites come to mind)
* (re)implement saving
* optimize some shit (DMA is horribly inefficient, for one)
* fix the framebuffer related issues I mentioned above
* implement sound, whenever we figure out how to make the 3DS play sound (and when I can get around implementing the SPC700 without causing major slowdowns)

Credits

* 3dbrew and all the people who made 3DS homebrew a possibility
* anyone who helped make lolSnes work”

Soucre: @smealum on twitter and gbatemp.net

About hackinformer

hackinformer
I like to get everyone the right info and I like to help others get the most from there electronic devices. I enjoy playful cleverness and the exploration of technology. My Motto: You own it, you can do whatever you want with it.