NetSurf 3DS
This is the first (to my knowledge) homebrew port of a modern-ish web browser to the 3DS! (It is also my first 3DS homebrew release, so hopefully I'm doing it right ;D)Quick Links:
- Repository: https://github.com/coderman64/netsurf-3ds
- Downloads/Releases: https://github.com/coderman64/netsurf-3ds/releases/
- Original NetSurf website (unaffiliated): https://www.netsurf-browser.org/
Unlike previous attempts at a homebrew web browser, NetSurf 3DS is a port of a pre-existing browser, namely the NetSurf web browser. NetSurf is known for being extremely portable and lightweight, even reportedly working on <32MB of RAM in some cases. It even has a framebuffer front-end, meaning that no 3rd party GUI libraries are required. This makes it (in my opinion) an ideal case for porting to the 3DS (yay)!
What Works:
- Browsing to webpages with SSL (HTTPS) <= 1.2 (which is better than the 3DS default browser with insecure SSL <= 1.1)
- submitting basic HTML forms (like Google's search bar)
- entering web addresses and values for text entries with the 3DS's system keyboard.
- PNG, JPEG, BMP, and GIF images.
- Basic HTML/CSS
- Downloading files (I'll probably be focusing on this next)
- Webpages are hopelessly mangled (in a different way than the default browser, at least)
- NetSurf's super-basic JavaScript support doesn't yet compile and is disabled in the build process.
- WebP and SVG support doesn't exist since the required libraries have not been ported yet.
- FreeType font support is disabled in the build process (Enabling it yields an instant crash on startup), so only a simple built-in pixel-y font is provided. (It also frequently gets cut off, and text wraps incorrectly, which I think is a related issue)
- The "History" view does not work correctly.
- Only 16BPP color is currently supported (though you probably wouldn't notice, anyway).
- HTML5/WebGL (or Java or Flash) browser games
- Video playback (basic, experimental support using GStreamer exists in the code, but GStreamer hasn't been ported to 3DS yet, and even if it was, it would likely require too much RAM)
- Chrome/Firefox-level website rendering (we're only working with 64MB of RAM here, folks!)
- Modern Web 2.0 apps like Google Docs, Gmail, etc.
- An embeddable web frame (I just don't have enough free time to figure that out :-/)
v0.03
- Added CIA builds!
nsfb.cia is the normal browser as a CIA, but nsfb_himem.cia uses the 3DS's extended memory mode, giving it 80MB of memory instead of 64MB! It takes much longer to boot, though, so it is recommended to use nsfb.cia unless you run into a website that won't load without the extra memory.- Added RomFS Support. All resource files are now packed into the 3dsx or CIA file by default. This means you no longer need to extract resources.zip to /share/netsurf on your SD card!
Here are some screenshots (running in the Citra emulator):
Installation:
NetSurf 3DS is available as a 3DSX or CIA file from the GitHub releases page. Here are an explanation of each version:- nsfb.3dsx - NetSurf for 3DS as a 3DSX executable file
- nsfb.cia - NetSurf for 3DS as a CIA installable archive
- nsfb_himem.cia - NetSurf for 3DS as a CIA installable archive, using the 3DS's extended memory mode. This gives you 80MB of memory (instead of 64MB) at the cost of higher boot times, and certain 3DS system apps becoming unavailable while NetSurf is running. It is recommended that you use the other versions unless you find a website that needs the extra memory. Both nsfb.cia and nsfb_himem.cia should work identically on New3DS, but it is yet untested.
QR Code to install nsfb.cia using FBI:
Happy browsing!
Last edited by Coderman64,









