Jump to content
Sign in to follow this  
philipj

Jaguar Programming in C

Recommended Posts

Has anyone ever successfully programmed the Atari Jaguar or know of any games that's been programmed in "C?" If so how did your project come and what games do you know of that's been programmed in C other than "DOOM"? Doom used a custom made C compiler that doesn't seem to be available now so any tips, advise and feedback from anyone who's programmed the Jaggy in C using altrenative "available C compilers" is very much welcome.

Share this post


Link to post
Share on other sites

Doom used a custom C compiler for the GPU, and that compiler is apparently lost. However, the 68k C compiler works just fine on the Jaguar -- that's how I was able to modify the Doom source and test out some changes on an Alpine board or flash cart. Pretty cool to hear music during gameplay in Doom, for example. ;)

 

I know Scott Walters has done some extensive work in C for the Jaguar, too. At least one of his in-progress games is largely written in C AFAIK.

Share this post


Link to post
Share on other sites
Doom used a custom C compiler for the GPU, and that compiler is apparently lost. However, the 68k C compiler works just fine on the Jaguar -- that's how I was able to modify the Doom source and test out some changes on an Alpine board or flash cart. Pretty cool to hear music during gameplay in Doom, for example. ;)

 

I know Scott Walters has done some extensive work in C for the Jaguar, too. At least one of his in-progress games is largely written in C AFAIK.

 

I just wnated to know if the jag slowed down any when you had music during gameplay?

Share this post


Link to post
Share on other sites

Hello,

 

I just wnated to know if the jag slowed down any when you had music during gameplay?
The issue is just bandwidth. If you have music playing pure WAV

(or more like MOD files) then they are sample based, and those

samples will be in main RAM. If your music is synth based, such

as MIDI, then the patches may fit in the DSP RAM no problem,

and this kind of music will not hit the system bus for bandwidth.

 

System bandwidth if just the same as Internet bandwidth. You

have a finite amount. If you are downloading something, then

you will find pages load less quickly while browsing of course.

 

Jaguar games will not slow down whilst playing music, as such,

but the programmer will have had to consider the bandwidth

utilisation and may have chosen to compromise on the visual

effects whilst playing music. (Of course, not the only reason!)

 

CD music does not consume any bandwidth. The CD device

interfaces to the DSP, and the audio output is controlled by

the DSP. CD audio runs through just fine... but it does need

the DSP running CD "streaming" code to channel it through.

 

Doom does not hit the DSP very heavily, but the networking

code is already affected by bandwidth to the DSP, so adding

music increases the chances of a network error, that's all.

That's my understanding, and my limited experience as well.

 

Cheers,

JustClaws.

Share this post


Link to post
Share on other sites
I just wanted to know if the jag slowed down any when you had music during gameplay?

 

Well, the short answer is no, there was no slowdown in Doom, but the longer and more accurate answer is I did a quick-and-dirty patch just to play music instead of audio f/x, and I was only testing this in 1-player mode. I did try to have both f/x and music running in parallel, but couldn't get it to work easily and haven't messed with it since then. And I never tested any of the changes networked, so who knows how that would have worked.

Share this post


Link to post
Share on other sites
I just wanted to know if the jag slowed down any when you had music during gameplay?

 

Well, the short answer is no, there was no slowdown in Doom, but the longer and more accurate answer is I did a quick-and-dirty patch just to play music instead of audio f/x, and I was only testing this in 1-player mode. I did try to have both f/x and music running in parallel, but couldn't get it to work easily and haven't messed with it since then. And I never tested any of the changes networked, so who knows how that would have worked.

 

Do you have the info about the patch? Would be nice to share 8) also every other info you have...

Share this post


Link to post
Share on other sites

Do you have the info about the patch? Would be nice to share  8)

 

Not off the top of my head. It just took a couple of hours studying the C code and seeing how/where the songs were activated. I can try to find some time to look at this again, but I'm not sure how soon I can do this.

 

also every other info you have...

:o That might take a few years to pull together! :D

Share this post


Link to post
Share on other sites

Do you have the info about the patch? Would be nice to share  8)

 

Not off the top of my head. It just took a couple of hours studying the C code and seeing how/where the songs were activated. I can try to find some time to look at this again, but I'm not sure how soon I can do this.

 

Okay take your time all help would be great 8)

Share this post


Link to post
Share on other sites

Have there ever been any Jaguar games to just use Synthesized music and sound fx?

 

Also there is DJGPP compatible GPU/DSP C compiler that's located at this website "http://hem.passagen.se/isvar/jaguar_server/jserver.html". has anyone affectively created Jag programs with this compiler? And if so, how do you get it started?

Share this post


Link to post
Share on other sites

Hi!

I've decided to make my environment public (PC-win). I've tried to have all the exe-files updated. All source code is compiling, even C. I personally run w98, but it can also be run in Wme.

As I said earlier, all source code is running (workshop examples, 3d, treedemo, etc) and I'm going to support C in my comming projects. There is no problem using C with the Jaguar, you can make the compiler output code for 68k, DSP and GPU. I don't know how good the code will be for the DSP/GPU however. I splitted the file in 1.44Mb parts (eight of them to be exact) just for compability.

www.cs.umu.se/~mat97jkn/tng

 

After the weekend, I will publish some source code aswell.

"See" you then! Have a nice weekend

/Mr spock

Share this post


Link to post
Share on other sites
Hi!

I've decided to make my environment public (PC-win). I've tried to have all the exe-files updated. All source code is compiling, even C. I personally run w98, but it can also be run in Wme.

As I said earlier, all source code is running (workshop examples, 3d, treedemo, etc) and I'm going to support C in my comming projects. There is no problem using C with the Jaguar, you can make the compiler output code for 68k, DSP and GPU. I don't know how good the code will be for the DSP/GPU however.  I splitted the file in 1.44Mb parts (eight of them to be exact) just for compability.

www.cs.umu.se/~mat97jkn/tng

 

After the weekend, I will publish some source code aswell.

"See" you then! Have a nice weekend

/Mr spock

 

Very good job 8) keep supporting the jag :wink:

Share this post


Link to post
Share on other sites

Well, I can only speak for my self and I HATE having to experiment & fix before I even can compile a simple program. Threrefore I Thought I do this. Just download, fix autoexec and compile, It's as easy as that =)

Share this post


Link to post
Share on other sites

Hi folks !

 

Can anybody share his experiences with programming the GPU / DSP in C?

Or tell something about C coding on the Jag in general?

I understand that it shouldn't be much of a problem to link C compiled 68k code as object files into your program instead of asm object files (at that point it is pretty much the same anyway).

What is still unknown to me is, can you actually write a Jag prog using the existing compilers / libs without having to write any assembler code?

For example would a simple hello world prog even work?

Are there already libs that take care of the startup and object management and functions like print?

Or do you still have to write all the functions in assembler that you want to later use in C? ;)

In that case I will stick to assembler (which I will probably do anyway, but it is interesting to know that there is an alternative to it).

 

Regards, Lars.

Share this post


Link to post
Share on other sites

IIRC, Doom was programmed (ported) using C and John Carmack stated in an interview that if they were doing a game specifically for the Jaguar and not a port, that they would have used assembler becuase it's much faster. Between using ASM and an engine that was specifically optimized and coded to run on the Jaguar, that they could get far better performance from the Jaguar.

Share this post


Link to post
Share on other sites

Hi starcat...

 

..hmm.. must have missed that question..

Spock is finishing up his thesis work atm so hes kinda buzzy =) but i will comment some things (as far as i know.. that is...).

 

I dont think he did any C coding in gpu/dsp.. only used the 68K... So... though he knows allot about it and when he will need more speed he will most probably dig into that topic...

 

..But! .. my advice to anyone is Do the Gpu/dsp code in asm! ...since it is so little space it is best done in asm and not C... (depends on what you do offcourse, how much gpu code you have (i mean a small piece of code and offcourse it could be done in C).

 

 

About 68K C.. then Yes... you could do ALLOT in C already! ...all tedious highscore entry, menues, all "non realtime tasks" and probably allot of realtime tasks aswell (like sequencing asm GPU code could offcourse be done with C).

 

iirc the memorytrack program has printf programs already implemented (not sure but i think so).

In a limited manner i think ...i mean a full flagged text engine that scrolls text up when CR is seen and that might not be implemented, but well the ability to print "Hello world" at any given position...

And i mean when you think about that its rather basic actually... Have the font in a bitmap.. and do all calcs & blitter setup in C..... sure that can and has been done! even object updating (Yak! warning for that though!).

 

 

Thats what i mean.. My wishes about his project is that it will show how easy it is to do C on the jaguar... then hopefully allot of smaller, simpler games will be easy to port/code on the jaguar... making the asm effort considerabely less...

Even though i promote pure ASM.. even I would consider writing highscore entry & stuff like that in C ...(for ease) & write only the most demanding tasks in asm code...

That way the path to a finished product would be much shorter...

(& i think the amount of "easier games" for the jag would realy Boom.... nowadays not even simple games like... pong... breakout.. that bomberman is released.. which is sad :/

 

Hopefully that will change!

 

Hopefully he will be done soon... and if nothing else explain his C results to me... well C =)

 

cheers

/Sym ...who doesnt know that much about jaguar C...

Share this post


Link to post
Share on other sites

I'm really looking forward to the future release of Starcat's Adventure (Eerievale) "engine" that, from what I understand , will allow a LOT of people to beef up the Jaguar's game library, even those like me who can com up with a good story and do artwork, but no very little about actual programming. Then we may see a little more than just "simple" games anyway. :)

Share this post


Link to post
Share on other sites

Hi Gunstar !

 

Great to hear that you are interested in the engine. :)

Even though I originally announced to make it available there never was much interest shown so far.

So I didn't do much work on that for some time, and concentrated on the things that I need myself. But it is good to know that there is interest afterall. Maybe I should create a poll or a site (or both) about the engine at some point, so interested people can come together and talk about it.

 

You are right that the engine is intended for people who have a great idea for a story and have the skills to create the artwork, but who don't have the time or skills to program an adventure game engine themselves. (or program much at all)

Most things can be done without any programming knowledge.

Only when you want to make more complex puzzles you need to be able to code a little bit, but there are macros to help.

 

The engine allows you to create the game environments very easily, it's all more or less intuitive and done with a graphical user interface.

You can create the "rooms", add objects for the player to interact with, characters to talk to or add puzzles and other things.

 

The engine is very flexible and allows you to create whatever puzzles you might want. Myst-like switch puzzles, mini-game puzzles (like the ones in the 7th guest), typical item combining puzzles or whatever else comes to your mind. When doing mini game puzzles you probably need some coding knowledge, but for the rest, it will be quite simple to do.

 

One thing is for sure, creating games will be really easy with it, it's only the question if there is enough interest in people to actually use it.

 

Regards, Lars.

Share this post


Link to post
Share on other sites
Hi Gunstar !

 

Great to hear that you are interested in the engine.  :)  

Even though I originally announced to make it available there never was much interest shown so far.

So I didn't do much work on that for some time, and concentrated on the things that I need myself. But it is good to know that there is interest afterall. Maybe I should create a poll or a site (or both) about the engine at some point, so interested people can come together and talk about it.

 

You are right that the engine is intended for people who have a great idea for a story and have the skills to create the artwork, but who don't have the time or skills to program an adventure game engine themselves. (or program much at all)

Most things can be done without any programming knowledge.

Only when you want to make more complex puzzles you need to be able to code a little bit, but there are macros to help.  

 

The engine allows you to create the game environments very easily, it's all more or less intuitive and done with a graphical user interface.

You can create the "rooms", add objects for the player to interact with, characters to talk to or add puzzles and other things.

 

The engine is very flexible and allows you to create whatever puzzles you might want. Myst-like switch puzzles, mini-game puzzles (like the ones in the 7th guest), typical item combining puzzles or whatever else comes to your mind. When doing mini game puzzles you probably need some coding knowledge, but for the rest, it will be quite simple to do.

 

One thing is for sure, creating games will be really easy with it, it's only the question if there is enough interest in people to actually use it.

 

Regards, Lars.

 

I thought you had more of a response to it than that. I know that besides Star Alliance, I havee been waiting for this "build an adventure" (or whatever your going to call it) engine with great anticipation. I'm more excited about the prospect of creating adventures with the engine than playing Eerievale (don't get me wrong, I want and NEED all your stuff ;) ).

I've just been anticipating Star Alliance so long that it's hard to show a lot of anticipation and excitemnet for addtional items when I haven't even gotten the first "promised" item yet. It's kind of like someone offering you a hundred dollars to spend as you please, but telling you that you'll get it in a little while, sometime "soon." Then they come back and say,"after that I'll give you $50 dollars and very soon after I give you the $5), I'm going to give you $125! but I might actually give you te $50 before you get the $100 I promised you at first, but you will get it all, eventually. In the meantime, here is $5. As you can see, it would be difficult to show much enthusiasm for the $50 or $125 dollars promised when you haven't gotten the first $100 promised yet, but have only been thrown a $5 dollar bone. So, you go buy a soda and some chips with your $5 and sit back waiting for the promises to be fullfilled, ultimately in an unknown order. All you can do is trust and anticipate that you will get oen of the things promised first, but it may not be what you expected at first, you will get everything eventually, but you have know idea in what order, or how long, so all you are left with is a general anticipation that money (or game0 is coming your way, someday.

Share this post


Link to post
Share on other sites

Hi Gunstar !

I thought you had more of a response to it than that. I know that besides Star Alliance, I havee been waiting for this "build an adventure" (or whatever your going to call it) engine with great anticipation. I'm more excited about the prospect of creating adventures with the engine than playing Eerievale (don't get me wrong, I want and NEED all your stuff ;) ).

Great to hear that. I had no idea that you (or anybody) was actually looking forward to the engine, because of missing feedback.

Actually there is a discussion at the moment on UGD about lacking feedback about newer developments.

It is really a problem, even if it doesn't seem so. Unless people say so, I as hobby developer, do not know what project actually is anticipated. I know what my personal favorite is and I know that I do my best to get them all done, but I am certainly focussing on what is developing fastest.

And projects that get little feedback or that are slowly developing get a lower priority.

Feedback is important, just as important than buying a new game and until the game is ready, it is actually more important, because it can still help to improve the game or at least keep the motivation up.

 

I've just been anticipating Star Alliance so long that it's hard to show a lot of anticipation and excitemnet for addtional items when I haven't even gotten the first "promised" item yet.

You need to keep in mind that I and the other Jaguar hobby developers are just Jag fans who like creating games for their favorite system. :)

I do not have a company behind me that gives me any money for this and the money that you can get doing jag dev is just enough for a break-even. Sometimes not even that. I and most others probably as well are just doing jag dev for fun and that means the motivation is a very important aspect. And the motivation has a lot to do with the feedback that you get.

When you look at other homebrew scenes or even at professional companys you see that of many announced projects only some actually make it to a final product. So even though it might seem self-evident for an announced game to be finished one day, it is not. You should be grateful for every new Jag game. There are enough abandoned Jag projects as you probably know, the projects that actually get finished (especially hobby projects) are almost a minority.

 

I understand what you mean, but "promised" is probably the wrong word.

I never promised anything. I can not promise anything, because I wouldn't know if I can actually keep that promise. And even when it gets finished, I do not know if it is the way you might expect it to be. All I can do is do my best. In the case of Star Alliance for example I am not working on it alone, the progress depends on other people as well. Instead of just sitting there and doing nothing while waiting for one project to progress I am focussing on the ones that progress faster. I think that is only good for the Jag scene. I will try my best to get them all done at some point.

 

As this example with the adventure engine clearly shows, feedback is important. I need to spread my limited freetime carefully on my projects, so the ones which develop best get most attention and projects that do not get any feedback are lower priority until the more important ones are finished. That was what happened to the adventure engine idea as well. I didn't know that there was interest, so I focussed on the more important things.

Before I can release the engine as something everybody could use, it still needs a lot of work when it comes to documentation (there is none so far) and it needs to be more user friendly too, as I just focussed on what I needed for Eerievale so far.

Anyway. It is good to know that there is interest and I will keep it in mind. :)

Thanks for your feedback.

 

Regards, Lars.

Share this post


Link to post
Share on other sites

The game I anticipate most is definitely Eerivale. I can't wait for this game. I am also very interested in the engine. I am sorry I never showed my interest before but I have been anticipating the engine. I know these things take time and I don't expect anything by any date. When you get them done let us know. I would say that a good way to see projects through is to focus on just one. When you have new ideas make note of them and when you finish the project you are already working on pick one and start on it. This way you don't have so many announced games waiting to be released. More then one announced game at a time is too many IMO.

Share this post


Link to post
Share on other sites

Hi Hyper_Eye!

 

Great to hear that you are also looking forward to Eerievale and the adventure engine :)

I also think that too many projects at a time are bad and actually I am all the time writing ideas down, to use it later or to scrap it if it wasn't so good.

Eerievale is my main project at the moment that is for sure.

JagWorm on the other hand was announced, because it won't take too much time to be finished and because it is a nice side project to free my head from time to time.

Always focussing on one project is not always a good idea, because you can't judge it anymore (you can't tell anymore if an idea is really good or not) and because you block yourself for new ideas.

When I spend to much time on a certain problem, I usually get stuck. Then after freeing my mind a bit, I usually solve the problem quite quickly when I get back to the old problem. It's the same with other ideas as well. When I spend too much time thinking about ideas for a certain game situation, I can't really tell anymore if an idea is good or not, but after doing something else and returning to the problem I see much better if an idea was good or if it should rather be reworked.

So as funny as it might sound, having one main project and a smaller side project is not slowing things down for me, but rather making development faster than if I just had one big project to focus on ;)

Maybe other people can focus on a single project though, this is just my experience.

 

You are right however, that too many projects at once are bad.

 

Regards, Lars.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...