Dynamic Over/underclocking.


Khatoblepas

Still Fresh
Joined
Dec 28, 2005
Messages
94
Age
35
Location
England
Website
Visit site
I was thinking about battery life as according to the engine I'm making, and I realised that most of the time, the Gamepark wouldn't NEED to go flat out to run everything. Menus could be at a minimum, the Pause screen requires almost nothing at all, and I'd only need to go the full 200Mhz when I'm doing sound+music+transparency.

So it got me to pondering about the software clock changes. Perhaps in the middle of battle, if there's, like, semi transparent scaled icicles raining from the sky for an awesome spell, why let it slow down just for the sake of battery life for the rest of the game in exchange for the user snapping out of the gaming 'trance' that the illusion of smooth animation gave? It seemed so perfect. I mean, other handhelds do it. The gameboy shuts down its' sound circuits to save battery, and LCD when not writing to it, as far as I know.

However, there is a problem I have. What if constantly changing the clockspeed corrupted the memory refresh? Is there a way to dynamically over/underclock the CPU without totally crashing the program? Or will it damage the Gamepark or make it too unstable? I don't mean going under 150, or over 266. But varying it so it balances battery verses smoothness.
 
I was thinking of investigating a suspend mode, which would halt the primary process, turn off the LCD, underclock the CPU as far as possible, and just poll for input every second or so - so holding the Start button down would wake the game up again. For bonus points, do it in a way that could be plugged into pretty much any game without needing more than a single function call to kick off the whole process. You'd need to preserve the content of any hardware registers you modify, and might run into other issuse with timing and sound buffers for example, but it feels plausible and quite useful too.
 
it shouldnt be too hard to write a app to read the current cpu usage and modiefy cpu speed acording to it
 
But is it safe? I've read that you can modify which timer the LCD uses, but the memory runs in parallel with the CPU. Would constantly changing 'gear' be detrimental to the Gamepark?
 
Isn't this something that might be better handled by the os?
If someone is running something else in the background all your carefully selected CPU speeds could be wrong. I believe there is already a mp3 player that runs in the background.
 
Back
Top