Hacking ROM Hack Miitopia Randomizer

Kobazco

Well-Known Member
OP
Member
Joined
Jul 29, 2016
Messages
680
Trophies
0
Age
23
XP
1,495
Country
United States
Miitopia Randomizer v1.0.0 (Switch & 3DS)

Thread copy pasted from the tool's GitHub which can be found here: https://github.com/Kobazco/Miitopia_Randomizer
^^^ Also has download link

gui1.png


Screenshots:
2022022617265200-BE69DF9FDF680F1A7049C2306C81C12E.jpg
2022022618052400-BE69DF9FDF680F1A7049C2306C81C12E.jpg
b9c331fa70f601a94507679335631bae.png
2022022618091400-BE69DF9FDF680F1A7049C2306C81C12E.jpg
2022022417315500-BE69DF9FDF680F1A7049C2306C81C12E.jpg
2022022602163700-BE69DF9FDF680F1A7049C2306C81C12E.jpg
2022022618071100-BE69DF9FDF680F1A7049C2306C81C12E.jpg

Requirements
- A modded switch/3DS or emulator (Ryujinx is suggested due to Mii Maker support, Citra for 3DS)
- A Miitopia romfs dump (We cannot legally provide this)
- Knowledge of how to install mods on cfw or your emulator of choice

Usage
  1. Download the latest release and extract the zip file
  2. Copy your 'cmn' folder from your romfs into Input/romfs/
  3. Run either the GUI or the CLI
  4. Select the options you want
  5. Copy the 'romfs' folder from the output directory into your mod location and overwrite all files if prompted

Note
The fight against the Mini Slime as well as the first area afterwards are not randomized in order to avoid softlocking.
Randomization of enemies/stages begins in the first area unlocked after getting Inn access.

Options

GUI


When hovering over an option in the GUI, a tooltip will appear explaining the option

CLI
Code:
usage: MiitopiaRandomizer_cli [-h] [--battles] [--jobs] [--treasure] [--npcs] [--seed SEED]

Miitopia Randomizer

options:
  -h, --help            show this help message and exit

  --battles, -B         Randomizes every battle in every stage (except for the first 2).
                        Music, background (if possible) and enemies are randomized.
                        Enemies are randomized based on their strength:
                        As an example, Rock Moths can be replaced with similarly weak enemies such as a Pom or Mouthy Tomato.

  --jobs, -J            Randomizes the world in which Jobs are unlocked. Also randomizes the look of what weapon a Job uses.

  --treasure, -T        Randomizes the contents of all Treasure Chests.

  --npcs, -N            Randomizes the NPCs models, as well as what enemy the Dark Lord is.

  --seed SEED, -S SEED  Specifies a seed to use for the randomization.
                        Useful if you want to play the same game with/against someone else

Building executables yourself
You will need a recent version of Python (ideally 3.10)
  1. Clone the repository
  2. Run `package_release.bat` or `package_release.sh`
  3. Once the script is done, the executables and any required files will be in the `Release/` folder

Mod Location/Folder
- For Atmosphere cfw users, this is `atmosphere/contents/01003DA010E8A000/` Place the romfs folder here
- For emulator users, both Ryujinx and Yuzu you can just right click the game and select "view mod location" and place the romfs folder there.


Credits
- @Connicpu for an incredible amount of assistance and teaching me how to use python. Definitely would not have been in a usable state like this without her.
- Sarc python reader and writer by @leoetlino and @BravelyPeculiar https://github.com/zeldamods/sarc
- @CommandMC for refactoring the entire project.
 
Last edited by Kobazco,

carrotee123

Member
Newcomer
Joined
Mar 1, 2022
Messages
5
Trophies
0
Age
23
Location
space
XP
7
Country
United States
no such file directory enemyStatus.csv
even though its in the master file why does it keep failing
actually each option fails and guess what the files are in their directories
 

Kobazco

Well-Known Member
OP
Member
Joined
Jul 29, 2016
Messages
680
Trophies
0
Age
23
XP
1,495
Country
United States
no such file directory enemyStatus.csv
even though its in the master file why does it keep failing
actually each option fails and guess what the files are in their directories
Make sure you are actually in the directory before running it with python, rather than doing python entire directory main.py

So CD to the folder first, then run main.py if you're doing it via cmd.

If its for the .sarc files, then you didn't place them correctly.
 

carrotee123

Member
Newcomer
Joined
Mar 1, 2022
Messages
5
Trophies
0
Age
23
Location
space
XP
7
Country
United States
Make sure you are actually in the directory before running it with python, rather than doing python entire directory main.py

So CD to the folder first, then run main.py if you're doing it via cmd.

If its for the .sarc files, then you didn't place them correctly.
i just dragged the mian.py to my cmd after i installed all the pips and chose an option does that work cause it brings up the options and everything but one of the files cant be located even though its in the same directory that the cmd is running it from
 

carrotee123

Member
Newcomer
Joined
Mar 1, 2022
Messages
5
Trophies
0
Age
23
Location
space
XP
7
Country
United States
Make sure you are actually in the directory before running it with python, rather than doing python entire directory main.py

So CD to the folder first, then run main.py if you're doing it via cmd.

If its for the .sarc files, then you didn't place them correctly.
here's the log one file always fails to locate for each option

Traceback (most recent call last):
File "G:\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "G:\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "G:\Scripts\sarc.exe\__main__.py", line 7, in <module>
File "G:\lib\site-packages\sarc\__main__.py", line 222, in main
args.func(args)
File "G:\lib\site-packages\sarc\__main__.py", line 207, in <lambda>
u_parser.set_defaults(func=lambda a: sarc_create_or_update(a, update=True))
File "G:\lib\site-packages\sarc\__main__.py", line 80, in sarc_create_or_update
with open(dest_file, 'rb') as original_sarc_file:
FileNotFoundError: [Errno 2] No such file or directory: 'Output/romfs/cmn/param/enemy.sarc'
Traceback (most recent call last):
File "G:\Miitopia_Randomizer-master\main.py", line 86, in <module>
main()
File "G:\Miitopia_Randomizer-master\main.py", line 41, in main
import stageEnemy
File "G:\Miitopia_Randomizer-master\stageEnemy.py", line 52, in <module>
with open('enemyStatus.csv') as csv_file:
FileNotFoundError: [Errno 2] No such file or directory: 'enemyStatus.csv'
 

Kobazco

Well-Known Member
OP
Member
Joined
Jul 29, 2016
Messages
680
Trophies
0
Age
23
XP
1,495
Country
United States
i just dragged the mian.py to my cmd after i installed all the pips and chose an option does that work cause it brings up the options and everything but one of the files cant be located even though its in the same directory that the cmd is running it from
That's the thing, you're not going to the directory first through that method. You have to go to the directory through the CD command and then run it via cmd with something like python main.py

The issue is exactly what I was saying it was, you're not navigating to the directory first.
 

carrotee123

Member
Newcomer
Joined
Mar 1, 2022
Messages
5
Trophies
0
Age
23
Location
space
XP
7
Country
United States
That's the thing, you're not going to the directory first through that method. You have to go to the directory through the CD command and then run it via cmd with something like python main.py

The issue is exactly what I was saying it was, you're not navigating to the directory first.
ok after alot of trouble shooting i uninstalled everything installed it to the cmds command location everything including pyhton is in the same place i installed all the sarcs and pips and now im getting this error when i try randomizing what file am i missing now

Traceback (most recent call last):
File "C:\Users\pc\main.py", line 86, in <module>
main()
File "C:\Users\pc\main.py", line 41, in main
import stageEnemy
File "C:\Users\pc\stageEnemy.py", line 33, in <module>
dsmode()
File "C:\Users\pc\stageEnemy.py", line 26, in dsmode
subprocess.run(["sarc", "update", "Input/Enemy/enemyFaceConfig.csv", "Output/romfs/cmn/param/enemy.sarc",
File "C:\Users\pc\lib\subprocess.py", line 501, in run
with Popen(*popenargs, **kwargs) as process:
File "C:\Users\pc\lib\subprocess.py", line 966, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\pc\lib\subprocess.py", line 1435, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified
 

Kobazco

Well-Known Member
OP
Member
Joined
Jul 29, 2016
Messages
680
Trophies
0
Age
23
XP
1,495
Country
United States
ok after alot of trouble shooting i uninstalled everything installed it to the cmds command location everything including pyhton is in the same place i installed all the sarcs and pips and now im getting this error when i try randomizing what file am i missing now

Traceback (most recent call last):
File "C:\Users\pc\main.py", line 86, in <module>
main()
File "C:\Users\pc\main.py", line 41, in main
import stageEnemy
File "C:\Users\pc\stageEnemy.py", line 33, in <module>
dsmode()
File "C:\Users\pc\stageEnemy.py", line 26, in dsmode
subprocess.run(["sarc", "update", "Input/Enemy/enemyFaceConfig.csv", "Output/romfs/cmn/param/enemy.sarc",
File "C:\Users\pc\lib\subprocess.py", line 501, in run
with Popen(*popenargs, **kwargs) as process:
File "C:\Users\pc\lib\subprocess.py", line 966, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\pc\lib\subprocess.py", line 1435, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified
I swear you're not listening to my instructions at all. You didn't need to install it to a specific location, you didn't have to do any of that. I'm like 90% certain its still erroring because you did that. Literally all you need to do is navigate in the cmd to the place where you extracted the randomizer. I can't help you, as I don't know what your file structure and stuff looks like, and very very clearly you haven't been reading a single thing I have been saying to try and help you.

But at the same time, I swear python just doesn't wanna work for half the people who download this, so I'm sorry if its just because of that. The only thing I could possibly think of in that case is it not being able to access the files due to some sort of permission issue, in which case some sort of running through administrator might work.
 

carrotee123

Member
Newcomer
Joined
Mar 1, 2022
Messages
5
Trophies
0
Age
23
Location
space
XP
7
Country
United States
I swear you're not listening to my instructions at all. You didn't need to install it to a specific location, you didn't have to do any of that. I'm like 90% certain its still erroring because you did that. Literally all you need to do is navigate in the cmd to the place where you extracted the randomizer. I can't help you, as I don't know what your file structure and stuff looks like, and very very clearly you haven't been reading a single thing I have been saying to try and help you.

But at the same time, I swear python just doesn't wanna work for half the people who download this, so I'm sorry if its just because of that. The only thing I could possibly think of in that case is it not being able to access the files due to some sort of permission issue, in which case some sort of running through administrator might work.
thx for your help anyway and yes i did cd it to the exact location of the randomizer still gives the same error python probably just isnt working idk i give up because if i fix this another issue is probably just gonna come uo but hx for bieng patient and trying to help
 
  • Like
Reactions: Kobazco
General chit-chat
Help Users
    O @ obada: anyone can help with midjourny invitation link pls