Having just finished my first Jaguar game Shape Shooter 2000, here are a few notes about the development environment I ended up using on macOS.
Wine
To get the obvious out of the way right at the beginning, the majority of the tools you will need to develop for the Jaguar are primarily maintained for Windows. I’ve found that they all run well under Wine. I installed it via brew
.
The WINEDEBUG=-all
environment switch is your friend.
Virtual Jaguar
The oldest Jaguar emulator still in semi-active development. Virtual Jaguar is developed and tested by many of the same people who maintain other key parts of the toolchain. Unfortunately compatibility could be better, with some titles and example code such as Atari’s 3D Demo failing to run at all. There is a macOS build of the last release (available here), but it does not display correctly on Sonoma.
BigPEmu
BigPEmu was originally developed to run the Jaguar games included in the Atari 50 compilation. Author Rich Whitehouse has since made the Windows version available for download, as well as recently porting it to iOS. Compatibility is excellent. The level of accuracy also seems equally high. The few exceptions I’ve found so far err on the side of improving the emulated experience over reproducing every annoying quirk of the hardware.
Noesis
Also written by Rich Whitehouse, Noesis is – among a great many other clever things which I’ve yet to investigate – a universal debugger. When used with the developer version of BigPEmu it allows full debugging of all three processors, with breakpoints, register views and memory inspection.
JagStudio
Built around ReBoot’s RAPTOR API, JagStudio allows 2D development in a dialect of BASIC, as well as C and assembly. Setting up a new project is still pretty low-level, requiring some knowledge of the format the Jaguar’s Object Processor is expecting data in, but overall if you just want to get started writing games this is the way to go. There are an enormous number of example projects included to learn from. Runs without issue on macOS using Wine.
jaguar-sdk
jaguar-sdk gathers together the modernised components of the Jaguar toolchain with documentation and example code in one repo. This is also made available as a Docker container, which works without issue on macOS. This is the method I ended up using. The example code included a 3D demo from Atari which formed the base of my game. The modified code is available in this repo.
U-235 Sound Engine
The U0235 sound engine provides sample and .mod file playback, as well as joypad reading and a random number generator. It is one of two sound options provided by JagStudio, and is simple to setup and use in your own project. Until an update is released, I suggest using the version from this comment, since it appears that the latest version available through the official web site isn’t the same bug-fixed version.
Additional Resources
-
Updated Jaguar Software Reference The original Atari documentation, updated with the contents of both official tech notes and experience earned by the community over the years.
-
Jaguar Programming Forum at AtariAge Decades of excellent information here. Expect to get sidetracked whatever specific topic you go looking for. Support for new questions about current libraries can be patchy.
-
The Jaguar Underground Documentation Covers much of the same ground as the official documentation, with additional commentary and examples. Useful for a second opinion if something is the Atari documentation is unclear.