Commit Graph

2381 Commits

Author SHA1 Message Date
brandman211 2553ac50bb -As I'm not going to know what I'm doing if I keep hacking away at zeromus' old core blindly, I'm writing a new one.
--It's going to be based heavily based on Imran Nazar's "GameBoy Emulation in Javascript" series. I figure it's better that I learn by emulation (Har har) instead of spending more time reading references than programming.
--Finished the memory management (Part 2).
--adelikat:
---Do I implement the required functions for IEmulator and IVideoProvider now, do it later, or is this something you or zeromus would do (Like for the API)?
---At what point should we have the emulator actually use this core instead of zeromus'? As terrible as he says his is, this one doesn't do anything yet. Still, I need some mechanism of testing it.
2012-05-27 04:06:48 +00:00
beirich df59686cbb Fix crash in PCE Coryoon when attempting to access disabled TurboCD ports 2012-05-26 20:21:00 +00:00
brandman211 aad9f05310 -Made it so that the log file only opens when you're actually logging. As a result, now can now at least switch games when you're not logging without getting errors. 2012-05-24 17:27:45 +00:00
brandman211 b29c9835ff -Separated the logging from the save state function.
-Made it so that the log only opens when logging is true and that the file closes upon destruction.
--Still, BizHawk says that it can't open the file again when I load a game again. This is because the emulator class gets recreated without deleting the original one every time you load a game.
---adelikat convinced me not to care about this.
-Fixed the initial state of the GB CPU:
--It was setting AF to 0x01, not A. This is effectively setting F to 0x01, which gets overwritten later anyway.
--Two BIOS flags were used in different places; merging them gets the PC to start in the right place.
-By fixing the initial state, most of the log now matches up.
--The only differences are the VBA has some repeated records (Where all of the registers, including PC, are the same as the previous record) whereas BizHawk doesn't.
--This very well might be an issue with how I'm logging it
--Alternatively, it could be some kind of lagging mechanism.
--I'm not sure which version is even correct...VBA is far from accruate.
--All in all, considering that the vast majority of the diff comes out as the same, I think I fixed the biggest CPU related bug. Will investigate more later.
2012-05-24 17:19:33 +00:00
beirich db1bfcfdfc very preliminary genesis savestate support 2012-05-22 02:25:41 +00:00
beirich 2aef2b8606 68000: savestate support (text) 2012-05-21 04:44:36 +00:00
zeromus 97933f2560 nes-support TENGEN-80004 (just bookkeeping; uses already existing mapper 068) 2012-05-20 21:10:22 +00:00
zeromus 638a99a1f7 nes-fix a potentially desyncable bug in mmc3 savestate 2012-05-20 21:04:06 +00:00
adelikat bd3e576614 Move Help menu back to its intended location 2012-05-20 15:37:01 +00:00
brandman211 9623f073eb Added a logging flag for GB using the SaveStateText function. 2012-05-20 06:43:41 +00:00
adelikat 147caec758 GameboyHawk - Skip BIOS menu option 2012-05-19 15:17:32 +00:00
adelikat b08d338761 Gameboy - make debugger useful by connecting it to the multiclient events 2012-05-19 13:33:45 +00:00
adelikat abba87738f Fix input config for Gameboy, some small random work on ColecoHawk 2012-05-18 22:57:05 +00:00
brandman211 5f534518aa Colors were still wrong. I just used a switch statement to fix them. Not elegant, but I can't see a simple pattern. 2012-05-18 19:47:43 +00:00
brandman211 9f8144ec58 -Set the number of cycles per frame to 70224.
-Inverted the colors; according to http://imrannazar.com/GameBoy-Emulation-in-JavaScript:-Graphics, 0 is white, 1 is light gray, 2 is dark gray, and 3 is black, which is the opposite of the norm.
2012-05-18 19:11:14 +00:00
zeromus 42715fdca7 rehabilitate the GB core: fix videoprovider and input system 2012-05-18 18:28:12 +00:00
adelikat 9c5f56308b Gameboy - fix the assigning of the active controller/autofire controller when loading a gameboy core (fixes crash when attempting to run a gameboy game) 2012-05-16 03:14:50 +00:00
brandman211 7ab8fe087a Fixed drop down labels in RAM Watch and Search. 2012-05-12 07:07:34 +00:00
brandman211 23b3cedf7d Removed the now redundant TargetZoomFactor scaling for drawRectangle. Drawn shapes now scale nicely. Whether or not text should be drawn this way is a worthwhile discussion IMO, but as zeromus has said, it would require text to be drawn in the same way like shapes. 2012-05-11 21:11:29 +00:00
goyuken 78a0494708 add WavWriter, writes standard WAV files for capture. For the moment, only available as its own IVideoWriter (that discards all video frames). Choose by selecting .wav format in the start avi capture file select dialog. 2012-05-11 17:00:44 +00:00
goyuken b35ab0d936 Add JMD to config.cs, and fix whitespace on JMDWriter.cs.
My editor whitespace settings are correct now, I promise!
2012-05-10 00:38:26 +00:00
goyuken a313d3910d Add sound output to sound card while dumping is occurring. Uses a proxy ISoundProvider (DualSound.cs) to guarantee emulation sound core and dumping routine are unaffected, while sending "best effort" sound to system output. Doesn't sound great, but simple and functional. 2012-05-09 20:21:23 +00:00
goyuken 35a9edc018 Refactor JMDWriter to be a bit less painful to read 2012-05-09 15:08:57 +00:00
goyuken d0ada9dbb3 AviWriter.cs: be informative if worker thread dies 2012-05-09 01:00:16 +00:00
goyuken d70a4e0a9c clarify some comments and add more comments to JMD code 2012-05-09 00:15:59 +00:00
goyuken 1980011952 Add user interface to select compression options (level and number of threads) for JMD dumper. 2012-05-08 22:19:12 +00:00
goyuken 037870eb43 Select between JMD and AVI at save file dialog. 2012-05-07 23:18:08 +00:00
goyuken ab6f9b175f Add JMDWriter.cs, dumps to JMD format. No 2G limit, and single segment even across multiple resolutions. Can use a bunch of cores, but still not terribly fast. Hasn't been hooked in to the UI yet; for testing, change MainForm.cs:2669 2012-05-07 21:45:25 +00:00
zeromus de0cdf1c3c add sharpziplib for gzip so we can make portable JMD dumping without relying on the native 7z.dll 2012-05-07 18:42:43 +00:00
adelikat 02bad39a88 Some Coleco docs 2012-05-06 23:16:50 +00:00
goyuken cdd82cbb06 Rename VideoWriter IVideoWriter per zeromus 2012-05-06 22:18:16 +00:00
goyuken 02ca0e82e9 Create new interface VideoWriter, which AviWriter inherits from. Sets up for other video dumping systems. 2012-05-06 22:08:47 +00:00
zeromus 857d0a5b39 voila, "emu" resolution lua drawing, hacked in place of the native resolution drawing because rolanmen1 decided to destroy my surface management paradigms (i can tell because the earth is scorched with spaces instead of tabs) 2012-05-06 07:09:04 +00:00
brandman211 cd0016343f Done trying to optimize the PPU's FrameAdvance. We may have saved some processing time, but it's not very consistent. 2012-05-06 06:04:00 +00:00
brandman211 05157997f1 -Added a very basic fix to the graphics scaling issue per adelikat's advice.
--Gets worse as the scale increases.
--For x3, the box doesn't increase size, but the box still changes position. I think there might be a difference between the TargetZoomFactor and the actual screen size, so perhaps we should tie this to something else.
-Working on very small optimizations to the NES PPU with CorruptedSyntax...this is more fun, so we'll do this first.
--Eliminated an entire loop.
--Branched to two loops instead of branching for every iteration in one loop.
--Got rid of some redundant instructions using temporary variables.
--This may be completely premature, but I seem to have gained a few FPS from doing this. For me, I get 38-39 FPS where I'd previously get 33-34.
2012-05-06 04:09:28 +00:00
adelikat 5fa0a681e1 Colecohawk - start VDP (ripped from the SMS core) 2012-05-06 02:48:39 +00:00
adelikat 3b7c23817a Coleco - some hacks and fixes to make a coleco rom open without crashing (draw a black screen instead) 2012-05-06 01:15:02 +00:00
adelikat 059aebec8e ColecoHawk - set up ROM loading (bind .col to Coleco), set up preliminary controller garbage in 85 places for coleco 2012-05-06 00:54:13 +00:00
beirich 604a774118 Add 2 SMS homebrew and a GG prototype to gamedb 2012-05-05 22:43:11 +00:00
goyuken d964558856 Multithreaded AviWriter.cs
Moves calls to AVIStreamWrite() to a separate worker thread.  They are where all of the cpu time for video compression is used, so can give a decent speedup.  Could conceivably go slower on pathetic single core machines due to synchronization and copy overhead.
2012-05-05 14:52:23 +00:00
Rolanmen1 9b9a8546a5 Deleted the ClearDisplaySurface functions. If you just need to clear the graphics, call gui_ClearGraphics function in LuaImplementation. 2012-05-01 15:15:19 +00:00
Rolanmen1 2799d55f4a Now gui.drawNew and gui.drawFinish doesn't need to be invoked via Lua Scripts. However they are invoked every frame. Basically, this means that graphics are drawn and cleaned every frame. So, if you Pause/Stop a script, the graphics gets cleaned right away. 2012-05-01 14:43:17 +00:00
adelikat 22eec9c4d7 Archive Chooser - put (U) [!] roms at the top of the list 2012-04-30 01:26:37 +00:00
adelikat 54d1c873df Fix when guitext gets cleared, reduces most of the flickering and inconsistencies with ram watch on screen and lua gui.text, fix punchoutstats lua script 2012-04-30 01:14:23 +00:00
adelikat e60ba05e66 Gui.text - fix inverted default fore/back colors, fix lua scripts to use new gui.text parameter scheme 2012-04-30 00:45:37 +00:00
adelikat e0dc96abdc GUI Text / Ram Watch on screen display - fix inverted foreground and background colors 2012-04-30 00:30:44 +00:00
adelikat 592b73ea5a Atari - implement mapper EF 2012-04-29 21:12:58 +00:00
adelikat e0a6ae5264 Atari - put descriptions at the top of each mapper file 2012-04-29 21:01:06 +00:00
adelikat fffe30f4f9 Atari - add a version of Magicard to the gamedb 2012-04-29 19:40:28 +00:00
beirich 700ac116dd ym2612: more ports processed, DAC now plays in stereo 2012-04-29 18:33:21 +00:00