Jump to content
IGNORED

[INTYBASIC] - Help displaying constantly positioned text during scrolling


Recommended Posts

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.

 

 

Link to comment
Share on other sites

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.

  • Like 2
Link to comment
Share on other sites

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. :)

  • Like 2
Link to comment
Share on other sites

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.

  • Like 2
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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 by intvnut
  • Like 1
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

 

post-35249-0-49395100-1498483900.gif

 

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

  • Like 1
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...