ROM Hack [Release]A darc tool for Nintendo3DS

  • Thread starter Thread starter LITTOMA
  • Start date Start date
  • Views Views 17,838
  • Replies Replies 54
  • Likes Likes 11
:wink:You don't need to care about directories while using inject option
But what if there are more than one file with the same name in one archive?
I tested this tool with decompressed .bin archives (system settings app) and it is possible to inject bclim files.
But there are also some msbt files with the same name but different content.

(By the way..It would be nice to know how Chris injected a completely new file into a archive (his first screenshot). But I don't need to know this now.)
 
Last edited by schrmh,
But what if there are more than one file with the same name in one archive?
:unsure:That's a deadly problem. I am writing a new tool in C# at this moment, it will be more reliable than the ole one. But it will take some time.The old one has a lot of mistak, and not readable.
 
Last edited by LITTOMA,
  • Like
Reactions: schrmh
Hi there, LITTOMA!

I just tried to use the tool on a file that seems to contain"darc" marks. And I get an error when I run it. This raises a couple of questions:
- I extracted starting where I can read "darc" (in ASCII). Is that the right start? (There's an "ECD" before that but I guess it doesn't matter, does it?)
- The end of my extract *probably* contains padding with zeros. Can this hurt the tool's execution? (If yes, then are some zeros needed at all or should I terminate at the first non-zero byte?)
- I'm running on Win7. The readme says I'm out of luck. Is there a chance it still works?
- The error I get is:
Traceback (most recent call last):
File "C:\Downloads\DARCTool-master\DARCTool-master\darc.py", line 396, in <module>
unpack(darcfile)
File "C:\Downloads\DARCTool-master\DARCTool-master\darc.py", line 188, in unpack
namepos,index,nrfiles = struct.unpack('3I',infile.read(12))
struct.error: unpack requires a string argument of length 12

Thank you for your help.
Thank you for this tool.
 
This is a tool for modifying data-archive(darc) files using in Nintendo3DS games.

Usage:
darc.py [options] [object]

PLATFORM:
Python 2.7:https://www.python.org/downloads/release/python-279/
compression only on WindowsXP+
.


options:
  • -u ...... Unpack specified darc
  • -p ...... Pack up specified folder
  • -i ...... Inject file(s) to specified darc
  • -o ...... Set out put name
  • -d ...... Set work directory
You can use '-d' option to contain multiple objects in a directory.

GitHub: https://github.com/LITTOMA/DARCTool

This tool hasn't been tested completely, so it may not work in some cases, please tell me while errors occur.
Thanks Smariter for help!

UPDATE:

By using CUE's lzx tool, this darc tool support compress/decompress darc files now.
You can use these following commands to compress darc files(decompress is automatically):

  • -evb .... VRAM compatible, big-endian (LZ11)
  • -ewb .... WRAM compatbile, big-endian (LZ11)
  • -evl .... VRAM compatible, little-endian (LZ40)
  • -ewl .... WRAM compatbile, little-endian (LZ40)
You should place the lzx.exe in 'C:\Windows\' to make drag&drop unpacking available.

UPDATE 2:

Add inject feature,Modified files can work in game now.

inject usage:
darc.py -i [darc file] [file to inject]
Hi, can you update the tool, because when I unpacking "message_EU_LZ.bin" that has two folders with .msbt files "message_hud" and "message_mcopy", it only unpacks the first folder and freezes, please look into in because I'm translating my 3DS, and I need to get to those .msbt files, thank you in advance.
 
UnpackALL.bat
Code:
for %%x in (*.bin *.darc) do call "UnpackDARC.bat" "%%x"

UnpackDARC.bat
Code:
darctool.exe --extract %1 %1_Unpacked

Click UnpackALL and all .bin and .darc files will be extracted in 1 time
 
UnpackALL.bat
Code:
for %%x in (*.bin *.darc) do call "UnpackDARC.bat" "%%x"

UnpackDARC.bat
Code:
darctool.exe --extract %1 %1_Unpacked

Click UnpackALL and all .bin and .darc files will be extracted in 1 time
Hi, since you are great with this stuff can you help me?
I used the command "darctool.exe --extract message_EU.LZ message_EU", and it extracted fine:
upload_2016-5-29_18-23-22.png


but when I used the command "darctool.exe --build 1message_EU.LZ message_EU" it came out like this:
upload_2016-5-29_18-23-2.png


What to do? Help please:bow:
 
Last edited by tomx86,

Site & Scene News

Popular threads in this forum