Commit Graph

690 Commits

Author SHA1 Message Date
goyuken 25e213f157 libsnes sound is functioning. very quick, very dirty 2012-09-04 01:21:14 +00:00
beirich ff8a58a9b7 gen: Implement CRAM read, VSRAM read. Correct sprite coordinate masking, fixing games several games where sprites were missing. 2012-09-04 01:07:03 +00:00
zeromus 37e6f68370 bsneshawk step 1 of N - compile libsnes, make bsneshawk core, setup interop, support frameadvance, video, gamepad. games are playable, I think. 2012-09-04 00:20:36 +00:00
beirich 0a60a37705 gen: fix Flavio's DMA test rom. and hopefully something else too. 2012-09-03 22:26:33 +00:00
beirich c9b3f7bedf gen fixes: HINTs shouldnt fire during vblank, some DMA fixes, fix a render priority issue (albeit not the ideal fix), substantial rom compatibility testing 2012-09-03 16:01:56 +00:00
beirich dd25cc924a Move ICart.cs from directory/namespace for generic interfaces to Intellivision folder/namespace, as it is entirely Intellivision specific. 2012-09-03 00:45:30 +00:00
adelikat 1f128aeda4 Ram Search - small speedup on UpdateValues 2012-09-02 01:52:16 +00:00
adelikat 8c5d8741cb Genesis - add Rom data memory domain 2012-09-02 01:33:12 +00:00
beirich c91c001093 gen: Fix bug with word-reading Z80 bus status; fixes music in Monster World IV, Thunder Force 3 still boots 2012-09-01 21:04:40 +00:00
adelikat 2af24ba9fd Genesis - add system bus memory domain 2012-09-01 19:49:40 +00:00
beirich d586876f40 gen: implement H-ints
gen: implement Vram/Vram DMA copy (badly)
gen: fix dumb sprite rendering bug
gen: fix crash bug with certain WINDOW settings
2012-09-01 18:40:52 +00:00
adelikat 35ec42073f NES - implement address poking on the system bus domain. Anything in the EXP, WRAM, PRG regions is done via the built in cheat system due to being handled by the mappers. This may not be the ideal way to do this but it seems to work well, and I don't know of a more logical way to handle this. 2012-09-01 18:34:31 +00:00
adelikat 9b7404b059 NES - Round 1 of Hook up NES cheats for system bus (i.e. game genie codes now work) 2012-09-01 14:13:36 +00:00
beirich f21429b996 gen: implement WINDOW rendering
gen: initialize VDP registers to power-on values
2012-09-01 05:02:27 +00:00
beirich e24f0962fc gen: fix dumb tile priority bug (primarily affects Ghouls n Ghosts, which use the layers backwards from normal) 2012-08-30 04:29:33 +00:00
beirich c4afd9f393 gen: allow word-reads to query Z80 bus status. now thunder force 3 boots. 2012-08-27 02:59:26 +00:00
beirich 8ad3e72ffa Allow easy swapping of active 68000 core the C# core, or Musashi... As we are likely to be swapping between versions rapidly for some period of time. 2012-08-26 14:39:06 +00:00
beirich 2f73408029 gen: improved memory map and VDP I/O 2012-08-26 03:43:35 +00:00
beirich 58780191de gen: implement raster effects 2012-08-24 04:45:09 +00:00
beirich 9545475455 gen: render priority improved somewhat... still some issues 2012-08-24 02:30:20 +00:00
beirich 575ceb3966 gen: Fix tile VFLIP bug, correcting the most obnoxious of the graphical glitches 2012-08-24 00:37:54 +00:00
pjgat09 78de49c923 Atari: Added an audio object to the TIA, including functions to run the 4 and 5 bit LFSRs. Also added some code for the first 4 audio modes, enough to generate samples for one of the audio channels.
Added a logic simulation of some parts of the TIA, including the audio portion. This requires logisim to run.
2012-08-23 02:04:24 +00:00
adelikat 67822be97c NES - PPU - very minor cleanup 2012-08-23 01:28:33 +00:00
beirich 40a427e68f md: correct hscroll offset calculation. genesis core 10% less embarassing. 2012-08-22 04:54:36 +00:00
adelikat 959e56b71a NES - small (probably unnoticeable) speedup to WriteMemory() 2012-08-19 21:09:48 +00:00
adelikat 6473321100 NES - some optimizations to ReadMemory(), ~1fps speed up 2012-08-19 20:38:20 +00:00
adelikat 70929679d5 NES - don't recalculated the framebuffer constantly, instead only do it once per frame. ~1fps speed up 2012-08-19 20:01:17 +00:00
adelikat 493cff72c4 NES - tiny speedup 2012-08-19 19:21:35 +00:00
brandman211 26b1d06b7a -Simplified the CPU / STIC connection.
-Made FrameAdvance handle the pending cycle loop. During each iteration, it runs one instruction and ticks the STIC accordingly.
2012-08-14 03:58:11 +00:00
brandman211 9100232547 -Made connections between the signal pins on the CP1610 and the STIC.
--Not sure why the STIC has any connection to the SST, but the docs on the SST are virtually non-existent from what I could find.
--I took advantage of Func and Action instead of passing bool references to both devices. I think this makes sense.
-Added reset functions for both devices.

My comparison log for INTRM is still weird because it says it is true initially (Expected) and remains as such after the first instruction (A bit odd). I think this happens because the STIC is supposed to "tick" and shift SR1 to false immediately, but the STIC tick happens after the CPU tick, and the CPU tick is where the logging happens. I need to find a better place to put this logging, and I need to implement the STIC ticking for IntelliHawk. I'm not positive how to approach the latter issue as I assume a tick means one instruction execution, and my executions happen in a loop on the CPU, which has no reference to the STIC, so I'm not sure where this fits into the equation.
2012-08-13 08:10:15 +00:00
adelikat f84a3709c9 Misc code cleanup 2012-08-12 01:09:30 +00:00
brandman211 c6cf18061f Scratchpad RAM, Graphics ROM, and Graphics RAM are apparently all 8-bit. 2012-08-10 20:40:34 +00:00
brandman211 5239b4f55b -Separated the STIC and PSG memory map logic into new objects.
-Foreground / Background | Color Stack Mode
--Actually made a boolean for it (FGBG).
--Reading from a write-only STIC alias of $21 does change the STIC into Color Stack mode, but it doesn't actually read.
--Color stack mode is enabled when $21 or its alias is read and it is disabled (FGBG) when written its written, both having to occur during VBlank Period 1.
---This is what I gathered from the wiki, but I'm confused as to why it says that "The STIC stays in this mode until the program accesses location $21 again." I'm assuming this doesn't mean the mode changes on every access because then I don't understand why a read would change to a different mode than a write.
--FGBG is disabled by default. I don't think it matters.
2012-08-08 23:05:55 +00:00
beirich b07008c7e7 Genesis vdp: small loadstate fix 2012-08-08 00:44:08 +00:00
brandman211 0d20c133a5 -Moved the reset address to the CP1610 and made RegisterSP/PC private.
-Created helper functions for indirect ops; Indirect_Set will be needed for interrupts.
2012-08-06 15:51:35 +00:00
adelikat 1bce6a724d oops, add Mapper197.cs 2012-08-05 22:28:03 +00:00
adelikat 975d449722 AxROM (Mapper 7) - make all AOROM games not emulate bus conflicts, fixes various Wheel of Fortune games, Double Dare, and Jeopardy 2012-08-05 22:02:58 +00:00
adelikat ea8d47bcc0 Start Mapper 197 (based on MMC3) and sort out the use of this vs Mapper 91. 2012-08-05 21:34:00 +00:00
zeromus 6a63f2f197 nes-work on mapper091 a bit, but its still not right 2012-08-05 20:19:07 +00:00
adelikat 77da639dc6 NES - Fix Mapper 50 2012-08-05 19:20:54 +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 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
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