Jump to content
IGNORED

Warlords - More than One Fireball?


Great Hierophant

Recommended Posts

As much as I love the Atari 2600 version of Warlords (although Castle Crisis for the Atari 8-bit machines isvery hard to ignore), the one fireball limit tends to be somewhat limiting. With one ball it can be very difficult to get down to one player and win the game, especially when you are sharing a side. Is it possible to achieve more than one ball? While the TIA only has room for one ball object, that object can be updated every line. When two balls are on the same scanline, they would flicker but should still be visible.

Link to comment
Share on other sites

I'm sure they could have multiplexed the ball sprite, but it may not have occurred to them at the time. Or perhaps they didn't have enough cycles left in the kernel they developed to accomplish it.

 

Either way there are tricks you can use to kill off the last castle if they're in a difficult location. If you're quick enough you can draw him up to the corner of his castle, then quickly flick round and hit his hindquarters. Then there's the ghost trick. The other players, despite being dead, still roam around as if they weren't (which you can see whenever the screen flashes). Although they can't stop the ball, they can redirect it if you fire it at them. Great for making boomerang shots.

Link to comment
Share on other sites

It's possible with the existing ball if additional ram can be found (to store the second ball's variables). Looking through a quick disassembly, I can't tell if $80 and $81 are used at all. I did notice that 14 bytes of romspace can be saved right off the bat in the repositioning routine.

 

Change this...

;A=reposition value

LF000: CLC           ;2

      ADC    #$36   ;2 offset

      PHA           ;3

      LSR           ;2

      LSR           ;2

      LSR           ;2

      LSR           ;2

      TAY           ;2

      PLA           ;4

      AND    #$0F   ;2

      STY    $F8    ;3

      CLC           ;2

      ADC    $F8    ;3

      CMP    #$0F   ;2

      BCC    LF018  ;2

      SBC    #$0F   ;2

      INY           ;2

LF018: CMP    #$08   ;2

      EOR    #$0F   ;2

      BCS    LF021  ;2

      ADC    #$01   ;2

      DEY           ;2

LF021: ASL           ;2

      ASL           ;2

      ASL           ;2

      ASL           ;2

      RTS           ;6

 

to this...

LF000: CLC           ;2

      ADC    #$20   ;2 offset

      ldy    #$00   ;2

      EOR    #$FF   ;2 0-159 is now 255-96 

      CLC           ;2

Divide:

      INY           ;2

      ADC    #$0F   ;2

      BCC    Divide ;2

      SBC    #$07   ;2

      ASL           ;2

      ASL           ;2

      ASL           ;2

      ASL           ;2 move into top nybble 

      STY    $F8    ;3 save Y to a temp

      ORA    $F8    ;3 ...and move into low nybble

      RTS           ;6

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