Commit Graph

1761 Commits

Author SHA1 Message Date
zeromus c0453ae2e8 snes-fix SGB 2013-07-30 02:51:40 +00:00
goyuken f3eb9e7fc7 N64: a quick hack greatly reduces memory thrashing (on my machine, varied usage of 300-800MB with default rewind settings replaced with a rather steady 300-350MB 2013-07-30 00:12:24 +00:00
goyuken 3b7f2a65a6 N64: reuse a particular buffer instead of recreating it on every rewind state capture. this change by itself does not seem to be sufficient to avoid outofmemory exceptions 2013-07-30 00:01:32 +00:00
adelikat 7ac1da8c96 Set the right order of buttons, and good defaults for controllers and joypads for all consoles 2013-07-29 02:11:00 +00:00
zeromus 4b5d967ed4 nes-support SMB3(j) and fix likely new bugs in MMC1??? 2013-07-28 21:03:28 +00:00
zeromus cf655f3f54 nes-make MMC1 work like the other mappers, instead of the very first mapper i made, which is to say, stupidly. TL;DR, speed it up 50% 2013-07-27 23:31:29 +00:00
adelikat 8a9373126f N64 - add analog UDLR boolean buttons for mapping, if set and pressed they will override the analog axis 2013-07-25 00:51:56 +00:00
goyuken 58359d5ac9 NES: ExROM: fix crash in CV3 2013-07-20 05:27:39 +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 e88691152d NES: remove vs system cruft that never worked and i never followed up on 2013-07-18 14:15:46 +00:00
adelikat 13d045f27f make 2012 project compile 2013-07-16 00:32:51 +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 aa6b743b86 snes: fix a bug which caused false positives in lagframe detection (frames marked as lag where input was actually used). this is purely a display issue and did not affect emulation at all. the bug was not caused by r4206, but r4206 causes it to occur more often. 2013-06-29 23:32:41 +00:00
goyuken a18ed625ca psphawk: controller definition 2013-06-25 23:44:17 +00:00
goyuken b8eec16d8c rework mainform disc image code to work with r4551 changes. on cursory examination, both PSP and saturn games are loading correctly. it's likely that something PSX related was broken, but that's OK for now... 2013-06-25 21:57:45 +00:00
goyuken 92d71ee89f revert r4551 changes to .csproj files 2013-06-25 21:34:06 +00:00
pasky1382 23d71a3b87 Commented out unworking code for disc.DetectSegaSaturn() in MainForm.cs
Added 'Always On Top' option to settings in hex editor/tas studio/ram search
2013-06-25 08:50:42 +00:00
zeromus b7dbb91419 DiscSystem-misc improvements and bugfixes, add CDFS parser, and add DiscID system for PSX and PSP discs. 2013-06-25 08:31:48 +00:00
goyuken 1de395ca2a psphawk: sound, except it doesn't work. i will figure it out later 2013-06-25 02:06:06 +00:00
goyuken c8577fc361 psphawk: clean up some logging stuff. fix upsidedown image. redirect special PSP paths to PSP/ subfolder (still not much control over them, but at least they wont be shatting all over the place) 2013-06-25 01:06:35 +00:00
goyuken 5ec0cf2831 psphawk: add the c# interfaces, as well as a compiled final dll (note: debug mode). to use psphawk, first uncomment the hack in MainForm.cs, then ensure that you have a valid PSP ISO located at "D:\Games\jpcsp\umdimages\Final Fantasy Anniversary Edition [U] [ULUS-10251].iso", then try to load a valid sega saturn game. 2013-06-25 00:38:15 +00:00
goyuken 39f82cbca9 psphawk 2013-06-25 00:14:35 +00:00
goyuken 1073e184d3 re-un-break TGROM problem caused by r4524 2013-06-14 15:07:55 +00:00
pjgat09 6ab3f6a463 N64: Added SaveType to the gamedb, but only for 16K EEPROM since all the other options are ignored. This fixes a "no controller" issue with Banjo Tooie 2013-06-08 03:36:57 +00:00
goyuken 7b6492c0e2 n64: use the "fast" savestate text processing primitives. overall speedup: savestate: 21x loadstate: 10x 2013-06-06 00:59:09 +00:00
goyuken f1e2c275f4 speed up some text conversion routines so that Yabause saving of text savestates is about 19x as fast as before 2013-06-05 18:42:54 +00:00
goyuken f42f002669 speed up some text conversion routines so that Yabause loading of text savestates is about 10x as fast as before 2013-06-05 17:42:53 +00:00
goyuken 56d7b299de NES: MMC3: fix some worthless mario hack. i don't like this particularly 2013-05-28 20:01:09 +00:00
pjgat09 19fc24aeb5 N64: Glide settings now save 2013-05-27 01:59:45 +00:00
pjgat09 2245975217 N64: Implement the reflection method to store and retrieve the plugin settings 2013-05-23 00:16:04 +00:00
goyuken ea7dd85451 NES: TxROM: add 256K chr option to ACCLAIM-MC-ACC. fixes crash dummies, amongst others 2013-05-20 13:41:21 +00:00
pjgat09 ac9d053895 N64: Actually use the input for the other three controllers 2013-05-20 00:03:08 +00:00
pjgat09 9cc5a00076 N64: Dirty hack to allow savestates to be loaded during the first or second frame of emulation. 2013-05-19 23:38:34 +00:00
pjgat09 82a5989f28 N64: Refactored the memory domains 2013-05-19 20:14:34 +00:00
goyuken 0818526b3d snes: fix wrong default memory domain in ramsearch 2013-05-14 21:33:36 +00:00
goyuken a754aba126 saturn: hook up GL mode to user interface. in GL mode, one can choose resolutions like pcsx2: 1x, 2x, 3x, 4x, or user selected w*h 2013-05-14 03:06:37 +00:00
goyuken 656e7a3862 saturn: connect the openGL rendering core. has some graphical glitches of its own, but can be a good deal faster than the soft core. not hooked up in options yet (so without code editing, you'll get soft core every time) 2013-05-13 16:49:02 +00:00
goyuken 05a525d2c4 dual gameboy: on_snoop support. you get a callback per sub-core, as would be expected. 2013-05-11 23:46:23 +00:00
pjgat09 7da2ede59d N64: Refactor some input code to use callbacks and (hopefully) be compatible with on_snoop 2013-05-11 23:44:20 +00:00
adelikat effdf1f6dc update 4.5 project with the recently added files 2013-05-11 14:37:07 +00:00
goyuken 16d78da582 saturn - enable writes to memory domains (i had kind of forgotten about this). usual caveat: memory domain pokes can create impossible situations, because you're doing things that you ought not to be allowed to do 2013-05-11 14:24:01 +00:00
pjgat09 6f2d75a260 N64: Save saveram as a part of a savestate 2013-05-11 03:44:01 +00:00
pjgat09 0811ff4e41 N64: Wired up the analog control in the virtual controller. I probably did the float wiring badly, but it works for now. 2013-05-10 23:29:14 +00:00
goyuken 6849f72baf NES: volume control on each channel 2013-05-10 18:38:58 +00:00
goyuken 99615d9afd GB: rtc is pegged to emulated elapsed time. maybe. don't know what to test it with. time at core restart is always 1970, or something like that, which isn't as bad as it sounds, because the GB rtc doesn't keep track of anything past days 2013-05-09 23:15:59 +00:00
goyuken 7e71898187 resolve issue 107 2013-05-09 19:57:42 +00:00
zeromus f61b85ab01 nes-boot yoshi's cookie 2013-05-09 06:47:25 +00:00
pjgat09 0a3dfa697e N64: Added a video plugin settings class, filled it with the values from the rice settings screen, and wired it up to the core 2013-05-09 02:58:35 +00:00
pjgat09 0d4ed449e1 N64: When disposing of the core repeatedly send the stop command, because for some reason sometimes sending it just once doesn't work 2013-05-09 01:05:42 +00:00
goyuken 89f61e6daa gba: throw exceptions if saveram gets accessed when disposed, while i remember about it. will actually fix it some other time, if the core actually gets used. 2013-05-09 00:58:02 +00:00
goyuken aa73071870 saturn: fix saveram problem 2013-05-09 00:47:16 +00:00
pjgat09 7becee2284 N64: Rescue save ram from the clutches of race conditions 2013-05-09 00:36:01 +00:00
pjgat09 fffc9d676e N64: Setup saveram, but it doesn't always work right yet. Sometimes switching games loses the save ram. Sometimes bizhawk crashes when saving saveram. 2013-05-07 22:37:26 +00:00
goyuken ed2553621f saturn: memory domains, and saverammodified flag 2013-05-07 21:35:55 +00:00
pjgat09 d9c6bb6698 N64: Added float controls for the X and Y axises. At some point they need to be converted to signed bytes to work with m64p 2013-05-07 01:42:48 +00:00
pjgat09 08f6fdaf8d N64: Implement the video plugin (rice or glide64) option 2013-05-07 01:38:12 +00:00
pjgat09 a6600a5c0a N64: Implemented the lag indicator and lag count 2013-05-06 23:50:24 +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
pjgat09 e78985244c N64: Split the m64p api into it's own class 2013-05-06 03:22:27 +00:00
pjgat09 468da23558 N64: Set RDRAM as the main memory 2013-05-06 00:08:36 +00:00
adelikat 7fb317cc37 N64 - implement ResetFrameCounter() method 2013-05-05 22:53:22 +00:00
pjgat09 8b51686944 N64: Added a very primitive memory domain for RDRAM. For some reason poking does not work yet 2013-05-05 03:39:01 +00:00
pjgat09 d0285b6965 N64: I suck at this 2013-05-05 00:12:46 +00:00
pjgat09 883fa1330e N64: Removed the debug output lines that were accidentally committed 2013-05-05 00:11:49 +00:00
pjgat09 a374641460 m64p: Changed the output formula for the framebuffer from glide64 to actually be correct. We actually don't need a formula... Changed glide64 to not force vsync. You apparently need to read the back buffer or else you get choppy video.
N64: Changed the hardcoded video plugin to use glide. Glide apparently requires you to set the video mode before initializing the plugin
2013-05-04 23:51:50 +00:00
pjgat09 55c7fc55ab m64p: Made two new functions for saving and loading states, directly based on the m64p methods but without files
N64: Copied savestating code from other cores. States take a while to save, and the audio is weird when loading.
2013-05-04 04:07:04 +00:00
pjgat09 d5966dd908 N64: Video now resizes 2013-05-04 02:46:37 +00:00
goyuken 079255b29f n64: gc issue fix????????? 2013-05-04 01:46:12 +00:00
goyuken 4a74249236 n64: remove a few minor hacks in n64.cs that were due to previous minor hacks of mine and are obselete now that the first frame problem is resolved 2013-05-04 01:32:33 +00:00
goyuken d87b5e7324 n64: turn right side up again 2013-05-04 01:30:39 +00:00
goyuken 54ff07fbfc n64: fix race bug introduced in previous revision. also turn display upside down 2013-05-04 01:16:27 +00:00
goyuken 1abb7cf91a n64: resolve the "first frame" issue 2013-05-04 00:47:36 +00:00
goyuken 1bf7280b75 n64: in the managed side, use an AutoResetEvent to wait on the core instead of spinning. saves cpu time. 2013-05-04 00:28:05 +00:00
goyuken 147c77c124 n64: screw things up some more. use a semaphore to handle stoppage in r4300 interrupt. blah. it's faster 2013-05-04 00:23:52 +00:00
goyuken 415d749be9 saturn - fix r4402, which was horribly busted. the code looks messier now... almost as messy as before. except the sound test mode in SOTN works through savestates now (it doesn't in vanilla yabause), so i fixed something. 2013-05-03 22:12:35 +00:00
pjgat09 d9f9d77712 N64: Wire up the reset and power buttons 2013-05-03 21:13:23 +00:00
goyuken 314906ce66 saturn - comment out the hacked up scsp savestate stuff and replace it with something much simpler (but more fragile). old scsp save routine has same bug as r4399 - immediate save+load+save produces different savestates. new doesn't. 2013-05-03 19:51:03 +00:00
pjgat09 7810621d6d N64: Started work on wiring the config system. The video output resolution is now (temporarily) set to 800x600 2013-05-03 02:36:46 +00:00
goyuken 299fcbcc57 saturn: power button, saveram. at the moment, only the internal bupram is saverammed, although it's generated separately per game, like other bizwhack consoles 2013-05-03 01:32:16 +00:00
goyuken b399e87ffe saturn: savestates. rather unwieldly, taking ~11MiB in text form and causing a noticable pause to save or load. core changes to support savestating: savestates reverted to version 1 (no movie info and no framebuffer, both of which are handled in bizhawk), and parts dealing with verifiying size through liberal use of fseek() (which doesn't work here) removed 2013-05-02 23:35:12 +00:00
pjgat09 fa349542ef N64: Added exceptions in the event of a problem loaded one of the dlls 2013-05-02 22:17:36 +00:00
pjgat09 ee9584f3aa N64: Commented out, but rudimentary fake analog stick support by looking at the DPad buttons and basing the analog stick position based on those 2013-05-02 22:08:54 +00:00
goyuken 149eeb5f33 saturn - support loading bios. note that at the moment, the bios filename isn't in the firmware configuratorthingy. this marks the first change made to the yabause core itself (excepting the yui.cpp that we added); changing memory.h so that block loads don't do unnecessary fseek() 2013-05-02 20:47:56 +00:00
pjgat09 2a0c6c4daf m64p: Configure controller 1 to be plugged in. Flesh out the plugin somewhat
N64: Pass controller 1 data to the core
2013-05-02 03:38:57 +00:00
adelikat c6634273d7 N64 - hook up input for 4 controllers and autofire, still needs to be hooked to the core, and also needs to be added to controller config dialog 2013-05-02 01:54:44 +00:00
goyuken 53f9e002f4 n64: disable certain debug messages for now as they're causing crashing problems.
fix audio, hopefully.  sounds fine on diddy kong racing.
2013-05-02 00:33:44 +00:00
pjgat09 08c41348e5 N64: Attempt to fix a threading problem 2013-05-01 22:32:31 +00:00
goyuken 6b350e58c9 n64: audio stuff, but all commented out for now 2013-05-01 22:26:08 +00:00
pjgat09 365d1f159c N64: Clean up the core on rom close 2013-05-01 22:18:53 +00:00
pjgat09 533baf9ef3 N64: Added a function to get the audio rate from the core. 2013-05-01 21:28:15 +00:00
goyuken 0d556dc9e9 saturn: frame lag flag working 2013-05-01 17:22:12 +00:00
goyuken 2631ffbde6 implement a simple sega saturn cd heuristic detection. unknown cues once again are loaded into PCECD 2013-05-01 17:06:36 +00:00
goyuken 0a1e942dfe n64: rework audio a bit. best listened to in audio throttle mode. the problem seems to be that different games use different audio out sampling rates, and i don't know how to detect the right one. current selection (32khz) seems to be right for merio and falcon punch 2013-05-01 14:38:47 +00:00
goyuken 8b029d9eb1 saturn: controls. fuck boilerplate 2013-05-01 02:53:53 +00:00
goyuken eae4c0ee81 saturn: sound 2013-05-01 01:46:20 +00:00
goyuken 368bc58d0a saturn: connect to bizhawk's existing DiscSystem code. emu should now properly load the .cue given. the hack that redirects every .cue that is not in a gamedb to saturn is still in place; saturn detection heuristics will be coming 2013-05-01 00:27:36 +00:00
goyuken d2fecaa172 saturn emulator. for the moment, try loading any unknown .cue file. when you do so, the saturn core will attempt to load "D:\encodes\saturnimages\Castlevania SOTN.iso" 2013-04-30 21:28:35 +00:00
pjgat09 7f7b9eac1f m64p: Created a new audio plugin that saves the samples in a buffer for bizhawk to retrieve. Also added some miscellaneous svn:ignores
N64: Hooked up the new audio plugin, but it doesn't sound exactly right.
2013-04-30 03:24:44 +00:00
pjgat09 160de71206 N64: Removed an unneeded dummy variable 2013-04-30 02:24:07 +00:00
pjgat09 8ec6c762bd N64: Set a variable to volatile to fix problems with bizhawk freezing during frame advance. 2013-04-30 02:22:56 +00:00
pjgat09 3bc682a411 m64p: Added VI callback functionality
N64: Made a VI callback function which declares the frame complete every VI, instead of per frame.
2013-04-30 01:50:27 +00:00
pjgat09 2598967d56 m64p: Start the emulator paused
N64: Wait for the emulator to start up before returning from the constructor.
2013-04-30 01:14:07 +00:00
pjgat09 1f7b5a5ce9 N64: Run the m64p core frame by frame. Added a frame callback function to retrieve the framebuffer from the m64p core when it's ready. Added math to convert the m64p framebuffer to bizhawk's formula. 2013-04-30 00:36:54 +00:00
pjgat09 bfc0117237 m64p: Hard coded an ini file location until I can be bothered to work out the config handling in m64p
N64: Loads roms and pops up an SDL window to display them
2013-04-30 00:08:21 +00:00
pjgat09 a4fb43185a N64: Adding a dummy emulator 2013-04-29 01:57:41 +00:00
zeromus df99f36464 support bsnes xml files and super road blaster MSU-1 game 2013-04-24 22:09:11 +00:00
zeromus b482a4af0b make note about how to get msu-1 working 2013-04-24 17:17:25 +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 c577eb4854 Atari 2600 - DPC Mapper - add in clock cycle counting and some fixes, but still doesn't work, don't know why at this point 2013-04-20 22:09:19 +00:00
adelikat 462e861072 last round of pointless code cleanup 2013-04-16 00:42:57 +00:00
adelikat be2937fdec Code refactoring of Tools files - no functional changes other than some very tiny speedups and null checks 2013-04-14 23:56:45 +00:00
adelikat cff1ff2940 Removing unused directives from a bunch of files because I was playing around with resharper, but that got boring so not every file 2013-04-14 20:39:19 +00:00
adelikat da80b7117a Oops, Make VS2010 project compile 2013-04-14 20:04:38 +00:00
adelikat e8eeb7f4fa NESHawk - threw .net 4.5's aggressive inline attribute on some hot functions, seems to give me about a 3-5% speedup 2013-04-11 02:04:13 +00:00
adelikat 85571fe0ca Update 2012 project to use .net 4.5 2013-04-11 01:02:47 +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
goyuken 8d1fcd0b8a snes: movie recording starting from now now supported 2013-03-17 18:11:30 +00:00
goyuken 7d21df6648 GB: fix movie "start from now" (it never worked before). this is a minimalist fix that's designed to not break compatibility with any existing savestates, but is kind of fragile. 2013-03-17 17:15:33 +00:00
adelikat 3e639d65ab Atari 2600 - implement TIA, PIA, and System Bus domains (note that there is no poke ability on the system bus domain at this time) 2013-03-11 01:46:12 +00:00
adelikat 84bc032656 Some warning cleanup 2013-02-24 20:17:12 +00:00
adelikat 0530547f34 NESHawk - CNROM - support ROMS that use MAPPER185 as the header designation and are not in bootgod (specifically Sansuu 1,2,3), and prevent Bird Week from crashing. In all these cases the games still don't work, but at least they don't crash 2013-02-19 02:52:32 +00:00
adelikat 2c4fcd0cb3 NEShawk - Fix savestate loading on mappers 115 and 248 2013-02-19 01:58:13 +00:00
zeromus e88fb73706 nes-initial values for mmc3 registers.. not clear on whether theyre real or not, but folks seem to be depending on them, and fceux does it 2013-02-11 09:09:37 +00:00
zeromus 501c68bb9f nes-make memoryRand track fceux latest 2013-02-11 09:08:54 +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 11aef10c2e snes-dont churn through memory so fast when loadstating/rewinding. i think its fragmenting the OS heap pretty badly because it kept reallocating shared memory blocks 2013-01-18 04:46:17 +00:00
zeromus 1b33d1dc9d snes-fix bug where you cant load games lacking save ram 2013-01-14 07:22:36 +00:00
goyuken e911a17a4e nes: vrc6: clean up some comments of left over crud. no actual changes 2013-01-11 19:49:32 +00:00
goyuken a0ea09a226 nes: mapper 117: some sort of vrc7 clone. fixes "Crayon Shin-Chan" (not that one, the other one) 2013-01-09 23:22:40 +00:00
zeromus 66077951c4 snes-fix timing calculations in aviout and movieplay dialog 2013-01-09 23:03:46 +00:00
goyuken 1666febbee NES: savestates now function properly for "SUNSOFT-5B" board, only affects Gimmick (J)? 2013-01-09 16:42:00 +00:00
goyuken 926cf64fe7 dual GB: tweak frame timing. dual GB frame timing closely resembles that of lsnes-gambatte; with more than one console, there's no point trying to precisely sync to the v-timing of just one of them. 2012-12-30 17:38:44 +00:00
goyuken 87a36128e3 dual gb: fix edge case frame boundary timing thingy 2012-12-29 18:55:10 +00:00
goyuken 8715f2bb2a dual gb: memorydomains 2012-12-29 18:06:39 +00:00
goyuken 1cdc51f789 dual gameboy: sound 2012-12-29 17:11:19 +00:00
goyuken 166110c609 gambatte: more linkcable stuff. input isn't working, haven't figured out why yet. note: at the moment, any attempt to load a GB\GBC rom will bring up the dual core. 2012-12-29 15:48:30 +00:00
goyuken 689a5fac6e reverse merge 4237 as it breaks compilation 2012-12-29 14:41:51 +00:00
brandman211 83ec09c960 Added GB(C/A) and A2800 framerates to GetSeconds, fixing the related movie lengths in the PlayMovie dialog. Assigned A7800 to and Coleco to use A2800's NTSC framerate. No clue about PAL for anything. 2012-12-29 09:55:37 +00:00
goyuken 2a7ea6bfb0 libsnes: add comments to snes_input_state() explaining the parameters as i understand them. note that we only actually have 2 controllers at the moment, not 4. 2012-12-29 02:43:00 +00:00
goyuken ab8af9f73e remove some unused junk from last commit 2012-12-29 02:07:01 +00:00
goyuken 63f9752ea2 rough in some stuff for game boy link cable recording. none of it is finished yet 2012-12-29 01:25:06 +00:00
goyuken 714292c77c gambatte: change memory domain check to mod instead of and (because domains can be not power of 2 sizes) 2012-12-27 22:50:34 +00:00
adelikat 9c945a175e Atari 7800 - don't require all 3 bios files to run. But do nag them that they are missing them. 2012-12-27 22:24:42 +00:00
adelikat 06bd1b979a GB - mask peek and poke memory functions, fixes potential exceptions when calling on bogus addresses for that domain 2012-12-27 18:48:12 +00:00
zeromus 2988217d77 snes-fix SGB core which had got a little broken while trying to setup memory domains 2012-12-27 18:47:15 +00:00
zeromus 213f12b5a2 snes-actually turn on that thing i did last night, to see if anyone thinks it improves performance 2012-12-27 18:11:44 +00:00
zeromus 9a778a55fe snes-add a bunch of complicated libsnes communication code. not sure whether it helps. need to gather data. 2012-12-27 07:59:19 +00:00
zeromus 42e473b7a8 snes-fix dll deps in 64bit bsnes 2012-12-26 21:25:39 +00:00
zeromus 0545cb64fa snes-make hex editor faster 2012-12-26 18:25:45 +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