Commit Graph

1278 Commits

Author SHA1 Message Date
pjgat09 ce930374de A2600: Added very basic paddle support. Changing a hard coded value while debugging the emulator allows you to move the paddle. 2012-10-24 03:30:02 +00:00
adelikat 5309bea951 Add some docs for atari 2600 & 7800 mappers, slight fix to 7800 core 2012-10-24 01:47:04 +00:00
adelikat 11db3f1912 Atari 7800 - cleanup the BIOS paths and usage of those variables 2012-10-23 20:21:55 +00:00
adelikat 9c047b34b4 oops 2012-10-23 03:47:00 +00:00
adelikat 427a80548c Start an atari 7800 core based on emu7800, if you have bios files in very specific locations and filenames, you can open 2k ntsc games, and watch with no sound or controls! 2012-10-23 03:33:57 +00:00
goyuken 3378ea8001 fds audio: clip. intro to Metroid now sounds passable 2012-10-22 17:04:37 +00:00
goyuken 966495cbae fds audio channel. completely untested 2012-10-22 16:10:19 +00:00
goyuken fbb46e7054 fds - fix up some junk. smb2j runs now 2012-10-22 02:50:43 +00:00
goyuken e84f1d2761 fds: hmm 2012-10-22 01:11:39 +00:00
goyuken 44a8f442ee fds boots something 2012-10-22 00:57:28 +00:00
goyuken cda9a49d5f FDS : get a little farther before erroring out. still work to do 2012-10-21 19:22:22 +00:00
goyuken 7568ff9437 add FDS skeleton. set up your fds bios with pathconfig, then try to load any file with extension ".fds" 2012-10-21 15:58:24 +00:00
adelikat 9a1cbbb34c Atari - attempt the 3E mapper, seems broken 2012-10-20 01:51:38 +00:00
adelikat 4f045eb20d Atari - a stab at implementing mapper m4A50, don't work, oh well, the mapper is garbage and overly complicated, and can't really exist 2012-10-20 00:14:28 +00:00
adelikat 90a288afeb Implement X07 mapper 2012-10-19 23:31:42 +00:00
adelikat 162932797b Atari - make 4Pak use the F6 mapper (header wants 4IN1 which I couldn't find any info on). F6 makes it playable it seems. 2012-10-19 21:33:23 +00:00
adelikat 563065d054 AtariHawk - fixes to the E7 mapper, still broken, don't know why, tired of looking at it 2012-10-19 00:13:39 +00:00
adelikat 00934939b0 AtariHawk - implement mapper 3F (including support of 512kb for homebrew) 2012-10-18 22:22:09 +00:00
goyuken 485d7c05c7 make av dumping with avi a bit more graceful error handling. NES: avoid crash when the frontend behaves in a naughty manner 2012-10-18 20:57:53 +00:00
adelikat 826419a0a3 AtariHawk - don't flag a frame as lag if the control switches are being read 2012-10-18 19:45:44 +00:00
goyuken d3a6b04a40 nes mapper 108: Meikyuu Jiin Dababa (FDS Conversion) 2012-10-17 19:06:03 +00:00
zeromus 9e50d25c16 snes-support user override backdrop color 2012-10-17 18:39:44 +00:00
goyuken b2db264eed nes: unif mapper "BMC-NovelDiamond9999999in1". possibly also INES mapper 54, but i've only seen this game in unif form. One game: "Multi-Game Pirate Carts.7z|Novel Diamond 999999-in-1 [U][p1][!].unf" 2012-10-17 16:48:28 +00:00
goyuken 41d401c60a nes mapper 177:
Shang Gu Shen Jian
Xing Zhan Qing Yuan
Wang Zi Fu Chou Ji
Xing He Zhan Shi
Mei Guo Fu Hao
2012-10-17 15:52:01 +00:00
goyuken 77b53f1400 nes mapper 143 : magic math, dancing blocks. dancing blocks refuses to run due to core problem? see comments... 2012-10-17 15:01:49 +00:00
goyuken ea02d40c66 add a number of UNIF board mappings. every one of these is tested playable on at least one game, but that doesn't mean it's "right" overall. as always, the only true solution is a hash identify. 2012-10-17 02:08:19 +00:00
goyuken 2c881a0785 AxROM: forgot that stupid ines doesn't really specify vram size at all. force vram = 8 for MAPPER007, because that's all that makes sense 2012-10-17 01:56:28 +00:00
goyuken a77e103d2b nes AxROM: turn crash from bad iNESes into an assert failure. 2012-10-17 01:52:54 +00:00
goyuken 58dacf9bcc NES: add line to rom status log for SHA1 hash when loading UNIF 2012-10-17 00:59:22 +00:00
goyuken 00c6259689 Unif: populate ci.wram_battery based on BATR chunk. 2012-10-17 00:44:34 +00:00
zeromus 4e079389da nes-re-sort board list continually with the most recently used one at the top of the list 2012-10-17 00:38:28 +00:00
zeromus 28687957cc nes-try prioritizing board search order 2012-10-17 00:25:46 +00:00
goyuken 201c7a9dc2 VRC7: create the fm chip in Configure(), instead of before constructor. this shaves .001ns off board scanning times 2012-10-17 00:25:02 +00:00
goyuken 9e2a207d4f nes mapper 41: caltron 6 in 1 2012-10-16 22:41:00 +00:00
zeromus 31c7edf8dd nes-unif support. we will need to explicitly add every UNIF board we support to their respective mappers, because
[1] each unif board name carries with it its own unique assumptions about which chips are present. 
[2] the unif board names may not be matching bootgod's, which we accept as canonical; 
also fix a small memory leak due to nes boards not being disposed during scan process.
2012-10-16 22:27:48 +00:00
goyuken cffc9293c1 nes mapper 164: fix final fantasy v graphics 2012-10-16 21:59:30 +00:00
goyuken 0e87a399ef Dummy commit to test problems with our bot
Hello, World!
2012-10-16 21:45:11 +00:00
goyuken 2207dc32ef mapper42: fix whitespace
natt is so godlike
2012-10-16 21:39:34 +00:00
goyuken 80737e8097 nes Mapper 42: dumb FDS conversion pirate stuff
Ai Senshi Nicol [p1].nes
Bio Miracle Bokutte Upa (J) (Mario Baby - FDS Conversion).nes
2012-10-16 21:37:25 +00:00
goyuken 9f31d09473 nes mapper 165: fix triggered ppu bankswap; Fire Emblem (Ch) looks good now 2012-10-16 20:21:36 +00:00
goyuken e45a80f6d5 NES: better error message for certain gamedb gaffe 2012-10-15 23:53:14 +00:00
goyuken fbcc7375de nes: add "NES-TR1ROM" to TVROM, should emulate identically (except for differences in MMC3 variant, which are handled). like "NES-TVROM", bootgod id only, as iNES is too crappy for this. should fix some version of Gauntlet (U), but can't test as I don't have the rom. 2012-10-15 21:34:39 +00:00
goyuken dfe0e6fa96 nes mapper116: fix exception 2012-10-15 20:50:46 +00:00
goyuken 1dd0265e60 Mapper 77 ("IREM-74*161/161/21/138", Napoleon Senki (ナポレオン戦記)): fix nametable mirroring 2012-10-15 20:25:15 +00:00
goyuken d575e50fd2 mapper 27: doesn't work and i'm tired of looking at it. blah 2012-10-15 19:44:41 +00:00
goyuken feb124bc89 nes mapper 37: "Super Mario Bros. / Tetris / Nintendo World Cup" licensed multicart (E) 2012-10-15 16:02:23 +00:00
goyuken 556d428406 atari: fix mapper F0 (megaboy). game appears to be playable 2012-10-15 15:17:20 +00:00
goyuken 591857ad0f atari2600: show what mapper is in use in romstatusdetails 2012-10-15 15:13:32 +00:00
goyuken e034115ad8 nes mapper 168: racermate. not playable until special controller is emulated 2012-10-15 14:47:37 +00:00
adelikat f7c6659b76 Atari - Mapper E7 - small fix, the games still don't work but it may or may not be this mapper, need to look into it more 2012-10-15 14:29:13 +00:00
goyuken 4ffacf1ff8 wrote some UNIF load routines, but since NES.Init() is a giant mountain of spaghetti, i didn't feel like plugging it in. for a rainy day perhaps... 2012-10-15 00:39:41 +00:00
goyuken d90bf4ac0f SachenSimple.cs: add comment about PAL emulation 2012-10-14 21:11:26 +00:00
goyuken 0bf3ab7636 mapper 133, 145, 146, 148, 149, 160: jovial race \ qi wang chinese chess \ sidewinder \ galactic crusader \ lucky 777 \ twin eagle \ mahjan samit kabukicho hen \ master chu & the drunkard hu \ metal fighter \ millionaire \ pyramid ii \ silent assault \ mahjong world \ shisen mahjong seifuku hen \ taiwan mahjong 16 2012-10-14 21:00:50 +00:00
goyuken a93d7018e4 mapper 040: smb2j (US pirate cart) 2012-10-14 19:56:49 +00:00
goyuken 5125f43854 add mapper 165: mmc3 variant. Fire Emblem (Pirate). Some graphical glitches. 2012-10-14 18:34:15 +00:00
goyuken 8d8e636450 libgambatte: add memory read\write callbacks, maybe? not sure how to test it... 2012-10-14 15:10:33 +00:00
goyuken 1f63e410ba support "TENGEN-800004" as it is functionally identical to NES-DRROM. Fixes Gauntlet (Unl). Bad dumps of Gauntlet won't work because bootgod id and setup is required. 2012-10-14 14:16:25 +00:00
adelikat 6fedb67949 Fix the Write callback for the MemoryCallBackSystem and refactor the object more appropriately 2012-10-14 14:08:25 +00:00
goyuken a5f7e1f3f8 mapper 156: buzz and waldog, metal force 2012-10-14 02:46:02 +00:00
adelikat 3f961647a8 SMS - oops broke stuff on last commit! 2012-10-13 20:39:13 +00:00
adelikat 98ae0abe28 Lua - Implement onmemoryread() and onmemorywrite() to the remaining C# cores except Genesis 2012-10-13 20:15:28 +00:00
adelikat 557fb150c3 Lua - implement onmemoryread and onmemorywrite for the NES and PCE cores 2012-10-13 18:59:09 +00:00
goyuken def3a06da0 add mapper 132 (creatom). i have no idea how to play the game, though 2012-10-13 18:35:31 +00:00
goyuken e1fa9c0a4a add mapper038: "Crime Busters (Unl).nes" boots but the game requires zapper... 2012-10-13 17:20:22 +00:00
goyuken 402508e4e5 mapper218: force vram_size to 0 (ignore whatever is in the broken header) 2012-10-13 16:19:08 +00:00
goyuken db0783f606 support mapper218: Magic Floor (Homebrew) 2012-10-13 15:25:23 +00:00
goyuken 4a87b8462d coontiue mapper 18 implementation. magic john appears to be playable now 2012-10-13 13:40:05 +00:00
goyuken 4510712ada AGCI-50282 \ MAPPER144: Death Race (Unl) (U). this game is a piece of shit 2012-10-13 01:29:59 +00:00
goyuken c1b9293c09 TQROM: writes to chrrom are ignored, instead of attempting to write to incorrect chrram addresses 2012-10-12 01:58:36 +00:00
goyuken b40897bb77 sound api changes. added a new ISyncSoundProvider, which works similarly to ISoundProvider except the source (not the sink) determines the number of samples to process. Added facilities to metaspu, dcfilter, speexresampler to work with ISyncSoundProvider. Add ISyncSoundProvider to IEmulator. All IEmulators must provide sync sound, but they need not provide async sound. When async is needed and an IEmulator doesn't provide it, the frontend will wrap it in a vecna metaspu. SNES, GB changed to provide sync sound only. All other emulator cores mostly unchanged; they just provide stub fakesync alongside async, for now. For the moment, the only use of the sync sound is for realtime audio throttling, where it works and sounds quite nice. In the future, sync sound will be supported for AV dumping as well. 2012-10-11 00:44:59 +00:00
zeromus 54810ee6c6 nes-support mapper 101 2012-10-10 18:13:09 +00:00
goyuken 19e5325afa DCFilter: allow variable filterwidth. 2600 tia: use a rather aggressive (~172hz cutoff) dc filter. this coefficient is reasonably close to actual hardware behavior. 2012-10-10 00:56:48 +00:00
goyuken ac86041b94 2600 tia: octave up 2012-10-10 00:24:15 +00:00
goyuken 494f1bdbb5 diced up TIA audio into tiny bits. GHOSTBUSTERS!!!! also, i have no idea what i'm doing 2012-10-10 00:16:38 +00:00
goyuken 8cb8879212 implement some more audio stuff in 2600 tia. many things still undone 2012-10-08 23:30:17 +00:00
goyuken 3832352dbe add default RomStatusDetails (name, sha1, md5). add pcecd specific RomStatusDetails generated from the Disc 2012-10-08 20:37:41 +00:00
goyuken c392b24d22 libsnescore: eliminate errant querying of "P1 ", et al in controller routine 2012-10-08 18:55:25 +00:00
goyuken c24abbcbad libsnescore: make deterministic mode savestates all the same size (previously, frame 0 savestates were slightly smaller)
rewind: throw a slightly more intelligible exception message when savestates differ in size
2012-10-08 18:18:43 +00:00
goyuken c167c043e1 rework libsnescore's deterministic savestate mode. like before, savestates are created every single frame. unlike before, now they are created on the frame before they "happen". this is all presented invisibly to the user. don't try to load old savestates in deterministic mode. don't try to mix deterministic and non-deterministic savestates. playing back old movies (provided they don't start from a savestate) should cause no problems, but may or may not sync. 2012-10-08 14:37:42 +00:00
beirich 6d4af4968d SMS: support cpu trace logging 2012-10-06 18:09:41 +00:00
goyuken 9be282789b add DisplayType to NES. fixed to NTSC as that's all that our NES core supports at the moment 2012-10-06 16:56:46 +00:00
goyuken 6d683f9327 libsnes: like sms, DisplayType property for ntsc\pal 2012-10-06 16:28:42 +00:00
goyuken b545d79fb6 lua: add emu.on_snoop() 2012-10-06 13:34:04 +00:00
zeromus 96089026cd remove "SGB" systemid because its gonna cause a lot of trouble if we dont hook it up in a lot of places.. why can't we set it up as just a regular snes core? and run the sgb rom through the snes firmwares directory. 2012-10-05 04:47:45 +00:00
beirich af9390f569 oops 2012-10-05 03:53:30 +00:00
beirich 3547b9bad8 GG: Add option to highlight the active display region 2012-10-05 03:42:19 +00:00
beirich 3d36887d60 GG: Add emulator support for showing clipped regions of GG games
Note, not yet hooked up to UI.
2012-10-05 03:12:42 +00:00
zeromus ddac7fcefd nes-dont generate a framebuffer before the ppu runs. generate it after! 2012-10-04 21:51:34 +00:00
goyuken d3d2ce8893 gb: fix line breaks in rom annotation status details. fuck cr\lf forever. 2012-10-03 16:50:10 +00:00
goyuken 98d9f13600 change IEmulator.DeterministicEmulation to get-only; the old interface implies that a core should be able to take a change to the property at any time, which isn't feasable. most existing cores changed to return true all the time. SNES now takes determinism parameter in Load() 2012-10-03 15:31:04 +00:00
goyuken 0e292d19ca snes: don't instantiate "BUS" domain when DeterministicEmulation == true 2012-10-03 15:11:21 +00:00
goyuken e509b0cd9b snes: Add "BUS" memory domain. Like GB, caveat that it could possibly maybe affect sync, maybe... doubly so because I can't penetrate byuu code so well. 2012-10-03 14:54:32 +00:00
zeromus 56f58caf4d snesgfx-preliminary work on bg tilemap entry viewer. 2012-10-02 09:28:57 +00:00
zeromus df039f3b89 snesgfx-add some preliminary tile viewing support 2012-10-01 21:51:55 +00:00
goyuken d4f5ed2f50 Movie playback and recording will now set IEmulator.DeterministicEmulation = true; only snes core actually does anything with this. It hasn't been explained before in a log; so I'll do it now: When in deterministic mode, the snes core internally does exactly one savestate each and every frame. Then, if the frontend calls savestate at all, it always gets the same internal cached savestate. If the frontend doesn't call savestate, then the internal savestate is simply discarded. This way, the exact same number of RunToSave() calls occur every time. 2012-10-01 14:39:52 +00:00
zeromus 2b1e04997c snes-try more accuracy in the wallclock-sync to fix audio hiccups. we really, really need fancy systems to sync to audio or do proper vsync (and rewire the snes resampler to forcibly adjust to a 60hz display rate) 2012-10-01 04:15:21 +00:00
beirich ea6e170703 support Trace Logging in PCE 2012-10-01 00:21:25 +00:00
zeromus a87a5c96b2 oops 2012-10-01 00:18:33 +00:00
goyuken cefca2e098 libsnes: deterministic mode for savestates. not hooked up yet 2012-09-30 19:22:54 +00:00
goyuken 2b117c3955 snes: read region, so 50fps live viewing and video dumping now works (PAL).
pretty sure no flags are saved to movie files, though...
2012-09-30 18:21:32 +00:00
goyuken 40d86d0a8b SNES: change the initial bootup frame size (on frame zero) to 256x224.
it's the most common game resolution, and also the smallest (so can avoid some instances of window size snapping down because too big)
2012-09-30 14:08:50 +00:00
zeromus e0f506002d snes-try to survive the display of interlaced modes. havent had an actual game test this so im not sure what it looks like 2012-09-30 05:17:08 +00:00
adelikat e964dfb1df Trace Logging hooked up for NES core, trace logger tool doesn't display rows for some reason 2012-09-30 02:37:00 +00:00
adelikat f8c508b1a3 Add a CpuTracingAvailable flag to CoreOutputComm and set to true for NES, set the Trace Logger menu item to be enabled/disabled based on this flag 2012-09-30 02:07:14 +00:00
goyuken bb995c1472 SxROM: fix "Bill & Ted's Excellent Video Game Adventure.nes"
breaks all MMC1 savestates
2012-09-30 01:32:10 +00:00
goyuken b6e4d9996e DCFilter: add a "push" mode more suited to being placed between a resampler and a metaspu
Gambatte: change the order of output from "GB => resampler => metaspu => DCFilter" to "GB => resampler => DCFilter => metaspu".
This doesn't change anything under most circumstances, except when playing the emulator in slow motion (for instance, 50% throttle).  There, the metaspu sometimes adds silence to the output, which isn't actually silence if it has a different DC offset than the audio it's being mixed with.  Well, 50% throttle sound output will always suck anyway...
2012-09-29 22:38:47 +00:00
zeromus 0b03e6edc8 nes-big improvements to sound, hopefully. fix regressions from last night which killed a lot of music. 2012-09-29 22:19:49 +00:00
goyuken a9304bef26 GB: memory domains now work correctly immediately after a loadstate 2012-09-29 13:03:14 +00:00
zeromus 3898733e8e nes-fix dmc sfx bug in bt&dd making nonexistent sfx; add emulation of empty databus (to extra joystick bits and reads of nonexistent EXP and WRAM memory ranges.. need to scan other emulator source codes for places to check for use of empty databus); fixes freeze bug in bt&dd. also break savestates, but add a crude version system so we at least have a way to avoid it in the future.
bt&dd has a glitch that reads from $6000 when there is no ram installed, and crashes if something too large is returned. I think this chooses a frame for abobo, and you can actually see abobo's sprites glitch for one frame right when the wall finishes getting busted down (the same place where bizhawk was freezing)
2012-09-29 08:39:59 +00:00
zeromus 3095df51c3 nes-fix a missing variable in apu savestates. fixes nothing. 2012-09-28 08:34:02 +00:00
zeromus 1fbbbaf776 oops 2012-09-27 11:58:04 +00:00
zeromus d9a55fed37 snes-load firmware files from a CoreInputComm path, which must be named exactly right; show the requisite filename in a messagebox if it's missing; but theres no GUI for the firmware path hooked up yet. 2012-09-27 07:22:31 +00:00
zeromus 079f19a03c nes-i think the 8 sprite limit remover option was already working. however, it looks sync-dangerous, so i addressed that 2012-09-27 06:18:35 +00:00
zeromus 6c8177a08b snes-print messages from libsnes. now you can see which dsp/firmware dependency it detected for the game (it has its own heuristics, not necessarily any need for gamedb yet). still not loading the firmwares though 2012-09-27 01:38:27 +00:00
goyuken b6fd5c6b5f china pokemon ahoy 2012-09-26 20:15:33 +00:00
goyuken fc8087c344 preliminary SGB support.
1) choose your SGB rom from the path config (should probably be an .smc file of about 256KB)
2) turn on Load GB as SGB from the GB menu.
3) load rom again.
To turn off, uncheck Load GB as SGB from the SGB menu.
2012-09-26 15:59:14 +00:00
goyuken e39d759d95 gambatte: some rom annotation status details 2012-09-26 03:24:00 +00:00
goyuken b6f6b9a5db gambattehawk: add slightly more intelligible error messages on bad mapper number load attempt 2012-09-24 20:20:21 +00:00
goyuken 36df8e4aab fix default patch set for VRC7 2012-09-24 17:34:17 +00:00
goyuken c94d5aa9b8 i implemented dwedit's DMC fix as best as i could understand it. 'Fire Hawk (USA) (Unl).nes' no longer has graphical glitches on the intro screen.
audio still sounds wrong, and crash still occurs once you get in game
2012-09-24 14:48:00 +00:00
zeromus f53aa56f1c snes-support high-res (2x=512 width) display modes by doubling the vertical lines. maybe we'll need to do this differently if we can find a game thats controlling the interlacing options. 2012-09-24 08:00:42 +00:00
zeromus 52edee63d8 snesgfx-support mode7 direct color displays. still need an example of a mode 3 or 4 direct color usage 2012-09-24 07:46:54 +00:00
zeromus 4efea7605d snesgfx-support mode7ExtBg tiles & BG 2012-09-24 06:47:34 +00:00
goyuken 247402dbb3 for fun, find a copy of "vs castlevania" with ines header and load it. watch the pretty colors
TODO: Everything
2012-09-24 01:08:36 +00:00
goyuken dab03cb034 snes: fix savestates just as in the previous commit 2012-09-23 16:59:44 +00:00
goyuken 71916f698d i was going to fix gambatte savestates in a clever way, but i ended up just changing around a few things and then giving up 2012-09-23 16:56:11 +00:00
goyuken 7e89882d42 lag counter in sneshawk
c++ is dum
2012-09-23 15:57:01 +00:00
goyuken 35013f07e8 2600: stop emulator from hanging, consuming all ram, and then crashing in some situations 2012-09-22 19:47:25 +00:00
zeromus 03cb238ae3 snes-add scanline render callbacks and add scanline selector to graphics debugger 2012-09-22 05:03:52 +00:00
beirich 64a04fd672 gen: two-cell vertical scroll mode 2012-09-22 04:46:44 +00:00
zeromus 3c6549a7bb snesgfx-decode mode7 graphics 2012-09-21 17:21:21 +00:00
zeromus 72d4fefbe0 snesgfxdebug-fix 8bpp tile decoding and 16x16 tilemap rendering 2012-09-21 08:10:14 +00:00
zeromus 708b98b4b8 enum.HasFlag -- too good to be true? yes. 40x slower than doing an old fashioned bitmask check. 2012-09-21 07:10:54 +00:00
zeromus 70392be4e4 snes-all memory domains were showing WRAM instead of the right thing; fixed 2012-09-21 06:03:27 +00:00
zeromus 526078f578 snes-work on graphics debugger. some relayout, plus palette viewer 2012-09-21 05:56:47 +00:00
goyuken c026b2dc81 slightly optimize previous commit by avoiding 32k unmanaged=>managed transition calls per second when skipping audio 2012-09-20 20:36:44 +00:00
goyuken 176ecd8650 support for !rendersound in LibsnesCore
worth about 5-10% on my machine in secret of mana opening
2012-09-20 20:25:40 +00:00
goyuken 51fc8e695c add 'bool rendersound' to IEmualtor.FrameAdvance()
if false, the emulator is free to gain whatever speedup it can by not doing audio processing (shouldn't change anything sync related, though)
the core should still always call SoundProvider.GetSamples() after each FrameAdvance(), else DRAGONS
at the moment, only test-implemented in gambattehawk
2012-09-20 19:52:47 +00:00
goyuken 1301344d71 neshawk: fix: when paused, toggling "clip left and right 8" in nes graphics config caused garbage to show on screen. 2012-09-20 00:53:21 +00:00
zeromus 1760e9593f nes-probably need to handle the left clipping case too 2012-09-20 00:24:46 +00:00
zeromus e8487b77d8 change lua drawing to use an offset specified by the emulator core, so that drawing in the nes core can have nes-relative coords instead of multiclient-display-relative coords 2012-09-20 00:22:24 +00:00
beirich 18f3da0f55 gen: add missing savestate vars. rewind seems stable now from the games I've tested. 2012-09-18 11:09:05 +00:00
beirich b2e48d8749 gen: savestates work, though they're nes-style brittle savestates for now 2012-09-17 23:28:22 +00:00
beirich b04189b6b1 gen: rewind is working, savestates are not working [yet]. will fix more tomorrow 2012-09-17 05:48:24 +00:00
zeromus c6a14d551c snes-work on graphics tools a tiny bit 2012-09-17 00:16:19 +00:00
zeromus b33fc4982c remove derelict CoreVersion/Introspection stuff 2012-09-16 20:08:36 +00:00
zeromus 4018452f21 add CoreInputComm.CpuTraceEnable and CoreInputComm.CpuTraceStream, and use it in NES; set those appropriately from a gui component and you can effect user-controlled cpu tracing, if its been setup in the core he's interested in. CoreInputComm doesnt reconstruct between emulator instances, so this may not be the best way of hooking it up, but its serviceable. 2012-09-16 19:38:08 +00:00
beirich eea2160df2 didnt meant to commit last time, but guess I should check this in so I dont break the build 2012-09-16 19:06:50 +00:00
beirich 5742d69f6a 2012-09-16 19:03:44 +00:00
zeromus 8cbc3ee2af snes-setup hard and soft resets 2012-09-16 17:15:53 +00:00
goyuken a87a9c1cd5 add "Default CGB" button to gambatte color chooser for default CGB grayscale
if no palette at all is available, the core will internally default to the "bsnes improved" palette
2012-09-16 17:09:52 +00:00
goyuken 727e441bb4 change gameboy control "Reset" virtual button to "Power" virtual button
some consoles have both "Reset" and "Power" notions, so this is to be more consistent
i'm not sure that i got all references...
2012-09-16 16:25:54 +00:00
zeromus 88fab46b21 fix error in snes Select and Start button binding (was using the NES bindings due to copy/paste error) 2012-09-16 16:23:10 +00:00
beirich e208b147ae gen: support save-ram. but not eeprom, yet. 2012-09-16 04:42:14 +00:00
goyuken a7bdd745c6 move ColorChooserForm to the MultiClient
also disable its menu item if the emulator is currently in CGB mode (since it doesn't do anything)
2012-09-15 18:30:11 +00:00
adelikat 644f7415b9 Remove some delete controller images from the .sln file, GB Palette Config - misc dialog tweaks 2012-09-15 17:44:17 +00:00
goyuken cfe73b292d add gambatte boot flags to menu and config. i don't like all that stuff in mainform, but it works anyway...
TODO: these flags must also be added to .chickenfucker file header
2012-09-15 16:14:03 +00:00
goyuken 27b5d29f0c Gambatte: soft resets (all 3 lines of code!)
Internally, Gambatte implements this as a full hard reset of everything except saveram.  There are comments in the code to suggest that this is appropriate real console behavior...
2012-09-15 02:36:19 +00:00
goyuken feaa652986 fix SMS SaveRAM == null in SMS 2012-09-14 23:31:10 +00:00
goyuken 16e831a84c fix BRAM == null case in PCE 2012-09-14 23:18:16 +00:00
goyuken 83e145c36f change the IEmulator saveram interface.
i don't like doing this, but there were already two emus with special bandaid logic in MainForm.cs
i hope this doesn't break something, but if it does i'll fix it
2012-09-14 22:28:38 +00:00
goyuken 4101efb92d implement ClearSaveRam in gambatte core, and fix a bug with using memory domains before any frames have been run 2012-09-14 21:29:35 +00:00
goyuken 1697e77042 gambatte: leave CoreOutputComm strings empty since we have nothing to say (for the moment) 2012-09-14 15:50:35 +00:00
goyuken 6053d1bf89 add ability to save to gambatte-style palette files 2012-09-14 00:35:31 +00:00
goyuken c05c9ebda7 add loading of gambatte-style palette files to the palette selector (includes drag and drop) 2012-09-14 00:02:37 +00:00
goyuken f5d37cf73b the world would end if microsoft ran it 2012-09-13 23:09:03 +00:00
goyuken c72ac19037 gambatte pal editor: use system color picker dialog
... but something about the customcolors isn't working right?
2012-09-13 22:20:05 +00:00
goyuken bf5625655d rename gambatte memory domains per todo list 2012-09-13 21:19:26 +00:00
goyuken 12d06a2c94 add system bus memory domain to gambatte
in order to guarantee correct resolution of mappings and mmio every time, all calls go straight to the core and are not cached
this makes this domain slower in performance than the other ones.  it can also be more difficult to use in some cases because you have to resolve mappings that you may not care about.
there is also the possibility of side-effects on reads, although i do not believe that this actually happens in any situations.  still, use at your own risk.
2012-09-13 21:03:34 +00:00
beirich 2d2af1d143 oops 2012-09-13 04:15:25 +00:00
beirich adee5befa5 Genesis ROM header parsing
and other stuff thats only committed because svn isn't decentralized!
2012-09-13 04:13:49 +00:00
goyuken 76c68bf6d5 add "interpolate" button to dmg color select
idea shamelessly ripped from bgb
2012-09-12 23:45:42 +00:00
goyuken 03caa3b32f gambatte dmg palette editor. blah. 2012-09-12 22:18:51 +00:00
goyuken 1e6a9415c1 add Sound.Utilities.DCFilter and use it in gambatte
haven't decided yet whether i like the idea; it's mostly about playing nice with other audio mixing (from other applications)
well, it's not bad anyway...
2012-09-11 21:30:50 +00:00
goyuken d57e195e52 gambatte: add oam, hram to memory domain list 2012-09-11 19:05:44 +00:00
goyuken 25c34d2ca6 significant speedup in gambatte MemoryDomains by keeping shadow copy of native memory
not quite sure at the moment what each of the domains actually is, though
2012-09-11 17:37:17 +00:00
goyuken ed2b690f75 add memory domains to gambatte
appears to work, but i don't really have much of anything to test on it
ramwatch is horribly slow
2012-09-11 15:28:38 +00:00
beirich bf504d1220 gen: work on sprite masking/overflow code. substantially improved. Fixes Sonic 1 title screen, Galaxy Force 2 level select, Landstalker sprite masking, and improved nemesis' test rom. Still something amiss in Sonic 2 title screen. 2012-09-11 05:00:45 +00:00
goyuken d84f13275e add IsLagFrame, LagCount, Frame to Snes savestates 2012-09-11 01:50:55 +00:00
goyuken f2ce38851a add IsLagFrame, LagCount, Frame to Gambatte savestates 2012-09-11 01:46:57 +00:00
goyuken 578e247524 add lag counter to LibsnesCore
per ilari, this should work correctly on certain games that poll the input in a particular way.  however, it is completely non-functional on many other games.  core digging is required for anything better.
2012-09-11 01:36:12 +00:00
goyuken 4e35cb566f functioning saveram support for gambatte 2012-09-10 23:40:53 +00:00
andres.delikat 286e5c9b08 SNES - make controllers 2-4 work 2012-09-10 18:40:39 +00:00
goyuken 62f2771a8e gambatte: lagframe stuff is hooked up and appears to be working 2012-09-09 21:57:15 +00:00
zeromus 8e42658702 completing the trifecta: fix the terrible nondeterminisms that made series of snes romloads act wacky 2012-09-09 21:19:54 +00:00
goyuken a6caa8680d fix up rom loading routines for libgambatte to use memory block directly (and not file) 2012-09-09 21:15:54 +00:00
beirich 90d1d12086 gen: fix some vram corruption issues
general: fix some build warnings
2012-09-09 21:15:20 +00:00
zeromus f3b6afa5ad change libco to use an msvc-compiled dll so that it doesnt get wrecked whenever the .net GC process suspends a thread in a coroutine. cant figure out how to get that same code working compiled by mingw32. 2012-09-09 19:02:13 +00:00
goyuken 8cdcae462d gambatte savestates. slightly modifies some parts of the core and the pinvoke hookup to produce memory arrays instead of disk files as savestates.
does not work, for now.  (sorry about the exceptions!)
2012-09-09 18:47:00 +00:00
goyuken a277dfa1e5 wire controls into gambatte. 2012-09-09 14:17:57 +00:00
goyuken 3acc87c013 remove unnecessary extra video buffer in gambatte wrapper, and dispose of resampler properly 2012-09-09 13:35:58 +00:00
goyuken 72260690df r2931 accidentally reverted r2929 2012-09-09 12:23:40 +00:00
beirich a4f8ecc2e0 gen: fix render scroll plane size / window calculation bug. fixes gfx glitches in several games. 2012-09-09 04:22:44 +00:00
beirich 4dbab90b87 gen: remove old, unneeded hack. Fixes Quackshot. 2012-09-09 03:29:40 +00:00
beirich cbe1292e16 fix GB RewireInputChain crash 2012-09-09 02:06:07 +00:00
beirich 3ed2261cf9 Delete some unused files
Move Nintendo\Docs folder to Nintendo\NES\Docs
2012-09-09 01:53:28 +00:00
beirich 11464a7e03 Move Gambatte files to Nintendo folder
Clean up some missing file links in the csproj file
2012-09-09 01:40:29 +00:00
beirich e8de0327d2 Remove the 2 dead gameboy cores 2012-09-09 01:31:30 +00:00
goyuken 7962c6d2cd change quality parameter for SpeexResampler in Gambatte from 5 to 2. Speedup: 85fps->1500fps 2012-09-09 01:04:39 +00:00
goyuken f18eb2fef2 gambatte now has sound! output from the core is original 2MEGAHURTZ audio, but libspeexdsp handles it fine.
seems to be a lot of DC offset at times; not sure if there's a good way to remove it
2012-09-09 00:41:11 +00:00
goyuken d3cb60d833 remove a few notimplemented exceptions, and add .gb, .gbc to the standard open file dialog.
.gbc fails to load because of something else...
2012-09-08 22:01:47 +00:00
goyuken 7b9bbe6b31 libgambatte can now get into game (with recognizable graphics). exceptions everywhere and nothing is hooked up, though. 2012-09-08 21:48:46 +00:00
goyuken 588d6214d5 more gambatte wrapper stuff 2012-09-08 21:36:04 +00:00
goyuken 7fc9dbd22c typos, comments 2012-09-08 20:46:54 +00:00
goyuken 3061abbc4b preliminary C api for libgambatte, plus pinvoke bindings
i'm a bit out of my league on this one, but that's ok
2012-09-08 20:22:07 +00:00
zeromus 285b9581f2 snes-work on graphics tools. can now render typical BGs for mode 1. SLOWLY!!!!! this is definitely getting turned into c++ code 2012-09-08 20:03:04 +00:00
goyuken 2a01e01e78 clean up resampler with rest of libsnes 2012-09-08 01:15:16 +00:00
andres.delikat d56c0c354b SNES - oops, hookup setting the frame counter as well 2012-09-07 20:31:05 +00:00
goyuken 71652b25dc cleanup/simplify SpeexResampler 2012-09-07 20:12:47 +00:00
andres.delikat afa27c1a26 SNES - hook up frame counter 2012-09-07 20:06:57 +00:00
goyuken 001b28c60e replace junk and bad license resamplers with libspeexdsp (using p/invoke). MIT licensed, sounds pretty decent.
the p/invoke wrapper class is a hackjob i was using for testing and will be replaced.
2012-09-07 18:49:18 +00:00
zeromus cfe1e749a1 hook up path config for intellivision and change erom and grom to use it. now you need erom.bin and grom.bin in the Intellivision directory by default. 2012-09-07 06:18:58 +00:00
zeromus 8eba3fb37c stop crashing the intellivision core when the emulation menu is opened 2012-09-07 05:41:33 +00:00
zeromus 58c7966449 should probably add this file too 2012-09-06 08:35:45 +00:00
zeromus ad6910fd74 snes-some beginning steps on graphics debugging tools. nothing to see yet, move along 2012-09-06 08:32:25 +00:00
brandman211 fd1560177e -Implemented Colored Squares mode. It looks sensible in one of the improperly loaded ROMs that triggers it.
-Masked the Color Stack registers. This prevents the previously mentioned ROM from throwing an ArgumentException in ColorToRGBA.
2012-09-06 08:02:49 +00:00
brandman211 a6f11a7ade -The STIC now displays the encoded background color when one is provided.
--The only time I've seen this was in a game that used FGBG mode, and it looked messed up.
-Implemented the parsing of the background for Color Stack mode.
--Because the STIC Registers aren't populated, this doesn't do anything. I'm not sure when this is supposed to occur.
-Determined when Colored Squares mode is active. I'll try to implement this mode shortly.
2012-09-06 07:31:25 +00:00
brandman211 8230f63ddf The foreground now shows its true colors. 2012-09-06 06:56:21 +00:00
brandman211 641ef2bcff -Unset pixels when necessary.
-Fixed the loading of a card's rows.
-Corrected the maskings. The top tiles look perfect now, but the text isn't showing up yet.
2012-09-06 06:20:50 +00:00
brandman211 06022c9076 -Added Read/WriteMemory to the STIC so that it can access the RAM it needs to draw the screen.
--Did the same for the PSG because why not.
-Discovered that the Commando HLT happens after the CPU goes idle, so there's no point in further investigating the issue until I emulate that.
-Parsed the BACKTAB cards for the STIC's Draw().
-Attempted to draw the screen using the aforementioned cards.
--I'm only trying to apply color to the foreground.
---Instead of converting the FG color to RGBA, I'm making it all white for now.
--There's clearly some sanity to what's being drawn, so I think each 8x8 card is being drawn in the right place.
--I think the next step is trying to make each individual card draw properly.
--I believe the algorithm for populating the FrameBuffer is VERY inefficient in the way it accesses memory. Will need some suggestions as to how I can rewrite this.
2012-09-06 04:51:17 +00:00
goyuken a85dadcf7d did a bunch of listening tests with libsnes and metaspu. switched to vecna metaspu
it seems to be the most stable when the system is fast enough to maintain approximately 100% speed.

also fixed up metaspu in dumping and switched it to vecna.  i can now have clean audio while running libsnes with lua script and ffmpeg dumping.
2012-09-06 00:07:37 +00:00
goyuken 41e2e5bced orphaned variable from r2898 2012-09-05 23:32:41 +00:00
zeromus ade89fe798 snes-fix bug where loading more than one snes rom would wreck the emulator 2012-09-05 23:16:08 +00:00
goyuken b0e3a332d8 abstract resampling functionality into IStereoResampler for testing purposes
add two example resamplers that implement this: LinearResampler and CubicResampler.  both are very basic and sound like shit compared to libresample4j
ultimately, a single good resampler with a better license than libresample4j should be selected and used
2012-09-05 21:21:35 +00:00
goyuken 0430ec91c8 add resampler based on libresample4j (LGPL)
hook that up to libsnes, so libsnes audio now goes through libresample4j and then metaspu
it sounds ok
2012-09-05 18:52:17 +00:00
brandman211 1a760096bc -Laid out the groundwork for the video provider.
--VirtualHeight / Width will be useful due to how the scanlines are doubled on TVs, but for now, I will just be drawing to scale.
-Enabled XOR@, SAR, and COMR. Advanced Dungeons & Dragons provided more test cases.
-Noticed that Commando, as well as some other games, triggers a HLT. This should be looked into later.
2012-09-05 04:42:49 +00:00
goyuken fd5494a316 libsnes: dumb change to dumb code slightly lessens appearance rate of rice crispies in some situations 2012-09-05 01:30:09 +00:00
zeromus b2b1c8755c snes-apply lsnes patches 2012-09-04 20:23:18 +00:00
brandman211 44e03b1923 -Changed the amount of pending cycles to add when the STIC sets SR1.
--This number is fairly arbitrary, and I don't know why it works, but for now, it does.
--The values of INTRM don't match up exactly, but I think this is mostly a logging issue, though I still need to look into this.
-Fixed the Overflow Flag calculation.
--My original formula didn't compare the signs of the operands.
--It always needs to use the original operands, not the 2s complement one.
--As such, a result parameter has been added.
-Fixed the detection of a double swap, shift, and rotate in the related instructions. Ironically, I shifted one too many bits in my detection.
-Masked the result of left shifts and rotates to 0xFFFF so that the flags are calculated properly.
-Made RSWD (un)set the right flags.
-Enabled GSWD, MVI, SARC, CMP@, ADD, SUB@, INCR, RRC, SLR, SLL, RLC, ADDR, SUBR, SLLC, CMPR, and RSWD.
-COMR, NEGR, ADCR, SAR, ANDR, SUB, AND, XOR, and XOR@ remain disabled as I have yet to hit any test cases for them.

At this point, IntelliHawk is executing instructions indefinitely with what seems to be perfect results! I think I'm ready to hook up the screen.
2012-09-04 19:29:02 +00:00
zeromus 4903ad240c snes-change libsnes color output to 32bpp to avoid having to uncrunch 16bpp pixels, for an indeterminate speedup 2012-09-04 19:25:09 +00:00
zeromus 9726b75ec4 snes-support layer toggles (needs gui hookups) 2012-09-04 19:12:16 +00:00
zeromus 76cfbc47c1 fix loading of non-snes games, and try to make snes core reset a little more reliable by reconstructing more 2012-09-04 18:04:06 +00:00
zeromus c8aa937f4f snes-memorydomains (but not systembus) 2012-09-04 17:29:20 +00:00
zeromus ea6c0b9378 snes-enable savestates. dont get your hopes up, its a bit bloated and weird, and we still need to asses the bsnesariffic savestate synchronization issues. but, it works. 2012-09-04 08:21:01 +00:00
zeromus f5c0965045 snes-support save ram 2012-09-04 07:09:00 +00:00
brandman211 ca8b778a52 -Noted interrupts in the log.
-Added and Interrupted flag to make it so that interrupts only trigger once per falling edge.
-For now, interrupts take 28 cycles.
-Made it so that the STIC tracks Pending / Total Executed Cycles just like the CPU.
-Forwarded the cycles executed in the CPU to the STIC's Execute.
-SR1 is now inverted when there are no pending cycles.
--If SR1 is high, 14394 cycles are added to the pending cycles.
--If SR1 is low, 3791 cycles are added to the pending cycles.
2012-09-04 06:26:08 +00:00
zeromus caed262122 snes-try and determine whether game is snes based on libsnes's internal heuristics, and use .SFC for it anyway 2012-09-04 06:08:46 +00:00
beirich 2ef33fbfec gen: fix dumb bug with sprite masking... fixes sprites showing up in WINDOW in many games where theyre not supposed to 2012-09-04 02:56:53 +00:00
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
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
zeromus 157c145a46 nes-fix m193 2012-07-06 02:29:42 +00:00
adelikat 7a9d037fed NES - Progress on Mapper 193 2012-07-06 01:36:19 +00:00
zeromus 1d254c3705 nes-fiddle around with board irq signal tracking system. break every NES savestate. fix a desync bug in a bunch of mappers 2012-06-25 06:32:54 +00:00
beirich b599c69c18 Add VirtualWidth to IVideoProvider and the (numerous) implementations. This is just phase 1, client needs to be updated to utilize this information, and some cores (especially PCE) should be updated in a more involved way to provide better TV emulation. 2012-06-25 02:50:34 +00:00
zeromus 7e8752a5b9 nes-sort out some bus conflict flags for CNROM games to fix colorful dragon (unl) (sachen) 2012-06-24 17:39:12 +00:00
zeromus 5b356c5157 nes-support mapper 178 and fix a regression from yesterday that made most roms not loadable 2012-06-23 18:30:27 +00:00
adelikat dcdd98fc03 Fix mapper 116 code so that project compiles 2012-06-23 15:45:58 +00:00
zeromus 50d4564e0e nes-support mapper 116 2012-06-23 08:52:12 +00:00
zeromus 8bf9b92949 nes-support mapper 241 2012-06-20 22:24:56 +00:00
zeromus 6156188676 nes-support m015 2012-06-19 21:23:24 +00:00
adelikat a2a9bfde3c NES - implement mapper 92 2012-06-16 23:34:42 +00:00
zeromus ace86fa321 nes-clarificatoin to mapper 19 and 210 (theyre actually identical) 2012-06-16 16:59:02 +00:00
zeromus 540be07cf2 nes-support mapper 076 2012-06-15 19:55:29 +00:00