Saturday, March 19, 2005

Demons and Dragons - Part 3

Well, it's playable now. It's got robotron-style movement, with seperate controls for moving and firing. Moving actually uses an analog joystick, which can allow speed control, but I haven't actually hooked that up yet.

The only thing that's really missing is sound. It writes sample numbers to a port, so there must have been an additional audio board. Hopefully we can dig up more info on this, if the board and/or ROM images still exist anymore.

Friday, March 18, 2005

Demons and Dragons - part 2

Well, as it turns out - the one piece of Professor Pacman hardware that I didn't emulate is used by D&D. The good news is - I got it working tonight! Now profpac passes all self-tests, and demndrgn runs into the game portion. I need to map the controllers and dips now, since I can't control the player yet.

Right now there is no sound, but it sure seems like it was supposed to have speech! There is a part where a wizards head fills the screen, and his lips move. I wonder what's up with that?

Anyways - pretty neat stuff

Update: in-game screenshots...







Thursday, March 17, 2005

Demons and Dragons

This is a prototype game that is supposed to run on Professor Pacman hardware, or something very similar. I got it run a little bit...but it's not playable yet.











Saturday, March 12, 2005

Xen

I've been watching the Xen project for a while, and I think it's probably time I tried it. I like to play around with experimental OS's like Plan9 from time to time. I'm also hoping to build some custom Linux kernels for a work project.

Xen is Open Source software that allow you to run multiple OS's concurrently, with little loss of performance. It achieves this by actually requiring the OS to be slightly modified to work with Xen. As a benefit, any OS can take advantage of Linux device drivers, as well. As a side effect, it means no repartitioning is necessary to try a Xen-compliant OS.

Unfortunately, MS won't let the Xen-ified WindowsXP be distributed, but other OS's are coming around. The Linux 2.6 kernel is already ported, and some distros are starting to bundle Xen in now.

It will be interesting to see if this is a fad or the way of the future.

Midway Tornado Baseball

I got one of these PCB's yesterday. The ROMs look intact, so hopefully this will help with the "No good dump known". The auction claimed that it didn't work when powered up, but I'm betting that's mostly due to the missing CPU chip. :)

Friday, February 18, 2005

I'm 37....I'm not old!

Happy Birthday to me! I've been waiting for about 6 months to use that line (from "Monty Python and the Holy Grail" , a fine flick if you like that sort of thing)

I haven't switched to a new blog yet, since I've been sidetracked by the idea of using some kind of wiki/blog combination. The blog will remain here until I make up my mind.

Tuesday, February 15, 2005

Square-wave aliasing

So, I spent a bit of time addressing this problem.

Thank for the comments! First, I did notice that certain frequencies are more problematic than others. Higher frequencies tend to have stronger harmonics which fold over. However, if you have a tone that divides evenly into (sampling_rate/2), the folded harmonics land on top of the non-folded ones, so it sounds ok. Still, it's not right, but it sounds ok. I also know that I could process things at a higher sampling rate internally, and post filter it.

What was bothering me was this - in the "synthesis" problem, I know _everything_ about the waveform I'm trying to generate. So, it seems that using that information from N previous samples, I should be able to come up with a "optimal" solution in some sense.

As it turns out, one approach is to apply a window filter to the previous bit or bits, before generating the samples. The simplest thing is to use a one-bit-long rectangular filter. This is easy - and definitely sounds better than doing nothing. But it doesn't do a very good job as a low pass filter. For one thing, the cutoff frequency is fs, not fs/2 - but it does roll off well before that. Some of the other modules in the discrete sound system do this already as well.

Finally, I experimented a bit using a low-pass filter based on a Kaiser window. This gives great results, but you really need to use at least a few more of the previous sample bits to get decent results. 10 or so is darned near perfect.

Anyways, I'll probably look at some other approaches, including optimal low-pass filter designs, but in the end I'm not sure it's worth doing much more than a rectangular window.

A fine excuse to learn more signal processing, anyways!

Blockade.c sound again

MAME 0.92 has my simple code for doing the square wave sound. I was hoping to do some sampling of the noise-generator circuit this weekend. However, I made a stupid mistake and ended up messing up my Comotion and Minesweeper boards. :( Nothing serious, but I need to order some parts to get that part of the circuit working again.

You can hear the aliasing distortion that I was talking about in Minesweeper, since it generates high-pitched tones. I'm still working on that, since it's turned into a fun math exercise..worthy of a seperate post...

Sunday, February 06, 2005

Blockade.c sound, new blog in the works

Well, I've got partial sound working in blockade.c. Definitely better than silence!

I'm trying to come up with some simple way to deal with the aliasing distortion you get from generating high-frequency square waves the "simple way". This is really apparent in Minesweeper.

For the mathematically inclined, the problem is described and completely solved by the approach in this paper:

http://ccrma-www.stanford.edu/~stilti/papers/blit.pdf

However, it's a pretty heavy-duty approach - probably too unwieldy for MAME.

I'm also getting ready to move to a blog based on Movable Type. I really want "categories", so that I can blog about anything and not alienate the people only interested in MAME. :) I grabbed avoidspikes.com and I hope to set up shop there within a week or so. I'm going to move my dsplib.com content there as well.


Tuesday, February 01, 2005

Amutech Minesweeper Cocktail/Standaround

Well, I got a PCB from eBay. As suspected, it is an exact clone of the Gremlin blockade hardware, except for the connectors. The program roms are the same as our existing set, but the graphics are slightly different. (The scores can be displayed in four different directions).

So, it turns out that fixing the port settings in drivers/blockade.c enables 4 player mode. I did this, along with some general cleanup. I'll submit the updated driver soon, but I'd like to try and add some sound first.

Now if only a 4-player blasto would show up...


I'm on the blog bus now too. Hi Tim!

Fun with FPGAs - recreating the Atari TIA, Part 1

I have been playing with recreating the Atari TIA chip as used in the original 2600 in an FPGA.  I know this has been done a few times alrea...