Jump to content

RTDX ROM Editor


Recommended Posts

Over the past few months, I and others have been working on a ROM editor for Pokémon Mystery Dungeon: Rescue Team DX. It's still very much a work-in-progress, but there's enough there to warrant a thread about it.

image.png

This ROM editor has two target audiences: users and developers. For users, it's designed to be as easy to use as possible. Just give it your already extracted ROM (this will be made easier in the future), and follow the prompts. For developers, C# and Lua can be used to make more advanced changes, while being able to distribute your work to users, without making things any more complicated than what's shown in the below User screenshots.

Users

The UI is designed to be as simple as possible, guiding you through the editing process without hand-holding. Screenshots:

Spoiler

image.png

image.png

image.png

image.png

Developers

The tutorial for users includes a step to choose a modpack. This is where developers come in. Using the built-in mod support, you can use C# or Lua scripts to automatically change things not present in the UI. Example use-cases:

  • Addition of model data that's not already present
  • Randomization of data such as playable starters
  • Bulk alteration of stats that would otherwise be impractical to make with a UI

See the readme in GitHub and the sample mods in the console app project for more details. A standalone package to create mods is planned but not yet available.

Also note that because the editor is in active development, things like namespaces and method signatures are subject to change. If this impacts you, please let me know so I can know to publish breaking changes somewhere. This post will be updated when this is no longer the case.

Download

This ROM editor is not yet ready for widespread use, but should otherwise work fine.

Source Code: https://github.com/evandixon/SkyEditor.RomEditor.Rtdx

Prerelease binaries of the UI can be found here:

Look here for additional binaries, such as that of the console app.

  • Like 3
Link to comment
Share on other sites

  • 6 months later...
On 6/18/2020 at 2:34 AM, evandixon said:

Over the past few months, I and others have been working on a ROM editor for Pokémon Mystery Dungeon: Rescue Team DX. It's still very much a work-in-progress, but there's enough there to warrant a thread about it.

image.png

This ROM editor has two target audiences: users and developers. For users, it's designed to be as easy to use as possible. Just give it your already extracted ROM (this will be made easier in the future), and follow the prompts. For developers, C# and Lua can be used to make more advanced changes, while being able to distribute your work to users, without making things any more complicated than what's shown in the below User screenshots.

Users

The UI is designed to be as simple as possible, guiding you through the editing process without hand-holding. Screenshots:

  Reveal hidden contents

image.png

image.png

image.png

image.png

Developers

The tutorial for users includes a step to choose a modpack. This is where developers come in. Using the built-in mod support, you can use C# or Lua scripts to automatically change things not present in the UI. Example use-cases:

  • Addition of model data that's not already present
  • Randomization of data such as playable starters
  • Bulk alteration of stats that would otherwise be impractical to make with a UI

See the readme in GitHub and the sample mods in the console app project for more details. A standalone package to create mods is planned but not yet available.

Also note that because the editor is in active development, things like namespaces and method signatures are subject to change. If this impacts you, please let me know so I can know to publish breaking changes somewhere. This post will be updated when this is no longer the case.

Download

This ROM editor is not yet ready for widespread use, but should otherwise work fine.

Source Code: https://github.com/evandixon/SkyEditor.RomEditor.Rtdx

Prerelease binaries of the UI can be found here:

Look here for additional binaries, such as that of the console app.

Oh nice thanks. I will check that out although i'm still trying to figure out how to "rom" edit a physical game card since i play DX on my switch.

Link to comment
Share on other sites

On 1/9/2021 at 9:27 AM, Nateyy said:

Oh nice thanks. I will check that out although i'm still trying to figure out how to "rom" edit a physical game card since i play DX on my switch.

If you have CFW like Atmosphere, you can use LayeredFS to have modded game files on the MicroSD card even if you're using a physical cartridge for the game itself. NXDumpTool can dump all the files you need straight into the LayeredFS directory, and it's this method that Sky Editor DX was designed to work with.

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

Hello @evandixon,

I wanted to use your amzing room editor but it can't detect my rom (i am playing the game using Yuzu so maybe that's the problem) i tryed extracting Romfs and Exefs but not working 

I have the game in .XCI so if you can help it will be awesome !!

Ty for reading and helping

Link to comment
Share on other sites

  • 2 months later...
  • 2 months later...
On 8/24/2021 at 3:05 PM, The Ensemble said:

Hello, I had a question. So you said you need an extracted rom. I have a rom but don't really know what "extracted" means. Is it a specific file type it needs? Sorry for my ignorance, thank you very much.

 

7 hours ago, RoiSoleil said:

Great mod, but it's sad that I can't use it since I haven't find yet a .NSP unpacker that works, all of them gives me a empty folder... If there's any way to make it work with an packed rom (NSP or XCI, whatever) let me know.

I recommend using nxdumptool to dump and extract the rom. It can even unpack it straight to the correct layeredfs directory. However, my knowledge of Switch hacking is a year and a half out of date, so there could be better alternatives out there, idk.

Link to comment
Share on other sites

On 8/29/2021 at 8:57 PM, evandixon said:

 

I recommend using nxdumptool to dump and extract the rom. It can even unpack it straight to the correct layeredfs directory. However, my knowledge of Switch hacking is a year and a half out of date, so there could be better alternatives out there, idk.

I tried dumping the rom using Yuzu tool and the editor did not work with the folder extracted. Here's the log:

Spoiler

30/08/2021 02:38:54 [ReactiveUI] System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\PICHAU\AppData\Local\yuzu\yuzu-windows-msvc\user\sdmc\atmosphere\contents\01003D200BAA2000\romfs\romfs\Data\StreamingAssets\native_data\message_us.bin'.
   at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
   at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at System.IO.File.ReadAllBytes(String path)
   at SkyEditor.IO.FileSystem.PhysicalFileSystem.ReadAllBytes(String filename)
   at SkyEditor.RomEditor.Domain.Rtdx.RtdxRom.GetUSMessageBin()
   at SkyEditor.RomEditor.Domain.Rtdx.RtdxRom.GetCommonStrings()
   at SkyEditor.RomEditor.Domain.Rtdx.Models.StarterCollection.LoadStarters()
   at SkyEditor.RomEditor.Domain.Rtdx.Models.StarterCollection..ctor(IRtdxRom rom, ILuaGenerator luaGenerator, ICSharpGenerator cSharpGenerator)
   at SkyEditor.RomEditor.Domain.Rtdx.RtdxRom.GetStarters()
   at SkyEditor.RomEditor.Avalonia.ViewModels.Rtdx.RtdxRomViewModel..ctor(RtdxRom model)
   at SkyEditor.RomEditor.Avalonia.ViewModels.MenuItems.OpenDirectoryMenuItem.OpenFile()
   at SkyEditor.RomEditor.Avalonia.ViewModels.Rtdx.Tutorial.IntroViewModel.OpenRom()
 

I'm messing with the folder structures trying to make it work, now I'm facing a problem with "exefs" and "main" file, I'll soon try to use a XCI file (the one that I used was an NSP, maybe that's how it should work, don't know. Thanks for pointing the tool, even though I can't use.

After messing around with some extractor I was able to make the editor to work, but now I'm having issues making it start with Yuzu.

All right, I was able to make it work. Everything working fine, thanks! Just a question, is there any way to add, at least, neutral portraits for missing ones? It's a bit weird seeing an empty portrait whenever it tries to use one that don't exist.

Edited by RoiSoleil
Link to comment
Share on other sites

  • 2 weeks later...
On 8/29/2021 at 11:40 PM, RoiSoleil said:

I tried dumping the rom using Yuzu tool and the editor did not work with the folder extracted. Here's the log:

  Reveal hidden contents

30/08/2021 02:38:54 [ReactiveUI] System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\PICHAU\AppData\Local\yuzu\yuzu-windows-msvc\user\sdmc\atmosphere\contents\01003D200BAA2000\romfs\romfs\Data\StreamingAssets\native_data\message_us.bin'.
   at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
   at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at System.IO.File.ReadAllBytes(String path)
   at SkyEditor.IO.FileSystem.PhysicalFileSystem.ReadAllBytes(String filename)
   at SkyEditor.RomEditor.Domain.Rtdx.RtdxRom.GetUSMessageBin()
   at SkyEditor.RomEditor.Domain.Rtdx.RtdxRom.GetCommonStrings()
   at SkyEditor.RomEditor.Domain.Rtdx.Models.StarterCollection.LoadStarters()
   at SkyEditor.RomEditor.Domain.Rtdx.Models.StarterCollection..ctor(IRtdxRom rom, ILuaGenerator luaGenerator, ICSharpGenerator cSharpGenerator)
   at SkyEditor.RomEditor.Domain.Rtdx.RtdxRom.GetStarters()
   at SkyEditor.RomEditor.Avalonia.ViewModels.Rtdx.RtdxRomViewModel..ctor(RtdxRom model)
   at SkyEditor.RomEditor.Avalonia.ViewModels.MenuItems.OpenDirectoryMenuItem.OpenFile()
   at SkyEditor.RomEditor.Avalonia.ViewModels.Rtdx.Tutorial.IntroViewModel.OpenRom()
 

I'm messing with the folder structures trying to make it work, now I'm facing a problem with "exefs" and "main" file, I'll soon try to use a XCI file (the one that I used was an NSP, maybe that's how it should work, don't know. Thanks for pointing the tool, even though I can't use.

After messing around with some extractor I was able to make the editor to work, but now I'm having issues making it start with Yuzu.

All right, I was able to make it work. Everything working fine, thanks! Just a question, is there any way to add, at least, neutral portraits for missing ones? It's a bit weird seeing an empty portrait whenever it tries to use one that don't exist.

I am using Yuzu aswell but having some difficulty, could someone help me out?

Link to comment
Share on other sites

  • 2 months later...
5 hours ago, Rykashi said:

how do i install and run roms on my switch (it has the current atmosphere) 

I recommend using Layered FS to not need to install anything else. nxdumptool can dump ROM files straight to the correct directory, and Sky Editor DX is designed to use this.

Link to comment
Share on other sites

  • 3 months later...
On 8/30/2021 at 3:40 PM, RoiSoleil said:

I tried dumping the rom using Yuzu tool and the editor did not work with the folder extracted. Here's the log:

  Reveal hidden contents

30/08/2021 02:38:54 [ReactiveUI] System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\PICHAU\AppData\Local\yuzu\yuzu-windows-msvc\user\sdmc\atmosphere\contents\01003D200BAA2000\romfs\romfs\Data\StreamingAssets\native_data\message_us.bin'.
   at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
   at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at System.IO.File.ReadAllBytes(String path)
   at SkyEditor.IO.FileSystem.PhysicalFileSystem.ReadAllBytes(String filename)
   at SkyEditor.RomEditor.Domain.Rtdx.RtdxRom.GetUSMessageBin()
   at SkyEditor.RomEditor.Domain.Rtdx.RtdxRom.GetCommonStrings()
   at SkyEditor.RomEditor.Domain.Rtdx.Models.StarterCollection.LoadStarters()
   at SkyEditor.RomEditor.Domain.Rtdx.Models.StarterCollection..ctor(IRtdxRom rom, ILuaGenerator luaGenerator, ICSharpGenerator cSharpGenerator)
   at SkyEditor.RomEditor.Domain.Rtdx.RtdxRom.GetStarters()
   at SkyEditor.RomEditor.Avalonia.ViewModels.Rtdx.RtdxRomViewModel..ctor(RtdxRom model)
   at SkyEditor.RomEditor.Avalonia.ViewModels.MenuItems.OpenDirectoryMenuItem.OpenFile()
   at SkyEditor.RomEditor.Avalonia.ViewModels.Rtdx.Tutorial.IntroViewModel.OpenRom()
 

I'm messing with the folder structures trying to make it work, now I'm facing a problem with "exefs" and "main" file, I'll soon try to use a XCI file (the one that I used was an NSP, maybe that's how it should work, don't know. Thanks for pointing the tool, even though I can't use.

After messing around with some extractor I was able to make the editor to work, but now I'm having issues making it start with Yuzu.

All right, I was able to make it work. Everything working fine, thanks! Just a question, is there any way to add, at least, neutral portraits for missing ones? It's a bit weird seeing an empty portrait whenever it tries to use one that don't exist.

How did you get this to work? I've spent roughly a day and a half now and I'm no closer than when I started. Please keep any explanation simple too, I'm very new to this

Link to comment
Share on other sites

Hi @evandixon,

I've seen a few people ask without reply, but is this compatible with PMD RTDX run on Yuzu? If so could you please provide a tutorial on how to do this?

I've spent roughly a day and a half now using about any method I can find to Dump, decrypt etc. my XCI file but nothing I've tried has been recognised by the SkyEdit software so I'm not even able to start using your work; any help would be greatly appreciated, thank you. 

Link to comment
Share on other sites

2 hours ago, DarrkHorse said:

Hi @evandixon,

I've seen a few people ask without reply, but is this compatible with PMD RTDX run on Yuzu? If so could you please provide a tutorial on how to do this?

I've spent roughly a day and a half now using about any method I can find to Dump, decrypt etc. my XCI file but nothing I've tried has been recognised by the SkyEdit software so I'm not even able to start using your work; any help would be greatly appreciated, thank you. 

Play it on your switch using the layeredfs setup that evandixon described back in November.

Link to comment
Share on other sites

2 hours ago, DarrkHorse said:

Hi @evandixon,

I've seen a few people ask without reply, but is this compatible with PMD RTDX run on Yuzu? If so could you please provide a tutorial on how to do this?

I've spent roughly a day and a half now using about any method I can find to Dump, decrypt etc. my XCI file but nothing I've tried has been recognised by the SkyEdit software so I'm not even able to start using your work; any help would be greatly appreciated, thank you. 

This one doesn't support extracting ROMs, but DreamNexus does:

 

Link to comment
Share on other sites

  • 3 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...