JeffJetton Posted January 2, 2019 Share Posted January 2, 2019 (edited) Hello all, Newbie 2600 programmer here. I've been playing around with creating very simple code examples as a way of helping me to figure out how all this stuff works and fits together. I've found that, if I don't do any sort of VSYNC or other typical kernel responsibilities (VBLANKs, etc.), I can get a "bare bones" program (similar to Tjoppen's minimal demo but not as tricky) to run in Stella just fine. I can get it to run in Javatari (on 8bitworkshop) too, with a bit of resetting/fiddling. Auto-recognition of NTSC/PAL fails, of course. That's to be expected, I guess. But, out of curiosity, what if I were to try to run it on a real VCS? I know the TIA will take care of the horizontal beam movement without any help from me. But what about the vertical movement? Will the TV just keep scanning downward until it blows up or something? :-P Thanks, - Jeff Edited January 2, 2019 by JeffJetton Quote Link to comment Share on other sites More sharing options...
TheHoboInYourRoom Posted January 2, 2019 Share Posted January 2, 2019 (edited) Yup, without vertical sync the TV will keep scanning down until it reaches its "natural" limit and starts over. Whatever you draw with the Atari will show up at some slower-than-usual frame rate, assuming the TV shows it at all. Some more modern TVs will suppress any signal that doesn't have VSYNC. Edited January 2, 2019 by TheHoboInYourRoom Quote Link to comment Share on other sites More sharing options...
JeffJetton Posted January 3, 2019 Author Share Posted January 3, 2019 Ah! I didn't know that analog TVs had a natural limit. Good to know, thanks! 1 Quote Link to comment Share on other sites More sharing options...
TheHoboInYourRoom Posted January 3, 2019 Share Posted January 3, 2019 The limit can be different from set to set as well, so there's no guarantee that your program could draw a stable picture on any given TV. Quote Link to comment Share on other sites More sharing options...
+Gemintronic Posted January 3, 2019 Share Posted January 3, 2019 SpiceWare pointed me to his Jitter program / ROM to explore screen roll and timings. Figured it'd be good to know how tolerant different RF connections are (VCRs, TVs, LCDs with RF tuner, etc..) http://atariage.com/forums/blog/148/entry-12666-jitter-3-recovery-time/ Quote Link to comment Share on other sites More sharing options...
JeffJetton Posted January 3, 2019 Author Share Posted January 3, 2019 (edited) SpiceWare pointed me to his Jitter program / ROM to explore screen roll and timings. Figured it'd be good to know how tolerant different RF connections are (VCRs, TVs, LCDs with RF tuner, etc..) http://atariage.com/forums/blog/148/entry-12666-jitter-3-recovery-time/ Very cool. I'll check it out! Edited January 3, 2019 by JeffJetton 1 Quote Link to comment Share on other sites More sharing options...
JeffJetton Posted January 3, 2019 Author Share Posted January 3, 2019 The limit can be different from set to set as well, so there's no guarantee that your program could draw a stable picture on any given TV. Well specifically, I'm working with very basic programs that either don't display anything (other than the background), like this: MyLoop lda #$CE sta COLUBK jmp MyLoop Or that display the same thing on every scanline, like this: SetCols lda #$06 sta COLUBK lda #$46 sta COLUPF lda #%10110111 sta PF1 jmp SetCols I'm assuming that, if these rolled, it wouldn't really make much of a difference, eh? Quote Link to comment Share on other sites More sharing options...
TheHoboInYourRoom Posted January 3, 2019 Share Posted January 3, 2019 I'm assuming that, if these rolled, it wouldn't really make much of a difference, eh? Indeed not. Oh, a good thing to know for the future is that the TIA's registers latch the values written to them, so they won't change until you write different values. So, your example programs could write their values once and then fall into infinite loops. Quote Link to comment Share on other sites More sharing options...
JeffJetton Posted January 3, 2019 Author Share Posted January 3, 2019 Oh, a good thing to know for the future is that the TIA's registers latch the values written to them, so they won't change until you write different values. So, your example programs could write their values once and then fall into infinite loops. I figured. But since I'm doing absolutely nothing after setting them, there wasn't really anywhere else I could think of to jump to. Not sure if this sort of thing is kosher (a jmp jumping to itself): InfLoop jmp InfLoop Is it? Quote Link to comment Share on other sites More sharing options...
TheHoboInYourRoom Posted January 3, 2019 Share Posted January 3, 2019 Not sure if this sort of thing is kosher (a jmp jumping to itself): InfLoop jmp InfLoop Is it? Absolutely. Nothing bad happens if you (intend to ) do that. Quote Link to comment Share on other sites More sharing options...
JeffJetton Posted January 3, 2019 Author Share Posted January 3, 2019 Absolutely. Nothing bad happens if you (intend to ) do that. Good to know. I didn't want to accidentally, like, break the internet or something. 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.