-
Content Count
13,060 -
Joined
-
Last visited
-
Days Won
21
Content Type
Profiles
Member Map
Forums
Blogs
Gallery
Calendar
Store
Everything posted by DZ-Jay
-
Get Papi ! A first Try with the Intellivision ! :)
DZ-Jay replied to Vetea's topic in Intellivision / Aquarius
Awesome! -
Get Papi ! A first Try with the Intellivision ! :)
DZ-Jay replied to Vetea's topic in Intellivision / Aquarius
There's only three colors in Papi: White, Red, Black. You shouldn't need four. Yes, SPRITE is easier, but you can do smooth movements in BACKTAB tiles by animating the cards. We call this "GRAM Cycling," and it's an animation technique to update the cards in GRAM in "real time". Like I said, you need two cards per enemy, to cover the transition through the boundary between two tiles (vertical or horizontal, only one applies at a time in your game). It's not too hard, just a bit more work than just moving a SPRITE. I'm just saying that it is something you could do if you need to. These are things that the Intellivision can do and techniques that make games utilize its full potential. There is really no need to constraint yourself with the limitations and techniques of other systems. -dZ. -
Get Papi ! A first Try with the Intellivision ! :)
DZ-Jay replied to Vetea's topic in Intellivision / Aquarius
A gun will be very cool. It'll make the game feel like Night Stalker (one of my favourites)! Where are your sprites committed? I see three for Papi, and four enemies. That's seven. You should have one more left for a bullet. If it really comes to that, your enemies are very simple and could be implemented as background cards smoothly animating between BACKTAB cards. It's not as simple as using a MOB, but it is effective. Since your movements are constrained to a two-dimensional grid, and enemies only move in straight lines at the center of a tile, then you only need 2 GRAM cards per enemy. That's OK, because your scene is very simple and does not require much GRAM. -dZ. -
And we resume our Week-End Freestyle Special: We start today with "Like A Child" by Noel.
-
Get Papi ! A first Try with the Intellivision ! :)
DZ-Jay replied to Vetea's topic in Intellivision / Aquarius
Just played a couple of times this morning ... I hope you are planning on adding more to the game-play because it gets kind of boring after a while and I just committed suicide. But I like this game, it has potential. -dZ. -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
No worries. For that simple screen, FG/BG works fine. Just so you know, some of the cards you are using exist in GROM. So if your scene was a lot more complex and required a lot more GRAM (which it doesn't seem it does now), the Color Stack could allow you to save some GRAM for more detail. As it is, it is not necessary. I just don't want you to be afraid of Color Stack. Many people are and miss out on some very cool things that can be done. -dZ. -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
LOL! you should have sent an IntyColor screenshot before. If that is all you wanted to do, that would have been brain-dead easy in Color Stack. There's only three background colors there. I thought you were aiming to do a much more complex thing. -dZ. -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
I'm glad I could help. Yes, the console is very cool and has some good features, specifically the 8 independent MOBs. Plus, I hear that IntyBASIC makes it very easy and fun to program. I completely agree. Physics and maths are very important, but the most important part is making it feel right for the environment and scale you are aiming. In fact, since I am so stupid at math and physics, I "faked" all my physics simulations in my game by just using tables and complex frame animations. I just tweaked them until they felt right. Not a single trigonometry computation was used -- I just didn't know how to do it. Even the sinuous path that the score numbers take as they float up when you pick up an item was done by drawing a sine wave on graph paper and writing the integer offsets on a table. ; ------------------------------------------------------------- ; Look-up table for ondulating path delta. ; ; NOTE: This table represents half the period of a sine wave, ; the second half is a reflection of the first. ; ------------------------------------------------------------- @@__curve_tbl: DECLE +1 ; . . . : # . . DECLE 0 ; . . . # . . . DECLE +1 ; . . . # . . . DECLE 0 ; . . # : . . . DECLE 0 ; . . # : . . . DECLE 0 ; . . # : . . . DECLE +1 ; . . # : . . . DECLE 0 ; . # . : . . . DECLE 0 ; . # . : . . . DECLE 0 ; . # . : . . . DECLE 0 ; . # . : . . . DECLE 0 ; . # . : . . . DECLE -1 ; . # . : . . . DECLE 0 ; . . # : . . . DECLE 0 ; . . # : . . . DECLE -1 ; . . # : . . . ENDP ; . . . # . . . The rest is just fancy animation (which apparently I am good at). I understand it all, no worries. -dZ. -
There are just too few home-brews. I want nanochess to release a brand new, completely original and fully tested game every week. Go!
-
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
Vetea, One last thing, please keep in mind that the color constants for the stack array is different from the color constants for the foreground colors, even if they are both for use in Color Stack mode. REM ------------------------------------------------------------------------- REM COLORS - Mode 0 (Color Stack). REM ------------------------------------------------------------------------- REM Stack REM ------------------------------------------------------------------------- REM Note: For use as the last 4 parameters used in the "mode 1" command. REM ------------------------------------------------------------------------- CONST STACK_BLACK = $0000 CONST STACK_BLUE = $0001 CONST STACK_RED = $0002 CONST STACK_TAN = $0003 CONST STACK_DARKGREEN = $0004 CONST STACK_GREEN = $0005 CONST STACK_YELLOW = $0006 CONST STACK_WHITE = $0007 CONST STACK_GREY = $0008 CONST STACK_CYAN = $0009 CONST STACK_ORANGE = $000A CONST STACK_BROWN = $000B CONST STACK_PINK = $000C CONST STACK_LIGHTBLUE = $000D CONST STACK_YELLOWGREEN = $000E CONST STACK_PURPLE = $000F REM ------------------------------------------------------------------------- REM Foreground. REM ------------------------------------------------------------------------- REM Notes: REM - For use with "peek/poke" commands that access BACKTAB. REM - Only one foreground colour permitted per background card. REM ------------------------------------------------------------------------- CONST CS_BLACK = $0000 CONST CS_BLUE = $0001 CONST CS_RED = $0002 CONST CS_TAN = $0003 CONST CS_DARKGREEN = $0004 CONST CS_GREEN = $0005 CONST CS_YELLOW = $0006 CONST CS_WHITE = $0007 CONST CS_GREY = $1000 CONST CS_CYAN = $1001 CONST CS_ORANGE = $1002 CONST CS_BROWN = $1003 CONST CS_PINK = $1004 CONST CS_LIGHTBLUE = $1005 CONST CS_YELLOWGREEN = $1006 CONST CS_PURPLE = $1007 Notice that the high colours for the CS_xxx constants (the ones for foreground) have the 0x1000 bit set, but not so for the STACK_xxx ones. This is because the BACKTAB word (like the MOB Attribute register) has the high colour bit separated. Also, remember that grey is not part of the basic, lower 8 colours, so it can only work as the background on tiles with GRAM cards. Yes, the Intellivision is very weird. Welcome! -dZ. -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
Get Papi is a good game and Vetea seems to be a very good veteran programmer. What I've seen of the game seems very stable and well designed, and the source code is elegant and well organized. He just needs a little help getting past the Intellivision idiosyncratic quirks. Since I already had my "baptism by fire" on Intellivision hardware quirks and limitations, I am only paying forward all the help I got from others. It's the least I can do. Plus, now that all that crap is in my head, taking up precious space, and making me forget phone numbers and other stuff, what else am I going to do with it? -dZ. -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
Yes, since you can only cycle the color stack array in order, using "reverse video" is the only way to "skip" cards. The Christmas Carol screen I posted earlier is full of those things. For instance, a couple of the letters in the title were actually complemented letter cards, where the 1s were 0s and vice versa, just to be able to reverse the background and foreground colours and allow me to skip ahead the stack to the next color. Hey, now worries! It is my pleasure. Bonne chance, -dZ. -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
OK, I started writing my message before you posted and just finished it, so I missed this comment. Let me respond to it. No worries, Vetea, it's all good, you are cool. The Intellivision is very weird. To advance the stack, you would do this: if value=18 then #backtab(i)= MUR + CS_ADVANCE However, that will advance from the first to the second color, which will make it white. Unfortunately, your color grey is on the third position in the stack array, so you need to advance it again on the next card. You can only advance the stack array in sequence. There are a few tricks you could do to fix this: You can set your color stack with grey second, but you still have the same problem with the next color, unless you have only two, in which case you alternate (like I mentioned in my previous post). you can use "reverse video" tricks to skip a stack array position. To use "reverse video," consider it like this: Imagine you have a solid color background with green (stack color #0), now you want to skip white (stack color #1) to paint with grey (stack color #2). You set the CS_ADVANCE flag of the card before the one you want to change, which will turn its background white (stack color #1). Instead of leaving the card blank (solid background color) you use a GRAM card with all 8x8 pixels set (solid foreground color) and use green as the foreground color, essentially painting over the background and completely hiding the white. You set the CS_ADVANCE flag of the next card, which is the one you wanted, and now it will turn its background to grey (stack color #2). After that you can do the whole thing again to switch back to green, or use blue (stack color #3), etc. Does this help? -dZ. -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
The first thing you must know is that in Color Stack Mode you do not set the background color for each individual card, you use the "color stack" array. Your original question suggests that you were not aware of this. First, you need to define your "color stack" array. Right now, you have this: MODE SCREEN_CS, CS_GREEN, GREEN, GREEN,GREEN Which means that it is all GREEN (actually, you should use STACK_GREEN for the stack array; CS_GREEN is for Color Stack foreground colors). For grey, you need to do something like this: MODE SCREEN_CS, STACK_GREEN, STACK_GREY, STACK_GREEN, STACK_GREY Notice that I alternate between green and grey. You could use more colours, but since you only specified grey and you are already using green, this is the easiest way to use the color stack. The reason is that you can only advance the array in sequence, so if you are in the first colour (green), and advance it to the second colour (grey), then advancing it once more will bring it back to green in the third colour, and so on. Then, if you want a BACKTAB tile to have a grey background, just set its "advance" flag by adding 0x2000 to its card value, or use the constant CS_ADVANCE. For example: CONST MUR = $0800+18*8 + CS_ADVANCE Notice that, as I explained in my previous post, that this will cause all BACKTAB tiles after this one to continue using grey as the background colour. Since you only want it to be in one card, then you must set the "advance" flag on the next card as well. What this will do is move the color stack array pointer to the third colour, which happens to be green again, like the first. This is why we made it green, grey, green, grey; so that you can just advance twice to get one card grey. If you have multiple cards using the MUR constant consecutively, then you only add the CS_ADVANCE constant to the first one you want green again. Does this make sense at all? -dZ. -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
Sorry, I misunderstood your issue. I will try to post an example in code of what you want to do and how to do it. -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
And yet another attempt to describe it. This may be the simplest description yet, since it only describes the Color Stack without code, just in simple words and examples. http://atariage.com/forums/topic/249565-more-colors-per-card/?p=3452443&do=findComment&comment=3452443 I hope it helps. dZ. -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
Here is a description presented via an example of the Christmas Carol title screen shown before. http://atariage.com/forums/topic/222570-intybasic-compiler-v05/page-6?do=findComment&comment=3060995 Like I said, I'll clean up all the descriptions and create an entry that walks through the Color Stack Mode in all it's gory details. dZ -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
No worries! Here's a description I wrote several years ago: http://atariage.com/forums/topic/176675-intellivision-tutorials/?p=2202128 It was for a newbie, so it includes a lot of basic stuff about Intellivision graphics, so please forgive me if some of it is just too basic. I promise to review it tonight and post it in a blog or something to make it available and more clear. In the meantime, I hope it helps. dZ. -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
That is a very good question, Vetea, so don't feel sorry for asking it. The Color Stack mode can be a bit confusing. I have explained this in the past, so rather than do it again, I'll try to find my earlier post and offer a link. If I can't find it, I'll create a topic for it, because it is a common question. dZ. -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
Like nanochess said, it is overflow code of the EXEC and will never change (it is ROM after all). The code is different between the Mattel stock EXEC.ROM and the "miniexec.rom" included with the SDK, but it is consistent to the ROM. It is just visual "noise," since it represents binary object code. In fact, "B-17 Bomber" famously uses it as the "FLAK" explosions, because they ran out of GRAM cards to make a custom one. dZ. -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
The GROM has the following cards: CARD 0 CARD 1 CARD 2 CARD 3 CARD 4 CARD 5 CARD 6 CARD 7 ........ ..##.... .##..##. ........ ...#.... ........ ...#.... ...#.... ........ ..##.... .##..##. ...#.#.. #######. .##...#. .#####.. ..#..... ........ ..##.... ........ ..#####. ##.#.... .##..#.. .##..... .#...... ........ ..##.... ........ ...#.#.. #######. ....#... ..###... ........ ........ ..##.... ........ ..#####. ...#.##. ...#.... .##..... ........ ........ ........ ........ ...#.#.. ##.#.##. ..#..##. .#####.. ........ ........ ..##.... ........ ........ #######. .#...##. ...#.... ........ ........ ........ ........ ........ ...#.... ........ ........ ........ CARD 8 CARD 9 CARD 10 CARD 11 CARD 12 CARD 13 CARD 14 CARD 15 ....###. .###.... ...#.... ........ ........ ........ ........ .......# ....#... ...#.... ..###... ...##... ........ ........ ........ ......#. ....#... ...#.... .##.##.. ...##... ........ ........ ........ .....#.. ....#... ...#.... ..###... .######. ........ .######. ........ ....#... ....#... ...#.... ...#.... ...##... ........ ........ ........ ...#.... ....#... ...#.... ........ ...##... ...##... ........ ...##... ..#..... ....#... ...#.... ........ ........ ...##... ........ ...##... .#...... ....###. .###.... ........ ........ ....#... ........ ........ #....... CARD 16 CARD 17 CARD 18 CARD 19 CARD 20 CARD 21 CARD 22 CARD 23 ........ ........ ........ ........ ........ ........ ........ ........ #######. ..###... .######. .######. .##..##. .######. .######. .######. ##...##. ...##... .##..##. .....##. .##..##. .##..... .##..... .....##. ##.#.##. ...##... .....##. ..####.. .##..##. .######. .######. ....##.. ##.#.##. ...##... .######. .....##. .######. .....##. .##..##. ...##... ##...##. ...##... .##..... .....##. .....##. .##..##. .##..##. ..##.... #######. .######. .######. .######. .....##. .######. .######. ..##.... ........ ........ ........ ........ ........ ........ ........ ........ CARD 24 CARD 25 CARD 26 CARD 27 CARD 28 CARD 29 CARD 30 CARD 31 ........ ........ ........ ........ ........ ........ ........ .######. .######. .######. ........ ........ .....##. ........ .##..... .##..##. .##..##. .##..##. ...##... ...##... ...##... .######. ...##... .....##. ..####.. .##..##. ...##... ...##... .##..... ........ .....##. ...####. .##..##. .######. ........ ........ ...##... .######. ...##... ...##... .##..##. .....##. ...##... ...##... .....##. ........ .##..... ........ .######. .######. ...##... ...##... ........ ........ ........ ...##... ........ ........ ........ ....#... ........ ........ ........ ........ CARD 32 CARD 33 CARD 34 CARD 35 CARD 36 CARD 37 CARD 38 CARD 39 #######. .######. .######. .######. .#####.. .######. .######. .######. #.....#. .##..##. .##..##. .##..##. .##..##. .##..... .##..... .##..##. #.###.#. .##..##. .##..##. .##..... .##..##. .##..... .##..... .##..... #.#.#.#. .##..##. .#####.. .##..... .##..##. .#####.. .#####.. .##.###. #.#####. .######. .##..##. .##..... .##..##. .##..... .##..... .##..##. #....... .##..##. .##..##. .##..##. .##..##. .##..... .##..... .##..##. #######. .##..##. .######. .######. .#####.. .######. .##..... .######. ........ ........ ........ ........ ........ ........ ........ ........ CARD 40 CARD 41 CARD 42 CARD 43 CARD 44 CARD 45 CARD 46 CARD 47 .##..##. .######. .....##. .##..##. .##..... #.....#. .#...##. .######. .##..##. ...##... .....##. .##..##. .##..... ##...##. .##..##. .##..##. .##..##. ...##... .....##. .##.##.. .##..... ###.###. .###.##. .##..##. .######. ...##... .....##. .####... .##..... #######. .######. .##..##. .##..##. ...##... .##..##. .##..##. .##..... ##.#.##. .##.###. .##..##. .##..##. ...##... .##..##. .##..##. .##..... ##.#.##. .##..##. .##..##. .##..##. .######. .######. .##..##. .######. ##...##. .##...#. .######. ........ ........ ........ ........ ........ ........ ........ ........ CARD 48 CARD 49 CARD 50 CARD 51 CARD 52 CARD 53 CARD 54 CARD 55 .######. .######. .######. .######. .######. .##..##. .##..##. ##...##. .##..##. .##..##. .##..##. .##..##. ...##... .##..##. .##..##. ##...##. .##..##. .##..##. .##..##. .##..... ...##... .##..##. .##..##. ##.#.##. .##..##. .##..##. .##..##. .######. ...##... .##..##. ..#..#.. ##.#.##. .######. .##..##. .#####.. .....##. ...##... .##..##. ..####.. #######. .##..... .##.###. .##..##. .##..##. ...##... .##..##. ...##... .##.##.. .##..... .######. .##..##. .######. ...##... .######. ...##... .##.##.. ........ ......## ........ ........ ........ ........ ........ ........ CARD 56 CARD 57 CARD 58 CARD 59 CARD 60 CARD 61 CARD 62 CARD 63 .##..##. .##..##. .######. ...####. #....... .####... ...#.... ....#... .##..##. .##..##. .....##. ...##... .#...... ...##... ..###... ...#.... ..####.. .##..##. ....##.. ...##... ..#..... ...##... .#.#.#.. ..#..... ...##... .##..##. ...##... ...##... ...#.... ...##... #..#..#. .######. ..####.. .######. ..##.... ...##... ....#... ...##... ...#.... ..#..... .##..##. ...##... .##..... ...##... .....#.. ...##... ...#.... ...#.... .##..##. ...##... .######. ...##... ......#. ...##... ...#.... ....#... ........ ........ ........ ...####. .......# .####... ........ ........ CARD 64 CARD 65 CARD 66 CARD 67 CARD 68 CARD 69 CARD 70 CARD 71 ....#... ........ .###.... ........ ....###. ........ ........ ........ .....#.. ........ ..##.... ........ ....##.. ........ ..#####. ........ ......#. .#####.. ..#####. .######. .#####.. .######. ..##.... .######. ........ ....##.. ..##.##. .##..##. .##.##.. .##..##. .#####.. .##.##.. ........ .#####.. ..##.##. .##..... .##.##.. .######. ..##.... .##.##.. ........ .##.##.. ..##.##. .##..... .##.##.. .##..... ..##.... .#####.. ........ .######. ..#####. .######. .#####.. .######. ..##.... ....##.. ........ ........ ........ ........ ........ ........ ........ .#####.. CARD 72 CARD 73 CARD 74 CARD 75 CARD 76 CARD 77 CARD 78 CARD 79 .##..... ...##... .....##. .##..... ..###... ........ ........ ........ .##..... ........ ........ .##..... ...##... ........ ........ ........ .#####.. ..###... .....##. .##..##. ...##... #######. .######. .######. .##.##.. ...##... .....##. .##.##.. ...##... ##.#.##. ..##.##. .##..##. .##.##.. ...##... .....##. .####... ...##... ##.#.##. ..##.##. .##..##. .##.##.. ...##... ..##.##. .##..##. ...##... ##.#.##. ..##.##. .##..##. .##.###. .######. ..##.##. .##..##. .######. ##.#.##. ..##.##. .######. ........ ........ ..#####. ........ ........ ........ ........ ........ CARD 80 CARD 81 CARD 82 CARD 83 CARD 84 CARD 85 CARD 86 CARD 87 ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ..##.... ........ ........ ........ .######. .#####.. .######. .######. .######. .##.##.. .##..##. ##.#.##. ..##.##. .##.##.. ..##.##. .##..... ..##.... .##.##.. .##..##. ##.#.##. ..##.##. .##.##.. ..##.... .######. ..##.... .##.##.. .##..##. ##.#.##. ..#####. .#####.. ..##.... .....##. ..##.... .##.##.. ..####.. #######. ..##.... ....##.. ..##.... .######. ..#####. .######. ...##... .##.##.. ..##.... ....###. ........ ........ ........ ........ ........ ........ CARD 88 CARD 89 CARD 90 CARD 91 CARD 92 CARD 93 CARD 94 CARD 95 ........ ........ ........ ....###. ...##... .###.... ........ ######## ........ ........ ........ ....#... ...##... ...#.... ........ ######## .##..##. .###.##. .######. ....#... ...##... ...#.... ........ ######## ..####.. ..##.##. .....##. ..##.... ...##... ....##.. .####... ######## ...##... ..##.##. ...##... ....#... ...##... ...#.... ...####. ######## ..####.. ..#####. .##..... ....#... ...##... ...#.... ........ ######## .##..##. .....##. .######. ....###. ...##... .###.... ........ ######## ........ ..#####. ........ ........ ...##... ........ ........ ######## CARD 96 CARD 97 CARD 98 CARD 99 CARD 100 CARD 101 CARD 102 CARD 103 ........ ........ ######## ######## ........ ........ ######## ######## ........ ........ ...##### #####... ........ ........ ######## ######## ........ ........ ......## ##...... .......# #....... ######## ######## ........ ........ ........ ........ ....#### ####.... .####### #######. ........ ........ ........ ........ .####### #######. ....#### ####.... ......## ##...... ........ ........ ######## ######## .......# #....... ...##### #####... ........ ........ ######## ######## ........ ........ ######## ######## ........ ........ ######## ######## ........ ........ CARD 104 CARD 105 CARD 106 CARD 107 CARD 108 CARD 109 CARD 110 CARD 111 .....### ###..... ######## ######## ........ ........ ######## ######## ..###### ######.. ######## ######## ........ ........ ..###### ######.. ######## ######## ######## ######## ........ ........ ....#### ####.... ######## ######## ######## ######## ........ ........ ......## ##...... ######## ######## ######## ######## ......## ##...... ........ ........ ######## ######## ######## ######## ....#### ####.... ........ ........ ######## ######## ..###### ######.. ..###### ######.. ........ ........ ######## ######## .....### ###..... ######## ######## ........ ........ CARD 112 CARD 113 CARD 114 CARD 115 CARD 116 CARD 117 CARD 118 CARD 119 ......## ##...... ######## ######## .......# #....... ######## ######## ....#### ####.... ######## ######## ......## ##...... .####### #######. ..###### ######.. ######## ######## .....### ###..... ..###### ######.. ######## ######## ######## ######## ....#### ####.... ...##### #####... ######## ######## ######## ######## ...##### #####... ....#### ####.... ######## ######## ..###### ######.. ..###### ######.. .....### ###..... ######## ######## ....#### ####.... .####### #######. ......## ##...... ######## ######## ......## ##...... ######## ######## .......# #....... CARD 120 CARD 121 CARD 122 CARD 123 CARD 124 CARD 125 CARD 126 CARD 127 ........ ........ ....#### ####.... ...##### #####... ######## ######## ........ ........ .....### ###..... ..###### ######.. ######## ######## ........ ........ ......## ##...... .####### #######. ######## ######## ........ ........ .......# #....... ######## ######## ######## ######## .......# #....... ........ ........ ######## ######## ######## ######## ......## ##...... ........ ........ ######## ######## .####### #######. .....### ###..... ........ ........ ######## ######## ..###### ######.. ....#### ####.... ........ ........ ######## ######## ...##### #####... CARD 128 CARD 129 CARD 130 CARD 131 CARD 132 CARD 133 CARD 134 CARD 135 ...##### #####... ######## ######## .......# #....... ....#### ####.... ...##### #####... ######## ######## .......# #....... ....#### ####.... ..###### ######.. .####### #######. ......## ##...... .....### ###..... ..###### ######.. .####### #######. ......## ##...... .....### ###..... .####### #######. ..###### ######.. .....### ###..... ......## ##...... .####### #######. ..###### ######.. .....### ###..... ......## ##...... ######## ######## ...##### #####... ....#### ####.... .......# #....... ######## ######## ...##### #####... ....#### ####.... .......# #....... CARD 136 CARD 137 CARD 138 CARD 139 CARD 140 CARD 141 CARD 142 CARD 143 ..###### ######.. ######## ######## .....### ###..... ..###### ######.. ..###### ######.. ######## ######## ....#### ####.... ...##### #####... .####### #######. ######## ######## ....#### ####.... ...##### #####... .####### #######. .####### #######. ....#### ####.... ...##### #####... .####### #######. .####### #######. ...##### #####... ....#### ####.... ######## ######## .####### #######. ...##### #####... ....#### ####.... ######## ######## ..###### ######.. ...##### #####... ....#### ####.... ######## ######## ..###### ######.. ..###### ######.. .....### ###..... CARD 144 CARD 145 CARD 146 CARD 147 CARD 148 CARD 149 CARD 150 CARD 151 .......# #....... .....### ###..... ........ ........ ........ ........ .......# #....... .....### ###..... ........ ........ ........ ........ .......# #....... ......## ##...... ........ ........ ........ ........ ......## ##...... ......## ##...... ........ ........ ........ ........ ......## ##...... ......## ##...... ........ ........ ....#### ####.... ......## ##...... .......# #....... ........ ........ ######## ######## .....### ###..... .......# #....... ....#### ####.... ######## ######## .....### ###..... .......# #....... ######## ######## ######## ######## CARD 152 CARD 153 CARD 154 CARD 155 CARD 156 CARD 157 CARD 158 CARD 159 ........ ........ ....#### ####.... .......# #....... .....### ###..... ........ ........ ######## ######## .......# #....... .....### ###..... ....#### ####.... ######## ######## .......# #....... .....### ###..... ######## ######## ######## ######## .......# #....... .....### ###..... ######## ######## ######## ######## ......## ##...... ....#### ####.... ######## ######## ######## ######## ......## ##...... ....#### ####.... ######## ######## ######## ######## ......## ##...... ....#### ####.... ######## ######## ######## ######## ......## ##...... ....#### ####.... CARD 160 CARD 161 CARD 162 CARD 163 CARD 164 CARD 165 CARD 166 CARD 167 ...##### #####... .####### #######. ....#### ####.... ........ ........ ...##### #####... .####### #######. ....#### ####.... ........ ........ ...##### #####... .####### #######. ....#### ####.... ........ ........ ...##### #####... .####### #######. ....#### ####.... ........ ........ ..###### ######.. ######## ######## ....#### ####.... ........ ........ ..###### ######.. ######## ######## ....#### ####.... ........ ........ ..###### ######.. ######## ######## ....#### ####.... ....#### ####.... ..###### ######.. ######## ######## ....#### ####.... ####.... ....#### CARD 168 CARD 169 CARD 170 CARD 171 CARD 172 CARD 173 CARD 174 CARD 175 ........ ........ ........ ........ ....#### ####.... ........ ........ ........ ........ ........ ........ ####.... ....#### ........ ........ ........ ........ ....#### ####.... ........ ........ ........ ........ ........ ........ ####.... ....#### ........ ........ ........ ........ ....#### ####.... ........ ........ ........ ........ ........ ........ ####.... ....#### ........ ........ ........ ........ ......## ##...... ........ ........ ........ ........ ........ ........ ...###.. ..###... ........ ........ ........ ........ ........ ........ ###..... .....### CARD 176 CARD 177 CARD 178 CARD 179 CARD 180 CARD 181 CARD 182 CARD 183 ........ ........ .....### ###..... ........ ........ ......## ##...... ........ ........ ..###... ...###.. ........ ........ ....##.. ..##.... .......# #....... ##...... ......## ........ ........ ..##.... ....##.. ....###. .###.... ........ ........ ........ ........ ##...... ......## .###.... ....###. ........ ........ ......## ##...... ........ ........ #....... .......# ........ ........ ....##.. ..##.... ........ ........ ........ ........ ........ ........ ..##.... ....##.. ........ ........ ........ ........ ........ ........ ##...... ......## ........ ........ CARD 184 CARD 185 CARD 186 CARD 187 CARD 188 CARD 189 CARD 190 CARD 191 ...#.... ....#... ........ ........ ##...... ......## ..##.... ....##.. ..#..... .....#.. ........ ........ ##...... ......## ..##.... ....##.. .#...... ......#. ........ ........ ##...... ......## ..##.... ....##.. #....... .......# ........ ........ ##...... ......## ..##.... ....##.. ........ ........ #....... .......# ##...... ......## ..##.... ....##.. ........ ........ .#...... ......#. ##...... ......## ..##.... ....##.. ........ ........ ..#..... .....#.. ##...... ......## ..##.... ....##.. ........ ........ ...#.... ....#... ##...... ......## ..##.... ....##.. CARD 192 CARD 193 CARD 194 CARD 195 CARD 196 CARD 197 CARD 198 CARD 199 #....... .......# ...#.... ....#... ####.... ....#### ........ ........ #....... .......# ...#.... ....#... ####.... ....#### ........ ........ #....... .......# ...#.... ....#... ####.... ....#### ........ ........ #....... .......# ...#.... ....#... ####.... ....#### ........ ........ #....... .......# ...#.... ....#... ........ ........ ####.... ....#### #....... .......# ...#.... ....#... ........ ........ ####.... ....#### #....... .......# ...#.... ....#... ........ ........ ####.... ....#### #....... .......# ...#.... ....#... ........ ........ ####.... ....#### CARD 200 CARD 201 CARD 202 CARD 203 CARD 204 CARD 205 CARD 206 CARD 207 ######## ........ ........ ........ ######## ........ ........ ........ ######## ........ ........ ........ ........ ........ ........ ........ ........ ######## ........ ........ ........ ........ ........ ........ ........ ######## ........ ........ ........ ######## ........ ........ ........ ........ ######## ........ ........ ........ ######## ........ ........ ........ ######## ........ ........ ........ ........ ........ ........ ........ ........ ######## ........ ........ ........ ........ ........ ........ ........ ######## ........ ........ ........ ######## CARD 208 CARD 209 CARD 210 CARD 211 CARD 212 CARD 213 CARD 214 CARD 215 ######## ........ .######. ........ ........ .#..##.# .##.##.. .##...## ######## ........ .######. ........ ######## .##....# .##..#.# .###..## ######## ........ .######. ........ ######## .###.#.. .##...## ..#..... ######## ........ .######. ######## ######## .###.#.. .###.#.. ..#..... ........ ######## .######. ######## ######## .##..#.# .###..#. ..#..... ........ ######## .######. ........ ######## .##.##.. .##.#### ..#..... ........ ######## .######. ........ ######## ..#..... .##.###. ..#..... ........ ######## .######. ........ ........ .#...#.# .##.#..# ..#..... CARD 216 CARD 217 CARD 218 CARD 219 CARD 220 CARD 221 CARD 222 CARD 223 ..#..... .###..## ..#..... .###.#.. ........ #..#...# ....#... #.....#. .###.... ........ ..##...# .###.#.. #.....#. ....#... ..#..... ..#.#... .###..#. .#....## ..###..# .##..#.# #.#.###. .#....#. #...#.#. ....#.#. .##..#.# .##.#### ..###... .##.##.. ....#... ..#...#. ..#...## ..#..... .###..## .###.... ..##.#.. ........ ##..#..# ......#. ......#. #.#.###. .##..#.# .###..#. ..#..... ######## ...#.... #.....#. ......#. ..#..... .##.###. ..#..... .#..##.# ######## ...#.#.. ...##... ..#..... #...#.#. .###.#.. .#...... .##....# ..#..#.. #...#... #...#..# #.###... #.#.#.#. CARD 224 CARD 225 CARD 226 CARD 227 CARD 228 CARD 229 CARD 230 CARD 231 #..#..#. #.....#. #.#.###. ....#.#. ...#.... ..#.##.. #.###... ...#.#.. ..#..... #...#... ....##.. .#..#.#. ..#.##.. ....###. .....#.. .##..... #...#.#. ###.#.#. ..#..### ##.#...# .....#.# ........ ##...... ....##.. #.###... #...#.#. ...#...# #.###... .#....#. ..##.#.. ##....## ......#. #.....#. #.#.#.#. ...##### .....#.. .##...#. .....#.. .#....#. #.###... #...#... #.#.###. ........ .#.#...# .##...#. ........ .#..##.# ........ ..#...#. #...#... ..#.#.## .###..#. .#####.. ##....## ##.#...# .....#.. #.###... .##.#... ..##..#. .##.#.#. ####.... #..##... ##...... ........ CARD 232 CARD 233 CARD 234 CARD 235 CARD 236 CARD 237 CARD 238 CARD 239 ##.###.. ........ .##..... .....#.. .#..#### #.#....# .###...# ......## .#.##..# ##.###.. ....##.. ........ .#....## #.###..# ..#.#..# .#.....# ..#.#..# .#.##..# .....#.# ##.###.. .#.##### ######## ......## .##.#..# ....#.#. ..#.#..# #...#..# .#.##..# ....#.#. .....#.. .###...# .#####.# .#.##..# .....#.# .....#.. ..#.#..# ...##.#. ....##.# ....#### ####.... ....#..# ..#..... ....#.#. ....###. #.####.. #.###... .##.#..# ..#.##.. ....#... ...#.#.# #.###... ..#..... ###.#... ....#... ...#.... ...#.##. .....#.. ...#.#.. ........ ..#..##. #.#..#.# ...#.... ..#...## .#.##.## CARD 240 CARD 241 CARD 242 CARD 243 CARD 244 CARD 245 CARD 246 CARD 247 ....#..# .#####.# ..#.##.. #.###.#. ..#.###. #.#....# ....#..# .####..# ...#.... .#.#.##. ....##.. ###.#### .....### ...##..# ...##.#. .###..#. #.####.. ...#.... .#.##.## #.#..... .#.##.## .##.#..# #.###... .##.#..# ###.#... ..#.##.. ....#..# #..#...# ....#..# .#####.# ....#... .#####.# #.#..#.# .....#.. ....##.# .##.#..# ....#.#. ####.... #.####.. ####.... #.#....# .##.#.#. #.####.. .#.#.... #.####.. ..#.##.. ###.#... ..#.##.. #.###... .#####.# ###.#... ...#..#. ###.#... .....##. #.#..#.# .....### .....#.. ####.... #.#..#.# .##...#. #.#..#.# .#.##.## #.#....# .#....#. CARD 248 CARD 249 CARD 250 CARD 251 CARD 252 CARD 253 CARD 254 CARD 255 .###..#. .#####.. #.#..... ....##.. ..#.##.. ......## .#..#### #..##... ...#.... ####.... .##.#... .......# .....#.. ##.##..# .#....## .###.#.# ..#.##.. ..#.##.. .#####.. #.##.#.# ..####.. .#..#.## .####.#. #....#.# ....#### .....#.# ####.... #.##.### ....#... ##.##..# .#.#..## ###..#.# #.####.. #.##..## ..#.##.. ##...... #...#.## #...#.## #.#.#### ...#.#.. ###.#... #.####.. .....#.# .##..... #.###.## #.###.## .#####.. .##..#.# #.##...# ###.#... #.##.... .#####.. ........ ##...... ####.... #.##.### .##....# #.##.#.# ...#.... ####.... .....#.. ##.##..# ..#..#.. ........ grom.txt You use it just like you use GRAM, except that you do not have to copy the graphics into memory. In other words, you set the index of the GROM card that you want in the BACKTAB word (or MOB Attribute register). In the BACKTAB word, bit #11 sets the index to be in GRAM (1) or GROM (0). This means that the index is 0x00 .. 0xFF for GROM and add 0x800 for GRAM (0x800 .. 0x83F). In the "constants.bas" file, you add the constant GRAM to the card number for GRAM cards, or use the BG00 .. BG63 constants to select on of the 64 GRAM cards. For GROM cards, you just use the card index number. That's it. This information is better explained in the "stic.txt" document in the "Documents/Tech" folder of the SDK installation. Let us know if you need additional help. Good luck! -dZ. -
GET PAPI ! Collision TILE/SPRITE in 8 directions problem.
DZ-Jay replied to Vetea's topic in Intellivision Programming
You can also use the color constants in the "constants.bas" file: REM ------------------------------------------------------------------------- REM Foreground. REM ------------------------------------------------------------------------- REM Notes: REM - For use with "peek/poke" commands that access BACKTAB. REM - Only one foreground colour permitted per background card. REM ------------------------------------------------------------------------- CONST CS_BLACK = $0000 CONST CS_BLUE = $0001 CONST CS_RED = $0002 CONST CS_TAN = $0003 CONST CS_DARKGREEN = $0004 CONST CS_GREEN = $0005 CONST CS_YELLOW = $0006 CONST CS_WHITE = $0007 CONST CS_GREY = $1000 CONST CS_CYAN = $1001 CONST CS_ORANGE = $1002 CONST CS_BROWN = $1003 CONST CS_PINK = $1004 CONST CS_LIGHTBLUE = $1005 CONST CS_YELLOWGREEN = $1006 CONST CS_PURPLE = $1007 CONST CS_CARD_DATA_MASK = $07F8 ' Mask to get the background card's data. CONST CS_ADVANCE = $2000 ' Advance the colour stack by one position. nanochess has the tendency of using "magic numbers" instead of meaningful constants, and this permeated in his book. You may want to review the "constants.bas" file in the "lib" folder of the SDK to see what else is there, and ask any questions that you may have. Also, do not dismiss the GROM so quickly. Most people think it's just fonts (which I do not use, by the way), but it is full of interesting geometric and graphical elements. Sure, if you use them to draw shapes, then it will all look like silly "programmer art" patterns, but they are very useful for composing complex scenes. For example, the following scene which looks somewhat organic and freehand, uses many GROM shapes to leave the GRAM for more intricate detail. Take a look at the "A" in "Carol" and the "T" in "Presents." Those little serif "tails" on the bottom strokes are actually the apostrophe ( ' ) character of GROM. The solid areas are also full of the "solid 8x8 block" ($5F) in GROM, which is not available in FG/BG mode, and allows me to conveniently advance the stack colors in "reverse video" during long solid stretches. If you align your artwork to card boundaries, and with some creative thinking, you can use GROM effectively to take the place of what would normally be custom cards in GRAM. This is why I love Color Stack mode. -dZ. -
Get Papi ! A first Try with the Intellivision ! :)
DZ-Jay replied to Vetea's topic in Intellivision / Aquarius
P.S. I recommend we follow up this discussion in the Programming Forum. The programmers typically hang out over there, and the people in this area typically do not care about technical details. -dZ. -
Get Papi ! A first Try with the Intellivision ! :)
DZ-Jay replied to Vetea's topic in Intellivision / Aquarius
No worries. If you'd like, you can post in French and I can try using Google Translate to try to understand it. Both modes can display 16 colors, but here are some general restrictions: Color Stack Mode (Mode #0 in IntyBASIC): Supports 64 GRAM cards or all 320 GROM cards. When using GROM cards, you can specify one of the first 8 colors in the palette as foreground. When using GRAM cards, all 16 colors are available. The color "stack" is a 4-value circular array that determines the background color of cards. It starts at index #0 and advances every time you set the "Advance Color Stack" flag on the BACKTAB word. The BACKTAB is treated as a continues string of tiles (in the order of their memory address). Setting the "Advance Color Stack" flag on a card, updates the background color of all the following cards in the BACKTAB as well, until you set it on another card again. Thus, it works like a "flood fill" where the background color continues on all tiles until changed again. Foreground/Background Mode (Mode #1 in IntyBASIC): Supports 64 GRAM cards, but only the first 64 cards of GROM, which are basically the standard font character set for letters, numbers, and symbols. The foreground colour can be one of the first 8 in the palette, regardless of GRAM or GROM. The background colour can be any of the 16 colours, regardless of GRAM or GROM. Both modes have their strengths and compromises, and both can be versatile in their own way when used expertly. Most people starting use FG/BG Mode because it is much simpler to work. However, if you get to know the Color Stack Mode, you'll discover that it can be very, very powerful indeed, in spite of what seem to be serious limitations. Personally, I use Color Stack mode mostly. I find that the ability to use all the graphical GROM cards (which include the solid 8x8 block, and many geometric figures) allows for more interesting detail than just 64 custom GRAM cards. With some clever tricks and a hard work you can exploit the Color Stack to make very colourful pictures. Finally, you can find some technical information on the screen modes in the documentation included with the IntyBASIC SDK. Take a look at the file "stick.txt" in the "Documents/Tech" folder. -dZ. -
Get Papi ! A first Try with the Intellivision ! :)
DZ-Jay replied to Vetea's topic in Intellivision / Aquarius
It works great. If I may make a suggestion is to ease the collision detection by one or two pixels when Papi is between walls. Since your corridors are exactly the same size of Papi (8 pixels), it because a bit frustrating having to aim with precision to get him positioned in the exact position to enter the corridor. This frustration is made worse by the fact that Papi stops moving when you change direction to face the wall. You should try to let Papi "cut the corner" when he is close enough to the entrance of the corridor. -dZ.
