1615 Commits

Author SHA1 Message Date
ZeroSkill
f477da087c
Add support for decrypting gamecart saves (#963)
This also fixes #958
Original commits:
* initial work on cart save crypto/wearleveling
* add support for n3ds only save crypto
* use existing crc16 impl for save blockmap
* fix missing aeskey select for card2 save decrypt
* fix old/new cart media being swapped
* fix 1 MiB save chips / blockmap type 2
* move cart save wearleveling/crypto to separate file
* try 2nd wearlevel header on fail + minor fixes

* save_ctr: zero out savectx before reading fallback header
2026-05-23 12:13:22 +02:00
GitHub Actions
bba9f054da Automatic translation import 2026-05-15 02:26:22 +00:00
d0k3
6097fa2754 Fix sporadic issues in RemoveBDRIEntry
This fixes #857
2026-05-10 12:30:00 +02:00
Pk11
321d14ce7b CI: Fix a couple of minor bugs 2026-05-09 12:25:41 +02:00
rosaage
e7fba495dc Change order of issuers for DEV. Fixes #959 2026-05-09 12:23:49 +02:00
GitHub Actions
5793231566 Automatic translation import 2026-04-15 01:46:15 +00:00
GitHub Actions
e53b03b854 Automatic translation import 2026-04-01 01:50:52 +00:00
GitHub Actions
0ee81b7738 Automatic translation import v2.2.3 2026-03-30 14:56:51 +00:00
Pk11
2c108764f9 Auto update en.json version 2026-03-30 16:54:22 +02:00
d0k3
0f9a5f75f7 Updated 10th anniversary splash logo v2.2.2 2026-03-29 21:50:55 +02:00
ihaveahax
2e80d3706a Lua io: remove debug prints 2026-03-28 12:28:27 +01:00
ihaveahax
21e421709d Lua io: implement file:lines 2026-03-28 12:28:27 +01:00
ihaveahax
ab72328652 Lua io: file:read now returns nil when seek is at eof, to match original module 2026-03-28 12:28:27 +01:00
ihaveahax
d6c537a626 Lua io: fix read mode opening by actually setting readable attribute 2026-03-28 12:28:27 +01:00
GitHub Actions
53cafcb66d Automatic translation import 2026-03-25 22:20:57 +00:00
Tage Mellemstrand
584b68b7b1
Add support for reading and writing to I2C devices from lua (#934)
* Add i2c read support to lua

* Add i2c write support to lua

With memory permissions before write

* Adjust i2c write

* Fix inverted id check, better permissions

* Change write to not return anything on success

* Add some documentation for lua i2c

* Change write length from 1024 to 64

* Add whitelist for i2c writing

* Move i2c module into preload

* Add registers and bitmasks for mcu

Add documentation to lua-doc

* Fix missing column divider in lua-doc

* Add ~= 0 then to lua example

* Add some more registers
2026-03-25 23:18:03 +01:00
d0k3
468a91b414 Increment the translation version number to accomodate for new strings 2026-03-25 17:02:15 +01:00
Nicholaos Mouzourakis
27c5a5c4f3 Fixing LUA MemTextViewer calls. 2026-03-25 11:31:14 +01:00
Nicholaos Mouzourakis
35cf7898cc Adding code comments from github comments as per suggestion. 2026-03-25 11:31:14 +01:00
Nicholaos Mouzourakis
04072d5b62 Adding clipboard select/cut/copy/paste support. 2026-03-25 11:31:07 +01:00
Nicholaos Mouzourakis
d65a5b6771 Adding text editor functionality to text viewer. 2026-03-25 11:30:09 +01:00
MisterSheeple
1bbd8193d1
Update Lua to 5.4.8 (#939)
* Update lapi.c

* Update lcode.c

* Update lcode.c

* Update ldebug.c

* Update ldo.c

* Update ldo.h

* Update lparser.c

* Update lstate.c

* Update lua.h

* Update lvm.c

* Update lua-doc.md

* Fix missing newline

* Update lcode.c

* Update ldo.c

* Update lvm.c

* Update lvm.c

* Update README.md
2026-03-25 11:13:09 +01:00
AriA99
65b55f9d60
Dump cart ID2 properly in private header (#862)
* Add cart_id2 to gamecart.h

This prepares changes to fix private header dumps.

The name ID2 matches Lotus3 (see Switchbrew) since it's evident Lotus3 is just a continuation of the 3DS cart controller

* Add Cart_GetID2() to protocol.h

This prepares changes to fix private header dumps.

The name ID2 matches Lotus3 (see Switchbrew) since it's evident Lotus3 is just a continuation of the 3DS cart controller.

* gc protocol: Add support to get ID2

This renames the unknowna0_cmd to its proper name and the A0_Response to CartID2, matching Lotus3 terminology.

* Store ID2 in private header at +0x44

The ID2 contains important information that in particular determines the cryptographic keys used. It is impossible to decrypt a dump of cart<->controller communications without knowing the ID2 or trying all possible keys.

This behavior matches Gateway. I suppose that it was presumed that Gateway would always store zeroes there because regular cartridges on retail would always report zero and then everybody just copied this false assumption.

* fix build (gamecart.c): memset->memcpy

* fix build (protocol.c): Fix dupe definition of Cart_GetID()
2026-03-20 15:53:37 +01:00
Tage Mellemstrand
9310455cac
Add function to detect the gyro model in a 3ds (#949)
* Add gyro model detection

* Add gyro detection to sysinfo

* Add gyro model as lua global

* Normalize line endings to LF

* Add documentation, add var to gm9 script, change model to start at 1
2026-03-20 15:29:18 +01:00
Pk11
d2445f0396
Scripting: Normalize output of FormatBytes (#947)
* Scripting: Normalize output of FormatBytes

* lua: Add flag to use locale when formatting bytes

Co-Authored-By: ihaveahax <ian@ianburgwin.net>

---------

Co-authored-by: ihaveahax <ian@ianburgwin.net>
2026-03-18 16:39:29 +01:00
GitHub Actions
22939ec6ad Automatic translation import 2026-03-15 01:29:29 +00:00
Wolfvak
7eb559cf21
NVRAM Write capability (#946)
* Writable NVRAM

Also refactors the spiflash module to detect chips at runtime
2026-02-21 20:51:42 -03:00
GitHub Actions
8754d32fe0 Automatic translation import 2026-02-15 01:25:06 +00:00
GitHub Actions
04a45a1716 Automatic translation import 2026-01-01 01:12:06 +00:00
GitHub Actions
60455ad1b6 Automatic translation import 2025-12-15 01:06:53 +00:00
GitHub Actions
8dd74f2810 Automatic translation import 2025-11-01 01:02:53 +00:00
GitHub Actions
74c28ca269 Automatic translation import v2.2.1 2025-10-24 06:10:23 +00:00
Pk11
2c11812cf9 Automate translation upload/downloads 2025-10-23 13:48:00 +02:00
Pk11
92f8d90032 Add Korean font 2025-10-23 13:46:35 +02:00
ihaveahax
8180fe7c2a lua-doc: document fs.verify sig_check 2025-10-22 11:57:23 +02:00
ihaveahax
d40f1dd022 arm9/lua/gm9internalfs: support sig_check in fs.verify 2025-10-22 11:57:23 +02:00
d0k3
34ca0fc3a7 Enable restore of original compression for NCSD & NCCH 2025-10-22 11:57:23 +02:00
d0k3
ceabad8b3f Enable optional signature verification for NCCH & NCSD 2025-10-22 11:57:23 +02:00
d0k3
748c46ed5a Language setting: reduce code duplication, set default font 2025-10-18 13:46:32 +02:00
d0k3
c8caf5888f Fix -flto parameter in Makefiles 2025-10-17 19:38:36 +02:00
d0k3
e388028cc0 Fix stray %s in string - fixes #906 2025-10-17 19:38:36 +02:00
d0k3
18e6ed541a Fix compiler warnings 2025-10-17 19:38:36 +02:00
d0k3
7306f500c5 Fix continuous integration (--break-system-packages) 2025-10-17 19:38:36 +02:00
lkdjfalnnlvz
d2c504848b
CJK fusion-pixel-font Tweaks (with extended latin tweaks) (#901) 2025-10-17 19:00:59 +02:00
Danny Tsai
45b6aa1e2f
Tweak ascii section to make it looks more balanced with chinese characters (#895) 2025-10-17 18:59:28 +02:00
Danny Tsai
320a3fe0ee
Allocate buffer for support/font/lang files properly (#894)
Merged, thank you!
2025-10-17 18:58:29 +02:00
TY
e83f58e841
Fix compiling on non-UTF8 system, especially Windows (#903)
* Fix compiling on non-UTF8 system

* Update Makefile

* Revert Makefile changes
2025-10-07 18:23:22 +02:00
ZeroSkill1
cf1cb1cfc5 fix a few cases of improper varg usage in luaL_error 2025-04-26 14:38:59 +02:00
ihaveahax
9ae4351bce
Lua documentation fixes (#910)
* lua-doc: Fix fs.find_all documentation

It returns an array, not a string. Also document return information.

* lua-doc: Remove TODO for fs.verify_with_sha_file

No reason to add fs.read_file errors here as that function gets
pcall-ed. If it fails, nil gets returned.

* lua-doc: Consistently refer to tables/arrays as tables

That's what they're called within Lua all the time.

* lua-doc: fix incorrect references to util module
2025-04-26 14:38:25 +02:00
ihaveahax
99f1abd7a4 lua io: fix incorrect mode detection
string.find has pattern matching by default, so it was incorrectly
reading "r+" when the mode was supposed to be "r". So this disables the
pattern matching and does a plain substring search.
2025-04-26 14:37:46 +02:00