From 5535e5de70684dd8406e53d6ce928faf9011336c Mon Sep 17 00:00:00 2001 From: vin Date: Sun, 30 Jun 2024 06:28:41 -0400 Subject: [PATCH] change SBC to be ADC with one's complement instead of two's It seems that is what was expected when run with nestest. --- cpu.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cpu.c b/cpu.c index c7d25ef..bcaa00b 100644 --- a/cpu.c +++ b/cpu.c @@ -664,7 +664,7 @@ static void sbc(uint8_t arg) { /* SBC is described online as ADC with argument as two's complement */ - adc(~arg + 1); + adc(~arg); } static void @@ -733,7 +733,8 @@ tay(void) static void tsx(void) { - regs.x = PULL(); +// regs.x = PULL(); + regs.x = regs.sp; STATUS_UPDATE_ZERO(regs.x); STATUS_UPDATE_NEGATIVE(regs.x); @@ -751,7 +752,8 @@ txa(void) static void txs(void) { - PUSH(regs.x); +// PUSH(regs.x); + regs.sp = regs.x; } static void