Git Product home page Git Product logo

toshiecosed / luma3ds_rosalinasmilehook Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 0.0 3.57 MB

SmileBasic KEY: 'RDVNV3AJ' Attempting to hook into SmileBasic via Rosalina menus. Ram read/write, networking, debug, create SmileBasic Ram-based Network Stack. SmileNet 2.0 is GO

License: GNU General Public License v3.0

Makefile 5.23% C 87.32% C++ 2.91% Assembly 1.73% Python 0.24% Objective-C 2.57%
smilebasic luma3ds cfw nintendo 3ds rosalinafork fork smilenet hacky

luma3ds_rosalinasmilehook's Introduction

Luma3DS

Noob-proof (N)3DS "Custom Firmware"

What it is

Luma3DS is a program to patch the system software of (New) Nintendo 3DS handheld consoles "on the fly", adding features (such as per-game language settings and debugging capabilities for developers) and removing restrictions enforced by Nintendo (such as the region lock). It also allows you to run unauthorized ("homebrew") content by removing signature checks.
To use it, you will need a console capable of running homebrew software on the ARM9 processor. We recommend Plailect's guide for details on how to get your system ready.

Since Luma3DS v8.0, Luma3DS has its own in-game menu, triggerable by L+Down+Select (see the release notes).


Compiling

First you need to clone the repository: To clone the original use git clone https://github.com/AuroraWright/Luma3DS.git and to clone this source use: git clone https://github.com/ToshieCosed/Luma3DS_RosalinaSmileHook (I don't know if that will work or not) Little disclaimer here: I have not modified the original license files or credit and all contents included in this repository have the same license applied to them that all of the original source's contents did. I don't take credit for the sources this is built on, it is just a derivative work in progress built using those sources. Please give credit where it is due to the original creators of these sources, the files I've commited will simply be for plugging into Rosalina as a hook and reading/writing to SmileBasic's Ram as well as sending socket out and taking socket in, and doing memory searches on SmileBasic's memory locations for unknown linear ram to map it for SmileNet 2.0's network stack. Enjoy~

To compile, you'll need armips and a build of a recent commit of makerom added to your PATH. You'll also need to install firmtool, its README contains installation instructions. For now, you'll also need to update your libctru install, building from the latest commit.
For your convenience, here are Windows and Linux builds of armips (thanks to who compiled them!) and makerom (thanks @Steveice10!).
Finally just run make and everything should work!
You can find the compiled files in the out folder.


Setup / Usage / Features

See https://github.com/AuroraWright/Luma3DS/wiki


Credits

See https://github.com/AuroraWright/Luma3DS/wiki/Credits


Licensing

This software is licensed under the terms of the GPLv3.
You can find a copy of the license in the LICENSE.txt file.

luma3ds_rosalinasmilehook's People

Contributors

toshiecosed avatar

Watchers

 avatar  avatar  avatar

luma3ds_rosalinasmilehook's Issues

Issue relating to UTF8 string interpretation between 3ds and PC side

Utf8 or utf16 formatted strings by their character code when pulled out of the user created array
within SmileBasic into the SmileNet thread do not seem to translate correctly to their corresponding characters on the PC side, this is only one of a few issues to look into.

https://github.com/ToshieCosed/Luma3DS_RosalinaSmileHook/blob/master/sysmodules/rosalina/source/petithookthread.c#L172
This line is where the issue would occur, normally you want to capture index 270 to 270+255 into a sendbuffer from the SmileNet side, and send it to the pc, using u32 *magicoffset as the start address and treat it as a u32 array. I have functions that grab that see get_value or write_sendbuffr in petithookthread.c

See the PC side Commit for the PC side code here: https://github.com/ToshieCosed/SmileNet-2.0-Pc-Test/blob/master/TCPIP_TEST/Program.cs#L174
That is where the recieve buffer on the PC side tries to interprete the UTF8 string.
Even when the string is formatted as outgoing on the pc side into utf8, and then sent over to SmileNet, the corresponding injection works correctly or seems to, but when sending the string back to the pc side using the recieve buffer as the send buffer, the characters not generated by SmileBasic's ASC('char') feature seem to be mis interpreted. I don't know why this is.

Additionaly using sprintf(sendbuffer, "The value of magicoffset is (%p) and value is (%i)", magicoffset, value) seems to cause strings from the Rosalina heap (in the Rosalina Menu) to actually get sent across the send buffer when sending the send_buffer in this way. That is also very strange, and the Rosalina heap should not be accessed when magicoffset is referenced, unless I mis understand some C. magicoffset is an address pointer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.