Q: What is this?
A: Sky Army Knife is a multitool for Sky3DS users I'm currently coding in C++ with a dash of .Net. In its current state (version 1.5.1) the tool is capable of generating relatively accurate Template Files for .3DS ROM files, displaying ROM infos of header.bin and *.3DZ files and trimming *.3ds ROM files.
Q: Fair enough, how do I use this?
A: It's really simple and self-explanatory:
Sky Army Knife window
- Browse for the original Sky3DS template file
- Browse for a .3ds ROM
- Type in or copy-paste a UniqueID. This text box only accepts characters from 0-9, from a-f/A-F, each pair of characters should be separated by a space. If the game you're creating a template for is Offline, you can also skip this step by checking the Zero-Fill checkbox.
- Select the EEPROM constituents from the drop-down boxes. If you don't know what EEPROM type the game you're generating the template for uses, consult the look-up box. If you do not select any EEPROM type, the generator will Zero-Fill that portion of the template instead. If you cannot find a suitable option, the fields are free-form, so you can type in any Byte values you'd like.
- Select the CartID constituents from the drop-down boxes. If you don't know what CartID type the game you're generating for uses, consult the look-up box. If you do not select one or more CartID elements, the generator will Zero-Fill the blank portions of the template instead. If you cannot find a suitable option, the fields are free-form, so you can type in any Byte values you'd like.
- Type in an UnknownID. This text box only accepts characters from 0-9, from a-f/A-F, each pair of characters should be separated by a space. Currently nobody really knows what this ID reflects as it is not used directly by DiskWriter, so it has to be auto-detected from the original template using the checkbox on the right.
- Click "Generate Template" to generate your Template contents. You can generate several templates at a time.
Q: How do I "consult the look-up box"?
A: It's very simple, provided you know what you're looking for. Here's an example:
A Sky3DS template analyzed
Most of those values are detected or calculated for you, those that aren't (Cart ID and EEPROM ID) can be easily looked up in the Base Template look-up box.
Q: Cool! What if your tool doesn't work though?
A: I've taken great care to make sure that the application doesn't misbehave or explode in the user's face for no reason, but if it does, please post in this thread and I'll do my best to fix the problem.
Q: All this is great, but the application is missing XYZ.
A: We're all human! If you have any suggestions, be sure to post them here.
Q: Can I have the source code?
A: As I said before, this tool is released in a state of urgency, the source code isn't exactly tidy just yet, merely operational. I will clean it up in the few passing days and then I can provided it to any interested parties.
Q: Where can I get it?
A: Right here, on GBATemp.net, specifically on FileTrip:
- v.1.0 Initial release
- v.1.1 Quickfix: EEPROM values for Macronix chips now generate correctly
- v.1.2 Non-public, testing new GUI elements, code clean-up
- v.1.3 EEPROM settings divided into two boxes, Unknown ID auto-detection added, look-up Base Template box added
- v.1.4 New tool: Infos Extractor compatible with GW ROM and Header dumps, EEPROM Size and Manufacturer fields now further subdivided for increased customizability, Unique ID Zero-Fill replaced with a Randomize option (are you feelining lucky?), misc. code optimization, form can now be resized to access scroll bars
- v.1.4.1 Quick Fix: Base Template string shortened to trim white signs
- v.1.4.2 Searches now performed on the basis of SHA1 values rather than product codes, EEPROM and Cart ID fields are now free-form, drop-down options of "0x80" and "0x88" for the Mystery Byte added, KTR (New 3DS) compatibility, Template Magic Check fixed, volatile exception when entries were not found in the Base Template is now handled
- v.1.4.2 Quick Fix Fixed the drop-downs that I accidentally broke.
- v.1.5 Added ROM Trimming function, Unknown ID detection bug fixed, improved Random Number Generator
- v.1.5.0 Quick Fix Fixed bug in ROM trimmer, 4GB ROMs now trim correctly
- v.1.5.1 Trimmer now working in a Background Worker class in a separate thread leading to no more GUI freezes, several optimizations
- Falo for the original Template Maker and providing its source code, it proved to be a great code base for Sky Army Knife.
- Lukas2511 for his Python-based tools and detailed information about the Sky3DS available on his GitHub.
- smealum, Neimod, @yellows8, profi200, WinterMute, elisherer, 3DSGuy and other 3DS Scene Developers who continue to research the platform - you make our homebrew dreams a reality, keep it up!