Commit Graph

81 Commits

Author SHA1 Message Date
goyuken 210d415e3d Add Blargg's "blip_buf" as an unmanaged dll. license is LGPL; if I like the way it works, I'll rewrite it with MIT code. Implement it as the new resampling output track for NES. Small (~3%)? speedup. Should sound better, especially when the emulator can't quite keep speed. 2012-12-09 03:13:47 +00:00
goyuken ae963b5443 nes: fix PAL DMC frequencies 2012-12-03 15:01:04 +00:00
zeromus 7339615890 nes-change memory initialization pattern; fixes Huang Di. Doesnt seem to break any of the other known memory-initialization-dependent cases 2012-11-17 08:16:02 +00:00
zeromus e48f24d266 quick fix for 6502 trace log 2012-11-17 01:31:34 +00:00
goyuken ec82f11884 nes: reset board state with hard reset 2012-11-06 03:05:43 +00:00
goyuken 089379711a nes: fix missing sound after hard reset 2012-11-06 02:13:16 +00:00
goyuken e06a9218b8 nes hard reset no longer crashes. instead, certain sound channels stop playing (?) 2012-11-06 01:41:22 +00:00
adelikat 5764b222ab NES Core - implement Hard Reset, currently crashes though 2012-11-06 00:40:51 +00:00
zeromus 69d2a99a2c nes-fix memory map bug, affecting robocop 3 scroll glitches 2012-11-05 06:26:52 +00:00
goyuken 6ffd71973a 6502: improve tracelog to only disassemble actual opcodes, and also enable it on 2600 2012-11-02 22:27:22 +00:00
zeromus aa161d8910 proper Peek support in NES and 6502X 2012-11-02 19:28:00 +00:00
goyuken 967a60dcf7 ack! 2012-10-31 21:16:50 +00:00
goyuken 5cbd11c850 NES: add some vs system stuff. not done yet 2012-10-31 21:15:44 +00:00
goyuken e487e39c9e nes: clean up region detect code a bits 2012-10-31 18:48:06 +00:00
goyuken bc22049a19 NES Multiregion: sound frequencies supported 2012-10-31 18:35:34 +00:00
goyuken 7dc5808771 NES: preliminary support for PAL, Dendy, and RGB (part 1). at the moment, it's all determined from gamedb, and not at all saved to movies or savestates 2012-10-31 18:25:46 +00:00
goyuken 0d515dafdf nes: add ClockCPU() to INESBoard, for boards that count M2 cycles, and changed some mappers to use it. Mappers that need more inspection: Mapper027, SxROM, VRC2_4, VRC6, VRC7 2012-10-31 14:36:43 +00:00
zeromus 59664959f1 speed up c# 6502 and enable it instead of cpp one 2012-10-31 01:55:26 +00:00
goyuken cd2ff4ed63 Add unmanaged version of 6502X core. The core it self is nearly exactly a copy+paste job from the C# one; most things map over exactly. A strange and abusive p/invoke setup is required to realize a performance gain; see code for details. Seems to be worth a bit more than 20% overall speed for me. Core is savestate compatible with managed 6502X. slight modifications to existing API has been made to support the new cpu. also included is a test module that runs both cores together, savestating every cycle to check for sameness. Core should fit in Atari, although that hasn't been done yet. For the moment, tracelog and disassemble are broken, but they'll be back soon. 2012-10-30 23:01:54 +00:00
goyuken e6058e6bd8 break some stuff. FDS can eject and insert disk sides now 2012-10-26 18:51:08 +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
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
adelikat 6fedb67949 Fix the Write callback for the MemoryCallBackSystem and refactor the object more appropriately 2012-10-14 14:08:25 +00:00
adelikat 557fb150c3 Lua - implement onmemoryread and onmemorywrite for the NES and PCE cores 2012-10-13 18:59:09 +00:00
goyuken b545d79fb6 lua: add emu.on_snoop() 2012-10-06 13:34:04 +00:00
zeromus ddac7fcefd nes-dont generate a framebuffer before the ppu runs. generate it after! 2012-10-04 21:51:34 +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
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
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
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
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
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
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 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 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 0834c63a43 NES - sound config dialog for toggling sound channels 2012-07-12 23:13:22 +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
adelikat 836415455a NES - start an APU softreset function, and clear sequencer_irq, and 0x4015. Still a lot of work to be done for this, but passes nes apu reset tests: 4015_cleared, irq_flag_cleared 2012-04-14 13:51:26 +00:00
zeromus d3321f552f nes accuracy fixes
- pass more apu_test 4-jitter and 6-irq_flag_timing (necessary for timing on other tests)
- pass all cpu interrupt tests
- pass all sprite hit tests
2012-03-25 09:25:27 +00:00
zeromus 0cf6b0bcb7 switch atari 2600 to new 6502 core 2012-03-24 03:45:47 +00:00
zeromus 471b3ffb98 nes-fix soft reset functionality which had got broken when i upgraded the cpu core 2012-03-18 03:46:06 +00:00
zeromus 2b21ca7127 add new, more detailed 6502X cpu core, use it in the nes core as experiment. win almost all the speed back, pass some more tests. 2012-03-15 21:28:37 +00:00
zeromus e973533b48 nes-change oam dma cycles to 513 2012-03-08 04:49:19 +00:00
zeromus ed9de010c0 nes-add some crappy mmc3 multicart mappers 2012-03-06 09:42:11 +00:00