Jump to content
IGNORED

C64 Atari 2600 Emulator beats a real Atari


Mr SQL

Recommended Posts

 

C64 Atari Emulator beats a real Atari - YouTube

 

GameLoader.thumb.jpg.dc3f1c26f28e8db0ae025ce148f223ab.jpg

The Gameloader was a vaporware Atari 2600 Adaptor for the VIC-20 that played Atari games with enhanced Commodore graphics and sound.

 

Gameloader64 is now in Beta for the Commodore 64! 

 

Running Atari 2600 games on the C64:

 

Details on the racing the beam sub framework architecture for the C64 are on the Commodore forum and it is already possible to use SuperCharger BASIC or Assembly and Batari BASIC to construct Commodore 64 games.

 

Advanced Atari games written in Assembly and SuperCharger BASIC will run cross platform on the C64 through Gameloader with no changes to the code like the demo program example below. 

 

Expansion model:

It is possible to add a stub to the sub framework for batari BASIC SuperChip games using the 32x32 playfield and standard bB games using the 11x32 playfield.

 

Getting free form Atari games to run with no changes to the code is the more challenging aspect of the project, and requires a specific framework stub for each program or set of programs that create their own graphics accelerator card to map it to the VIC-II region space. 

 

Benchmarking program used in the video:

Atari2600_demo_umodified_on_C64.txt

This is the benchmarking program, the timing is identical on the Atari 2600 but it deliberately fails to race the beam and the screen rolls when making the Assembly call in the BASIC program to blit the screen at 60 Hz with the soft ANTIC blitter. 

 

Technical: This can only be done using display list calls to the soft ANTIC chip that on the Atari 2600 can achieve at most 75% of the screen at 60 Hz, but to blitter the whole playfield on the 2600 only the 30 Hz display mode allows enough time. 

 

32X throughput

One of the most interesting aspects of the benchmark demo is that the C64 is blitting 32x the bit depth, each 1 bit phat TIA pixel is transposed to four PETSCII tiles that can be redefined (see commented code in the listing for C64 tile and background tile arrays in the BASIC dialect).

 

Benchmarking Atari 2600 games against Atari 2600 games:

The same test program can also be cross compiled with Flashback BASIC which performs similar Transmeta magic through the Program Coordinator in the sub Framework to host SuperCharger memory format and bank switching schemes natively on CBS RAM. 

 

It's interesting to note that the benchmark test results show CBS RAM Atari 2600 format also performing faster than the Supercharger with less of a screen roll though not nearly as fast as the C64. 

 

GameLoader64 was inspired by Jack Tramiel and the SillyVenture Atari Commodore Sinclair Demo Scene

 

  • Like 4
Link to comment
Share on other sites

14 hours ago, zzip said:

Doesn't the C64 CPU run slower than the 2600?   That plus the hardware translation required, I don't see how it could outperform

Great question! I was surprised to see the C64 outperform in the benchmark but it has a powerful VIC-II chip that is accelerating the 6502 soft blitter.

 

The C64's VIC-II handles many of CTIA and ANTIC's functions in the Atari Home Computers while the Atari 2600 has only the TIA.

 

In the benchmark demo the soft blitter is running natively on both the Atari 2600 and the C64, and the VIC-II is acting as an accelerator. 

 

I think ANTIC might be used as an accelerator too to create an Atari home computer version. 

 

8 hours ago, The Usotsuki said:

I can't imagine it's not like the Spartan Mimic...

This is all in software.

 

The Spartan Mimic is interesting, I found a cool review from 1986:

spartan-review-ahoy-sep-1986.pdf (mikenaberezny.com)

I like that it allows the Apple II hardware to use the C64's joysticks with Apple II software.

 

There is a recent similar product like the Spartan Mimic for the C64, that has another C64 in the cart:

Turbo Chameleon 64 - C64-Wiki

  

Link to comment
Share on other sites

16 hours ago, Reaperducer said:

Is it really correct to call the original one "vaporware?"  Protecto was in the business of liquidating other people's overstock and unwanted inventory, not creating products of its own.  So, surely, it must have existed.

Excellent points! Protecto was a legitimate business and most likely saw a prototype at CES or was shown a private demo from a think tank consulting firm running a dog and pony show with blinking lights on an EPROM cart a neon flashing fake prototype.

 

The description of Commodore graphics and sound enhancing Atari games sounds like the Atari Flashback 1 using Nintendo hardware to add Nintendo graphics and sound to Atari games except that all of them were fake.

 

The Chameleon is a real product like the Gameloader that uses an FPGA to load Atari 2600 games on Commodore 64, but it cannot add Commodore graphics and sound to the Atari games like Gameloader from the 80's.

 

Link to comment
Share on other sites

More C64 demos playing Atari! :) 

 

In this demo the C64 is playing Atari 2600 Tron Light Cycles and reproduced the games characteristic screen roll feature when the light cycle crashes:

 

C64 Plays Atari 2600 Game - YouTube

 

The SID is playing TIA chip tunes in this one:

PETSCII AND SID PLAY ATARI - YouTube

 

Bare metal register API's vs Framework API's

 

The bare metal register API's are transparent but consider when you change a few TIA registers for sound a cascade of 29 SID registers must happen in the emulator. 

 

The Framework API's are much easier to finesse than hardware API's so there isn't much sound in that game yet like when it is played on the 2600, but this next Gameloader64 demo is using the framework API and the SID is playing the same chiptune in the program posted earlier with a SID Fx skin like the PETSCII graphical skin.

 

Here's the code for Tron Light Cycles from the Basic10liner.com contest:

0 if g=0 then for x=18 to 239:virtualworld(x)=0:next x else f=f+1:goto 2:rem ini
1 for x=0 to 9:g=g+10:rowcolors(x)=g:next x:x=10:y=5:h=1: rem initial dir right
2 if f<4 then scrollvirtualworldtoggle=0:return else scrollvirtualworldtoggle=1
3 if joy0left=1 then e=1:h=0:i=0:j=0:AUDC0=8:AUDF0=BITIndex:SUSTAINFORFRAMES=15
4 if joy0right=1 then h=1:e=0:i=0:j=0:AUDC0=6:AUDF0=BITIndex:SUSTAINFORFRAMES=15
5 if joy0down=1 then i=12:e=0:h=0:j=0:AUDF0=y*3:AUDC0=15:SUSTAINFORFRAMES=15
6 if joy0up=1 then j=12:i=0:e=0:h=0:AUDC0=3:AUDF0=y*2:SUSTAINFORFRAMES=15
7 x=x-e:x=x+h:l=i/12:y=y+l:l=j/12:y=y-l:BYTErowoffset=BYTErowoffset+i:rem TRON!!
8 BITIndex=BITIndex-e:BITIndex=BITIndex+h:BYTErowoffset=BYTErowoffset-j:f=0
9 if vwpixel(x,y,on)>0 then COLUBK=100:SUSTAINFORFRAMES=100:goto 6:rem Atari VCS

And a link to compare the game in the online Atari emulator Javatari:

http://javatari.org/?ROM=http://relationalframework.com/TronOnePlayer.bin&SCREEN_FULLSCREEN_MODE=1

 

Video of the game on the Atari 2600:

 

 

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