I was reading the GBADev forum yesterday and found an interesting thread about how people were getting around the problem of debugging when coding for the DS. It was such an interesting thread that I didn’t notice I’d missed both of the stops I could have got off at, and had to ride the train into the city centre and get a train back. Curses.
The idea goes something like this: If you can abstract away enough of the DS’ hardware, there’s nothing to stop you from writing a simple layer that will allow your DS project to run on the PC as a native application. Woopsi is itself basically a hardware abstraction layer, and all of its DS-hitting code is contained within Steven’s woopsifuncs files.
I decided that it would be easy to create a new “nds.h” file (containing all of the data type shortcuts from libnds) and create a new set of Woopsi functions targeted at another hardware platform. Obvious choice: SDL. If I can get Woopsi’s standard HAL pointing at SDL, Woopsi and any apps that use it will immediately run in Windows, on the Mac, on the Amiga, the GP2X, Linux…
Except, of course, both Microsoft and Apple have conspired against me to stop this happening. Getting SDL set up in Visual Studio looks to be needlessly complicated, so I went for Xcode instead. Easy to set up - just involves dragging the runtime library into the Frameworks folder, and copying over the templates.
However, Apple have played another hilarious trick with Leopard - if you upgrade Xcode from 2 to 3, you’ll find that trying to compile anything results in “duplicate symbol” errors. Nothing works.
That pretty much settles it. Leopard is a bloody nightmare if you perform an upgrade from Tiger - I’ve had endless problems with it - and I’ve got no choice but to wipe my laptop and reinstall the OS from scratch.