-
Notifications
You must be signed in to change notification settings - Fork 4
docs: new tool docs, update readme, and removed unused commands #119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
c38ed97
docs(desmume): add desmume mod v1
priverop c3df3a8
docs(README): refactor the main document
priverop d75baff
docs(index): change index to match README
priverop 0ead9b0
docs: add logos
priverop ab05bc8
chore(scripts): remove unused scripts
priverop 58416a5
docs: add other hacker researchs
priverop 9677398
docs: add document for scripts
priverop 3ed44cf
docs: remove how to from install doc
priverop edc0e60
docs(specs.summary): fixed some descriptions, added final dots.
priverop 9d4c06b
refactor(alar): remove specific alar2/alar3 commands
priverop c9f3102
docs(usage): add usage document
priverop 5f8a4c7
docs(scenegate): add scenegate
priverop dab3b77
docs: fix line length
priverop bc26127
style(readme): fix line length
priverop 16e954d
fix(summary.md): wrong periods
priverop File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,112 +1,64 @@ | ||
| # JUSToolkit | ||
| <div align="center"> | ||
| <h1 align="center">JUSToolkit</h1> | ||
| </div> | ||
|
|
||
| Romhacking tools for Jump Ultimate Stars! (NDS) | ||
| [](https://choosealicense.com/licenses/mit/) | ||
| <div align="center"><img src="docs/images/logo_full.webp"></div> | ||
|
|
||
| ## Features | ||
|
|
||
| Done ✔️ To test / with issues ⚠️ Not done 🛑 | ||
|
|
||
| ### Containers | ||
|
|
||
| - Pack .aar ALAR3 ✔️ | ||
| - Unpack .aar ALAR3 ✔️ | ||
| - Pack .aar ALAR2 ✔️ | ||
| - Unpack .aar ALAR2 ✔️ | ||
|
|
||
| ### Graphics | ||
|
|
||
| - Extract ALMT + DIG ✔️ | ||
| - Import ALMT + DIG ✔️ | ||
| - Extract DTX ✔️ | ||
| - Import DTX 🛑 | ||
|
|
||
| ### Texts | ||
|
|
||
| - Extract and import ✔️ | ||
| <p align="center"><em>Romhacking tools for Jump Ultimate Stars! (NDS).</em></p> | ||
|
|
||
| ### Batch Features | ||
|
|
||
| - Extract every .dig from any .aar (ALAR2/ALAR3) to PNG ✔️ | ||
| - Import multiple PNGs to an .aar ALAR3 container ✔️ | ||
| <p align="center"> | ||
| <img alt="GitHub last commit" src="https://img.shields.io/github/last-commit/priverop/JUSToolkit?color=blue"> | ||
| <img alt="Build and release" src="https://github.com/priverop/JUSToolkit/actions/workflows/build-and-release.yml/badge.svg?branch=master"> | ||
| <img alt="MIT License" src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat"> | ||
| </p> | ||
|
|
||
| ### Scripts | ||
| --- | ||
|
|
||
| - **beta.sh:** generates a new beta translation rom if you have access to the | ||
| Translation repo. | ||
| - **copy_text_format:** generates a new text format. | ||
| - The rest are testing scripts for devs. | ||
|
|
||
| ## Tinke | ||
|
|
||
| You can use [Tinke by pleonex](https://github.com/pleonex/tinke) to unpack | ||
| containers and view .dig files. | ||
|
|
||
| ## Build | ||
|
|
||
| The build system requires | ||
| [.NET 8.0 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0). | ||
|
|
||
| ## How To Use | ||
| ## Features | ||
|
|
||
| `./JUS.CLI jus [type] [feature] [args]` | ||
| - **Containers** - Unpack and pack **ALAR** files (.aar). | ||
| - **Texts** - Export and import _.bin_ files, including the **JQuiz**. | ||
| - **Textures** - Export and import **DIG** (_.dig_) + **ALMT** (_.atm_). | ||
| - **Sprites** - Export and import **DTX**, including **Komas**. | ||
| - **Automatizations** - Utilities to batch export and import multiple files. | ||
|
|
||
| - graphics | ||
| - export-dtx | ||
| - export-dig | ||
| - import-dig | ||
| - containers | ||
| - export-alar3 | ||
| - import-alar3 | ||
| - export-alar2 | ||
| - import-alar2 | ||
| - import | ||
| - export | ||
| - batch | ||
| - export-alar-png | ||
| - import-png-alar3 | ||
| - game | ||
| - import | ||
| Check [**usage**](https://priverop.github.io/JUSToolkit/docs/tool/usage.html) | ||
| for more info. | ||
|
|
||
| To get the arguments of a feature you can use: | ||
| `./JUS.CLI jus [type] [feature] -h` | ||
| ## Requirements | ||
|
|
||
| Examples: | ||
| `./JUS.CLI jus containers export-alar3 --container test.aar --output myDirectory` | ||
| `./JUS.CLI jus containers export-alar3 -h` | ||
| The utility requires the | ||
| [.NET 10.0 runtime](https://dotnet.microsoft.com/en-us/download/dotnet/10.0), | ||
| and works in every OS. | ||
|
|
||
| ## Documentation | ||
|
|
||
| ### Documents | ||
|
|
||
| You can find these documents in our [`docs/articles/dev`](docs/articles/) | ||
| folder: | ||
|
|
||
| - Alar Specification | ||
| - Text Specification | ||
| - DTX Specification by pleonex | ||
| - DTX Research by pleonex | ||
| - [FileFormats by Uknown Hacker](https://web.archive.org/web/20100111220659/http://jumpstars.wikispaces.com/File+Formats#toc10) | ||
|
|
||
| ### Videos | ||
| Check our [documentation page](https://priverop.github.io/JUSToolkit/docs/tool/index.html) | ||
| for guides on installation, how to use the tool, scripts, format research, and more! | ||
|
|
||
| pleonex did some research on Streaming: | ||
| ## Tinke and SceneGate | ||
|
|
||
| - [DIRECTO ROM Hacking: Triple reto de imágenes](https://www.youtube.com/watch?v=r1Rsx6RRe1U) | ||
| - [DIRECTO Domingos de desensamblador: imágenes de Devil Survivor y JUS y ordenar textos de MetalMax 3](https://www.youtube.com/watch?v=R2h-UEcO_-k) | ||
| - [DIRECTO Predomingos de desensamblador: CLYT de 3DS y el complejo caso de los sprites de JUS](https://www.youtube.com/watch?v=1KT4u_Kvaws) | ||
| You can use [Tinke by pleonex](https://github.com/pleonex/tinke), which has a | ||
| built-in plugin to unpack JUS containers, and view .dig files. | ||
|
|
||
| ## Stack | ||
| Also, we've developed an auto-discovery plugin for [SceneGate by pleonex](https://code.pleonex.dev/sceneGate/scenegate). | ||
| Check [this article](https://priverop.github.io/JUSToolkit/docs/tool/scenegate.html) for more info. | ||
|
|
||
| - C# / .NET 8.0 | ||
| - [Yarhl by pleonex](https://code.pleonex.dev/sceneGate/yarhl) | ||
| - [PleOps.Cake by pleonex](https://codeberg.org/pleonex/PleOps.Cake) | ||
|
|
||
| ## Credits | ||
|
|
||
| Special thanks to [pleonex](https://fosstodon.org/@pleonex) for his help, for | ||
| Yarhl, and PleOps.Cake. | ||
| - [**pleonex**](https://fosstodon.org/@pleonex) - Friend, creator, and maintainer | ||
| of [Yarhl](https://code.pleonex.dev/sceneGate/yarhl), | ||
| [Tinke](https://code.pleonex.dev/sceneGate/tinke), | ||
| [Ekona](https://code.pleonex.dev/sceneGate/ekona), and | ||
| [PleOps.Cake](https://codeberg.org/pleonex/PleOps.Cake). | ||
| - [**Darkc0m**](https://github.com/Darkc0m) - Co-developer, and co-leader of the | ||
| project. | ||
| - [**TraduSquare**](https://tradusquare.es) - Spanish Fantranslation community. | ||
| - **Ganbarion** - For creating this amazing game! | ||
|
|
||
| Thanks to [TraduSquare](https://tradusquare.es) for the inspiration and support. | ||
|
|
||
| Thanks to the Jump Ultimate Stars! devs for this amazing game. | ||
| <div align="center"><img src="docs/images/logo_pirate.webp" width="20%"> | ||
| <p><small>Arr! Don't forget to star the repo!</small></p></div> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| diff --git a/desmume/src/debug.cpp b/desmume/src/debug.cpp | ||
| index bdbee09b..4c0ea56a 100644 | ||
| --- a/desmume/src/debug.cpp | ||
| +++ b/desmume/src/debug.cpp | ||
|
|
||
| void HandleDebugEvent_Execute() | ||
| { | ||
| + extern bool nds_debug_continuing[2]; | ||
| + if (nds_debug_continuing[DebugEventData.procnum]) { | ||
| + nds_debug_continuing[DebugEventData.procnum] = false; | ||
| + return; | ||
| + } | ||
| + | ||
| + nds_debug_continuing[DebugEventData.procnum] = true; | ||
| + | ||
| + const unsigned int JUS_OPEN_AAR_FUNC = 0x020101f4; | ||
| + const unsigned int JUS_OPEN_AAR_FILE_FUNC = 0x0203341c; | ||
| + if (DebugEventData.addr == JUS_OPEN_AAR_FUNC) { | ||
| + armcpu_t* cpu = DebugEventData.cpu(); | ||
| + u32 filenameAddress = cpu->R[0]; | ||
| + u32 param_2 = cpu->R[1]; | ||
| + | ||
| + char* filename = (char*)(MMU.MAIN_MEM + (filenameAddress & _MMU_MAIN_MEM_MASK32)); | ||
| + printf("[JUS] Opening AAR: %s (%d)\n", filename, param_2); | ||
| + } else if (DebugEventData.addr == JUS_OPEN_AAR_FILE_FUNC) { | ||
| + armcpu_t* cpu = DebugEventData.cpu(); | ||
| + u32 filenameAddress = cpu->R[0]; | ||
| + u32 param_2 = cpu->R[1]; | ||
| + u32 param_3 = cpu->R[2]; | ||
| + | ||
| + char* filename = (char*)(MMU.MAIN_MEM + (filenameAddress & _MMU_MAIN_MEM_MASK32)); | ||
| + printf("[JUS] Opening subfile: %s (%d, %d)\n", filename, param_2, param_3); | ||
|
|
||
| + } | ||
| + | ||
| + if (!debug_acl) return; | ||
| + if (DebugEventData.procnum != ARMCPU_ARM9) return; //acl only valid on arm9 | ||
| + acl_check_access(DebugEventData.addr, CP15_ACCESS_EXECUTE); | ||
| } | ||
|
|
||
| diff --git a/desmume/src/debug.h b/desmume/src/debug.h | ||
| index 5dfda56a..a694e613 100644 | ||
| --- a/desmume/src/debug.h | ||
| +++ b/desmume/src/debug.h | ||
| @@ -187,6 +187,7 @@ extern u32 debugFlag; | ||
|
|
||
| FORCEINLINE bool CheckDebugEvent(EDEBUG_EVENT event) | ||
| { | ||
| + return true; | ||
| //for now, debug events are only handled in dev+ builds | ||
| #ifndef DEVELOPER | ||
| return false; |
File renamed without changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| # JUSToolkit: Research documents | ||
|
|
||
| Here I list research info from other hackers. | ||
|
|
||
| - [DTX Research notes by pleonex](./koma-research.md): we can remove this as soon as we finish the koma.md docs. | ||
| - [FileFormats by Uknown Hacker](./file-formats.md): the hacker of the English translation made this document in his website. | ||
|
|
||
| ## Videos | ||
|
|
||
| pleonex did some research on Streaming: | ||
|
|
||
| - [DIRECTO ROM Hacking: Triple reto de imágenes](https://www.youtube.com/watch?v=r1Rsx6RRe1U) | ||
| - [DIRECTO Domingos de desensamblador: imágenes de Devil Survivor y JUS y ordenar textos de MetalMax 3](https://www.youtube.com/watch?v=R2h-UEcO_-k) | ||
| - [DIRECTO Predomingos de desensamblador: CLYT de 3DS y el complejo caso de los sprites de JUS](https://www.youtube.com/watch?v=1KT4u_Kvaws) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.