Commit Graph

68 Commits

Author SHA1 Message Date
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
beirich b599c69c18 Add VirtualWidth to IVideoProvider and the (numerous) implementations. This is just phase 1, client needs to be updated to utilize this information, and some cores (especially PCE) should be updated in a more involved way to provide better TV emulation. 2012-06-25 02:50:34 +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
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
zeromus fd6ac896fc general cleanup.. remove a bunch of warnings.. improve log console system a bit.. add new icons for log console window.. remove old demo psx interop system and add new, simpler one, which isnt really tested yet but is way less annoying. 2012-02-24 20:38:35 +00:00
beirich 647cae698e Max volume is settable per sound source to enable mixing many sound sources without clipping. Potentially can be used to disable individual sound sources. 2011-09-04 04:38:11 +00:00
andres.delikat d10f38af5d Remove autofire from IController & inherited objects other than Controller 2011-08-09 00:57:56 +00:00
andres.delikat 0d01af5c7b Refactor autofire, remove the autofire adaptor. Added an autofire bool to IController and implemented it in the Controller object. Setting to true will turn the controller buttons into autofire buttons 2011-08-08 23:35:13 +00:00
beirich 1000a3c26f delete some more dead code 2011-08-04 03:27:13 +00:00
beirich b27673f26c M-M-M-MONSTER COMMIT! change Game-load api stuff 2011-08-04 03:20:54 +00:00
beirich 6f379cee76 remove freeze system; replacement incoming 2011-08-03 02:13:42 +00:00
andres.delikat 2e68314e01 Movies that start from savestate now supported. Record Movie dialog "Record from Now" option implemented. ResetFrameCounter() added to IEmulator and implemented in all existing cores 2011-07-30 20:49:36 +00:00
andres.delikat bd71909f38 AVI cleanup - gray of menu items when appropriate, use default filename, and AVI Path config, add on screen messages, fix crash on Null emulator capture (snow is awesome yo), other misc things 2011-07-11 23:26:20 +00:00
zeromus 9628ab3506 hook up nes dump status stuff, and also add a log window that we could use for console output in the near future but for now is just used to show you a detailed rom analysis report 2011-07-10 21:00:28 +00:00
zeromus 0aa234282e phase 1 of fixing up controller logic. tell me how terribly ive broken the movie code. might want to fix it before moving on to phase 2 or decide to revert. 2011-06-27 05:31:46 +00:00
zeromus c0988feaa3 add CoreInputComm/CoreOutputComm, remove Query system, hook up nes video config options 2011-06-11 22:15:08 +00:00
zeromus 9ea6a0b7a8 fix various poorly constructed auxfile paths and paths with invalid characters 2011-06-07 21:10:30 +00:00
beirich 9283a9f37d IEmulator now implements IDisposable; client now disposes cores 2011-06-02 02:59:18 +00:00
andres.delikat 40379f898d Fixed NES mnemonic to match fm2. Fm2 files will now successfully playback. SMB TASes sync on bizhawk 2011-05-08 20:55:37 +00:00
andres.delikat a5bf181621 active controls should be set to a null emulator as an option too (this still doesn't fix the crash on load though as it never gets to the code that sets active controls because that is triggered by the loading of a ROM) 2011-05-08 13:43:53 +00:00
beirich 33c300ff7b good news: movies work! bad news: 1) movies don't work for TI83 yet 2) I broke some NES things, to be fixed in a later commit 2011-05-08 00:06:43 +00:00
andres.delikat f440f843dd Add IsLagFrame bool to IEmulator and implement in all platforms. Make an alert font in Render panel and make input display use it when a frame is a lag frame 2011-05-01 16:04:53 +00:00
andres.delikat bf93a936df Change unimplemented lag counters to return -1 instead of 0 since that is more obviously not implemented. Make null emulator return 0 since by definition it would never lag. 2011-05-01 13:05:16 +00:00
andres.delikat 6732cd50ff Make LagCount get/set in IEmulator and refactored emulators. Implemented the Lag counter in the NES core. 2011-05-01 12:59:26 +00:00
andres.delikat 2fa3561c45 Add LagCounter int to IEmulator, returns 0 on every emulator at the moment. Hook up RenderPanel's LagCounter display 2011-05-01 00:20:39 +00:00
zeromus c7f0c457ad [NES] work on sound, improve square waves muchly, add 6502 IRQ signal, make add some infrastructure to keep from buffering samples while core is silenced. 2011-03-19 09:12:56 +00:00
zeromus fed9c4e30e mutate to immutable 2011-03-17 03:58:04 +00:00
zeromus 3c857c1b6d [NES] try a different `watch` architecture and support game genie items with it 2011-03-17 03:51:31 +00:00
zeromus 2b1f72a84a sketch out some thoughts regarding breakpoints 2011-03-16 05:06:21 +00:00
zeromus c32a9e11f0 [NES] add freeze system for sysbus 2011-03-16 03:13:51 +00:00