Mr SQL Posted April 27, 2022 Share Posted April 27, 2022 Running Atari 2600 programs on my NTSC C64! This is a Cross Compiler for the C64 that runs Atari 2600 programs written in Assembly and BASIC (SuperCharger BASIC and Flashback BASIC) with no changes to the BASIC or Assembly code. This is accomplished by abstracting the Atari 2600 virtual machine RUNTIME including a soft ANTIC blitter like Atari home computers bringing display list technology to the Commodore 64! Double the fun of racing the beam with the classic Television Threading Model on the Commodore 64 allows game loops that repeat 30 or 60 times per second with full screen animation each frame creating faster action scenes than are usually seen with the C64 design. The rich BASIC provides graphics and sound support and a camera object for panning around the virtual world, or with abstract Assembly programming (ASDK api). The next version will add color and audio support, check out some of the Atari 2600 BASIC and Assembly games that will be supported online here: http://relationalframework.com/Atari2600gamesonline.htm The Commodore 64 and the Atari 2600 Video Computer System are the two most popular retro computer consoles, write programs that run on both! Details: The soft blitter, camera object and display lists are running and functional, I dropped the compiled Atari 2600 BASIC Assembly code and the bitmap right into the 64 Framework and it ran the same in the abstracted VM on my Commodore 64. I can cross compile some of the BASIC at this point and am adding the RUNTIME subsystems that are missing. Adding sprites, sound and color next... the Tracker/Sequencer for the TIA chiptunes is going to be tremendous fun on the 6581! C64 Extra tile detail: The VM abstracts each 1 bit textured phat tile the TIA draws into 4 characters on the VIC-II text screen allowing both tiled patterns and background patterns to be drawn, I chose the same graphic for the 4 background tile quadrants in the demo. There's inspiring concept innovation with prior art if a prototype was ever produced! 4 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted April 27, 2022 Share Posted April 27, 2022 This is underrated. 1 Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted April 28, 2022 Author Share Posted April 28, 2022 3 hours ago, OLD CS1 said: This is underrated. Thank you OLD CS1! Update: I just got the BASIC IDE working to click the Play button and compile and launch the program in either Stella or VICE. Here's a fun video using the PRINT statement in a short BASIC program to print binary strings on the scrolling virtualworld bitmap and then bounce the bitmap around: 1 Quote Link to comment Share on other sites More sharing options...
+eebuckeye Posted May 1, 2022 Share Posted May 1, 2022 So cool!!! 1 Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted May 16, 2022 Author Share Posted May 16, 2022 Sharing this thread from the Atari 2600 Programming forum with another Atari 2600 game running on the Commodore 64 with an intermittent freezing bug. Possibly Zero Page contention from the Kernel routines, hoping some C64 programmers may have an idea: Quote Link to comment Share on other sites More sharing options...
carlsson Posted May 16, 2022 Share Posted May 16, 2022 I suppose you don't touch address 0 and 1 since those are I/O ports? Otherwise I think if you disable the ROM Kernel, you might have rest of the zeropage for yourself. Someone like @bjonte probably can chime in at a later occasion, as he's well versed in C64 programming. 1 Quote Link to comment Share on other sites More sharing options...
bjonte Posted May 16, 2022 Share Posted May 16, 2022 I suppose you don't touch address 0 and 1 since those are I/O ports? Otherwise I think if you disable the ROM Kernel, you might have rest of the zeropage for yourself. Someone like [mention=50625]bjonte[/mention] probably can chime in at a later occasion, as he's well versed in C64 programming.I’m note sure I understand the problem here. As carlsson says, the kernal shouldn’t need to be used when running a game like this without any disk loading. Kernal interrupts should be turned off. Atari 2600 har RAM from $80-$ff I think, so 2-$7f should be available for other uses during emulation. 1 Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted May 17, 2022 Author Share Posted May 17, 2022 7 hours ago, carlsson said: I suppose you don't touch address 0 and 1 since those are I/O ports? Otherwise I think if you disable the ROM Kernel, you might have rest of the zeropage for yourself. Someone like @bjonte probably can chime in at a later occasion, as he's well versed in C64 programming. 7 hours ago, bjonte said: I’m note sure I understand the problem here. As carlsson says, the kernal shouldn’t need to be used when running a game like this without any disk loading. Kernal interrupts should be turned off. Atari 2600 har RAM from $80-$ff I think, so 2-$7f should be available for other uses during emulation. Thanks carlsson and bjonte the Blitz demo is running smoothly now! I disabled the Kernel and also added an NMI with just an rti to stop other interrupts from happening. Animated Tile Mapping Demo The Blitz game above has Commodore graphical designs on the graphics that were selected from 4 PETSCII characters. This demo animates the graphics on the tiles and background: 1 Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted May 18, 2022 Author Share Posted May 18, 2022 The Atari 2600 display list demo ran perfectly on the Commodore 64, and the Gate Crasher Atari game program was more fun to play with fantastic commodore Graphics and sound added! Display_List_Interrupt_demo5A.txt GATE CRASHER II KCFX Awesome mix slow version.txt Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted May 19, 2022 Author Share Posted May 19, 2022 Interesting freezing and crashing happening in the emulator again - Defender III runs for two seconds and freezes in one clip, in the other it crashes into Commodore BASIC: Not sure why this is happening, BASIC should stay disabled and an unmaskable interrupt was stopping other interrupts that were freezing the whole system before. Did I overwrite my interrupt? (file is a bit larger) Invoke MAX mode somehow or trip the io line again?? Q3 Defender III Trainer_testingFB9_hotfixes.txt Quote Link to comment Share on other sites More sharing options...
Chris+++ Posted May 19, 2022 Share Posted May 19, 2022 There's a Defender III on the C64?? Quote Link to comment Share on other sites More sharing options...
carlsson Posted May 19, 2022 Share Posted May 19, 2022 No, on the Atari 2600 which he is trying to emulate. Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted July 10, 2022 Author Share Posted July 10, 2022 Game_Loader_Commodore_64_Atari_2600_Emulator_WhitePaper.pdf Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.