Releases: saiitanaa/ReSharp3DS
Release list
ReSharp3DS Builder
v2.2.4-release
Fast CIA Installation
ReSharp3DS Runtime Update
Added
-
Added
manifest.jsonsupport in the launcher. -
Added support for manifest-based
.pedisplay names.- Example:
app.pecan now appear asTestApp.
- Example:
-
Added manifest metadata support:
nameauthorversionentrydescription
-
Added selected app metadata display in the launcher:
Author: ...Version: ...
-
Added touchscreen support in the launcher.
-
Added better launcher file browser behavior.
-
Added app/folder sorting in the launcher.
-
Added
runtime_net.cppandruntime_net.h. -
Added runtime network/file helper functions:
FileExistsDirectoryExistsEnsureDirectoryDownloadFile
-
Added basic crash log infrastructure.
-
Added basic crash screen infrastructure.
-
Added future log paths:
sdmc:/ReSharp3DS/logs/crash.txtsdmc:/ReSharp3DS/logs/clr-panic.txtsdmc:/ReSharp3DS/logs/<AppName>.log
-
Added centralized input snapshot logic.
-
Added cached runtime state for:
- held buttons
- pressed-once buttons
- touch position
- circle pad position
-
Added graphics target support for top/bottom screen rendering.
-
Added transparent sprite drawing support.
Changed
- Reworked launcher app naming.
- The launcher now uses
manifest.jsonto rename the selected.peentry instead of only renaming the app folder. - The launcher now reads the manifest
entryfield to know which.pefile should receive the display name. - Replaced the old update-oriented code with a smaller runtime network helper.
- Improved input handling by avoiding multiple
hidScanInput()calls per frame. - Improved app browser organization and metadata rendering.
Removed
- Removed old updater-style API usage from the launcher.
- Removed old
UpdateInfo/CheckForUpdatestyle update flow. - Removed runtime auto-update behavior from this part of the project.
Fixed
-
Fixed duplicated
copy_json_string_value(...)definition ingui.cpp. -
Fixed generated C++ string literals where
\nhad been converted into real line breaks. -
Fixed broken
printf(...)statements in:gui.cppmain.cppruntime_net.cpp
-
Fixed invalid
'\0'generation where real null characters were inserted into source code. -
Fixed launcher metadata display being inserted into the wrong function.
-
Fixed author/version metadata rendering placement.
-
Fixed manifest behavior so metadata can target a
.pefile through theentryfield.
ReSharp3DS API Update
Added
-
Added native runtime binding for returning to the launcher:
RuntimeReturnToLauncher
-
Added native debug log binding:
DebugLogFile
-
Added native graphics target binding:
GraphicsSetTarget
-
Added native transparent sprite binding:
GraphicsDrawSpriteTransparent
-
Added support for native top/bottom screen drawing target selection.
-
Added native transparent sprite rendering.
-
Added native debug file logging path support.
-
Added native system info improvements:
- battery level
- free memory
- New 3DS detection
-
Added improved input native behavior using cached frame input data.
Changed
- Native input calls now read from a cached input snapshot instead of scanning input repeatedly.
- Native graphics code can now target different screens.
- Native debug logging is prepared to write logs into the ReSharp3DS logs folder.
- Native runtime behavior is prepared for cleaner launcher return handling.
Fixed
- Fixed pressed-once input stability by preparing frame-based input state.
- Fixed broken native C++ string literals generated during integration.
- Fixed crash/debug helper code generation issues.
ReSharp3DS SDK Update
Added
-
Added C# helper enum:
Button
-
Added C# screen target enum:
ScreenTarget
-
Added C# helper structs:
Vector2Rect
-
Added C# utility class:
Timer
-
Added C# app base class:
GameApp
-
Added input helpers:
Input.IsHeld(Button button)Input.IsPressed(Button button)Input.CirclePad()
-
Added touch helper:
Touch.Position()
-
Added runtime helper:
Runtime.ReturnToLauncher()
-
Added debug helpers:
Debug.Log(...)Debug.Warn(...)Debug.Error(...)Debug.LogInt(...)
-
Added graphics helpers:
Graphics.SetTarget(ScreenTarget.Top)Graphics.SetTarget(ScreenTarget.Bottom)Graphics.DrawSpriteTransparent(...)
-
Added save helpers:
Save.Exists(...)Save.Delete(...)Save.SetBool(...)Save.GetBool(...)
Changed
- Improved SDK usability for C# app developers.
- Made input code cleaner by allowing button enums instead of many direct method calls.
- Made touch handling cleaner by exposing a
Vector2position helper. - Made save data easier to use with boolean helpers.
- Made graphics code more flexible with screen target support.
Fixed
-
Fixed
UI.DrawProgressBar(...)so it avoids invalid/negative fill sizes. -
Fixed duplicate SDK compile issue explanation:
- apps must not compile two copies of
ReSharp3DS.cs.
- apps must not compile two copies of
Example manifest
{
"name": "App de test",
"author": "Saysaa",
"version": "0.1.0",
"entry": "app.pe",
"description": "Application de test pour ReSharp3DS"
}Expected SD structure:
sdmc:/ReSharp3DS/apps/TestApp/
manifest.json
app.peNotes
- This is an integration update.
- Some features are implemented but still need full real hardware validation.
- Crash screen and crash log functions exist, but should still be fully wired into every runtime failure path.
- Some non-blocking
snprintfpath-length warnings may remain.
v2.1.4-beta.11
v2.1.3-beta.10
Fast CIA Installation
ReSharp3DS SDK Update
- Input.IsAPressedOnce / IsBPressedOnce / etc.
- Graphics.DrawLine
- Graphics.DrawCircle
- Graphics.FillCircle
- Graphics.DrawSprite
- Graphics.DrawSprite(path, x, y, width, height)
- Math3DS.Clamp / Abs / Lerp
- Color.RGB + couleurs constantes
- Debug.Log / LogInt
- File.GetSize
- Directory.ListFiles
- Directory.ListFolders
- Runtime.Exit
- Runtime.Restart
- Runtime.GetVersion
- Runtime.GetFps
- App.Exists
- App.ReadText
- App.WriteText
- Audio.PauseMusic
- Audio.ResumeMusic
- Audio.SetMusicLoop
- Audio.PlaySfx
- UI.MessageBox
- UI.DrawButton
- UI.DrawProgressBar
Exemple
namespace ReSharp3DS
{
public class Program
{
static bool initialized = false;
static int x = 150;
static int y = 110;
static int lastSaveTime = 0;
public static void Main()
{
if (!initialized)
{
initialized = true;
Console.Clear();
Debug.Log("ReSharp3DS full API demo");
Debug.Log(Runtime.GetVersion());
Audio.Init();
Audio.SetSfxVolume(80);
Audio.SetMusicVolume(60);
x = Save.GetInt("last_x", x);
y = Save.GetInt("last_y", y);
}
x += Input.CirclePadX() / 25;
y -= Input.CirclePadY() / 25;
x = Math3DS.Clamp(x, 0, Screen.BottomWidth - 12);
y = Math3DS.Clamp(y, 0, Screen.BottomHeight - 12);
if (Touch.IsPressed())
{
x = Touch.X();
y = Touch.Y();
}
if (Input.IsAPressedOnce())
{
Audio.Beep(Notes.C5, 100);
}
if (Input.IsBPressedOnce())
{
Save.SetInt("last_x", x);
Save.SetInt("last_y", y);
lastSaveTime = Time.Milliseconds();
}
if (Input.IsStartPressedOnce())
{
Runtime.Exit();
}
Graphics.Clear(Color.Black);
Graphics.DrawText(8, 8, App.GetName(), Color.White);
Graphics.DrawText(8, 24, "FPS:", Color.Gray);
Graphics.DrawText(56, 24, Runtime.GetFps().ToString(), Color.Green);
Graphics.DrawLine(0, 220, 319, 220, Color.Blue);
Graphics.DrawCircle(x + 6, y + 6, 12, Color.Yellow);
Graphics.FillRect(x, y, 12, 12, Color.Green);
if (Time.Milliseconds() - lastSaveTime < 1500)
{
UI.DrawProgressBar(8, 200, 120, 10, 100, 100);
Graphics.DrawText(8, 184, "Saved", Color.White);
}
Graphics.Present();
Runtime.Yield();
}
}
}v2.0.3-beta.9
Fast CIA Installation
ReSharp3DS Runtime Update
- Add french translation
- Add real HTTP update system -> host.saysaa.fr/
ReSharp3DS SDK Update
- Time API
- Random API
- Touch API
- CirclePad API
- Screen constants
- App API
- SystemInfo API
- Save API
- Graphics.DrawBitmap BMP
- Audio.SetSfxVolume
- Audio.SetMusicVolume
- Audio.IsPlaying
- Audio.IsMusicPlaying
v1.9.3-beta.8
Fast CIA Installation
ReSharp3DS Runtime Update
- Add updater system It's ready but not yet deployed because I still need to buy hosting servers :(
- Auto restore/download
mscorlib.pe,latest.txtIt's ready but not yet deployed because I still need to buy hosting servers :( - Move important files to a
binsubfolder
Place bin folder here : :sdmc/ReSharp3DS/bin
v1.8.3-beta.7
v1.7.3-beta.6
Fast CIA Installation
ReSharp3DS Runtime Update
- Add app file explorer
- New Makefile
- Dynamic Native Method Mapping
ReSharp3DS SDK Update
- Add Audio Support
Available methods:
Audio.Init();
Audio.Beep(int frequency, int durationMs);
Audio.PlayWav(string path);
Audio.SetVolume(int volume);
Audio.Loop(string path);
Audio.StopMusic();
Audio.Stop();
Beep / frequency audio
Audio.Beep(440, 200);
Audio.Beep(880, 150);
Custom WAV playback
Audio.PlayWav("audio.wav");
Audio.PlayWav("sfx/jump.wav");
Paths can be relative to the launched .pe file or absolute:
Audio.PlayWav("sdmc:/MyGame/sounds/select.wav");
Recommended WAV format:
PCM 16-bit
Mono or stereo
44100 Hz or 22050 Hz
Music looping
Audio.SetVolume(80);
Audio.Loop("music.wav");
Audio.StopMusic();
Exemple
namespace ReSharp3DS
{
public class Program
{
static bool initialized = false;
static bool oldA = false;
static bool oldX = false;
static bool oldY = false;
public static void Main()
{
if (!initialized)
{
initialized = true;
Console.Clear();
Console.WriteLine("Audio test");
Audio.Init();
Audio.SetVolume(80);
Audio.Loop("music.wav");
}
bool a = Input.IsAPressed();
bool x = Input.IsXPressed();
bool y = Input.IsYPressed();
if (a && !oldA)
{
Audio.PlayWav("audio.wav");
}
if (x && !oldX)
{
Audio.SetVolume(40);
}
if (y && !oldY)
{
Audio.StopMusic();
}
oldA = a;
oldX = x;
oldY = y;
Runtime.Yield();
}
}
}v1.6.3-beta.5
Fast CIA Installation
ReSharp3DS Runtime Update
- Added basic bitmap text rendering for graphics mode.
- Added support for drawing on the lower screen from C#.
- Added an automatic console mode when the application does not use the Graphics API.
- Added
gui_can_launch()andgui_shutdown()to preserve the launcher's GUI while allowing the runtime to take over.
ReSharp3DS API Update
- Ability to create graphical applications!
- Added
Graphics.Clear(int color). - Added
Graphics.DrawPixel(int x, int y, int color). - Added
Graphics.FillRect(int x, int y, int width, int height, int color). - Added
Graphics.DrawRect(int x, int y, int width, int height, int color). - Added
Graphics.DrawText(int x, int y, string text, int color). - Added
Graphics.Present(). - Added basic
Colorconstants to the SDK.
Exemple
namespace ReSharp3DS
{
public class Program
{
static int x = 0;
public static void Main()
{
Graphics.Clear(Color.Black);
Graphics.DrawText(20, 20, "HELLO GRAPHICS", Color.White);
Graphics.FillRect(x, 80, 40, 30, Color.Red);
Graphics.Present();
x++;
if (x > 280)
{
x = 0;
}
Runtime.Yield();
}
}
}v1.5.3-beta.4
Fast CIA Installation
ReSharp3DS Runtime Update
- Change the banner, sound, and icon for the .cia file
- Converting
gui.ctogui.cpp - Added a graphical user interface to
gui.cpp(finally!) - Change in version number: Before: v1.3.2, After: v1.3.2-beta.X (This is an example)
- Bugs Fixes
- Available on Universal-Updater!




