Jump to content

catsfolly

Members
  • Posts

    747
  • Joined

  • Last visited

Everything posted by catsfolly

  1. This sounds pretty accurate, as far as I can remember. I vaguely remember Mattel had this huge Intellivision Graphics development system. It looked like it was designed by someone with a relative in the "light-up push button" business, because it used light up push buttons for everything. To create a new gram card, the user selected the card, and then pushed the buttons on an 8 by 8 push button grid to set the gram card pattern. Once they had defined a gram card, they put it in backtab by pressing the buttons on a 20 by 12 light-up button grid, with one button representing each backtab position. A monitor above the control panel showed the simulated Intellivision screen. As the number of Game Developers at Mattel increased, it became harder and harder to get time on this graphics system (I think there was only one of them). So finally Eric Wells wrote his "Mr. Color" graphics tool that ran on the Intellivision, and most people used that to develop Intellivision graphics. Catsfolly
  2. On, the other hand, sometimes it is good to walk before you try to run... I played Worm War 1 quite a bit when it first came out, and I thought it was a simple, fun, elegant game. (At the time I was envious of people who were allowed to design games around the limitations of the 2600, while at M Network we had to work on ports of Intellivision games). A version of Worm War 1 that was as close as possible to the original would be a valuable addition to the Intellivision game library,IMHO. Games like "Galaxian", "Galaga", "Gorf", "Phoenix", etc are arguably improvements and enhancements on the basic game play of "Space Invaders". But sometimes, I just want to play "Space Invaders". The game looks good so far. The next step (I guess) would be to slow down the scrolling effect, and sync up the vertical motion of the sprites with the scrolling. Catsfolly
  3. I'm not sure I follow the logic. Could something like this work? ON (ROUND-1) GOTO DO_R1, DO_R2. DO_R3 D0_R3: IF WTHREEHIT=0 THEN GOSUB WORMTHREE DO_R2: IF WTWOHIT=0 THEN GOSUB WORMTWO DO_R1: IF WONEHIT=0 THEN GOSUB WORMONE IF ROUND=1 AND WONEHIT=1 THEN ROUND=2:WXONE=10:WYONE=10:WXTWO=20:WYTWO=20:WONEHIT=0 IF ROUND=2 AND WORMHIT=3 THEN ROUND=3:WXONE=10:WYONE=10:WXTWO=20:WYTWO=20:WXTHREE=30:WYTHREE=30:WONEHIT=0:WTWOHIT=0 Catsfolly
  4. Some thoughts on Worm War 1 for Intellivision. 1. The easiest way to do it - Use real scrolling to move the background. Use one sprite for the timer. This leaves 2 sprites for the player and the shot, and 5 sprites for the worms and the refueling stations. Show the score occasionally, between rounds. (advantages - this way is easiest, allows colorful scrolling bricks). (disadvantages - score isn't on screen all the time). 2. Next easiest way. Fake the scrolling with gram cards. Keep the score and timer on screen in backtab. This leaves 2 sprites for the player and the shot, and 6 sprites for the worms and the refueling stations. (advantages - score and timer always on screen) (disadvantages - fake scrolling is more work than real scrolling. Background blocks are limited to 2 colors.) 3. Hard way. Use real scrolling to move the background. Create custom gram characters for the score and the timer that are "counter-scrolled" so they don't move on the screen. This leaves 2 sprites for the player and the shot, and 6 sprites for the worms and the refueling stations. (advantages - the score and timer are always on screen, allows colorful scrolling bricks). (disadvantages - a lot of processor time is spent creating custom cards for the score and timer and copying them to gram. score and timer require 2 vertical cards of height). Catsfolly
  5. I think you want an "or" rather than an "and". if x>220 OR x<35 then ... I would also recommend adding some parentheses just for clarity: if (x>220) OR (x<35) then... I like the flames that chase you though. Looks cool! Catsfolly
  6. That's strange. It seems to work fine here (I just recompiled it and ran it...) 1. What platform are you running on? WIndows? Mac? 2. Are you using the arrow keys on the keyboard? 3. Can you run any other Intellivision games? 4. Did you click on the window running the game so it receives the keyboard inputs? 5. Have your tried FreeWheel's hand controller test program? http://atariage.com/forums/topic/257396-hand-controller-test-program-in-intybasic/ Catsfolly
  7. Cool! It's pretty playable for an early prototype version! I like the animation sequence for flames blowing up! The game is pretty easy to understand. Here are some random notes and first impressions: 1. Why is the screen filled with storm trooper helmets? 2. I know that technically blue is the hottest flame color, but I interpreted it as water to pick up. To me yellow and orange and red look hot, but blue looks cool (temperaturewise). 3. If you run out of water there is nothing you can do. 4. It's great that I can play it late at night without disturbing my neighbors, but some sound effects would be nice... (I'm sure this is "on the list" of things to do...) 5. I have fond memories of the Fairchild Channel F, and the end of level transition reminds me of that machine. However, I would prefer a faster transition... Looking forward to level 2... Catsfolly
  8. Here's a few more: Super Pixel Bros: http://atariage.com/forums/topic/233045-wip-super-pixel-brothers/page-2?do=findComment&comment=3141099 Press 8 Software Toy (liked by more than 9 people! ): http://atariage.com/forums/topic/219376-press-8-software-toy/?hl=press&do=findComment&comment=2942708 Rocketeer Demo: http://atariage.com/forums/topic/209220-new-homebrew-called-rocketeer/ Sorry about hijacking the thread back to its original purpose.... Catsfolly
  9. "New to game programming" programmers at Mattel Electronics (i.e. most of us at that time ) often tried to put as many colors on the screen as possible, since we wanted our games to be "colorful" and "there were only 16 colors total anyway." But the artists advised us to pick a small set of colors as the "main colors" of the game - they said that doing so would set the proper mood or atmosphere of the game. Other colors could be used sparingly - to spice up the game - or as "icing on the cake". So maybe there is really no need to map every single Intellivision color to a Genesis color. Just a thought, Catsfolly
  10. To my way of thinking "Print" is for text. I would recommend using the "poke" command to set individual characters on the screen, or the "screen" command to set up whole areas of the screen at once. The poke command can be used to write the value of a variable to a screen location. But don't forget that by default Intybasic variables are 8 bit values - so they can only hold numbers between 0 and 255. To create a 16 bit variable that can hold a larger number, you have to add a "#" character to the variable name. #WP = 272 poke screenaddr(col, row),#WP You could do the same thing with a print command, but it has the additional overhead of updating the current print position. print at screenpos( col,row), #WP Does this help at all? Catsfolly
  11. Are you sure you don't have a "mode 1" command line somewhere in your code. It looks like foreground background mode to me.
  12. There is a priority bit in the third sprite parameter. In Constants.bas, GroovyBee calls this the "BEHIND" bit. CONST BEHIND = $2000 ' Sprite is behind the background. If the bit is set, then the sprite appears to be "behind" the foreground color bits of the backtab tiles. For example: this sprite would be in front of the background: SPRITE 4,x + HIT + VISIBLE,y + ZOOMY2,SPR_DARKGREEN + SPR38 while this sprite would be behind the foreground bits of the background: SPRITE 4,x + HIT + VISIBLE,y + ZOOMY2,SPR_DARKGREEN + SPR38 + BEHIND That's all there is to it. Catsfolly
  13. There's no RIGHT way to do it, but there are different approaches you could try. If we had floating point numbers, we could do it like this (pseudocode); // compute the distances we need to move in x and y dx = cursor_x - start_pos_x dy = cursor_y - start_pos_y // then divide these distances by the number of frames we want to take to get to the destination. // these are our x and y velocities SHOTSTEPS = 20 vx = dx/ SHOTSTEPS vy = dy/SHOTSTEPS shottimer = SHOTSTEPS // and initialize the shot position sdx = start_pos_x sdy = start_pos_y // then add this code to the game loop if shottimer > 0 then shottimer = shottimer -1 sdx = sdx + vx sdy = sdy + vy end if Of course, we don't have floating point numbers on the intellivision. But if we use 16 bit numbers for the positions and velocities, and scale them by a factor, then we can achieve smooth motion. I used a scale factor of 64, which gives us 6 bits of fractional position. So the basic code looks like this: CONST SHOTSTEPS = 20 CONST SHOT_START_X = 80 CONST SHOT_START_Y = 96 CONST POS_SCALE = 64 if shottimer = 0 then if (cont1.B0 + cont2.B0) then shottimer = SHOTSTEPS : #sdx = SHOT_START_X * POS_SCALE : #sdy = SHOT_START_Y * POS_SCALE #vx = ((X- SHOT_START_X) * POS_SCALE) if #vx > 0 then #vx = #vx/SHOTSTEPS else #vx = -#vx : #vx = #vx/SHOTSTEPS : #vx = -#vx #vy = ((Y - SHOT_START_Y) * POS_SCALE) if #vy > 0 then #vy = #vy/SHOTSTEPS else #vy = -#vy : #vy = #vy/SHOTSTEPS : #vy = -#vy else #sdy= 120 * POS_SCALE : goto nohit end if end if rem handle shot animation shottimer = shottimer -1 #sdx = #sdx + #vx #sdy = #sdy + #vy Here is a variant of RobotBlast with this code added. It is hard to shoot things because of the minimalist collision code, but you can try it out: rbv1.rom robotblast_rv1.bas Catsfolly Edit: Here's a gif for gif fans... <-- click to animate
  14. Your title screen reminds me of "Tennis in Space". If you start up Tennis in space and do nothing, the "zeroes" at the top of each green half of the tennis court will eventually "blink" - a little like the eyes on your celery stock... <- click to animate... Catsfolly
  15. If you want to have lots of levels, you might want to think about optimizing the way your store the levels. For example, If you put only data in your level descriptions, and wrote a general routine to read this level description data and set up the levels, I think you could make the level data much smaller. Here is my concept of what level 7 would look like using this approach - it uses a bitmap to describe the maze, and tables for each of the peas and enemies: rem level 7 containing only data level7: data $1003 ' level color Bitmap " ## " ' 1 BItmap "# " Bitmap " # # " ' 21 Bitmap "# " Bitmap " ###### " ' 41 Bitmap "# " Bitmap " # " ' 61 Bitmap " " Bitmap " # #####" ' 81 Bitmap "# " Bitmap " # # " ' 101 Bitmap "# " Bitmap " ### ## " ' 121 Bitmap "# " Bitmap " # # " ' 141 Bitmap "# " Bitmap "## # ###" ' 161 Bitmap "# " Bitmap " # " ' 181 Bitmap " " data 64,64 ' celeryx,celeryy rem peas data 1,24,24 ' pea1 enable, x ,y data 1,32,48 ' pea2 enable, x,y data 0,0,0 ' pea3 enable, x,y data 0,0,0 ' pea4 enable, x,y rem enemies data 1,16,48,2,64 ' enemy 1 enable, x, y, dir, limit data 1,88,48,1,8 ' enemy 2 enable, x, y, dir, limit data 1,56,32,3,32 ' enemy 3 enable, x, y, dir, limit data 88 ' enemy 3 xlimit2 rem finish data 16,80 ' finishx, finishy rem speed data 33 ' enemy speed This would take around 50 words for level 7 , instead of around 400 words that the current implementation needs. (of course the general routine would take up some memory space too, but there would only be one routine to load all the levels. Just a thought. Catsfolly
  16. Try downloading from this page: http://spatula-city.org/~im14u2c/intv/
  17. I tried it on my computer and got zero errors. as1600 -o celery.rom -l celery.lst celery.asm ERROR SUMMARY - ERRORS DETECTED 0 - WARNINGS 0 My guess is that you are running a very old version of as1600. Where did you download it from? What is the date on the file?
  18. Does this game count? It was an "Intellivision Style" remake of "You have to burn the Rope". You can find more info at: https://forums.tigsource.com/index.php?topic=2716.0 Someone should port it to the Intellivision since the hardest part (the box) is already done... Catsfolly
  19. I think that the Intellivision memory map has 2k memory reserved for GRAM, but the built in GRAM is mapped 4 times into the memory map so that a request for GRAM card 1 displays GRAM card 1, but a request for GRAM card 65 or 129 or 193 also displays GRAM card 1. This was actually a good thing for memory starved Intellivision programmers back in the day -- it meant that the top two bits of the GRAM address in a Color Stack BACKTAB word were ignored, and the programmer could use these bits to store whatever information they wanted. But it means that to add GRAM the Intelliivision would have to be modified so that Internal GRAM only responds to the 0-63 part of the GRAM memory map (and this would have to be something that could be disabled or enabled for compatibility with existing games...) Catsfolly
  20. I am using parts of this Overture in a game I am working on. It is interesting to hear your version. My version is done by ear, so your version is has more tracks and is probably more correct. I think it could use a bit more "gravitas", though... Thanks for posting this. Catsfolly "This is the cereal that's shot from guns!" - like that's a good thing....
  21. Really? All those Atari 2600s and Intellivisions and Channel Fs and Bally Arcades count for nothing?
  22. Hmmm. Looks like "Tennis in Space" wasn't strange enough to make the list! I guess I'll have to try harder....
  23. Joe Z. wrote a nice macro for Space Patrol where the macro takes a string and outputs it with 2 characters per word. Actually it doesn't just pack the ascii characters - it subtracts $20 from each character (which turns the character into a GROM index), then it multiplies each character by 8 (which puts the bits in the right position for backtab), and THEN it packs them two to a word. With this packing scheme, the print routine can be fairly simple. The macro is in S16.mac, and the print code is in P16.asm, in the Space Patrol source code: http://spatula-city.org/~im14u2c/intv/spteaser/ (the website doesn't seem to be responding at the moment though...) Catsfolly
  24. This is cool (even if it is limited to about 3 unique lines of data before the Intellivision runs out of GRAM memory space...)) Some people have told me that there is too much hex in our examples, so I changed the font data to "Bitmap" statements to make it easier to read (and tweak, although with a 4 bit wide font there isn't much room for tweaking...) Sample: asm ; Left side font character bitmap data asm @@LeftFont_bitmaps: bitmap " " bitmap " # " bitmap "# # " bitmap "# # " bitmap "### " bitmap "# # " bitmap "# # " bitmap " " bitmap " " bitmap "## " bitmap "# # " bitmap "## " bitmap "# # " bitmap "# # " bitmap "## " bitmap " " bitmap " " bitmap " # " bitmap "# # " bitmap "# " bitmap "# " bitmap "# # " bitmap " # " bitmap " " I put the font data into its own file. Here is my hacked version: tinyfont2.zip Catsfolly
×
×
  • Create New...