Punchout has this piece of code which gets called every frame (60 times pr second)
$0308 and $0309 are loaded with a 16 bit increment every round.
Round 1: $04F9
Round 2: $056D
Round 3: $05F8
Every frame, it adds the increment to the counter at $0306 and $0307, once the upper part of this
counter (16bit / 256) wraps around 100, it increments the seconds counter.
This means it will increment the seconds counter:
Round 1: $04F9 * 60 (frames pr second) / 256 / 100 = 2.98 times pr second
Round 2: $056D * 60 (frames pr second) / 256 / 100 = 3.26 times pr second
Round 3: $05F8 * 60 (frames pr second) / 256 / 100 = 3.58 times pr second
This seems a bit weird, but when I tested it seemed to actually be correct.
So the conclusion is: 100ths are being counted, and ARE relevant.
8780 : AD 07 03 LDA $0307 ;
8783 : 18 CLC
8784 : 6D 09 03 ADC $0309 ; Initialized with $F9
8787 : 8D 07 03 STA $0307
878A : AD 06 03 LDA $0306
878D : 6D 08 03 ADC $0308 ; Initialized with $04
8790 : 8D 06 03 STA $0306
8793 : C9 64 CMP #$64 ; Check hundred of seconds counter for $64 (decimal = 100)
8795 : 90 52 BCC $87E9 ; if less than 100 skip the following code and return
8797 : E9 64 SBC #$64 ; Remove anything above 100
8799 : 8D 06 03 STA $0306 ; Store back
879C : CE 11 03 DEC $0311 ; Decrease a counter :P
879F : EE 05 03 INC $0305 ; Increase lowest digit of second
87A2 : AD 05 03 LDA $0305
87A5 : C9 0A CMP #$0A
87A7 : D0 2D BNE $87D6 ; Check vs 10, if not 10 carry on
87A9 : A2 00 LDX #$00
87AB : 8E 05 03 STX $0305 ; Blank out lowest digit
87AE : EE 04 03 INC $0304 ; Increase higher digit of second
87B1 : AD 04 03 LDA $0304
87B4 : C9 06 CMP #$06
87B6 : D0 1E BNE $87D6 ; Check vs 6, if not 6 carry on
87B8 : 8E 04 03 STX $0304 ; Blank out
87BB : EE 02 03 INC $0302 ; Increase minute counter
87BE : AD 02 03 LDA $0302
87C1 : C9 03 CMP #$03 ; Compare against 3
87C3 : D0 11 BNE $87D6 ; If not 3 carry on
87C5 : A9 02 LDA #$02 ; This code advances you to next round because time hit 3:00
87C7 : 8D 01 03 STA $0301
87CA : A9 00 LDA #$00
87CC : 85 90 STA $90
87CE : 85 91 STA $91
87D0 : 85 51 STA $51
87D2 : A9 C2 LDA #$C2
87D4 : 85 50 STA $50
87D6 : 18 CLC ; This code is performed every time a digit wraps.
87D7 : A2 04 LDX #$04
87D9 : BD 01 03 LDA $0301,X
87DC : 69 01 ADC #$01
87DE : 9D 0A 03 STA $030A,X ; It stores the time back another place but adds 1 (charachter conversion)
87E1 : CA DEX
87E2 : D0 F5 BNE $87D9
87E4 : A0 80 LDY #$80
87E6 : 8C 0A 03 STY $030A
87E9 : 60 RTS