Getting started with Jaguar programming.

Let's get coding!

Moderator: a31chris

Locked
User avatar
a31chris
Jaguar MOD
Posts: 916
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 hosts Atari Jaguar SDKs that can get anyone started here:
Belboz wrote:My Jag files are at

http://www.hillsoftware.com/files/atari/jaguar/

I have a bootable linux CD up (two of em actually, one is terminal only, one has a gui).

http://www.hillsoftware.com/files/atari ... laxgui.iso
http://www.hillsoftware.com/files/atari ... rmslax.iso

They do have all the dev tools on them (current at the time I made it). Seb's library is on there too. They are outdated and I don't have the time to update them, but someone else could take up the cause.

You can boot the CD from your PC and use it, or run it through VMWARE, Virtualbox, etc

There are setups there for 9x, XP, OSX and Linux. There are also bootable Linux LIVE CDs all set up for working on the Jaguar. Browse around.

For XP(and newer) users, run the XP setup(Jagdev 102) and let it install to its default directory. Thanks to Belboz's hard work this will set up all the environmental variables for you. 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. 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.

You can find win32 convenience builds of the 3 syntax flavors here: Vasm

Latest vlink
http://atariage.com/forums/topic/235242 ... try3840589


Initially and optionally you can also use the latest Motorola 68k GCC in conjunction with the Hillsoft Windows NT/XP SDKs. For those interested, here's how:

http://3do.cdinteractive.co.uk/viewtopi ... =35&t=3371

There is a GCC Compiler available for the Jaguars GPU but with a wrinkle. If you want to figure out the mystery of the Atari RISC GCC then see the next post in this thread.

Ready made development environments-LINUX

Here is a video of the Linux SLAX GUI CD Belboz made for Jaguar work in action:
http://vimeo.com/7270758

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

Another Linux Dev option by JagCorner called JagBuntu:
http://jagcorner.bitjag.com/jagbuntu.html (Currently not available)

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
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

While supplies last Skunkboards can be ordered from the below link:
Skunkboard ordering (BACK IN STOCK LIMITED TIME!)
Caution! Skunks from sell my retro may need their connector edges beveled before using! (Emory board)

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

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

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

These sound engines are free but primitive. For instance, they don't allow the DSP to multi-task.(i.e. play sound/music while also helping the GPU) But they're a start.

Miscellaneous
Linking C with Assembly on the Jaguar
http://3do.cdinteractive.co.uk/viewtopi ... =35&t=3365

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/

Sam Bushmans quick technical overview 'at a glance' of the Atari Jaguar:
http://rahkogen.net/sambushman/

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

Bit-Jags development webpage:
http://jagcorner.bitjag.com/index.html (Currently not available)

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

And be sure to grab the Jaguar v8 tech reference manual and that should be everything.
jag_v8.zip
Enjoy!
Attachments
jag_v8.zip
(407 KiB) Downloaded 222 times
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: 916
Joined: Mon Apr 01, 2013 7:09 am

DOS GCC gpu compiler?

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 is so broken as to be almost completely unusable.

Another story is 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 just 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 is 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.

Ken Rose an ex in-house programmer for Atari who did the Black Ice/White Noise 3D engine and now builds and re-targets compilers for a living had no idea a GPU GCC was out there. Or seemingly just down the hall from him. He stated Atari's development cycle was too long making them do everything in assembly. You would think that if anyone would have known about a working gcc for the gpu at the time it would be him. An interesting side story is how High Voltage Software got hold of the developing GCC for GPU when even most of Atari's in-house programmers did not even know it existed.

We now know that it was hardware bugs in the GPU that has caused such grief with using the risc GCC compiler. A comparison bug being the main culprit.
In recent notes found, HVS developed a workaround for the compiler->GPU comparison bug and discusses using the compiler successfully.

That this compiler actually functions and its problems are not software related may be one of the best kept Atari secrets for the last 20 years. Even ex Atari alumni of that era had no idea of the success HVS had with their 'broken' compiler. They have just recently found out almost 20 years later.

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.

In recent notes found we know that High Voltage Software had their work around for the comparison error by May of 95. That's right between the two builds listed so there's a chance the latest build might have the fix.

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.


Using the GCC for GPU with DOSbox(required)

The story of the HVS GPU Manager

Latest _known_ version of the GCC for GPU(GCC 2.6.3 June 95)
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

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

Re: Getting started with Jaguar programming.

Post by a31chris » Fri Nov 30, 2018 9:09 pm

For those of you who want the documentation for the GCC 2.6.3  for GPU I have separated the texi files from the sources. 

Open in wordpad.

https://forums.atari.io/topic/3827-roms ... ment=41772
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: 916
Joined: Mon Apr 01, 2013 7:09 am

Re: Getting started with Jaguar programming.

Post by a31chris » Sun Jul 14, 2019 9:21 pm

GCC for GPU upload link replaced. I apologize for any inconvenience.
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