95 Commits

Author SHA1 Message Date
d0k3
a20c955e2a Updated readme credits 2025-03-22 14:06:27 +01:00
ihaveahax
ba0272ff5d
Lua support (#878)
* Test implementation of lua

* Trust that lua knows what its doing with this

Silence warnings

* actually update top screen when Thingy is called, disable unnecessary ShowPrompt calls

* readme

* change init for a simple test, print error on top screen too

* Readme

* change init for a simple test, print error on top screen too

* enable more lua libs, edit init.lua with string examples

* one more readme edit before bed

* Readme

* change init for a simple test, print error on top screen too

* enable more lua libs, edit init.lua with string examples

* make lua a proper file type, add test UI library with two functions, remove luacmd command

* remove old attempts at editing lauxlib and liolib

* README

* README

* FS lib, new UI stuff

* consistency with "type* ptr" maybe

* add custom package searcher, reset package.path

* new functions for UI including basic print output buffer, add "Lua scripts..." option to home/power menu

* build vram0.tar including subdirs of data

* move default path to GM9LUA_DEFAULT_PATH

* FS_FileGetData

* testfgd, add GM9VERSION global, update README, fix indentation

* FS_FileGetData will return a nil instead if it fails

* it's actually luaL_pushfail

* os

* use luaL_tolstring instead of lua_tostring

* fix test/remove debugging showprompt

* os.clock float attempt

* fix print for real

* fix swapped offset and size for FileGetData

* finish OS stuff

* fix os.clock

* shorten table in/out

* remove .vscode dir

* enum test

* support building without lua

* NO_LUA hides menu options (except when you directly select a lua file)

* update UI lib to better match the ideas on #1

* dockermake

* add DrawPNG function

* whoops its ShowPNG

* minor fixes, add DrawPNG

* fix AskPrompt, add all showprompts mentioned in #1

* add newly added functions to readme

* try to keep separate code and data

* update lua to 5.4.7

* remove test libraries now that i want to attempt to implement in a real api

* add nix flake for building

* add various lua functions, some of them taken from the old attempt but with new names

* add dev shell to flake.nix

* remove test lua scripts in root

* add test lua scripts in data/luascripts

* add a whole bunch more lua functions and stuff

* add more test lua scripts

* add more functions, add preload script, add test io compatibility module

* add more functions and test scripts

* more functions and stuff

* more functions and stuff

* more functions and stuff, plus a wip ctrcheck reimpl

* yet more functions and stuff

* even more functions and stuff

* command comparison table.ods

* update command comparison table.ods

* update command comparison table.ods

* Add files via upload

* update command comparison table.ods

* update ui.show_text to use DrawStringCenter, update ctrcheck rewrite

* Split up the ARM9 code (.text, .vectors) and data (.rodata, .data, .bss) sections into their own ELFs.

This allows us to use more ARM9 WRAM while leaving the 128k BootROM mirror intact.

* use the makefile definition

* add title module, move around some functions, update command comparison table

* add readme for lua

* remove liolib.c and loslib.c

* more functions and things, use CheckWritePermissionsLuaError in place of more manual checks, update command comparison table

* add missing constant

* set CURRDIR to nil instead of "(null)" if not found

* remove gm9enum (unused since the restart)

* add ui.check_key

* split fs module to lua overlay and _fs internal module, and add a check for fs.write_file in lua

* add fs.ask_select_file and fs.ask_select_dir

* add fs.key_dump, replace overwrite_all and append_all with overwrite and append

* add fs.cart_dump and sys.emu_base

* add ctrtool, update flake.lock

* add io append mode

* make sure io.open with write mode starts with an empty file, add os.remove and os.rename aliases

* properly implement os.remove compatibility

* add fs.verify_with_sha_file, fix PathIsDirectory by using stat instead of opendir

* add util.running_as_module (untested)

* move scripts over to https://github.com/ihaveamac/GM9-lua-script-experiments

* remove ods and dockermake.sh

* remove data/scripts

* add lua autorun (untested)

* fix syntax error

* add sys.check_embedded_backup

* remove accidental symlink

* add sys.check_raw_rtc

* fix ui.show_file_text_viewer not freeing memory or reporting an error if OOM happens

* add todo notes for ui

* work-in-progress lua doc

* formatting fix

* up heading level for all sections

* Revert "up heading level for all sections"

This reverts commit 6ef14b619536b4253e341ba40b4dea728358979d.

* separators

* fix name and error for fs.move

* do explicit permission checks in fs.move

* fix error string for fs.copy

* fix function name for fs.dir_info

* fix error string for fs.find and fs.find_not

* fix function name for fs.img_umount

* partial fs doc

* finished fs doc, string fixes for fs module

* document fs.cart_dump encrypted opt, remove stat from fs.verify_with_sha_file

* title doc

* sys doc, error string updates

* util doc

* add json.lua to lua-doc

* add fs.find_all

* add 3dstool to flake

* make fs.find_all recursive actually recursive, document fs.find_all

* add "for" to comparison table

* change fs.find to return nil if no path was found, instead of raising an error

* change ui.echo to automatically word wrap (untested)

* Revert "change ui.echo to automatically word wrap (untested)"

This reverts commit 2524e7707708e9818162c31f9f004b6301a3061b.

* switch devkitNix to upstream

* flake.lock: Update

Flake lock file updates:

• Updated input 'devkitNix':
    'github:ihaveamac/devkitNix/883d173b94e3da8dc4cc0860cdda8c36b738817c' (2024-12-05)
  → 'github:bandithedoge/devkitNix/95fd44f4ac7cecf24edf22daa899a516df73c6b7' (2025-01-11)
• Updated input 'devkitNix/nixpkgs':
    'github:NixOS/nixpkgs/566e53c2ad750c84f6d31f9ccb9d00f823165550' (2024-12-03)
  → 'github:NixOS/nixpkgs/4bc9c909d9ac828a039f288cf872d16d38185db8' (2025-01-08)
• Updated input 'hax-nur':
    'github:ihaveamac/nur-packages/c570b3830f7dd4d655afb109300529c896cd8855' (2024-12-05)
  → 'github:ihaveamac/nur-packages/cd49afba206c2eb10a349d92470fdf2cc942ae23' (2025-01-11)
• Updated input 'hax-nur/nixpkgs':
    'github:NixOS/nixpkgs/2c15aa59df0017ca140d9ba302412298ab4bf22a' (2024-12-02)
  → 'github:NixOS/nixpkgs/4bc9c909d9ac828a039f288cf872d16d38185db8' (2025-01-08)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/566e53c2ad750c84f6d31f9ccb9d00f823165550' (2024-12-03)
  → 'github:NixOS/nixpkgs/32af3611f6f05655ca166a0b1f47b57c762b5192' (2025-01-09)

* flake.lock: Update

Flake lock file updates:

• Updated input 'devkitNix':
    'github:bandithedoge/devkitNix/95fd44f4ac7cecf24edf22daa899a516df73c6b7' (2025-01-11)
  → 'github:bandithedoge/devkitNix/a344b0200a044f2d2ff99685f13ff7c53106428e' (2025-02-06)
• Updated input 'devkitNix/nixpkgs':
    'github:NixOS/nixpkgs/4bc9c909d9ac828a039f288cf872d16d38185db8' (2025-01-08)
  → 'github:NixOS/nixpkgs/5b2753b0356d1c951d7a3ef1d086ba5a71fff43c' (2025-02-05)
• Updated input 'hax-nur':
    'github:ihaveamac/nur-packages/cd49afba206c2eb10a349d92470fdf2cc942ae23' (2025-01-11)
  → 'github:ihaveamac/nur-packages/2ce890cab4e948109ad1ad82ba18e69240a0d352' (2025-02-06)
• Updated input 'hax-nur/nixpkgs':
    'github:NixOS/nixpkgs/4bc9c909d9ac828a039f288cf872d16d38185db8' (2025-01-08)
  → 'github:NixOS/nixpkgs/8532db2a88ba56de9188af72134d93e39fd825f3' (2025-02-02)
• Added input 'hax-nur/treefmt-nix':
    'github:numtide/treefmt-nix/bebf27d00f7d10ba75332a0541ac43676985dea3' (2025-01-28)
• Added input 'hax-nur/treefmt-nix/nixpkgs':
    follows 'hax-nur/nixpkgs'
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/32af3611f6f05655ca166a0b1f47b57c762b5192' (2025-01-09)
  → 'github:NixOS/nixpkgs/5b2753b0356d1c951d7a3ef1d086ba5a71fff43c' (2025-02-05)

* make devkitNix and hax-nur inputs follow nixpkgs

* Also dump section headers on .dis file

* prepare for upstream merge

* Restore original README.
* Remove flake, was only used for my own testing

* fix accidental removal of LIBS

* copy lua-doc.md into release archive

* README: update to mention Lua in place of GM9Script, add credits

* lua-doc: fix typo

* add sample HelloScript

* lua-doc: remove wip notice, since all gm9script features are replicated

* remove accidental inclusion of language.inl

* Fix mixture of tabs and spaces

* remove accidental nix leftover

* re-add @ for add2tar command

---------

Co-authored-by: luigoalma <luigoalma@hotmail.com>
Co-authored-by: Gruetzig <florianavilov@gmail.com>
Co-authored-by: Florian <88926852+Gruetzig@users.noreply.github.com>
Co-authored-by: Wolfvak <soherrera1@hotmail.com>
2025-03-21 08:25:04 +01:00
Pk11
61c79e3e3f Add Fusion font for Chinese 2025-03-13 13:37:54 +01:00
Danny Tsai
8b362c977a
Correct installable address whitelist (#816)
* Correct installable address whitelist

blacklist is stored at 0xb088~0xb0bf, which is ulong[14] in
{start(inclusive), end(exclusive)} pair.
one thing to note is that boot9 use inclusive comparing with
blacklist start for both section load address and
section load address + section size (comparing logic is
at 0xa42e~0xa449), so if the firm fits perfectly at the end
of the space right before the blacklisted range,
it'll also be rejected.

* shrink vram drive size to avoid bleeding into blacklisted range
2023-07-21 21:39:08 -03:00
Danny Tsai
b7c97af144
Update README.md to match current VRAM drive info (#815) 2023-06-02 18:13:09 -03:00
Pk11
620e5061c5 Add font/language info to README, Pk11 to credits 2023-04-15 12:54:02 +02:00
Pk11
b366200d4b Switch to a RIFF font format
Fix height of ラ character

I accidentally made it 1px too tall before

Add Cyrillic to default font

Make Я more like latin R

Right after I commit, looking at my screenshot I notice I forgot to tweak the Я to be more angled like this font's latin R...

Improve the default font's Kana

derp fix

Properly handle invalid UTF-8

Fix conversion PBMs with non-byte aligned rows

Rename font extension to .frf

For Font RiFf

Re-add PBM font support

Default converting to CP-437 and try guess size

Revert "Default converting to CP-437 and try guess size"

Reverts 2c9a47d224b28cbb51a3ee335fd9970265201b72 as I think the old behaviour works better given PBM font support being kept

Re-add mapping file for CP-437

Automatically use mapping file with same name as image

ex. for "font_6x10.pbm" it will use "font_6x10.txt" in the same directory
2021-11-14 22:13:55 +01:00
Wolfvak
37c8c50097
fix the "conact" typo (#709)
also adds a direct link to the irc channel
2021-06-02 09:03:37 -03:00
Wolfvak
c2d96c0d9c add a "contact info" section in readme
contains both irc and discord links, and removes the discord link at the bottom
2021-06-01 20:07:02 +02:00
SirNapkin1334
8b5af2c22f Update Discord Link :/ 2021-03-11 08:39:28 +01:00
d0k3
bea16124a4 Readme updates 2021-02-22 17:12:07 +01:00
d0k3
203cf7f9e3 Include obfuscated AES key database 2021-01-30 13:22:05 +01:00
Gabriel Marcano
d010f2858b Remove trailing white space
- Removed trailing whitespace from all source code files (.c, .h. and
   .s) and the README.md
2020-08-26 23:01:58 +02:00
d0k3
2fd6915075 Readme: fix an error
thanks @profi200 !
2020-06-02 17:04:32 +02:00
d0k3
43753535d7 Readme: Added "digital preservation" paragraph 2020-05-18 23:24:32 +02:00
d0k3
73dc54a754 Readme: add a note about 4GiB cart dumps missing the last byte
As asked for in #593
2020-05-11 17:19:27 +02:00
d0k3
dc746f69c5 Readme updates for changed stuff 2019-10-11 16:28:07 +02:00
aspargas2
85960298e4 add wwylele and myself to the credits
because Wolfvak said I could :3
2019-09-29 19:53:30 +02:00
d0k3
602b6fc7df Updated readme file, recommend fastboot3DS as bootloader 2019-04-29 00:30:08 +02:00
d0k3
223d327fca README: Mention POWER as altenative to HOME
fixes #449
2019-01-02 01:00:31 +01:00
d0k3
b897d15474 Readme updates 2018-07-25 00:14:14 +02:00
DMSalesman
ae8c27fcad Celebrating commit no. 1024: Fixed readme typos 2018-07-23 01:03:07 +02:00
d0k3
bc5f187a0f FIRM installs: clarify sighax injection
Fixes #397
2018-07-16 17:02:26 +02:00
SirNapkin1334
795716957e Celebrating commit no. 1000: Improved readme fix 2018-05-23 23:27:33 +02:00
d0k3
a981b4375e Fix readme file
Thanks @PC-Reviver
2018-05-23 00:30:06 +02:00
d0k3
87890ebc83 Compatibility for mounting fb3ds.firm
This allows handling of the superhaxed fb3ds firm.
2018-05-11 17:45:39 +02:00
d0k3
a35ebacab1 Readme: added 'Buttons' section 2018-04-30 02:28:58 +02:00
Wolfvak
19209918a7 Deprecated PCX code in favor of PNG. 2018-04-03 01:17:58 +02:00
d0k3
9239cdc289 Updated readme file 2018-03-21 23:11:13 +01:00
SirNapkin1334
388a89a970 Remove XORPADs from README
Since the [X:] drive was removed, there's no reason to mention it in the ReadMe.
2018-02-12 02:11:30 +01:00
d0k3
6beec28470 README.md / HelloScript.gm9: minor stuff 2018-01-23 02:00:21 +01:00
d0k3
40598423da Improved progress indicator for drive CMAC fixer 2018-01-17 23:53:48 +01:00
d0k3
28ba5a85b3 README: Added hint about updating the essential backup 2017-12-28 02:34:06 +01:00
Ian Burgwin
e94adae363 Add a custom Python script "add2tar.py" to create the vram0 tar file 2017-12-25 01:54:28 +01:00
d0k3
5ef4dda899 Update README credits
... also sneak in a fix for the last two typos
2017-12-19 22:44:54 +01:00
d0k3
585172f810 Added the ability to install aeskeydb.bin to NAND 2017-12-11 14:55:44 +01:00
d0k3
3dd8a4764e Allow compiling multi-script autorunners 2017-12-07 02:01:15 +01:00
d0k3
c63a6e26c8 README: Added some missing info
Thanks @SirNapkin1334
2017-12-05 00:10:16 +01:00
d0k3
63767e5eae Updated build system
Includes better handling for FLAVOR now, AUTO_UNLOCK for unlock
sequences and setting SD_TIMEOUT from make
2017-11-24 18:21:02 +01:00
DMSalesman
f157dcd542 README.md: Fixed typo and improved readability 2017-11-22 22:47:11 +01:00
d0k3
c18ac35d45 General fixes and cleanup
Thanks @Kazuma77 for pointing that stuff out!
2017-11-20 17:50:48 +01:00
d0k3
ada25ea534 README: Updated build instructions 2017-11-17 19:37:45 +01:00
Death Mask Salesman
5462f2d5e8 Fix typos in readme file 2017-10-13 00:45:12 +02:00
d0k3
ee26458341 Fix caption types in Readme 2017-10-02 00:22:21 +02:00
d0k3
21c1ae30fe Allow piggybacking filesystem images to the GodMode9 firm
... just put an image file called `vram0.img` into data - max size:
3MB(!).
2017-09-27 02:13:03 +02:00
lucario1001
e019b5e848 Update README.md 2017-09-27 01:09:18 +02:00
d0k3
dcafbaa191 Improved ntrboot checks
... this also restores default behaviour when booting from ntrboot and
simplifies the bootloader behaviour.
2017-09-23 13:11:38 +02:00
Death Mask Salesman
a92c993573 Fixed typos 2017-09-22 17:45:51 +02:00
d0k3
73d4ba0ab8 Documented the undocumented bootloader 2017-09-20 01:31:28 +02:00
d0k3
20ac0573a5 Updated readme credits 2017-09-19 15:25:01 +02:00