With Christmas nearly upon us I thought it a good time to release a small gift to the community, so what is it.......?
For a long time now one of the most frequent issues brought up in the Jaguar forums on various boards and within seperate groups of Jaguar developers is that of development tools. Most developers are stuck with the original tool set distributed by Atari way back in the day. These tools are, on the whole, pretty efficient with one major drawback.....execution on more recent operating systems is, at best, a challenge
The core tools I am referring to are Atari's MADMAC and ALN. Several of you have contacted, or are aware of the efforts to contact Brainstorm for the source to MADMAC so that it could be recompiled to work on current operating systems. These efforts have not born fruit, not through lack of effort but the lack of response or even acknowledgement from this group. There is also the matter of of BSD object and COFF executable file formats and how they work under the Jaguar. The information for this is hard to find and can be harder to related to Jaguar based output. Without an updated MADMAC there was not even any point at working for an updated ALN.
We know all this I hear you say, get to the point already...
There are a collection of developers out there who want new tools to create new software. I am sure you have seen the requests, information and hints throughout the forums for a long time now. During 2007 I was introduced to a key contributor to many forums and fellow developer, 'Gorf'. Although I was not a Jaguar developer (but a big Jaguar fan) I saw the requirement for current tools and set out on a project to try and bring some of these tools up to date. One of the key considerations for any new toolset should be the ability to assist in coding GPU RISC code for main memory.
What followed the initial meeting was many, many long hours of research into the existing toolset, formats and long hours of developing ideas and approaches. During this time, I have spoken to many key developers and figures in the Jaguar community who have contributed and supported these efforts and I believe in these people I have made many new and good friends.
The result of these efforts are that I can announce, on behalf of myself and all who contributed, and release the first public beta of the first two replacement tools;
SMAC - SubQMod's Macro Assembler for Atari Jaguar
SLN - SubQMod's Linker for Atari Jaguar
These two tools are replacements for Atari's MADMAC and ALN. Any developer using them will see that they have been designed to work as closely as possible to the original tools. In fact, the original core code base is that of MADMAC and ALN (prior to customisations or even the release of the Jaguar) and used with the kind permission of the original authors.
So why release now. Well, as I have already mentioned, its nearly christmas and I wanted to end the year for the Jaguar in a positive direction (and I can't afford to buy everyone in the Jaguar community a present ). Also, I wanted to get feedback from a much wider Jaguar developer base so that I can finalise the code and remove any outstanding bugs.
There are many improvements built into the code, one of the most significant being that SMAC can guide developers when writing GPU code for main. There are still a few (and only a very few) features that have not be enabled when comparing to MADMAC, ALN but these will come shortly.
The key thing for me is that I can get as many bug-reports and feedback about how these tools perform so that they become a new base for development and allow me to continue with other Jaguar tool projects in the pipeline.
There is so much I could say about SMAC and SLN as it has been an amazing journey to get even this far. What I must absolutely say is a massive thank you to those who have been involved for their support and information and without whom I wouldn't be writing this post;
Gorf for staring me out on this path and his support throughout the project. Also for provding direction, support, insight and information into main code execution.
belboz for his testing and feedback and gratefully received assistance in porting the code to other platforms (also for introducing me to the fab Mac OS/X).
JagMod for his sterling work during the testing and finding all sorts of weird and wonderful issues
Thunderbird and Tursi for testing and providing great insight into Jaguar development.
JagChris, and Downix who have been involved at varying levels.
Atari_Owl whom I was independantly introduced to during this project and provided me with vital information for main code execution as well level headed guidance.
I hope that I didn't miss anyone out as everyone who has been involved and helped get this project off the ground and to this point have proved great individuals and friends.
I nearly forget JaySmith2000 whose JSII forum is a regular stomping ground for me and has proved to be a great friend.
Before I leave you to download and start testing I thought I would do a mini-FAQ here to answer some of the questions I think *may* be asked;
Q: Is SMAC and SLN fully functional?
A: Barring a few command line switches they should work as you would expect MADMAC and ALN to work. One key difference to note is that these two tools are directly focused at creating BSD/COFF output.
Q: Why is it only a beta release?
A: SMAC and SLN have been tested as much as humanly possible within the small group of developers who have worked with me. A much wider base of testing is needed to ensure that all expectations, functionality and coding styles have been accomodated. Also, to highlight any outstanding bugs that have not yet been picked up.
Q: How much main code execution functionality is present?
A: In this release, GPU code assembled under the <b>.gpumain</b> directive is checked against the rules of main code execution and warnings are issued as appropriate. Future releases will also modify the code to reduce the amount of work on the developer.
Q: Is there a project website?
A: Not as yet. I wanted to see what volumes of interest and feedback I got before embarking on a specific download or project site.
Q: So what is actually available to download?
A: The two download packages include Win32 binaries of SMAC and SLN as well as a brief manual and revision history.
Q: The manual states that this is multi-platform, why only a Win32 download?
A: SMAC and SLN have been succesfully compiled on MAC OS/X, Linux and Cygwin but further testing is required to ensure they work as advertised. Binary distributions for these platforms (where applicable and possible) will be available in the future.
Q: Will the project be open sourced?
A: Unlike Brainstorm, for example, I intend that SMAC and SLN will ultimately be open sourced. There are various targets that must be met first though such as; having a full and stable release that is no longer in beta state; further testing and development of multi-platform compilation; clarification of release of any proprietory information and other such factors.
Q: What do I need to do differently to use these tools?
A: Other than the difference in executable names and some missing command line switches only minor changes to your makefiles will be needed. The other key difference is that MACPATH and ALNPATH environment variables need to be changed to SMACPATH and SLNPATH.
Well, thats all I can really say about this release at this point. I hope you find that this is a positive move and will provide me with any and all feedback regarding the performance and issues you may find. I intend that development of these tools continues so I am looking to perform updates to the software as issues are fixed and requests are implemented.
At this stage you can contact me via Private Message at JS-II (www.jaguarsector.com). I will look to setup a support e-mail address in the near future.
Many thanks for reading my ramblings and I hope you enjoy this christmas gift.

