DSHack

Archive Generated December 23rd, 2018
Tool Repository - Install Tools Through Command Line!
Author Posted on 2016/09/19
#2279
MKGirlism Welcome to the DSHack.org Tool Repository!
Or rather, Tool Repository is coming soon.

As some of you may know, I'm currently creating a set of tools (GUI and Command Line) for MKDS and MK7 for Linux (and Windows 10, if you enabled Linux support, and installed X11 (GUI tools only)).
However, I can't do it all alone, so I appreciate your help (especially looking at Gericom, so he can port LibEveryFileExplorer to ANCI C...).

For those who want to help:
Requirements
- C or C++ Programming skills.
- GTK+ knowledge, or any other Cross-Platform Library (GUI tools only).
- Able to test your code on a Linux distro of choice, or Windows 10 with Linux support and X11 enabled.

If you want to create macOS versions of the future Linux tools, you're allowed to help as well.
However, Mac tools will not be added to this repository, but belong to the Hack Store instead.

Tool Repository
The Tool Repository is now available for all Debian-based distributions, this includes also Ubuntu and Linux Mint.

Just open "/etc/apt/sources.list" as Root, and add the following line:
deb http://deb.dshack.org debian/

After that, simply do "apt-get update", and you can now install each Tool from there!
Other distros are coming soon.

But we have decided to support the following distro's:

Supported Package Managers
apt-get or aptitude - Debian, Ubuntu, Linux Mint, Windows 10.
sudo apt-get install kclcalc-7

yum - RHEL, CentOS, Fedora.
sudo yum install kclgen-ds

yast - SuSE, OpenSUSE.
sudo yast -i kmpedit

pacman - Arch Linux, Manjaro
sudo pacman -S dae2nsbmd-cli

brew - macOS (perhaps)
sudo brew install wav2bcstm

GUI or CLI?
Most tools get both.
Only KCL Calculator, and NKM/KMP Expander won't get a CLI Version, for obvious reasons.

Tools that are ready
kclcalc-ds (MKGirlism)
kclcalc-7 (MKGirlism)
narctool (Natrium42, and Dexter0)
ndstool (Rafael Vuijk, Dave Murphy, and Alexei Karpenko)
ctrtool (Neimod, and 3DSGuy)
makerom (3DSGuy)
bmdview (thakis)
midi2sseq (Fincs)
sseq2midi (Loveemu)
yaz0enc (amnoid?)
yaz0dec (amnoid?)
makeromfs (3DSGuy)

Tools that need to be done yet
dae2bcmdl
dae2nsbmd
kclgen-7
kclgen-ds
kmpedit
nkmedit
obj2bcmdl
obj2nsbmd
png2nsbtx
wav2bcstm

I'll do my best to do as much as possible on my own, but if you want to contribute or co-operate, you're welcome to do so.

UPDATE!
We still don't have a Repository set up, so for now, you can enjoy the Tools we have for now this way.

In the Terminal:
wget https://www.dshack.org/files/downs/linuxtools.tar.gz
tar zxfv linuxtools.tar.gz
chmod 777 install.sh
./install.sh

And after that, you can use any of the following Tools in any directory:
- bmdview
- ctrtool
- kclcalc-7
- kclcalc-ds
- makerom
- midi2sseq
- narctool
- ndstool
- sseq2midi

More is coming soon.
Author Posted on 2016/09/19
#2280
Miles Ermiiworth I can make a simple command line version of KMP Expander made in C++, the only problem is that I'd have to port the KMP class to C++ and the Endian Reader and Writer too. Other than that, it'd be easy enough with my (even if limited) knowledge.
Author Posted on 2016/09/19
#2281
MKGirlism I only hope Geri is willing to port LibEveryFileExplorer to C or C++, that would save a hell lot of work...
Author Posted on 2016/09/19
#2282
SGC Yellow Yes, this should work out very will, can't wait to see how well it comes along, I wish I could help in some way, but I have no real programming knowledge.

Come to think of it, I could make Icons if, any are needed.
Author Posted on 2016/09/19
#2283
Gericom There shouldn't be a separate png2nsbtx, but obj2nsbmd and dae2nsbmd (which should probably be combined too) should rather have an option to generate a separate nsbtx.
Author Posted on 2016/09/19
#2284
Platinatic Suggestions:
-Editor/importer for texture animations (.nsbta)
-importer for Character and Model animations, if there's a way without maya/3DSmax. (.nsbca & .nsbma)
-Editor for Karts in MKDS (edit the stats, position of the wheels and character more easily)

Less important in my opinion:
-Editor for particles (.spa)
-somethings for .prm files (what does this contain?)
Author Posted on 2016/09/19
#2285
Miles Ermiiworth I made a library to easily Read/Write binary files. It works like the one Gericom gave me for KMP Expander, but it's for C++ and I made it from scratch anyway.

https://github.com/Ermelber/EndianBinaryIOLib
Author Posted on 2016/09/19
#2286
Megalegacy I would love to help! I'm pretty decent at C myself (me being inactive was partly me doing a lot of research), plus I'm learning C++. I will try my best not to be inactive. Also, I'm running ARM (RPi) and it will take maybe 1 week to 3 months to get a new computer. (that's how unsure I am :/) So when I get it, I will be 100% there, but I can probably get some stuff running on a RPi too. We'll see.
Author Posted on 2016/09/22
#2293
Miles Ermiiworth I've updated my EndianBinaryIOLib https://github.com/Ermelber/EndianBinaryIOLib

I've also implemented some sections of the KMP to my KMP Class, it will take some hours to complete. I can then start working on the actual tool
Author Posted on 2016/09/24
#2298
CuriousTommy Wonderful! Even though this is in its early stage, I can't wait for this to usable one day. May bring back my interest in making Mario Kart 7 custom tracks again! Sadly I can't do anything useful since I just started my computer science classes this quarter.

On a side note, I thought GTK+ would make the app look foreign on a Mac (if someone were to implement it on mac), but seeing how gedit looks on mac, it may not be bad at all.

Have you consider posting this on other sites like GBAtemp, so other people know about it?
Author Posted on 2016/09/24
#2299
MKGirlism
Have you consider posting this on other sites like GBAtemp, so other people know about it?

Not at the moment.
Posting it on GBATemp is more like gambling, as the outcome might be either "sure, I'll help", or "yeah, G'Luck alone", or "pics or GTFO", or they may not respond at all.
Author Posted on 2016/09/25
#2304
Miles Ermiiworth https://github.com/Ermelber/KMP-Tools

I've finished the KMP Class, I will start working on kmp2xml and xml2kmp soon.
Help with xml would be appreciated, anybody can help me
Author Posted on 2016/09/25
#2305
CuriousTommy
https://github.com/Ermelber/KMP-Tools

I've finished the KMP Class, I will start working on kmp2xml and xml2kmp soon.
Help with xml would be appreciated, anybody can help me


I wasn't able to compile it successfully. It states that it could not find KMPSections.h.
Author Posted on 2016/09/25
#2306
Miles Ermiiworth That's because I forgot to include it xD Thanks.

https://github.com/Ermelber/KMP-Tools

I also added the abstract KMP class that allows easier interaction (only for Enemy Routes for now)
Author Posted on 2016/10/22
#2425
MKGirlism I'll give a bit of an update now:
I've managed to port NDSTool, CTRTool, MakeROM, and BMDView by just re-compiling these.
And with a simple modification, I've as well managed to port NarcTool.

Also, I think I'll change my plans a bit: Most Tools will be Command Line-only now.
I don't see a point in having a GUI with just an "Open" and a "Convert" button, while it can be done way easier and way faster in Command Line...
And as a bonus, it makes it easier to re-compile on other systems, like on macOS.
Author Posted on 2016/10/22
#2428
MKGirlism We still don't have a Repository set up, so for now, you can enjoy the Tools we have for now this way.

In the Terminal:
wget https://www.dshack.org/files/downs/linuxtools.tar.gz
tar zxfv linuxtools.tar.gz
chmod 777 install.sh
./install.sh

And after that, you can use any of the following Tools in any directory:
- bmdview
- ctrtool
- kclcalc-7
- kclcalc-ds
- makerom
- midi2sseq
- narctool
- ndstool
- sseq2midi

More is coming soon.
Author Posted on 2016/10/22
#2429
SGC Yellow Oh, nice, I was wondering where we would get them, this should make it very easy.
Author Posted on 2016/10/23
#2430
User 348
I'll give a bit of an update now:
I've managed to port NDSTool, CTRTool, MakeROM, and BMDView by just re-compiling these.
And with a simple modification, I've as well managed to port NarcTool.

Also, I think I'll change my plans a bit: Most Tools will be Command Line-only now.
I don't see a point in having a GUI with just an "Open" and a "Convert" button, while it can be done way easier and way faster in Command Line...
And as a bonus, it makes it easier to re-compile on other systems, like on macOS.


I agree with you, it is better the command line

I made a library to easily Read/Write binary files. It works like the one Gericom gave me for KMP Expander, but it's for C++ and I made it from scratch anyway.

https://github.com/Ermelber/EndianBinaryIOLib


Do you mean .bin files in MK7?
Author Posted on 2016/10/23
#2431
MKGirlism EndianBinaryIOLib is meant for any kind of .bin files, actually.
You can't do any ROM Hacking with it as is, it's just a library.
Author Posted on 2016/10/23
#2432
User 348 Thanks ;)
Author Posted on 2016/11/01
#2481
MKGirlism Added 3 new Tools:
- yaz0enc (amnoid?)
- yaz0dec (amnoid?)
- makeromfs (3DSGuy) (EXCLUSIVE!)

Now I'm working on a BCMDL Generator.
Results so far:

administrator@LinBookPro ~/dev/cli/bcmdlgen $ bcmdlgen
BCMDL Generator 0.1 by MKGirlism

Usage:

bcmdlgen -h - Display help.
bcmdlgen -oc .obj - Convert obj to cmdl (Intermediate File).
bcmdlgen -dc .dae - Convert dae to cmdl (Intermediate File).
bcmdlgen -cb .cmdl - Convert cmdl to bcmdl (Binary File).
bcmdlgen -tt .tga - Convert tga to ctex.
bcmdlgen -pt .png - Convert png to ctex.
bcmdlgen -bo .bcmdl - Convert bcmdl to obj.
bcmdlgen -bd .bcmdl - Convert bcmdl to dae.

Press any key to continue...
administrator@LinBookPro ~/dev/cli/bcmdlgen $
Author Posted on 2016/11/02
#2483
CuriousTommy MkGirlism, will your bcmdlgen tool support more stuff, such as texture animation or vertex colors (basically things that you can do in Nintendo's SDK that is not possible with EveryFileExplorer)?
Author Posted on 2016/11/02
#2484
MKGirlism I didn't think of this, but it's good to consider it.
Speaking of which, I've just put the Source Code of what I have now on Github, so now everyone is welcome to contribute:
https://github.com/MKGirlism/bcmdlgen
Author Posted on 2016/11/03
#2485
MKGirlism The Repository is finally life!


Check out the TS for instructions.
Author Posted on 2017/02/10
#2939
Louiskovski Nice! Can't wait for the bcmdl and the nsbmd generator :)
Do you think, a nsbta (texture animation) generator is possible? SM64DSe has a generator, but the game uses BMDs. Are nsbmd and bmd similar, or are they a completely different thing?
Author Posted on 2017/02/10
#2941
MKGirlism Everything is possible, finding out on how to make everything possible is a different question.
Author Posted on 2017/02/10
#2942
SGC Yellow
Nice! Can't wait for the bcmdl and the nsbmd generator :)
Do you think, a nsbta (texture animation) generator is possible? SM64DSe has a generator, but the game uses BMDs. Are nsbmd and bmd similar, or are they a completely different thing?


To answer your question, SM64DS was one of the most early DS games, the model format it uses is based off of the same format that was used in some GC, and Wii games, though likely a bit simplified for DS standards, we can't say for sure if the format is similar to NSBMD, or not, but the 2 work in different was, so information about 1, will likely not help out with the other.
Author Posted on 2017/02/10
#2943
Louiskovski
To answer your question, SM64DS was one of the most early DS games, the model format it uses is based off of the same format that was used in some GC, and Wii games, though likely a bit simplified for DS standards, we can't say for sure if the format is similar to NSBMD, or not, but the 2 work in different was, so information about 1, will likely not help out with the other.

Alright. Sounds interesting. I will take a look at the Casino-Luigi from SM64 and NSMBDS, because SM64DS' Luigi is BMD, while the other is NSBMD. Maybe i can find some similaries.
Author Posted on 2017/05/10
#3146
CuriousTommy It seems like interest had died. Are these programs actually canceled, or put on hold?
Author Posted on 2017/05/10
#3147
MKGirlism No, neither is true.
Instead, the project got altered quite a few times over time.

Instead of creating a whole toolset of CLI apps, I've been developing a single GUI app to at the very least replace EFE with (last time it got updated was 2 years ago, and the creator doesn't care about it anymore, anyway).
This application is using GTKmm 3.x as its GUI library, so it could possibly allow me to easily cross-compile it for Linux, Windows, and macOS.
The only drawback here is, there's pretty much no documentation about GTKmm outside the official references, so it's basically tons and tons of blind Trial-and-Error, making it often difficult to get anything to work, which is also the reason why it takes so long.
Author Posted on 2017/05/10
#3151
CuriousTommy Seeing that there was not update in either Miles Ermiiworth's or your github page for a while got me worried for a moment. I am glad to see that I am wrong.

What is the program currently able to do?
Author Posted on 2017/05/11
#3160
MKGirlism Right now, it can view KMP values, and it has a nice menu, so nothing really fancy yet.
I'm working on the graphical viewer already, but mixing OpenGL into GTKmm is such a pain to do...
Author Posted on 2017/12/25
#3682
Bri How do these tools get installed with CLI?
Author Posted on 2017/12/25
#3683
テクニカル諏訪子 The repository is dead, follow the instructions at the bottom of the first post instead.