Skip to content

schrmh/HMRT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Home Menu Rebuilding Tool (HMRT) v0.8.1

Use it with this guide

NOW FOR GNU/LINUX!


This is WIP but useable!
Feel free to contribute (e.g. code or tutorials)
[29th March 2021]: Fixed full rebuild. Problem was that the variable content changed cause at some point I switched from numbers to strings in the case.
However, I did not test the created HomeMenu after this change but don't think something broke. Btw. those errors at the last step — the BUILD step — are normal cause WINE is still used there!
[14th November 2020]: Broke full rebuild with some changes. Choose previous commit or call each step individually until I fix it.
Added bclimtool and darctool and a script extractLZ so that GNU/Linux users don't need to wait until Kuriimu2 (which uses dotnetcore!) finally works to be able to view PNG files within bclim files..
Useful tip: Use magick display 'vid:*.png' (needs imagemagick) to view all png files in a folder at once.
[2nd September 2020]: A full rebuild COULD work (on GNU/Linux after a few tries) and IF it builds a edited CIA then it SHOULDN'T lead to a softbrick.
It should be possible to exchange files between Windows and GNU/Linux regardless of the steps that were executed
(Design choice: for files extracted from or modified on linux the LZ extension is lowercase -> we won't need to ask which plattform people use)
I don't plan to test the xorpad parts soon and I would be glad if you could test them for me.
Next steps for GNU/Linux include

  • moving away from wine
  • improving a few parts of the script (e.g. don't rm *.0000.* if it doesn't exist; ignore_3dstool.txt warning)
  • Give people more information e.g. if BUILD (step 6) gets called and it can't do anything now, then say so!
  • Move or get rid of a few pauses especially in BUILD (step 6) – do they exist because of missing pauses in previous steps?
  • Use dialog for a better UI
  • Try it on Android.. Maybe rewrite in C if it doesn't work?
  • Replace parameters like --content with the correct ones. ctrtool expands, so we could e.g. use --co instead of --contents, but we shouldn't.
  • Maybe add log for EXTRACT
  • Make finished steps more clear (Maybe put strings in array and display the step name?)
  • Integrate extractLZ.sh into HMRT.sh
  • Option to re-inject bclim files
  • Options to quickly replace files (like bclim) in LZ compressed archives by using some syntax like hud.lz/timg/HudBatBase_01.bclim newHudBatBase_01.png
  • Call HMRT options directly from command line
  • Add a tool that lets users easily search for Strings, Offsets, Hex values, Words (from a dictionary; regex?) within all files
  • Add an option to patch files with new values (mass replace matching values; individual values written in a file; presets written in a file like "Background" or "BtnBase")
  • Option to inject compressed lz files like in https://cdn.discordapp.com/attachments/265917056837353472/600180023986487296/Modded_Home_Menu_3DS.zip. Either by a file structure that is written in a file or by searching, if that file doesn't exist)
  • If possible, run generated cia in citra?
  • Rewrite some of the used tools or turn everything into a single C project. e

Credits:

3dstool
https://github.com/dnasdw/3dstool Didn't know there was a linux version. MIT in /HMRT
ctrtool & makerom
https://github.com/jakcron/Project_CTR MIT license copied to /HMRT
sockfile
https://github.com/Steveice10/
ncchinfo_gen
https://github.com/d0k3/3DS-Tools-Collection/tree/master/Decrypt9%20Scripts
bclimtool
https://github.com/dnasdw/bclimtool
darctool
https://github.com/yellows8/darctool/