This is probably a start in the right direction for your cape issue: http://circuitco.com/support/index.php?title=BeagleBone_Breakout
For emulation, there are a variety of ARM-based solutions for video game emulation, although video games with higher frame rates and complex graphics typically won't run at full speed so you will be limited to less sophisticated video game emulation. However the GPU on the BeagleBone is not closed source, compared with for example the Raspberry Pi which has a completely closed GPU implementation and which can only be utilized via OpenGL ES. Although I've not done anything with ARM emulation, I would surmise that the BeagleBone is much better equipped for that based on the open nature of its GPU.
The choice between XM and BeagleBone, at least from my research so far, is more of a GPIO and expansion vs. multimedia capability question. For expansion, the BeagleBone has two full expansion headers with a ton of GPIO pins that can be muxed (17 I believe), and which can be controlled via the PRU for realtime performance (servo control, complex waveform generation etc). The XM has a limited expansion capability and doesn't support the concept of capes. However the XM does have a native camera interface, an onboard DSP, video and sound output etc.
So it sounds like your needs would be best served with the XM as opposed to the BeagleBone.
Unless you have a lot of Linux knowledge and expertise, the default Angstrom distribution would be the way to go initially, as many of the onboard hardware peripherals are accessible via sysfs. You can set pin muxing and directly manipulate GPIO with sysfs on Angstrom. More recent releases of Ubuntu for the BeagleBone also sport sysfs interfacing now but there is a bit steeper learning curve to get Ubuntu up and going as opposed to just using a stock Angstrom image to flash the system with.
If you are new to Linux, before diving in to an ARM-based environment I would suggest getting started with Linux from Scratch (LFS) on an x86 desktop machine:
http://www.linuxfromscratch.org/
LFS is probably the most difficult way of getting Linux installed on a PC, you compile each aspect of the system by hand and build it step by step. After you've completed a LFS installation, you will know everything about the Linux filesystem, run level boot process, kernel internals, location of system binaries and libraries etc. Spend a few days doing an LFS install on your desktop machine, it will help you immensely with the transition to an ARM-based SBC such as the BeagleBoard/Bone. For enterprise Linux training, many times I would have my students start with an LFS build first before training them on distribution-specific details such as package management wrappers and system administration.
Both Angstrom and Ubuntu for the BeagleBoard/XM/BeagleBone include native gcc development toolchains so you can develop and compile directly on the BeagleBone itself. However you would still want a desktop/laptop cross compile environment for doing kernel builds from a performance standpoint, it would probably take several days for any ARM-based system to do a full kernel build unless it's a quad core ARM processor. I have a laptop with an SSD that I use for kernel builds, everything else I just compile natively on the BeagleBone itself using gcc.
To get started with the BeagleBoard or BeagleBone these fellows have put together a very comprehensive wiki that includes labs and walk through examples on almost every topic related to BeagleBoard/Bone internals and cross compilation:
Here is the BeagleBone getting started guide:
http://beagleboard.org/static/beaglebone/latest/README.htm
Always make sure you use the HP format tool to prepare your SD card prior to imaging.