Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - JMasterSystem 0.3 release

Reply to topic
Author Message
  • Joined: 08 Nov 2011
  • Posts: 82
  • Location: United Kingdom
Reply with quote
JMasterSystem 0.3 release
Post 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!
mm.png (10.51 KB)
Micro Machines is running :-)
mm.png
JMasterSystem.zip (145.81 KB)
JMasterSystem binary
JMasterSystem source.zip (122.27 KB)
JMasterSystem source

  View user's profile Send private message Visit poster's website
Reply to topic



Back to the top of this page

Back to SMS Power!