Monday, September 15, 2008
BDJ on PS3 impressions
JEmu2 on BDJ is now largely working on PS3.
It was really quite a hassle to get things going, but to be honest I'm not really sure it was worth it after all.
The problems with JEmu2 on PS3 are this:
* No sound
* Bad performance
* No VSync
* 60fps are drawn in JEmu2 but less are actually rendered
* Only one directional button gets registered at a time
* Only 2 action buttons available on PS3 controller
The sound problem might be solvable, but the rest is not as far as I can see; they seem to be limitations of the BDJ implementation on PS3. And from what I've read, the BDJ implementation on PS3 is actually the fastest and most complete of all Bluray players, so things don't look good.
The controller problems seem to be the worst to seriously consider BDJ as a gaming platform. "Only one directional button at a time" basically means that it's impossible to do diagonal movement, for example by pressing UP and RIGHT at the same time. This means most action games are out of the window.
The PS3 controller just acts as a Bluray remote here. So the analog sticks and triggers are not registered.
The JVM performance problem follows after the controller problem. The JVM seems to be an old fashioned interpreter, which is only helped by the PS3's CELL performance. A very wild guess would be that performance is comparable to a Sun HotSpot JVM on a 200-300MHz pentium (at the very most, but probably even less!).
The result is that JEmu2 struggles with many games. Don't even think about doing multi-CPU 16 bit games...
No VSync, and not having the ability to actually display 60fps don't help things either.
All is not lost though. BDJ might be a bad platform for emulation, it might still have some use for many game genres.
Considering all the above, it will be well suited for things like Chess and other board games, card games, some adventure games (point-and-click and such), any game that doesn't require fast animation or moving diagonally.
On the plus side, blitting images seems quite fast. Scaling small images to 1080p comes with no perceivable performance cost.
It was really quite a hassle to get things going, but to be honest I'm not really sure it was worth it after all.
The problems with JEmu2 on PS3 are this:
* No sound
* Bad performance
* No VSync
* 60fps are drawn in JEmu2 but less are actually rendered
* Only one directional button gets registered at a time
* Only 2 action buttons available on PS3 controller
The sound problem might be solvable, but the rest is not as far as I can see; they seem to be limitations of the BDJ implementation on PS3. And from what I've read, the BDJ implementation on PS3 is actually the fastest and most complete of all Bluray players, so things don't look good.
The controller problems seem to be the worst to seriously consider BDJ as a gaming platform. "Only one directional button at a time" basically means that it's impossible to do diagonal movement, for example by pressing UP and RIGHT at the same time. This means most action games are out of the window.
The PS3 controller just acts as a Bluray remote here. So the analog sticks and triggers are not registered.
The JVM performance problem follows after the controller problem. The JVM seems to be an old fashioned interpreter, which is only helped by the PS3's CELL performance. A very wild guess would be that performance is comparable to a Sun HotSpot JVM on a 200-300MHz pentium (at the very most, but probably even less!).
The result is that JEmu2 struggles with many games. Don't even think about doing multi-CPU 16 bit games...
No VSync, and not having the ability to actually display 60fps don't help things either.
All is not lost though. BDJ might be a bad platform for emulation, it might still have some use for many game genres.
Considering all the above, it will be well suited for things like Chess and other board games, card games, some adventure games (point-and-click and such), any game that doesn't require fast animation or moving diagonally.
On the plus side, blitting images seems quite fast. Scaling small images to 1080p comes with no perceivable performance cost.
Sunday, August 31, 2008
JEmu2 coming to PS3?
I've done a few tests with BDJ (Java for Bluray disks) and managed to make a start with bringing JEmu2 over to the PS3.
My first test was running JEmu2's Space Invaders emulator, and to my surprise it actually ran quite smoothly!
It took some effort to get things going on PS3, but I think it's quite a good start and encouraging to get the complete JEmu2 to PS3.
I guess I will call it 'BD-JEmu2', and it will involve copying it to a memory stick, inserting the stick in the PS3, and play the stick from the PS3's video menu (this is because the stick with JEmu2 will have the layout of a Bluray disk).
Stay tuned...
My first test was running JEmu2's Space Invaders emulator, and to my surprise it actually ran quite smoothly!
It took some effort to get things going on PS3, but I think it's quite a good start and encouraging to get the complete JEmu2 to PS3.
I guess I will call it 'BD-JEmu2', and it will involve copying it to a memory stick, inserting the stick in the PS3, and play the stick from the PS3's video menu (this is because the stick with JEmu2 will have the layout of a Bluray disk).
Stay tuned...
Monday, January 08, 2007
Upcoming goodness
I think I'll soon be releasing a new version of JEmu2 now that I finally found the (incredibly silly) bug which prevented a number of MSX2 disk games to boot, which include Konami's Snatcher and SD Snatcher (both early Hideo Kojima games of Metal Gear Solid fame).
Both these games are feature more or less the same fantastic cyberpunk story in a 'Blade Runner-esque' setting but are both completely different games: Snatcher is a menu driven adventure game, SD Snatcher is an action RPG game. The rich story really has that Hideo Kojima trademark; thought provoking, intelligent and emotional. People who have enjoyed the Metal Gear games (especially the later Metal Gear Solid games) will know what I'm talking about.
Snatcher has been released on a number of platforms, the most well known (outside of japan) is probably the Sega CD version as that version was the only version to be released outside of japan. To be honest, that version was really much better as the MSX2 version had a few problems: Due to a rushed release, it was actually incomplete; Act 3 was completely missing, making the ending much darker and ambiguous. Because of the rushed release, the MSX2 version was also suffering from long loading times, reportedly partly because of inefficient programming of image decompressing.
On the other hand, the Sega CD version was slightly toned down on violence and some nudity was removed. The MSX2 version can thus be seen as a raw 'uncut' version, which is still worth to be experienced.
SD Snatcher on the other hand more suited the MSX2 and was actually never published on any other platform. It's a unique action RPG game which has some nice surprises in the plot for people who are familiar with Snatcher. Really a forgotten gem! SD stands for 'Super Deformed', which refers to a japanese drawing style where people have strange child-like proportions featuring huge heads and small bodies (see screenshot).
Also a cool game in the upcoming release is Aleste 2, a cool shoot-em up which was also unique to the MSX2 system. JEmu2's MSX emulation shows some minor bugs in this game, fortunately only visible in the introduction sequence. The game itself runs perfect.
Finally, JEmu2 will feature ZX Spectrum emulation in the next release. It's as of yet a fairly simple Spectrum emulator only emulating the 48k Spectrum, but able to run many games pretty well. It does feature emulation of the sound speaker (which sounds quite horrible, to be honest) and Kempston Joystick interface.
The spectrum was a popular home computer from the eighties, which made up its audio visiual limitations (compared to it's more expensive main contender, the C64) with performance: The spectrum was often able to run games at better speed, especially 3D games. Although many spectrum games don't look like much (especially nowadays), there are still many great and very playable games produced for this little machine.
Wednesday, January 03, 2007
Happy 2007
First of all, happy new year!
Looking back, 2006 has been a good year for GaGaPlay.com with many new games and exciting new hardware emulation in JEmu2:
* For the first time in java, Sega X-Board and Y-Board emulation (the most complex hardware emulated in JEmu2 yet, with up to 4 CPU's, math chips, zooming & rotating sprites, FM sound, 16 channel PCM etc).
* The introduction of VirtuArcade, the first ever true virtual arcade emulating 20 arcades at once in a hardware accellerated 3D environment.
* The introduction of pretty accurate emulation of the Sega Master System console.
* The introduction of MSX1/2 emulation with support for Konami SCC and Pana FM-PAC sound add-ons. The SCC emulation even improves over the original, creating a nice stereo output.
* A new homebrew game 'Hyper Blazer', a fast 3D action game. Think of the game as 'Trail Blazer' on steroids, adding many gameplay features to the original.
Special mention should go to Stephan Dittrich, who donated his Motorola MC68000 CPU emulator for use with JEmu2. This CPU is used in systems such as X-Board (After Burner), Y-Board (G-Loc, Power Driver etc), CPS1 (Street Fighter 2) and Snow Bros. Nick & Tom.
Check out his website featuring his project jEnesis, a great emulator of the Sega Genesis with 32X add-on. For the first time in java, running at good speed.
For 2007, the following is in the pipeline:
* Atari ST emulation. I still got a long way to go with this; it's now booting about halfway to TOS 1.02.
* ZX Spectrum emulation. I got a 48k speccy driver working okay, with support of it's 'beeper' sound output and Kempston Joystick. Okay, it's been done numerous times before, but it was a nice little system in it's days with many great games made for it.
* Disk support for MSX. I had this working great before I lost my latest sources. I got it mostly working again, but am running into a problem which prevents it from running the great 'SD Snatcher' (a fantastic 3-Disk cyberpunk action RPG made by Hideo Kojima of Metal Gear Solid fame). I remember having this problem before, but don't remember how I fixed it before losing sources...
* More homebrew games? Hyper Blazer ranks up high in the top 10 of most popular games on GaGaPlay.com...
* .... who knows? My plans tend to change a lot :-)
Looking back, 2006 has been a good year for GaGaPlay.com with many new games and exciting new hardware emulation in JEmu2:
* For the first time in java, Sega X-Board and Y-Board emulation (the most complex hardware emulated in JEmu2 yet, with up to 4 CPU's, math chips, zooming & rotating sprites, FM sound, 16 channel PCM etc).
* The introduction of VirtuArcade, the first ever true virtual arcade emulating 20 arcades at once in a hardware accellerated 3D environment.
* The introduction of pretty accurate emulation of the Sega Master System console.
* The introduction of MSX1/2 emulation with support for Konami SCC and Pana FM-PAC sound add-ons. The SCC emulation even improves over the original, creating a nice stereo output.
* A new homebrew game 'Hyper Blazer', a fast 3D action game. Think of the game as 'Trail Blazer' on steroids, adding many gameplay features to the original.
Special mention should go to Stephan Dittrich, who donated his Motorola MC68000 CPU emulator for use with JEmu2. This CPU is used in systems such as X-Board (After Burner), Y-Board (G-Loc, Power Driver etc), CPS1 (Street Fighter 2) and Snow Bros. Nick & Tom.
Check out his website featuring his project jEnesis, a great emulator of the Sega Genesis with 32X add-on. For the first time in java, running at good speed.
For 2007, the following is in the pipeline:
* Atari ST emulation. I still got a long way to go with this; it's now booting about halfway to TOS 1.02.
* ZX Spectrum emulation. I got a 48k speccy driver working okay, with support of it's 'beeper' sound output and Kempston Joystick. Okay, it's been done numerous times before, but it was a nice little system in it's days with many great games made for it.
* Disk support for MSX. I had this working great before I lost my latest sources. I got it mostly working again, but am running into a problem which prevents it from running the great 'SD Snatcher' (a fantastic 3-Disk cyberpunk action RPG made by Hideo Kojima of Metal Gear Solid fame). I remember having this problem before, but don't remember how I fixed it before losing sources...
* More homebrew games? Hyper Blazer ranks up high in the top 10 of most popular games on GaGaPlay.com...
* .... who knows? My plans tend to change a lot :-)
Monday, August 28, 2006
An old MSX classic
I recently did a bit of work on the MSX part of JEmu2. Not even MSX2, but 'good-ole' MSX1. One of the reasons was that a personal favourite of mine didn't work correctly on it yet: The sadly overlooked 'Iriegas' (a.k.a. 'Illegus'), made by the japanese ASCII corp. (the main creators of the MSX standard).
It plays much like an updated version of the ZX81 classic 3D Monster Maze, but in full colour, much smoother game play and animation, sound, traps you have to jump over, atmospherically changing light conditions, I/R goggles, gold, and this time you can shoot back at your enemies!
Not exactly Doom4 or Half-Life 3, but you can still regard this as a pretty good, early First Person Shooter.
I have some fond memories playing this game, which is at least as scary as the mentioned 3D Moster Maze. Especially the day/night cycles add a sense of urge to finish a level before night has fallen completely.
If you're lucky, you have found the infra red goggles before that happens, but they tend to deplete when you need them most which leaves you helplessly wandering in the dark, hoping you'll find new goggles or a brand new day to arrive before the baddies find you, or before you fall into a trap.
Even the sound, which is merely a pulsating drone indicating the distance to a baddy, adds a lot to the atmosphere.
The things that were missing from JEmu2 to allow this game to work correctly were proper SCREEN 3 support and support for zoomed sprites.
The use of SCREEN 3 (a low resolution graphics mode) is probably one of the reasons this full 3D game moves so fluidly on an old machine like the MSX.
I will add this game to the next version of JEmu2, and I recommend anyone to give this one a go!
It plays much like an updated version of the ZX81 classic 3D Monster Maze, but in full colour, much smoother game play and animation, sound, traps you have to jump over, atmospherically changing light conditions, I/R goggles, gold, and this time you can shoot back at your enemies!
Not exactly Doom4 or Half-Life 3, but you can still regard this as a pretty good, early First Person Shooter.
I have some fond memories playing this game, which is at least as scary as the mentioned 3D Moster Maze. Especially the day/night cycles add a sense of urge to finish a level before night has fallen completely.
If you're lucky, you have found the infra red goggles before that happens, but they tend to deplete when you need them most which leaves you helplessly wandering in the dark, hoping you'll find new goggles or a brand new day to arrive before the baddies find you, or before you fall into a trap.
Even the sound, which is merely a pulsating drone indicating the distance to a baddy, adds a lot to the atmosphere.
The things that were missing from JEmu2 to allow this game to work correctly were proper SCREEN 3 support and support for zoomed sprites.
The use of SCREEN 3 (a low resolution graphics mode) is probably one of the reasons this full 3D game moves so fluidly on an old machine like the MSX.
I will add this game to the next version of JEmu2, and I recommend anyone to give this one a go!
Tuesday, August 22, 2006
Announcing VirtuArcade
I'm currently working on the next step in online emulation: VirtuArcade!
VirtuArcade is, as the name suggests, a totally 3D representation of a 'real' virtual arcade with multiple machines, all running simultaneously in real-time. You can simply walk around to look what games the arcade has running, walk towards the game you feel like doing, insert a 'virtual' coin and start playing.
The idea was also to make things as scalable as possible, so running an arcade with many games at once should be doable on today's machines.
To pull this off, a number of optimizations, tricks and clever cheats were needed.
I have an early prototype running locally now, which already works nicely but the graphics and models (obviously) need work, as you can see below.
Screenshot of the prototype displaying 6 fully working arcades at once at full speed:
VirtuArcade is built on JEmu2, so all hardware currently emulated by JEmu2 work in VirtuArcade too and they will be simultaneously updated.
You can regard VirtuArcade as a new, enhanced 3D front-end for JEmu2.
Stay tuned!
VirtuArcade is, as the name suggests, a totally 3D representation of a 'real' virtual arcade with multiple machines, all running simultaneously in real-time. You can simply walk around to look what games the arcade has running, walk towards the game you feel like doing, insert a 'virtual' coin and start playing.
The idea was also to make things as scalable as possible, so running an arcade with many games at once should be doable on today's machines.
To pull this off, a number of optimizations, tricks and clever cheats were needed.
I have an early prototype running locally now, which already works nicely but the graphics and models (obviously) need work, as you can see below.
Screenshot of the prototype displaying 6 fully working arcades at once at full speed:
VirtuArcade is built on JEmu2, so all hardware currently emulated by JEmu2 work in VirtuArcade too and they will be simultaneously updated.
You can regard VirtuArcade as a new, enhanced 3D front-end for JEmu2.
Stay tuned!
Monday, July 31, 2006
Update
Progress is continueing in JEmu2. For the next version, the following changes are done:
1) Much reduced memory footprint in all games. This might lead to more games being able to make it as applets (which have more memory restrictions).
2) Reduced and sometimes even eliminated Sega Y-Board graphics glitchiness. This is kind of a hack because I don't know exactly how the hw should behave with regards to interrupts. For the time being, I overclocked the 68000 CPU's for some games and fiddled with IRQ2 timing which seemed to solve most problems. Because idle loop elimination was already implemented, this didn't cause a noticable performance penalty.
3) Added support for Strike Fighter
4) Added 3 new rendering methods: Plain, Plain with Scanlines, Plain with Scale2x. These rendering methods don't apply any filtering like the current 'default' rendering methods.
I'm also considering to change the local caching of the games. Currently, I'm relying on Java Web Start to do this, but this leads to large downloads the first time you start JEmu2 (all games are downloaded then). Especially with 16bit games (which are generally larger than 8bit games), this is becoming an increasing problem.
A new caching scheme is being implemented where only one game is downloaded from the server if you start that game for the first time, instead of all games at once.
1) Much reduced memory footprint in all games. This might lead to more games being able to make it as applets (which have more memory restrictions).
2) Reduced and sometimes even eliminated Sega Y-Board graphics glitchiness. This is kind of a hack because I don't know exactly how the hw should behave with regards to interrupts. For the time being, I overclocked the 68000 CPU's for some games and fiddled with IRQ2 timing which seemed to solve most problems. Because idle loop elimination was already implemented, this didn't cause a noticable performance penalty.
3) Added support for Strike Fighter
4) Added 3 new rendering methods: Plain, Plain with Scanlines, Plain with Scale2x. These rendering methods don't apply any filtering like the current 'default' rendering methods.
I'm also considering to change the local caching of the games. Currently, I'm relying on Java Web Start to do this, but this leads to large downloads the first time you start JEmu2 (all games are downloaded then). Especially with 16bit games (which are generally larger than 8bit games), this is becoming an increasing problem.
A new caching scheme is being implemented where only one game is downloaded from the server if you start that game for the first time, instead of all games at once.