emu_nes

An NES emulator for learning how the 6502 and similar computers of the era worked
Log | Files | Refs | README | LICENSE

DateCommit messageAuthorFiles+-
2024-09-01 23:48add incomplete ppuVineet Kumar1+5-0
2024-09-01 23:44add basic implementation of ppu write registersvin2+83-17
2024-09-01 19:39add basic ppu register readingvin3+75-6
2024-09-01 02:25start working on ppuvin2+39-0
2024-09-01 02:24add preliminary apu register supportvin4+171-4
2024-09-01 02:24add shell.nix to get dependencies easilyvin1+6-0
2024-08-21 21:46added snippet explaining the NES's 6502 variant and long-term goal for the projectvin1+12-2
2024-08-21 17:31update READMEvin1+15-2
2024-07-21 18:48rename struct Rom to struct romvin4+8-10
2024-07-21 17:53start implementing PPUvin4+64-6
2024-07-21 17:52add CFLAGSvin1+3-1
2024-07-21 01:39fix rest of logging format issuesvin1+7-3
2024-07-21 01:18fix status flag bug in ASL and ROLvin1+3-2
2024-07-21 00:27replace tabs with spaces to better match nestest.logvin1+43-20
2024-07-07 17:04fix warnings and move cpu registers+flags to headervin2+28-23
2024-07-04 19:19add nestest.nes and log that was used for testing the CPUvin2+8991-0
2024-07-04 19:06implement all of the nestest unofficial opcodes and fix branch cyclesvin3+46-45
2024-07-04 18:17add preliminary implementation of the unofficial opcodesvin3+111-88
2024-07-04 16:11start implementing unofficial opcodesvin3+434-153
2024-07-04 15:18achieve cycle accuracy for official opcodesvin2+174-156
2024-07-04 01:02finalize trace logging to match nestest.log minus PPU cyclesvin2+65-61
2024-07-04 00:40improve branching cycle accuracyvin1+23-16
2024-07-03 23:49fix SBC bug in the rewrite and improve loggingvin2+182-212
2024-07-03 22:52call opcode function pointer instead of using switch casevin2+325-1424
2024-06-30 23:10start refactoring opcode defs into an arrayvin3+248-16
2024-06-30 19:46combine macro for updating N and Z status flagsvin1+30-54
2024-06-30 19:19fix alignment of logging with ABS_X and ZP_Xvin1+2-2
2024-06-30 19:14fix indirect JMP bug where the high byte does not increment out of pagevin1+4-3
2024-06-30 13:54fix incorrect argument for INCvin1+1-2
2024-06-30 13:37rename README to README.mdvin1+0-0
2024-06-30 12:58fix incorrect argument for ASL and LSRvin1+6-6
2024-06-30 11:56fix JSR, RTS, and RTIvin1+3-3
2024-06-30 10:28change SBC to be ADC with one's complement instead of two'svin1+5-3
2024-06-29 13:51fix status flag ordering shenanigansvin1+33-23
2024-06-29 13:51fix ADC bug where V is calculated with new A instead of old Avin1+2-1
2024-06-28 18:44fix status register to match nestestvin1+8-6
2024-06-28 18:33improve logging and JMP indirectvin1+503-136
2024-06-28 14:28fix more bugsvin1+7-46
2024-06-28 14:18fix JSR and RTS bugvin1+4-4
2024-06-28 13:51start logging instructions as nestest.log has donevin3+201-31
2024-06-17 09:41start fixing bugs with memory accessvin1+10-10
2024-06-17 09:16implement basic iNES and Mapper 0 ROM loadingvin3+122-13
2024-06-16 11:41replace bit comparisons with 0 from greater than to not equalvin1+13-13
2024-06-11 10:08add memory mirroring for system and ppu memoryvin1+14-0
2024-06-11 09:38add separate implied/accumulator functions for certain opcodesvin1+78-25
2024-06-11 09:13remove opcode json converter helper scriptsvin2+0-70
2024-06-10 17:55add jsr, rti, rtsvin1+16-7
2024-06-10 17:26implement untested most of stack-related opcodesvin1+57-66
2024-06-10 08:57add lsr, rol, rorvin1+24-3
2024-06-10 07:25implement tay, txa, tyavin1+12-3
2024-06-10 07:24implement sta, stx, styvin1+20-20
2024-06-10 07:20implement se?() opcodes and remove extra 65c02 opcodesvin1+3-417
2024-06-09 17:20implement more instructionsvin1+46-20
2024-06-09 16:45add opcode_mem() function to return memory address and not pre-peekvin1+55-15
2024-06-09 10:37add memory writing functionsvin1+18-4
2024-06-09 10:32implement some more instructions and branching?vin1+64-25
2024-06-09 10:05fix potential adc overflow flag bugvin1+1-1
2024-06-09 07:41add blank todo opcode functions based on opcode jsonvin2+437-19
2024-06-09 07:26programmatically create switch cases for opcodes based on opcode jsonvin2+1050-35
2024-06-08 16:38move addressing mode parsing into separate functionvin1+44-73
2024-06-08 12:11add adc and actually fix peek/16vin1+82-2
2024-06-04 12:18fix peekvin1+11-7
2024-06-04 10:46shorten addressing mode enum namesvin1+28-30
2024-06-04 10:24add peek(), peek16(), and finish lda()vin1+47-17
2024-05-24 07:25load program rom into proper offset in memoryvin1+24-16
2024-05-24 06:50implement tax and inx and print status each timevin2+100-17
2024-05-24 06:20add lda immediate and brkvin1+60-0
2024-05-20 14:09start working on 6502 cpuvin1+56-0
2024-05-20 13:21initial commitvin2+14-0