Commit Graph

808 Commits

Author SHA1 Message Date
brandman211 a19b76e6cc Added Interruptible and assigned it for every op. 2012-08-05 07:04:03 +00:00
brandman211 e9a8980f0c -Throw exceptions for TCI, SIN, and BEXT.
-Added and logged INTRM, BUSRQ, BUSAK, and MSYNC.
2012-08-05 06:47:00 +00:00
brandman211 b83bb1901d -When neither the cartridge nor hardware responds to a read, it now returns 0xFFFF instead of throwing an exception.
-I will now assume that 0x7000 is not mapped for the sake of continuing on. I will need to implement a mapper system shortly though.
--Did the same thing for 0x4800.
-AND@, MOVR, CMP enabled.
-Made the logging separator generate before an instruction instead of after the register states. This is quite petty, but I don't like the separator at the end of the file.

I hit an infinite loop, and I'm very very certain it's happening because I don't have an interrupt system yet. Time to stop avoiding that!
2012-08-05 05:59:55 +00:00
adelikat e8e64bca62 NES - VRC6 sound! 2012-08-05 00:11:32 +00:00
adelikat 33954ddef7 NES - map MAPPER219 to NROM (fixes a version of 3D Block) 2012-08-04 19:22:49 +00:00
adelikat c0706ed0ac NES - add Mapper 120 (not documented by Disch docs), used by Tobidase Daisakusen (FDS Conversion). Mapper implementation based on FCEUX but game freezes before gameplay starts (plays fine in FCEUX) 2012-08-04 19:02:51 +00:00
adelikat a7b847dbe2 NES - some small easy optimizations to the APU (very small) 2012-08-04 02:41:15 +00:00
adelikat b10769ab4a NES - dsiable NESWatch checks in ReadMemory since this feature is not yet used for anything 2012-08-04 01:54:19 +00:00
adelikat fba6e64c58 NES - some small speed optimizations 2012-08-04 01:47:54 +00:00
adelikat 6e8d38fabe NES - disable vrc6 sound for now 2012-08-04 00:57:26 +00:00
andres.delikat 31db5f9d05 NES - better handling of bus conflicts for AOROM board, fixes Wheel of Fortune 2012-08-03 14:12:04 +00:00
adelikat 70f07346b1 NES - start VRC6 sound, currently sounds terrible 2012-08-03 02:08:42 +00:00
andres.delikat 4754889131 NES - mapper 231 - optimize the ReadPRG() method 2012-08-02 21:05:15 +00:00
brandman211 97727ab658 -Fixed the memory mapping. I don't know why I thought I'd be able to just mask addresses to the length of the segment and think it'd work...
-Tried two methods of parsing the ROM file. Neither of them worked.
2012-08-01 17:45:37 +00:00
adelikat accd643fde NES - progress on mappers 90 & 209 2012-08-01 02:55:01 +00:00
andres.delikat eeb0171eda Start mapper 90/209 2012-07-31 22:04:45 +00:00
brandman211 80a0f8f75b -Made Intellicart its own class.
-Separated cartridge logic into a separate ICart named Cartridge.cs.
-Made WriteMemory return a bool to match ICart.Write. It currently returns true if either the cart or the core responded.

TODO: Parse the vanilla Intellivision ROM, which will hopefully include the read / writability of the data segments. adelikat seems to think that I just need to send the bytes to $5000, but I'm not convinced.
2012-07-31 06:54:20 +00:00
adelikat a5262488c7 NES - fix mapper 96 prg mapping. These games are working as well as can be tested without better peripheral support, so I'm considering this mapper complete. 2012-07-31 03:07:38 +00:00
adelikat 4930979940 NES - progress on mapper 96, Oeka Kids - Anpanman no Hiragana Daisuki seems to play (but I can't get passed the title screen without Oeka Kids tablet emulation). Oeka Kids - Anpanman to Oekaki Shiyou!! fails to load (suggesting a PRG mapping problem?) 2012-07-31 02:58:59 +00:00
brandman211 0d768ef710 Finished the Memory Map. I think the cartridge logic needs to be separated. 2012-07-31 01:39:47 +00:00
adelikat c04b750d6a Finish mapper 245 2012-07-31 01:01:15 +00:00
brandman211 f66d92f2a5 Started filling the gaps in the Memory Map, getting up to 0x7FFF. Once complete, a lot of TODOs remain, the most important being the actual mapping of the cartridge. 2012-07-30 22:25:00 +00:00
andres.delikat a34bf45610 Add islag to savestates (now lagframe alert status updates when loading a state) 2012-07-30 14:42:52 +00:00
andres.delikat daff01ad2e Genesis - add lag and frame counts to savestates 2012-07-30 13:43:25 +00:00
brandman211 8306768c76 Enabled SWAP. Works as expected, but the next instruction is an MVI@ that wants to read from 0x7000, which I think is made available to cartridges. Not sure where to go from here. 2012-07-30 02:34:53 +00:00
adelikat 59ba7efdaf NES - start mapper 18 2012-07-29 22:40:57 +00:00
adelikat 31843f3e3a NES - mappers 74, 192, 194 - set VRAM sizes when mapper object is created, this removes the need to set vram in the gamedb. 2012-07-29 18:43:21 +00:00
adelikat d4ac95bd30 NES - implement mappers 74 and 194. Added gamedb entries for the games I could find that correspond to these mappers 2012-07-29 18:35:24 +00:00
adelikat 71865576a7 NES - finish mapper 192 2012-07-29 18:12:37 +00:00
adelikat 7cbee7bde4 NES - mapper 74 - implemented chr-ram behavior, however, it does not work (chinese characters still missing in dialogs, but this checkin causes no regressions) 2012-07-29 17:55:45 +00:00
adelikat 047ed975d1 NES - implement mapper 234 2012-07-29 03:42:05 +00:00
brandman211 b1db1b7a69 -Reversed the double byte data bytes. It now works properly.
-Set the D flag to clear one instruction after it's set; SDBD is a prefix instruction.
2012-07-29 00:02:06 +00:00
adelikat c555e1df40 NES - mapper 52 complete 2012-07-28 18:53:26 +00:00
adelikat 9e96eb9ddc NES - start mapper 52 2012-07-28 18:14:04 +00:00
brandman211 53c0dd5ee0 -Enabled the ops that merely set / clear flags...there's no way I could have messed those up.
-Tested and implemented the MVO op.
-Implemented the other direct ops.

I think my double byte data handling isn't working. Will diagnose.
2012-07-28 17:50:32 +00:00
brandman211 748efbcd20 -Fixed the overflow calculation for ADDR, SUBR, and CMPR.
-Implemented the remaining XXX@ ops.
2012-07-28 17:20:16 +00:00
brandman211 188e5662ca It seems that indirect writes decrement the stack pointer BEFORE reading memory. 2012-07-28 17:06:06 +00:00
adelikat 1fb7d9a8a6 NES - Mapper 45 - oops, add lock_regs flag to savestates 2012-07-28 15:42:57 +00:00
adelikat 678e60815e NES - Mapper 50 - hook up IRQ logic? 2012-07-28 13:19:12 +00:00
adelikat 8d45516811 NES - mapper 50 - fix mirroring 2012-07-28 12:35:51 +00:00
brandman211 0d10eee747 -Implemented branching and tested BNEQ. BEXT not implemented.
-Made it so that the indirect ops other than MVO@ decrement R6 when it's the mem address. Indirect write means writing to a register apparently, so maybe the documentation don't contradict itself.
2012-07-28 04:18:13 +00:00
adelikat 5d521a5132 NES - mapper 50 - some fixes, almost complete 2012-07-28 03:37:06 +00:00
adelikat 7805c460d0 NES - start mapper 50, but it doesn't work 2012-07-28 03:11:39 +00:00
adelikat 10c71da526 NES - implement mapper 45 2012-07-28 01:29:06 +00:00
adelikat 524bc29b43 NES - remove some console logging spam on mapper 49 2012-07-28 01:02:16 +00:00
brandman211 4864aaa291 -Enabled and tested DECR.
-Fixed my disassembly of branch; I wasn't thinking in hexadecimal. >_<
-Subtracted 1 from the negated offset when branching in reverse. The next op is "BNEQ $FFFC".
2012-07-27 04:46:44 +00:00
brandman211 4d1f0114c4 R4-R7 now auto-increment for all of the indirect opcodes. My documentation is inconsistent on whether R6 increments or decrements on right, but in any case, my output now matches my source until the DECR, which hasn't been implemented yet. 2012-07-27 04:07:06 +00:00
brandman211 3a56f65c3f Implemented the XXXR opcodes. As of now, I have Jump, MVO@, MVI@, and XORR enabled and tested. There might be an off by one error with MVO@. 2012-07-27 03:33:24 +00:00
adelikat 9ee133866d NES - complete mapper 205, slight fix to mapper 91 (still not working) 2012-07-27 02:14:18 +00:00
andres.delikat f72905f602 NES - start mapper 96 (prg mapping working) 2012-07-24 14:32:09 +00:00