DSHack

Archive Generated December 23rd, 2018
BOL Editor (upcoming)
Author Posted on 2015/11/13
#935
NiAlBlack Background: As you might have heard, I was planning to port GCN Yoshi Circuit and maybe some more Mario Kart: Double Dash!! tracks. So I made the KCL and the model and I was facing the most annoying part of CT creation: KMP editing! So I thought: Why not port the KMP from Mario Kart: Double Dash!! (Because I'm extremely lazy :P) After some research I found a file documentation of BOL files (the MKDD equivalent of KMP) but no (public) tools, so I thought why not create my own editor. So I did!


This is Waluigi Stadium's BOL.

As you might have noticed, the layout is heavily inspired by KMP Cloud. So far it is only capable of reading the BOL file and displaying its contents in tables, but I'll definitely add more functionality.

Eventually, this could lead to Mario Kart: Double Dash!! Custom Tracks. Model importing is already possible, the only thing missing is a BCO (collision file) creator.
Author Posted on 2015/11/14
#936
Gericom MKDSCM Last has a POC bol->nkm converter aswell. One of the things I still couldn't figure out of the bol format is the rotation values. They are in some strange format. I think it's some kind of vector, but I am not sure.
Author Posted on 2015/11/14
#938
NiAlBlack
MKDSCM Last has a POC bol->nkm converter aswell.

Oh well, I didn't know that. I'm gonna keep on working on it anyway because I wanna experiment with MKDD a little as it is one of my favorite Mario Karts. It's also a good practice as I'm a beginner with programming.

One of the things I still couldn't figure out of the bol format is the rotation values. They are in some strange format. I think it's some kind of vector, but I am not sure.

Yeah, I encountered the same issue. But I just figured it out. I read them as Int32 and interestingly they seem to fulfil a² + b² = c². With "a" being the first, "b" being the second and "c" being the third value of the vector. Some are a little off though. Using trigonometry, you can calculate the angle (in degree) using this formula: sign(value1 + 0.5) * arccos(value 2 / sqrt( sqr(value 1) + sqr(value 2))) * (180 / pi). (The "+ 0.5" is just there so it also returns "+1" as sign if the value is zero.) I don't really know if the third value really matters, it appears to be the same for almost all entries. I still gotta test those where it is different.

Edit: It looks like a² + b² = c² always applies, no matter what value c is. This was probably done so the calculation can be performed more easily as the formula can be simplified to sign(value1 + 0.5) * arccos(value 2 / value 3) * (180 / pi). However, this is not as accurate, as many values for c are off.
Author Posted on 2015/11/15
#940
Gericom
MKDSCM Last has a POC bol->nkm converter aswell.

Oh well, I didn't know that. I'm gonna keep on working on it anyway because I wanna experiment with MKDD a little as it is one of my favorite Mario Karts. It's also a good practice as I'm a beginner with programming.

One of the things I still couldn't figure out of the bol format is the rotation values. They are in some strange format. I think it's some kind of vector, but I am not sure.

Yeah, I encountered the same issue. But I just figured it out. I read them as Int32 and interestingly they seem to fulfil a² + b² = c². With "a" being the first, "b" being the second and "c" being the third value of the vector. Some are a little off though. Using trigonometry, you can calculate the angle (in degree) using this formula: sign(value1 + 0.5) * arccos(value 2 / sqrt( sqr(value 1) + sqr(value 2))) * (180 / pi). (The "+ 0.5" is just there so it also returns "+1" as sign if the value is zero.) I don't really know if the third value really matters, it appears to be the same for almost all entries. I still gotta test those where it is different.

Edit: It looks like a² + b² = c² always applies, no matter what value c is. This was probably done so the calculation can be performed more easily as the formula can be simplified to sign(value1 + 0.5) * arccos(value 2 / value 3) * (180 / pi). However, this is not as accurate, as many values for c are off.

Good job figuring that out :) I wonder why they would have used such a format. I mean, even in mkds they simply use degrees.
Author Posted on 2016/01/01
#1263
NiAlBlack So here it is: Download

Features:

- Read and write BOL Files
- Graphical editor with top, front and side view
- Table View
- Copy and paste functionality for sub-groups (can be used to move a sub-group from one BOL file to another)
- Add, insert, delete and move groups and entries (checkpoint group links are automatically adjusted)
- Export and import CSV Sheets
- Transform points - scale, translation and rotation are supported

Planned features for future releases:

- Use OBJ as background
- Convert OBJ to BOL
- Export (and maybe import) other Mario Kart Formats like MKWii KMP or MK7 KMP or MKDS NKM
- Show angle in graphical editor
- 3D view
- Show scale of points with 3D Scale vector and rotation and not just of EIPT.

How to use:

Open the tool and click on File -> Open and browse for your BOL file.
You can switch between a map and a table.
Click on a section/group to highlight it on the map ot to load its table.
Right-click a section/group to get a list of options (e.g. copy, paste, etc.)

Map:

Use the checkboxes to control which sections/groups are shown on the map.
Use the mouse wheel to zoom in and out on the map or click and drag to pan.
Click a point and drag it to move it.

You can either use "Save" to overwrite the BOL you opened or "Save As..." to save it to a new file.

For bug reports, post in this thread, PM me or e-mail to nialblack@black-hack.net.

Oh, do you think it would make sense to upload this to the hack store? It's actually a MKDD tool, so it's not directly related to Nintendo handheld hacking.
Author Posted on 2016/01/02
#1268
Gericom Well done!
So here it is: Download
Oh, do you think it would make sense to upload this to the hack store? It's actually a MKDD tool, so it's not directly related to Nintendo handheld hacking.

Yes, you can do that if you like.
Author Posted on 2016/01/02
#1269
Platinatic What you could do is make this a plugin for EFE, since that tool is already plugin based and your tool would be a perfect fit for the program. It also makes it easier for everyone => one tool that has everything => much more convinient and efficient to use.

Anyway, nice work! It's cool that we have another someone who can also make tools and to make hacking easier for the less experieced
(people like me :P)