Hi all,
are there any methods that I can drive NES into
a "power-saving" or "sleep" mode so that minimal
power will be consumed while it can be awakened
by timers?
Blanc
There's no feature like that, really. Maybe if the PPU's output and NMIs are disabled, and the program just sat on a "here: JMP here" in (internal) RAM. Then it could be 'woke up' by an external IRQ.
I doubt it would save much power though, if any at all. It would put a stop to cartridge memory reads at least.
You could press the power switch and set a timer to remind you to power it back on later. I think I got both requirements covered :)
The NES wasn't designed to run off batteries, and it was designed before governments started giving tax breaks for "green" computing.
The best way to save some power is to turn it off. Some battery backed games like Fire Emblem and Just Breed have a "suspend" mode, it doesn't actually save the game, but it just allow you to turn the power off and continue the stage later, but this isn't a save scince you can't restore it if the game is over.
Well, it's possible to install a device on NES to cutoff the video/audio output signals via 4017h port. A proper blueprint wouldn't be so hard. I don't know the GBA sleep mode though, but I believe it's possible.
GBA has two sleep modes:
- "Halt" stops clocking the CPU core until an interrupt is triggered but leaves the audio, the PPU, and background DMAs running. It's commonly used to wait for the vblank.
- "Stop" stops clocking CPU, PPU, and audio until an interrupt is triggered.
The Super NES has Halt as well by executing the 'wai' instruction.
But because of how NES sound works, where one clock runs both the CPU and the audio but there is no 'wai' instruction like on 65c816, I don't think it'd be possible to make Halt. Stop, on the other hand, would involve intercepting the master clock signal on the NES mainboard.
tepples wrote:
GBA has two sleep modes:
- "Halt" stops clocking the CPU core until an interrupt is triggered but leaves the audio, the PPU, and background DMAs running. It's commonly used to wait for the vblank.
- "Stop" stops clocking CPU, PPU, and audio until an interrupt is triggered.
The Super NES has Halt as well by executing the 'wai' instruction.
But because of how NES sound works, where one clock runs both the CPU and the audio but there is no 'wai' instruction like on 65c816, I don't think it'd be possible to make Halt. Stop, on the other hand, would involve intercepting the master clock signal on the NES mainboard.
Are there any SNES games that make use of the "wai" instruction?
Jagasian wrote:
Are there any SNES games that make use of the "wai" instruction?
Many, I'm sure. I used it in my NSF player to wait for vblank (NMI).
I'll take a wild guess that at least Wai Wai World 2 uses it.
Okay, here's my idea for a sleep mode.
1. Disable sprites and background bits in $2001.
2. Disable sound bits in $4015.
3. Execute the undocumented opcode KIL or HLT.
4. Make damn sure your victim knows to hit the reset button.
Why is this thread still open?
Because the admin and mods will it so!
It is always better to post in an existing thread than to start a new one.
So can you just put the NES in stop mode whenever you want by cutting the CPU clock? I thought the 6502 had dynamic registers, and that would wipe them out.