shots47s Posted June 25, 2017 Share Posted June 25, 2017 First off, thank you very much for creating INTYBASIC, it is a great tool for making programming Intellivision not so daunting. It is quite an impressive tool. I am very new to the language, and I am mainly trying to implement some pieces of things to learn how to do certain game elements. I encountered one that I haven't been able to crack. I was working with the 'landscape' Example program, and I thought it would be an interesting exercise to have a statically placed string at the top that would change with a collision of the sprite with the background. While I have the collision part working, I cannot figure out how to keep a character statically placed. This would be a useful procedure when wanting to display a score at the top or bottom while the game would have a scrolling background. I am sure that I am missing something quite simple, but if someone could point me in the right direction. I would greatly appreciate it. Obviously (at least to me) putting the character in a BACKTAB card doesn't work. I doubt this needs a MOB to complete, as that would be wasteful. Should I be writing something on the BORDER, I can't figure out how to do that. Thanks in advance and sorry if this is a stupid question. Quote Link to comment Share on other sites More sharing options...
carlsson Posted June 25, 2017 Share Posted June 25, 2017 As far as I know, if you scroll the screen, everything scrolls along. Thus you in theory have two solutions: use MOBs for static display which you already figured out, or use GRAM that are dynamically redrawn counter to the scroll direction to appear like they are in the same location. Whether there is a ready made example of the latter, I'm not sure. 2 Quote Link to comment Share on other sites More sharing options...
+nanochess Posted June 25, 2017 Share Posted June 25, 2017 The Intellivision hardware scrolling doesn't admit a "simple" way to put a fixed text into screen as it moves all the screen. The easiest is to use a MOB to draw something (there is 2x width) or have a status screen where you can show the stats you want. The hardest is to keep a redefining rotating GRAM to show a single digit in a fixed position. Glad you're liking IntyBASIC. 2 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted June 25, 2017 Share Posted June 25, 2017 As nanochess said, there is theoretically a way to do what you want, but it would fall into the "advanced" category as well as the "is it worth it" category. That's why Super Cobra uses the method of showing score and fuel the way it does: https://youtube.com/watch?v=Qybwmut6gBY Or don't use hardware scrolling and use preshifted GRAM tiles to fake the scrolling, there are a examples in the forum. Space Patrol uses fake scrolling to keep the score in place, since it never actually moves https://youtube.com/watch?v=oEF6x1m31RU Also not a simple thing to do. 2 Quote Link to comment Share on other sites More sharing options...
shots47s Posted June 25, 2017 Author Share Posted June 25, 2017 Thank you very much for the quick response, that all makes sense given the games I have played on the Intellivision. If I decide to take it on, I will certainly post my solution. Quote Link to comment Share on other sites More sharing options...
intvnut Posted June 26, 2017 Share Posted June 26, 2017 Bump'n'Jump addresses this for vertical scrolling by sliding the digits vertically. Likewise for River Raid and its stationary status display. For Space Patrol, I simply don't use hardware scrolling at all. I actually keep 8 separate "rotations" of the background graphics for the mountains, craters, rocks, etc. and spend a bunch of cycles blasting those into GRAM every frame. Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted June 26, 2017 Share Posted June 26, 2017 Bump'n'Jump addresses this for vertical scrolling by sliding the digits vertically. Likewise for River Raid and its stationary status display. For Space Patrol, I simply don't use hardware scrolling at all. I actually keep 8 separate "rotations" of the background graphics for the mountains, craters, rocks, etc. and spend a bunch of cycles blasting those into GRAM every frame. I forgot about those two. Bump N Jump's speedometer and the effect on the playfield is noticeable but River Raid is flawless, it would be interesting to view the GRAM across 8 frames to see how they balanced the fuel gauge, score and the river and the other objects. 1 Quote Link to comment Share on other sites More sharing options...
intvnut Posted June 26, 2017 Share Posted June 26, 2017 (edited) I forgot about those two. Bump N Jump's speedometer and the effect on the playfield is noticeable but River Raid is flawless, it would be interesting to view the GRAM across 8 frames to see how they balanced the fuel gauge, score and the river and the other objects. River Raid is flawless only because it devotes the entire right stripe of the screen to the status, limiting the river to the left 3/4ths of the display. :-) It was fun watching Peter Kaminski talking about how proud he was the day he figured out how to make that happen. He also complained that he got in trouble for making the Intellivision version more featureful than the Atari version, such as having the ability to fly over land as long as you don't hit a tree. I don't remember which year it was he spoke about it. Maybe it was CGE2K4? The MP3 file is here if someone wants to go listen: http://www.digitpress.com/cge/2k4_mp3/2k4_mp3.htm FWIW, there aren't many elements in River Raid that require updating GRAM. At most, I believe it just needs to update the picture associated with your plane as you bank left and right. The remaining graphics could be loaded statically into GRAM. Edited June 26, 2017 by intvnut 1 Quote Link to comment Share on other sites More sharing options...
mr_me Posted June 26, 2017 Share Posted June 26, 2017 Bump'n'Jump addresses this for vertical scrolling by sliding the digits vertically. Likewise for River Raid and its stationary status display. ... So if I understand this correctly, it should be possible in a game like Super Cobra, to have a row of characters stationary, while the background scrolls horizontally. Taking up 20 gram characters might be an issue; do you guys think the CPU time would be too significant and a problem? Games that scroll horizontally and vertically (eg. Auto Racing) might make it too complicated to keep background characters stationary, assuming you can't spare any sprites. Looking at Super Cobra, are they blacking out the top row of characters unnecessarily? I think there are a few games that black out a row or column when they don't need to. Quote Link to comment Share on other sites More sharing options...
shots47s Posted June 26, 2017 Author Share Posted June 26, 2017 River Patroller, it is a very impressive effect, as it doesn't seem to have any artifacts and scrolls very naturally, kudos. I was looking through the annotated assembly, and it is very impressive work. Quote Link to comment Share on other sites More sharing options...
mmarrero Posted June 26, 2017 Share Posted June 26, 2017 I attached code that does coarse horizontal scrolling in assembly that also skips the top row. The demo uses fine scrolling as an experiment (for example, instead of text, I'd display an energy bar, only needing to redefine 1 card). The demo also scrolls the screen "infinitely", which is unusual except in the game Sega Teddy Boy. The source also includes regular scroll code, but it doesn't read tile data to fill gaps (it's also untested...). All the asm routines could be improved a lot (they were experiments for my game, Princess Lydie). For vertical scrolling, my IntyMusic source code has an ASM coarse vertical scroll (up/down) routine that skips 2 bottom rows and the right column. ScrollDemo.bas 1 Quote Link to comment Share on other sites More sharing options...
shots47s Posted June 26, 2017 Author Share Posted June 26, 2017 Awesome, thanks, I am so glad I came to this forum, you all are so very helpful. Thank you for all of the great tips and responses, I really appreciate it. 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.