Talk:Space Eggs

Latest comment: 4 years ago by Fadden0 in topic Gameplay

Gameplay

edit

The lips do not drop bombs, and die in one shot. The fuzzballs also die in one shot. I can verify this is the case for the Apple II version, and you can see video of the Atari version on youtube.

The ship merge only happens if your score is over 1,000, and looks like it can only happen once:

13b0: a5 90        CheckDoubleShip lda did_multi_ship ;have we done the multi-ship grab yet?
13b2: d0 06                 bne     L13BA      ;yes, don't do it again
13b4: a5 b0                 lda     cur_score_hi ;check the current score
13b6: c9 0f                 cmp     #$0f       ;at least 1000?
13b8: b0 01                 bcs     L13BB      ;yes, do the multi-ship thing
13ba: 60           L13BA    rts

13bb: 20 e0 0c     L13BB    jsr     MultiShipGrab
13be: a9 ff                 lda     #$ff
13c0: 85 90                 sta     did_multi_ship
13c2: 60                    rts

Fadden0 (talk) 06:01, 1 November 2019 (UTC)Reply

The fuzzball movement looks like a bug. They're supposed to bounce up and down, but when moving to the right the "move up" code actually calls "move down" instead, so the fuzzball moves horizontally and kills you every time.

1b20: a5 c3        MoveAlienDownSeek lda alien_col
1b22: c5 f9                     cmp     ship_pos_coarse ;are we lined up on the ship?
1b24: f0 09                     beq     :move_down      ;yes, just move down
1b26: 90 05                     bcc     :move_right     ;we're to the left, move right
1b28: c6 c3                     dec     alien_col       ;we're to the right, move left
1b2a: 4c 2f 1b                  jmp     :move_down
1b2d: e6 c3        :move_right  inc     alien_col
1b2f: 20 58 19     :move_down   jsr     MoveAlienDown
1b32: 60                        rts

1b40: a5 c3        MoveAlienUpSeek lda  alien_col
1b42: c5 f9                     cmp     ship_pos_coarse
1b44: f0 09                     beq     :move_up
1b46: 90 05                     bcc     :move_right
1b48: c6 c3                     dec     alien_col
1b4a: 4c 2f 1b                  jmp     :move_down      ;BUG - should be move_up
1b4d: e6 c3        :move_right  inc     alien_col
1b4f: 20 78 19     :move_up     jsr     MoveAlienUp
1b52: 60                        rts

The bug can be fixed with 1B4B:4F. (To experiment, disable ship collision detection with 1B90:60.)

The full disassembly can be found here: https://6502disassembly.com/a2-space-eggs/

Fadden0 (talk) 21:46, 4 January 2020 (UTC)Reply