Commit Graph

284 Commits

Author SHA1 Message Date
adelikat 1832894405 IDebuggable - GetCpuFlagsAndRegisters() - refactor to make it an IDictionary instead of Dictionary 2014-11-23 16:22:02 +00:00
goyuken dc2ca1f010 remove the extra ISettable (non-generic argument) interface and corresponding crud from cores, and replace with a shim class 2014-10-31 15:46:13 +00:00
jlennox a64017366c Create ISettable<T,T2>/ISettable interfaces. This checkin has not been extensively tested. 2014-10-19 01:22:47 +00:00
jlennox 10b6bed056 Add IDebuggable to relevant cores and remove non-implementations of GetCpuFlagsAndRegisters/SetCpuRegister 2014-10-18 22:30:06 +00:00
goyuken 9c30cea1dd fix issue 277 2014-10-07 22:20:17 +00:00
goyuken f9baa5e8e4 genesis: change initial frame 0 size of video display 2014-09-22 19:35:00 +00:00
goyuken 0d69b77507 issue 270 2014-09-22 14:24:11 +00:00
goyuken 489d69d20c genesis: make the vram memory domain properly invalidate the tile cache and the vdp viewer properly regenerate the tile cache. may or may not fix issue 265. 2014-09-19 23:56:08 +00:00
goyuken 184b4dcba9 change some cores to use filedata instead of romdata. NES handles headers internally, and others shouldn't ever have headers. 2014-09-12 15:39:04 +00:00
goyuken 93eb656eba gpgx: account for the fact that rom and ram are emulated with 16 bit swaps 2014-09-08 14:50:36 +00:00
adelikat 5ba74c631c Remove MemoryDomains from IEmulator into a new Interface, IMemoryDomains, Add this interface to existing cores, except null emulator (and removed memory domain related code from it). Refactored EmuHawk for ram tools to use an instance of IMemoryDomains rather than IEmulator, don't expose ram tools unless the core implements IMemoryDomains. Still a few misc todos, and probably some cleanup 2014-09-01 18:43:41 +00:00
goyuken 79b741b869 sms: use standard message when bios is required but not supplied 2014-08-25 00:14:14 +00:00
goyuken 0e37b01a88 polish up r7867 slightly 2014-08-23 19:16:47 +00:00
goyuken 1d383a62cc romloader stuffs, nag me if it breaks anything, i don't think it breaks anything 2014-08-23 19:06:37 +00:00
goyuken ceae8d71b5 memory domain: minor refactor and cleanup 2014-08-15 21:21:17 +00:00
goyuken f0c8bd3842 IEmulator: clarify naming and implementations so it's clear that CloneSaveRam() always returns a clone that you can do whatever you want with (but won't modify the underlying) 2014-08-13 17:52:13 +00:00
goyuken 4deda7eb91 settings cleanup 2014-08-03 22:19:55 +00:00
adelikat 05c0f0d1d5 Saturn - ditto 2014-07-20 00:31:01 +00:00
adelikat 0e12d5cdc3 pretty up Genesis setting display names 2014-07-20 00:26:42 +00:00
goyuken fb133da0c5 fix some internal settings infrastructure 2014-07-14 16:10:45 +00:00
adelikat f5209ccfa2 Profile config - fix getting of sync settings from non-instantiated cores 2014-07-14 11:48:28 +00:00
goyuken 0f6dbd5570 genesis: merge r874 from upstream (sprite corner-case fix) 2014-07-11 18:55:43 +00:00
goyuken e660937c46 genesis: layer draw toggles 2014-07-11 18:51:26 +00:00
goyuken 00d31f41e1 genesis: grab r859 and r872 from upstream 2014-07-05 01:54:19 +00:00
zeromus 9e1c678b4a TIMEUP! fix GPGX core revision metadata from r580 to r850 which is the actually correct value 2014-07-05 01:17:11 +00:00
goyuken 60e47b6514 genesis: fix mouse analog range 2014-07-04 00:18:50 +00:00
adelikat 1c0eca190e Remove some unused extensions, Remove Extensions.cs and move methods into better named files with their own namespaces 2014-07-03 18:54:53 +00:00
adelikat 6cba3568ef More extension reorg 2014-07-03 17:23:03 +00:00
adelikat 47514784eb Separate stream and writer extensions to an IOExtensions object and namespace 2014-07-03 17:13:09 +00:00
adelikat 467f8da2fb Convert StringHelpers into extension methods, and merge into StringExtensions, change namespace of string extensions 2014-07-03 15:05:02 +00:00
adelikat 1f7a79d4ea Saturn - reorder buttons 2014-06-29 13:20:30 +00:00
goyuken f0d846a0ba gpgx: support activator and xepp1ppxepxep1ppxep1pxepe1p1p1apexep`1p 2014-06-27 17:15:30 +00:00
goyuken 8b1735ce24 geneis: fix lightguns with variable screen resolutions 2014-06-27 02:55:14 +00:00
goyuken 142f893df8 genesis: menacer 2014-06-27 02:39:24 +00:00
adelikat 2f214dad71 Game Gear - fix typo in last commit of mine that caused Start to not work, and add default mappings for GG buttons 2014-06-27 02:24:18 +00:00
goyuken 3ab7610da3 genesis: fix settings snafu. make mouse work; seems to be minimally functional in nobunga's ambition 2014-06-27 02:22:23 +00:00
adelikat 179a5c3bb4 Different controller definition for Game Gear than SMS, since game gear is 1 player and has a start button and no pause button 2014-06-27 02:09:17 +00:00
goyuken 41d7302f25 better 2014-06-26 21:33:01 +00:00
goyuken ee0ca870ff gpgx: contrl infrastructure 2014-06-26 21:31:38 +00:00
goyuken e520b11552 ganasis: support memory callbacks (exec, read, write). writes and reads don't fire on a certain class of PC relative load\store which includes immediates but possibly other stuff and i didn't unravel it all... 2014-06-21 17:20:18 +00:00
zeromus 92f417dade fix crashing bugs in yabause+software 2014-06-09 19:19:12 +00:00
zeromus dbeaede567 fix yabause+gl crashes (loadstate can trigger GL work, context needed setting ahead of time) 2014-06-09 03:13:59 +00:00
zeromus 3ea6495031 give yabause its own GL context. gets gl+yabause minimally working. maybe still loadstate-related crashes. 2014-06-08 23:30:34 +00:00
adelikat 3917e7c528 Automate the about box 2014-06-01 01:57:22 +00:00
adelikat 8231025b91 System Info - Fix detection of GG and SG-1000 2014-05-31 23:17:39 +00:00
adelikat 1c0f8674c3 SetCpuRegister() - don't cast PC reg to byte! Implement on SMS, Coleco, and TI-83 2014-05-31 18:25:36 +00:00
adelikat 51660dd023 Add SetCpuRegister() to IEmulator. Implemented it in Atari 2600, 7800, C64, Neshawk, and technically dual gameboy (passes it to L and R where it will fail). The rest throw NotImplementedExceptions. Lua - add emu.setregister(), catches NotImplementedExceptions and informs the user. 2014-05-31 17:03:21 +00:00
goyuken d24658888b saturn: expose skip bios and RTC options as syncsettings 2014-05-28 17:31:22 +00:00
goyuken 79349aeb39 gpgx: recover from early onset alzheimer 2014-05-28 03:35:21 +00:00
goyuken bafd4ae62e gpgx: pop up an annoyabox when CD firmware is missing 2014-05-28 03:27:49 +00:00
goyuken 912387fdef gpgx - support debug showing cpu flags and registers 2014-05-04 17:41:20 +00:00
goyuken b0970451aa internal infrastructure for video presentation changes (aspect ratio, apparent size, etc) 2014-04-30 23:48:37 +00:00
zeromus 49d8f6c5b9 remove savestate loading hacks for movie header skipping 2014-04-25 02:21:45 +00:00
adelikat de1cb218a6 Add more info to IEmulator CoreAttributes, add status bar icon that gives the name of the current core with a tooltip with additional info, put bizhawk icon on "in house" cores, and the icon of the ported emulator on ported cores. Still todo: icons for ported cores other than quicknes 2014-04-25 01:19:57 +00:00
adelikat c74019a54d Add a CoreAttributes class with a CoreName field, and apply it to all cores, when recording a new movie, add a core header line that captures this name 2014-04-22 00:38:59 +00:00
adelikat a61ff53d9c Change IEmulator.GetCpuFlagsAndRegisters() to a Dictionary, fix a warning, throw NotImplemented exceptions in cores that don't implement this method rather than returning an empty list. Start Debugger UI User Controls 2014-04-19 22:23:13 +00:00
beirich 6ca5768a31 SMS/Coleco, refactor to remove PostLoadState() calls 2014-04-07 03:09:44 +00:00
beirich 13ebf95362 SMS: fix a nullptrexception on Auto region setting and game not in DB. Fix logical error with YM2413 disable setting and game not in db. 2014-03-25 02:12:42 +00:00
beirich e291b3d5fa SMS: Implement option for Auto Region (export/japan) and Auto Display type (NTSC/PAL) 2014-03-22 05:57:27 +00:00
beirich 77857f0e51 Convert SMS, Coleco, and TI83 to zeromus Serializer-class savestates 2014-03-22 04:46:01 +00:00
beirich 3153587eb3 SMS: fix GG Region detection 2014-03-20 04:19:38 +00:00
beirich c179fd5fd6 Add OSD message notifier to CoreComm 2014-03-18 03:03:53 +00:00
beirich c825720d33 SMS: Fix Ernie Els Golf GG (has on-cart volatile ram) 2014-03-18 02:23:10 +00:00
beirich 3b66e61c82 SMS: improve rendering accuracy of left-column blanking. I have to say I never thought that would be a thing that needed improved rendering. Also fix issue with when Sprite Overflow fires. 2014-03-18 00:50:08 +00:00
beirich cbc4d925be SMS: apply previous sprite fixes to doublesize renderer 2014-03-17 11:51:00 +00:00
beirich 227007c07d SMS: rework sprite render code, passing several additional VDP tests, and also fixing Fantastic Dizzy. 2014-03-17 05:05:57 +00:00
beirich eeeb71dfe0 SMS: implement VDP/PSG IO port mirroring. passes some additional VDP tests 2014-03-17 03:56:42 +00:00
beirich 8b844bff34 SMS: lots of gamedb things. And initial terebi oekaki mapper emulation; mouse interface still missing. GG gamedb still in flux but, commit before this commit gets any bigger 2014-03-17 03:00:07 +00:00
beirich 8496f71812 SMS: Korean mappers work. Fixes Cyborg Z, Dodgeball King, F1 Spirit, Jang Pang III, Knightmare II, Nemesis, Nemesis 2, Penguin Adventure, Sangokushi 3, Street Master, Wonsiin 2014-03-14 04:30:01 +00:00
beirich b1a37724a1 SMS: hook up Export/Japan, NTSC/PAL, BIOS Enable, and US/JP Bios selection 2014-03-13 04:49:39 +00:00
beirich 8daab82463 SMS: Add Export/Japan, NTSC/PAL, Enable BIOS options to SMS menu. Not yet hooked up to core. 2014-03-13 04:15:05 +00:00
beirich 7e77c5a116 SMS: Add "external cart ram" mapper for SG1000, fixes The Castle and Othello. Fortunately, both games are somewhat interesting and playable. SG1000 compat now 100% minus games requiring exotic peripherals 2014-03-06 04:43:36 +00:00
beirich d2d6d00938 SMS: Import improved TMS-mode sprite render code from Colecovision core, fixes Bank Panic (SG1000) intro screen at least 2014-03-06 00:52:27 +00:00
goyuken 4e70f1d6a5 util: eliminate some out of memory problems with hashing large files
gpgx: warn and abort when a too-big file tries to be loaded as a ROM (probably was actually a .bin cd image without the correct .cue)
2014-03-05 18:16:34 +00:00
beirich 60147ffbab SMS: quickfix, only load SMS BIOS on SMS games (not Game Gear or SG1000) 2014-03-05 12:49:27 +00:00
beirich 9a59155177 SMS: initial support for SMS BIOSes. Some future work is pending regarding when to use what bios or no bios. (hooray regions) 2014-03-05 05:09:20 +00:00
beirich d328fd0479 SMS: add option to make 3d games playable. some are actually interesting. sega does what nintendont 2014-03-05 02:20:22 +00:00
beirich e4e04e7b9d SMS: Sprite Limit and Force Stereo Separation no longer require core reboot 2014-02-27 00:28:05 +00:00
goyuken 7a9eb9f6cb change some memory domains to exception out on out of range access instead of silent masking 2014-02-26 20:18:48 +00:00
goyuken d7371fcf42 saturnus: support 8mbit/32mbit dram cart as a syncsetting. this inflates your savestate size heavily, of course... 2014-02-23 17:06:24 +00:00
goyuken 3d7a0e445b gpgx: clean up 32bpp code (no functional changes) 2014-02-21 17:07:09 +00:00
goyuken 9d0e22292d GPGX: show "PAL" flag properly in movie files 2014-02-21 00:30:52 +00:00
goyuken c14e4239c4 Genesis VDP display. But not as slick as http://www.youtube.com/watch?v=Tsr-XtuKuSw 2014-02-19 22:26:33 +00:00
goyuken 4174751212 SMS VDP Viewer: correct BG size for 192 line mode 2014-02-13 19:10:39 +00:00
beirich 2dc01eab33 pasky better do something cool with this to warrant janking up my HuC6280 core 2014-02-08 20:18:36 +00:00
goyuken 0f37d63a90 GPGX: fix controller regression caused by r6007 2014-02-05 16:00:50 +00:00
goyuken e76b71b72f megadrive: core side stuff for loading a cart + CD at once (not hooked up in frontend) 2014-02-04 22:29:40 +00:00
goyuken 343fbc7ae4 genesis: big savestate rework. all old savestates are invalid. saveram is now stored in savestate. non-megaCD savestates should be significantly smaller than before; megaCD savestates should be slightly larger. 2014-02-03 18:07:21 +00:00
goyuken 7a22757ca8 gpgx minor code cleanup 2014-02-02 02:05:36 +00:00
sappharad cae7e7fc98 Converted GPGX Analog Controls to 1D 2014-02-02 01:35:03 +00:00
beirich 4f65c621e5 SMS: maybe fix some desyncs. needs retest by someone that can make it fail 2014-01-31 03:50:38 +00:00
adelikat 7393f132ab Move CPUs from Emulation.Common to Emulation.Cores 2014-01-22 01:14:36 +00:00
goyuken a54119db03 gpgx: support region override 2014-01-15 00:56:13 +00:00
adelikat 913760289d GPGX - mask memory domains because tools depend on this behavior in domains 2014-01-04 16:30:26 +00:00
goyuken e832951831 saturn: support the DRIVE LIGHT. the DRIVE LIGHT LIGHTS UP whenever the CD is being READ for any reason. the DRIVE LIGHT DOES NOT LIGHT UP whenever the CD is stopped, seeking, or smoking. 2013-12-30 20:44:38 +00:00
goyuken 8f5413643b GPGX: support the DRIVE LIGHT. the DRIVE LIGHT LIGHTS UP whenever the CD is reading data. the DRIVE LIGHT DOES NOT LIGHT UP when there's no CD in, or the CD is seeking or parked, or the CD is reading audio. 2013-12-30 20:36:51 +00:00
goyuken e3165459d8 saturn to new settings system 2013-12-27 03:02:28 +00:00
goyuken bdfbafdfca SMS: support new settings infrastructure. this adds enableFM and allowOverclock as sync relevant settings for movie files (but of course, they won't end up in Movie 1.0 files) 2013-12-24 01:06:17 +00:00
goyuken 4a963bc3b0 gpgx: informative fail if an attempted controller isn't supported 2013-12-23 23:20:40 +00:00
goyuken 916e0029c4 GPGX: support new settings system. this means you can now connect all manner of weird arse controllers, but some aren't implemented in other places yet. 2013-12-23 23:03:12 +00:00
goyuken d37796ab1c more new core config framework; this time GAEMBOY 2013-12-23 02:51:41 +00:00
adelikat 2448ad0dda Wire up the Genesis Game Genie Encoder/Decoder to the GPGX core, but disable it since it doesn't seem to work right now 2013-12-22 20:25:43 +00:00
goyuken bd205f47dc update our newtonsoft json.net to version 5.0 release 8. this fixes up abstract class handling so that the CoreSettings can work correctly.
tweak Binding, RecentFiles, and PathEntry to work with the new serializer.  on updating to this revision, you should be able to keep all config.ini settings except for hotkey bindings, path layouts, and recent files list.
start implementation of new CoreSettings and CoreSyncSettings.  at the moment, it's only partially done for NES.
2013-12-22 00:44:39 +00:00
goyuken 0c6e34b9da gpgx: lag flag and on_snoop() 2013-12-21 17:49:32 +00:00
goyuken 6318a3fb26 gpgx extra mammry domains 2013-12-21 04:03:03 +00:00
goyuken cc23c120c0 gpgx: fix some problems with save+loadstate and different screen sizees.
note: delete all previous gpgx savestates
2013-12-20 21:21:21 +00:00
goyuken 253ba4ccda gpgx: add "Reset" and "Power" buttons 2013-12-20 19:32:12 +00:00
goyuken e2a9932249 more r5632 2013-12-20 17:58:40 +00:00
goyuken f5c69f279c slap some comments on the memory scanning thing that i committed yesterday 2013-12-20 16:41:21 +00:00
goyuken 1f4ff7b1ce i don't want to talk about it 2013-12-20 05:38:07 +00:00
goyuken c2cc80ee12 THROUGH THE DARK TO THE LIGHT
ON A SUPERSONIC FLIGHT
GOTTA KEEP IT GOING
(note: delete all gpgx savestates from previous revisions)
2013-12-20 00:51:48 +00:00
goyuken 3e389a93b0 gpgx memory domains 2013-12-19 03:33:53 +00:00
goyuken 11638d3b59 gpgx: fix 2013-12-18 02:19:00 +00:00
goyuken a2d066ec21 gpgx: frame -1 video size is now correct 2013-12-18 02:16:17 +00:00
goyuken 8944552c34 fix problem when immediately loading another genesis game with one open trashes the sram 2013-12-18 02:12:21 +00:00
goyuken adc3df41bd gpgx: when in cartridge mode, sram is fully supported. when in cd mode, 8K internal bupram + 128K external bupram is supported. this all works and has been tested with a few games. sram files from previous revision won't work. 2013-12-18 01:58:18 +00:00
adelikat 3602233069 Hook up mnemonics for GPGX, in v1 movie system 2013-12-17 01:42:30 +00:00
goyuken 648c06c2bd sanic cd now runs, without cd audio. note that the sram format is subject to change at any time if i feel like it 2013-12-16 21:23:32 +00:00
goyuken 85be43dfb8 sega CD games now get as far as loading the bios 2013-12-16 19:00:05 +00:00
goyuken 61f31967b3 some sega firmwareids 2013-12-16 18:20:47 +00:00
goyuken d45faaa99c break stuff! 2013-12-16 18:04:45 +00:00
goyuken 5dbc9ef2d2 gpgx some firmware hookup stuff 2013-12-16 03:57:54 +00:00
goyuken 6e91ffe45f gpgx support text savestates 2013-12-16 03:39:47 +00:00
goyuken 4eaeb06986 gpgx: dispose bug 2013-12-16 03:29:41 +00:00
goyuken a6cbd85930 controls work and stuff now 2013-12-16 01:58:40 +00:00
goyuken a818710589 http://www.youtube.com/watch?v=V3w2saj52fI 2013-12-15 20:51:57 +00:00
goyuken 28d24ece1c woop 2013-12-11 04:03:06 +00:00
goyuken 8b186f6fa4 a bit of cleanup in speex resampler and yabooze core 2013-12-11 04:01:33 +00:00
goyuken e95d7b8cd7 fix the mess i made yesterday with IEmuLoadHelper (I did not know at the time, but it's 99% the same as the existing ICoreFileProvider) 2013-12-10 17:58:12 +00:00
goyuken 2a0217e06c refactor a bit of firmware loading code to get some slop out of MainForm.LoadRom() 2013-12-09 20:36:24 +00:00
goyuken 37852c3e63 add disk hash to saturn 2013-12-08 17:48:30 +00:00
adelikat 50d4a3307a Rip out UpdateControls() method from IController, also some code cleanup in related files 2013-12-07 00:53:06 +00:00
goyuken 5d4dc0630c saturn: support input callback stuffs 2013-11-17 02:10:38 +00:00
adelikat 7e45f13282 Change project name BizHawk.Emulation to BizHawk.Emulation.Cores 2013-11-15 14:05:47 +00:00