Chris White - Emulation!

Tuesday, March 24, 2009

FlashGear

Now it runs pretty well:
http://www.javagear.co.uk/flashgear

Basically I missed a few Flash related things as I was working too late. I knew the code wasn't that bad! :)

Monday, March 23, 2009

JavaGear Actionscript/Flash Port

I quickly ported JavaGear to Actionscript 3 the other week to see how fast it would run. The actual port was really quick - took just over a day to get it up and running.

It seems that Actionscript is a pretty sluggish language for emulation purposes. The main bottleneck in the code is the Z80 emulation. The rendering and flash specific stuff is not really an issue.

Using a hacked version of Sonic, with some patched speed enhancements (replacing some of the idle cpu loops with halt instructions), it's just about playable. But I'd be lying if I said I wasn't disappointed with the overall performance.

I did a lot of profiling, but so far haven't made any breakthroughs. The core code is pretty fast anyway. I tried an alternate Z80 emulator from a Flash Spectrum emulator, and this was slower than my own.

Edit: give it a spin here
Be warned it's slow, so save any important work in case it stalls your PC ;)

DroidGear

Due to my own laziness at porting JavaGear to Google Android, I'm pleased to say Stephan has taken it upon himself to start a port. The code can be found here

A video can be found here

Looks like something's up with the frameskipping code from the video - I don't think the emulator is skipping frames at all. The interface and auto screen flipping looks cool though.

Wednesday, July 02, 2008

JavaGear 0.97 Preview

Upcoming in the next version:

1/ Big speed increase for mobile version. I've compiled my own customised version of proguard (the java obfuscator) . This results are great, and games run noticeably quicker. I'll have some precise data to back this up in due course.

2/ Decent standalone application version with menubar and windows .exe launcher for ease of use. Essentially the menubar is the final feature lacking from the rewritten javagear present in the original. It works better than the original though :)

Monday, June 02, 2008

JavaGear Updates

So you've probably noticed that there have been a few minor updates to JavaGear recently.

I'm also working on implementing 'save state' support. It's a feature I've wanted for ages, but is mind numbingly dull to code. I've finally summed up the courage. It works, I've just got to hook up some UI for it now.

Any other feature requests are welcome.

Tuesday, May 20, 2008

JavaGear ME 0.92 Released

JavaGear for MIDP2 Compatible mobile phones.
Also contains a standalone J2SE (PC compatible) build of JavaGear.

New Features:

  • Screen rotation
  • Screen can be enlarged with SCALE option (before it was only shrunk)
  • Lightgun emulation (touchscreen devices and with mouse on J2SE version)
  • SRAM is saved (Phantasy Star etc.)
  • NTSC/PAL selection
  • J2SE: Pass window size as command line parameter
  • Uses less memory than previous version

Improved Emulation Accuracy:

  • Z80: Fixed bug in FDCBxxyy, DDCBxxyy opcode timings
  • VDP: Fixed VDPbuffer bugs in accurate version (not used by any games)
  • VDP: Accurate mirroring of ports (not used by any games)
  • VDP: Fixed bug in line interrupt setting
  • Fixed bug in GameGear auto resizing code
Available here

Sunday, May 11, 2008

JavaGear Android Port



I've started to port JavaGear to Google's Android platform. The results are good, although it runs seriously slowly in the emulator. Based on the J2ME version, it will presumably run faster on an actual device.

There will be updates to the existing mobile version of JavaGear in due course. I'm hoping to add Lightgun support for touchscreen handsets.

There's still some debugging on the Android version to be done in the meantime, and I've got to merge the Android code into the main source tree, as it's forked at the moment.

Labels: