81 Followers
27 Following
14 Posts
Releasing https://github.com/TuxSH/3ds_play_event_exporter - turns out that the 3DS's OS stores a lot more telemetry than what is shown in Activity Log
GitHub - TuxSH/3ds_play_event_exporter: PTM event log exporter (NAND savefile -> SD card text file)

PTM event log exporter (NAND savefile -> SD card text file) - TuxSH/3ds_play_event_exporter

GitHub

Introducing twlnandtool, a C++ tool inspired from twltool and focused on performance+correctness, targeting TWL NAND and "modcrypt" decryption. Enjoy!

https://github.com/TuxSH/twlnandtool

For your DS/DSi homebrew delectation and delight we bring you the latest iteration of our DS libraries now with support for threading and WPA2 capable wifi. See https://devkitpro.org/viewtopic.php?t=9662#p18269 for all the glorious details.

Thanks for your patience and continuing support. Have fun!

November 2024 updates. - devkitPro

Ys X demo is an absolute banger. Looks good, runs well and is really fun.

The demo is also the full game, just cut short at approx 20% of the story with save expected to carry-over, which is insane for a free demo.

Finally got around to updating the Luma3DS readme: https://github.com/LumaTeam/Luma3DS
GitHub - LumaTeam/Luma3DS: Nintendo 3DS "Custom Firmware"

Nintendo 3DS "Custom Firmware". Contribute to LumaTeam/Luma3DS development by creating an account on GitHub.

GitHub
sometimes, you just have to disappoint your users

Luma3DS v13.2 has been released! Notable features include screen type detection, improving top IPS displays further and playing Super-Stable 3D (followup of my RE work).

https://github.com/LumaTeam/Luma3DS/releases/tag/v13.2

Release v13.2 · LumaTeam/Luma3DS

Add "System Information" Rosalina submenu, displaying various system information, in particular screen types (TN/IPS, for each screen) In Rosalina's "Screen Filters" submenu, add a new option to "f...

GitHub

tl;dr long post with lots of tech details, skip to bottom for libctru/3ds-examples/Luma3DS commits

So, for the past two weeks, I have been reverse engineering and then documenting the New 3DS's QTM module, responsible for "Super-Stable 3D" and eye tracking, mainly its API and how it interacts with hardware, in as much detail as possible.

  • eye detection is done by running the inner camera at 30FPS then using gyro data in-between camera samples to circumvent the low camera FPS limitation ; also, eye tracking data reporting API is hardware-agnostic (I think some of it was made with VR headsets in mind, but that's just mere supposition on my part)

  • "Super-Stable 3D" is just some trigonometry on top of eye tracking, with some assumption based on calibration data (and assuming IOD (interocular distance)=62mm like the rest of the system). Essentially, it computes the horizontal deviation of the midpoints of the positions of the user's eyes from the camera and adjusts the parallax barrier's mask from its center position (from calibration) by as many (iod / 12) = 5.2mm units as needed (assuming optimal viewing distance)

  • on the hardware side, N3DS SoC and screens work differently from O3DS (this is why downgrading N3DS below 8.x results in 3D not working properly). Using a TI TCA6416A expander (clearly visible in iFixit's teardown article) via I2C, QTM repeatedly writes the parallax barrier's mask pattern (12 bits) and polarity (1 bit), and the negation of both at the following iteration, which are then sent to the LCD controller via a dedicated ribbon cable (don't we all love ribbon cables?). Interestingly, the "O3DS-like" pattern used when SS3D is disabled has a lower slit width (5 iod/12 instead of 6 iod/12)

Following this reverse-engineering work, I've added support for all service commands of all QTM services in libctru, for which v2.4.0 has been released. You can find all the nitty-gritty details of my work by checking the documentation comments inside qtm.h and qtmc.h: https://github.com/devkitPro/libctru/commit/8e55cdf05d1f2c07f350ec678d0f0d6a7a2df214

Big thanks to mtheall for his help on understanding the eye tracking data structure in QMTU_GetTrackingData.

As for the examples, 3ds-examples have been updated (though proper off-axis stereoscopy example with dedicated c3d helper functions is yet to be done): https://github.com/devkitPro/3ds-examples/commit/44faa81d79d5781c0e149e4a7005f2e005edb736

As well as Luma3DS itself for SS3D toggle, barrier position testing and calibration: https://github.com/LumaTeam/Luma3DS/commit/1c737d499f61c67a99f50382ab85f42e2049d53a and https://github.com/LumaTeam/Luma3DS/commit/2aa2013318ff541b94493dd9c73142105324edee

Add full support for all QTM services. · devkitPro/libctru@8e55cdf

This commit adds support for all service commands of all 4 QTM services (`qtm:u`, `qtm:s`, `qtm:sp` (which are built on top of one another) and `qtm:c` ("hardware check")), with precise d...

GitHub
If anyone likes making homebrew for Nintendo consoles, they should surely be familiar with devkitPro, the cornerstone that makes all of it possible. For many of us, devkitPro tools have literally changed the path of our lives, and there's so much more to do (including some *very* exciting stuff I'm personally involved with). However, devkitPro is currently in need of support to stay alive and continue to make cool things happen. If you can, please have a look at this: https://devkitpro.org/viewtopic.php?t=9631
devkitPro 2024 donation drive - devkitPro