adelikat
52918e9609
add PeekWord, PeekDWord, PokeWord, and PokeDWord to the memory domain object, don't know why we never did this before. Refactored watch.cs accordingly, todo: a bazillion other places
2013-09-21 14:32:37 +00:00
goyuken
0803adc32a
add a "BoardName" to IEmulator that an emulation core can use to return useful information about how the rom is being emulated. meant to be mostly for informative purposes; shouldn't rely on it for too much. implemented in GB and NES cores
2013-08-24 16:54:22 +00:00
zeromus
226622e339
renovate the firmware system. cores now have the ability to get firmware themselves, without needing to have files loaded or pass paths from the multiclient. users can select whatever firmware they want from the firmwares config dialog.
2013-08-10 01:17:06 +00:00
goyuken
3169968858
analog input support. this is bad code and should all be reverted as soon as possible.
...
binds (along with sensitivity, deadzone, flip customization) are not supported yet. to test out, try using the first two axes of dinput joystick #5 on N64 player #1
2013-07-18 16:18:17 +00:00
goyuken
9ef3100753
add sensible defaults to some CoreComms variables. should have no effect on bizhawk, but helps if you try to use a core in a different project
2013-07-12 21:26:57 +00:00
goyuken
7b7b95e95d
add a new field to IEmulator: bool BinarySaveStatesPreferred { get; }. a core should set it to true to indicate that it would prefer to save and load binary savestates (but both types must be supported). set to true on 7800, gb, dgb, gba, n64, snes, saturn cores, as they all create text savestates that are simply dumps of the binary savestate. for the moment, frontend does nothing with this new information.
2013-05-06 20:51:28 +00:00
zeromus
df99f36464
support bsnes xml files and super road blaster MSU-1 game
2013-04-24 22:09:11 +00:00
zeromus
45a671ce73
snes-add "always doublesize framebuffer" snes option which makes the logical output of the snes core always sized appropriately for sudden hires-width or interlacing
2013-04-22 22:34:18 +00:00
adelikat
1c33b92bf1
NES - separate first/last scanline settings for NTSC vs PAL (default of 8,231 NTSC and 0,239 for PAL)
2013-03-25 01:59:34 +00:00
zeromus
9cf0a3f30f
snes-add gui option for ring buffer mode. its unclear whether it speeds things up, but its possible that it might, and it was a lot of work, so here it is as a user option.
2013-01-18 05:06:26 +00:00
zeromus
8a69a4ebe0
switch snes core back to external process. more refined this time. support use of performance core.
2012-12-25 20:36:04 +00:00
zeromus
a4b442abda
unify coreinputcomm and coreoutputcomm. there is a slight chance your console will be messed up until i fix a teeny tiny something, since i didnt test them all, since with more recent cores i dunno what roms are working anyway. let me know if i broke anything.
2012-12-10 00:43:43 +00:00
goyuken
fa388ed149
av dump: support resizing everything to a single resolution. sorry about all the crap gumming up MainForm...
2012-11-26 02:25:23 +00:00
adelikat
5433bdacfd
Use coreoutputcomm for led light feature
2012-11-26 01:43:34 +00:00
goyuken
0094562d2a
per previous discussion, IEmulator.ResetFrameCounter() should reset lag frame related stuff as well
2012-11-25 15:41:40 +00:00
goyuken
d20970afa7
gba: correct tracelogger address for PC pipelining. note that the disassembly for some branch instructions shows up wrong, making this seem "wrong". but it's right, and the disassembly will be fixed...
...
core: tracelogger can now show a custom column header. GBA uses it; all other traceloggers untouched
2012-11-24 00:45:25 +00:00
zeromus
877b95e3d5
c64-hook up firmwares configuration. expected to be by default in C64/Firmwares output directory, named basic,chargen,kernal
2012-11-06 06:19:27 +00:00
zeromus
b4b2657965
some libmednahawk work. it can't possibly be used by anyone else yet, but i gotta do a checkin.
2012-11-04 23:29:06 +00:00
adelikat
1d4a8fd3ba
Atari 2600 - add a Playfield toggle
2012-10-30 23:38:53 +00:00
adelikat
f9c027ddad
Add front end and corecomm values for Atari graphics object display toggling
2012-10-30 00:18:56 +00:00
goyuken
e6058e6bd8
break some stuff. FDS can eject and insert disk sides now
2012-10-26 18:51:08 +00:00
goyuken
5661205bda
event.onmemoryread(function f) : f is now passed the address in question. similarly for onmemorywrite
2012-10-14 15:19:31 +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
99f6bbb8e4
a few more comments on the new sound stuff
2012-10-11 01:14:14 +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
goyuken
b545d79fb6
lua: add emu.on_snoop()
2012-10-06 13:34:04 +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
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
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
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
goyuken
1b54e3c061
change previous revision to use default value param
2012-09-20 20:00:14 +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
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
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
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
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
zeromus
9726b75ec4
snes-support layer toggles (needs gui hookups)
2012-09-04 19:12:16 +00:00
zeromus
f5c0965045
snes-support save ram
2012-09-04 07:09:00 +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
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
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
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
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
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
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
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