- Joined
- Jun 12, 2012
- Messages
- 509
- Trophies
- 1
- Location
- HELL
- Website
- tiduscrying.wordpress.com
- XP
- 2,593
- Country
Hi everyone. Last night I posted this idea on Reddit to gauge some opinions and get some information on whether or not my idea was possible. Turns out it is and it seems to be a relatively simple one. But let me go over it here, too.
My idea is to code a simple icon-cache refresher for the 3DS. This serves multiple purposes and could be helpful to a lot of people (mainly romhackers like myself). A lot of people think that the icon cache can only be cleared for a specific application if you uninstall it completely and then re-install it. While this is partially true, there is another, quicker and more efficient way to clear the icon cache that doesn't require uninstalling anything at all.
According to this thread, the icon cache is stored in the extdata as a file named "CacheD.dat" and can be easily deleted with no harm done to the system other than refreshing the icon cache and clearing the currently installed theme(s). Alternatively, the icon cache can also be cleared by deleting the file here: "SD:/Nintendo 3DS/<ID0>/<ID1>/extdata/00000000/0000008f/00000000/00000005". I have tested this multiple times using multiple methods. First method I used was booting into CTRX Explorer, navigating to the appropriate directory and deleting the 00000005 file. I then exited the program and rebooted my 3DS and the icon cache was cleared and the home menu data was refreshed. FBI has the ability to delete the icon cache as well by selecting the "Ext Save Data" option, selecting the 000000000000008f directory, selecting "Browse User Save Data" and then deleting the CacheD.dat file. I tried this, too and it seems to have worked. My home menu refreshed accordingly upon reboot.
Some comments on the reddit post suggested that the icon cache cannot be touched while in userland, but I believe with my results I have proven this as false, since I successfully cleared it twice while in userland. I don't know if this is the same for everyone else, and I would be interested to hear if anyone else can delete the files manually while the system is booted like I can.
This now brings me to what I want to do with all of this information and why I need help. I currently don't know a lot of things about programming, let alone programming for the 3DS, but I have seen a lot of simple tools created using @Rinnegatamante's Lua Player Plus port. What I would like to do is to code a simple application that can delete the icon-cache and reboot the system. Nothing more, nothing less (except for maybe warning the user that their theme is going to be removed upon rebooting). The only thing is that I don't quite know where to start, and I don't know if this is possible with LPP.
Here is how I was thinking the code would work:
Like I said before, I don't know too much programming knowledge (I've only dabbled with python a bit and took a course on Basic back in high school), so I only vaguely know where to start with this. If someone could offer some guidance on where to start and how to try these commands safely, that would be wonderful. Despite not knowing what to code right now, I would really like to do it myself since it would be a learning exercise and something new to do for me outside of graphic romhacking work!
My idea is to code a simple icon-cache refresher for the 3DS. This serves multiple purposes and could be helpful to a lot of people (mainly romhackers like myself). A lot of people think that the icon cache can only be cleared for a specific application if you uninstall it completely and then re-install it. While this is partially true, there is another, quicker and more efficient way to clear the icon cache that doesn't require uninstalling anything at all.
According to this thread, the icon cache is stored in the extdata as a file named "CacheD.dat" and can be easily deleted with no harm done to the system other than refreshing the icon cache and clearing the currently installed theme(s). Alternatively, the icon cache can also be cleared by deleting the file here: "SD:/Nintendo 3DS/<ID0>/<ID1>/extdata/00000000/0000008f/00000000/00000005". I have tested this multiple times using multiple methods. First method I used was booting into CTRX Explorer, navigating to the appropriate directory and deleting the 00000005 file. I then exited the program and rebooted my 3DS and the icon cache was cleared and the home menu data was refreshed. FBI has the ability to delete the icon cache as well by selecting the "Ext Save Data" option, selecting the 000000000000008f directory, selecting "Browse User Save Data" and then deleting the CacheD.dat file. I tried this, too and it seems to have worked. My home menu refreshed accordingly upon reboot.
Some comments on the reddit post suggested that the icon cache cannot be touched while in userland, but I believe with my results I have proven this as false, since I successfully cleared it twice while in userland. I don't know if this is the same for everyone else, and I would be interested to hear if anyone else can delete the files manually while the system is booted like I can.
This now brings me to what I want to do with all of this information and why I need help. I currently don't know a lot of things about programming, let alone programming for the 3DS, but I have seen a lot of simple tools created using @Rinnegatamante's Lua Player Plus port. What I would like to do is to code a simple application that can delete the icon-cache and reboot the system. Nothing more, nothing less (except for maybe warning the user that their theme is going to be removed upon rebooting). The only thing is that I don't quite know where to start, and I don't know if this is possible with LPP.
Here is how I was thinking the code would work:
- First, the program would identify the region that the system is; this is because the extdata folder has a different name based on the region (8F for US, 98 for EUR and 82 for JP).
- This would probably be an if/then statement, I think.
- Once the program identifies the system, it scans for the folder. Once the folder is found, the program would be able to go deeper into the extdata and delete the CacheD.dat file.
- Once the CacheD.dat file is deleted, the program would either prompt the user to reboot the system manually or it would reboot the system automatically (I am unsure whether or not you can issue a reboot command using LPP).
- Once the system is rebooted, viola, the icon cache is refreshed, and the home menu theme is gone as a result.
Like I said before, I don't know too much programming knowledge (I've only dabbled with python a bit and took a course on Basic back in high school), so I only vaguely know where to start with this. If someone could offer some guidance on where to start and how to try these commands safely, that would be wonderful. Despite not knowing what to code right now, I would really like to do it myself since it would be a learning exercise and something new to do for me outside of graphic romhacking work!