Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/thomasnet-mc/EdiZon
Browse files Browse the repository at this point in the history
  • Loading branch information
WerWolv committed Jun 26, 2018
2 parents 6ff5a42 + e5e1a58 commit 1367ae4
Showing 1 changed file with 58 additions and 53 deletions.
111 changes: 58 additions & 53 deletions README.md
@@ -1,65 +1,70 @@
# EdiZon
![Icon](https://raw.githubusercontent.com/thomasnet-mc/EdiZon/master/icon.jpg)

EdiZon


A save dumper (future editor) for Horizon by thomasnet and WerWolv

# Credits
[3096](https://github.com/3096) for [save dumping/injecting](https://github.com/3096/nut)
Credits

3096 for save dumping/injecting

Bernardo Giordano for some Checkpoint code

Reswitched for the Homebrew Launcher GUI code

[Bernardo Giordano](https://github.com/BernardoGiordano) for some [Checkpoint](https://github.com/BernardoGiordano/Checkpoint) code
Images

[Reswitched](https://reswitched.tech/) for the [Homebrew Launcher](https://github.com/switchbrew/nx-hbmenu) GUI code

# Images
![Capture of main screen](https://cdn.discordapp.com/attachments/445187205372313601/452783262868307979/2018060302561900-DB1426D1DFD034027CECDE9C2DD914B8.jpg)

![Capture of editor screen](https://i.imgur.com/z4orRi5.jpg)
Save editor config format

# Save editor config format
To expanding the functionality of the save file editor, .json files get used to specify the offset and address of spessific values inside the save file. These files look like follows:

```json
{
"saveFilePaths" : [ "/" ],
"files" : "File\\d+\\.bin",
"filetype": "bin",
"items": [
{
"name" : "Integer Value",
"offsetAddress" : "DEAD",
"address" : "BEEF",
"widget" : {
"type" : "int",
"minValue" : 0,
"maxValue" : 9999
}
},
{
"name" : "Boolean Value",
"offsetAddress" : "CAFE",
"address" : "BABE",
"widget" : {
"type" : "bool",
"onValue" : 1,
"offValue" : 0
}
}
]
"saveFilePaths" : [ "/" ],
"files" : "File\\d+\\.bin",
"filetype": "bin",
"items": [
{
"name" : "Integer Value",
"offsetAddress" : "DEAD",
"address" : "BEEF",
"widget" : {
"type" : "int",
"minValue" : 0,
"maxValue" : 9999
}
},
{
"name" : "Boolean Value",
"offsetAddress" : "CAFE",
"address" : "BABE",
"widget" : {
"type" : "bool",
"onValue" : 1,
"offValue" : 0
}
}
]
}
```

- `saveFilePaths`: The folder paths in which the save files are located. Multiple locations may be set. Use '/' to target the root dir.
- `validSaveFileNames`: How the save file names are formatted. This is a RegEx string.
- `filetype`: Defines what save file parser will be used. Supported values are: `bin`
- `items`: Inside this array, every new element will become a new widget inside the editor.
- `name`: The name of the widget. This is the text which will be displayed next to the value on the widget.
- `offsetAddress`: Most save files load dynamic offsets from static locations within the save file. This is the address of an offset whose value will get used as final offset. If no dynamic offsets are used, set this to 0. Note: This is a hexadecimal number in a string.
- `address`: Additional offset which gets added to the dynamic offset. Note: This is a hexadecimal number in a string.
- `widget`: These are the widget settings.
- `type`: May be either boolean or integer. Boolean creates an ON/OFF switch where as integer creates a numbox. All values are uint16_t.
- `minValue`: Spessific for integer types. This is the minimum value the address may have before it wraps around.
- `maxValue`: Spessific for integer types. This is the maximum value the address may have before it wraps around.
- `onValue`: Spessific for boolean types. This is the value the address will have if the switch is set to ON.
- `offValue`: Spessific for boolean types. This is the value the address will have if the switch is set to OFF.

The finished files will get placed on your SD card within the `sdmc:/EdiZon/editor` folder and named as the titleID of the game they are made for, for example `sdmc:/EdiZon/editor/01007EF00011E000.json`. All characters are required to be in caps except the `.json` ending.



• saveFilePaths : The folder paths in which the save files are located. Multiple locations may be set. Use '/' to target the root dir.
• validSaveFileNames : How the save file names are formatted. This is a RegEx string.
• filetype : Defines what save file parser will be used. Supported values are: bin
• items : Inside this array, every new element will become a new widget inside the editor.
• name : The name of the widget. This is the text which will be displayed next to the value on the widget.
• offsetAddress : Most save files load dynamic offsets from static locations within the save file. Imagine the savefile as an array of values. First we take offsetAddress and look up the value at that offsets ( saveFile[offsetAddress] ). Then we use the address found at this offset to find final value ( saveFile[saveFile[offsetAddress]] ). If no dynamic offsets are used, set this to 0. Note: This is a hexadecimal number in a string.
• address : Additional offset which gets added to the dynamic offset. Note: This is a hexadecimal number in a string.
• widget : These are the widget settings.
• type : May be either boolean or integer. Boolean creates an ON/OFF switch where as integer creates a numbox. All values are uint16_t.
• minValue : Spessific for integer types. This is the minimum value the address may have before it wraps around.
• maxValue : Spessific for integer types. This is the maximum value the address may have before it wraps around.
• onValue : Spessific for boolean types. This is the value the address will have if the switch is set to ON.
• offValue : Spessific for boolean types. This is the value the address will have if the switch is set to OFF.

The finished files will get placed on your SD card within the sdmc:/EdiZon/editor folder and named as the titleID of the game they are made for, for example sdmc:/EdiZon/editor/01007EF00011E000.json . All characters are required to be in caps except the .json ending.

0 comments on commit 1367ae4

Please sign in to comment.