3DO ZONE Forums

The Only R.E.A.L. 3DO Experience.
It is currently Thu Jun 22, 2017 5:29 pm

All times are UTC [ DST ]




Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
PostPosted: Tue Feb 18, 2014 5:23 am 
Offline
Jaguar MOD
User avatar

Joined: Mon Apr 01, 2013 7:09 am
Posts: 820
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. The setup installs the SMAC assembler and SLN Linker along with the VLN Linker. (Yes, two linkers. View readme for details.) It will also install the vbcc compiler for the Motorola 68000. Along with the vbcc compiler there is a basic set of libraries included to get you going such as the memcopy function etc but they are archive files that are used with the VLN linker included in the setup. [the a.file archive library] can be used with any linker supporting that library/archive format. aln and vlink supported it, but I believe sln needed support added.

Also included is a Hello world example. This example is 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 makefiles reworked.

There is also a Jag256 demo program with source available separately for the SDK in the same Hillsoftware download group to show you how the Jag sets up a simple graphics screen.

NOTE: The SMAC assembler and SLN linker in the XP install package(Jagdev 102) ARE NOT the latest versions. Here are the links to the latest SLN and SMAC versions which have been updated and bugfixed by Dr Typo:

Following 3 update links are 32bit Windows builds.
Updated version of SMAC:
http://3do.cdinteractive.co.uk/download/file.php?id=240

Updated version of SLN link courtesy Dr Typo:
http://perso.numericable.fr/drtypo/jaguar/sln102.zip

Updated version of Vlink:
http://3do.cdinteractive.co.uk/download/file.php?id=227
Updated version of Vlink requires command line specifications the older vlink version included in the XP SDK did not. Such as specifying endianness '-EB' and using the '-minalign 4' option. If you update vlink please be aware of these changes. Especially when using it with the stock hello world program. It won't work as is.

To update you simply overwrite the ones the installer puts in the BIN directory with these latest versions.

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. Be sure also to check the manual as well as vasm requires -rorg in the command line options for use on the Jaguar.

You can find 32bit Windows builds of the 3 syntax flavors here: JRISC Vasm

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
For emulators to run your software 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/

Virtual Jaguar
http://icculus.org/virtualjaguar/ (requires conversion of all executable files to specific format(ROM format I believe) or somesuch before they will work)

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

Development hardware
For uploads to actual hardware you will need an Alpine board(rare and expensive)

-or-

-Skunkboard(semi rare but should be found on ebay at reasonable prices)-

While supplies last Skunkboards can be ordered from the below link:
Skunkboard ordering (Currently out of stock new run being worked on.)

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

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

BJL options (Behind Jaggy Lines)

BJL is an upload program that runs on your Jaguar by hardware modification, or by a cartridge or CD that has the program on it. Then the uploads happen between PC and Jaguar via a parallel cable and BJL adaptor.

Two options for BJL. A stock Jaguar with Protector SE game cartridge that includes the BJL program on it with which you can upload to the Jaguar via a BJL adapter and PC. If you have a Jaguar CD player you can burn a BJL CD easily. Requires no modification to the hardware. However if you don't have a Jaguar CD player Protector SE costs around $80 and the BJL adapter is another $15.

If you're handy with a soldering iron you can modify your own Jaguar with a BJL chip. WAY cheaper than buying Protector SE as both the adapter and the BJL mod kit will run about $35-$40 altogether. Both the mod and the BJL adapter can be found here:

http://morethangames.a8maestro.com/prod ... 0002-3.htm

How to modify your Jaguar for BJL
http://www.linkovitch.me.uk/jaguar/bjl/about.html

The drawback of working with BJL is you are limited to the 2mb+ of system RAM for programs.

Sound engines for Jag programming...

All the rage these days is the U235 sound engine
http://www.u-235.co.uk/developer/sound-engine/

Also an older sound engine that is open source but not quite as advanced is the Sinister MOD player.
http://www.kewlplace.com/sinister/jagdev.htm

The source code thread also has sound engines buried in those programs of varying degrees of awesomeness so no need to re-invent the wheel if you don't wish.

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)

Other resources courtesy of JagWare
http://www.jagware.org/index.php?showtopic=836

And be sure to grab the Jaguar v8 tech reference manual and that should be everything.
Attachment:
jag_v8.zip [407 KiB]
Downloaded 64 times

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


Top
 Profile  
 
 Post subject: DOS GCC gpu compiler?
PostPosted: Thu May 15, 2014 8:29 pm 
Offline
Jaguar MOD
User avatar

Joined: Mon Apr 01, 2013 7:09 am
Posts: 820
As the story went, no functioning RISC C compiler was available for the Jag. Apparently Brainstorm, the company from France who worked on the Jaguars toolchain took a stab at porting GCC to the gpu. But reports have 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 compiler have 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 apparently had no idea a working risc gcc may have been out there. Or actually from what it sounds like in recent findings just down the hall from him. He complained 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 most others, even most of Atari's in-house programmers did not even know it existed.

We now know that it seems to have been hardware bugs in the GPU that has caused such grief with using the risc GCC compiler. Apparently a comparison bug being the main culprit. In recent notes found, HVS developed a workaround for the compiler->GPU comparison bug and outlines their steps in using the compiler successfully.

That this compiler actually functions and its problems are NOT SOFTWARE RELATED may have been one of the best kept Atari secrets for the last 20 years. Even Atari alumni seemingly had NO IDEA of the success High Voltage Software had with their 'broken' compiler. Apparently Atari tanked before HVS could tell them. They have just recently found out about it almost 20 years later.

A note on this. 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.

So I'm including the official DOS Atari development tools. Brainstorm never complied with the GPL so no sources are available from this GCC for recompiling on a modern gcc or updating. If someone can take these clues and perhaps get the risc gcc to work then more power to them. 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.

Further reading, docs and discussion
Using the GCC for GPU with DOSbox(required)
The story of the HVS GPU Manager

Attachment:
File comment: DOS based Atari Jag tools. Includes the latest _known_ version of the gpu gcc (GCC for GPU 2.6.3; june 1995) The make.exe in these tools is severely broken. You'll want to replace it right away with some other make.exe. MS Nmake 1.5 works really well.(relevant only if you are going to run this sdk on an old Windows 95/98 machine.)
Official Jaguar Kit.zip [6.98 MiB]
Downloaded 87 times

Attachment:
File comment: The version Gorf experimented with including notes on his results. This version appears to be one or two revision(s) older(gcc for gpu 2.6.3; April 1995) than in the Official Jag dev kit.
jagcc.zip [509.95 KiB]
Downloaded 82 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


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group