Jump to content
IGNORED

if there was unlimited ram how good could a 2600 game get?


bohoki

Recommended Posts

problem I see with the 2600 is having to "race the beam" where you could attach a darn cd rom to the thing and a gig of ram but at some point your crunched for cpu cycles before the next tv line begins

 

I think the current developers of homebrew and demo's have pushed it very very far in impressive way's, but that's more about coding talent and understanding rather than a question of the machine's other limitations

  • Like 3
Link to comment
Share on other sites

IMO an additional 128 bytes would have been great and is obviously why they released the Super Charger. Although i feel if the system was released with 256 it would've only opened the abilities marginally. Bankswitching helped alot with content and depth but there is so many other limitations with the system anyway. One could say "what if they went with the 6502 rather then 6507 would it be any better" and short answer yes any upgrade would have helped, but once again the other limitations bottleneck the system anyway.

 

It's the old 'snowball down a hill' effect, a 'dog chasing it's tale' analogy, you upgrade one part another follows to open the bottleneck ect ect until you hit full circle. I guess as it was intended for Pong and Combat the hardware did the job and was one the first consoles ever made. Sega is a great example with all their addons trying to revive a dying console held back by other bottlenecked hardware...

  • Like 2
Link to comment
Share on other sites

It would have needed more than just RAM to make much of a difference. The other components would have held it back. Basically what everyone else has said. :)

 

The thing is, it's limitations and the way programmers have stretched it's capabilities, is one of the things that makes the 2600 so amazing, IMO.

  • Like 2
Link to comment
Share on other sites

I dont think RAM is as much of a limiting factor on the Atari 2600 than other bottlenecks.

 

As others have mentioned, the VCS doesnt have any video memory, so the 6507 is constantly busy racing the beam during the screen drawing kernel. You only have 40bits of play field, 2x 8bits for players, and 3x bits for missles and ball that have to share colors with the sprites and play field. As Spiceware has shown, you can get some pretty impressive graphics using a coprocessor and Bus Stuffing

http://atariage.com/forums/topic/258191-bus-stuffing-demos/

post-3056-0-53497100-1476924070.png[/img]

 

As far as audio goes, once again RAM isnt the limiting factor, the audio hardware itself and the 6507s limited speed. You can trick the audio hardware into sounding better than it should, but you cannot really do much else while you are doing it.

http://atariage.com/forums/topic/140331-advanced-sound-techniques-how-do-they-work/page-1

 

Having unlimited RAM isnt that big of a gain, when the 6507 can only address 4K of it.

Edited by CapitanClassic
  • Like 1
Link to comment
Share on other sites

Having unlimited RAM isn't that big of a gain, when the 6507 can only address 4K of it.

The good thing about more RAM is that you might have room for all sprites to be in RAM instead of having them stuck in ROM. For example, the shields in Space Invaders are in RAM, so you can shoot pieces out of them. You can do fancy things with your sprites if they are in RAM, not just let the player damage them. You could have interchangeable parts so it will look like the game has a nearly unlimited number of sprite variations (have the game use controlled randomness to switch out various horizontal sections and colors of the sprites). You could even allow the player to select a character by cycling through styles of hats, shirts, pants, and shoes (similar to how it's done in Strawberry Shortcake: Musical Match-ups).

 

More RAM would also mean that the programmer could have more variables. For example, batari Basic programmers go from 26 variables to over 74 when they switch to Superchip RAM. If we had even more RAM mixed with a DPC+ style kernel, we'd have pretty graphics and possibly hundreds of variables to use for keeping track of things and making more complex games. Imagine making a large adventure game where the location of every item is remembered and non-player characters could have multiple variables that keep track of their personalities and moods. Are they kind or evil or somewhere in between? Are they sad or angry? Peaceful or aggressive? Atari 2600 games could have non-player characters that are more realistic and complex than most players ever thought possible. All we need is more RAM and a new kernel.

  • Like 1
Link to comment
Share on other sites

There's 76 cycles of processing time available per scanline for the CPU to update TIA (the Atari's scanline based graphics chip). A typical routine to draw a player (sprite) takes 18 cycles:

DoDraw0:
        lda #HUMAN_HEIGHT-1 ; 2  2 - height of the humanoid graphics, subtract 1 due to starting with 0
        dcp HumanDraw       ; 5  7 - Decrement HumanDraw and compare with height
        bcs DoDrawGrp0      ; 2  9 - (3 10) if Carry is Set, then humanoid is on current scanline
        lda #0              ; 2 11 - otherwise use 0 to turn off player0
        .byte $2C           ; 4 15 - $2C = BIT with absolute addressing, trick that
                            ;        causes the lda (HumanPtr),y to be skipped
DoDrawGrp0:                 ;   10 - from bcs DoDrawGrp0
        lda (HumanPtr),y    ; 5 15 - load the shape for player0
        sta GRP0            ; 3 18 - update player0 to draw Human




Having a lot more RAM would allow you do the same in 7:
lda HumanGraphics,y  ; 4  4
sta GRP0             ; 3  7




The freed up time can be used to update other TIA registers in order to generate a better display.
  • Like 2
Link to comment
Share on other sites

 

Having a lot more RAM would allow you do the same in 7:

lda HumanGraphics,y  ; 4  4
sta GRP0             ; 3  7


 

The freed up time can be used to update other TIA registers in order to generate a better display.

Using other RAM other than the first 128 would take an extra cycle since it's no longer zero page RAM.

Link to comment
Share on other sites

Using other RAM other than the first 128 would take an extra cycle since it's no longer zero page RAM.

 

Correct - LDA #ImmediateMode takes 2 cycles, LDA ZeroPage takes 3 cycles, everything else takes 4+ cycles.

 

Some will vary due to the potential of a page crossing, such as LDA Absolute,Y which will take 4 or 5 cycles. For time critical kernel usage the programmer will make sure to align the data in order to avoid that extra cycle.

 

The LDA entry from a handy online 6502 Opcode reference:

LDA (LoaD Accumulator)
 
Affects Flags: S Z
 
MODE           SYNTAX       HEX LEN TIM
Immediate     LDA #$44      $A9  2   2
Zero Page     LDA $44       $A5  2   3
Zero Page,X   LDA $44,X     $B5  2   4
Absolute      LDA $4400     $AD  3   4
Absolute,X    LDA $4400,X   $BD  3   4+
Absolute,Y    LDA $4400,Y   $B9  3   4+
Indirect,X    LDA ($44,X)   $A1  2   6
Indirect,Y    LDA ($44),Y   $B1  2   5+
 
+ add 1 cycle if page boundary crossed
Link to comment
Share on other sites

I worked out a pretty robust RPG system using 6 8-bit variables. This includes stats, equipment, hirelings, quest progression, etc..

 

I'm not worried about RAM. If I could get 256k ROM boards then vast amounts of content become possible.

 

Pretty sure the answer is to use SpiceWare C and DPC+ carts to offload RAM tasks to the ARM. But, I know not what I speak.

  • Like 1
Link to comment
Share on other sites

The good thing about more RAM is that you might have room for all sprites to be in RAM instead of having them stuck in ROM. For example, the shields in Space Invaders are in RAM, so you can shoot pieces out of them. You can do fancy things with your sprites if they are in RAM, not just let the player damage them. You could have interchangeable parts so it will look like the game has a nearly unlimited number of sprite variations (have the game use controlled randomness to switch out various horizontal sections and colors of the sprites). You could even allow the player to select a character by cycling through styles of hats, shirts, pants, and shoes (similar to how it's done in Strawberry Shortcake: Musical Match-ups).

 

More RAM would also mean that the programmer could have more variables. For example, batari Basic programmers go from 26 variables to over 74 when they switch to Superchip RAM. If we had even more RAM mixed with a DPC+ style kernel, we'd have pretty graphics and possibly hundreds of variables to use for keeping track of things and making more complex games. Imagine making a large adventure game where the location of every item is remembered and non-player characters could have multiple variables that keep track of their personalities and moods. Are they kind or evil or somewhere in between? Are they sad or angry? Peaceful or aggressive? Atari 2600 games could have non-player characters that are more realistic and complex than most players ever thought possible. All we need is more RAM and a new kernel.

 

Flashback BASIC and Virtual World BASIC have RAM based sprites to play with, they use CBS RAM (double superchip) and SuperCharger RAM for all of the graphics.

  • Like 1
Link to comment
Share on other sites

For a point of reference, since the Atari 2600 is based on the same processor as the Atari 800 (6507/6502), and the TIA has only 2 sound channels compared to the Antics 4, with only 2 sprites instead of 8 (among other graphic limitations)...

 

A 2600 with unlimited RAM would still look and sound worse than an Atari 800 with 64K.

 

Is that accurate? (Or could we expect some sort of Dragons Lair/Back to the Future Full-Motion video games?)

Edited by CapitanClassic
Link to comment
Share on other sites

Ram is definitely a limiting factor for fmv games. With bus stuffing and color tricks the 2600 can do some pretty amazing stuff, ram could definitely help with prepping scenes in advance to allow faster video (otherwise fmv games aren't really complicated, dragons lair needs prepped videos for the next scene, and you died videos, but that's about it) you won't otherwise really put more on the screen, but could have larger sprite sets, still 8 pixel monochrome, but more frames of animation. Possibly extra tracking to keep track of enemies and stuff for previous and next screens.

 

Games could certainly be more complex with more ram, just as 64k games are more complex now. There's still limits that more ram won't help with, just like you won't exceed the 128 color palate or the 2 voice audio. You can make better use of it, but you'll need more other stuff to get more other stuff.

Link to comment
Share on other sites

 

that is the question lets say the day after they made the 2600 ram became so cheap they could throw in a megabyte would that have made games much better? from video to sounds

Given the time it was designed and its purpose, I'd say the engineers did a good job. You might wish for more of this and more of that, but if it doesn't sell, you have nothing. How much more money would it have cost to produce had they opted for more capable hardware? Maybe they end up with something that cost $500 in 1978 dollars and hardly anyone buys it.

 

Though it has been quite a long time since I have done any major reading about Atari, from what I recall, the 2600 was not really a product that was going to be a console with a 10 year life span. IIRC, they were thinking somewhere in the neighborhood of 20 cartridges over a couple of years or something like that. The 2600 was a few years old before it even reached its heyday. While Atari wasn't first, it was very early and there is no way they could have foreseen what would happen. I seriously doubt that even the most visionary people could have foreseen that video games would eventually become bigger than the movies! Even though that particular milestone took a very long time, the video game craze of the early 80s was probably larger than most people would have guessed it could be.

 

Over time, they did manage to overcome some of the limitations. There are several carts with on board ram, there is the Omega Drive 2nd button thing, Pitfall II with its music capabilities and of course, bankswitching to increase the ROM size.

  • Like 2
Link to comment
Share on other sites

  • 5 months later...

Having more RAM memory in the '2600 would allow programs to use techniques like self-modifying code (which is fairly common in Commodore 64 programs).

This speeds up loops and lookups and could maybe allow you to do add extra game-elements while "racing the beam".

Link to comment
Share on other sites

You could just cheat, slap an extra CPU and RAM in the cartridge, and use them to implement a frame buffer entirely in software to bypass the "racing the beam" issue I suppose, then have the results output in a form the 2600 can understand, making it little more than a handler for what amounts to a console in a cartridge. It's not unlike what Nintendo did with the Super FX chip to make Starfox possible on the SNES. Even then you're still going to be held back by what the console is capable of displaying in both cases.

Link to comment
Share on other sites

  • 2 weeks later...

It'd be fun to have a chip to program that could do a lot of the display work for the TIA while the CPU goes off and does other things. So, you could use the playfield as an ultra lowres linear framebuffer :D mmmm, 2600 Wolfenstein.

 

Come to think of it, didn't the later 2600 games like Solaris have a coprocessor kind of like the one in Pitfall 2? I searched and didn't see it, but somehow I remember reading that.

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...