iMac G3 Update

1. September 2019 16:06 by Cameron in   //  Tags: , , , , , ,   //   Comments

It would appear that I was wrong about the flyback dying on my original Graphite iMac G3. I had installed the PRAM battery in the wrong direction so it was not saving any of the PMU data, preventing the CRT screen from turning on. After reseating the battery in the correct polarity and resetting the PMU a few times, I was able to get the CRT working again.

I received that second iMac G3, but it arrived in poor physical condition. The seller did not pack the iMac appropriately and the front bezel had shattered into dozens of pieces. I was able to get a refund for this iMac since it was in bad condition and shipping it back would have made the condition worse. Luckily, the CRT seems to still be intact on this iMac so I will be keeping it around for spare parts for a later date.

My original thought was to try and install the 250GB IDE HDD I had in the Graphite iMac, but there are no boot disks for the Intech Hard Disk Speedtools to properly format the larger disk. The installer for Mac OS 9 and OS X only saw the first 128GB of the drive. I played with the idea of using a second G3 Mac to format the iMac's internal HDD over FireWire, but ultimately decided to install my 128GB class 10 SD card instead. I now have Mac OS 9 and OS X installed on the same partition and can boot into either by switching the startup disk from within the OS. I haven't figured out how to get both OS 9 and OS X to list in the boot menu when holding down options on startup though. I read somewhere that you can press 9 or X at startup to boot the respective OS, but I have yet to try that.

My next goal for this iMac will be to get some more retro Mac PPC software and install a few games on the SD card. As the internal DVD drive doesn't eject disks correctly anymore, I will use an external FireWire drive or a second Mac in Target Disk Mode to install disk based games. Some of the games I will be installing include Sim Tower, Sim City 2000, and Fable The Lost Chapters.

In the spirit of vintage Macs, I recently purchased an eMac G4 1.25GHz. Upgrades on that one will be more of a hassle since Apple put access to the HDD and DVD drive on the bottom side of the logic board. I will probably tackle those, but only when absolutely necessary. I will be posting more about eMac soon.

iMac G3 Update

21. August 2019 20:35 by Cameron in Mac  //  Tags: , , , , , , , ,   //   Comments

Well, after about a week's usage, it would appear that my flyback transformer died on my Graphite iMac G3. I verified by booting up the iMac with an external display and verifying that the Apple bootloader was present. The flyback dying is unfortunately a common occurrence with these late 90's early 2000's iMacs and CRTs. I looked at replacing this part, but they're very hard to come by these days and Apple used a variety of parts for the flyback. One part I found was about $50, but it would require a lot of work and would ultimately not be worth the effort.

I decided to buy one more iMac G3 to satisfy my classic Mac wants. It's either an Indigo or "Fruit" iMac G3, but I will need to wait and see. The seller didn't take a picture of the sticker on the bottom of the unit so I'm not sure. I purchased this model for $69.99 with the known issue of not having a hard drive. It did however have pictures showing the CRT in working order. I have accepted now that whatever happens with this iMac happens. It's possible I get a few years out of it, but it's possible I get a week. It just depends on the previous owner's usage.

There was no mention on condition of the CD (maybe DVD) drive so I will need to proceed with caution on using the internal disk drive. I will try putting in a blank CD to make sure it ejects disks correctly before attempting to use the internal disk drive. If the internal disk drive doesn't work, then I will use Target Disk Mode from my iBook G4 like I did on the previous iMac G3. I did see that there are some "salvaged" slot loading CD drives on eBay so I may give those a look at a later point. I didn't see any replacement DVD drives though. I did actually confirm that my external Pioneer Blu-Ray drive works on the USB 1.1 ports on these iMacs so that could work in a pinch.

For the storage,  will see about using a 250GB IDE HDD since it is the standard 3.5" form factor and should fit nicely without modification. There might be some compatibility issues preventing all 250GB from being seen. I've heard that you can just partition the drive into smaller partitions for it to be recognized by the system. If that doesn't work, I guess it will only be able to address the first 128GB of the drive. Another option will be to use my original SD to IDE adapter with the Class 10 128GB SD card. This should be fast enough with 80MB/s read and write.

Once I've confirmed installation of Mac OS 9 and Mac OS X Tiger, I will do a logic board swap (assuming the logic board needs swapping). Then, I will make sure that the PRAM battery is replaced and re-install the 2x512MB of RAM. I could get an AirPort card, but there isn't much point since it would be 802.11b which would heavily cripple the rest of my 2.4GHz network. I will likely keep it hooked up via 100Mbit ethernet on my desk. Hopefully after all that everything will still work!

Once all of the parts are salvaged from my previous iMac, I will need to see about taking the CRT to an ecycler which is kind of a bummer. I could also try to sell for parts first and then go the ecyle route if that doesn't work.

I will post an update following my reassembly of the next iMac shortly!

Getting Into Retro Macs

15. August 2019 13:16 by Cameron in Mac, Mac OS X  //  Tags: , , , ,   //   Comments

I have a strong affinity for things that are from my childhood; things that are 20+ years old and now considered vintage! I recently stumbled upon a local FaceBook Marketplace listing for an iMac G3 for $22. The listing seemed too good to pass up so I picked it up last weekend. It's a 2001 Graphite iMac G3 clocked at 700MHz with 512MB of RAM, a 60GB HDD, and a CDRW/DVD drive.

This particular Mac is a bit of a fixer upper meaning that the DVD drive is broken and it was missing the keyboard and mouse. However, I have purchased a Graphite Mac keyboard from that era as well as a black optical Pro Mouse. Technically, the "puck" mouse is what most of these iMacs came with, but I haven't used a ball mouse in a long time and wanted something I could use without a mouse pad. Since the DVD drive was broken, I purchased an iBook G4 in order to use the internal DVD drive over FireWire Target Disk Mode to install Mac OS X 10.4 on the iMac. I now have a dual boot of OS 9.2.2 and Mac OS X 10.4. The great guys at Mac OS 9 Lives! provide an easy to use method for setting up your Mac's HDD with 9.2.2.

My plan for this Mac is to use as a retro Mac gaming computer. I may also experiment with the Mac as a cheap audio recording setup since I still have FireWire 400 audio interfaces. I will be upgrading the RAM from 512MB to 1GB, upgrading the HDD to a 128GB SD card with IDE adapter, and replacing the DVD drive. 

Qt Development on OS X Mountain Lion

1. October 2012 21:18 by Cameron in C++, Mac, Mac OS X, Qt  //  Tags: , , , , , ,   //   Comments

OS X Mountain Lion changes a few things on how XCode is installed. Xcode is now contained in an app bundle and the SDKs directory is part of the bundle contents, thus you will need to update your SDK paths in your project file like so:

MAC_SDK  = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk
    if( !exists( $$MAC_SDK) ) {
        error("The selected Mac OSX SDK does not exist at $$MAC_SDK!")
    }
    QMAKE_MAC_SDK = $$MAC_SDK

If you want to support Snow Leopard as a target platform with your Qt applications, be sure to use the 10.7 SDK and not the default 10.8 SDK. Your app should work just fine in Snow Leopard provided that you don't make any calls to Lion specific features while using the 10.7 SDK.

Another important thing is to install the command line tools for GCC so that Qt can find the compiler during installation and successfully compile C/C++ applications from Qt Creator. If you do use the 10.8 SDK with any Qt version less than Qt 5.0, it will give warnings that OS X 10.8 is unsupported during compilation. These warnings can be safely ignored. Aside from that, everything else should be the same as before. Happy coding!

MSI GT70 0ND-202US Gaming Laptop/Hackbook

28. August 2012 00:51 by Cameron in   //  Tags: , , , , , , , , ,   //   Comments

I recently bought a gaming laptop from MSI on Newegg with some pretty excellent specifications:

http://www.newegg.com/Product/Product.aspx?Item=N82E16834152347

Laptop: MSI GT70 0ND-202US Z77M, Intel Core i7-3610QM 2.3GHz, 12GB DDR3 RAM, 750GB Hitachi, 250GB WD, NVIDIA GTX 675M / Intel HD 4000 (Optimus), Realtek HD Audio (voodoohda), Wireless-N Atheros 9285 Half mini PCI  Express Card - Windows 8 Professional x64 RTM, OS X Mountain Lion 10.8.2 Retail

Preinstall

To install OS X Mountain Lion, download the Mountain Lion installer from the App Store (MacOS X 10.6.8 or higher) and use Unibeast to create a USB installation disk. Once the disk is created, you can then boot from the flash drive to install Mountain Lion! At the boot prompt, be sure to boot verbose using the '-v' option and also set 'GraphicsEnabler=No' as at the time of writing this guide, the NVIDIA GTX 675M cannot be used as the primary GPU and the Intel HD 4000 will need some tweaks later to get QE/CI. Once in the installer, you will need to choose where to install OS X Mountain Lion. You can install to your existing disk on a separate partition or install to a secondary disk (recommended). You will need to make sure that the hard drive you are installing ML to is using the GUID partitioning map and not MBR. If you need MBR, you'll need to patch the installer.

Postinstall

Multibeast

Wifi

The MSI GT70 0ND-202US comes stock with an Intel Centrino Wireless-N 2330 mini PCI Express card which will need to be subbed out with another compatible card. Swapping cards is fairly simple. All you need to do is pop up the speaker panel and disconnect the existing card and replace with the new one. One thing that you must do is make sure the Wifi LED is lit, otherwise, you won't be able to use the card. Here's a complete guide on how to choose an appropriate replacement card and how to get it working: http://www.tonymacx86.com/network/58146-guide-airport-half-mini-pcie.html

Intel HD 4000 QE/CI

Using the MacBook Pro 9,1 SMBIOS, LegacyAGPM.kext, 1920x1080x32, and DSDT injection for 01660004 you can achieve QE/CI. It should also be noted that I have removed AppleIntelSNBFramebuffer.kext as it is not needed with the Intel HD 4000 (probably could stop the kext from loading with DSDT later). Here's the DSDT patch for injecting the ig-platform-id:

into method label _DSM parent_adr 0x00020000 remove_entry;
into device name_adr 0x00020000 insert
begin
        Method(_DSM,4,NotSerialized)\n
        {\n
                Store(Package(0x02)\n
                 {\n
                                "AAPL,ig-platform-id",\n
                                Buffer(0x04)\n
                                {\n
                                   0x04,0x00,0x66,0x01\n
                                },\n
                        },Local0)\n
                DTGP (Arg0,Arg1,Arg2,Arg3,RefOf(Local0))\n
                Return(Local0)\n
        }\n
end


Using DSDT Editor, you'll have to apply the above patch as well as the DTGP patch from the patches directory.

Sound

VoodooHDA 2.7.2 - note, you'll have to edit the Info.plist in VoodooHDA.kext so that there isn't a hissing sound coming from the VoodooHDA prefpane. 

USB 3.0 fix (temporary)

One thing that I have found is that if you remove AppleUSBXHCI.kext from the plugins in IOUSBFamily.kext, it will treat USB 3.0 ports as just USB 2.0 ports and crashing no longer happens. This is a temporary fix until full USB 3.0 support exists (possibly in a later update). Make a backup of your existing IOUSBFamily.kext and then do the edits and re-install using Kextbeast.

Kexts

 Here's the voodoo kexts that I use for my laptop. Included is a kext for the battery, audio, and trackpad (multitouch).

voodoo_kexts.zip (212.01 kb)

 Here's my patched DSDT. As I make edits to my DSDT, I'll upload this attachment. I hope this helps for anyone with my laptop or similar.

dsdt.aml (47.02 kb)

 

 

Beginning Desktop Client for IGA

2. January 2012 18:45 by Cameron in PSN, Xbox Live  //  Tags: , , , , , , , , , , ,   //   Comments

After some time to think about the most secure method for processing achievements and trophies for an individual user using the user's account credentials, I've decided that using a desktop client rather than server side technology for collecting achievements and trophies is the best approach. Not only is it more secure, but it also reduces the load on my server by turning each user's computer into a node on the IGA network for processing small parts of achievements and trophy data as a whole. The combined data from each user will be uploaded to the IGA dedicated server for importing into the central database. Then data can be viewed from the web interface or smart phone applications.

The web interface and smart phone applications will merely serve as a way to interact with the data from the database rather than pulling data down from the various sources and taking up bandwidth. This is good for smart phone users as data charges can apply for checking for updates frequently.

I'm using a Qt, a cross platform GUI library, for designing the user interface so that the client may run on Windows, Mac OS X, and Linux out of the box. I will post some screen shots as they become available.

Gitting started with Git

15. August 2011 00:25 by Cameron in Git  //  Tags: , , , , , , , , ,   //   Comments

Git, created by Linus Torvalds, is a very high quality version control system. It was created with the task to manage the source tree of the Linux kernel. Torvalds didn't believe that pre-existing version control systems could give justice to the Linux kernel's source code given its massive size and collaborators so Torvalds created Git. If you are using other version control systems for your projects, consider reading this: http://whygitisbetterthanx.com/

This website explains the advantages in full of why Git is better than other version control systems available. 

Git is free and open source and is available for all platforms: Linux, Mac, Windows, Solaris, you name it

First, be sure to install git for your platform and then you can start playing around with different commands. Once you've installed git, here are a few references to get you started:  

http://book.git-scm.com/  

http://www.kernel.org/pub/software/scm/git/docs/  

Setting Up Git

In order to setup your environment for using a remote git repository, be sure to run these commands:

$ ssh-keygen -t rsa -C "youremail@site.com"

This command creates a public/private key pair for SSH. SSH is used by git to encrypt the connection to remote servers. When asked to where to save your public key, press enter. Then, when asked for a passphrase, leave it empty. Your screen should look like this:

Generating public/private rsa key pair.

Enter file in which to save the key (/home/cameron/.ssh/id_rsa): 

Created directory '/home/cameron/.ssh'.

Enter passphrase (empty for no passphrase): 

Enter same passphrase again: 

Your identification has been saved in /home/cameron/.ssh/id_rsa.

Your public key has been saved in /home/cameron/.ssh/id_rsa.pub.

After your public/private key have been setup, add your global user information:

$ git config --global user.name "Firstname Lastname"

$ git config --global user.email "your_email@youremail.com"

Now you are ready to clone a repository. If you run:

$ git clone git@git.tinksoft.net:test.git

A new directory will be created for the git repository, test, and all of the remote files in the repository will be downloaded into that directory.

Git Command Basics

A few common commands to git are cloning repositories, committing to repositories, pushing to repositories, and pulling from repositories. If you've worked with subversion before, "git clone" is like subversion checkout. It literally clones the remote repository in its current state to your local repository. However, "git commit" is not like subversion commit. When you commit to a git repository, you are only committing to your local repository until you push to the remote repository. Using "git push" is like subversion commit and will push your changes to the remote repository. On the first push, you need to run the command "git push origin <branch name>". This tells git to push the origin to the branch that you specify. After that first push, you can run "git push" thereafter. If you choose to switch branches later on, you simply need to run the original command and specify your origin branch. Similarly, "git pull" behaves like subversion update and pulls down changes from your remote repository into your locally cloned repository. The same  applies to the first "git pull" as does the first "git push". Git needs to know which branch to pull from.  

One thing about pushing and pulling is that if you are working in a team and multiple people are pushing and pulling to the remote repository, you may be required to pull before you push out your changes. Don't worry though. If you have a conflict with your changes, your code will not be overwritten. Git has a conflict resolution tool where you can choose which changes to accept. Another thing that is good practice is to always run "git status" before committing and pushing to your repository. This will allow you to confirm that you are indeed committing files that should be committed to your repository. Also, whatever shows up in a commit log will be pushed to your remote repository when you push our your changes. Be sure to only push out working code and not break the build for your team.

A few advanced commands include "git branch <branch name>" (branches the repository at its current state), "git merge -s ours <branch>" (merges a branch with current branch), and "git checkout <branch name>" (changes current working branch). Please be sure to read up on these commands so that you know how to use them correctly. In a project repository, you don't want to create unnecessary branches, merge branches incorrectly, or lose changes when switching branches. Another advanced topic is to create a .gitignore file for your repository and put all files that git should ignore into this file. Each file should be on a separate line. This can be helpful if you don't want files such as database configurations to be pushed to your remote repository. 

For more information about git, be sure to read the references I listed above and also check out some books on git for a more in depth discussion.

Month List

Tag cloud