Jump to content
IGNORED

Full-featured IDE for developing Atari 2600 games?


Jofu

Recommended Posts

Hello guys,

 

I was thinking of doing some programming for the Atari 2600, and started reading a bit on the subject here and there.

 

I've programmed various platforms, and invariably there would always be at least one (mostly) complete IDE available for it.

 

Now, it seems there is no such thing for the 2600 (unless of course I missed it :D)...

 

Quite frankly, I was surprised about that... There seems to be a fair amount of people willing to spend time working on the 2600, yet nobody spent time on development tools?

 

By fully-featured IDE, I mean something like, say, MS Visual C++ and would contain the following capabilities (I might have missed a few fundamental things, since I'm not yet too familiar with developing on the 2600):

 

-Emulator portion

-Cycle-perfect emulation of the whole 2600 console

-Cycle-perfect emulation of a TV (with ability to specify different parameters)

-Ability to set breakpoints, step-over, step-in, step-out, etc.

-Ability to inspect and modify hardware register values in real-time

 

-Editor portion

-Text editing

-Color highlighting

-Macro/preprocessing support

-Usual copy/cut/paste features

-Built-in help

 

-Compiler portion

-Your usual compiler features

 

Of course, some parts (like the compiler) could really be done by calling already existing applications, like DASM, so as to avoid reinventing the wheel for no reason :)

 

For those that have been actually developing games for the 2600, what do you think of the above? Do you think it's mostly fluf which wouldn't really help with development?

 

Anyway, looking forward to your input and comments!

 

Geoff

Link to comment
Share on other sites

I've programmed various platforms, and invariably there would always be at least one (mostly) complete IDE available for it.

 

...

 

For those that have been actually developing games for the 2600, what do you think of the above?  Do you think it's mostly fluf which wouldn't really help with development?

843410[/snapback]

Are you saying that someone has put together an IDE for other classic platforms? If so, which ones?

 

I think an IDE would be cool, but I think all anyone here needs is a debugger. The ability to set breakpoints, single-step and all that would be nice. I hear that the Stella team might integrate this into the next major release, due this summer. Let's keep our fingers crossed.

Link to comment
Share on other sites

Are you saying that someone has put together an IDE for other classic platforms?  If so, which ones?

 

I think an IDE would be cool, but I think all anyone here needs is a debugger.  The ability to set breakpoints, single-step and all that would be nice.  I hear that the Stella team might integrate this into the next major release, due this summer.  Let's keep our fingers crossed.

843425[/snapback]

 

Ah sorry... I meant for newer platforms like PS1, PS2, GC, XBox, PSP, etc...

 

I guess my question is valid for all classic consoles, but more so for the 2600, since it should be the simplest (I think!!!) console out there.

 

A debugger would be a great step if Stella does indeed include such feature!

 

But I was talking about a fully-featured IDE, which would support everything from writing code to debugging, because it's many times necessary/convenient to just make a quick and small change in the code, and press F5/F7 to re-run the thing, without having to toggle between 2 or 3 apps while remembing not to skip a step in the process :)

 

Looks like all the parts are out there really, just not in one package. I just saw that 6502 debugger, and then there's Stella, and of course your favorite editor, etc...

 

Geoff

Link to comment
Share on other sites

But I was talking about a fully-featured IDE, which would support everything from writing code to debugging, because it's many times necessary/convenient to just make a quick and small change in the code, and press F5/F7 to re-run the thing, without having to toggle between 2 or 3 apps while remembing not to skip a step in the process :)

 

Looks like all the parts are out there really, just not in one package.  I just saw that 6502 debugger, and then there's Stella, and of course your favorite editor, etc...

 

Geoff

 

 

I have my whole development environment integrated into Microsoft Visual Studio 2005 Beta 1, which was (is?) a free download. I edit the source, hit F7 and it assembles using DASM and if there are no errors it downloads to hardware using Krokodile Commander. Then all I have to do is power-cycle my '2600.

 

Anyone wanting help setting up Visual Studio for Atari development, drop me a note. It's quite straightforward, just a few custom compile settings on the file, and some post-build configuration stuff. The IDE is pretty much designed for this sort of customisation.

 

The only thing anyone really needs is a debugger. But that would spoil things, IMHO.

Link to comment
Share on other sites

I have my whole development environment integrated into Microsoft Visual Studio 2005 Beta 1, which was (is?) a free download.  I edit the source, hit F7 and it assembles using DASM and if there are no errors it downloads to hardware using Krokodile Commander.  Then all I have to do is power-cycle my '2600.

 

Anyone wanting help setting up Visual Studio for Atari development, drop me a note.  It's quite straightforward, just a few custom compile settings on the file, and some post-build configuration stuff.  The IDE is pretty much designed for this sort of customisation.

843479[/snapback]

 

Ah, this is quite close to what I'm talking about :)

 

The only thing anyone really needs is a debugger.  But that would spoil things, IMHO.

843479[/snapback]

 

In which way would it spoil things?

 

Geoff

Link to comment
Share on other sites

I've been asking for a debugger for Stella for years.

 

It's in the pipeline but I don't know if it will ever get done.

 

It's a miracle that 2600 games get coded without debuggers. The only saving grace going that route is the small ROM sizes, but some homebrews are greater than 4K. You have to really be intimate with your code and I found I was wasting too much time in trial and error debugging to get anything done.

Link to comment
Share on other sites

I've been looking at the following Z80 IDE as a potential for programming the ColecoVision. Seems to do most of what you're asking for but only covers the CPU. At least it clearly shows the values of the registers as the code executes.

 

Bit off-topic as not suitable for the Atari 2600 so sorry.

Edited by Ikrananka
Link to comment
Share on other sites

It's a miracle that 2600 games get coded without debuggers.  The only saving grace going that route is the small ROM sizes, but some homebrews are greater than 4K.  You have to really be intimate with your code and I found I was wasting too much time in trial and error debugging to get anything done.

The only reason I got Red Box/Blue Box debugged was because three years after writing the core code I got a CC2, which meant a 15 second turnaround for code changes, rather than multiple minutes for burning chips.

 

As for the 7800, it's capable enough that I wrote my own debugger which I talk to via an RS-232 link to the right joystick port. At just over 2K, it could run in 2600 mode, but it wouldn't be too useful.

Link to comment
Share on other sites

I've been looking at the following Z80 IDE as a potential for programming the ColecoVision.  Seems to do most of what you're asking for but only covers the CPU.  At least it clearly shows the values of the registers as the code executes.

 

Bit off-topic as not suitable for the Atari 2600 so sorry.

843618[/snapback]

 

I clicked on that link and my proxy here at work reported this:

 

This site is blocked under the following categories: Pornography

 

:ponder:

Link to comment
Share on other sites

The only thing anyone really needs is a debugger.  But that would spoil things, IMHO.

You seriously think that?

 

By lowering the bar to entry too much? I still think VCS programming will be a tremendous challenge for people who haven't spent years immersed in 6502 assembler.

 

If you're worried that it would spoil the fun since PCs w/ emulation are more powerful than what they had back in the day...I thought that some of the big companies had hardware that could act as debuggers, allowing step by step code execution. Of course there'd be some catches, since you cant step by step an electron beam gun, but still, if you're being serious you might be sounding kind of elitest...

Link to comment
Share on other sites

Of course there'd be some catches, since you cant step by step an electron beam gun

845124[/snapback]

 

Sure you can step by step the electron beam, if you simulate the TV in software as well! That's what I was talking about :)

 

Geoff

Link to comment
Share on other sites

Of course there'd be some catches, since you cant step by step an electron beam gun

845124[/snapback]

 

Sure you can step by step the electron beam, if you simulate the TV in software as well! That's what I was talking about :)

 

Geoff

845143[/snapback]

No, I'm talking about what tools they might have had "back in the day", well before emulators...they had some kind of logic trace debuggers I think, but would probably be limited in what they could for the actual image draw...

Link to comment
Share on other sites

The only thing anyone really needs is a debugger.  But that would spoil things, IMHO.

You seriously think that?

 

By lowering the bar to entry too much? I still think VCS programming will be a tremendous challenge for people who haven't spent years immersed in 6502 assembler.

 

If you're worried that it would spoil the fun since PCs w/ emulation are more powerful than what they had back in the day...I thought that some of the big companies had hardware that could act as debuggers, allowing step by step code execution. Of course there'd be some catches, since you cant step by step an electron beam gun, but still, if you're being serious you might be sounding kind of elitest...

845124[/snapback]

 

I don't think it's elitest. Have you seen Frontier House on PBS? It's a bit like that. Building a log cabin with the tools that were available back in the frontier days for instance.

 

You had found out that some of the big companies had hardware (back in the day) that could act as debuggers but I suspect that for most programmers, for most projects back then, coding was done without the aid of debuggers. (Well, at least I never had one. :-(

 

Nevertheless, although I understand that a modern debugger is against the retro spirit of the hobby, I'm certainly all for having a debugger. This is because, for me, I would rather just have a finished bug free cart and not worry so much on how I created it. Over the years, I have grown accustomed to debuggers and just being able to single step my code through the more mundane game logic would be a tremendous help. I sometimes make stupid mistakes that I can't spot by staring at the code, I hate to slog through a couple of hours or even days on such pointless bugs.

Link to comment
Share on other sites

But I was talking about a fully-featured IDE, which would support everything from writing code to debugging, because it's many times necessary/convenient to just make a quick and small change in the code, and press F5/F7 to re-run the thing, without having to toggle between 2 or 3 apps while remembing not to skip a step in the process :)

 

Looks like all the parts are out there really, just not in one package.  I just saw that 6502 debugger, and then there's Stella, and of course your favorite editor, etc...

 

Geoff

 

 

I have my whole development environment integrated into Microsoft Visual Studio 2005 Beta 1, which was (is?) a free download. I edit the source, hit F7 and it assembles using DASM and if there are no errors it downloads to hardware using Krokodile Commander. Then all I have to do is power-cycle my '2600.

 

Anyone wanting help setting up Visual Studio for Atari development, drop me a note. It's quite straightforward, just a few custom compile settings on the file, and some post-build configuration stuff. The IDE is pretty much designed for this sort of customisation.

 

The only thing anyone really needs is a debugger. But that would spoil things, IMHO.

843479[/snapback]

 

Dragonstomper -- can you post the procedure for using VS.2005 or 2003 as the IDE for Atari programming and uploading ROM image for Krokodile Cart.

 

Thanks

Link to comment
Share on other sites

Dragonstomper -- can you post the procedure for using VS.2005 or 2003 as the IDE for Atari programming and uploading ROM image for Krokodile Cart.

 

851082[/snapback]

 

Hi.

On the .asm file, click properties.

Now in Configuration Properties/Custom Build Step/General set the following...

 

Command line...

..\Tools\bin\dasm.exe "$(InputName)".asm -DCOLOUR=1 -DTIA_BASE_ADDRESS=$40 -l"$(InputName)".txt -f3 -v5 -o$(OutDir)\$(ProjectName)$(ConfigurationName).bin

 

You would, of course, change the location of DASM and the command line switches as appropriate. This calls DASM to assemble the file and create a specially named .bin fine in the appropriate directory. I have several configurations setup (NTSC/PAL) so that by selecting the configuration, the compile creates the correct file in the correct subdiretctory for that configuration.

 

Next, in outputs...

$(OutDir)\$(InputName)$(ConfigurationName).bin

 

 

 

Save that. That will configure actually compiling the file for you.

 

Now click properties on the project itself.

 

Under Configuration Properties/General,

 

Output Directory set to $(ConfigurationName) -- this allows you to select multiple configurations as explained above. Same setting for Intermediate directory.

 

Under Configuration Properties/Debugging...

command set to ..\tools\bin\z26.exe (or wherever your z26 or emulator resides).

command arguments set to the arguments for your emulator. I use

-v17 -n -g14 -r60 $(ProjectName)$(ConfigurationName).bin

 

Note how I am using the macros available to auto-configure the binary that is run, based on the configuration.

 

Working Directory... set to ./$(OutDir)

Attach... no

Debugger Type... Auto

Environment...

Merge Environment... Yes

SQL Debugging... No

 

Now set the post-build events (I use this to auto-download to the '2600 through my Krokodile Cart command line interface).

 

Configuration Properties/Build Events/Post-Build Event

Command Line... "..\tools\bin\Krokodile Commander.exe" $(OutDir)\$(ProjectName)$(ConfigurationName).bin -id -bs=3E

 

And that's basically it.

I hit F5 to get a download to Krokodile Cart *and* an instance of Z26 to run. I hit F7 to just run on '2600. In both cases a compile is performed (if necessary) beforehand.

 

To switch to NTSC or PAL, I select the appropriate configuration in the configuration droplists. All you need to do is create named configurations and the setup of the compiles, using the macros, should put everything in subdirectories for each.

 

It's pretty neat once it is all working. Hope this helps.

 

Cheers

A

Link to comment
Share on other sites

Dragonstomper -- can you post the procedure for using VS.2005 or 2003 as the IDE for Atari programming and uploading ROM image for Krokodile Cart.

 

851082[/snapback]

 

Hi.

On the .asm file, click properties.

Now in Configuration Properties/Custom Build Step/General set the following...

 

Command line...

..\Tools\bin\dasm.exe "$(InputName)".asm -DCOLOUR=1 -DTIA_BASE_ADDRESS=$40 -l"$(InputName)".txt -f3 -v5 -o$(OutDir)\$(ProjectName)$(ConfigurationName).bin

 

You would, of course, change the location of DASM and the command line switches as appropriate. This calls DASM to assemble the file and create a specially named .bin fine in the appropriate directory. I have several configurations setup (NTSC/PAL) so that by selecting the configuration, the compile creates the correct file in the correct subdiretctory for that configuration.

 

Next, in outputs...

$(OutDir)\$(InputName)$(ConfigurationName).bin

 

 

 

Save that. That will configure actually compiling the file for you.

 

Now click properties on the project itself.

 

Under Configuration Properties/General,

 

Output Directory set to $(ConfigurationName) -- this allows you to select multiple configurations as explained above. Same setting for Intermediate directory.

 

Under Configuration Properties/Debugging...

command set to ..\tools\bin\z26.exe (or wherever your z26 or emulator resides).

command arguments set to the arguments for your emulator. I use

-v17 -n -g14 -r60 $(ProjectName)$(ConfigurationName).bin

 

Note how I am using the macros available to auto-configure the binary that is run, based on the configuration.

 

Working Directory... set to ./$(OutDir)

Attach... no

Debugger Type... Auto

Environment...

Merge Environment... Yes

SQL Debugging... No

 

Now set the post-build events (I use this to auto-download to the '2600 through my Krokodile Cart command line interface).

 

Configuration Properties/Build Events/Post-Build Event

Command Line... "..\tools\bin\Krokodile Commander.exe" $(OutDir)\$(ProjectName)$(ConfigurationName).bin -id -bs=3E

 

And that's basically it.

I hit F5 to get a download to Krokodile Cart *and* an instance of Z26 to run. I hit F7 to just run on '2600. In both cases a compile is performed (if necessary) beforehand.

 

To switch to NTSC or PAL, I select the appropriate configuration in the configuration droplists. All you need to do is create named configurations and the setup of the compiles, using the macros, should put everything in subdirectories for each.

 

It's pretty neat once it is all working. Hope this helps.

 

Cheers

A

851911[/snapback]

 

Thank you!

Link to comment
Share on other sites

  • 2 weeks later...
I have my whole development environment integrated into Microsoft Visual Studio 2005 Beta 1, which was (is?) a free download.  I edit the source, hit F7 and it assembles using DASM and if there are no errors it downloads to hardware using Krokodile Commander.  Then all I have to do is power-cycle my '2600.

 

Just a pointer - The VS Betas are a free download but only for MSDN subscribers. However, you can order a free copy on CD from Microsoft. Got my copy earlier in the week - took a week or so to arrive.

 

There are free Beta downloads (Express editions) for those wanting to try out various aspects of .NET (e.g. C# or Web Development). But I'm not sure if they'll allow you to do what Andrew's suggesting. In any case, I've found these Betas to be pretty untable and flaky.

 

Anyway, the information and links are here.

 

BTW: Visual Studio and the Express are now at Beta 2.

Link to comment
Share on other sites

Nevertheless, although I understand that a modern debugger is against the retro spirit of the hobby, I'm certainly all for having a debugger.

 

Where do you get that impression?

 

PCAtari had a debugger many years ago. It's just that PCAtari was written in the DOS/Win 3.1 era and it runs like crap on 2000 or XP and nobody has done the work to add a debugger to Z26 or Stella.

 

It's not that developers haven't been asking, that's for sure.

Link to comment
Share on other sites

Nevertheless, although I understand that a modern debugger is against the retro spirit of the hobby, I'm certainly all for having a debugger.

 

Where do you get that impression?

 

PCAtari had a debugger many years ago. It's just that PCAtari was written in the DOS/Win 3.1 era and it runs like crap on 2000 or XP and nobody has done the work to add a debugger to Z26 or Stella.

 

It's not that developers haven't been asking, that's for sure.

859906[/snapback]

 

I'm confident that we'll have a debugger in the next major release of Stella and the debugger will be built in. I've spoken to the current maintainer and he's also posted about the subject. Meanwhile, I am also working on a debugger myself and hopefully some of my work may become part of the Stella debugger.

 

- David

Link to comment
Share on other sites

I've just submitted a new project on Sourceforge for an IDE with built-in cross assembler and emulator.

 

I suppose I could just do an IDE that utilises DASM but I just fancy having a crack at writing an assembler myself. :cool:

 

If anyone else wants to jump aboard (.NET, I'm afraid, but can use J#, C++, VB or C#) then feel free to do so.

Link to comment
Share on other sites

I've just submitted a new project on Sourceforge for an IDE with built-in cross assembler and emulator.

 

I suppose I could just do an IDE that utilises DASM but I just fancy having a crack at writing an assembler myself.  :cool:

 

If anyone else wants to jump aboard (.NET, I'm afraid, but can use J#, C++, VB or C#) then feel free to do so.

860297[/snapback]

Are you planning on writing your own emulator?

Link to comment
Share on other sites

I dunno, PCAEWin 2.6 runs pretty well on my system, and the debugger is pretty good. Not to mention the emulation is pretty spot on.

 

John did some improvements, but they've been laying dormant in an as-yet unreleased version of 2.7. He sent me the beta recently, but he sent me the debug build which appears to have some missing link libraries, so I'm waiting for him to send me the missing files before giving it a good eval.

Edited by Mindfield
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...