Report from JavaOne: High Performance: Writing a Sony PlayStation Emulator in Java
Matt Howitt and Graham Sanderson of Lombardi Software presented a new PSX emulator written entirely in Java named JPSX and covered some of the technical challenges that came up in writing the emulator. The project will eventually go open-source and the author announced that JPSX's object-oriented development approach supports different modules to extend the capabilities of the emulator. (Hardware acceleration via OpenGL was brought up at the following Q&A session, and the author acknowledged that implementations of the graphics engine in Java3D or other 3D Java-written APIs would help offset the load of emulation from the CPU; it currently implements software only based rendering).
This is one mean product of coding. I am willing to post the slides from the presentation later on for other developers to muse over once the program is open-sourced. Unfortunetely, there are no screenshots to present, but I can say that I saw four instances of this emulator running smoothly simultaneously on a Windows XP machine and at least two on a Mac.
It should be noted that this emulator is not a Lombardi Software product; as I understand it, Matt Howitt wrote this in his spare time and it is entirely his own work.
Here is the text from the presentation's abstract:
Session Title: "High Performance: Writing a Sony PlayStation Emulator in Java™ Technology"
<snip>
A PlayStation emulator requires lightning-fast 2-D and 3-D graphics (up to 60 fps), accurate timing, multichannel sound, and streaming video. This case study explores some of the challenges, solutions, and lessons learned while implementing a full-speed PlayStation emulator in pure Java™ technology.
Topics to be covered include:
- Marrying object orientation and speed
- Cool Java technology-based stuff, such as NIO and VolatileImage
- Taking full advantage of optimizations in Java technology's native compiler
- Cross-platform issues
- Java technology-based bytecode generation
- Cool emulator stuff, such as a runtime-profiling-based optimizing R3000 to bytecode compiler
Many of the strategies covered are applicable to mainstream Java technology-based applications, not just Java technology-based games.
Note: This talk does not contain specific technical details of the PlayStation software or hardware.
</snip>
I am looking for more information on where the authors will provide more information on JPSX...they said that the additional info would be found somewhere on the JavaOne website.
|