I programmed a little game just for fun for my mini pc 🙂
It is a cute little puzzle game with the “Lights Out“-mechanic. The game needs about 1MB of RAM and a VESA2-capable video card. It attemps to auto config a sound card for 16bit sound and MIDI music. It is written in C++ and was compiled with djgpp.
Furthermore I designed it to fit on a single 3.5″-diskette because why not 😛
I saw TheRasteri’s video about a mini PC the other day and fell in love with the idea – so I built my own 🙂
The video in question:
And that’s my take on the idea:
I got a somewhat good deal on a mainboard from the UK, took some measurements and build a face- and backplate for the casing. The clunky power switch and overall design tries very hard to look like a retro PC, haha 😀
Specs: CPU: Embedded low-power onboard VIA Mark 533 MHz RAM: 133 Mhz SDRAM 144-pin SODIMM 256MB HDD: 2GB CF-Card I/O: 2 x USB 1.1; 1x Gameport; 1x Line Out; 1x HDMI out; 2x PS/2; 1x VGA GPU: VIA Mark CoreFusion VRAM 32 MB Sound: *wink* *wink* Avance Logic ALS100 Plus+ PnP OPL3 sound card for PC/104 Power: 5V@4A
Since I wanted a sound card that was compatible with most standards so I can play as many games as possible with it I desided on the Avance Logic ALS100 Plus+. The IC is pretty well documented what made designing the sound card much easier.
It’s features are:
Compatibility • Adlib • All Sound Blaster Pro applications • All Sound Blaster 16 applications • MPU-401 UART MIDI • PC Speaker • Sound Blaster ADPCM • Yamaha OPL3 FM Synthesizer
That’ll cover every game I’m interested in. The PC speaker is mixed in with the audio out by the IC, that’s pretty cool.
The hardware specifications of the new sound card are as following:
Hardware specifications • Software selectable DMA lines (0, 1, 3) • Software selectable interrupt lines (5, 7, 9, 10, 11) • PC/104 ISA Plug and Play bus interface • DMA interface with FIFO • Enhanced Game port • 8-bit or 16-bit stereo digital audio from 4 kHz to 48 kHz • 3D Sound Effect Processor • FM/wavetable synthesis via OPL3 • Wavetable connector • Stereo Line-Out
Design and development
If you’re just here for the design files and aren’t interested in the failures I’ve had designing the sound card just skip to the end 🙂
Then I read the manufacturer’s design sheet to build a sound card for the ALS100 Plus+ and added some minor noise cancellation.
Yeah well, the IC is a bit bigger than a PQFP-100 (10% bigger to be exact). Meh. I tried to shorten the legs but ultimatively ordered another PCB. Bummer.
If you thought I would learn from my first mistake – think again! Yeah, so the OPL3 is also wider than a normal SOIC-24. This time I shortened the legs and soldered it down and went to testing (I shifted the IC down in the photo to better visualize the difference).
8bit- and 16bit-audio worked straight of the box so was the PC Speaker, but the FM synthesis was garbled. Staring at the schematics revealed another pretty stupid mistake:
If you havn’t spotted it yet: I switched around the adress lines. I cut the traces on the pcb and rewired them and FM synthesis was finally working.
Fourth fail (more like a foreseen issue):
There was a faint hum in the audio when plugging in a wavetable daughterboard. The soundcard has a digital and an analog ground which are connected at one point:
That’s fine and dandy – but the wavetable did just the same, so it created a ground loop. I removed the resistor on the sound card and the hum was gone 🙂
The dimensions for the wavetable daughterboard are approximately like this:
While testing I used a Dreamblaster X2 which fits nicely. Also pictured: The fix for fail #1 and an OPL3-clone.
*= Missing from BOM: • PC104-Connector, available on mouser.com • OPL3, available new old stock from various suppliers • ALS100 Plus+, unfortunatly EOL since the late 90s, so you have to desolder it from a working sound card.
Since the most questions people send me are about VRC4 repros I think its handy to have a dedicated post for some infos about them 🙂
If you want to convert a VRC4 game into another you need to rewire the VRC4 in some cases. Have a look at this chart:
Any VRC4 to VRC4b
Lift pin 3 of VRC4 (skip if coming from a VRC4a)
Lift pin 4 of VRC4
Solder pin 3 of VRC4 to PRG pin 11 (skip if coming from a VRC4a)
Solder pin 4 of VRC4 to PRG pin 12
Any VRC4 to VRC4c
Lift pin 3 of VRC4
Lift pin 4 of VRC4
Solder pin 3 of VRC4 to PRG pin 6
Solder pin 4 of VRC4 to PRG pin 5
Any VRC4 to VRC4d
Lift pin 3 of VRC4
Lift pin 4 of VRC4 (skip if coming from a VRC4a)
Solder pin 3 of VRC4 to PRG pin 9
Solder pin 4 of VRC4 to PRG pin 10 (skip if coming from a VRC4a)
Any VRC4 to VRC4e
Lift pin 3 of VRC4
Lift pin 4 of VRC4
Solder pin 3 of VRC4 to PRG pin 10
Solder pin 4 of VRC4 to PRG pin 9
Any VRC4 to VRC4f
Lift pin 3 of VRC4
Lift pin 4 of VRC4
Solder pin 3 of VRC4 to PRG pin 12
Solder pin 4 of VRC4 to PRG pin 11
Please note that the letter after VRC4 does not mean a revision of the IC but rather revision of the PCB!
You rewired everything according to the chart and the screen still looks garbled? You may need to remove or add some components to the PCB, namely a 1K resistor, a 1N4148 diode a 2K*8 SRAM 150ns (or faster) IC and a ceramic capacitor.
The SRAM needs to be pin kompatible with the MB8416A-15LZ:
These are the components that need either be removed or soldered in:
Games needing these components:
Ganbare Goemon Gaiden 2: Tenka no Zaihou
Games that need these components removed:
Bio Miracle Bokutte Upa
Racer Mini Yonku: Japan Cup
Teenage Mutant Ninja Turtles I & II
Tiny Toon Adventures
Wai Wai World 2: SOS!! Paseri Jou
I think that should cover all questions 🙂 If not, just drop me a mail through the contact form, I’m always happy to help,
I snatched a nice luggable for a low price. Unfortunatly the auction listing said “untested” – we all now what that means 🙂
So of course – plugging in the AC cord and switching it on does nothing. I took some pictures of the repair for your viewing pleasure 🙂
The outer inspection relvealed nothing speacial. There is a flap for some extension cards and an old style AT connector for the keyboard. Next I’ll pop it up.
The build quality is.. uhm, questionable I guess. No cable management and all the connectors are glued in place.
Next step: Pull all the components out.
The battery pretty much jumped into my face when moving the power supply. And there is quite a lot of gunk and even plastic spirals rolling around in the case.
Nicely packed RAM banks, no math coprocessor (wasn’t expecting one anyways) – but overall pretty nice! So let’s get the mainboard out of there and see what the battery did to it…. fingers crossed!
Ew! The keyboard connector sucked up all the batterie’s evil juices. And well, some splatters here and there on the mainboard. Let’s pop the cell out.
Yep, it smelled just as bad as it looks. The positive rail under tha battery is heavily corroded and some of the thick rail above the nasty blob has been eaten away. Ew.
I desoldered the keyboard socket and threw it in highly acidic vinegar and put it after half an hour in an ultrasonic cleaner. It was squeky clean after that.
The positive battery trace was cleaned with a glas fiber pen, same goes for the attacked thick trace. After that I refreshed the exposed copper with some solder.
Next up I measured the voltages of the PSU:
The PSU was spot on. So I checked the motherboard and stumbled upon a short between +12V and GND.
If you’ve been dealing with technology from around the 90s you already know the culprits.. tantalum capacitors!
The first cap I removed was shorted, oh oh. So I desoldered all of them and tested them – about all of them were dead.
I replaced all the upright tantalums, plugged everything together and…
Woohoo! It booted fine! So let’s see if the hard disk works.
Yep, it is pretty loud but works fine. 20MB capacity full of uninteresting documents and Lemmings! Nice.
So knowing the electronics are okay I had a closer look to the casing.
This is how the left hinge for the display looks like.
Holy smoke, what happened here? At first I thought it just snapped over time, but there are weird marks all over it – like someone tried to stab it with a knife.
Some goes for the “brakes” of the hinges. Just have a look at them!
I scrubbed them clean and 3D printed the missing bit of the hinge. Unfortunatly all I had at hand was maroon resin, but you won’t be able to see the hinge anyways 🙂
That green stuff is lithium based grease for increased hinge slipperyness, if that’s a word.
The desoldered battery was replaced with three industry grade NiCd cells and velcroed to the HDD caddy.
The HDD was replaced with a CF card mounted to the expansion bay for easier access.
Yeah well, the CF card is sticking out and the sliding door for the expansion cards won’t close this way. Unfortunatly I forgot to take a photo of it, but I 3D printed an adapter to move the CF card further in.
The jumpers on the CF adapter were already set correctly – to a single master disk.
So after mounting the CF card I tried to boot the machine. Well, the BIOS will detect the CF card automati.. no. No automatic detect for HDDs on this BIOS. So I googled and found “IDTHEIDE” – a tool that will find the correct cylinders/heads/sector count of an HDD.
I tried to put the program to a floppy disk and boot from it – no dice! The floppy drive was pretty much dead. So I tried a gotek flashed with flashfloppy and put an image of the floppy on it.
The tool worked perfectly! It detected the HDD straight away and all I had to do is to write down the values and put them into BIOS.
After entering the correct values the CF was recognized correctly. Next up I installed MSDOS6.22 I’ve got for free from the web archive. I backed up Lemmings from the original HDD and put it back to the CF card – it worked! But no sound, meh.
So I shuffled through my stuff and found a nice Sound Blaster 16, put it in and installed it. No problems there! Booted up Lemmings again, this time with glorious sound!
There was a serial Mouse included in the auction for this machine. Plugged it in, installed the Microsoft Mouse Driver 11 (if I recall correctly) and booted Lemmings again to test it. Worked fine!
I installed Win3.11 just for fun – it runs okay but sometimes crashed. Guess it wants more than the 2MB RAM the mainboard currently has.
Lets have a last look at the innards before closing this beast:
I had to install an HDD adapter plate for the now missing HDD. An installed HDD gave structural strength to the assembly to the left. If left out, the assembly to the left tends to sink down.
Finally I put the backplate on and screwed it down.
Sheesh. When screwing the backplate down one of the inserts lifted straight out. Glued it down with epoxy after that.
At least, this beast was finally done. Next up are some specs.
I’ll print out the BIOS settings and put them between the screen and the keyboard. Just in case.
PS: I tested tested the RAM and pretty much everything else 🙂
This is just a quick one. I wanted one of these fancy easyflash cartridges for the C64, so I built one and changed some stuff and added a fuse. This post is mostly to keep the project files ready for anyone to download and reproduce the cartridge :o)
That’s what the cartridges look assembled. They sport a fancy led on the front and big buttons on the top for my clumsy fingers to operate.
The LED is wired through the pcb to a footprint. The hole in the pcb makes room for the LED socket. You can wire a LED normally if you like, the footprint is between the USB port and the SPECIAL button.
I printed to bom to the back, for easier repair. The programming pins for the cpld are also available, just in case you need them for debugging. In addition to that the pcb is now protected by a fuse.
The gold plated connector is chamfered 45° so plugging it in is a big easier on the connector.