zeromus
de85a6fdef
gpgx - handle virtualwidth/virtualheight more modernly and add option to pad screen out to prevent window resizes
2015-09-17 16:49:30 -05:00
adelikat
ba21484ddd
add IRegionable as an emulator service to indicate NTSC vs PAL, etc. Refactor cores that conveyed this information to use this service, fixed cheaty reflection to grab this info to use the service instead, marked some cores as region not applicable where it made sense to me (I'm sure I'm wrong in some cases)
2015-08-05 20:12:09 -04:00
nattthebear
5bae8df811
Fix Seger CD with disk system changes
2015-07-17 17:20:05 -04:00
zeromus
a7ae3c0cfc
Merge branch 'discsys'
...
Conflicts:
BizHawk.Emulation.Cores/BizHawk.Emulation.Cores.csproj
BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGXDynamic.cs
libmupen64plus/mupen64plus-win32-deps
2015-07-11 14:01:44 -05:00
zeromus
cc31331bc0
refactor discstructure mightily
2015-07-11 13:46:55 -05:00
zeromus
6dcaa3ca04
apply major discsystem refactorings to emulator cores and client. lots of undone things, most notably generalized RawTOCEntries -> TOCRaw -> Structure synthesis outside of the individual format/api disc loaders. IOW there's no DiscStructure right now. Probably lots of bugs too.
2015-07-11 13:46:36 -05:00
adelikat
3541c9e975
Make the lag counter settable, and expose this functionality in lua
2015-07-09 13:05:30 -04:00
adelikat
0a6fb3dce2
remove the GPGX trace logger since it isn't wired up and we don't want it to display if it doesn't work
2015-07-05 09:13:44 -04:00
nattthebear
98ad258966
fix dll paths in GPGXDynamic.cs
2015-06-25 17:24:19 -04:00
zeromus
f75b06ce75
dont use gpgxdynamic for genesis games til its done
2015-06-25 14:14:42 -05:00
nattthebear
77d3369d26
Some stuff for loading elves. Not yet all finished.
2015-06-23 21:35:34 -04:00
adelikat
5bcdfb5991
IInputPollable - remove the set on LagCount as it is not needed
2015-06-11 01:23:14 +00:00
goyuken
adc3e96ca8
iemulator single instance attribute. to find out about: PSX, Apple2
2015-03-03 00:23:50 +00:00
adelikat
36f4eff0f6
add ByteSize to MemoryDomain with a default of 1, set it to not 1 on appropriate domains (I probably missed some, or got some wrong). Have RamSearch use that instead of SystemInfo, remove ByteSize from SystemInfo since it is no longer needed
2015-02-22 15:19:38 +00:00
adelikat
ac442130ae
Refactor IMemoryDomains and MemoryDomains to have setters for MainMemory and SystemBus, so a core can customize instead of using a one size fits all assumption. Remove constructor that sets main memory and refactor accordingly
2015-01-24 16:02:28 +00:00
goyuken
af451143bf
a bit of memory domain cleanup
2015-01-21 17:36:22 +00:00
adelikat
91ffc17aae
Refacotor MemoryDomain.Size to be long instead of int, still some small todos, but it compiles and seems to work
2015-01-18 15:25:47 +00:00
goyuken
82fcd0bc5e
refactor IVideoProvider into a service. uses in mainform and friends are still hacky
2015-01-14 22:37:37 +00:00
adelikat
fbdb29b64c
refactor IMemorydomains to be a domain list instead of having a domain property, refactor cores to register an IMemoryDomains instead of being one
2015-01-14 21:55:48 +00:00
adelikat
d62ba4e2b4
Change IMemoryDomains to have an IMemoryDomainList instead of a MemoryDomainList, this is an incremental step into eventually having IMemoryDomains take over the properties of IMemoryDomainList, still todo: reduce the amount of needed functionality in IMemoryDomainList from old and not good code
2015-01-13 22:18:07 +00:00
adelikat
0f2197cec1
Break off ITracer from IDebuggable, rename to ITraceable and make it an IEmulatorService, refactor things accordingly
2014-12-23 01:58:12 +00:00
adelikat
ffdeb618f7
IDebugable - add a CanStep() method, and implement it in all IDebuggable implementations
2014-12-20 13:29:57 +00:00
adelikat
a8116297a0
Rename Register to RegisterValue
2014-12-20 13:16:15 +00:00
goyuken
0c1e3eaa3b
gpgx: fix regs
2014-12-20 03:48:01 +00:00
adelikat
7bebb66589
IDebuggable - refactor GetCpuFlagsAndRegisters to be IDictionary<string, Register> where Register is a value and a bitsize
2014-12-20 03:19:33 +00:00
goyuken
f7cf7e1176
genesis, saturnus - dispose of CD
2014-12-19 21:53:43 +00:00
adelikat
d08fb39cb8
Refactor IDebuggable StepInto/Over/Out methods into void Step(StepType type);
2014-12-15 22:19:10 +00:00
adelikat
725a8fb092
Add StepInto(), StepOver(), StepOut() to IDebuggable, have all cores implement it with unimplemented dummy functions
2014-12-14 18:58:16 +00:00
adelikat
08fb509a1a
Add an IDriveLight Emulator service, and remove the CoreComm properties, and refactor accordingly
2014-12-12 01:49:54 +00:00
adelikat
2d1a43dc65
MemoryCallbackSystem - simplify by having a single Add method with a MemoryCallbackType parameter, and some simplifying of client code as a result
2014-12-07 18:53:56 +00:00
goyuken
92de864fab
gpgx: cleanup
2014-12-05 02:31:36 +00:00
adelikat
0b84beec88
Move MemoryCallbackSystem from CoreComm to IDebuggable and refactor accordingly, Lua - tell the user when memory callbacks are not available for a given core
2014-12-05 01:56:45 +00:00
adelikat
309088211c
Move TraceBuffer from CoreComm to IDebugable and refactor accordingly
2014-12-05 00:05:40 +00:00
zeromus
29b217b587
big discsystem refactors and preliminary CCD handling. not to be considered stable, but ill start supporting it.
2014-12-04 05:40:10 +00:00
adelikat
d8a204572d
Add an IServiceProvider interface and make it a property of IEmulator, the purpose of this provider is to provide IEmulatorServices upon request. Make BasicServiceProvider and have all cores use it for now. BasicServiceProvider will return the core itself if the core itself is the requested type. He will also be able to return nested types (code not finished). Wired this up to the HasSavestates extension method (a method that has minimal value now) as a proof of concept.
2014-12-04 03:38:30 +00:00
goyuken
ef1ef251b6
gpgx: remove input todo
2014-12-04 03:31:26 +00:00
adelikat
a07263c04e
Move InputCallbackSystem from CoreComm to IInputPollable, and refactor all cores accordingly. Lua - OnInputPoll() - log to the user when attemping to add a callback of this type to a core that has not implemented input callbacks. Mark all unmanaged cores' implementations of the InputCallbackSystem as FeatureNotImpleented, won't have any effect on functionality, but will help us keep track of the fact that they still have a bit of work to do. Still todo: ActiveChanged event handler on the base implementation of IInputCallbackSystem
2014-12-04 00:43:12 +00:00
adelikat
a83d714c42
Break off IsLagFrame and LagCount from IEmulator and put into its own interface IInputPollable, and refactor cores as necessary. EmuHawk - account for the possibility that a core is not an IInputPollable, and do things like disable the lag counter menu item. Still some front end todos. Also still todo, move the InputCallbackSystem from CoreComm to IInputPollable
2014-11-30 20:29:30 +00:00
adelikat
76148ae111
Break off savestate functionality from IEmulator into IStatable and refactor things accordingly. Still todo (a big todo): EmuHawk should gracefully handle a core that is not an IStatable by disabling functionality dependent upon it (Savestates, Rewind, Tastudio, etc)
2014-11-30 16:42:58 +00:00
adelikat
865795049b
Break off saveram methods from IEmulator into a separate ISaveRam interface. Remove the setter for SaveRamModified (every single core was throwing an error on this, and no client code was using it). Remove these methods from cores that don't actually implement this interface
2014-11-30 15:22:08 +00:00
adelikat
0e82fff3ff
Clean out ClearSaveRam() calls since they are no longer used
2014-11-24 15:00:54 +00:00
adelikat
9c285e3e3a
Put NotImplemented attribute on a bunch of things, and remove IMemoryDomains from a few cores that were implementing it but throwing a NotImplementedException
2014-11-24 01:17:05 +00:00
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
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
0e12d5cdc3
pretty up Genesis setting display names
2014-07-20 00:26:42 +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
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
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
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
adelikat
3917e7c528
Automate the about box
2014-06-01 01:57:22 +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
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
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
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
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
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
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
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
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
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