Quantcast
Channel: nesdev.org
Viewing all articles
Browse latest Browse all 785

LDA Immediate taking 6 cycles

$
0
0
Hi, I'm trying to build an NES Emulator. I am trying to get Pacman to work and was comparing my emulator log with Nintendulator log. However, I noticed that a specific LDA Immediate in Nintendulator is taking more cycles than expected.

Code:

C0CC  A9 C0     LDA #$C0                        A:1F X:08 Y:00 P:25 SP:FF PPU:291,196 CYC:81944C0CE  8D 17 40  STA $4017 = FF                  A:C0 X:08 Y:00 P:A5 SP:FF PPU:309,196 CYC:81950C0D1  20 4B EE  JSR $EE4B                       A:C0 X:08 Y:00 P:A5 SP:FF PPU:321,196 CYC:81954EE4B  A9 00     LDA #$00                        A:C0 X:08 Y:00 P:A5 SP:FD PPU:339,196 CYC:81960EE4D  85 F0     STA $F0 = 00                    A:00 X:08 Y:00 P:27 SP:FD PPU:  4,197 CYC:81962EE4F  A9 06     LDA #$06                        A:00 X:08 Y:00 P:27 SP:FD PPU: 13,197 CYC:81965EE51  85 F1     STA $F1 = 00                    A:06 X:08 Y:00 P:25 SP:FD PPU: 19,197 CYC:81967EE53  A9 20     LDA #$20                        A:06 X:08 Y:00 P:25 SP:FD PPU: 28,197 CYC:81970EE55  85 F2     STA $F2 = 00                    A:20 X:08 Y:00 P:25 SP:FD PPU: 34,197 CYC:81972EE57  A9 06     LDA #$06                        A:20 X:08 Y:00 P:25 SP:FD PPU: 43,197 CYC:81975EE59  85 F3     STA $F3 = 00                    A:06 X:08 Y:00 P:25 SP:FD PPU: 49,197 CYC:81977EE5B  AD BF F0  LDA $F0BF = C1                  A:06 X:08 Y:00 P:25 SP:FD PPU: 58,197 CYC:81980EE5E  85 F4     STA $F4 = 00                    A:C1 X:08 Y:00 P:A5 SP:FD PPU: 70,197 CYC:81984EE60  AD C0 F0  LDA $F0C0 = F0                  A:C1 X:08 Y:00 P:A5 SP:FD PPU: 79,197 CYC:81987EE63  85 F5     STA $F5 = 00                    A:F0 X:08 Y:00 P:A5 SP:FD PPU: 91,197 CYC:81991EE65  A9 40     LDA #$40                        A:F0 X:08 Y:00 P:A5 SP:FD PPU:100,197 CYC:81994EE67  85 F7     STA $F7 = 00                    A:40 X:08 Y:00 P:25 SP:FD PPU:106,197 CYC:81996EE69  A9 1F     LDA #$1F                        A:40 X:08 Y:00 P:25 SP:FD PPU:115,197 CYC:81999EE6B  8D 15 40  STA $4015 = FF                  A:1F X:08 Y:00 P:25 SP:FD PPU:121,197 CYC:82001EE6E  A9 C0     LDA #$C0                        A:1F X:08 Y:00 P:25 SP:FD PPU:133,197 CYC:82005EE70  8D 17 40  STA $4017 = FF                  A:C0 X:08 Y:00 P:A5 SP:FD PPU:139,197 CYC:82007
The first and the second line indicate that the LDA #$C0 takes 6 cycles, (4 more than expected). This looks to be a one off event because on the second last instruction and last instruction, the same instructions are run but this time LDA #$C0 expectedly take 2 cycles. Does anyone know why this happen?

Statistics: Posted by minhmxc — Fri Jan 31, 2025 1:40 am — Replies 5 — Views 437



Viewing all articles
Browse latest Browse all 785

Trending Articles