Getting started with Jaguar programming.

Let's get coding!

Moderator: a31chris

Locked
User avatar
a31chris
Jaguar MOD
Posts: 894
Joined: Mon Apr 01, 2013 7:09 am

Getting started with Jaguar programming.

Post by a31chris » Tue Feb 18, 2014 5:23 am

Software Developers Kits

You can develop on the Jaguar with almost any home computer(PC with Windows or Linux, Mac OSX). Belboz has Atari Jaguar SDKs that can get Windows and OSX users started here:

Windows XP

MacOSX SDK

For XP(and newer) users, run the XP setup (Jagdev 102) and let it set up to its default directory. If you set it up in a different directory you'll have to re-align the environment variables. Be sure to view the README.

Also included is a Hello world and Jag 256 example. These are already set up to work with the new assembler/linker setup included in the XP SDK. All the other examples are remnants of the old DOS tools and will need their make files reworked.

Assemblers
Once becoming comfortable with Jaguar development some of you may want to delve into assembly more directly. Relating to which there are other assembler options. VASM being one of them. The VASM assembler now supports the Jaguar's GPU and DSP. (28-Sep-2020: vasm 1.8i. jagrisc: Added more predefined condition codes. Now vasm supports the same condition codes as the SMAC assembler.) VASM comes in three main syntax flavors relating to the Jaguar. Devpak, GASM and now MadMac(The Jag's native asm language).

The VASM jrisc assembler is strictly a gpu/dsp assembler. It will NOT do hybrid m68k/gpu files(unlike SMAC included in the XP SDK). You'll have to keep the m68k and gpu code separate. Though it cannot do hybrid files I believe programmers will find that it's the most advanced assembler available for the Jaguar. Check it's website for a list of vasms features and buildable sources.

Vasm's companion linker Vlink

Ready made development environments-LINUX

If you are already using Linux and are comfortable with it then you can go here where SebRMV has made a nice Jaguar Linux setup with pre-made libraries:
http://removers.free.fr/softs/download.php

Emulators
These emulators are sufficiently reliable for people to begin coding on the Jaguar.

Jagulator
http://www.zophar.net/jaguar/jagulator.html

Project Tempest
http://pt.emuunlim.com/

Phoenix Project(only accepts .j64 files)
https://www.levelsmack.com/best-atari-jaguar-emulator/

If any of these emulators ask you for an address to run programs from, try 4000.

Development hardware/upload
-Skunkboards. Usable on modern PCs

Video of Skunkboard in action:
http://www.youtube.com/watch?v=PTnAUFVrWSs

video of Skunkboard GUI in action:
http://vimeo.com/7416421PCs

Jaguar Game drive are now available from Atari Age website.

Or you'll need an Alpine board and an old DOS setup.

Sound engines for Jag programming...

An older sound engine that is open source is the Sinister MOD player.
http://www.kewlplace.com/sinister/jagdev.htm

And the Val D'Isere sound engine:
http://atariage.com/forums/topic/261023 ... &p=4098066

Webpages of interest:
Old School and extremely helpful Jaguar tutorial(Blitter,GPU,DSP etc):
http://www.mulle-kybernetik.com/jagdox/dox.html

Here is DrTypo's webpage where he shares his source codes from his projects:
http://perso.numericable.fr/drtypo/jaguar/

AtariOwls blogspot for his 3D project and advanced tech talk...
http://atariowlproject.blogspot.com/

ToArnolds VBCC Docker setup for Jag programming:
http://atariage.com/forums/topic/267172 ... bcc-docker.

Enjoy!
What came after the Jaguar was the PS1 which for all it's greatness, ushered in corporate development and with it the bleached, repetitive, bland titles which for the most part we're still playing today. - David Wightman

User avatar
a31chris
Jaguar MOD
Posts: 894
Joined: Mon Apr 01, 2013 7:09 am

The GCC for GPU. A brief history.

Post by a31chris » Thu May 15, 2014 8:29 pm

As the story went, no functioning RISC C compiler was available for the Jag. Brainstorm, the French company who worked on the Jaguars toolchain took a stab at porting GCC to the GPU. But reports had been that the resulting effort was so broken as to be almost completely unusable.

Another story was that High Voltage Software aka 'HVS'(NBA Jam TE, Ruiner Pinball, Vid Grid, White Men Can't Jump, Dactyl Joust and Thea Realm Fighters demo) had their own GPU compiler setup that they used successfully.
Brian McGroarty wrote:C++ would theoretically have been supported, but C was mostly used. The system was implemented using call instrumentation which swapped overlays in and out of the GPU, along with an overlay manager. This placed some significant size limitations on individual functions, of course. Ruiner Pinball used this for the majority of its code. Scott Corley should be easy to get a hold of, and he could tell you more about it. He was the author of the instrumentation and overlay system.
But now according to Adisak Pochanayon(White Men Can't Jump, NBA Jam TE) their setup was using the RISC GCC that Atari had Brainstorm develop.
Adisak Pochanayon @adisak · May 13 2014 wrote: it was just the GCC compiler. The custom parts were to dynamically load (and link) routines into GPU and DSP
All attempts since Atari's demise to use the risc GCC had reportedly failed to produce anything workable so this was quite a revelation. It was assumed that Brainstorm botched or stopped developing the risc gcc to functionality and that HVS had developed their own compiler.

We now know that it was a hardware comparison bug in the GPU that has caused such grief with using the GPU GCC. While Atari threw their hands up at the problem, HVS had independently come up with their own(now lost) solution.

Note:. The error may not have a direct correlation to a gpu asm compare error. Mike Fulton said the problem also affects gpu assembly programmers except in a different way.

Brainstorm never complied with the GPL so no sources are available from this GCC for recompiling on a modern gcc or updating.

Perhaps someone can take these clues and get this GCC to work. It's not impossible. High Voltage Software apparently did it quite easily and had massive success with it.
High Voltage Software wrote:In the end though, C and eventually C++ use became pretty invisible (read easy and efficient) even on the GPU RISC processor.
So here it is, the risc GCC. Just waiting for us to get that comparison bug squished and start using it.

Latest _known_ version of the GCC for GPU(GCC 2.6.3 June 95)

Further reading:

Using the GCC for GPU with DOSbox(required)

The story of the HVS GPU Manager

HVS discusses(sans solution) using the risc GCC successfully.

An interesting side story of how HVS got ahold of the developing GCC for GPU when most of Atari's in-house programmers had no idea it existed.
Last edited by a31chris on Sun Jul 14, 2019 8:58 pm, edited 1 time in total.
What came after the Jaguar was the PS1 which for all it's greatness, ushered in corporate development and with it the bleached, repetitive, bland titles which for the most part we're still playing today. - David Wightman

Locked