antron Posted June 15, 2005 Share Posted June 15, 2005 can one just wait until 6502 cycle 0 and write to HMOVE, or must WSYNC be written to first? i want to save 3 cycles in my kernal, but move things too. thanks, antron Quote Link to comment Share on other sites More sharing options...
Bruce Tomlin Posted June 15, 2005 Share Posted June 15, 2005 If you know you'll be on cycle 0, there should be no difference. Also, I'm pretty sure I've seen that HMOVE works fine in the first few cycles of a scan line. More than ten cycles or so, and you start getting into the wierd stuff that has you seeing stars. Quote Link to comment Share on other sites More sharing options...
antron Posted June 15, 2005 Author Share Posted June 15, 2005 (edited) the emulator i am using (stella 1.4.2_cvs, linux) flips out. i'll see if i can get it stabe on my vcs. thanks wait, i think i have it now. this will rock if i can get those 3 cycles Edited June 15, 2005 by antron Quote Link to comment Share on other sites More sharing options...
+batari Posted June 15, 2005 Share Posted June 15, 2005 If you know you'll be on cycle 0, there should be no difference. Also, I'm pretty sure I've seen that HMOVE works fine in the first few cycles of a scan line. More than ten cycles or so, and you start getting into the wierd stuff that has you seeing stars. 874421[/snapback] I've found it also works when you call it a cycle or two early, like on cycle 74 or 75. Not sure why it works, maybe because the actual store will take place after cycle 76/0? Quote Link to comment Share on other sites More sharing options...
Bryan Posted June 15, 2005 Share Posted June 15, 2005 HMOVE can be called at any time, but it only has an effect on position during the H-blank period, and it only works as described when called right after a WSYNC. Read this for more info on how HSYNC works: http://www.atarihq.com/danb/files/TIA_HW_Notes.txt -Bry Quote Link to comment Share on other sites More sharing options...
antron Posted June 15, 2005 Author Share Posted June 15, 2005 OK it is stable now, with no WSYNC. But now I realize how nice they were before. Now I have to be aware of all page boundries. One of my two loops needs one extra cycle, and they are identical in cycle counts. WSYNC was cleaning it up for me. Oh well, I guess thats what absolute reads/writes to page one are for. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted June 15, 2005 Share Posted June 15, 2005 Oh well, I guess thats what absolute reads/writes to page one are for. Or careful data alignment. Quote Link to comment Share on other sites More sharing options...
vdub_bobby Posted June 15, 2005 Share Posted June 15, 2005 HMOVE can be called at any time, but it only has an effect on position during the H-blank period, and it only works as described when called right after a WSYNC. Read this for more info on how HSYNC works: http://www.atarihq.com/danb/files/TIA_HW_Notes.txt -Bry 874432[/snapback] That document is fantastic, and interesting, but a more practical document regarding HMOVE behavior is this one: http://www.biglist.com/lists/stella/archiv...4/msg00198.html Which lists the observed behavior of hitting HMOVE at every cycle during a scanline. Quote Link to comment Share on other sites More sharing options...
antron Posted June 15, 2005 Author Share Posted June 15, 2005 (edited) I decided to write to HMOVE on cycle 3, which is where it would have been had I called it immediately after WSYNC. Works great on the real thing too. The tightest kernel of my game is now complete. I'll post it for critique as soon as I get it well documented. Thanks all. edit: now I have changed it to cycle 0. still no problems. Edited September 22, 2005 by antron 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.