Jump to content
  • entries
    106
  • comments
    796
  • views
    141,052

vdub_bobby

1,122 views

YET ANOTHER update.

blogentry-6060-1196265617_thumb.png

Changes:

Biggest changes are

-adding the climbing animation. The animations are mostly done now, though I need to tweak things a little - the climbing animation is a little goofy when you start with your left hand up.

-major cleanup on the kernel. This is very close to being complete. Enemies no longer jump around when the screen is scrolling and there are many fewer graphic glitches at the top and bottom of the scroll area.

 

EDIT: :lol: Just glanced at the screenshot I took for this post and noticed a graphic glitch in the player!

10 Comments


Recommended Comments

Just ran it on a real system and it looks great!

 

I've never played the Atari 8-bit computer game so I'm not overly familiar with the gameplay. Obviously you need to climb up and press the button to lift your legs up over the bad guys. I assume the falling objects will knock you down a level or something along those lines? What happens when you get to the top? Do you go to the next level? Are the "ladders" consistent each time you play, or are they randomized? Do they match the 8-bit version?

 

Just curious. :)

 

..Al

Just ran it on a real system and it looks great!

Good; I was slightly worried since I'm using an illegal opcode that I'm not sure has been used before, LAX (ZP,X), and I wasn't 100% sure that it would work correctly.

I've never played the Atari 8-bit computer game so I'm not overly familiar with the gameplay. Obviously you need to climb up and press the button to lift your legs up over the bad guys. I assume the falling objects will knock you down a level or something along those lines? What happens when you get to the top? Do you go to the next level? Are the "ladders" consistent each time you play, or are they randomized? Do they match the 8-bit version?

 

Just curious. :)

Well, I'll tell you. :) Here's how it works:

Each building is ~48 floors high, with three monster types, 1 bonus item, and a suitcase of cash at the top. When you grab the suitcase you start at the bottom of another building with different monsters (but otherwise essentially the same). Each "wave" of monsters is a level, so there are 3 levels per building. There are 15 types of monsters, after that each level has random monsters (different on each floor). Each type of monster has a specific behavior, either moving from side to side, following you, or moving erratically. They move faster at higher levels.

 

You can lift your legs to avoid the bad guys but it is much more fun to position yourself so that when your legs come down they smash the monster. ;) Monsters will unsquish after a short period of time and turn white, at which point they can't be squished again.

 

As far as I've ever been able to tell, the girders, monster positions, monster colors, bonus items, and the monsters themselves starting with level 16 are randomly generated and are not the same from game to game. One thing I have noticed is that in the A800 version there are always at least two girders to climb.

 

And that's it. It isn't very complicated or deep, but I've always enjoyed it - it just has some undefined factor to its gameplay that makes it fun even though I've played it a million times before. I think it's because it is fast-moving and the squishing of monsters is done well - it is so satisfying to smash those little bugs!

What was the problem again with the brick? Wouldn't it be more accurate if it used the players missile?

Problem is that it blends in with the girders. It would be more accurate if it used one of the missiles, but I'm using the ball because it can be VDELed.

 

And I don't think it's really a problem, anyway, though I'll evaluate again when it is closer to completion.

Just ran it on a real system and it looks great!

Good; I was slightly worried since I'm using an illegal opcode that I'm not sure has been used before, LAX (ZP,X), and I wasn't 100% sure that it would work correctly.

I only tested it on one system (a 4-switch Atari 2600). I'll try the next build on a 7800 as well, and a few other 4-switch systems I have setup. Don't have any other varieties of 2600 consoles (6-switch, Jr., etc.) setup now, though, but if it works on the 7800 I am using (which has compatibility problems with some games), you should be okay. ;)

 

Well, I'll tell you. :) Here's how it works:

Each building is ~48 floors high, with three monster types, 1 bonus item, and a suitcase of cash at the top. When you grab the suitcase you start at the bottom of another building with different monsters (but otherwise essentially the same). Each "wave" of monsters is a level, so there are 3 levels per building. There are 15 types of monsters, after that each level has random monsters (different on each floor). Each type of monster has a specific behavior, either moving from side to side, following you, or moving erratically. They move faster at higher levels.

 

You can lift your legs to avoid the bad guys but it is much more fun to position yourself so that when your legs come down they smash the monster. ;) Monsters will unsquish after a short period of time and turn white, at which point they can't be squished again.

 

As far as I've ever been able to tell, the girders, monster positions, monster colors, bonus items, and the monsters themselves starting with level 16 are randomly generated and are not the same from game to game. One thing I have noticed is that in the A800 version there are always at least two girders to climb.

 

And that's it. It isn't very complicated or deep, but I've always enjoyed it - it just has some undefined factor to its gameplay that makes it fun even though I've played it a million times before. I think it's because it is fast-moving and the squishing of monsters is done well - it is so satisfying to smash those little bugs!

Thanks for taking the time to type that up, much appreciated. Just wondering, if your goal is to go up the building, why bother squishing monsters that are below you, presuming that you are already climbing up a girder and leaving them behind? :)

 

..Al

What was the problem again with the brick? Wouldn't it be more accurate if it used the players missile?

Problem is that it blends in with the girders.

...

And I don't think it's really a problem, anyway, though I'll evaluate again when it is closer to completion.

 

The blending was the visual problem that was disturbing me, I should've made myself more clear that I was wondering about the technical issues behind it ;)

 

It would be more accurate if it used one of the missiles, but I'm using the ball because it can be VDELed.

 

So it is a 2LK? If it is 2LK and you enable the brick on one line, you can generally disable it on the other, so it is at least striped.

 

What technique are you using for the brick so far? Here's a trick from TJ that I'm using to display the torpedos in Seawolf:

 

	LDA #3				 ; TJ torpedo magic
DCP torpedoyPos
ADC #2
STA ENABL

 

That's only 12 cycles, even faster than a mask :)

So it is a 2LK? If it is 2LK and you enable the brick on one line, you can generally disable it on the other, so it is at least striped.

 

What technique are you using for the brick so far? Here's a trick from TJ that I'm using to display the torpedos in Seawolf:

 

	LDA #3			; TJ torpedo magic
DCP torpedoyPos
ADC #2
STA ENABL

 

That's only 12 cycles, even faster than a mask ;)

Yeah, it is a 2LK and I am planning to stripe it if I think it's necessary.

 

And I am using a very similar routine to display the ball; I actually came up with it independently a few years ago and thought I was SOOO cool. Then I saw the same little routine in a snippet of TJ's code that I saw somewhere. :)

LAX (ZP,X)

I remember you mentioning this before, but I don't recall what use you found for this funky opcode (or if you explained it.) How is it used, and did it rely on the fact that the stack is mirrored in zero page?

I'm using the (ZP,X) addressing because I need two separate indices and it is faster to update a RAM location - DEC ZP - than to switch Y around all over the place. If that made sense...:)

 

I'm using LAX because of timing constraints; I load the value but then don't use it until after I use the accumulator for something else; this is faster than LDA, TXA. Here's the relevant bit:

MainKernelLoopInner		;		15
lda PF1Temp
sta PF1
lda PF2Temp
sta PF2				;+12	27

lda (EnemyPtr,X)
sta GRP0			;+9		35		VDEL

lda PF4Temp
sta PF1
lda PF3Temp
sta PF2				;+12	48

lda #BRICKHEIGHT
dcp BrickTemp
sbc #BRICKHEIGHT-2
sta ENABL			;+12	60		VDEL

dec EnemyPtr,X		;+6		66

lda #PLAYERHEIGHT-1
dcp PlayerTemp
bcc DrawBlank1		;+9		75
lda (PlayerGfxPtr1),Y
sta GRP1			;+8		 7
lda (PlayerClrPtr1),Y
sta COLUP1			;+8		15	
BackFromDrawBlank1

lda PF1Temp
sta PF1
lda PF2Temp
sta PF2				;+12	27

lax (EnemyPtr,X)
cmp #ENDMONSTERVALUE
beq MainKernelLoopOuter;+10	37
MainKernelLoopOuter7Entrance
lda PF4Temp
sta PF1
lda PF3Temp
sta PF2				;+12	49		one cycle late!  *might* be OK...

stx.w GRP0			;				VDEL
tsx					;+6		55

dec EnemyPtr,X		;+6		61
MainKernelInner1Entrance
lda #PLAYERHEIGHT-1
dcp PlayerTemp
bcc DrawBlank2		;+9		70
lda (PlayerGfxPtr2),Y
sta GRP1			;+8		 2
lda (PlayerClrPtr2),Y
sta COLUP1			;+8		10
BackFromDrawBlank2




dey
bpl MainKernelLoopInner;+5		15

Guest
Add a comment...

×   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...