Commit Graph

691 Commits

Author SHA1 Message Date
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
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
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
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
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
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
adelikat d774e49cd8 NES - Mapper 245 - do chr-ram logic. The 3 games I found correctly labeled as 245 (Yin He Shi Dai, DQ7, Hyrule Fantasy) all fail to run properly in this implementation, and FCEUX. 2012-07-24 00:12:40 +00:00
andres.delikat b08c2861a4 NES - start mapper 245 prg mapping working (possibly) 2012-07-23 22:15:22 +00:00
adelikat ed16f40529 oops, forgot to add Mapper205.cs 2012-07-22 20:11:55 +00:00
brandman211 743480e26f -Logging now uses a static StreamWriter instead of building the string and writing on destruction.
-Applied to the old Gameboy core. Why not? It at least fixes that annoying bug from before if we ever care to use it again.
-Both logs are now written to different files.
2012-07-22 18:40:28 +00:00
brandman211 9f2bcf3318 -Fixed logging.
--It now just builds a strings and writes on finalization.
-Fixed up format strings.
-As RegisterPC already increments upon reading the third decle, I now just store PC as the return address for jumping instead of PC + 1.
2012-07-22 18:08:10 +00:00
brandman211 60c5a1ce58 Added logging for the CP1610. Not working for some reason. 2012-07-22 17:18:11 +00:00
adelikat b089f2996c NES - decently support mappers 74 and 192 (games play fine other than missing characters in text boxes)) 2012-07-22 16:57:44 +00:00
adelikat 91be138920 NES - fixes to mapper 91, still fails 2012-07-22 15:35:19 +00:00
adelikat f85b6a017b NES - checkin start of mapper 91 2012-07-22 01:02:18 +00:00
adelikat 225079a843 NES - implement board MLT-ACTION52 (Mapper 228) for both Action-52 and Cheetahmen II 2012-07-21 20:40:10 +00:00
zeromus e66e936567 nes-fix mapper 061 2012-07-21 19:45:16 +00:00
adelikat b8a16f93fa Implement mapper 243 2012-07-21 19:23:05 +00:00
adelikat f16a44d4e6 Start Mapper 243 2012-07-21 18:54:12 +00:00
adelikat 8aeb313381 Fixes to mapper 164, Final Fantasy V has a broken title screen but otherwise playable. Implemented based on Disch's original notes and so not quite complete. 2012-07-21 18:31:41 +00:00
adelikat 544410b4d8 Fix mapper 154 (Devil Man) 2012-07-21 17:51:52 +00:00
adelikat 86e14410b7 NES - mapper 225 finished 2012-07-21 17:19:59 +00:00
brandman211 0a0763966c -Refactored of the executor / disassembler / Intellicart to use more descriptive variable names and types to clear up a lot of confusion.
-Added implementation for NOP (6 cycles of nothing).
-Made SWAP actually store the result (Still disabled).
-Added breaks to the swap / shift / rotate cases (Yikes).

Instruction disassembly:

JSRD R5, $1026
MVI@ R7, R6
JSR R5, $1A83
MVO@ R5, R6
MVO@ R0, R6
MVO@ R1, R6
MVI@ R7, R4
MVI@ R7, R0
JSR R5, $1738
MVO@ R5, R6
XORR R5, R5 <- Needs implementation.
2012-07-21 05:25:52 +00:00
andres.delikat 5f4ad218a2 NES - start mapper 225 2012-07-20 21:48:16 +00:00
brandman211 610acf6ad6 -Made MVI@ and ADD@ follow the stack and immediate mode rules for incrementing / decrementing the SP / PC.
-Disabled Intellicart hook for ReadMemory, which seemed to be interfering.
-Implemented MVO@.
-Several instructions are now executed in succession until it hits the unimplemented "XORR R5, R5".

I should probably refactor Disassemble and Execute to label registers as source / destination to avoid further confusion at some point. My disassembly might have the source / destination registers flipped as well.
2012-07-20 07:22:41 +00:00
adelikat 96e7d85122 NES - add mapper 61, chr mapping is off somehow 2012-07-20 03:52:14 +00:00
zeromus dd504a4960 nes-fix mapper057 2012-07-20 03:19:19 +00:00
adelikat afbde96fe5 NES - fix some chr mapping logic in Mapper 57 2012-07-20 02:57:46 +00:00
andres.delikat 2e71b04de4 Start mapper 57 2012-07-19 18:30:39 +00:00
zeromus 3321c3e2c4 nes-fix mapper226 2012-07-19 18:20:32 +00:00
andres.delikat 77f4eeeac1 NES - implement mapper 58 2012-07-19 16:01:40 +00:00
andres.delikat a9323e0386 NES - Implement mapper 62 2012-07-19 15:51:41 +00:00
andres.delikat 8f95b611a5 BizHawk - implement mapper 201 2012-07-19 15:01:32 +00:00
andres.delikat c256e90a9d NES - add mapper 203, doesn't play the 35-1 properly, but it doesn't run in fceux as well, documentation may be off, or the ROM i used is bad (not a lot of info on good dumps for these types!) 2012-07-19 14:13:45 +00:00
adelikat 876007c502 NES - fixes to mapper 226 2012-07-19 02:56:43 +00:00
brandman211 e73c48219a -Loaded EROM / GROM.
-Fixed disassembly for JMP:
--Now it uses the parameter pc, not RegisterPC.
--I was loading both the second and third value from the second's address.
--Casting the calculated addresses to bytes when addresses are 16-bit was a bad idea.
--Removed a closing parenthesis I accidentally stuck in the formatting.

It seems that I've gotten far enough to use the Executive ROM as a test case! Now to go instruction by instruction and see if they work as planned and hope this will all eventually make something.
2012-07-19 00:05:08 +00:00
brandman211 198c60af88 -Refactored ReadMemory so that both the core and cart addresses are read.
--Afterwards, the data is reconciled, right now by chucking out the core value if the cart responded.
-WriteMemory now writes to both the core and the cart unconditionally.
--Each case now breaks out of the switch statement in case we want to do more complex things at the end of the function later on.
-All default paths in both functions now throw an exception.
2012-07-18 06:19:03 +00:00
brandman211 1ee1d03aea -Parsed / implemented fine addresses for the Intellicart.
-Implemented the final CRC check.

I didn't get around to implementing bank-switched ranges, but I don't think it's worth worrying about that right now considering that the Intellicart is not marked as readable at the initial PC, so something is either wrong or I need to implement more things before this will work. I think I'll put Intellicarts on hold and try to get a .int / .bin to run in the meantime.
2012-07-18 05:35:10 +00:00
adelikat 188716ab7b Start mapper 226 2012-07-18 04:22:41 +00:00
adelikat ecd3a2dd84 NES - add mapper 233 2012-07-18 04:08:37 +00:00
adelikat 803833d04a Fix Mapper 230 2012-07-18 03:00:52 +00:00
adelikat ea60a2c9f8 Mapper 60 - a more respectable bit logic implementation in ReadPRG 2012-07-17 23:58:53 +00:00
adelikat 2174e9938f Implement mapper 60 2012-07-17 23:52:55 +00:00
andres.delikat 8aea375f9f Mapper 230 - fix mirroring and some prg mapping 2012-07-17 23:05:58 +00:00
andres.delikat d939e66867 NES - Implement a SoftReset function into the board base, Mapper 230 - implement mode switching via soft reset, implement prg mode 0, game select screen now playable, games are not 2012-07-17 15:24:36 +00:00
andres.delikat fa449a5116 NES - add mapper 230, contra mode is working, still todo: implement mode toggling on soft reset 2012-07-17 14:02:56 +00:00
zeromus 5eaf27e510 nes-fix mapper 231 2012-07-17 06:24:36 +00:00
zeromus 309d6b4e64 nes-fix mapper 200 2012-07-17 06:19:03 +00:00
brandman211 0a3a392285 -Attempted to parse out memory attributes.
--In my test case, only a few segments were set to readable and nothing else was set. 0x1000, which is where the PC is initialized to, certainly isn't in a writable page.
--Although I've read that these memory attributes affect the Intellivision and not the Intellicart, I'm pretty sure this has to be implemented in the Intellicart so that my Read/WriteCart functions can choose to respond / not respond depending on these attributes. I very well could be wrong.
-Hooked Read/WriteCart into Read/WriteMemory.
-Implemented memory attributes into Read/WriteCart.
--TODO: Bank-switching.

TODO: Fine address table and memory attribute / fine address checksums.
2012-07-17 05:32:00 +00:00
brandman211 cd5458a5e4 Fixed CRC. Passes! 2012-07-17 04:16:11 +00:00
adelikat bbf5be7d74 NES - add mappers 200 & 231, PRG mapping isn't quite right on either but some games work 2012-07-17 04:06:48 +00:00
adelikat ee5db4cc06 Mapper 112 - Finish implementation of CHR mapping, and misc small cleanups 2012-07-17 02:01:53 +00:00
adelikat 69712a203d Remove compatibility.txt and replace with a link to the wiki page 2012-07-17 01:46:55 +00:00
adelikat 5df5def02d remove NES test status doc that is outdated and obsolete to this page: http://tasvideos.org/EmulatorResources/NESAccuracyTests.html 2012-07-17 01:06:38 +00:00
zeromus ecd58fc96e nes-protect from syncstates which dont call base.SyncState 2012-07-16 22:06:55 +00:00
zeromus 9c2a521c19 nes-fix m112 and some other unnecessary things 2012-07-16 22:01:10 +00:00
andres.delikat ad2e9267e3 NES - Mapper 112 - fix prg bank selection, however, game still fails to run 2012-07-16 21:12:01 +00:00
brandman211 21558eaf11 -Made ReadMemory and WriteMemory for the Intellicart Read/WriteCart and made them return nullable values instead of passing an out value.
-Started parsing data segments.
--CRC check fails. :(
-Added .bin and .rom to the Intellivision associated file extensions in the load ROM dialog.
2012-07-16 05:52:01 +00:00
zeromus cf5c972990 nes-try fixing m207 2012-07-16 03:04:44 +00:00
zeromus 06c44cf040 nes-add NES-JLROM for mr gimmick! (e) - but it doesnt work cos its pal 2012-07-16 02:59:54 +00:00
adelikat 2d89f5485f Implement Mapper 207, Fudou Myouou Den now playable but graphical issues. 2012-07-16 01:51:16 +00:00
adelikat 1751e615d7 Oops, update csproj file with new mapper files, update mapper compat list 2012-07-15 23:58:00 +00:00
adelikat c9128cc78e Start Mappers 154, 112 2012-07-15 23:12:52 +00:00
zeromus 3ae3a52f7a nes-do mapper088 differently 2012-07-15 22:30:25 +00:00
zeromus a33859fc1e nes-fix mapper 088 2012-07-15 22:22:57 +00:00
adelikat f62607dea9 Start mapper 88 2012-07-15 21:45:28 +00:00
brandman211 4f9539b73c -Made Executive ROM and Graphics ROM read-only. I still haven't made the memory map accessibility limited by the VBlank Period, but I'm assuming that should come way later.
-Initialized the memory devices with a tentative size that ignores the unofficial ranges.
-Masked addresses to match those sizes (That's my understanding of what the memory map needs to do based on other examples).
-Added the ICart interface.
-Started the Intellicart parser; got far enough to know that the files I'm working with are not Intellicarts. ^_^
2012-07-15 08:38:50 +00:00
beirich d24d3ae932 fix a dumb PAL bug. possibly for the second time. 2012-07-15 07:15:31 +00:00
zeromus a47c70d0ef nes-fix #12 "Strange "White noise" sound during 1943 (USA) intro" as well as a boatload of aesthetic improvements to make the sound output not so embarassing. no speedups whatsoever though. 2012-07-15 00:09:34 +00:00
zeromus 1f588c451f nes-add broken bisq apu. it probably wont be fixed. but its a lot of work, so there it is. also remove spam in SXROM 2012-07-14 18:43:37 +00:00
andres.delikat 0834c63a43 NES - sound config dialog for toggling sound channels 2012-07-12 23:13:22 +00:00
goyuken fd7a0b2fe7 change CoreOutputComm to use exact integers to specify VsyncRate. Helps for AV dumping with formats that require exact integer rates (AVI), and for emulators that aren't exactly 50hz/60hz (none yet). 2012-07-11 21:37:35 +00:00
brandman211 32baa013af -Made the memory map use ushort arrays because the Intellivision is 16-bit.
-Fixed JMP disassembly; I need to return on an invalid opcode because I was breaking out of the inner switch statement, not both that and the outer one.
2012-07-09 23:19:57 +00:00
brandman211 f3ce111c48 Checked in memory map...I need to stop programming and start sleeping. 2012-07-09 19:41:49 +00:00
brandman211 104511c5b7 -Intellivision.cs' constructor initializes the PC to 0x1000.
-Set up the "official" memory map - see http://wiki.intellivision.us/index.php?title=Memory_Map
--Things I didn't do:
---Accessibility.
---Additional Occupied Memory Ranges.
---Addresses Available to Cartridges
---Initialize any of the byte arrays.
--Not sure which of these I need to do, but clearly the byte arrays have to be initialized somewhere to something and there's a lot of gaps in this memory map.
2012-07-09 05:29:45 +00:00
beirich 36ba018ae0 basic wire-up of Intellivision core 2012-07-08 04:20:53 +00:00
adelikat 60640acece NES - Implement Mapper 246 2012-07-06 03:44:34 +00:00
zeromus 1eda5f6d63 nes-express m193 differently, maybe more clearly 2012-07-06 03:12:20 +00:00