ZackAttack Posted January 6, 2018 Share Posted January 6, 2018 (edited) I think I've achieved horizontal playfield scrolling with via bus stuffing and the Strong-ARM driver. If you have a harmony cartridge please try it out. Current Version: Cherry-Tree-Scroll3.bin - 1/25/18 Optimized driver with lookup table and self modifying ARM code, fixed graphic data glitch Past Failures: Cherry-Tree-Scroll2.bin - 1/6/18 disables VBLANK during stuff detection because collision registers won't be set if VBLANK is enabled. Cherry-Tree-Scroll.bin Not supported in emulators yet. Here's what it looks like for those who don't have a harmony cart. Edited January 25, 2018 by ZackAttack 1 Quote Link to comment Share on other sites More sharing options...
iesposta Posted January 6, 2018 Share Posted January 6, 2018 Apart from the very first line, this is scrolling just like Scramble Arcade and Super Cobra Arcade. I thought with the power of BUS that I was going to see a 1/2 pixel scroll or 2 color clocks, instead of the usual 4 Color clock wide playfield pixel. Fine 1-pixel horizontal play field scrolling was shown to work, however only on normal CRT televisions. Ones like SONY WEGA that processed the signal a lot \would only scroll 3 or 2 of the 4 pixels. Further testing would be needed, but I think a 1/2 pixel scroll would work on most if not all displays. I tried to get 1/2 PF pixel scroll into Super Cobra Arcade and Mappy, but they are really pushing the display per scan line without having to worry about moving the screen a 1/2 playfield pixel by outputting an even more off-spec signal. Quote Link to comment Share on other sites More sharing options...
iesposta Posted January 6, 2018 Share Posted January 6, 2018 eshu did perfect 1-pixel horizontal playfield scrolling in this thread: http://atariage.com/forums/topic/224946-smooth-scrolling-playfield-i-think-ive-done-it/page-5?do=findComment&comment=2985911 At the end he did post a 2-pixel scroll, and it did work on my Sony WEGA, which did not like the 1-pixel scroll that worked so well on a Zenith. Quote Link to comment Share on other sites More sharing options...
TheHoboInYourRoom Posted January 6, 2018 Share Posted January 6, 2018 No dice, and it didn't really improve after ~20 minutes of warmup. Quote Link to comment Share on other sites More sharing options...
ZackAttack Posted January 7, 2018 Author Share Posted January 7, 2018 Apart from the very first line, this is scrolling just like Scramble Arcade and Super Cobra Arcade. I thought with the power of BUS that I was going to see a 1/2 pixel scroll or 2 color clocks, instead of the usual 4 Color clock wide playfield pixel. Fine 1-pixel horizontal play field scrolling was shown to work, however only on normal CRT televisions. Ones like SONY WEGA that processed the signal a lot \would only scroll 3 or 2 of the 4 pixels. Further testing would be needed, but I think a 1/2 pixel scroll would work on most if not all displays. I tried to get 1/2 PF pixel scroll into Super Cobra Arcade and Mappy, but they are really pushing the display per scan line without having to worry about moving the screen a 1/2 playfield pixel by outputting an even more off-spec signal. Thanks for testing. Sorry there's not really anything visible to indicate the power of bus stuffing here. This is going to be an engine for a fighting game so fine scrolling wouldn't really benefit it much. The next step will be to add in the sprites, that's when we'll get to see something that's only possible with bus stuffing. What's really cool about this demo is how little resources are consumed to achieve the scrolling playfield. I use less than one scanline worth of vblank to precalculate a few offsets and the rest of the calculations are done while the screen is being drawn. The ARM is hard at work shifting bits around in between servicing the 6507 bus. All that remaining vblank and overscan time should make it possible to have more expensive audio, physics, and AI. No dice, and it didn't really improve after ~20 minutes of warmup. cherry-00.jpg Funny story. After looking into this some I realized that the collision registers won't be set if vblank is enabled. So enabling vblank to hide the detection phase ended up completely breaking it. I disabled vblank and set the color of everything to black instead. Please give version 2 a try, it should work much better. Thanks! Quote Link to comment Share on other sites More sharing options...
iesposta Posted January 7, 2018 Share Posted January 7, 2018 Yes I agree it is all quite difficult. The Playfield is only a 20-bit register, which duplicated makes 40 wide pixels. It is easy to duplicate and mirror the left side. To make the right side different, the data has to be changed during the drawing of the scan line. The Playfield is broken into a 3 sections. A 4-byte nybble PF0, then 8-bytes going one way PF1, then 8-bytes going the opposite way PF2. So getting that mess to all move left, even at the Playfield's 4-wide pixel, is quite a challenge. Good job! 1 Quote Link to comment Share on other sites More sharing options...
MayDay Posted January 7, 2018 Share Posted January 7, 2018 I think version 2 is a success- to clarify, there is an odd little section between the two mountains, but otherwise it scrolls and displays correctly on my problematic Jr. I think that's just where you were probably filling in a bit of playfield data to make it an even number or something. 1 Quote Link to comment Share on other sites More sharing options...
ZackAttack Posted January 7, 2018 Author Share Posted January 7, 2018 Yeah, that's just bad image editing on my part. Quote Link to comment Share on other sites More sharing options...
Mountain King Posted January 7, 2018 Share Posted January 7, 2018 This worked for me as well. I love the tree. 2 Quote Link to comment Share on other sites More sharing options...
ZackAttack Posted January 8, 2018 Author Share Posted January 8, 2018 This worked for me as well. I love the tree. The tree is MayDay's masterpiece. It actually looked better before I mutilated it to fit with the graphics engine. I'm sure once I give him the final engine specs he'll come up with something even better. 1 Quote Link to comment Share on other sites More sharing options...
TheHoboInYourRoom Posted January 12, 2018 Share Posted January 12, 2018 Hmm. Version 2 crashes immediately for me and produces a video signal like as if the Atari were turned on without a cartridge. I suppose I'll clean the contacts and try loading the demo from a different SD card tomorrow. Quote Link to comment Share on other sites More sharing options...
ZackAttack Posted January 12, 2018 Author Share Posted January 12, 2018 Hmm. Version 2 crashes immediately for me and produces a video signal like as if the Atari were turned on without a cartridge. I suppose I'll clean the contacts and try loading the demo from a different SD card tomorrow. That's very surprising since the change from version 1 is so small. I don't really see anything that could have changed the timing enough to cause a crash. Sometimes I pull the SD card out of the computer too quickly without ejecting it and it corrupts the bin file and produces the same results. Could that have happened? Quote Link to comment Share on other sites More sharing options...
TheHoboInYourRoom Posted January 12, 2018 Share Posted January 12, 2018 I don't believe so. I plugged in the card, copied the file over, unmounted the card, and then unplugged it. Regardless, I'll get back to you later today. Quote Link to comment Share on other sites More sharing options...
TheHoboInYourRoom Posted January 13, 2018 Share Posted January 13, 2018 Hmm. Version 2 crashes immediately for me and produces a video signal like as if the Atari were turned on without a cartridge. I suppose I'll clean the contacts and try loading the demo from a different SD card tomorrow. No improvement, sadly. Quote Link to comment Share on other sites More sharing options...
ZackAttack Posted January 13, 2018 Author Share Posted January 13, 2018 No improvement, sadly. ok, thanks for trying. I'll see if I can improve the timing further. Quote Link to comment Share on other sites More sharing options...
ZackAttack Posted January 25, 2018 Author Share Posted January 25, 2018 Hmm. Version 2 crashes immediately for me and produces a video signal like as if the Atari were turned on without a cartridge. I suppose I'll clean the contacts and try loading the demo from a different SD card tomorrow. Can you try version 3? If that doesn't work can you try this test program too? strong-arm-optimized.bin Quote Link to comment Share on other sites More sharing options...
TheHoboInYourRoom Posted January 27, 2018 Share Posted January 27, 2018 It works! 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.