qah661 Posted October 3, 2020 Share Posted October 3, 2020 Hello all! I am getting back to learning some 2600 programming, and things are going well on the Stella emulator, but when I try it on my TV with the Harmony cart, it doesn't look good. Granted, I do have my 2600 connected to a 1080P (not on the 4k train yet ) TV via the coax in, but it doesn't seem to be the TV because the Harmony menu as well as commercial Atari games run just fine. I thought it was something with my code, so I compiled the first example from "Session 8: Our First Kernel" section of Andrew Davie's programming tutorial, and although it looks as expected in the emulator, it looks offset on the TV. I have also ruled out any issues with the Harmony cart since I tested the ROM of Centipede, and it works fine just like the real cart I have for it. Any ideas why this might be the case? I am in America and using an NTSC TV. I have included two pictures. One picture shows Centipede running on the TV, and the other picture shows the example code from the tutorial running on the TV. Thanks! 1 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted October 3, 2020 Share Posted October 3, 2020 Looks like some uninitialised stuff to me. Try putting in at the start... lda #0 sta PF0 sta PF1 sta PF2 sta GRP0 sta GRP1 ... and report back. Quote Link to comment Share on other sites More sharing options...
qah661 Posted October 3, 2020 Author Share Posted October 3, 2020 That worked!! Thanks! I'm guessing the values for those registers were left over from the Harmony cart menu. In my code, I am already clearing RAM. Is it a good idea to clear all the registers as well, or is that just overkill? Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted October 3, 2020 Share Posted October 3, 2020 Just now, qah661 said: That worked!! Thanks! I'm guessing the values for those registers were left over from the Harmony cart menu. In my code, I am already clearing RAM. Is it a good idea to clear all the registers as well, or is that just overkill? There's a macro named CLEAN_START that should do all of that clearing. Do you have it at the start of your program? The issue was the playfield registers and sprites, even though black, had actual data in them and were showing over the top of the rainbow stripes. The clue is that symmetrical nature (left/right) of the wide stripes. You can also use Stella to show you which objects are what on the screen, and this can be very handy. In this case, though - working on Stella and not on Harmony - not so handy. But stella has a developer mode which randomises memory - and that, too, can be very useful. 1 Quote Link to comment Share on other sites More sharing options...
qah661 Posted October 3, 2020 Author Share Posted October 3, 2020 3 minutes ago, Andrew Davie said: There's a macro named CLEAN_START that should do all of that clearing. Do you have it at the start of your program? Ah. I wasn't aware of that available macro provided by Dasm's macro.h file. I'll use that for sure. Thanks again. Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted October 3, 2020 Share Posted October 3, 2020 Don't overlook the Developer Mode feature that Andrew mentions. Note that you should leave Random Startup Bank checked. If you ever get into ARM assisted games (DPC+, CDFJ, Bus) then uncheck it - they always start in a specific bank because the other banks could contain ARM code, which the 6507 cannot run. The other tabs have different developer features as well, so be sure to check them out. I recently used the TIA tab when I was trying to figure out the stray pixels in Frantic that were appearing on Zero Page Homebrew's Atari as I'd never seen them on mine. You can read about that starting at Reply #393 1 Quote Link to comment Share on other sites More sharing options...
qah661 Posted October 3, 2020 Author Share Posted October 3, 2020 Thanks for that tip! You guys are such a helpful community. The help is very much appreciated. 1 Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted October 8, 2020 Share Posted October 8, 2020 On 10/3/2020 at 5:02 PM, SpiceWare said: Note that you should leave Random Startup Bank checked. If you ever get into ARM assisted games (DPC+, CDFJ, Bus) then uncheck it - they always start in a specific bank because the other banks could contain ARM code, which the 6507 cannot run. Worth pointing out that Stella 6.3 fixes this issue. From the changelog: Bankswitching schemes BUS, DPC+ and CDFx now work when startup bank randomization is enabled (these schemes now ignore that setting). 1 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.