Archive for the ‘Toy Box’ Category

M.A.M.E. Emulator for Microsoft XBOX Update

Friday, July 20th, 2001

xbox_mame_21.jpgThis is a brief update to a previous article I posted about porting M.A.M.E. to the Microsoft XBOX. I have managed to remove just about all of the bugs in the rendering code.

It’s even a little faster than it was before.

I’ve fixed all the blown out colour & gamma problems and the sizing issues of the screen.

Apart from about a dozen games that have incorect colours everything runs just perfectly. MetalSlug X looks superb now that it has the correct colour palette. The bugs in Microsoft’s latest 7.0 C++ compiler I managed to work around by just tuning the optimisation parameters for those particular source files.

Sound works. A little glitchy on one or two drivers. Nothing that’s too annoying.

I’ve implemented code to handle the analogue sticks so that games like Crazy Climber and Karate Champ can be played as they were meant to be with dual joysticks. I’ve also implemented code to handle the four joypads, so that you can play four player Gauntlet and three player Rampage.

I’ve implemented a simple menu system that scans the hard drive at start up for available M.A.M.E. ROMs and displays them in a list that lets you rapidly scroll through to select the game you want. Also figured out a reset emulator bug that was annoying me that would prevent you returning to the menu system. Turns out the bug was in beta 14 of the M.A.M.E. source code that has since been fixed in the beta 16 release and it just required an update to my M.A.M.E. sources. A few other latent bugs got fixed automagically by taking care of that. The emulator runs on both the silver Alpha hardware and the “final” debug stations just fine, in case you were wondering.

Now if only Microsoft would let me legally distribute this software I’d be a happy person. Unfortunately, only registered Microsoft XBOX developers can legitimately obtain this software (okay, apart from the fact that only registered XBOX developers actually have an XBOX that can run the software at the time of this writing).

Here’s another like about porting M.A.M.E. to the Microsoft XBOX just in case you missed the one at the top.

Atari 2600 VCS Emulator for GBA

Wednesday, June 20th, 2001

Gameboy

Ahhhh! The GameBoy Advance. What a wonderful machine. So light! So refreshing! So versatile!

Another Atari VCS 2600 emulator for the new Nintendo GameBoy Advance.

I’ve been tinkering with this for well over 8 months and it’s now at a stage where I’m prepared to show it off.

The emulator is written in pure assembly language, the main emulator core is completely coded in Thumb and runs from ROM. The CPU emulation is a combination static recompiler & interpretive core — for those pesky VCS games that run parts of their code out of RAM — and is coded in ARM assembly running from the internal WRAM of the GBA.

Frame rate is a respectable 39fps, and a little more optimisation will get that to a nice 60fps. There is no sound emulation yet, and I’ve only implemented digital joysticks and not all ROM bank switching schemes are in place so only 2KB, 4KB and some 8KB games actually run.

One thing I must shamefully admit is that it currently doesn’t run on the real hardware, only under the VGBA emulator. I have yet to figure out what I’m doing wrong though I suspect it’s something very obvious.

The emulator can render the game in three modes currently, and I’m thinking of adding a 4th.

In ” tall mode” you have to rotate the GBA ninety degrees counter-clockwise and that gives you a nice tall screen that renders out almost all VCS games correctly — though obviously only 160 pixels wide. The actual pixel clock resolution of the Atari 2600 was only 160 pixels anyway so no information is really lost. The other two modes render at the correct orientation but drop pixels or add scan lines as appropriate. As the objects move around on screen they seem to squash/stretch slightly with very noticeable pixellation that I’m not happy with. I’m thinking about how to get a cheesey pixel filtering system implemented that would smooth out this problem by anti-aliasing across two or more pixels. I’m still thinking about that. I’d rather have a fast emulator with imperfect graphics than a pixel perfect emulator that only runs at 30% of the correct speed.

Stay posted for more updates.

Notice that these pictures were taken with the PrtScn button on my keyboard and they still look bad. I really do suck at all forms of photography even if it is only performing a screen capture.

Somebody stop me before I emulate again!!

Screenshots:

The original Atari Asteroids.
Screenshot 1 for Atari 2600 VCS Emulator

Activision’s Pitfall
Screenshot 2 for Atari 2600 VCS Emulator

Screenshot 3 for Atari 2600 VCS Emulator

Screenshot 4 for Atari 2600 VCS Emulator

Screenshot 5 for Atari 2600 VCS Emulator

Screenshot 6 for Atari 2600 VCS Emulator

Screenshot 8 for Atari 2600 VCS Emulator

Activision’s Pitfall in landscape mode stretched to fill the screen.
Screenshot 9 for Atari 2600 VCS Emulator

Activision’s Pitfall in landscape mode.
Screenshot 10 for Atari 2600 VCS Emulator

Activision’s H.E.R.O.
Screenshot 11 for Atari 2600 VCS Emulator

Screenshot 12 for Atari 2600 VCS Emulator
— Justin Lloyd

M.A.M.E. Emulator for Microsoft XBOX

Wednesday, June 6th, 2001

xbox_mame_21.jpgSo some loony let me loose on a Microsoft XBOX development kit a month or two ago and I had some spare time on my hands this last weekend so it was only natural that I do something “creative”. M.A.M.E. for the XBOX is the result, and it was a lot easier to port to another platform the second time around than it was this time last year . The XBOX version runs at a rock solid 60 FPS on all the old 80’s ROMs I’ve tested it with, and also the NEOGEO ROMs too, and this is only with a debug build. There are a few lines in some of the drivers of the M.A.M.E. source code that give the MS VC++ 7.0 compiler the screaming ghoulies so I have not been able to test a fully optimised compile yet.

I’ve got to tweak a few bugs in my rendering code that copies the arcade game bitmap that M.A.M.E. creates each video frame to the XBOX bitmap and that will remove some of the blown out colours you can see in the screen shots and also the fact that NEOGEO games only fill two third’s of the screen.

I also need to come up with a decent menu system & interface for the emulator, right now, if you want to change games you have to restart the XBOX console, edit a config file that contains the game name you want to play, and then reload M.A.M.E.

So yeah, this should be the ideal machine to put in a M.A.M.E. cabinet I am still trying to find time to construct. I’d like it to be an XBOX. The console has a built-in hard drive, Ethernet connection, and supports analogue & digital controlllers, and only costs a few hundred American dollars, plus it already supports a standard TV signal so I can wire up any decent TV instead of an expensive Wells Gardner monitor.

The screenshots below were taken with a Kodak Digital DC240 camera in very poor lighting conditions, plus I was in a bit of a hurry to take them too as I had borrowed the camera from a colleague who needed it back to finish up some work.

As an aside I have come to the empirical conclusion that I am an utterly awful photgrapher. I’m going to have a more artistically inclined colleague take some far better pictures later on and use those instead. I’m also hoping to get an .AVI of the emulator actually running a few games at some point in the near future.

I posted a small update on my progress

SCREENSHOTS

Ghosts & Goblins with all the colours blown out. The second game I managed to get to load. Note the subtle brand placement of the Starbucks’ coffee cup. small_xbox_011.jpg
The XBOX development kit (the big silver box) tucked away under the desk alongside a PlayStation 2 devkit. Those big meaty paws belong to Nate, a colleague. He’s a big man, probably the only man I personally know who’s hands made the prototype XBOX controller seem small when he held it. small_xbox_021.jpg
More Ghosts & Goblins. The prototype XBOX controller propped up on the top of the PSX controller behind it. Or perhaps the XBOX controller is attempting to mount the PSX controller. Microsot & SONY. Who’s your daddy? small_xbox_031.jpg
More G&G. I figured out how to turn on the camera flash so you can get a better look at the XBOX dev kit. small_xbox_041.jpg
A half hour later, a little tweaking and we have better colour control in the emulator. small_xbox_051.jpg
The XBOX dev kit boot loader with a couple of demos already sat on the hard drive and the last but one item declaring itself to be XBOX M.A.M.E. small_xbox_061.jpg
  small_xbox_071.jpg
  small_xbox_081.jpg
Donkey Kong attract mode. small_xbox_091.jpg
The first level of Donkey Kong. small_xbox_101.jpg
  small_xbox_111.jpg
  small_xbox_121.jpg
NEOGEO Metal Slug. The first game I loaded on the emulator. I don’t yet have the rendering system properly implemented so it is squashing the screen horizontally. small_xbox_131.jpg
  small_xbox_141.jpg
NEOGEO Metal Slug running just fine. Strangely the NEOGEO emulator had pretty decent colour reproduction, though I think this was due to the fact that the game should have been dark and the overblown colours just made this scene look “correct.” small_xbox_151.jpg
The less said about my photography skills in this one, the better. small_xbox_161.jpg
   
   
   
   
   

Atari 2600 VCS Emulator for SONY PlayStation 2

Monday, December 4th, 2000

atari26001.png

After successfully porting M.A.M.E. to the Sony PlayStation 2 I just had to try and port my generic Atari VCS 2600 emulator. The results are good. I’ve mapped the video display on to a cube that can be rotated around as you play. With VSync turned off the emulator runs at well over 300 frames per second, and whilst I have yet to do it, I could conceivably place different games on each side of the cube and still have it run at 60 fps with a little optimisation.

I took a few pictures of the Atari VCS emulator with a handheld digital camera — sorry about the camera shake and poor lighting. ^_^;

Note that “Wizard of Wor” and “Space Invaders” are rotated around on the cube. Makes it difficult to play but interesting to watch. Hmmm… that gives me an idea for a game design! =^_^=

SCREENSHOTS

Activision’s Pitfall running on a SONY PlayStation 2. Activision’s Pitfall running on a SONY PlayStation 2.
  vcs0021.jpg
  vcs0031.jpg
  vcs0041.jpg
  vcs0051.jpg
The SONY PlayStation 2 development hardware, a DTL-1000, tucked away under the desk. “Would you like that SONY super-sized for only $18,000 more?” vcs0061.jpg
Atari’s Space Invaders mapped on to a spinning cube. The lights of the PS2 devkit glow eerily beneath the desk. vcs0071.jpg
Playing Atari’s Space Invaders properly. vcs0081.jpg
Wizard of Wor. vcs0091.jpg
Wizard of Wor mapped on to a rotating cube. vcs0101.jpg