|
ForumsSega Master System / Mark III / Game GearSG-1000 / SC-3000 / SF-7000 / OMV |
Home - Forums - Games - Scans - Maps - Cheats - Credits Music - Videos - Development - Hacks - Translations - Homebrew |
Author | Message |
---|---|
|
JMasterSystem 0.3 release
Posted: Thu May 31, 2012 7:35 am
|
Hi all, time for another release :-)
Link to previous release http://www.smspower.org/forums/viewtopic.php?t=13729 I've again managed to sit down and code away at JMasterSystem a bit more - it's amazing how much real life can suck up your time, especially when you've got a wedding to plan for :-D Main features of this release Save state support Codemasters mapper support Improved graphical rendering Much improved sound handling Updated menu systems and error handling Save states are fully working - the file format I've defined contains a small header at the begininng which has the ASCII 'JM03'. This is to prevent save states being used with subsequent versions as the format of the file is potentially subject to change as I implement further features. My mapping code checks an internal CRC list now to detect Codemasters games, and if that fails it scans the first 32KB in a similar way to what MEKA does - if that fails as well, it assumes the ROM uses the Sega mapper. In full screen mode, the emulator will now use an active rendering approach if fullscreen exclusive mode can be entered by the JVM. If not, fullscreen will still work, but just use the standard repaint mode. Also, the framebuffer image is now updated directly through its raster, rather than using setRGB, which is a tad faster. The sound code now has a proper buffering system in place, and this coupled with the memory allocation improvements should result in much much smoother sound! The only other thing to note is the timing code - was a little unreliable so I rewrote it - it will now detect Windows XP using System.getProperty, and use a busy-wait loop ONLY in this instance. I changed this as the busy-wait loop uses up quite a bit of CPU time (often on the order of 50% or so in my tests) and was erroneously activating on non-XP systems. For all other platforms, it now uses a TimerTask, and waits to be awoken at the specified time, rather than using Thread.sleep - this seems to yield much lower CPU usage than the old Thread.sleep method, which I'm of course happy about :-) Please try it out and let me know what you think, many thanks! |
|