Monday, June 2, 2014

Adventures in 32X Homebrew - Part 1

I have not been posting a lot recently, one of the reasons has been a project that I started in early 2012, which as it never quite reached completion I did not want to let the cat out of the bag with premature posts, more importantly I was a novice in the areas that contributed to this project so to write a bunch of posts without knowing a thing about what I was writing would have been fruitless exercise. This mysterious project consumed my nights and weekends, on and off for at least a year and although I think what I originally intended to do is feasible, I do believe I have learned enough that sharing this knowledge may be useful to someone else, at least as a cautionary tale of things not to do.

As you may conclude from the title of this piece, the subject of my project was the Sega 32X game console, and specifically developing "homebrew" games for it. For the sake of brevity I will refer to all consoles and games by their U.S. titles, for example the Sega Genesis was titled Sega Megadrive in other markets.

Background

Sega 32X

Sega 32X ( was released in 1994 as an add-on unit for the Sega Genesis/Megadrive video game console. The 32X was considered as a way to "upgrade" the 16-bit Genesis to be a 32-bit console without having to buy an entire new console that were starting to enter the market, such as the 3DO, Atari Jaguar and even NeoGeo, this would have been nice for the millions of owners of Genesis unit's with large libraries of existing games that would still be playable on the 32X expansion. In addition, at the time, Sega was already being edged out in the 16-bit console wars by the Super Nintendo (SNES) where games like Donkey Kong Counter, Starfox, Killer Instinct and Final Fantasy 3/VI were beginning to eclipse the Genesis titles visually and even in other areas like game sound and the sheer amount of content. Whether the concept was sound or not, the result was 32-bit capable system that was less powerful than the other 32-bit consoles on the market or the next generation that was coming, the so-called "fifth generation" consoles, of Sega Saturn, Sony Playstation or Nintendo 64.  The result of the release of this console was that while initially popular with American genesis owners, the lack of third party development support and poor quality titles crippled the platform, sales fell when people realized that this wasn't going to get the games that were coming out for the real 32-bit systems. Sega ended up completely pulling the plug on the 32X in 1996 with no new games being released. The saga of the development and release of the 32X in this context is a fascinating story by itself, and excellent accounting of that can be found in Project Mars: Anatomy of a Failure.

I will out myself by admitting to owning the 32X (and still do), and in my blind brand loyalty to Sega I had at the time, tried as hard as I could to like the 32X and the games that were released for it. Looking back with almost 20 years of hindsight, I was rather naive over the state of the market at the time. for one thing, I did not have any subscriptions to gaming magazines at the time, so I really did not have any critical analysis of the 32X, it's expected game library or system specifications and capabilities. I did not recall that the Sega Saturn and Sony Playstation came out so soon after the 32X did. I also remember believing some things initially, don't know where I heard it, such as that the Sega 32X + Sega CD add-ons would create a combined system "equivalent" to the Saturn, even that the games would physically be compatible, or that there was some kind of hardware acceleration for 3D games. I was in school at the time, and couldn't have afforded a Saturn in any case, with my meager part-time home chore income, the idea we could have a 32-bit system instead of a 16-bit one, was very appealing. The initial lineup of games that were released were promising as well, Doom being of the biggest titles, probably one of the biggest PC games at the time, Star Wars Arcade looked incredible, and it was Star Wars! Virtua Racing was another cool 3D polygonal car racing game, that was pretty impressive for the time. Both of these Sega titles I had actually played a few times in Arcades around '94. Again I was not a very educated consumer, I did not go to arcades all that often, while in the 8-bit era, it seemed pretty obvious that arcade games were far superior, as 32-bit era approached, it wasn't clear that the arcades still had far better graphics than what we were going to be getting at home. Even for 16-bit, at the time I was not really sophisticated enough to realize that the Mortal Kombat I played at home was a different experience to the one in the arcades. In any case, the games looked "good enough" and surely, more and better games would be coming out?

Its a trap: Repetitive arcade game play from one of
the best 32X games
Now, I loved Sega at the time, but overall, my impression of the 32X was a major let down, even if I didn't want to admit it. In my opinion, the games were generally just boring, it's hard to pin-point why, I think mainly the game play was lacking, and the 3d effects and fairly limited worlds were underwhelming after a while. For example Virtua Racing Deluxe, had really nice, crisp polygonal graphics in true 3d world with multiple camera angles, decent sound and music, but it in the end, it lacked the rush and thunder of the arcade version, especially after going around the same tracks 2-3 times, there isn't much else going on. I've never been a fan of racing games, but there was only so much you could drive around, and you could never get outside the track and explore. Motocross Championship, was basically like EA's Road Rash series, except the graphics were barely better, the locations were always the same dusty dirt track and the sound effects were particularly terrible. The best 32X game was Star Wars arcade, which again, as an arcade port, was repetitive, fly through hyperspace to an area and chase TIE fighters in circles. Now it was beautiful 3d space environment with asteroid fields and star destroyers, but it did lose it's edge after the 15th tie fighter blew up in a small yellow virtua-explosion off in the distance after 20 other similar laser shots failed to do any damage. I don't think I ever actually made it to the Death Star trench run level. I was also disappointed that you couldn't damage the star destroyers, it was my dream to  blow up their deflector shield domes, ala Return of the Jedi (Intensify forward firepower!....Too Late!!!). I don't think I actually had any other 32X games. I probably played Sonic & Knuckles alone twice as much as all those games combined while I owned that system.

Making Dreams a Reality

So money spent, dreams shattered, I always wished that they made better games for the 32X. Many years later, I had heard that one of the reasons that the games weren't that impressive was due to the developers not utilizing the hardware to it's fullest. Now being a developer myself, I wondered, what if I made the next great 32X game? The context is that I have been interested in gaming and computer programming all my life, I have made some game-ish programs for university courses and I briefly dabbled in libSDL programming on Unix. I have a few game ideas I have been kicking around in notebooks and in my head for years, and it was always a dream to someday put them down into reality. Why the 32X, well it just so happens that the genre's of games I want to make are generally side-scrolling, 2D affairs. For me and probably a generation of gamers, there is nostalgia for games that look and act like the ones we grew up immersing ourselves in on our old sega's and nintendo's. My grand vision was to take some of game story ideas, using genre's that were mostly done in the 16-bit era, and make even better versions of those for the 32X! Not only would these retro games be good in their own-right, they would be unique for being released for one of the most maligned and obscure platforms ever, nobody would be able to compete with me! I own a Sega Genesis and 32X although it had been sitting in a box in my parent's basement for 10 years or so, I planned to eventually resurect it and play my homebrew masterpieces on it one day. So I set out to "teach myself" how to program for 32X and make the best darn game anyone had ever played on that system.

Hardware and Development Environment

The 32X is an interesting piece of hardware, the overall system combined with the Genesis (+ Sega CD) is a complex multi-processor machine with heterogeneous CPU architectures, video processing capabilities, memory spaces, but sharing the main inputs/outputs (Cartridge ROM, controllers, video and audio out). Unfortunately to learn the 32X you have to know at least a little about the way the Genesis works and some of the ways it differs. This is a crucial point to keep in mind for later, because often you'll be amazed by things that Genesis games could do with apparent ease which seem to require vast computing power in the 32X.

There is relatively scant documentation on the internet, and most of it, that does exist is useful as background reading, rather than being actionable step-by-step guides to do anything. There is a small community of homebrew developers who are mostly self-taught, extremely technical and interested in all the bits and bytes of hardware in both the Genesis and 32X. Without their help and guidance I would never have been able to get a Hello World to run on the 32X.

Specifications

CPUs: Dual Hitachi SuperH RISC processers (SH-2, SH7064)
Clock Speed: 23 Mhz
Main Memory: 256Kb SDRAM

Video:
Video Memory: 256Kb (two 128 Kb framebuffers) 

Screen Resolution: 320x224 or 320x240 (PAL)
Color depth: Up to 15 bits, 32768 unique colors, two-bytes per pixel, can use paletted color mode, using up to 256 on-screen colors with one byte per pixel to save memory.

Sound: 

Stereo 2-channel PWM (Pulse Wave Modulation mixer)

And that's about it for the 32X. As I mentioned the 32X combines with the Genesis base, and a 32X game can actually leverage the Genesis hardware in addition to just the 32X components (as well as Sega CD). The Genesis specs are:

CPUs: Motorola 68000
Clock Speed: 7.67 MHz
Main Memory: 64Kb RAM
 

Video:
CPU: Dedicated "Video Display Processor" based on Texas Instruments TMS9918
Video Memory: 64Kb and 64 x 9-bits of CRAM (Color RAM)
Resolution:
Maximum same as 32X, 320x224, 256x224, 320x240 (PAL only), 256x240 (PAL only)
Supports 3 planes, 2 background layers and 1 sprite layer

Sound:
CPU: Z80 @ 4 MHz (Not Present in MK-1631)
Controls PSG (Programmable Sound Generator, TI 76489) & FM (Yamaha YM 2612) Chips
Sound Memory: 8Kb

Cartridge

32X cartridges although physically different are essentially the same as Genesis carts, and can hold typically 4Mb of ROM data although the size of ROM could be larger if used with bank switching capability to access a larger memory space.


Development

  Game software can either be developed in assembly language (a mix of SH2 assembly plus 68000 assembly for Genesis in the same game) or a higher level language such as C that is compiled into machine code for one or the other processor architecture. An "art" of the 32X development is being able to write software for both the Genesis and 32X that can coexist peacefully on the shared hardware.

There are no IDEs, there really isn't a standard SDK, toolkit or any libraries for the 32X available, other than a few home brew examples that are out there. If you can set up an IDE and configure a custom tool chain you may be able to use it to build your C source code into your game. There are appears to be more of a homebrew community for the Genesis. I used a combination of text editors with syntax highlighting and various command line tools and shell scripts for my own build environment which I will cover in Part 2 (coming soon)


Background Resources & Reading


It helps to have an overview of the hardware and reference material handy, there isn't much documentation or specific resources on the web for 32X development, so what is out there is gold.

Collection of Sega 32X Manuals including the most important "32X Hardware Manual".

Reverse engineered introduction to 32X capabilities and hardware.

Devster's site also has a few other documents, example homebrew ROMs and utilities.


"Project Mars: Anatomy of a Failure" – a good overview of the development, marketing and failure of the 32X and the impact it had on Sega.

"Hitachi SH7604 Hardware Manual" – The manufacturers manual for the main RISC CPUs used in the 32X aka SH2, Super-H. Has the details for all of the assembly language instructions for the processors.

Gallery: 32X Development – includes some utilities, assemblers and 32X BIOS files as well as more Hitachi SH2 documentation.



Places to get support


The only places to ask questions about 32X development are a few Sega/gamer enthusiast sites' forums where there is still a small homebrew scene of people who have taught themselves how to program.


Saturday, March 29, 2014

Malicious redirects from this blog (resolved)

Dear readers,

It has recently come to my attention that there was a problem when viewing my blog with javascript enabled in your browser where you would be redirected to some obvious spam/malware/phishing sites (fake Flash or Java download pages). This was happening due to a third party gadget that was part of my Blogger template and apparently had only recently been causing this behavior. My apologies for anyone whose browser was hijacked by this.

These third party gadgets are submitted to Google and available for a blogger to choose to add to their blog's layout template. All indications are that the blog has not been "hacked" and the problem is resolved now.

Information about this problem on the Google support forums seems to indicate that this has happened to many other bloggers as well. If you run a blog, you should remove the Sociable or Share It gadgets as they are known malware gadget.

https://productforums.google.com/d/msg/blogger/aLsGFogJraw/6eU71c8g9ZMJ



Oh Ubuntu, won't you ever win?

After several months of idling in my basement. I decided to fire up the ol' Ubuntu desktop in order to use one of the few apps I have on that OS that I don't currently have an equivalent on Windows. After successfully using the intended software, Ubuntu's Update Manager helpfully notified me that I needed hundreds of critical and recommended updates to software packages. I am fine with that, and figured it wouldn't hurt to update since it had been some months and I expected to need to use Ubuntu again more regularly.

After downloading and installing all the updates, I needed a reboot. After doing so, my desktop wouldn't come up due to errors like this: Xorg says the kernel module is of version 304.88 (The old version before I updated) but the driver components are of version 319.32 (The new version).

This isn't the first time I've gone down that road, and it usually doesn't end well. I don't know why security fixes can bring down the GUI of my desktop. But oh well.

Thankfully, to Google and AskUbuntu, the answer is so simple it brought tears to my weary eyes.

Thanks to a Mr. "Joren" for the solution:
 
First remove all the old drivers:
sudo apt-get purge nvidia*
Then reinstall the current drivers:
sudo apt-get install nvidia-current
Reboot, and your're good to go!
sudo reboot 

Worked like a charm.
 

Source: http://askubuntu.com/questions/349129/12-04-lts-wont-boot-after-nvidia-driver-upgrade

 

Tuesday, July 9, 2013

Europa Report: Movie Review

I am always a fan of science fiction films and happy for any science fiction that comes my way. In this case Europa Report is a fairly independent movie that is being released online and On Demand before being shown in theaters. I recently watched this through my cable providers "Video On Demand" feature, where you can purchase a rental of this movie for $9.99 (ouch). There are both standard definition and high-definition versions available, but if you get one you don't get the other, so use with caution. I think releasing movies straight to the internet/on demand and skipping the theaters is a new strategy in the movie industry. Hear about that trend in this recent NPR: On Point broad cast: Is the U.S. Movie Industry Broken?
Europa Credit: NASA

Europa Report is about a fictional manned-mission to Jupiter with a landing on the icy moon Europa. One of the four large "Galilean moons" of Jupiter, it has an icy crust, and as we all know, likely to have a sub-surface ocean of liquid water. This near-future sci-fi to stick closely to known technologies and science, might be what one would call "hard sci-fi", more 2001 than Star Wars. But actual science is not usually box-office dynamite (or so studios believe), so as the crew of 6 astronauts approach Europa they fall into increasingly critical misfortunes that threaten their mission and their lives. The movie is foreshadowed by an "executive" talking to the camera, documentary style about the mission and you get the sense something went wrong. Most of the movie is then shown through lost-footage style clips showing bits and pieces of the long journey and the events on Europa. This seems to be a common trope now as it is similar in the style to Apollo 18. Not only is the footage spliced together out of order so you don't get a full understanding of the events until later, but they use a lot of creepy noise effects and interference at times to make it seem "spookier" I guess. I still think Moon did the best job in recent years, to tell a story in space without devolving into a sub-genre of typical horror films, and just having normal drama in a science fiction setting (yes the premise for Moon isn't that realistic). In any case, I don't think it is a huge spoiler, given the trailers for this movie, to tell that things don't ultimately end well for the entire crew.

Thera Macula (false color) on Europa. Credit: Paul Schenk/NASA
Other than the style, I found the characters and story were pretty good, the effects were pretty good overall and didn't seem like overuse of CGI and they did have some weightlessness scenes. The scenes in orbit around Jupiter and Europa were quite impressive, makes you wish we really were going there. There were no explosions in space, super AI, fusion reactors or any other really exaggerated technology. The ship had a rotating living section to simulate gravity which they spent most of their time in. Once they get to Europa they send a large section of the craft down as a lander which will then drill through the ice and hopefully reach the under-ice lake or ocean in order to search for life. That is the plan anyway.

Europa Report currently has a 69% fresh rating on Rotten Tomatoes. Overall I enjoyed the movie. It's probably worth a Netflix rental, rather than paying $9.99 for it.

spoiler alert!

 Stop reading if you don't want critical pieces of the movie spoiled for you.



While the Europa Report was pretty good, but the "science" part of the plot kept reminding me of List of things I did not care for in Prometheus. Basically it comes down to: "We are going to go halfway across the solar system, for the first time in humanity, but as soon as we get there we have no ability to actual get any scientific research done without being eaten by monsters". One the main claims to fame this movie has is the supposed realism and authenticity of the mission. I feel their hearts were in the right places, and it's basically a movie about every space geek's fantasy about what might be on Europa, but they fell into too convenient plot devices I found hard to swallow, despite enjoying the movie.

Among my issues with the plot:
  • No redundancy of communications... what!? Isn't that the most important thing for a mission to another planet/moon? Not to mention they apparently did have a way to repair it, but chose not to until the very end. Oh and genius idea that the life-support subsystem can swap parts with the communication subsystem.
  • No redundancy of their drilling probe? They lose one and all is lost. They can't improvise a camera on a pole and look under the ice?
  • Apparently, there was no firm plan to have the crew explore the ice surface after landing, no radiation protection, no way to deal with hazards of walking on ice, no vehicles to use other than walking. Why send humans at all in that case?
  • When they do send a scientist outside, they have no safety harnesses, they don't use a buddy system like mountain climbers (were the Apollo astronauts ever alone?). Let alone have any sort of a rescue plan i.e. a jet-pack or other person suited up ready to go out in an emergency. Maybe flotation devices might be useful on a planet with liquid water? For that matter, I wonder how buoyant a space suit is with low gravity, since I believe in those neutral buoyancy tanks on Earth they weigh down the suits with additional weight. She basically sinks like a stone in falling through the ice, they don't even bother to go after her, but it's implied she is eaten/killed by the monster. This is like horror movie 101 stuff, never go out alone, never walk towards the mysterious light.
  • So they go all the way to land on Europa and they don't have a reliable way to go outside, so you would think the lander would have all sorts of robotic arms, scoops and other sensors to get as much science, like any other lander NASA has ever sent to another world, but other than the one drill probe, apparently not. Wouldn't a major effort be to take back "Europa-rocks" of ice samples or whatever they can find and bring back to Earth for research?
  • You would think to support such a mission there would be a network of probes either in orbit around Europa or in the Jovian system which would be taking images of them and the landing site (maybe to see aerial view of the "lights" they are so desperate to see up close), able to relay communications, etc.. Like we have on Mars now with NASA's MRO
  • 6 crew all the way to Europa and only 2 scientists doing anything while they are there.
  • They didn't exactly explain how long they planned to live on Europa, similar to some missions to Mars, the return window is some length of time away, so they need to have some semi-permanent base to live and work out of for an extended stay. For Mars exploration there are ideas to send unmanned supply/cargo craft that would already be there on the moon for them to use to set up some sort of base. It didn't look like they had any plan like this, and it seemed like they had an all or nothing EVA to get scientific data before trying to come home? It wasn't clear if the rapid take off was due to the crew death's or because they weren't going to stay long anyway.

Maybe the idea (I doubt the writers even thought this far ahead) was that the mission was really just a "plant the flag" expedition to Europa, without much plan for hard science, but to promote the Europa Ventures company. Something like the quick and dirty ways they could get to Mars really fast without doing anything useful while there. But then again, they probably wouldn't need 6 crew for that. On the other hand, the one thing they did have redundancy for was the lives of the crew!


Some unresolved questions or plot points, and maybe I just missed them:

Why couldn't they leave theAndrei in the orbiter? Not that it mattered I guess, did they imply he had radiation poisoning or just that he was depressed?
 
Why did that male scientist die at the end, did he just fall because of an "ice quake" or did the monsters get him?
 
Hopefully the monsters' ecosystem isn't waiting for spacecraft to land, be attracted to their lights and fall through the ice so they can be eaten. They would get very hungry.
 
Wasn't the monster creature attracted to light almost directly taken from Arthur C. Clarke's "2061: Odyssey Three"?
 
It was implied that there was some connection between radioactivity interference and the monsters, could be interesting if there were alien life that could somehow use radiation in the environment directly as a food or heat source. But this was never really "answered" within the movie.

Monday, June 17, 2013

Windows Update Error code 80246007 on Windows 7

I have tried applying Windows Updates for .NET Framework security updates and was hitting failures on Windows 7 with error code 0x80246007. If I View the error details from Windows Update History I saw the following error codes:


For Windows update failure log (View Details):

Security Update for Microsoft .NET Framework 4 on XP, Server 2003, Vista, Windows 7, Server 2008, Server 2008 R2 for x64 (KB2804576)
Installation status: Failed
Error details: Code 80246007
...
Searching for this error on Microsoft Windows support site I only found the following KB article:
http://support.microsoft.com/kb/958042/en-us
Unfortunately, the article does not apply to Windows 7 specifically. Searching for the error code and Windows 7 brought up no additional results. What to do?


Disclaimer: I am not an expert on Windows system administration, I make no claims to be able to solve your individual problem nor advise you to not follow normal support paths for your issue. If you use any of my suggestions you do so at your own risk.

Reading the knowledge base article, the cause is described as:
This problem may occur if the Windows Update database is corrupted.

Under resolution there are the same steps to resolve for Window Vista and  Windows Server 2008. Broadly speaking, these OSes are similar to Windows 7 in many respects. So I attempted to follow the steps, which involve writing a small batch script to stop the Windows Update service,  wuauserv rename the Windows\SoftwareDistribution\Download folder and restart the Windows update and bits service.

I tried the instructions as described. Received access denied for every line of the batch script. I then tried running from a Command window I had 'Run as Administrator'.  I still got the access denied error on renaming the Download folder. So I just manually renamed via Windows Explorer, and reran the script.
 

The next time I ran Windows Update for the update which failed I then hit error 80070002 for one update.
This time Windows Help advised to delete data from Windows\SoftwareDistribution\DataStore as well as \Download folder, and to just restart Windows Update service.

This finally solved my issue. My guess is that these steps would apply to either 80070002 or 80246007 error codes on Windows 7.

I recommend if you hit this issue, to comment on the KB 958042 page above and let Microsoft know they need to update the KB for Windows 7.


Sunday, February 17, 2013

New PC (again)

It's been a few years since I've gotten a new laptop. Realized it was about time as the screen on my old Toshiba began flickering white lines and generally acting up.

I got a new Sony Vaio S-series. This model is one of the few Windows 7 PCs that have a full HD resolution screen, 1920x1080. (I am envious of the MacBook Pro Retina displays). I looked at Windows 8 PCs as well, but couldn't stomach the "start" display, I wasn't interested in touch screen features.

Step 1: Transfer Files

I decided to try using Windows Easy Transfer, which advertises that it can transfer, "User Accounts, Documents, Music, Pictures...And More". My old laptop and the new laptop are both Windows 7 and come with Windows Easy Transfer pre-installed.

It's fairly straightforward, you start it on the source PC, and you get a pass key, start in on the new PC and you enter the pass key, once you do that you can choose what folders basically from the old computer you want to transfer. In my case I did a wireless connection. When you select a user account to migrate it pre-selects all their Documents, Pictures and Music libraries (under C:\users\.. ), for Shared files it selects Public libraries and also what appears to be any folder on C:\ that is not part of the default Windows install. This means a lot of garbage may be brought along from the old PC, it's not always clear on where programs store their files. Unselected the options for Program Data and Windows settings, I was unsure what files this would actually bring. In total I had 60+ GB of data to transfer.

After you select the folders and start the transfer the program on both PCs tells you not to use anything. I assume this is to prevent you from moving or changing files on either side during the move.

The transfer ran a full day before the new PC crashed giving me a helpful "Operating System Not Found" prompt. I had to restart that PC and there doesn't seem to be anyway to recover the state of the transfer. Worse, there isn't a report of the files moved, so I didn't really know what had completed. I could see most of the files on the new PC, and new it was almost done, so I didn't have to re-run the whole thing again. I just resumed from shared folders that I saw were missing.

One confusing thing was that it didn't actually transfer the Windows user accounts I had selected. It copied all the files from the old user accounts into my current user on the new PC (which happened to be a different user that I didn't want to keep). So you still have to manually set up any new users in the Control Panel.

Step 2: Install software
Basically I knew what I needed for my projects, Windows Easy Transfer also provided a report of all the software from the old PC that I didn't have. It's helpful as a reference.
 

Step 3: Fixes:
So far other than missing license keys and other things I had to dig through my email or memory to get back, one major issue was with Windows Live Photo Gallery. The the database that WLPG stores ratings and metadata (person, descriptive and geotags) for image formats that don't support it is not moved during the transfer.

Other people have had the same issue:
How to transfer image tags from Vista Photo Gallery to Windows 7 Live Photo Gallery

The ultimate answer involves some scary manipulation of the hard disk volume id, but ok:
Migrating Vista’s Windows Photo Gallery database
Some helpful details about where WLPG stores files and it's database.
http://johnfederico.net/2009/07/27/windows-live-photo-gallery/

As I mentioned in my own experience of upgrading to Windows 7, I also transferred the old Windows Vista desktop backgrounds and user icons.

Wednesday, December 19, 2012

Uninstalling Xubuntu from Ubuntu 12.04

I have been trying to learn to love Ubuntu 12.04 since my previous upgrade experience. It has been no easy task.

Among other things, my PC is not cutting edge, but even running Firefox was beginning to slow down to a crawl. I have not yet determined if this was due to some specific software or driver error, the Gnome 3/Unity interface, or other background tasks fault.

Getting desperate I have been looking around for lighter weight alternatives. I tried installing Xubuntu, which is supposed to be much more bare bones than the flashy Unity desktop.

I installed it
sudo apt-get install xubuntu-desktop

That was all fine and good. I restarted and went into the Xubuntu desktop. First of all, what I didn't realize, and my mistake for being ignorant, it kind of adds a lot of other software into your system, changes the boot screen, and generally is a bit more invasive that I liked. In the end, it was performing better, but due to some persistent graphics issues I have been having with Ubuntu I couldn't see the whole desktop after logging in. From what I could see of the desktop it looks a lot like the Linux experience I had in the mid-2000's on Red Hat or SuSE distros, pretty bare-bones, almost Windows 95-ish. Not saying it's awful, but I almost have to say I like Windows 7 more now. At least it was fast!

So, how to uninstall?

Well it's more difficult than it might seem. I have followed these excellently well-documented steps

Ubuntu 12.04 – How to Completely Uninstall/Remove a Package/Software/Program

The one comment I had, (which I could not post, apparently my email or website flags me as a spammer) is that GEdit 3 which come with Ubuntu 12.04 does not have the Regular Expression find and replace capabilities shown in those steps. You must additionally go and install a Gedit regex replace plugin to do so.

For now, I am using the Unity 2d interface. It looks almost the same for me, feels pretty quick. I'll stick with it. Not saying I would rule out a switch to Xubuntu or another desktop in the future if unity continues to be trouble.