TuxSH / TWLSaveTool

A 3DS homebrew that allows you to read, write, and erase save files from NDS cartridges
GNU General Public License v2.0
171 stars 17 forks source link

Changed key layout to be more 'natural' and to ones that seem to make… #5

Closed ghost closed 8 years ago

ghost commented 8 years ago

… more sense.

ghost commented 8 years ago

Keys:

B - Backup Save A - Restore Save X - Erase Save Y - Restart START - Exit

TuxSH commented 8 years ago

Using A and B causes a conflict when choosing whether to overwrite a save file or not and when choosing whether to erase save data or not.

ghost commented 8 years ago

That's odd, since it works fine for me... Maybe I should add a slight delay after the key press, to help prevent the problem.

TuxSH commented 8 years ago

Maybe ... But if the end-user hold either A or B he could be screwed.

And -- this is my opinion -- the key used to erase a save file shouldn't be near the other ones.

ghost commented 8 years ago

True. Perhaps when the user is promped to confirm or cancel, they have to press Up for confirm and down for cancel.

This way, they cannot accidentally do anything :)

TuxSH commented 8 years ago

But there A and B are the most conventional keys to use.

ihaveamac commented 8 years ago

I think when something that could accidentally erase something the user doesn't want to erase, it should have a special key for it to prevent any accidental actions.

ghost commented 8 years ago

I guess. So are the L and R keys the most common to break, that's why I was hoping to purge the idea of using them.

SysUpdater doesn't use conventional keys and neither does TinyFormat. They don't use conventional keys as it ensures the user was paying attention to what they are clicking, instead of using the common A and B.

In my opinion, having them as A and B makes it easier to mess up something, due to the common "force of habit".

I guess that's just my way of thinking :P Anyways, I compiled the latest source and it only makes a CIA and SMDH, no 3DSX 0~0

ghost commented 8 years ago

@ihaveamac agreed

ghost commented 8 years ago

Changed A and B to confirm and cancel, to UP and DOWN.

TuxSH commented 8 years ago

Delete cmake-generated files then reconfigure with -DCIA=OFF

ghost commented 8 years ago

@TuxSH Okey. Thanks :D

TuxSH commented 8 years ago

I'll see if I can implement user settings when I have time.

ghost commented 8 years ago

Okey doke. I wonder if @AlbertoSONIC is able to contribute to this. He's the dude who made the GUI system for rxTools.

TuxSH commented 8 years ago

I don't know anything about how to make a GUI for a 3DS homebrew, or graphical stuff in general. x)

ghost commented 8 years ago

Me neither, but @AlbertoSONIC does :D The question is will he be interested in adding it or not.

AlbertoSONIC commented 8 years ago

I can work on it.. But won't take a look at this until tomorrow afternoon (I have a test tomorrow morning :-1: )

ghost commented 8 years ago

Yay Alberto :D (Darn. 2 weeks ago, I passed out in my English assessment xD Whoops)

ghost commented 8 years ago

@AlbertoSONIC Maybe the UI could look like the NDS ver: https://gbatemp.net/screenshots/%5B2719%5Dndsbackuptool.jpg or maybe even Material Design themed. Just a suggestion tho. Not my project xP

AlbertoSONIC commented 8 years ago

@lavanoid First i need to get this project to compile xD... cmake is such a pain!

ghost commented 8 years ago

@AlbertoSONIC Ubuntu FTW XD Wanna use my VPS, to do it?

AlbertoSONIC commented 8 years ago

No no I need to do this on my laptop! I guess I'll try to fix it this afternoon...

ghost commented 8 years ago

Okey dokey. Otherwise I would have suggested building on that, then transfer it to the laptop via filezilla. That was just an idea if you couldn't get it working.

If you're using Linux for your compiling, I could help you out with configuring it all, if you want.

AlbertoSONIC commented 8 years ago

Unfortunately I'm using windows 10.. I'm having some path issues...

ghost commented 8 years ago

Oh. My philosophy: If it's Windows 10, the problem is Windows itself xD (Not entirely true but I just don't like 10, lol)

Welp, can't help much there as I always build stuff on Linux 0~0 If you haven't managed to get it working later this evening, I'll see if I can get it building on my Windows installation and help you out with it, though I'm sure you'll manage it yourself :P

AlbertoSONIC commented 8 years ago

I get this:

[ 57%] Built target TWLSaveTool [ 71%] Generating TWLSaveTool.smdh [ 85%] Generating TWLSaveTool.bnr make[2]: BANNERTOOL-NOTFOUND: Command not found make[2]: * [TWLSaveTool.bnr] Error 127 make[1]: * [CMakeFiles/TWLSaveTool_cia.dir/all] Error 2 make: *\ [all] Error 2

But bannertool is inside both DevKitPro/msys/bin and DevKitPro/DevKitArm/bin and added to path!

EDIT: And If I just type "bannertool" in cmd window, it says

Usage: bannertool Available commands: makebanner - Creates a .bnr file. -i/--image: PNG file to use as the banner's image. Interchangeable with -ci. -a/--audio: WAV file to use as the banner's tune. Interchangeable with -ca. -ci/--cgfximage: CGFX file to use as the banner's image. Interchangeable with -i. -ca/--cwavaudio: CWAV file to use as the banner's tune. Interchangeable with -a. -o/--output: File to output the created banner to. makesmdh - Creates a .smdh/.icn file. -s/--shorttitle: Short title of the application. -l/--longtitle: Long title of the application. -p/--publisher: Publisher of the application. -i/--icon: PNG file to use as an icon. -o/--output: File to output the created SMDH/ICN to. -r/--regions: Optional. Comma separated list of regions to lock the SMDH to. Valid regions: regionfree, japan, northamerica, europe, australia, china, korea, taiwan. -f/--flags: Optional. Flags to apply to the SMDH file. Valid flags: visible, autoboot, allow3d, requireeula, autosave, extendedbanner, ratingrequired, savedata, recordusage, nosavebackups. -mmid/--matchmakerid: Optional. Match maker ID of the SMDH. -ev/--eulaversion: Optional. Version of the EULA required to be accepted before launching. -obf/--optimalbannerframe: Optional. Optimal frame of the accompanying banner. -spid/--streetpassid: Optional. Streetpass ID of the SMDH. makecwav - Creates a CWAV file from a WAV. -i/--input: WAV file to convert. -o/--output: File to output the created CWAV to. lz11 - Compresses a file with LZ11. -i/--input: File to compress. -o/--output: File to output the compressed data to.

So it works!

ghost commented 8 years ago

I'd laugh if it worked if you renamed bannertool to "BANNERTOOL-NOTFOUND.exe". Tried putting bannertool in C:\Windows, maybe? I'll look when I get home.

ghost commented 8 years ago

Means that the buildscript is dodgy 0~0

AlbertoSONIC commented 8 years ago

Wtf actually renaming bannertool to BANNERTOOL-NOTFOUND.exe fixed it! xD

Same for makerom!

ghost commented 8 years ago

Wow xD I wasn't expecting that to work.

TuxSH commented 8 years ago

See 0bf5047b7e5edafe6fb257f6c1eb7931559051a3. Compiling should be way easier

TuxSH commented 8 years ago

In addition to FSUSER_GetLegacyRomHeader, access control flag "TwlCardBackup" (which we're using) grants access to FSUSER_GetLegacyBannerData as well, something that's really relevant for a GUI :p

ghost commented 8 years ago

I wish I understood what that means exactly but sounds awesome! :D

TuxSH commented 8 years ago

This means that we're able to read the cartridge icon data, documented here

ghost commented 8 years ago

Oh wow! Now that's awesome! :D Gonna be great when/if we get the GUI implemented.