Subscribe via RSS
17Oct/200

OpenTTD 0.1.4 on TurboLinux 1.1 for Power PC

So, TurboLinux 1.1 is up and running on my Power Computing PowerCenter 180. It took a lot of effort and what is the result? A cobbled-together version of RedHat 2.0 for PPC! Ancient. I should probably stick to tuxracer, but that may even be 'too new'. I want to get OTTD running on this, so I've chosen a really early version that will hopefully mean I don't need to uplift the entire kernel/OS to get running.

Automake and Autoconf

To build OpenTTD, we'll need an appropriate version of SDL. I chose 1.2.1 and, upon trying to build this, found out that it then needs newer versions of Automake and Autoconf. Actually, it requires Autoconf 2.13 and, perfectly, we only had 2.12 from the CD-ROM! One point makes a difference, eh? Linux from scratch has a great tutorial here for autoconf, so I just followed the instructions and installed very easily.

tar -xzvf autoconf-2.13.tar.gz
cd autoconf-2.13
./configure --prefix=/usr
make
make install

automake 1.4-p6 was then built and installed (same process as above, but with a different archive and folder name)... and now SDL would behave.

SDL 1.2.1

SDL was actually very straight-forward, once I knew what I was doing. I actually initially started down a path of upgrading the compiler and libc, but then quickly decided that it was a dependency-can-of-worms and just left everything as 'stock' as possible. So, back to SDL, downloaded 1.2.1 from here, extract it and try to configure it. Actually, you can't, you need to call autogen.sh first...

./autogen.sh

With the above auto* tools installed, autogen will sit quietly for a few minutes and then tell you that you're ready to run configure...

./configure

This completed cleaning, so now we just make...

make

This then took hours... and eventually failed! There was a very obvious error: the installed version of RedHat 2.0 (I mean, TurboLinux 1.1) does not have a linux/joystick.h header file! What to do/guess?

./configure --disable-joystick

It didn't complain, and rebuilt the Makefiles... including those in the src/joystick folder... bad sign? Let's quickly build that and see what happens...

cd src/joystick
make

It compiled fine! Seems that it still needs to create a 'don't make anything' Makefile in there. Also, you could see a new GCC arg of -DDISABLE_JOYSTICK, so my fluke worked perfectly. Anyway, let's go back and re-build.

cd ..
make

The build continued... And finished! What next?

make install

This also succeeded, with a few warning through it, and a bit of doco which zoomed past, not allowing me to scroll back up! Regardless, the following is used when configuring:

which sdl-config
/usr/local/bin/sdl-config

Nice! But actually, it wasn't... I'd later find out that half of the source was still expecting joysticks and that I should've performed a make clean when I re-configure'd! Also, the SDL bits and bobs landed in the /usr/local folder... not optimal on this system, so at the very start, if you're playing at home, use this configure line instead:

./configure --disable-joystick --prefix=/usr

And then OTTD will build! Or so we hope...

OpenTTD 0.1.4

The source was extracted and I started by trying to configure:

# ./configure
error: permission denied
# chmod a+x configure
# ./configure
: bad option

Actually inspecting the configure script just shows it replacing the SDL variables in a JamFile? Uh oh... not a Makefile... we don't have Jam on here! There's also a Makefile, does that work?

# make
...
Makefile:113: window.d: No such file or directory
...

Eh? Started building OTTD and it was quickly apparent that it hated the Makefile. I started creating a new version, and things were working, so I looked at the old one again and realised the line-endings were incorrect! Make sure your Makefile has just \n and not windows endings! Kicking it off again, all was working fine, until it got to minilzo.c/.h.

minilzo.c:249: Invalid token in expression

This file is sprinkled with multi-line \'d source and gcc simply hates it all... so it had to all be collapsed.

#define LZO_CHECK_MPOS_DET(m_pos,m_off,in,ip,max_offset) \
		(m_pos == NULL || (m_off = (lzo_moff_t) (ip - m_pos)) > max_offset)

#define LZO_CHECK_MPOS_NON_DET(m_pos,m_off,in,ip,max_offset) \
	(BOUNDS_CHECKING_OFF_IN_EXPR( \
		(PTR_LT(m_pos,in) || \
		 (m_off = (lzo_moff_t) PTR_DIFF(ip,m_pos)) <= 0 || \
		  m_off > max_offset) ))

All those slashes weren't allowed... so a quick find/replace in Notepad++ of '\\n' to '' worked a treat. lzoconf.h also had a few... but, with these all collapsed...

unix.c:10: sys/statvfs.h: No such file or directory

Indeed, the file didn't exist! But, statfs.h did, so I did a quick rename! And well, it built! And failed when I ran it as english.lng was missing. Usually you'd build the strings, but I stole the file plus the other required GRFs from my standard TTDX Data Archive.. that was always kept near for emergencies such as this!

DSC01038

And it loaded! Slow, chuggy and crashy with lots of frameskip warning shown in the console. Actually, the whole thing would segfault when I tried to move the window on the screen. From here, I'm happy to have achieved this much, but I'm not going to polish it. Instead, it's time to test a newer version of Linux.

Filed under: Apple No Comments
15Oct/200

TurboLinux 1.1 on a PowerCenter 180

I've been meaning to try this for a long time, after getting BeOS to work on the PowerCenter. Actually, I now realise I haven't even posted about that... I promise to do that later. Anyway, I'd recently been scouring the vintage column on eBay and trundled across a beautiful jewel-cased 2-CD version of TurboLinux 1.1 for PowerPC (original site). There was absolutely no one bidding on it, so I took that and a camera for a Raspberry Pi, of which I'll tinker with later.

DSC00927

DSC00930 DSC00936 DSC01036

For those who want a copy of the ISOs, I've dumped them via the instructions here. Of course, if you're inside TurboLinux (Inception?) then you can't use isoinfo as it doesn't exist. Instead, I loaded into Mac OS 9 and loaded up Adaptec Toast to get the data. Actually, I loaded up Toast to make a toast-formatted ISO. But instead, toast just 'stopped' when I asked it to save a disc image. Either way, dd worked with the parameters that Toast provided and I even managed to use a burnt copy to run the final install... how else to test?

CD Images and somesuch...

A note on the images above, they were built with dd on ppc linux (TurboLinux 1.1 at that!) and they failed to burn with PowerISO. Somehow ImgBurn succeeded.

To get this up-and-running, I needed to put my PowerCenter 180 back together. I'd recently scavenged a few parts to get the AV Power Mac 6400 running (oh crap, that's another post that never happened) and so slapped RAM back in this machine and a second spare 50-pin SCSI drive.

Note that there's already some great tutorials online. This LinuxPPC Installation Guide by Jérôme Cornet helped me tremendously.

Preparing the SCSI drive

I could've/should've changed the order of this post... but for those playing at home who just want to get this installed and working, you'll want to set up your drive correctly first! When I was first tinkering, I happened to do it in the reverse order: slap the drive in and start the Linux install... I don't recommend this as the partitioning tool doesn't really like 'weird' disks. I had issues when trying to re-write the partition tables on PC formatted drives, to the point where some would prevent the machine from even booting.

To get started, you'll need a totally separate SCSI HDD from your Macintosh install (if you have one) to get TurboLinux going in a PowerCenter. On my specific machine, the OpenFirmware boot screen stays black, so I actually don't know if there are options there, or if the quik bootloader (installed at the end of the process) actually work. If they do, then you may be able to get away with one HDD, if the bootloader let's you back into Mac OS. Or maybe Boot-X will work, I'll test that at the end of the article.

Anyway, I grabbed a spare Seagate 2.1gb drive and installed it as SCSI ID 0. I then downloaded FWB Hard Disk Toolkit 4.5.2 and formatted it. Finally, the drive was partitioned with one 2gb root partition and one swap partition. I found that there are errors if the root partition is over 2gb, so please make it no larger. Note that you cannot use the LinuxPPC partition type. I tried this first and TurboLinux will just tell you that your drive isn't prepared. Instead, you have to choose custom and then type in Apple_UNIX_SVR2 as the partition type, for your swap partition also! The installer then distinguishes the partition by name, so make sure, as above, you call them root and swap!

Picture 18 Picture 19 Picture 20

Picture 21 Picture 22 Picture 42

Picture 43 Picture 44 Picture 45

Picture 47

Note that I didn't low-level format the drive the first time and managed to muck up the whole drive when attempting my first install. This was because I'd created a 4gb root partition and the system reported that it was out of space!? I then used pdisk in the installer and somehow whacked the drive to the point where it started reporting that it was only 1gb in size. Because of all this, I can only recommend that you simply start fresh with a low-level-formatted clean disk.

Grab your Linux CD

TurboLinux requires a 1.44mb floppy to boot the installer. Make sure you have a clean Macintosh-formatted floppy available. Note that during the install, it managed to fail when copying installer.coff file over to the floppy. I Ok'd out of the error and just copied the file manually. In hindsight, you should eject the floppy now! I then re-ran the installer, skipping the copy-to-floppy, and it turns out the final step afterwards is 'double-clicking' on the Install Linux icon that it's put on the desktop...

Picture 2

Picture 3 Picture 4 Picture 5

Picture 6 Picture 7 Picture 8

Picture 9 Picture 10 Picture 11

Picture 12 Picture 13 Picture 14

Picture 15 Picture 16 Picture 17

So, that Install Linux icon just loads up a preset into the Boot Variables control panel. This was installed by the TurboLinux installer and is just a GUI to manipulate OpenFirmware's settings. The preset it loads is to boot installer.coff file from the floppy drive. Double-click the link on the desktop and then choose Write & Reboot. It'll ask if you're ready to reboot. Eject the floppy now (if you haven't followed the above advice) and hit Yes. As soon as you press the button, slap that floppy disk back in. I took my time to do this the first time and got nothing but a black screen! Turns out my machine was sitting at the OpenFirmware prompt, but I couldn't see it and had no idea what was going on. At this point, as that I hadn't ejected the floppy, it got ejected as part of the reboot process (without me noticing), and OpenFirmware just baulked at a command to boot from a floppy disk when there was nothing in the drive.

What to do? Either reboot again with the disk in the drive, or just slap the disk back in, blindly type boot and hit enter.

Nostalgique RedHat 2.0 (I mean TurboLinux) Installation Process!

If you've made it this far, then you're doing well! My gosh... I remember sitting on the floor of a friend's house (Hi Nathan!) back in maybe 1997 installing RedHat 5.x and running through these screens. Back then the IP configuration confused the crap outta me... doesn't this come with a DHCP client? Anyway, this time around it was entirely painless... just follow the usual prompts...

DSC00943

DSC00945 DSC00946 DSC00949

DSC00950

Next up, partitioning! Make sure to highlight the correct SCSI device in the top list... use the tab key to get up there and select with up/down arrows.

DSC00952

If you skipped the partitioning step above, then you'll need to hit Edit and follow the next block. If you have already partitioned your disk, then hit Done and skip it with gleeeeeee...!

Partitioning with pdisk

Yeah, not fdisk, pdisk! Note that fdisk is also on the distro, but pdisk is a wrapper for PowerPC-style partitioning which knows how to create Apple Partition Maps.

If you've really keen to do it this way, then I'll assume that the installer has listed your drive and you've tabbed over and chosen Edit. From here, you're thrown to a console prompt at the bottom of the screen and you'll need to navigate pdisk carefully. Please make sure to chose the correct partition first, before hitting Edit!

DSC00835

Disregard that it tells you you've chosen one device in the /dev folder and that its actually loaded the same device from the /tmp folder. This is just the way it seems to work and you'll need to find the device in /tmp later if you want to switch to another console and hack behind-the-scenes.

Anyway, pdisk accepts most of the fdisk commands, such as p to list the partition table. If you want to mangle it yourself, then use d # to delete individual partitions or i to completely re-write the partition map and start fresh.

Once you've got space to create your root and swap partitions, you'll want to use the command c to create them. If you're feeling professional, then split everything up into usr/home/root into partitions (this stops one of them from stealing all of the disk space from another and causing system failure). But, if you're lazy like me, then you only need to create a 64mb swap partition and then another partition for root, filling up the rest of the drive.

The basic structure to create a partition is as follows:

c 2p 64m swap

The command above will create a 64mb partition with the name swap at position 2. You can then type p and hit enter to see the new listing. Specifically you can see how much space is left on the disk. I had 1.9g available, so I then created root:

c 3p 1900m root

As opposed to fdisk, you don't need to specify the partition types here. You just need to name them accordingly: swap for swap, root for root. After creating the root partition, I went ahead and checked out the table via the command: p.I was happy with it and wrote the changes to disk via w. Finally, q took me back to the installer and tabbing in a loop back to OK allowed me to proceed to the formatting stage.

Formatting and Package Selection

From here, if you haven't low-level formatted your drive, then I'd recommend bad-block checking on both formatting runs.

DSC00955 DSC00956 DSC00959

DSC00960

You'll then be asked the packages you want to install. Choose what you feel is relevant. You can always mount the CD-ROM at a later stage and individually install RPMS at a later date.

DSC00961

If you've chosen a miriad of groups, then there might be dependencies that need to be installed... please consider and then accept... otherwise your packages will fail to install.

DSC00963 DSC00964 DSC00966

DSC00970

The install will then make the filesystem on the root partition and install the selected packages. If you selected Everything, then expect the following errors during installaion! The packages seem to be corrupt on both the original CD and my copy!

DSC01026 DSC01027 DSC01029

DSC01030

DSC01031 DSC01034 DSC01035

Aww... no Mahjongg!? Note that the packages aren't really important... the machine still worked fine afterwards.

DSC00972

DSC00973 DSC00975 DSC00977

DSC00978 DSC00979 DSC00980

DSC00981 DSC00984 DSC00986

DSC00989

Finally it'll ask a few questions about mice, networking, printers and boot parameters. You really should take a photo of the final window to record the boot-device and boot-file settings required for OpenFirmware!

Once all is done, the machine will reboot, ejecting the floppy. I'd installed TurboLinux around 6 times by the time I'd gotten to this part of writing this article and every-so-often one wouldn't boot at this point... the machine would restart, chime and hang at a black screen. I had to use the magic 4-finger-salute: Option+Command+P+R to get back to Mac OS and then re-enter the boot params from the final step of the installation process back into the Boot Variables control panel and Write & Reboot. It would then boot without fail!

TurboLinux is starting for the first time...

Shit, it booted! But I got a lot of crappy errors in the boot log.. which zoomed past and landed me at the boot prompt.

DSC00993

I logged in as root (as the installer didn't let me create any other users) and checked dmesg...

DSC00886

Not good.. seems that anything network-related just crashed?

DSC00995

Let's check X-Windows: startx got me to a very mustard-flavoured OpenStep desktop, but the Netscape icon from the launcher did nothing... I then tried netscape from xterm and got a segfault! Why is all network-related code throwing exceptions? Oh wait, I have two PCI cards installed in this system doing nothing. One is a 'bootable' Sonnet IDE card and another is a Kingston KNE100TX LAN card. Maybe TurboLinux can't work out if it should be using the onboard LAN or PCI LAN? Let's remove both cards...

DSC00888

A clean boot! I can even ping!

DSC00889

Netscape then even wanted to load... but got sad when it couldn't phone home. Poor thing... a few decades too late!

Screen Resolution

TurboLinux will use the resolution that you had Mac OS configured to. That value is store as a mode-number in PRAM and, unless you've reset it recently, should therefore display how you expect. If you want to override this, then choose a value from the list below...

#    1   512 x  386  60Hz (interlaced, NTSC)
#    2   512 x  386  60Hz
#    3   640 x  480  50Hz (interlaced, PAL)
#    4   640 x  480  60Hz (interlaced, NTSC)
#    5   640 x  480  60Hz
#    6   640 x  480  67Hz
#    7   640 x  870  75Hz (portrait)
#    8   768 x  576  50Hz (interlaced, PAL)
#    9   800 x  600  56Hz
#   10   800 x  600  60Hz
#   11   800 x  600  72Hz
#   12   800 x  600  75Hz
#   13   832 x  624  75Hz
#   14  1024 x  768  60Hz
#   15  1024 x  768  72Hz
#   16  1024 x  768  75Hz
#   17  1024 x  768  75Hz
#   18  1152 x  870  75Hz
#   19  1280 x  960  75Hz
#   20  1280 x 1024  75Hz

And replace the value '20' in the command below...

startx -- -mode 20

You'll then get the resolution you desire... as long as you have a monitor that supports what get's output. And maybe as long as you have the VRAM? This unit is decked out, so mode 20 worked fine. You can also pass -DEPTH with the value 8, 16 or 24.

Mounting HFS Extended Partitions

No-can-do out of the box! hfsutils can't mound HFS Extended partitions. Instead you'll just get the HFS shim with the Where_have_all_my_files_gone? file explaining that your data is still on the drive, but your current software is perfectly rubbish. I haven't found a solution to this yet... it seems that hfsprogs is open-source from Apple, but this OS may be way too old to compile it.

Getting back into Mac OS

There's a Linux tool called nvsetenv that will allow you to set the OpenFirmware boot-device setting inside Linux so that you can get back to MacOS on the next reboot:

nvsetenv boot-device "/AAPL,ROM"

Using BootX?

BootX (download it here) got installed whilst I was mucking around with Linux 1999 (mentioned below, and I'll write up a HOWTO on that also) during failed installs of TurboLinux. Just like BeOS, it throws a system extension in Mac OS with a symbol as the first character of its name to make it get loaded first. It then pops up a cute boot dialog to let you choose Mac OS or Linux with a configurable default. This is much nicer than the OpenFirmware prompt as it actually displays!

Unfortunately, there's an issue when you want to try and use it for TurboLinux. We'd need a vmlinux bootstrap kernel available for it to boot that matches the 2.1.x kernel in TurboLinux 1.1, otherwise there'll be a version mismatch. I tried all vmlinux files I could find on the CD; I even copied the exact file from the root partition... but BootX would just display a black screen each time I tried to boot it! Just for fun, I then used the 'Standard LinuxPPC' kernel with /dev/sda4 as the root and the bloody thing booted! But there was no sound and I had no idea what other damage might occur with a mismatched body vs. head.

So this is a really old version of Linux....

I went a'googlin and tried to find something newer, but there doesn't seem to be one! That site also doesn't have these ISOs, so I'll contribute those in due course. PowerISO on Win10 just threw a CRC error reading them? I might try Toast on the actual Mac. And then? Let's try LinuxPPC 1999 or LinuxPPC 2000.

But does it run OpenTTD?

There's no un-emulated version of A-Train to get running on here, so let's aim for OpenTTD. I've actually made this topic a new post as I nearly tripled the draft of this one with my moaning as to how hard it is to find a correct collection of libraries to build anything!

Filed under: Apple No Comments
12Jun/200

Farallon EtherMac Mac/PB Adapter

This was another lesson in failure. I'd recently picked up a PowerMac 6400 (more about that later) from an impulsive eBay auction and then this item came across the Vintage feed. I couldn't resist and no one else cared for it. The basic idea is that you can route Ethernet over LocalTalk to get a Macintosh, which doesn't have standard Ethernet capability, connected to an Ethernet network. This unit plugs into the Serial port (either Printer or Modem) and hijacks power from an ADB port. The piggy-back adapter is nice as most users still want to plug their keyboard/mouse in!

DSC00034a

DSC00047 DSC00035a DSC00040a

DSC00044a

Most forum posts indicate that these units need no drivers installed. I was happy with this and went ahead and connected the unit to my LAN. Most lights came on, but I couldn't get anything to work. If you do have this unit, then you need to use MacTCP (this unit is not compatible with OpenTransport!) and set up your unit to have hard-coded IPs via a static MacIP setup. From there, everything should just work. As that you're using an older System 7.5.3 (or lower), you don't get to search for Servers by IP address in Chooser, so make sure you have a real Mac on the network to test with. A2Server might also help.

Anyway, whatever I tried... nothing worked. I'd plug the unit in to the Mac and the power light would illuminate. I'd open up Chooser and the next light from power (orange) would start to blink... but the final light, the Ethernet Link Light, would just be flashing quickly. I initially thought this was ethernet traffic, but then realised that this light should actually be a solid green and that the 4th light should indicate traffic. You really only had to flip the unit over to work this out, Steven. So, my unit wasn't even getting link! Easily confirmed by no link light on a hub I managed to power up and then doubly-confirmed by the diagnostic software provided in the v2.22 of the Farallon Software.

So, I popped the unit and started replacing capacitors. I then tried replacing the chips that seemed identical to an ethernet card that I had spare... and in the end? Killed two cards and ended up with zero connectivity! Fortunately the PM6400 accepted an RTL3189, although not under System 7.5.5.

Lesson learnt? A Farallon EtherMac Mac/PB Adapter that has a flashing ethernet link light is dead. Don't even bother trying to use it. Make sure you see a link light at the other end of the ethernet cable before trying to troubleshoot any further.

In hindsight: I wonder if the unit just couldn't negotiate the 100mbit hub? Maybe it only works with 10mbit devices. Too late to test now!

Filed under: Apple No Comments
15Oct/190

Apple G4 iBook

After a lovely drive into the Dandenong Ranges to check out some tulips (and eat oliebollen) (thanks Mum!), it was time to venture home... but who could resist not visiting the tip-shop along the way? After a quick look around the shop, it felt like they'd stopped stocking electrical components... but then I stumbled across this, sitting in the wrong area, but looking in really-great condition!

DSC01907

DSC01906 DSC01908 DSC01910

Check out that keyboard! It's still in perfect condition and clean? How on earth... anyway, I took it to the counter and asked for the price. The checkout-chick had to flip through a book of standard prices before responding with AUD$10. I giggled and kept shopping, hoping to find the power supply... no luck there though!

DIY Power Supply

These iBooks need a 24v DC power supply. The plug is a little adventurous on Apple's behalf. Initially it looks like an RCA composite plug, but then you realise that the central pin is actually a 2.5mm stereo jack. Without the outer shield, I can imagine it would be very easy to short the plug. Either way, it's a bit of a lets-take-two-things-off-the-shelf and combine them to make a proprietary socket that no one else can copy. Or can we? (alternative source)

Turns out that you only really need to apply VCC and GND to a standard 2.5mm jack and it'll work. The very tip is not connected, the middle band is GND and the base, closest to the wiring, is +24v DC.

DSC01914

Jaycar didn't have any full-metal-casing plugs, so I had to live with the cheap plastic plugs. Soldered up, I got the following...

DSC01920

DSC01921 DSC01925 DSC01926

DSC01927

The next morning, at the local flea market, I found this cheap and nasty power supply. It says it produces 21-24v? Seems to have a 4-pin plug, so hopefully one of the wires is the full 24v.

DSC01928

DSC01929 DSC01930 DSC01932

Oh right, that's just a two-wire cable split into pairs. So the 4-pin is a double-adaptor. Not handy... and the voltage is hardly at 22v. Will the PowerBook survive?

DSC01933

DSC01934 DSC01937 DSC01939

Sure did! And the battery even started charging!

Filed under: Apple No Comments
10Apr/190

Mac Mini 1,1 Upgrade!

I was browsing randomly to see if my newly acquired Mac Mini 1,1 had any upgradable components. I was actually pretty shocked to read Jethro Carr's post on Upcycling 32-bit Mac Minis detailing how the CPU is housed in a socket!? He then goes on to describe the best CPU available. I therefore bought a T7300 pretty damn quickly. Turns out there's a step faster though... so make sure you purchase the T7600!

apple-desktop-2

First Step: CPU

Follow iFixit's teardown to open the little beast. It's pretty straight-forward, but give yourself time! Just getting to step 6 was hard enough.. it's pretty scary trying to pry the thing open. Don't forget to clean the underside of the heatsink. Whilst you're there, replace the HDD and battery with newer/faster/better/more-chargier models!

DSC07208 DSC07213 DSC07214

DSC07220 DSC07225 DSC07226

Finally, when replacing the motherboard, watch out for the metal ground tag above the power socket. You'll need to make sure you slide the board in under it!

DSC07237

Can you see it in that above photo? It's the little tag above the power socket.

Second Step: OSX Lion

OSX Lion was the first version of OSX to drop support for 32-bit CPUs. Therefore, it's hardcoded to prevent installation on any machines that are expected to be 32-bit. Of course, we've meddled with that, so we can safely remove the block for our system and let the OS try to boot! The following steps are based loosely on this forum.

  1. Get a copy of OSX Lion
  2. Open the DVD/DMG and find BaseSystem.dmg then burn it to a USB drive or other bootable partition. Anything ~6gb. Call it LionInstaller
  3. Delete a symlink: /Volumes/LionInstaller/System/Installation/Packages
  4. Copy the actual packages from "/Volumes/Mac OS X Install ESD/Packages" to "/Volumes/LionInstaller/System/Installation/Packages"
  5. Delete "/Volumes/LionInstaller/System/Library/CoreServices/com.apple.recovery.boot/PlatformSupport.plist"
  6. Copy "/Volumes/LionInstaller/System/Installation/Packages/OSInstall.mpkg" to a temporary folder
  7. Go to that folder and unzip it: xar -x -v -f ~/Desktop/OSInstall.mpkg (more details here)
  8. Edit Distribution: I had to add "Mac-F4208EC8" to the block of supported platforms up the top
  9. Delete the OSInstall.mpkg that should be in the same folder, that's the old one
  10. Re-compress it to the new file: xar -c ./ -v -f OSInstall.mpkg
  11. Send it to the right folder: "/Volumes/LionInstaller/System/Installation/Packages/"
  12. Reboot and install!
  13. When Installation is complete, whilst it's prompting to reboot, open Terminal from the Utilities Menu
  14. Browse to /Volumes/[DISK_YOU_INSTALLED_TO]/System/Library/CoreServices/ and Delete PlatformSupport.plist
  15. Quit terminal and reboot the machine

Third Step: Firmware

I had mucked around with rEFInd initially to have multi-boot, but my metal apple keyboard wouldn't work with the interface. Turns out it won't even trigger bootup options (CD selection, etc...) as the Mac Mini doesn't like USB 2.0 keyboards at startup! This can all be fixed via a Firmware Upgrade. You even then get the option of installing 4gb of RAM. More information can be found in this thread.

  1. Grab the firmware and extract it somewhere.
  2. Open Terminal and go to that somewhere.
  3. Copy both files to /System/Library/CoreServices/Firmware Updates.
  4. Run the following:
    sudo bless -mount / -firmware /System/Library/CoreServices/Firmware\ Updates/EFIUpdaterApp.efi -payload /System/Library/CoreServices/Firmware\ Updates/LOCKED_MM11_0055_08B.fd -options "-x efi-apple-payload0-data" --verbose
    EFI found at IODeviceTree:/efi
    GPT detected
    No auxiliary booter partition required
    System partition found
    Returning booter information dictionary:
    <CFBasicHash 0x7f8343d02fe0 [0x7fff78e37ea0]>{type = mutable dict, count = 3,
    entries =>
    	0 : <CFString 0x10aa4afb0 [0x7fff78e37ea0]>{contents = "System Partitions"} = (
        disk0s1
    )
    	1 : <CFString 0x10aa4af70 [0x7fff78e37ea0]>{contents = "Data Partitions"} = (
        disk0s2
    )
    	2 : <CFString 0x10aa4af50 [0x7fff78e37ea0]>{contents = "Auxiliary Partitions"} = (
    )
    }
    
    Substituting ESP disk0s1
    Mounting at /Volumes/bless.y5CS
    Executing "/sbin/mount"
    Returned 0
    Creating /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE if needed
    Deleting previous contents of /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE
    Deleting /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE/EFIUpdaterApp.efi (33888 bytes)
    Deleting /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE/LOCKED_MM11_0055_08B.fd (2097152 bytes)
    Opened dest at /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//EFIUpdaterApp.efi for writing
    preallocation not supported on this filesystem for /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//EFIUpdaterApp.efi
    
    Type/creator set to     /     for /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//EFIUpdaterApp.efi
    /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//EFIUpdaterApp.efi created successfully
    Relative path of /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//EFIUpdaterApp.efi is \EFI\APPLE\FIRMWARE\EFIUpdaterApp.efi
    IOMedia disk0s1 has UUID F6A85C4B-BDBA-4127-ADB9-7B4D07AA40E4
    Opened dest at /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//LOCKED_MM11_0055_08B.fd for writing
    preallocation not supported on this filesystem for /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//LOCKED_MM11_0055_08B.fd
    
    Type/creator set to     /     for /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//LOCKED_MM11_0055_08B.fd
    /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//LOCKED_MM11_0055_08B.fd created successfully
    Relative path of /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//LOCKED_MM11_0055_08B.fd is \EFI\APPLE\FIRMWARE\LOCKED_MM11_0055_08B.fd
    IOMedia disk0s1 has UUID F6A85C4B-BDBA-4127-ADB9-7B4D07AA40E4
    Setting EFI NVRAM:
    <CFBasicHash 0x7f8343d02fe0 [0x7fff78e37ea0]>{type = mutable dict, count = 2,
    entries =>
    	1 : <CFString 0x10aa4afd0 [0x7fff78e37ea0]>{contents = "efi-boot-next"} = <CFString 0x10ab1a930 [0x7fff78e37ea0]>{contents = "<array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>F6A85C4B-BDBA-4127-ADB9-7B4D07AA40E4</string></dict></dict><key>BLLastBSDName</key><string>disk0s1</string></dict><dict><key>IOEFIDevicePathType</key><string>MediaFilePath</string><key>Path</key><string>\EFI\APPLE\FIRMWARE\EFIUpdaterApp.efi</string></dict><dict><key>IOEFIBootOption</key><string>-x efi-apple-payload0-data</string></dict></array>"}
    	2 : <CFString 0x10ab1add0 [0x7fff78e37ea0]>{contents = "efi-apple-payload0"} = <CFString 0x7f8343d03430 [0x7fff78e37ea0]>{contents = "<array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>F6A85C4B-BDBA-4127-ADB9-7B4D07AA40E4</string></dict></dict><key>BLLastBSDName</key><string>disk0s1</string></dict><dict><key>IOEFIDevicePathType</key><string>MediaFilePath</string><key>Path</key><string>\EFI\APPLE\FIRMWARE\LOCKED_MM11_0055_08B.fd</string></dict></array>"}
    }
    
    Executing "/sbin/umount"
    Returned 0
  5. Shut Down
  6. Press and hold your power button until you see your Mini's power light flash repeatedly, and then release. You should hear a strange boot sound from your Mac.
  7. You may-or-may-not see a grey screen with a progress bar loading. I did, but others report they do not, so it will vary. If you do encounter this screen, just let the progress bar complete, and don't touch anything.
  8. You now may-or-may-not get a corrupt screen - Let it get to the desktop and then hold down the power button.
  9. Reboot, but this time do a PRAM reset (Command + Option + P + R)
  10. Listen to that lovely chime... it's actually the first time my Mac Mini ever made the startup chime since purchase!!
  11. Profit.

DSC07252 DSC07261 DSC07263

apple-desktop-1

Yessss... we now have a MacMini2,1!

Fourth Step: RAM

Easy enough, but only after the firmware update! Grab two 2GB DDR2 PC2-5300S 200-pin SODIMMS and install them in the two available slots in the motherboard. Yes, you'll have to rip the entire unit apart again, so it's probably beneficial to buy these at the start and do it all in one hit!

DSC07362 DSC07367 apple-desktop-3

Fifth Step: Why is the CPU fan always maxed out?

Turns out, that if you leave things disconnected, then the poor little Mac Mini can't monitor it's system performance and will default to a full-speed fan. There's a wire at the front near the power light that you need to disconnect as one of the first steps... I'd forgotten to reconnect this and, well, the result is max-tilt on the cooling fan.

DSC07267

Make sure you plug everything back together!

Sixth Step: Alternative Operating Systems

Just for fun I decided to install rEFInd and then toy with the other 80gb I still had on the HDD. Installation was as simple as opening Terminal, switching to the Downloads directory, unzip refind*.zip, switching to the extracted directory and then finally: ./refind-install. It copied over the default configuration and then, upon reboot...

DSC07282

Nice. Now, off to Linux Mint to download an ISO. I chose Mate, I don't know why... I don't think I like the black of Cinnamon. It turns out my internal CD drive is toast... it just tries to read and read anything I put in there and then spits it back out again. So, thankfully my external CD drive just-worked!

DSC07372

Of course, the bootloader didn't. The picture above shows as far as it wanted to get... it then just freezes. It turns out all 64-bit ISOs need 64-bit EFI BIOS' and our machine doesn't have this! It has a 32-bit EFI with a 64-bit CPU. So... you need to hack the ISOs. Thankfully, Matt Gadient has already done this for us.

Filed under: Apple No Comments
24Jul/182

Apple IIc – Floppy via Serial

I've recently acquired an Apple IIc and it's time to play games! As previously mentioned, the best way to do this is to hook up the Apple to a PC and transfer data via serial cable. This is all done via the aid of a software program known as ADTPro.

Building the serial cable

You'll find the required information on the connection page of ADTPro. Back to Jaycar we go to get the required components. Needed was a DB-9 female serial connector and a DIN-5 male plug. Some 6-core wire helped also.

DSC04088

Soldering it all together is very straight forward. Firstly, bridge pins 1 and 5 on the DIN side, then solder up pins 2-4.

DSC04090 DSC04092 DSC04098

Next, on the DB-9 port, join pins 1,4,6 together. Then join pins 7 and 8 together. That's two separate groups, not all 5 in one join! Finally, wire through (DIN-DB9) the three wires, 4-3, 2-2, 3-5.

DSC04100 DSC04104 DSC04107

DSC04112

Bootstrapping the software

Everything you need to know is on the ADTPro bootstrapping page. Java is required, so grab a JRE and install it on your platform of choice. Make sure your hardware has a functioning serial port! A USB->Serial adapter will work fine here. Download ADTPro from sourceforge and the RXTX Java Libraries. If you don't install the libraries, the application will remind you anyway...

2018-07-23 20 05 12-Window

To install RXTX, unzip the downloaded archive and move RXTXcomm.jar to \jre\lib\ext (under java) and rxtxSerial.dll to \jre\bin. Open the program once you've got it all installed. It'll be asking what serial port and what speed to use. Leave the speed as default and then choose the correct port.

2018-07-23 20 05 49-Window

At this point, you'll want to copy your disk image files into the disks subdirectory inside the ADTPro folder. Once you're ready to go, turn on your Apple IIc, holding down CTRL-RESET to get to the prompt. Expect ugly characters on the screen... it's no issue.

DSC04119

Once up (disregard that I already typed the first step above!), go back to ADTPRO and choose Bootstrapping -> ProDOS -> Speediboot.

2018-07-23 22 03 07-Window

2018-07-23 22 03 31-Window

Follow the instructions and type out the commands on the Apple. Note: Replace the # with the pound sign on UK keyboards! From here, you'll hopefully load into the main menu.

DSC04120 DSC04122 DSC04124

Hit R for Receive File and then make sure you are in the correct 'working directory'... i.e. where you copied your disk images to! I found Frogger, renamed it as frgr.dsk and copied it into the ADTPro disks folder. I was about run the floppy disk image from RAM... but why? I have spare floppies... lets use this thing as a floppy image writer!

DSC04125

It took a good amount of time... sounding REALLY unhealthy. Those Xs didn't look too good either. Turns out this was because I was trying to use PC formatted high-density disks... and that would never work! Regardless, due to the sounds, I wanted to open up the drive to check if it need maintenance.

DSC04130

DSC04132

For its age, it was in perfect condition. Dusty, yes... and the top padded head was deteriorating... but nothing a little cleanup with alcohol wipes wouldn't fix! I then remembered I had a 'disposable' 360k disk in my repertoire. Using this, I finally had a bit of success... it read the disk header!

DSC04133

Frogger then burnt, but wouldn't boot :( As that I had no idea if this version of Frogger was for my machine, or if it was even a bootable disk, I thought I'd try the actual images that come with ADTPro. I therefore chose the first image and wrote it to the disk. TADA! It booted!! Very different menu from the remote version when loaded over the wire.

DSC04135

What next? Oh yeah, Police Quest 1. Turns out this is in NIB disk image format, but it seems ADTPro can handle this. There was a warning of file size mismatch, but I went ahead and burnt it anyway... I didn't bother burning the second side. Once cooked, I turned the machine off.. counted to 10... held breath... crossed fingers... powered on...

DSC04136 DSC04141 DSC04142

DSC04143

Hahahaha! It worked! But I can't flip the disk without repeating the whole process and writing the other side. I don't think I'll bother as the game loaded so bloody slowly. I'd probably never end up actually playing or using this machine... so it's now on eBay. What a perfect unit if you loved these old games!?

Filed under: Apple 2 Comments
22Jul/180

Introducing the Apple IIc

I suppose I should be using italics there, but the heading doesn't allow it. The Apple IIc is an all-in-one (apart from the monitor) unit from Apple, built in 1984. Amazingly, this model was released at the same time that the original Macintoshes were hitting the market, directly competing with their own graphical systems?

I happened to stumble across one recently at the Camberwell Markets and haggled it down to a price I was comfortable with.

DSC03969

Design

This thing is like a cute little suitcase. It has a fold-out handle at the back which actually makes it really portable. What doesn't make it portable is the power supply! It's huge and heavy and really does ruin the whole 'portable' aspect.

DSC03981 DSC03984 DSC03983

DSC03980

DSC03975

The keyboard is relatively clicky, but a little sluggish. From what I read, they fixed this in later versions which came out with 'alps' switches. Note that you can determine your model by typing PRINT PEEK(64447) at the BASIC prompt...

DSC03978

Mine is a 255... the earliest revision.

ROM Upgrades

Fortunately, the ROM is a socketed EPROM and therefore easy to upgrade. Big Mess O' Wires has a great blog post on upgrading the ROM. Turns out that my version of the motherboard has a 16k ROM in it, but the board has provisions to support a 32k (27256) ROM. A 64k ROM is also usable, if you burn the image to the 'second half' of the chip. See my old post here on burning EPROMs if you need a hand to do so.

Firstly, download the ROMs. I'd recommend ROM 5x as it is a modified ROM with extra features. Unfortunately, they don't provide a direct link, so you'll have to follow the instructions there to create it. There's another link here.

DSC04053

I spent a bit of time trying to see if I could use Windows 10 to burn... short answer is that I couldn't. I booted up the old IBM NetVista which had a fresh install of XP, but that was also troublesome. So I threw in a spare HDD and re-installed 98se. Note, make sure you set your parallel port to just ECP. I'll try XP again as this setting made the burning work under 98se. Also make sure your EPROMs are blank!

Next, pop the thing open. Firstly, undo the top two and bottom 4 screws. The 4 middle screws are for the floppy drive and aren't required to remove the case lid. Once you've popped the lid off... and be very careful, there's clips all around that just need manipulating, you can disconnect the data cable to both the floppy and the keyboard.

DSC04038 DSC04041 DSC04043

DSC04046

You'll then have the mainboard totally exposed. One thing to note is the Integrated Wozniak Machine, used to drive the floppy.

DSC04051

The ROM is the bottom-middle IC. Hahaha... look at that copyright requirement... it says MICROSOFT '77!

DSC04047

From here, pop out the old chip and slap in yours. You'll need to break W1 and bridge W2 (as per the instructions in the link above) if you're not replacing with a 27128.

DSC04056 DSC04057 DSC04061

First boot and I got the following...

DSC04067

Oh bullocks... but hey, if you actually plug the keyboard in, then it'll actually work!

DSC04072

Niccceeee....

Colour Video

I was a little disappointed that this only had monochrome composite output. Fortunately, Kaput(?) has created a schematic for a Apple II Colour Demodulator. The inline images seem to be dead, but just click the first link for the circuit. My main issue is that I found that shitty little TV above, as it nicely matched the IIc. It's monochrome also... so... I'm not overly fussed if the unit stays mono.

Software

Turns out there's a whole lot of popular games on this unit! Here's the list, thanks to Wikipedia.. And what!?!?... Police Quest 1? I wonder how hard it is to write a 5 1/2" floppy for this thing. Here's Frogger. A little googling tells me that writing floppies needs to be done via ADTPro and a serial cable. That'll be another post!

Filed under: Apple No Comments
20Nov/170

Power Mac 7220 – PC Compatibility Card

I'd recently picked up a PC Compatibility Card for my Power Mac 7220 and thought I'd see if it worked. It seems to be the P166 variant and, unfortunately, didn't come with the required monitor cabling.

DSC01332

DSC00270 DSC00271 DSC01333

DSC01335 DSC01337 DSC01339

The card itself is huge. Being an entire PC on a card, you'll find graphics, RAM, sound and, of course, the main CPU all crammed on-board.

Basic Installation

It fits neatly into the 7220 case and has a metal tab at the far end that may well need to be adjusted to allow a secure fit.

DSC00275 DSC00278 DSC01321

You'll see in the first two shots above that the metal tab was in the wrong spot and didn't slot into the case. I had to shift it to the other position to provide a proper fit. Otherwise the weight of the card actually allowed it to start bending down!

DSC01314 DSC01318 DSC01343

DSC01349

There's also a CD Audio cable that needs to be fitted. Previously the 7220 simply had the audio from the CD drive plugged straight into the motherboard. Now, the audio runs from the CD drive to the PC card, then another CD Audio cable runs between the card and the motherboard. This effectively means that the PC Card is mixing its own audio output with anything from the CD drive and sending that to the Macintosh hardware.

DSC01351

Note that you'll need to set your input device to the internal CD Drive to have the sound come through!

Software is simple enough, see my post here for all the relevant downloads. Install PC Setup 1.6 prior to 2.14. The disks from that post work fine as well!

Hacking a cable together

I expected that the 26-pin 3-row D-sub plug required for this would be apple-proprietary, but it turns out that it's available on eBay! I purchased one, along with two 14-pin already-cabled plugs to hack up.

DSC01272

DSC01276 DSC01277DSC01281

Nothing like buying in bulk in case of emergency! The wiring information can be found here, but I've provided it below for safe-keeping.

3-row 26-pin
Compatibility
plug
Macintosh
Video Out
(male)
Monitor Plug
(female)
Purpose Direction
Pin 1 Pin 15 Horizontal Sync In
Pin 2 Pin 11 C & VSync Ground In
Pin 3 Pin 9 Blue Signal In
Pin 4 Pin 13 Blue Ground In
Pin 5 Pin 4 Pin 4 Sense 0 In/Out
Pin 6 Pin 13 Blue Ground Out
Pin 7 Pin 9 Blue Signal Out
Pin 8 Pin 14 HSync Ground Out
Pin 9 Pin 15 HSync Out
Pin 10 Pin 3 CSync In
Pin 11 Pin 11 C & VSync Ground In
Pin 12 Pin 5 Green Signal In
Pin 13 Pin 6 Green Ground In
Pin 14 Pin 7 Pin 7 Sense1 In/Out
Pin 15 Pin 6 Green Ground Out
Pin 16 Pin 5 Green Signal Out
Pin 17 Pin 11 C & VSync Ground Out
Pin 18 Pin 3 CSync Out
Pin 19 Pin 12 VSync In
Pin 20 Pin 2 Red Signal In
Pin 21 Pin 1 Red Ground In
Pin 22 Pin 14 Cable Detect In
Pin 23 Pin 10 Pin 10 Sense2 In/Out
Pin 24 Pin 1 Red Ground Out
Pin 25 Pin 2 Red Signal Out
Pin 26 Pin 12 VSync Out

I cut the cable between the two 14-pin plugs and stripped the wires back. Intially, I started soldering these onto the main 3-row plug, but this became tedious and my soldering was unreliable. The requirement of joined pins also meant that I had to create intentional bridges and wasn't quite happy with this.

DSC01286 DSC01287 DSC01289

DSC01292 DSC01293 DSC01295

Instead, I found some spare 'tough' copper wiring and soldered 5cm leads onto the 3-row plug. From here, I then joined and soldered the correct wires and heat-shrinked it all together.

DSC01298 DSC01299 DSC01301

Resolutions were a little weird. There's notes in the PC Compatibility Card FAQ here that mention how you should install correct drivers and use a proper multi-sync monitor. I initially used my hack-job wiring and attempted to switch to the proper MAC to VGA adapter...

DSC01305

With the adapter in place, the resolution was mapped correctly. I then 'solidified' the cabling... hahahaha...

DSC01364

Installing Windows

I'd previously done this via the 7" Card on my 7200. Unfortunately things weren't to go as easy this time. In that post, you can find the Tiny Boot Disk hard-drive file that has a nicely bootable Windows 98 SE drive. Windows isn't installed on that, but it'll at least get you a booted 50mb harddisk. From here (or so I thought) you can then build another D: drive and make that bootable.

The goal was simple: Mount another hard-file, format it and copy the contents over. FDISK was used, format d:/s worked and then the full copy was done. On a reboot (after switching the disks so that the new drive file was C:), I was presented with NO ROM BASIC. I've never seen this error before! I switched the disks back and realised that the partition wasn't set as active. Unfortunately, DOS 6.22 FDISK can only set active partitions on the primary drive!

I therefore had to borrow FDISK from FreeDos. The best part of the PC Compatibility on Apple is that you can mount the hard-files on the Macintosh desktop! Make sure your PC side is shut down and just double-click the hard-file. After extracting FDISK, I copied it over to the DOS drive. I then unmounted the drive (drag it to the trash, as scary as that may seem) and then booted the PC side back up.

I now had an FDISK folder. Switching to this and starting FDISK gave me an error on line 2 trying to read FDISK.INI. Turns out that the file has UNIX line-breaks and DOS 6.22 hates this. I could've converted these on the Macintosh side and re-copied... but instead I took a punt and deleted the INI file. It worked! I could now set the active partition on D:.

DSC01304

DSC01305

And then... it booted... from here I copied the WIN98 folder off the CD to the HD as an installer folder and then brought Windows 98 SE to life! I still wanted to make sure CD Audio was correct, so I tested out Screamer which uses the CD for its soundtrack.

DSC01357 DSC01358 DSC01359

DSC01361

It then froze... each time... the entire machine... couldn't even get to the main menu!

Filed under: Apple No Comments
16Oct/170

Power Macintosh Graphite G4 – PCI Cards

This thing has a lot of room for expandability, so I went rummaging through my spares box for PCI cards that might fit. Actually, I managed to find a FireWire card on the same day I bought the ATI 9250 AGP Graphics Card, so I had that to test also. This Apple failed to come with an AirPort PCMCIA card, so I also wanted to get wireless working without paying for premium Apple devices.

ASUS WL-138G V2

I had a TP-Link something-something box in my stash and googled to see if there were any drivers. Nothing good came up and I thought I was out of luck. I had actually bought this from the markets years ago and never used it... in fact, I never even opened the box. You can imagine my surprise when I found this inside instead!

DSC00385

Haha... winner... this sure isn't a TP-Link!

DSC00389 DSC00393 DSC00381

The best point is this... the bloody thing just worked! At first, I hardly got any signal... but then I realised I didn't have the antenna screwed on :)

DSC00379

Done... does wonders for my limited supply of Ethernet ports.

No-Name FireWire Card KWE582

And again, from the category of 'just works'... this FireWire card happily let my iSight Camera function as expected.

DSC00382

Totally no-name... can't even find a brand.

DSC00391 DSC00392 DSC00406

I actually don't even need the ports... but hey, there are spare PCI slots to fill! The last shot above shows my iSight looking towards the machine working perfectly in iChat. Will need to find if Photo Booth is available for 10.4.6?

Adaptec AIC-7880P

This SCSI card will let me use more internal and external drives, but I really don't need them. Despite this, I think it'll still be fun to test. I've a hunch that it's actually a fake card as the only identifier is the chipset number. Adaptec doesn't name their cards after their chipsets... their cards all have individual codes!

DSC00395

DSC00396 DSC00398 DSC00405

Everything, again, just worked perfectly! My external SyQuest removable HDD worked perfectly showing my FAT32 drive in all its glory.

Unknown VIA Chipset 'USB 1394'

This dual USB/Firewire card looked promising... but prevented the entire machine from even booting. It seems to also need an auxiliary power connector in the form of a floppy drive power cable. I wasn't overly fussed to hack up a power cable to test this out, so I wrote the whole card off... don't bother with them! (Or.. tell me if your version actually works?)

DSC00493 DSC00495 DSC00496

Swann 3-port Firewire (Lucent FW232)

This card worked perfectly. The iSight had no issues with it and OSX just used it as expected. I really didn't need 3 more firewire ports, but what the heck?

DSC00497 DSC00498 DSC00499

I'll add more as I find more cards to test...

16Oct/177

Power Macintosh Graphite G4 – ATI Radeon 9250

My recently acquired Power Mac G4 was originally spec'd with an Nvidia GeForce, but instead came with an ATI Rage Pro 128. I therefore started researching my options for a graphics card upgrade. Most 'apple-designed' items, that would work out of the box, would cost an arm and a leg, so I ventured deeper into the web and came to the understanding that PC cards could be flashed to work on Apples!

Which cards?

Good question. Some people have had luck with the NVidia GeForce range, whilst others have succeeded with the ATI Radeon chipset. There's a good compatibilty chart here at The Mac Elite which will show you the series and then any required modifications.

Sapphire ATI Radeon 9250 128mb

I happened across an ATI Radeon 9250 AGP with 128mb of RAM at trash and treasure on the weekend for a few dollars and my decision was therefore made for me. The VGA port was dangling and needed whatever screws I could find to secure it.. and well, it was cheap.

DSC00337

DSC00339 DSC00340 DSC00341

Quick research showed that the basic process is to first flash it in a compatible PC, disable pins 3+11 and then shift some resistors. The pin disablement is required as the Macintosh actually uses these to send 25v over it's proprietary ADC port to power an Apple Display. AGP 1x originally didn't require these pins and so Apple hijacked them. Plugging an AGP 4x/8x card into an apple expecting a 1x card will prevent the machine from booting and possibly cause other hardware damage.

Flashing with a Macintosh ROM

Thanking The Mac Elite once more, they have a great flashing tutorial here. Firstly, you'll need a ROM, so follow the links and agree to the disclaimers. Note that the 9250 driver is actually not 'official'. It's a modified version that has the device IDs hacked in to allow this card to work. You'll find 3 ROMs for the 9250 over there. A 'full' version and 2 reduced versions. The latter are smaller versions of the original ROM file, allowing it to fit on cards with smaller flash memory. Actually, there's a whole article on reduced ROMs here. I'd read on a forum of a success story with the 'Reduced TOME ROM', so I chose that.

Finding ATIFlash actually became quite a challenge... the tools available for ATI Flashing were all windows-based and the DOS version was nowhere to be found. I tried Archive.org, but the links were all dynamic and wouldn't give me an older version. Googling then provided me with a link to a newer version of the DOS ATIFlash tool. I managed to get it onto a bootable floppy, with both of the ROMs to test and ... well ... each attempt resulted in: Adapter Not Found. The tool couldn't find my AGP card!?!

At this point I had two options... Keep scouring the web for an ancient version of ATIFlash (v3.10 is the version everyone seems to prefer) or try the windows versions... I actually did try the latter, but my test PC only had Win98SE and the app needed Windows 7 at a minimum. I therefore kept digging and found other versions of ATIFlash! Finally, v3.10. It still didn't work... so instead of wasting hours to get Windows 7 up and running, I chose to force the flash. Using atiflash -f -p [CARD_IDX] [ROM_FILE], things started happening!

DSC00347

Finally, we have a successful flash and it's actually now listing the card and the ROM information correctly. NOTE: The screenshot above shows ATIFLA2.EXE... this is v3.10. ATIFLASH.EXE is v4.17, the first version I tried.

Disabling pins 3 and 11

The Mac Elite has a great write-up on this requirement. As mentioned, these two pins were used to provide power to an ADC monitor. Later on, AGP 8x came along and used these pins for something else. Since my card is an 8x card, the pins are 'in-use' and therefore the Macintosh wasn't happy with this at all. In fact, it wouldn't power up with the card inserted nakedly into the slot. Fortunately, the fix is simples... grab some sticky-tape and cut it into thin slices and insulate the pins.

DSC00350

To stop the tape from sliding when the card is inserted, wrap it half way around the edge. Don't go all the way around though, as you'll disable other pins on the other side of the connector.

At this point I tested it out... I was curious to see if the machine would even power up.

DSC00352 DSC00353 DSC00355

It did!... but the frequency was totally out-of-whack. That last shot is of me going back to the PC to check if I could write the other 'full' ROM as I'd thought a bad ROM write was to blame. It didn't let me and I was about to despair, before I remembered that I still had to hack resistors to switch this card into Mac Mode.

ATI 9250 'Macintosh Mode'

The 9250 needs a further 'Macintosh Mode' hack. It seems that the card has soldered jumpers to configure it as either Macintosh or PC. This link at The Mac Elite has an example of what resistors to change... but my card wasn't 100% identical. I took a flying leap and guessed that the resistors in the same area provided the same purpose. This, thankfully, turned out to be correct!

DSC00356 DSC00360 DSC00361

So, the card was on the workbench, the soldering iron was ready, and I had assumed that the 'block of three' resistors was the top 3 of 4 in that upper area and the '2 pair' was the obvious 2-pair below. Fortunately, the first 2 of 3 of the top block were already in the correct location; I just had to shift the last one. Removal was easy: I tinned the soldering iron and just heated up the SMD resistor until it lifted and stuck to the tip. After this I cleaned the pads ready for the switched resistors.

Of course, I couldn't be assed trying to put the tiny SMD resistors back; there's really no need. They're actually just jumpers or 0 ohm resistors providing links between two solder pads. I therefore just grabbed a nearby full-size resistor and bent its leg to act as a jumper.

DSC00363

I tinned the end of the resistor and then soldered it in place.

DSC00365

From there, a nice set of sharp snips removed the excess and the short was in place!

DSC00367

One done, two more to go...

DSC00369

Before I knew it, all were done and it was time to test it out again...

DSC00372

With the card in place, you really have no idea if the sticky-tape insulating the pins has succeeded... but just turn it on anyway! Meanwhile, look at all those spare PCI slots! I'll get back to them later.

DSC00371

Haha! It just worked!

Software

Well... it nearly worked. The second monitor was maxing out at 640x480 and controls seemed limited. I assumed I needed some form of a real ATI driver, so I went searching. ATI/AMD actually has the drivers right here and installing them was a breeze. After a reboot, I had full resolution and the monitor model numbers were even showing up!

DSC00377

Success!