Talk:CPU power up state: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
No edit summary
mNo edit summary
Line 22: Line 22:
--[[User:Quietust|Quietust]] 16:40, 8 June 2011 (UTC)
--[[User:Quietust|Quietust]] 16:40, 8 June 2011 (UTC)


== Detecting User Reset ==
Is there way using common mappers to check if power on or reset button pushed? --[[User:Zzo38|Zzo38]] 18:35, 10 September 2012 (MDT)
Is there way using common mappers to check if power on or reset button pushed? --[[User:Zzo38|Zzo38]] 18:35, 10 September 2012 (MDT)
: Common practice seems to be "put a canary in memory, if it's still there assume warm (re)boot instead of cold boot. e.g., Galaxian puts the programmer's name in $0100-$010F, and if it's there on boot, it doesn't clear high scores or the easter egg counter.—[[User:Lidnariq|Lidnariq]] 19:47, 10 September 2012 (MDT)

Revision as of 01:47, 11 September 2012

Parts of the APU which appear to be affected by reset (determined by tracing the reset signal throughout the chip):

  • Square channel volume/envelope timer (not the reload value at $4000/$4004 bits 0-3) and counter (the actual volume output)
  • Noise channel volume/envelope timer (not the reload value at $4008 bits 0-3) and counter (the actual volume output)
  • Square channel frequency counter, including the 3 duty cycle bits
  • Triangle channel frequency counter
  • Noise channel frequency counter, sort of - it forces the LFSR input to 0, so a very short reset pulse might only partially clear it
  • DPCM channel frequency counter, sort of - it forces the LFSR input to 0, so a very short reset pulse might only partially clear it
  • Noise channel frequency ($400E bits 0-3)
  • Square channel sweep counter
  • All 4 length counters
  • All 5 channel enables ($4015)
  • Triangle channel linear counter (not the reload value at $4008)
  • Triangle channel Position
  • DPCM channel Sample Length counter (not the reload value)
  • DPCM channel Position ($4011)
  • DPCM channel Sample Buffer and Bit Counter
  • DPCM channel Sample Address counter (not the reload value)
  • DPCM channel state machine
  • Sprite DMA address counter and state machine
  • Part of the Frame Counter (notably, not the two writable bits of $4017)
  • Debug register $401A bit 7

--Quietust 16:40, 8 June 2011 (UTC)

Detecting User Reset

Is there way using common mappers to check if power on or reset button pushed? --Zzo38 18:35, 10 September 2012 (MDT)

Common practice seems to be "put a canary in memory, if it's still there assume warm (re)boot instead of cold boot. e.g., Galaxian puts the programmer's name in $0100-$010F, and if it's there on boot, it doesn't clear high scores or the easter egg counter.—Lidnariq 19:47, 10 September 2012 (MDT)