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
zeromus
4b177ca8d1
[NES] ppu fixes and improved rom classification infrastructure
2011-02-28 06:16:20 +00:00
andres.delikat
423e9c8783
Add SetControllersAsMnemonic() to IEmulator and implement it in the SMS core. Very crude playback now works.
2011-02-27 22:33:25 +00:00
beirich
d381be67a6
[PCE] Convert memory mappers from 16-bit addressing to 21-bit addressing
2011-02-26 23:02:34 +00:00
andres.delikat
04b6b2baa0
Fix typo!
2011-02-26 22:08:55 +00:00
andres.delikat
0ed57b443b
Add GetControllerAsMneumonic() to IEmulator that returns a formatted string of controller inputs. Implemented this function in SMS input.cs and hooked up Movie recording.
2011-02-26 21:36:46 +00:00
andres.delikat
f7198ae966
Ram Search - Memory domain select
2011-02-23 16:22:41 +00:00
zeromus
bc74d6c575
complete speed/skip/non60-throttle functionality and controllable vsync. maybe a bit rough, but i'll continue to support it.
2011-02-21 09:48:53 +00:00
beirich
577f249905
Misc code cleanup
2011-02-16 04:45:59 +00:00
andres.delikat
48bb648ff9
IEmulator now has a string type so that emulators can return a string representing the platform they emulate
2011-02-16 02:42:58 +00:00
beirich
1d00b7fe6b
minor refactoring of IController handling of control updates / frame tracking / movies
2011-02-05 05:40:19 +00:00
beirich
366d7994e3
Add SMS options to UI; Add client-options mechanism IGame; Game database support for YM2413 games
2011-01-28 06:46:33 +00:00
beirich
b5ca2f07de
NullEmulator returns a dummy memorydomain
2011-01-21 07:02:48 +00:00
beirich
162b43c240
I suppose it would help if memory metadata was public
2011-01-21 04:10:29 +00:00
beirich
e62c1bc673
add memory API, remove HardReset from IEmulator
2011-01-21 03:59:50 +00:00