Archive for October, 2006|Monthly archive page
Instead of Powering Off, LoveLite will attempt to return to the bootmenu.
- ALL Supercard devices will now return to the sc menu. (SCLite users, please give feedback)
- GBAMP (with chishm’s hack) will now return to _BOOT_MP.NDS.
- M3 devices will now return to the m3 menu. (M3CF and M3SD tested. If not working, try holding L. Please give feedback)
- EZ IV devices will return to the ez menu. (Note: it takes a few seconds before LoveLite is initialized. After that, it works though)
- EZ-Flash III and EZ-Flash II has potentially working code, but no one tested yet.
- The firmware is now tested before it writes the brightness. Also corrected the iQue offsets.. iQue users: Please make sure you have a -Flashed iQue- before trying this software. No tests have been done on iQue devices, because I don’t have one. It should work as expected, but until people have tested it, I can’t claim anything.
- The buttons were reacting too slow, now you shouldn’t have any input-delays. In other words: smooth touching.
- Graphics glitches were found on some cards, also fixed.
What’s about the beta?
I turned this into a beta, so that people hopefully will read the release notes.
THIS SOFTWARE BRICKS YOUR DS (Disclaimer)
No, it doesn’t. Yes, it bricked a few iQues (hopefully they were flashed) but the code is fixed. As you can read in the changes, the potentionally dangerous code now includes checking of the firmware before writing to it. Check the source if you still have your doubts.
The release is tested on western ds’es, but make sure your firmware is flashed and recoverable, if you’re the first person to test LoveLite on your type of hardware. (FlashMe users are 100% safe!)
http://lick.huuf.net/LoveLite-1.3-beta.zip (114 KB)
- source.zip (educational purposes only; please contact me about modifications!)
- Implement new device-detection code.
- Make the return feature work for even more deviceTypes.
Enjoy, and report all possible bugs so I can fix them in the next release!
[ Update ]
Made a small modification – LoveLite-1.1 now only saves the setting when the Power Off button is pressed. This is probably better for your hardware.
* open-sourced for educational purposes. Not for modifications (send your modifications to me, if it’s any good, I’ll add it and your name to LoveLite!)
LoveLite – actually (Love)Lite. But it’s easier without the paranthesis. No I’m not a hippy. I’m in love! =D
LoveLite allows you to permanently (that is: power-off-proof) change your Lite brightness setting. It’s a project that came out of an earlier experiment (see below). There’s also a very sensitive Power Off button so you don’t have to push the powerbutton (the real one) twice.
I never ran ALite, but I heard that ALite doesn’t permanently save the brightness. So I made LoveLite.
Thanks Huuf for hosting, by the way, where are you?
LoveLite-1.1.zip (78 kiB) contains:
- source.zip (!!)
- (Maybe) “Return to Supercard” button.
A Japanese blogger posted about DSLiveWeather and how to use it. It’s all written in Japanese so I don’t know if he actually liked it or not, hehe, however, it might help people who understand Japanese to set up DSLiveWeather.
Visit the page here.
Also, on the development side, I’ve been really busy with school and other stuff (yeah real life) so I haven’t done so much lately. I am currently working on something different from DSLiveWeather, which will become part of it later on, but it’s still very “nothing-ish” right now. I have also fixed a few bugs in “Aperio”3: the famous time bug and the flickering text in the forecast tab. Another important improvement is the ability to permanently change the Brightness Level. In the previous releases, when the DS was powered off, the brightness level would be lost. For example, if you start DSLiveWeather and set the brightness to maximum, then after reseting the DS, the brightness would be reset as well, so not maximum. But from now on you can use DSLiveWeather, instead of the firmware, to quickly change the brightness before you play games/run apps!
The next version will be released when I finish that “nothing-ish” part. Hopefully that will be soon.
A lot of tutorials tell you to wait before reading the FIFO:
while(REG_IPC_FIFO_CR & IPC_FIFO_RECV_EMPTY); // if empty, wait..
whatever = REG_IPC_FIFO_RX; // ..then read/receive!
But when mass-transfering variables through the FIFO queue, it is also wise to check before writing/sending, if the queue isn’t full. ‘Cuz if it is, you will have to wait until there’s a spot free, or the write will fail. Note: there is a total of 16 free spots in the queue.
So to add to those lacking tutorials, check the queue before sending data!!
while(REG_IPC_FIFO_CR & IPC_FIFO_SEND_FULL); // if full, wait..
REG_IPC_FIFO_TX = whatever; // ..then write/send!
The above code is safe to do within a loop. Here’s an example:
// OMG!! More than 16!!
while(REG_IPC_FIFO_CR & IPC_FIFO_SEND_FULL);
REG_IPC_FIFO_TX = data[i];
For me, another bug solved! Hehe..
I found the bit in the UserSettings that stores the Nintendo DS Lite boot-up brightnesslevel. By reading/writing to this address, we can make the Lite boot-up with the desired brightnesslevel. Unless I’m slow, this hasn’t been done before.
Anyway, the bits are at the Language and Flags variable in the UserSettings. Bit 4 and Bit 5 will have to value of 0-3 (2 bits) indicating which brightnesslevel is stored.
(For read-only, libnds provides PersonalData->RESERVED3.)
Basically: manufacturers don’t help homebrewers. (They only help rom pirates with patchers etc.) Sad thing.