Commit Graph

736 Commits

Author SHA1 Message Date
zeromus 638a99a1f7 nes-fix a potentially desyncable bug in mmc3 savestate 2012-05-20 21:04:06 +00:00
brandman211 9623f073eb Added a logging flag for GB using the SaveStateText function. 2012-05-20 06:43:41 +00:00
adelikat 147caec758 GameboyHawk - Skip BIOS menu option 2012-05-19 15:17:32 +00:00
adelikat abba87738f Fix input config for Gameboy, some small random work on ColecoHawk 2012-05-18 22:57:05 +00:00
brandman211 5f534518aa Colors were still wrong. I just used a switch statement to fix them. Not elegant, but I can't see a simple pattern. 2012-05-18 19:47:43 +00:00
brandman211 9f8144ec58 -Set the number of cycles per frame to 70224.
-Inverted the colors; according to http://imrannazar.com/GameBoy-Emulation-in-JavaScript:-Graphics, 0 is white, 1 is light gray, 2 is dark gray, and 3 is black, which is the opposite of the norm.
2012-05-18 19:11:14 +00:00
zeromus 42715fdca7 rehabilitate the GB core: fix videoprovider and input system 2012-05-18 18:28:12 +00:00
goyuken a313d3910d Add sound output to sound card while dumping is occurring. Uses a proxy ISoundProvider (DualSound.cs) to guarantee emulation sound core and dumping routine are unaffected, while sending "best effort" sound to system output. Doesn't sound great, but simple and functional. 2012-05-09 20:21:23 +00:00
adelikat 02bad39a88 Some Coleco docs 2012-05-06 23:16:50 +00:00
brandman211 cd0016343f Done trying to optimize the PPU's FrameAdvance. We may have saved some processing time, but it's not very consistent. 2012-05-06 06:04:00 +00:00
brandman211 05157997f1 -Added a very basic fix to the graphics scaling issue per adelikat's advice.
--Gets worse as the scale increases.
--For x3, the box doesn't increase size, but the box still changes position. I think there might be a difference between the TargetZoomFactor and the actual screen size, so perhaps we should tie this to something else.
-Working on very small optimizations to the NES PPU with CorruptedSyntax...this is more fun, so we'll do this first.
--Eliminated an entire loop.
--Branched to two loops instead of branching for every iteration in one loop.
--Got rid of some redundant instructions using temporary variables.
--This may be completely premature, but I seem to have gained a few FPS from doing this. For me, I get 38-39 FPS where I'd previously get 33-34.
2012-05-06 04:09:28 +00:00
adelikat 5fa0a681e1 Colecohawk - start VDP (ripped from the SMS core) 2012-05-06 02:48:39 +00:00
adelikat 3b7c23817a Coleco - some hacks and fixes to make a coleco rom open without crashing (draw a black screen instead) 2012-05-06 01:15:02 +00:00
adelikat 059aebec8e ColecoHawk - set up ROM loading (bind .col to Coleco), set up preliminary controller garbage in 85 places for coleco 2012-05-06 00:54:13 +00:00
adelikat 592b73ea5a Atari - implement mapper EF 2012-04-29 21:12:58 +00:00
adelikat e0a6ae5264 Atari - put descriptions at the top of each mapper file 2012-04-29 21:01:06 +00:00
beirich 700ac116dd ym2612: more ports processed, DAC now plays in stereo 2012-04-29 18:33:21 +00:00
beirich 239cb213f0 ym2612: some progress on operators 2012-04-29 17:41:39 +00:00
adelikat 02767a9fbb Genesis - hook up lag counter 2012-04-29 12:55:20 +00:00
beirich 59eb4b4abe ym2612: support TimerA and TimerB 2012-04-29 06:05:15 +00:00
adelikat 3d10431a2b Atari - implement console switches (as menu items) 2012-04-29 02:48:33 +00:00
beirich d322c3c00f Fix some bugs responsible for out-of-bounds array access crash on ym2612 2012-04-29 01:40:38 +00:00
beirich 7f1292d4f9 start on YM2612. DAC works. process port writes for FM channels. No FM channels output audio yet. 2012-04-29 01:09:06 +00:00
adelikat 4e04facdd9 Atari - make games marked F6SC load 2012-04-28 23:21:12 +00:00
adelikat 1adec35f93 Atari - implement player 2 button 2012-04-22 00:02:24 +00:00
beirich fad95b6bab Add 3-band equalizer. Not hooked up to client for time being though. Maybe later I'll expand it to more bands and create presets. Just wanted to check it in for now. 2012-04-21 20:22:13 +00:00
zeromus f2d1f1ff2f discohawk-fix bug that made some cue source files whose ffmpeg decode output is very verbose trigger a deadlock through stdout buffer filling up 2012-04-19 20:04:52 +00:00
zeromus b1d62ed574 6502-add some opcodes not handled by the instruction tests, but which are cursorily covered by the instr_timing test, which now passes 2012-04-18 08:04:06 +00:00
zeromus 97b66a907f 6502-implement undocumented opcodes. pass all instruction tests 2012-04-18 05:22:58 +00:00
zeromus 06239e1aa3 nes-fix mapper 64 and some minor details of ppu data bus management; fixes klax and chu chu rocket 2012-04-17 06:50:23 +00:00
zeromus e41eabcfc3 fix atarihawk video 2012-04-16 22:56:30 +00:00
zeromus 35fbe354c1 add threaded display manager to allow heavy OSD/compositing/filtering to happen on another thread. add a lua layer accessible via GDI+ which can be automatically composited and the simplest possible demo of it. add some filtering infrastructure and a hq2x filter set ported to c# but need to work on a minimal selector gui before its usable. separate OSD from RenderPanel so that gdi+ presentation mode now gets full OSD support. the OSD is now a little uglier because its drawn entirely differently and could use some finetuning 2012-04-16 08:18:41 +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 7b86f66353 nes-oops. now, actually pass all mmc3 tests 2012-04-14 09:40:41 +00:00
zeromus 73fba31c34 nes-add mapper012 (mmc3 variant, for dragon ball z 5). add concept of mmc3 chip revision variants to mmc3 code and game database, and add proper emulation thereof. pass a bunch of mmc3 tests. simplify (to almost nothing) iNES board detection to correspond to new paradigms of virtual board types. your savestates for mmc3 games are invalidated. 2012-04-14 08:28:42 +00:00
zeromus eb1a6eb387 nes-clarify relationship between mapper 115 and mapper 248 (and support 248) 2012-04-09 20:09:58 +00:00
zeromus a561f8b7e7 nes-add mapper 227 2012-04-09 18:13:58 +00:00
zeromus a78a0fc5db nes-meant to check this in with last gamedb updates 2012-04-09 06:38:28 +00:00
adelikat eeec746010 NES Hawk - remove list of broken games from NES.cs and placed it on http://tasvideos.org/BizHawk/TODO.html instead 2012-04-08 18:07:46 +00:00
adelikat f495e7e068 Atari - slight fix to support the F4 mapper 2012-04-05 23:46:01 +00:00
zeromus a1cdd5dbfd nes-fix mapper 242 2012-04-05 18:55:34 +00:00
adelikat ea2bdac456 Fix an exception from commit 2161 (Prevent lua script restart when resetting a game). Fixed by making RecentFiles.GetRecentFileByPosition() more robust by not crashing when there is no recent file (returns "") instead 2012-04-04 02:23:47 +00:00
pjgat09 b5927b1212 Atari M6532: Turned the timer into an object, and now uses a prescaler, replacing the previous 32 bit int implementation.
Fixed a typo with the interrupt flag. 
These changes fix freezes with "Berzerk (1982) (Atari)" and "Omega Race (1983) (CBS Electronics)"
2012-04-04 01:18:41 +00:00
pjgat09 3591f7ca47 Atari: Changed the core to make the TIA the video and sound provider. 2012-04-02 20:55:29 +00:00
andres.delikat 31d65725bd Atari - start game compatibility spreadsheet 2012-04-02 19:13:24 +00:00
andres.delikat f0e4db8023 Atari - implement mapper CV (untested) 2012-04-02 17:13:38 +00:00
andres.delikat 5d28f8727a Atari - implement UA mapper (untested) 2012-04-02 16:58:04 +00:00
andres.delikat aed58c67e4 oops 2012-04-02 16:52:53 +00:00
andres.delikat 8ed2b8acbc Atari - F0 Mapper implemented (probably, needs testing) 2012-04-02 16:51:41 +00:00
andres.delikat c22c6ec4ce Atari - implmeent mapper E7, probably, hasn't been tested 2012-04-02 16:30:55 +00:00
zeromus 0e8b3605fa 2600-fix mapper FA? 2012-04-02 03:02:49 +00:00
adelikat 73b55dbf2e Atari mappers - Fix E0, add aux ram to FA but incorrectly most likely 2012-04-02 02:53:43 +00:00
adelikat a8de23fb79 Atari - mappers FA and E0 started 2012-04-02 01:54:51 +00:00
adelikat a22a2fa3dc Atari - implement mapper F4 2012-04-01 21:00:32 +00:00
zeromus eb13c505d6 nes-fix mapper 2 which broke a few revisions ago 2012-04-01 15:41:51 +00:00
adelikat 28effcba8c Atari - go ahead and hook up empty mappers for all 20 mappers 2012-03-31 20:53:14 +00:00
adelikat 7e30f2844f Atri - implement mapper F6 2012-03-31 20:32:40 +00:00
zeromus 79782defbe nes-dont crash when vrc mapper asks for unusual irq mode 2012-03-31 15:37:53 +00:00
andres.delikat 724fe704fc Atari - hook up console select and reset buttons to config file. Still TODO: add to input config dialog, modify mnemonics 2012-03-30 16:40:52 +00:00
zeromus d55744e86f add serializer sync method to make a2600 core compile 2012-03-30 02:37:17 +00:00
pjgat09 74594b961b Added SyncState functions to the M6532 and TIA. 2012-03-30 02:34:47 +00:00
zeromus 6fc4ff01c5 a2600-add mapper system 2012-03-30 00:35:15 +00:00
zeromus 37d58f1a4f add a2600 game database 2012-03-29 23:55:10 +00:00
adelikat 81f0f031f3 Coleco - very minor mostly useless changes 2012-03-25 17:39:50 +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
adelikat 6b9024dd5c Start colecohawk (skeleton) 2012-03-25 01:33:05 +00:00
zeromus 0cf6b0bcb7 switch atari 2600 to new 6502 core 2012-03-24 03:45:47 +00:00
adelikat bbf282e131 Atari - implement lag counter, refactor implementation of frame counter slightly, add frame and lag counters to savestates 2012-03-23 02:55:46 +00:00
pjgat09 e708527168 TIA: Implemented missile copying. Also added the missile 1 size which was missing before. 2012-03-22 22:01:20 +00:00
zeromus fa25305d67 atari-add player 2 controls? 2012-03-22 06:33:28 +00:00
zeromus dc2107bd3b nes-make fake boards for almost every mapper, unless i missed one. 2012-03-22 06:20:10 +00:00
pjgat09 a56ddcdb15 Atari 2600: Modified how memory read/writes are handled, to better emulate the address bus. Cleaned up some comments. Turned off CPU debugging. Added functions to read console switches and player 2 buttons.
M6532: Mostly re-written, this time based on the datasheet. 
TIA: Removed console debug outputs.
2012-03-21 20:28:26 +00:00
adelikat f4bd799484 Atari - hook up main ram memory domain 2012-03-21 02:57:26 +00:00
pjgat09 5b5932696d M6532: Added a dedicated cycle count variable to fix a timer issue.
TIA: Increment the M6532 cycle count when in wsync.
2012-03-21 01:02:24 +00:00
pjgat09 5e65c7e977 TIA: Removed code for cosmic ark starfield (to be added back later, in a cleaner way). Changed the definition of a frame to start with the first scanline where VSYNC is disabled.
MOS6507: Fixed a copy-paste mistake with SBC instructions where it would remove another cycle. This fixes the screen bounce issue with pitfall.
2012-03-20 22:45:15 +00:00
zeromus 0131b23501 nes-fix a pretty gnarly regression from earlier today 2012-03-18 21:46:56 +00:00
zeromus 1c7fdf7529 nes-pass 10-even_odd_timing and 05-nmi_timing 2012-03-18 18:41:45 +00:00
zeromus a4cf363904 nes-fix bug in mmc5 (fixes mmc5exram test) and add support for ex1 mode (fixes gemfire) 2012-03-18 09:05:40 +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 5883401ab1 nes-load formerly unloadable tests 2012-03-18 03:18:04 +00:00
pjgat09 63ceeff646 TIA: Fixed a typo breaking ball collisions 2012-03-17 03:28:50 +00:00
pjgat09 b95b3d5a5f TIA: Added missile graphics. Attempted to make hmove show cosmic ark's starfield correctly, with some luck. Still not correct though. Added collisions. 2012-03-17 03:10:49 +00:00
pjgat09 8afd24a305 New TIA: Moved counter increase into playerdata struct to limit repeated code. Implemented stretched player graphics. Implemented ball graphics (with hmove). Moved hmove data into a struct for better organization. 2012-03-16 18:05:16 +00:00
pjgat09 40ca3e1616 Atari 2600: Turned off sound output until the new TIA is further developed.
New TIA: Implemented a portion of the TIA using counters. Pitfall's first screen renders correctly.
2012-03-16 07:24:00 +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
pjgat09 ef28378dcd Atari 2600: added stub for the new TIA 2012-03-15 21:08:53 +00:00
pjgat09 d80abfaba5 Atari 2600: renamed TIA to oldTIA in preparation for a new TIA revision 2012-03-15 21:08:00 +00:00
zeromus 20a242c27e sync mos6502 from my last core generator checkin 2012-03-15 20:40:50 +00:00
pjgat09 2d94018eaa Atari 2600: Sketchy implementation of audio output (mode 0x01 only) 2012-03-15 20:34:14 +00:00
zeromus 516735d3b6 nes-add some catch-all mappers 2012-03-15 19:17:54 +00:00
pjgat09 10365ef970 Atari 2600: Implemented the reset button 2012-03-15 06:09:10 +00:00
pjgat09 a55bdd1a69 TIA: Implemented player copy mode 0x06
M6532: Added an interrupt register
2012-03-14 21:57:10 +00:00
zeromus 3c267db54c add reset button to atari 2600 and add .a26 to multiclient filetypes list 2012-03-14 21:35:07 +00:00
pjgat09 e686660a7c TIA: Added score graphics. Added support for collisions, and added responses for some collisions. Added support for controller button input. Added another copying mode (0x01: 2 copies close). Fixed a color issue with Pacman. 2012-03-14 20:28:10 +00:00
pjgat09 32bc215c2e MOS6507: Hacked in BCD mode (borrowed from HuC6280). Pitfall's time counter now works correctly 2012-03-14 16:03:14 +00:00
adelikat 863f3fc4e5 fix an error in chr rom size for a CNROM game 2012-03-13 02:10:18 +00:00
pjgat09 b9a791ab30 Atari 2600: Added support to read UDLR from controller
M6532: Gives controller data to game program
TIA: Fixed player reflecting error
2012-03-12 21:16:38 +00:00
pjgat09 5e69d7503e TIA: Added blanking when HMOVE occurs.
Implemented playfield copying (fixes some Pacman display issues).
Added a document which discusses the inner workings of the TIA on a circuit level.
M6532: Added stubs for several registers, and changed the returns for some. Pitfall's first screen now renders correctly, and the copyright message scrolls.
2012-03-12 18:44:29 +00:00
peter e310e90d9f Conditionally compile Windows code, make Throttle class portable, and add dummy input/audio implementations for non-Windows
This is (almost, bar some local resource hacks) enough to start the
emulator on Linux/Mono, load a ROM and watch the demo (input and
audio don't work yet).
2012-03-12 04:44:34 +00:00
peter 0776d48b81 Add subwcrev.sh build script for non-Windows platforms 2012-03-12 04:44:10 +00:00
beirich ca47082737 fix some PCE savestate desyncs 2012-03-12 00:14:44 +00:00
adelikat 643c742266 PCE Core - fix SystemBus memory domain size 2012-03-11 19:16:04 +00:00
taotao54321 2f9a5212bc Added BG/OBJ display settings for SMS (not accessible yet) 2012-03-11 16:15:20 +00:00
taotao54321 575c44f470 Now setrenderplanes() works also for SuperGrafx. 2012-03-11 09:51:23 +00:00
pjgat09 c72eef1abc Atari 2600 TIA: added support for delayed graphics
sketchily implemented cloning, enough to get pitfall to render
2012-03-11 08:43:45 +00:00
pjgat09 23cb513188 MOS6507: adjusted for instructions with a variable cycle count 2012-03-11 07:08:48 +00:00
taotao54321 30b0dc6780 PCE: added settings to show/hide BG/OBJ for TurboGrafx (not for SuperGrafx)
Now setrenderplanes() works for TurboGrafx (not for SuperGrafx)
2012-03-11 06:50:46 +00:00
pjgat09 84a11eacdf Switched over to using the 6507 to allow for some modifications to the CPU
MOS6507: now executes instructions on the last cycle. This corrects a syncing issue with the TIA
TIA: added ball data, partially implemented HMOVE, implemented VBLANK
2012-03-11 03:22:44 +00:00
beirich bc2e7995cc clone 6502 into 6507 2012-03-11 03:09:43 +00:00
taotao54321 c6fcda4418 6502 disassembler: print the destination address of branch, not the offset 2012-03-10 19:10:12 +00:00
pjgat09 3e67e78da2 Partially implemented player0 graphics, this time in a more organized fashion 2012-03-10 18:12:12 +00:00
zeromus ab2e19af32 nes-remove console spam 2012-03-10 17:59:02 +00:00
adelikat 67c98f7d37 Implement board AVE-74*161 2012-03-10 13:40:36 +00:00
adelikat efd4c5cbab Make...a certain game...work 2012-03-10 13:30:39 +00:00
pjgat09 8a73d50e0b Basic implementation of player 0 graphics 2012-03-10 08:34:04 +00:00
zeromus 5493904312 new-fix a recently created ppu bug affecting some vertical scrolling 2012-03-10 05:30:53 +00:00
zeromus c3ba1905ca straighten out mappers 232 and 71 2012-03-10 05:02:17 +00:00
pjgat09 0079d6ade5 Modified the TIA to be cycle based. Improved the rendering of pitfall in the process. 2012-03-10 04:53:23 +00:00
pjgat09 781ab15e1e Partially implemented the M6532's timer capabilities
Sketchy implementation of the TIA. But hey, it kind of renders pitfall!
2012-03-10 00:26:54 +00:00
adelikat 5195453229 Update versioning stuff and about box, and set interim flag back (I seem to keep checking that in on accident). This marks the beginning of 1.0.2. 2012-03-09 23:33:56 +00:00
adelikat 3a6ac596bf Add some atari mapper documentation 2012-03-09 19:35:49 +00:00
zeromus 78c13395a2 nes-note that mapper 192 is impossible to emulate at the present due to lack of test cases 2012-03-09 05:06:57 +00:00
zeromus edebf0da14 nes-"support" mapper 191 (no known test cases) 2012-03-09 04:57:46 +00:00
zeromus b65438d819 nes-support mapper 189 2012-03-09 04:44:30 +00:00
zeromus cf5dcb1cd5 nes-support mapper 182 2012-03-09 04:30:46 +00:00
zeromus f592fc3748 nes-support mapper 115 2012-03-09 04:15:56 +00:00
adelikat 7d308da245 Mapper 46 complete. 2012-03-09 03:38:11 +00:00
adelikat f9e43cf3d7 Mapper 46 - fix gamedb entry, put in high bits 2012-03-09 03:24:05 +00:00
adelikat 5655262df6 Start Mapper 46, could not get the gamedb.txt entry to work properly 2012-03-09 02:57:04 +00:00
taotao54321 9ab33cba8b 6502: partially implemented unofficial NOPs for "Puzznic (U)", "Puzznic (J)".
It is quite insufficient, but at least, we have to increment program counter appropriately.
For immediate addressing mode, it will be correct. For other addressing modes, I don't know whether they access memory, so further investigation will be needed.
2012-03-08 16:48:36 +00:00
taotao54321 26ff1a1bc5 cosmetics (indent for BRK opcode) 2012-03-08 15:33:52 +00:00
pjgat09 405af35d72 Started work on Atari 2600 core. Added stubs for the TIA and M6532 to be filled in later. Memory map is hard coded, but will only work for basic 4K carts like pitfall. That'll have to be changed later. 2012-03-08 08:12:44 +00:00
zeromus 137522691c nes-fix an old crusty wart of a scroll timing bug that grew while ppu was getting ported from fceux 2012-03-08 07:50:16 +00:00
zeromus e973533b48 nes-change oam dma cycles to 513 2012-03-08 04:49:19 +00:00
zeromus 1b91aa6bca nes-fix bug in xml parsing which made games with multiple carts (unusual) not detect subsequent carts 2012-03-08 04:48:14 +00:00
zeromus 9a6d6a63bd improve nes rom detection log, and set svn:executable on some files 2012-03-07 19:14:15 +00:00
pjgat09 0f92deb140 Added an atari docs folder 2012-03-07 00:55:09 +00:00
zeromus c0ace9ce83 add a2600 core stub 2012-03-07 00:40:20 +00:00
zeromus 2278cfcccb nes-fix $2007 access while rendering (young indiana jones) 2012-03-06 19:19:56 +00:00
adelikat 9d39b88783 Some testing results of Mapper 16 2012-03-06 13:33:50 +00:00
adelikat 3a48e91496 Mapper 82 is complete as well 2012-03-06 12:14:52 +00:00
zeromus 9d6001691f nes-fix gauntlet 2012-03-06 09:55:57 +00:00
zeromus ed9de010c0 nes-add some crappy mmc3 multicart mappers 2012-03-06 09:42:11 +00:00
zeromus 8e829faa03 nes-restore some more verbose detection logging that had got lost at some point 2012-03-06 08:01:48 +00:00
zeromus 7d263c9a10 nes-support 8KB PRG roms 2012-03-06 07:51:41 +00:00
brandman211 e7e8402af0 -Made the GUID for ImportVBM uniform with the other cases.
--Because there are way more bytes used to represent the other GUIDs than this one, I just appended -0000-0000-0000-000000000000 to this per zeromus' request.
-Got rid of the hex part of the BytesToString function. We apparently have BizHawk.Util.BytesToHexString.
-Converted BytesToString to r.ReadStringFixedAscii, an extension method. I've determined that extension methods are cool and that I should use them more often.
2012-03-06 05:27:50 +00:00
adelikat ff86bc5101 Mapper 82 complete 2012-03-05 20:16:25 +00:00
adelikat 868bcc8502 Forgot to check this in 2012-03-05 18:23:18 +00:00
zeromus 1ac5ce1bfb nes-fix taito_x1_005 2012-03-05 18:21:17 +00:00
adelikat 5a76c282ac Start mapper 82 - PRG mapping working, needs chr mapping 2012-03-05 18:06:30 +00:00