DSHack

Archive Generated December 23rd, 2018
CuriousTommy
User ID: 150

Thread: KMP Expander - a MK7 KMP Editor
Author Posted on 2015/12/16
CuriousTommy Hi Ermelber,
I just wanted to say thank you for creating this wonderful tool. It made parts of my course now drivable. I do a few questions though. Would it be possible to have a checkbox that has the checkpoints always be shown no matter what tab you are currently on? It would make positioning enemy and item much more easier since I am freestyling my custom track and don't know where everything is going to be at the moment. Also does the Defragment Objects help with the white screen issues also or is it just to make the list look more neater?

Thank you for taking your time to read this,
CuriousTommy
Thread: A few problems with my custom track
Author Posted on 2015/12/19
CuriousTommy So I have been working on my custom track and have been making a good amount of progress. The best part it that I was able to get the course to load without crashing; however, with that being said, I am having issues with the glider and the lap counts. I used Rainbow Road as my template

With the gliders, I was wondering if there is a way to set up the jump height of that glide. There is a youtube video in case if you didn't understand what I was trying to say. without holding the joystick up, I lose a lot of height. This gets more problematic when it comes to CPUs. since it seems like the CPUs never try to tilt upward.

In case if video does not work

The interesting thing with lap counts is that I can get the first and second lap to work (Remember this is Rainbow Road so it is split into sections), but I can not get the last lap to trigger, so I can't finish the course at all. In the end. I want to have this track be driven three times instead of splitting it into three section, but I want to fix this issue before I try to figure out how to do that.

Thank you for taking the time to reading this message,
CuriousTommy

P.S. Keep in mind that this track is still a work in progress
Here is a link to my Custom Track
Thread: A few problems with my custom track
Author Posted on 2015/12/19
CuriousTommy
I fixed the Video Embed for you.
Next time, use only the Video ID.

Okay, I'll do that next time.
Thread: A few problems with my custom track
Author Posted on 2015/12/22
CuriousTommy I have been playing around with my custom track recently and made a good amount of changes recently.

I came up with workarounds for the glider issue, so that is not an issue for me.

I noticed that there is a positioning bug when I am in certain sections of my custom track. There are two video that demonstrate this issue: the character position bug & the race end position bug. I am not sure what I am doing wrong since it looks like I have everything set up properly on the kmp file.

I am not sure if this bug is persistent with my recent modification, but I also noticed that using a blue shell will result with a game crash (it's not immediate though, it happens when the blue shell is about to hit the player in first place, but this only seems to happen when I attempt to finish the last lap.

With the recent modifications I have made, I still have the lap issue problem, but this time, I removed the sections in the kmp and tried to make it into a 3 lap course, so the lap change never triggers.

I also noticed that with the recent changes I have made, the CPU are having trouble with the mushroom jumps (I think the first one requires tricking in order to make it). Has anyone come up with a good solution for that?

Here is a link to my updated Custom Track
Thread: A few problems with my custom track
Author Posted on 2016/01/01
CuriousTommy
You probably have messed up the Key checkpoints.

Comparing it to other Nintendo track, I can't tell what I am doing wrong. ID 0 always starts with Key 0 and between each key, there should be 255.
I have it like this on the key checkpoints: 0 ... 225 ... 1 ... 225 ... 2 ... 225 ... 3 ... 225 ... 4 ... 225
Are there special rules for key checkpoints?

By the way, if you set Glider Routes, you can make a "fixed" route I think by linking the KCL Value to the right Path.

That's nice to know! I'll keep that in mind for the future.
Thread: Manually Editing KTPT?
Author Posted on 2016/01/19
CuriousTommy At first I couldn't figure out how the battle tracks handle the starting points, but then I looked at EveryFileExplorer and found out that the start points are at the KTPT section. It seems like KMP Expander can't edit or view KTPT. So I tried to use the old version, but I noticed that it doesn't give the option to export or import it as a CSV file. So I exported the raw binary, but I have no clue as to how to edit it a hex editor. I know that when an on a certain hex value the Float shows the x-coordinates, y-coordinates, or z-coordinates. But when I try to edit it, the number only changes a little and it is not the number that I want.

Edit: Nevermind, I got an idea of how floats worked
Thread: KMP Expander - a MK7 KMP Editor
Author Posted on 2016/01/29
CuriousTommy
New version!

- Added Glider Routes editing
- Added CSV Importing for Glider Routes
- Added CSV Exporting for CAME and AREA

In the next days, I'll add CAME and AREA editing and CSV Importing for them.
I think next will be the final beta.


Awesome! Do you plan to also add support for KTPT editing (In case if anyone is wondering, it is responsible for the starting positions for battle tracks)?
Thread: KMP Expander - a MK7 KMP Editor
Author Posted on 2016/01/29
CuriousTommy
Did you even try using the last 2 betas? Although I forgot to say I included KTPT, here it is:

http://prntscr.com/9whizz


Wow... I feel so stupid... I wasted my time hex editing when I could of used the editor instead.
Thread: A question about .saht and .sarc files
Author Posted on 2016/02/17
CuriousTommy I wasn't sure if putting this in the Mario Kart 7 help forum was appropriate considering that this would technically apply to any game that uses .sarc files.

A quick back story:
So I have been looking into how .sarc files and I was confused about how EveryFileExplorer was able to read 'unsafe' .sarc files since these files don't contain any filename strings until I found out that Gericom uses a premade .saht file.

On to the question:
Is the .saht a Nintendo file format, or something that Gericom just made up?
Also, where did Gericom get the real string names?

I actually have a working python code that analyses the file
Just be sure to have the file be called HashTable.saht and put it in same directory as


from struct import *

FileIn = "HashTable.saht"
SAHTFile = open(FileIn, mode = 'br', buffering = 0)

SAHTHeader = unpack('<4s', SAHTFile.read(4))
SAHTFileSize = unpack(' SAHTDataOffset = unpack(' SAHTNrEntries = unpack('
print("The Header file is {0}.".format(SAHTHeader))
print("The File Size is {0}.".format(SAHTFileSize))
print("The Data Offset is {0}".format(SAHTDataOffset))
if SAHTNrEntries is 1:
print("The Number Entry is {0}.".format(SAHTNrEntries))
else:
print("The Number Entries are {0}".format(SAHTNrEntries))
print("")
print("")

for i in range(0,SAHTNrEntries):
StartingPoint = SAHTFile.tell()
SAHTHash = hex(unpack(' print("The Hash is {0}.".format(SAHTHash))

Buffer = unpack('<1s', SAHTFile.read(1))
SAHTString = b''
SAHTString += Buffer
while Buffer != b'\\x00':
# My idea behind this code is to keep unpacking the
# Buffer until the Buffer hit a Null (or None in python)
# value. Then the program would stop doing this. But, becuase
# of how the code works, it also factors in a Null, however the if
# statement catches this. Just keep this in mind when using .tell()
Buffer = unpack('<1s', SAHTFile.read(1))
if Buffer != b'\\x00' and Buffer != b'/':
SAHTString += Buffer
elif Buffer == b'/':
print("The fake 'directory' is {0}.".format(SAHTString))
Buffer = unpack('<1s', SAHTFile.read(1))
SAHTString = b''
if Buffer != b'\\x00':
SAHTString += Buffer
else:
pass
else:
pass
print("The file name is {0}.".format(SAHTString))

HitNullPoint = SAHTFile.tell()
print("The actual range of data value is from {0} (Start at Hash Value) "
"to {1} (First null value after string).".format(StartingPoint, HitNullPoint))
print("Actual relative cursor location {0}.".format(HitNullPoint - StartingPoint))
if (HitNullPoint - StartingPoint) % SAHTDataOffset == 0:
pass
else:
NextHashPoint = SAHTDataOffset - ((HitNullPoint - StartingPoint) % SAHTDataOffset)
print("The distance of bytes to the next hash is {0}.".format(NextHashPoint))
SAHTFile.seek(HitNullPoint + NextHashPoint)
print("")

Thread: A question about .saht and .sarc files
Author Posted on 2016/02/17
CuriousTommy I realised that the code doesn't show...
Click me instead!
Thread: A question about .saht and .sarc files
Author Posted on 2016/02/18
CuriousTommy
SARC is a File Format made by Nintendo, I'm not sure about SAHT.

Yeah, I am going to ask Gericom about that.

And the real string names can be found by Hex Editing.

Do you know what particular file I should look at?

I know for a fact that it isn't in the .sarc course files. Looking that the documentation on 3dbrew, the real strings should be after the SFAT Header, but I don't see it in any of the .sarc courses files...
Thread: Bottom screen?
Author Posted on 2016/02/18
CuriousTommy It involved editing the UIMapPos

Toad Stoll Was able to figure it out: Toad Stools quote
You do need to use a hex editor though...
Thread: A question about .saht and .sarc files
Author Posted on 2016/02/18
CuriousTommy
@CuriousTommy
The made the SAHT format myself. Inside the SARC files are name hashes that are used by the game to still be able to use a path. Reversing is not possible, but I could guess a lot of names (based on a list of object names in mk7 and the course names), and put the hash-name pairs in a table. If you want, you can calculate the hash from a path here: http://www.florian.nouwt.com/SarcHash/
Also, if you want to edit the hashtable, you can simply open it with EFE.


Okay, thanks so much! I will also be sure to credit you.
Thread: Bottom screen?
Author Posted on 2016/02/18
CuriousTommy
I don't think it has anything to do with UIMapPos, besides the positioning(?)

The actual map images are stored in the map and map2 bclim files. I don't know how you edit them, though.


Your right, to edit the actual images, you have to edit the map and map2 bclim files. I was only thinking about the position only when I replied.
Thread: [TUTORIAL] How to do checkpoints properly
Author Posted on 2016/03/18
CuriousTommy
Nice tutorial. Now for your next challenge, figure out why in the hell does this KMP refuse to work?


I already told you on Skype if I could have the OBJ for the map to make it easier and you never did. :P


If you do or were able to solve the problem, would be mind telling us what you did if that is okay with you?
Thread: Tool Repository - Install Tools Through Command Line!
Author Posted on 2016/09/24
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?
Thread: Tool Repository - Install Tools Through Command Line!
Author Posted on 2016/09/25
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.
Thread: Tool Repository - Install Tools Through Command Line!
Author Posted on 2016/11/02
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)?
Thread: Tool Repository - Install Tools Through Command Line!
Author Posted on 2017/05/10
CuriousTommy It seems like interest had died. Are these programs actually canceled, or put on hold?
Thread: Tool Repository - Install Tools Through Command Line!
Author Posted on 2017/05/10
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?
Thread: Using The SDK Provided In The Hack Store To Understand File Formats
Author Posted on 2017/06/16
CuriousTommy I was not sure how to word the title, but I have a question about the legal implications of using tools that include applications for Nintendo's proprietary SDK. Before I was playing around with SARC files using PabloMK7's SZS Generator, I found that this program has the SDK tool that generates SARC files. I have been messing around with the parameters and produced different files, both big endian and little endian with different options to understand how the format works.

Based off of the exported files I generated with the SDK, I now have some knowledge as to how the format works. I wanted to make a program (as a summer project; mostly for fun) that extracts and creates SARC files, but I am worried that my exposure to the SDK tools may cause me legal issues if I were to release my tool to the public.

I remember the situation with Brawl where people were relying on the Wii's SDK tools to create mods until Kryal released BrawlBox. Does anyone know how Keyal approached making BrawlBox since s/he said that the application is legal to use?