Jump to content
IGNORED

software engineer considering 5200 coding. where to start?


Recommended Posts

Hi Karl,

Do you want to go with Assembly or with Calamari's 5200BAS Basic compiler? Well if you want to try 5200BAS, here's the link to Calamari's site.

 

http://www.azstarnet.com/~jeffryj/5200bas.html

 

There you should find links to DASM and TASM cross-compilers if you want to program in assembly.

 

Also here's a whole ^%*& load of docs.

 

www.atariarchives.org

 

DeREAtari is especially useful.

 

Allan

Link to comment
Share on other sites

Huh ? I thought you said you were a Software Engineer. How come you don't know any assembler ?

 

A lot of software engineers and programmers are taught Java and Visual BASIC then let out into the wide world. Very few actually understand what goes on "under the hood". I'm a software engineer, but i've always been interested in electronics and system architecture. I know what makes computers tick and I know how to program machines in assembly. In the old days, all software engineers knew this stuff, but a lot of the people writing the software of tomorrow are getting further and further away from the hardware guys.

 

A good thing or a bad thing? Well, we'll see :D

Link to comment
Share on other sites

Huh ? I thought you said you were a Software Engineer. How come you don't know any assembler ?

 

Essentially, I have a BSEE and I took some CS courses.

 

I know alot about optimizing code, OO, etc.. But knowing assembly these days isn't really needed, so it's barely tought. Well, I never took advanced CS courses, so I better not put my foot in my mouth. My only experience was in a Sophmore EE lab, so I've pretty much forgotten everything about assembly.

 

Software engineering and OO design don't really require Assembly knowledge, so there's not really a need to know it on the professional level. I want to do some 5200 coding, in part to learn, but because I'll enjoy doing so.

 

So, graduated from Clarkson Uiversity with a BSEE in '98 and now work at General Dynamics as a software engineer. I've done C++ and JAVA programming. Embedded JAVA using P-JAVA actually.

 

I'll admit that Assembly is a good thing to know for optimization tricks, but when working with 256 Meg and 400 MHz embedded systems, low level optimations are not needed. Highly maintainable code via OO languages are more important. Planning for possible upgrade paths are also important to us. JAVA is AWESOME because we have to write code that lasts 30-40 years on the submarines I'm coding for. The hardware might need to get replaced in 20 years, but with JAVA, we don't have to re-write the code at all. That's not the case with one project I was working on where we had to basically rewrite a program in C++. Same exact functionality, but the processors I.O cards, etc needed to be replaced. Not to mention that the serial interfaces were being replaced by a network. Can't get into specifics for why the upgrade is required. Basically needed to shrink everything down and reduce wiring and leave an upgrade path for future additions. I work on Submrines, so saving space is very important.

 

Somewhat curious, what's your background? profession?

 

I guess I wrote alot :) Sorry :) Just, that there's alot of reasons. I could probably learn assembly very quickly though and have a "hello world" ap within a week. Not for the atari 5200 in particular, but for the PC.

Link to comment
Share on other sites

Huh ? I thought you said you were a Software Engineer. How come you don't know any assembler ?

 

A lot of software engineers and programmers are taught Java and Visual BASIC then let out into the wide world. Very few actually understand what goes on "under the hood". I'm a software engineer, but i've always been interested in electronics and system architecture. I know what makes computers tick and I know how to program machines in assembly. In the old days, all software engineers knew this stuff, but a lot of the people writing the software of tomorrow are getting further and further away from the hardware guys.

 

A good thing or a bad thing? Well, we'll see :D

 

Well, tought JAVA and Visual Basic is really not and accurate statement.

 

Best explained in an example.

 

At school, we used C++ alot. We learned theory and applied it in C++, usuallly. Point is, anyone can learn a language. It's knowing how to apply design techniques that is important. These days, OO is big, so knowing OO design theory is far more important than knowing how to write code in JAVA, ADA or C++.

 

Well, students are tought what goes on under the hood today, it's just not emphasized as much as OO is.

Link to comment
Share on other sites

Wasn't trying to step on anyones toes with that question, I guess I am just getting old. I've been programming in assembler since 1983.

 

I beg to differ though that ASM is no longer needed, talk to any hardcore game programmer and they will argue with you.

 

:)

Link to comment
Share on other sites

You wern't stepping on toes. I figured you have been in the software field for a while due to your love of assembly. I was just stating what is tought "these days" :) I think I went overboard though. Sorry :D

 

FYI: The Carmack (John Carmack) writes everything in C++." To my knowledge, today's most processor intense games are not written even partally in assembly anywhere in the C++ code. I could be wrong though.

 

Thanks for hte response :)

Link to comment
Share on other sites

FYI: The Carmack (John Carmack) writes everything in C++." To my knowledge, today's most processor intense games are not written even partally in assembly anywhere in the C++ code. I could be wrong though.  

 

That's precisely why he doesn't touch consoles. :D

Link to comment
Share on other sites

just my 2 cents regarding assembler.

 

i have no degree in CS (counter strike? ;)) instead studied pure marketing and i am working now as brand manager. i program for fun and love 6502, 68000, 65816, r3000 etc... but never went so much deep into assembler that anybody could call me a "whiz" in that field...

 

BUT what i have learned from that is (compared to my development collegues in the dev studio) what kind of mechanism or basic ways of optimising code... (lookup tables, precalculation) are existing. and often i feel that this optimising & profiling is not the key anymore... because machines getting faster, faster etc... but what makes me sad on the other hand is how good some of the software, games out in the market could really be when they would be optimised by hand or clever programmers... and back to assembler...if you were programming assembler for years (let say the "old school"-way) then i believe that you instinctly think in the way how to write perfect code...

 

strange theory... but i hope you get it...

 

and assembler is still usefull in

 

gameboy advance

sony playstation2 (vector units...)

xbox?

grafic cards with their microcode & pixel shaders...

washing machines... ;)

cell phones...

 

etc...

 

heave

 

ps. you can program crap in VB or you can code good in VB...

Link to comment
Share on other sites

Ok - I'll give you my dime of reflection on assembler - and I do love 6502!

 

Given the complexity of modern PC/Console games just a few % of the code for a product is hand loomed assembler. Whilst one relies on assembler micro-code libraries and the coding of graphics routines often in assembler (those pesky vector units) the majority of game logic is much better handled in C/C++...

 

A project in a medium level language like C is easier to debug, easier to maintain, easier to share and work on one another's code. It is more platform independent (you can relatively quickly recompile for differing target SKU's) and is often part of a development house's core code base, which needs to fit in well with platform and project independence, as one would not wish to re-invent the wheel for every project...

 

As far as optimizing and getting the last ounce of performance from a platform - say PS2 - tools exist (anyone use V-tune on the PC??) that profile and analyze code performance and near optimal levels of performance are achieved in time critical areas - both SONY platforms have performance analyzer tools/hardware that help you get your code to fly!

 

Also remember that coding a 16K 8bit game is a little bit different from a 3GB PS2 title (any on I'm not including FMV in that asset assessment - I'm talking real-time code and poly assets) - and whilst the game logic may only occupy a couple of MB of RAM at runtime that’s still a huge factor of difference between the average 8bit project and a PS2 project.

 

Its not that people don't care about squeezing the last drop of oomph out of a box, but that in the realities of production we have better tools and working practices derived from YEARS of commercial experience in producing games :)

 

Believe me NO ONE would want to code a game like Civilization or the Sims in assembler, neither would an action title like Soul Reaver 2 be a project you could realistically produce in that way. Just because you know assembler doesn't make you an expert in convincing AI coding, awesome poly routines or any other aspect of games per se...

 

sTeVE

Link to comment
Share on other sites

You guys are all right, all the AI and crap like that is obviously coded in C these days but if you want a "line of sight" collision routine that intersects with polygons in real-time you need to do some optimizing in assembler.

 

Of course, there are a lot of people these days who really don't give a damn if a game runs at 15FPS and use off the shelf libraries and packages.

 

My point came down to the fact that once you compile code, I am not talking about DEBUG builds here, how the hell do you debug it if you can't read it ?

Link to comment
Share on other sites

Steve, you are completly right... i havent ment that nowadays a complete game needs to be written in pure assembler, maybe on GB.

 

but of course most stuff is c/c++ and plattform independent. but you still have modules which will be used on the target machine. and this machine specific stuff could be optimised...even on machine language level...

 

and c, c++ is nearly assembler. but if you have no good tools like your mentioned profiler tools (check the pages for the last developer conference to see PS2 profiler pics) than it will be hard...

 

developing nowadays is a compromise between budget, time, effort, result...

 

hve

Link to comment
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...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...