From 01ecb0758b7c0c165bc6e5d61cf613c420bfe383 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Tue, 30 Aug 2016 17:45:00 -0400 Subject: regenerate jumpmanjr.html --- jumpmanjr.html | 515 +++++++++++++++++++++++++++++++++------------------------ 1 file changed, 295 insertions(+), 220 deletions(-) diff --git a/jumpmanjr.html b/jumpmanjr.html index 30220de..4963c76 100644 --- a/jumpmanjr.html +++ b/jumpmanjr.html @@ -7,7 +7,7 @@
 ; da65 V2.15 - Git 104f898
-; Created:    2016-08-30 05:02:11
+; Created:    2016-08-30 17:43:53
 ; Input file: jumpmanjr.rom
 ; Page:       1
 
@@ -45,9 +45,12 @@
 COLOR3          := $02C7
 COLOR4          := $02C8
 CHBAS           := $02F4
+page6_vectors_minus_one:= $05FF                 ; 1-indexed
+page6_vectors   := $0600                        ; initialized with page6_initial_vectors
 jiffy_timer_1   := $061A                        ; gets incremented every frame
 jiffy_timer_2   := $061B                        ; gets incremented every frame
 speed_jiffy_timer:= $061E                       ; counts 0..initial_speed
+falling_flag    := $0621                        ; 1 = falling, reset to 0 when jumpman hits the ground
 player_speed    := $0624
 initial_speed   := $0625
 bonus_jiffy_timer:= $0626                       ; gets incremented every frame when playing a level, bonus-=100 when this reaches 0
@@ -66,6 +69,10 @@
 sfx_slot_freq   := $0647
 sfx_slot_curpos := $064E                        ; address we've got to so far, playing this sfx
 sfx_tempo_tmp   := $0661                        ; ??
+player_x_pos    := $067E                        ; stored in HPOSP0
+player_y_pos    := $0683                        ; $C6 is the bottom of the level (where you end up when you die)
+bullet_x_pos    := $069B                        ; 4 bytes, meaning we can never have >4 bullets on screen at once (makes sense, GTIA only has 4 missiles)
+bullet_y_pos    := $069F                        ; another 4 bytes
 dlist_shadow_lo := $06AC                        ; stored in DLISTL if dlist_shadow_hi nonzero
 dlist_shadow_hi := $06AD                        ; stored in DLISTH if nonzero
 dli_vec_shadow_lo:= $06AE                       ; stored in VDSLST if dli_vec_shadow_hi nonzero
@@ -89,13 +96,16 @@
 current_player  := $06FE                        ; *think* this ranges 1-4, not 0-3
 score           := $0700
 lives           := $070A
+bullet_flags    := $0756                        ; 4 bytes, 0 = bullet slot not in use, non-0 = bullet active
+bullet_x_delta  := $075A                        ; 4 bytes
+bullet_y_delta  := $075E                        ; 4 bytes
 work_level_desc := $0780                        ; first 2 bytes are level number in screencodes
 work_level_sub0 := $0782                        ; a subroutine
 work_level_sub1 := $0784                        ; a subroutine
 work_level_sub2 := $0786                        ; a subroutine
 work_level_sub3 := $0788                        ; a subroutine
 work_level_num_bombs:= $078A                    ; number of bombs to pick up on this level
-work_level_bullet_chance:= $078B                ; 0 = no bullets
+work_level_bullet_max:= $078B                   ; 0 = no bullets, range 0-4.
 work_level_y_start:= $078C                      ; jumpman starting Y position
 work_level_x_start:= $078D                      ; jumpman starting X position
 work_level_offs_14:= $078E                      ; points to $0600
@@ -123,7 +133,7 @@
 cur_level_sub2  := $07C6                        ; a subroutine
 cur_level_sub3  := $07C8                        ; a subroutine
 cur_level_num_bombs:= $07CA                     ; number of bombs to pick up on this level
-cur_level_bullet_chance:= $07CB                 ; 0 = no bullets
+cur_level_bullet_max:= $07CB                    ; 0 = no bullets, range 0-4.
 cur_level_y_start:= $07CC                       ; jumpman starting Y position
 cur_level_x_start:= $07CD                       ; jumpman starting X position
 cur_level_offs_14:= $07CE                       ; points to $0600
@@ -681,12 +691,12 @@
 L8295:  dex                                     ; 8295 CA                       .
         beq     missiles_done                   ; 8296 F0 45                    .E
         lda     $069A,x                         ; 8298 BD 9A 06                 ...
-        cmp     $06A2,x                         ; 829B DD A2 06                 ...
+        cmp     bullet_y_pos+3,x                ; 829B DD A2 06                 ...
         beq     L82A6                           ; 829E F0 06                    ..
-        sta     $06A2,x                         ; 82A0 9D A2 06                 ...
+        sta     bullet_y_pos+3,x                ; 82A0 9D A2 06                 ...
         sta     HPOSP3,x                        ; 82A3 9D 03 D0                 ...
 L82A6:  lda     $06A6,x                         ; 82A6 BD A6 06                 ...
-        cmp     $069E,x                         ; 82A9 DD 9E 06                 ...
+        cmp     bullet_x_pos+3,x                ; 82A9 DD 9E 06                 ...
         beq     L8295                           ; 82AC F0 E7                    ..
         tay                                     ; 82AE A8                       .
         lda     $2B00,y                         ; 82AF B9 00 2B                 ..+
@@ -695,7 +705,7 @@
         lda     $2B01,y                         ; 82B8 B9 01 2B                 ..+
         and     missiles_mask_table_minus_one,x ; 82BB 3D DF 82                 =..
         sta     $2B01,y                         ; 82BE 99 01 2B                 ..+
-        lda     $069E,x                         ; 82C1 BD 9E 06                 ...
+        lda     bullet_x_pos+3,x                ; 82C1 BD 9E 06                 ...
         sta     $06A6,x                         ; 82C4 9D A6 06                 ...
         tay                                     ; 82C7 A8                       .
         lda     $2B00,y                         ; 82C8 B9 00 2B                 ..+
@@ -802,10 +812,9 @@
 ; ----------------------------------------------------------------------------
 init_hardware:
         ldx     #$18                            ; 837C A2 18                    ..
-; movement_direction_table+31 should read data_table_85de-1, da65 isn't perfect yet
 init_page6_loop:
-        lda     movement_direction_table+31,x   ; 837E BD DD 85                 ...
-        sta     $05FF,x                         ; 8381 9D FF 05                 ...
+        lda     page6_initial_vectors_minus_one+10,x; 837E BD DD 85             ...
+        sta     page6_vectors_minus_one,x       ; 8381 9D FF 05                 ...
         dex                                     ; 8384 CA                       .
         bne     init_page6_loop                 ; 8385 D0 F7                    ..
         stx     AUDCTL                          ; 8387 8E 08 D2                 ...
@@ -862,7 +871,7 @@
 set_vkeybd:
         sta     VKEYBD_hi                       ; 83ED 8D 09 02                 ...
         ldx     #$07                            ; 83F0 A2 07                    ..
-L83F2:  lda     L8405,x                         ; 83F2 BD 05 84                 ...
+L83F2:  lda     stub,x                          ; 83F2 BD 05 84                 ...
         sta     $06D8,x                         ; 83F5 9D D8 06                 ...
         dex                                     ; 83F8 CA                       .
         bne     L83F2                           ; 83F9 D0 F7                    ..
@@ -873,7 +882,8 @@
 set_vvblki:
         jsr     SETVBV                          ; 8401 20 5C E4                  \.
         cld                                     ; 8404 D8                       .
-L8405:  rts                                     ; 8405 60                       `
+; just an RTS
+stub:   rts                                     ; 8405 60                       `
 
 ; ----------------------------------------------------------------------------
 data_8406:
@@ -898,7 +908,7 @@
         and     #$01                            ; 842B 29 01                    ).
         sta     $061C                           ; 842D 8D 1C 06                 ...
         lda     #$00                            ; 8430 A9 00                    ..
-        sta     $0621                           ; 8432 8D 21 06                 .!.
+        sta     falling_flag                    ; 8432 8D 21 06                 .!.
         sta     $0622                           ; 8435 8D 22 06                 .".
         sta     $06FD                           ; 8438 8D FD 06                 ...
         inc     $061D                           ; 843B EE 1D 06                 ...
@@ -911,7 +921,7 @@
         bcc     L846E                           ; 844E 90 1E                    ..
         lda     #$00                            ; 8450 A9 00                    ..
         sta     $061D                           ; 8452 8D 1D 06                 ...
-        inc     $0621                           ; 8455 EE 21 06                 .!.
+        inc     falling_flag                    ; 8455 EE 21 06                 .!.
         inc     $061F                           ; 8458 EE 1F 06                 ...
         inc     $0620                           ; 845B EE 20 06                 . .
         lda     $061F                           ; 845E AD 1F 06                 ...
@@ -980,9 +990,9 @@
 L84D9:  ldx     #$08                            ; 84D9 A2 08                    ..
 L84DB:  lda     work_level_desc+1,x             ; 84DB BD 81 07                 ...
         beq     L84EE                           ; 84DE F0 0E                    ..
-        sta     $0603,x                         ; 84E0 9D 03 06                 ...
+        sta     page6_vectors+3,x               ; 84E0 9D 03 06                 ...
         lda     work_level_desc,x               ; 84E3 BD 80 07                 ...
-        sta     $0602,x                         ; 84E6 9D 02 06                 ...
+        sta     page6_vectors+2,x               ; 84E6 9D 02 06                 ...
         lda     #$00                            ; 84E9 A9 00                    ..
         sta     work_level_desc+1,x             ; 84EB 9D 81 07                 ...
 L84EE:  dex                                     ; 84EE CA                       .
@@ -1092,10 +1102,10 @@
 ; ----------------------------------------------------------------------------
 L859C:  inc     $0618                           ; 859C EE 18 06                 ...
         inc     $0618                           ; 859F EE 18 06                 ...
-        lda     $0601,x                         ; 85A2 BD 01 06                 ...
+        lda     page6_vectors+1,x               ; 85A2 BD 01 06                 ...
         beq     L858D                           ; 85A5 F0 E6                    ..
         sta     $06E5                           ; 85A7 8D E5 06                 ...
-        lda     $0600,x                         ; 85AA BD 00 06                 ...
+        lda     page6_vectors,x                 ; 85AA BD 00 06                 ...
         sta     $06E4                           ; 85AD 8D E4 06                 ...
         jsr     L06E3                           ; 85B0 20 E3 06                  ..
         jmp     L858D                           ; 85B3 4C 8D 85                 L..
@@ -1109,14 +1119,28 @@
 movement_direction_table:
         .word   $0000,$0000,$0000,$0000         ; 85BE 00 00 00 00 00 00 00 00  ........
         .word   $0000,$0101,$FF01,$0001         ; 85C6 00 00 01 01 01 FF 01 00  ........
-        .word   $0000,$01FF,$FFFF,$00FF         ; 85CE 00 00 FF 01 FF FF FF 00  ........
-        .word   $0000,$0100,$FF00,$0000         ; 85D6 00 00 00 01 00 FF 00 00  ........
-; ----------------------------------------------------------------------------
-; dunno what this is for yet, but it's copied into page 6 by init_hardware
-data_table_85de:
-        .byte   $C8,$88,$05,$84,$05,$84,$05,$84 ; 85DE C8 88 05 84 05 84 05 84  ........
-        .byte   $05,$84,$05,$84,$05,$84,$00,$98 ; 85E6 05 84 05 84 05 84 00 98  ........
-        .byte   $93,$82,$69,$8E,$00,$89,$57,$81 ; 85EE 93 82 69 8E 00 89 57 81  ..i...W.
+        .word   $0000,$01FF                     ; 85CE 00 00 FF 01              ....
+        .byte   $FF                             ; 85D2 FF                       .
+; 1-indexed
+page6_initial_vectors_minus_one:
+        .word   $FFFF,$0000,$0000,$0001         ; 85D3 FF FF 00 00 00 00 01 00  ........
+        .word   $00FF                           ; 85DB FF 00                    ..
+        .byte   $00                             ; 85DD 00                       .
+; copied into page 6 by init_hardware
+page6_initial_vectors:
+        .addr   check_consol                    ; 85DE C8 88                    ..
+        .addr   stub                            ; 85E0 05 84                    ..
+        .addr   stub                            ; 85E2 05 84                    ..
+        .addr   stub                            ; 85E4 05 84                    ..
+        .addr   stub                            ; 85E6 05 84                    ..
+        .addr   stub                            ; 85E8 05 84                    ..
+        .addr   stub                            ; 85EA 05 84                    ..
+        .addr   check_falling_1                 ; 85EC 00 98                    ..
+        .addr   position_missiles               ; 85EE 93 82                    ..
+        .addr   bullet_logic                    ; 85F0 69 8E                    i.
+        .addr   check_falling_2                 ; 85F2 00 89                    ..
+        .addr   sfx_player_entry                ; 85F4 57 81                    W.
+; ----------------------------------------------------------------------------
 ; probably just filler
 zero_filler_85f6:
         .byte   $00,$00,$00,$00,$00,$00,$00,$00 ; 85F6 00 00 00 00 00 00 00 00  ........
@@ -1330,7 +1354,7 @@
         bne     ej_loop                         ; 8783 D0 F2                    ..
         stx     joystick_disabled               ; 8785 8E 32 06                 .2.
         stx     sfx_lock                        ; 8788 8E 2F 06                 ./.
-        stx     work_level_bullet_chance        ; 878B 8E 8B 07                 ...
+        stx     work_level_bullet_max           ; 878B 8E 8B 07                 ...
         jsr     clear_pm_mem                    ; 878E 20 2A 87                  *.
         jsr     silence_audio                   ; 8791 20 5B 87                  [.
         lda     #$30                            ; 8794 A9 30                    .0
@@ -1352,13 +1376,13 @@
 ; ----------------------------------------------------------------------------
 ; Jumpman just picked up a bomb, award points, play sfx_bomb_pickup, make the bomb disappear, do some other stuff I don't understand yet
 bomb_pickup:
-        lda     $067E                           ; 87A8 AD 7E 06                 .~.
+        lda     player_x_pos                    ; 87A8 AD 7E 06                 .~.
         clc                                     ; 87AB 18                       .
         adc     work_level_offs_14              ; 87AC 6D 8E 07                 m..
         and     #$E0                            ; 87AF 29 E0                    ).
         sta     $B6                             ; 87B1 85 B6                    ..
         clc                                     ; 87B3 18                       .
-        lda     $0683                           ; 87B4 AD 83 06                 ...
+        lda     player_y_pos                    ; 87B4 AD 83 06                 ...
         adc     work_level_offs_14+1            ; 87B7 6D 8F 07                 m..
         and     #$E0                            ; 87BA 29 E0                    ).
         lsr     a                               ; 87BC 4A                       J
@@ -1525,7 +1549,9 @@
 zero_filler_88f9:
         .byte   $00,$00,$00,$00,$00,$00,$00     ; 88F9 00 00 00 00 00 00 00     .......
 ; ----------------------------------------------------------------------------
-        lda     $0621                           ; 8900 AD 21 06                 .!.
+; called via vector in page 6
+check_falling_2:
+        lda     falling_flag                    ; 8900 AD 21 06                 .!.
         beq     L890F                           ; 8903 F0 0A                    ..
         lda     $0623                           ; 8905 AD 23 06                 .#.
         cmp     #$01                            ; 8908 C9 01                    ..
@@ -1550,13 +1576,14 @@
         and     #$0F                            ; 892E 29 0F                    ).
         sta     $0688                           ; 8930 8D 88 06                 ...
         inc     $0688                           ; 8933 EE 88 06                 ...
+play_sfx_death:
         lda     #$60                            ; 8936 A9 60                    .`
         sta     sfx_slot_tempo                  ; 8938 8D 3E 06                 .>.
         lda     #$8A                            ; 893B A9 8A                    ..
         sta     sfx_slot_timer                  ; 893D 8D 3F 06                 .?.
         lda     #$07                            ; 8940 A9 07                    ..
         jsr     cue_sfx_lowprior_jv             ; 8942 20 03 80                  ..
-L8945:  lda     $0683                           ; 8945 AD 83 06                 ...
+L8945:  lda     player_y_pos                    ; 8945 AD 83 06                 ...
         cmp     #$C6                            ; 8948 C9 C6                    ..
         bcc     L895D                           ; 894A 90 11                    ..
         lda     #$00                            ; 894C A9 00                    ..
@@ -1572,9 +1599,9 @@
         sta     game_display_list               ; 8962 8D 81 08                 ...
         lda     $06EA                           ; 8965 AD EA 06                 ...
         bne     L89A9                           ; 8968 D0 3F                    .?
-L896A:  inc     $0683                           ; 896A EE 83 06                 ...
-        inc     $0683                           ; 896D EE 83 06                 ...
-        lda     $0683                           ; 8970 AD 83 06                 ...
+L896A:  inc     player_y_pos                    ; 896A EE 83 06                 ...
+        inc     player_y_pos                    ; 896D EE 83 06                 ...
+        lda     player_y_pos                    ; 8970 AD 83 06                 ...
         sta     AUDF1                           ; 8973 8D 00 D2                 ...
         lda     #$A3                            ; 8976 A9 A3                    ..
         sta     AUDC1                           ; 8978 8D 01 D2                 ...
@@ -1610,26 +1637,26 @@
         jmp     L896A                           ; 89B5 4C 6A 89                 Lj.
 
 ; ----------------------------------------------------------------------------
-L89B8:  ldy     data_table_8a39,x               ; 89B8 BC 39 8A                 .9.
+L89B8:  ldy     falling_table_1,x               ; 89B8 BC 39 8A                 .9.
         lda     $06E9                           ; 89BB AD E9 06                 ...
         cmp     #$01                            ; 89BE C9 01                    ..
         beq     L89D1                           ; 89C0 F0 0F                    ..
         ldy     #$00                            ; 89C2 A0 00                    ..
         cmp     #$02                            ; 89C4 C9 02                    ..
         beq     L89D1                           ; 89C6 F0 09                    ..
-        lda     data_table_8a39,x               ; 89C8 BD 39 8A                 .9.
+        lda     falling_table_1,x               ; 89C8 BD 39 8A                 .9.
         eor     #$FF                            ; 89CB 49 FF                    I.
         clc                                     ; 89CD 18                       .
         adc     #$01                            ; 89CE 69 01                    i.
         tay                                     ; 89D0 A8                       .
 L89D1:  clc                                     ; 89D1 18                       .
         tya                                     ; 89D2 98                       .
-        adc     $067E                           ; 89D3 6D 7E 06                 m~.
-        sta     $067E                           ; 89D6 8D 7E 06                 .~.
-        lda     L8A42,x                         ; 89D9 BD 42 8A                 .B.
+        adc     player_x_pos                    ; 89D3 6D 7E 06                 m~.
+        sta     player_x_pos                    ; 89D6 8D 7E 06                 .~.
+        lda     falling_table_2,x               ; 89D9 BD 42 8A                 .B.
         clc                                     ; 89DC 18                       .
-        adc     $0683                           ; 89DD 6D 83 06                 m..
-        sta     $0683                           ; 89E0 8D 83 06                 ...
+        adc     player_y_pos                    ; 89DD 6D 83 06                 m..
+        sta     player_y_pos                    ; 89E0 8D 83 06                 ...
         sta     AUDF1                           ; 89E3 8D 00 D2                 ...
         inc     $06EA                           ; 89E6 EE EA 06                 ...
         clc                                     ; 89E9 18                       .
@@ -1671,16 +1698,17 @@
         sta     player_speed                    ; 8A27 8D 24 06                 .$.
         lda     #$00                            ; 8A2A A9 00                    ..
         sta     $0623                           ; 8A2C 8D 23 06                 .#.
-        sta     $067E                           ; 8A2F 8D 7E 06                 .~.
+        sta     player_x_pos                    ; 8A2F 8D 7E 06                 .~.
         dec     lives                           ; 8A32 CE 0A 07                 ...
         sta     $06EE                           ; 8A35 8D EE 06                 ...
         rts                                     ; 8A38 60                       `
 
 ; ----------------------------------------------------------------------------
-data_table_8a39:
+falling_table_1:
         .byte   $02,$02,$02,$02,$02,$02,$00,$00 ; 8A39 02 02 02 02 02 02 00 00  ........
         .byte   $00                             ; 8A41 00                       .
-L8A42:  .byte   $FE,$FE,$00,$00,$02,$02,$02,$02 ; 8A42 FE FE 00 00 02 02 02 02  ........
+falling_table_2:
+        .byte   $FE,$FE,$00,$00,$02,$02,$02,$02 ; 8A42 FE FE 00 00 02 02 02 02  ........
         .byte   $02                             ; 8A4A 02                       .
 ; used when jumpman is falling?
 sfx_bounce_1:
@@ -1721,7 +1749,7 @@
         lda     #$00                            ; 8AC2 A9 00                    ..
 ; clear pages 6 and 7
 init_loop:
-        sta     $0600,x                         ; 8AC4 9D 00 06                 ...
+        sta     page6_vectors,x                 ; 8AC4 9D 00 06                 ...
         sta     score,x                         ; 8AC7 9D 00 07                 ...
         inx                                     ; 8ACA E8                       .
         bne     init_loop                       ; 8ACB D0 F7                    ..
@@ -1765,7 +1793,7 @@
 ; ----------------------------------------------------------------------------
 L8B23:  ldx     #$20                            ; 8B23 A2 20                    . 
         lda     #$00                            ; 8B25 A9 00                    ..
-L8B27:  sta     $075F,x                         ; 8B27 9D 5F 07                 ._.
+L8B27:  sta     bullet_y_delta+1,x              ; 8B27 9D 5F 07                 ._.
         dex                                     ; 8B2A CA                       .
         bne     L8B27                           ; 8B2B D0 FA                    ..
 L8B2D:  lda     work_level_unkn_table0          ; 8B2D AD 94 07                 ...
@@ -2231,73 +2259,94 @@
 zero_filler_8e67:
         .byte   $00,$00                         ; 8E67 00 00                    ..
 ; ----------------------------------------------------------------------------
+; not sure what $0622, $0623 are for yet
+bullet_logic:
         lda     $0622                           ; 8E69 AD 22 06                 .".
-        beq     L8E75                           ; 8E6C F0 07                    ..
+        beq     no_bullet                       ; 8E6C F0 07                    ..
         lda     $0623                           ; 8E6E AD 23 06                 .#.
         cmp     #$02                            ; 8E71 C9 02                    ..
-        bne     L8E76                           ; 8E73 D0 01                    ..
-L8E75:  rts                                     ; 8E75 60                       `
-
-; ----------------------------------------------------------------------------
-L8E76:  ldx     #$FF                            ; 8E76 A2 FF                    ..
-L8E78:  inx                                     ; 8E78 E8                       .
-        cpx     work_level_bullet_chance        ; 8E79 EC 8B 07                 ...
-        beq     L8E75                           ; 8E7C F0 F7                    ..
-        lda     $0756,x                         ; 8E7E BD 56 07                 .V.
-        bne     L8EB9                           ; 8E81 D0 36                    .6
-        inc     $0756,x                         ; 8E83 FE 56 07                 .V.
-L8E86:  lda     RANDOM                          ; 8E86 AD 0A D2                 ...
+        bne     want_bullet                     ; 8E73 D0 01                    ..
+no_bullet:
+        rts                                     ; 8E75 60                       `
+
+; ----------------------------------------------------------------------------
+; create a bullet unless there are already max_bullets of them
+want_bullet:
+        ldx     #$FF                            ; 8E76 A2 FF                    ..
+next_bullet_slot:
+        inx                                     ; 8E78 E8                       .
+        cpx     work_level_bullet_max           ; 8E79 EC 8B 07                 ...
+        beq     no_bullet                       ; 8E7C F0 F7                    ..
+        lda     bullet_flags,x                  ; 8E7E BD 56 07                 .V.
+        bne     fire_when_ready                 ; 8E81 D0 36                    .6
+        inc     bullet_flags,x                  ; 8E83 FE 56 07                 .V.
+; A = rand() % 3 + 1; // bullets only come from left, right, or top (never bottom)
+rand_1_to_3:
+        lda     RANDOM                          ; 8E86 AD 0A D2                 ...
         and     #$03                            ; 8E89 29 03                    ).
-        beq     L8E86                           ; 8E8B F0 F9                    ..
+        beq     rand_1_to_3                     ; 8E8B F0 F9                    ..
         tay                                     ; 8E8D A8                       .
         lda     RANDOM                          ; 8E8E AD 0A D2                 ...
-        sta     $069B,x                         ; 8E91 9D 9B 06                 ...
-        sta     $069F,x                         ; 8E94 9D 9F 06                 ...
-        lda     L8F42,y                         ; 8E97 B9 42 8F                 .B.
+        sta     bullet_x_pos,x                  ; 8E91 9D 9B 06                 ...
+        sta     bullet_y_pos,x                  ; 8E94 9D 9F 06                 ...
+        lda     bullet_table_minus_one,y        ; 8E97 B9 42 8F                 .B.
         beq     L8E9F                           ; 8E9A F0 03                    ..
-        sta     $069B,x                         ; 8E9C 9D 9B 06                 ...
+        sta     bullet_x_pos,x                  ; 8E9C 9D 9B 06                 ...
 L8E9F:  lda     L8F45,y                         ; 8E9F B9 45 8F                 .E.
-        beq     L8EA7                           ; 8EA2 F0 03                    ..
-        sta     $069F,x                         ; 8EA4 9D 9F 06                 ...
-L8EA7:  lda     RANDOM                          ; 8EA7 AD 0A D2                 ...
+        beq     set_bullet_dir                  ; 8EA2 F0 03                    ..
+        sta     bullet_y_pos,x                  ; 8EA4 9D 9F 06                 ...
+; initial direction (before it fires)
+set_bullet_dir:
+        lda     RANDOM                          ; 8EA7 AD 0A D2                 ...
         and     #$03                            ; 8EAA 29 03                    ).
         tay                                     ; 8EAC A8                       .
         lda     L8F49,y                         ; 8EAD B9 49 8F                 .I.
-        sta     $075A,x                         ; 8EB0 9D 5A 07                 .Z.
+        sta     bullet_x_delta,x                ; 8EB0 9D 5A 07                 .Z.
         lda     L8F4D,y                         ; 8EB3 B9 4D 8F                 .M.
-        sta     $075E,x                         ; 8EB6 9D 5E 07                 .^.
-L8EB9:  cmp     #$02                            ; 8EB9 C9 02                    ..
-        beq     L8F11                           ; 8EBB F0 54                    .T
-        lda     $069B,x                         ; 8EBD BD 9B 06                 ...
+        sta     bullet_y_delta,x                ; 8EB6 9D 5E 07                 .^.
+; fire at player if lined up with him, otherwise don't. either way we end up at move_bullet
+fire_when_ready:
+        cmp     #$02                            ; 8EB9 C9 02                    ..
+        beq     move_bullet                     ; 8EBB F0 54                    .T
+        lda     bullet_x_pos,x                  ; 8EBD BD 9B 06                 ...
         sec                                     ; 8EC0 38                       8
-        sbc     #$03                            ; 8EC1 E9 03                    ..
-        cmp     $067E                           ; 8EC3 CD 7E 06                 .~.
-        beq     L8ED6                           ; 8EC6 F0 0E                    ..
-        lda     $069F,x                         ; 8EC8 BD 9F 06                 ...
+; aim at center of body mass!
+sbc3:   sbc     #$03                            ; 8EC1 E9 03                    ..
+        cmp     player_x_pos                    ; 8EC3 CD 7E 06                 .~.
+        beq     aim_bullet_y                    ; 8EC6 F0 0E                    ..
+        lda     bullet_y_pos,x                  ; 8EC8 BD 9F 06                 ...
         sec                                     ; 8ECB 38                       8
         sbc     #$04                            ; 8ECC E9 04                    ..
-        cmp     $0683                           ; 8ECE CD 83 06                 ...
-        beq     L8EE4                           ; 8ED1 F0 11                    ..
-        jmp     L8F11                           ; 8ED3 4C 11 8F                 L..
+        cmp     player_y_pos                    ; 8ECE CD 83 06                 ...
+        beq     aim_bullet_x                    ; 8ED1 F0 11                    ..
+        jmp     move_bullet                     ; 8ED3 4C 11 8F                 L..
 
 ; ----------------------------------------------------------------------------
-L8ED6:  ldy     #$00                            ; 8ED6 A0 00                    ..
-        lda     $069F,x                         ; 8ED8 BD 9F 06                 ...
-        cmp     $0683                           ; 8EDB CD 83 06                 ...
-        bcs     L8EEF                           ; 8EDE B0 0F                    ..
+; take aim!
+aim_bullet_y:
+        ldy     #$00                            ; 8ED6 A0 00                    ..
+        lda     bullet_y_pos,x                  ; 8ED8 BD 9F 06                 ...
+        cmp     player_y_pos                    ; 8EDB CD 83 06                 ...
+        bcs     fire_bullet                     ; 8EDE B0 0F                    ..
         iny                                     ; 8EE0 C8                       .
-        jmp     L8EEF                           ; 8EE1 4C EF 8E                 L..
+        jmp     fire_bullet                     ; 8EE1 4C EF 8E                 L..
 
 ; ----------------------------------------------------------------------------
-L8EE4:  ldy     #$02                            ; 8EE4 A0 02                    ..
-        lda     $069B,x                         ; 8EE6 BD 9B 06                 ...
-        cmp     $067E                           ; 8EE9 CD 7E 06                 .~.
-        bcs     L8EEF                           ; 8EEC B0 01                    ..
+; take aim!
+aim_bullet_x:
+        ldy     #$02                            ; 8EE4 A0 02                    ..
+        lda     bullet_x_pos,x                  ; 8EE6 BD 9B 06                 ...
+        cmp     player_x_pos                    ; 8EE9 CD 7E 06                 .~.
+        bcs     fire_bullet                     ; 8EEC B0 01                    ..
         iny                                     ; 8EEE C8                       .
-L8EEF:  lda     L8F51,y                         ; 8EEF B9 51 8F                 .Q.
-        sta     $075A,x                         ; 8EF2 9D 5A 07                 .Z.
+; fire! Y reg indexes table of directions
+fire_bullet:
+        lda     L8F51,y                         ; 8EEF B9 51 8F                 .Q.
+        sta     bullet_x_delta,x                ; 8EF2 9D 5A 07                 .Z.
         lda     L8F55,y                         ; 8EF5 B9 55 8F                 .U.
-        sta     $075E,x                         ; 8EF8 9D 5E 07                 .^.
+        sta     bullet_y_delta,x                ; 8EF8 9D 5E 07                 .^.
+; let player hear report
+play_sfx_bullet:
         lda     #$59                            ; 8EFB A9 59                    .Y
         sta     sfx_slot_tempo                  ; 8EFD 8D 3E 06                 .>.
         lda     #$8F                            ; 8F00 A9 8F                    ..
@@ -2308,44 +2357,49 @@
         jsr     cue_sfx_lowprior_jv             ; 8F09 20 03 80                  ..
         pla                                     ; 8F0C 68                       h
         tax                                     ; 8F0D AA                       .
-        inc     $0756,x                         ; 8F0E FE 56 07                 .V.
-L8F11:  lda     $069B,x                         ; 8F11 BD 9B 06                 ...
+        inc     bullet_flags,x                  ; 8F0E FE 56 07                 .V.
+move_bullet:
+        lda     bullet_x_pos,x                  ; 8F11 BD 9B 06                 ...
         clc                                     ; 8F14 18                       .
-        adc     $075A,x                         ; 8F15 7D 5A 07                 }Z.
+        adc     bullet_x_delta,x                ; 8F15 7D 5A 07                 }Z.
         cmp     #$03                            ; 8F18 C9 03                    ..
         bcc     code_8f38                       ; 8F1A 90 1C                    ..
         cmp     #$FD                            ; 8F1C C9 FD                    ..
         bcs     code_8f38                       ; 8F1E B0 18                    ..
-        sta     $069B,x                         ; 8F20 9D 9B 06                 ...
-        lda     $069F,x                         ; 8F23 BD 9F 06                 ...
+        sta     bullet_x_pos,x                  ; 8F20 9D 9B 06                 ...
+        lda     bullet_y_pos,x                  ; 8F23 BD 9F 06                 ...
         clc                                     ; 8F26 18                       .
-        adc     $075E,x                         ; 8F27 7D 5E 07                 }^.
+        adc     bullet_y_delta,x                ; 8F27 7D 5E 07                 }^.
         cmp     #$03                            ; 8F2A C9 03                    ..
         bcc     code_8f38                       ; 8F2C 90 0A                    ..
         cmp     #$CE                            ; 8F2E C9 CE                    ..
         bcs     code_8f38                       ; 8F30 B0 06                    ..
-        sta     $069F,x                         ; 8F32 9D 9F 06                 ...
-        jmp     L8E78                           ; 8F35 4C 78 8E                 Lx.
+        sta     bullet_y_pos,x                  ; 8F32 9D 9F 06                 ...
+        jmp     next_bullet_slot                ; 8F35 4C 78 8E                 Lx.
 
 ; ----------------------------------------------------------------------------
 code_8f38:
         lda     #$00                            ; 8F38 A9 00                    ..
-        sta     $0756,x                         ; 8F3A 9D 56 07                 .V.
-        sta     $069B,x                         ; 8F3D 9D 9B 06                 ...
-L8F42           := * + 2
-        jmp     L8E78                           ; 8F40 4C 78 8E                 Lx.
+        sta     bullet_flags,x                  ; 8F3A 9D 56 07                 .V.
+        sta     bullet_x_pos,x                  ; 8F3D 9D 9B 06                 ...
+bullet_table_minus_one:= * + 2                  ; 1-indexed
+        jmp     next_bullet_slot                ; 8F40 4C 78 8E                 Lx.
 
 ; ----------------------------------------------------------------------------
-data_8f43:
+; used by bullet_logic
+bullet_table:
         .byte   $04,$FC                         ; 8F43 04 FC                    ..
 L8F45:  .byte   $00,$00,$00,$04                 ; 8F45 00 00 00 04              ....
 L8F49:  .byte   $FF,$00,$01,$00                 ; 8F49 FF 00 01 00              ....
 L8F4D:  .byte   $00,$FF,$00,$01                 ; 8F4D 00 FF 00 01              ....
 L8F51:  .byte   $00,$00,$FD,$03                 ; 8F51 00 00 FD 03              ....
-L8F55:  .byte   $FD,$03,$00,$00,$01,$8E,$00,$14 ; 8F55 FD 03 00 00 01 8E 00 14  ........
-        .byte   $02,$01,$8B,$00,$14,$03,$01,$88 ; 8F5D 02 01 8B 00 14 03 01 88  ........
-        .byte   $00,$14,$05,$01,$85,$00,$14,$07 ; 8F65 00 14 05 01 85 00 14 07  ........
-        .byte   $01,$82,$00,$14,$09,$00         ; 8F6D 01 82 00 14 09 00        ......
+L8F55:  .byte   $FD,$03,$00,$00                 ; 8F55 FD 03 00 00              ....
+; bang!
+sfx_bullet:
+        .byte   $01,$8E,$00,$14,$02,$01,$8B,$00 ; 8F59 01 8E 00 14 02 01 8B 00  ........
+        .byte   $14,$03,$01,$88,$00,$14,$05,$01 ; 8F61 14 03 01 88 00 14 05 01  ........
+        .byte   $85,$00,$14,$07,$01,$82,$00,$14 ; 8F69 85 00 14 07 01 82 00 14  ........
+        .byte   $09,$00                         ; 8F71 09 00                    ..
 ; ----------------------------------------------------------------------------
 ; did any missile hit a player, or did players 2 or 3 hit a player...
 check_collisions_1:
@@ -3275,9 +3329,9 @@
         sta     $BA                             ; 979A 85 BA                    ..
         sta     AUDF4                           ; 979C 8D 06 D2                 ...
         lda     work_level_y_start              ; 979F AD 8C 07                 ...
-        sta     $0683                           ; 97A2 8D 83 06                 ...
+        sta     player_y_pos                    ; 97A2 8D 83 06                 ...
         lda     work_level_x_start              ; 97A5 AD 8D 07                 ...
-        sta     $067E                           ; 97A8 8D 7E 06                 .~.
+        sta     player_x_pos                    ; 97A8 8D 7E 06                 .~.
         lda     #$01                            ; 97AB A9 01                    ..
         sta     $0688                           ; 97AD 8D 88 06                 ...
         lda     #$A5                            ; 97B0 A9 A5                    ..
@@ -3323,14 +3377,16 @@
         .byte   $00,$00,$00,$00,$00,$00,$00,$00 ; 97F0 00 00 00 00 00 00 00 00  ........
         .byte   $00,$00,$00,$00,$00,$00,$00,$00 ; 97F8 00 00 00 00 00 00 00 00  ........
 ; ----------------------------------------------------------------------------
-        lda     $0621                           ; 9800 AD 21 06                 .!.
+; called via vector in page 6
+check_falling_1:
+        lda     falling_flag                    ; 9800 AD 21 06                 .!.
         bne     L9806                           ; 9803 D0 01                    ..
 L9805:  rts                                     ; 9805 60                       `
 
 ; ----------------------------------------------------------------------------
 L9806:  lda     $0623                           ; 9806 AD 23 06                 .#.
         bne     L9805                           ; 9809 D0 FA                    ..
-        lda     $0683                           ; 980B AD 83 06                 ...
+        lda     player_y_pos                    ; 980B AD 83 06                 ...
         cmp     #$C6                            ; 980E C9 C6                    ..
         bcs     L982E                           ; 9810 B0 1C                    ..
         lda     jump_frame                      ; 9812 AD EB 06                 ...
@@ -3361,8 +3417,8 @@
         and     #$03                            ; 983D 29 03                    ).
         bne     check_trigger_state             ; 983F D0 0C                    ..
         inc     $06ED                           ; 9841 EE ED 06                 ...
-        inc     $0683                           ; 9844 EE 83 06                 ...
-        inc     $0683                           ; 9847 EE 83 06                 ...
+        inc     player_y_pos                    ; 9844 EE 83 06                 ...
+        inc     player_y_pos                    ; 9847 EE 83 06                 ...
         jmp     L989F                           ; 984A 4C 9F 98                 L..
 
 ; ----------------------------------------------------------------------------
@@ -3398,12 +3454,12 @@
         jmp     L98D0                           ; 9875 4C D0 98                 L..
 
 ; ----------------------------------------------------------------------------
-L9878:  sta     $067E                           ; 9878 8D 7E 06                 .~.
+L9878:  sta     player_x_pos                    ; 9878 8D 7E 06                 .~.
         lda     player_delta_y                  ; 987B AD 31 06                 .1.
         asl     a                               ; 987E 0A                       .
         clc                                     ; 987F 18                       .
-        adc     $0683                           ; 9880 6D 83 06                 m..
-        sta     $0683                           ; 9883 8D 83 06                 ...
+        adc     player_y_pos                    ; 9880 6D 83 06                 m..
+        sta     player_y_pos                    ; 9883 8D 83 06                 ...
         lda     $0620                           ; 9886 AD 20 06                 . .
         clc                                     ; 9889 18                       .
         adc     #$04                            ; 988A 69 04                    i.
@@ -3426,8 +3482,8 @@
         beq     L98AD                           ; 98A9 F0 02                    ..
         ldx     #$0C                            ; 98AB A2 0C                    ..
 L98AD:  clc                                     ; 98AD 18                       .
-        adc     $067E                           ; 98AE 6D 7E 06                 m~.
-        sta     $067E                           ; 98B1 8D 7E 06                 .~.
+        adc     player_x_pos                    ; 98AE 6D 7E 06                 m~.
+        sta     player_x_pos                    ; 98B1 8D 7E 06                 .~.
         txa                                     ; 98B4 8A                       .
         clc                                     ; 98B5 18                       .
         adc     $0620                           ; 98B6 6D 20 06                 m .
@@ -3446,8 +3502,8 @@
         beq     L98F0                           ; 98D8 F0 16                    ..
         jsr     L9971                           ; 98DA 20 71 99                  q.
         bcc     L990F                           ; 98DD 90 30                    .0
-        inc     $0683                           ; 98DF EE 83 06                 ...
-        inc     $0683                           ; 98E2 EE 83 06                 ...
+        inc     player_y_pos                    ; 98DF EE 83 06                 ...
+        inc     player_y_pos                    ; 98E2 EE 83 06                 ...
         lda     $061F                           ; 98E5 AD 1F 06                 ...
         ora     #$02                            ; 98E8 09 02                    ..
         sta     $0688                           ; 98EA 8D 88 06                 ...
@@ -3457,8 +3513,8 @@
 L98F0:  lda     collision_save+4                ; 98F0 AD B4 06                 ...
         and     #$01                            ; 98F3 29 01                    ).
         beq     L990F                           ; 98F5 F0 18                    ..
-        dec     $0683                           ; 98F7 CE 83 06                 ...
-        dec     $0683                           ; 98FA CE 83 06                 ...
+        dec     player_y_pos                    ; 98F7 CE 83 06                 ...
+        dec     player_y_pos                    ; 98FA CE 83 06                 ...
         lda     $0688                           ; 98FD AD 88 06                 ...
         cmp     #$01                            ; 9900 C9 01                    ..
         bne     L990F                           ; 9902 D0 0B                    ..
@@ -3479,9 +3535,9 @@
         sta     $0688                           ; 9922 8D 88 06                 ...
 L9925:  lda     $0688                           ; 9925 AD 88 06                 ...
         sta     $0689                           ; 9928 8D 89 06                 ...
-        lda     $067E                           ; 992B AD 7E 06                 .~.
+        lda     player_x_pos                    ; 992B AD 7E 06                 .~.
         sta     $067F                           ; 992E 8D 7F 06                 ...
-        lda     $0683                           ; 9931 AD 83 06                 ...
+        lda     player_y_pos                    ; 9931 AD 83 06                 ...
         clc                                     ; 9934 18                       .
         adc     #$0A                            ; 9935 69 0A                    i.
         sta     $0684                           ; 9937 8D 84 06                 ...
@@ -3493,10 +3549,10 @@
         lda     joystick_state                  ; 993B AD 33 06                 .3.
         cmp     #$0D                            ; 993E C9 0D                    ..
         bne     L9949                           ; 9940 D0 07                    ..
-        lda     $0683                           ; 9942 AD 83 06                 ...
+        lda     player_y_pos                    ; 9942 AD 83 06                 ...
         cmp     #$C0                            ; 9945 C9 C0                    ..
         bcs     L9967                           ; 9947 B0 1E                    ..
-L9949:  lda     $067E                           ; 9949 AD 7E 06                 .~.
+L9949:  lda     player_x_pos                    ; 9949 AD 7E 06                 .~.
         sec                                     ; 994C 38                       8
         sbc     #$30                            ; 994D E9 30                    .0
         sta     zp_temp1                        ; 994F 85 CB                    ..
@@ -3523,7 +3579,7 @@
         rts                                     ; 9970 60                       `
 
 ; ----------------------------------------------------------------------------
-L9971:  lda     $067E                           ; 9971 AD 7E 06                 .~.
+L9971:  lda     player_x_pos                    ; 9971 AD 7E 06                 .~.
         sec                                     ; 9974 38                       8
         sbc     #$30                            ; 9975 E9 30                    .0
         ldx     #$06                            ; 9977 A2 06                    ..
@@ -3598,12 +3654,12 @@
 L99DB:  ldy     #$00                            ; 99DB A0 00                    ..
 L99DD:  clc                                     ; 99DD 18                       .
         tya                                     ; 99DE 98                       .
-        adc     $067E                           ; 99DF 6D 7E 06                 m~.
-        sta     $067E                           ; 99E2 8D 7E 06                 .~.
+        adc     player_x_pos                    ; 99DF 6D 7E 06                 m~.
+        sta     player_x_pos                    ; 99E2 8D 7E 06                 .~.
         lda     jump_delta_y_table_minus_one,x  ; 99E5 BD 31 9A                 .1.
         clc                                     ; 99E8 18                       .
-        adc     $0683                           ; 99E9 6D 83 06                 m..
-        sta     $0683                           ; 99EC 8D 83 06                 ...
+        adc     player_y_pos                    ; 99E9 6D 83 06                 m..
+        sta     player_y_pos                    ; 99EC 8D 83 06                 ...
         txa                                     ; 99EF 8A                       .
         cmp     #$08                            ; 99F0 C9 08                    ..
         bcs     code_99f7                       ; 99F2 B0 03                    ..
@@ -3624,7 +3680,7 @@
         bcs     end_jump                        ; 9A0D B0 A3                    ..
         jsr     check_up_down_2                 ; 9A0F 20 3B 99                  ;.
         bcc     L9A19                           ; 9A12 90 05                    ..
-        cmp     $067E                           ; 9A14 CD 7E 06                 .~.
+        cmp     player_x_pos                    ; 9A14 CD 7E 06                 .~.
         beq     end_jump                        ; 9A17 F0 99                    ..
 L9A19:
 jump_delta_x_table_minus_one:= * + 2            ; 1-indexed...
@@ -4102,8 +4158,8 @@
 ; number of bombs to pick up on this level
 level00_num_bombs:
         .byte   $0C                             ; A00A 0C                       .
-; 0 = no bullets
-level00_bullet_chance:
+; 0 = no bullets, range 0-4.
+level00_bullet_max:
         .byte   $01                             ; A00B 01                       .
 ; jumpman starting Y position
 level00_y_start:
@@ -4195,8 +4251,8 @@
 ; number of bombs to pick up on this level
 level01_num_bombs:
         .byte   $10                             ; A04A 10                       .
-; 0 = no bullets
-level01_bullet_chance:
+; 0 = no bullets, range 0-4.
+level01_bullet_max:
         .byte   $02                             ; A04B 02                       .
 ; jumpman starting Y position
 level01_y_start:
@@ -4288,8 +4344,8 @@
 ; number of bombs to pick up on this level
 level02_num_bombs:
         .byte   $0C                             ; A08A 0C                       .
-; 0 = no bullets
-level02_bullet_chance:
+; 0 = no bullets, range 0-4.
+level02_bullet_max:
         .byte   $00                             ; A08B 00                       .
 ; jumpman starting Y position
 level02_y_start:
@@ -4381,8 +4437,8 @@
 ; number of bombs to pick up on this level
 level03_num_bombs:
         .byte   $10                             ; A0CA 10                       .
-; 0 = no bullets
-level03_bullet_chance:
+; 0 = no bullets, range 0-4.
+level03_bullet_max:
         .byte   $00                             ; A0CB 00                       .
 ; jumpman starting Y position
 level03_y_start:
@@ -4474,8 +4530,8 @@
 ; number of bombs to pick up on this level
 level04_num_bombs:
         .byte   $0E                             ; A10A 0E                       .
-; 0 = no bullets
-level04_bullet_chance:
+; 0 = no bullets, range 0-4.
+level04_bullet_max:
         .byte   $02                             ; A10B 02                       .
 ; jumpman starting Y position
 level04_y_start:
@@ -4567,8 +4623,8 @@
 ; number of bombs to pick up on this level
 level05_num_bombs:
         .byte   $10                             ; A14A 10                       .
-; 0 = no bullets
-level05_bullet_chance:
+; 0 = no bullets, range 0-4.
+level05_bullet_max:
         .byte   $00                             ; A14B 00                       .
 ; jumpman starting Y position
 level05_y_start:
@@ -4646,7 +4702,7 @@
 ; ----------------------------------------------------------------------------
 ; a subroutine
 level06_sub0:
-        .addr   LAD68                           ; A182 68 AD                    h.
+        .addr   zigzag_sub0                     ; A182 68 AD                    h.
 ; a subroutine
 level06_sub1:
         .addr   L0000                           ; A184 00 00                    ..
@@ -4660,8 +4716,8 @@
 ; number of bombs to pick up on this level
 level06_num_bombs:
         .byte   $0E                             ; A18A 0E                       .
-; 0 = no bullets
-level06_bullet_chance:
+; 0 = no bullets, range 0-4.
+level06_bullet_max:
         .byte   $03                             ; A18B 03                       .
 ; jumpman starting Y position
 level06_y_start:
@@ -4753,8 +4809,8 @@
 ; number of bombs to pick up on this level
 level07_num_bombs:
         .byte   $0C                             ; A1CA 0C                       .
-; 0 = no bullets
-level07_bullet_chance:
+; 0 = no bullets, range 0-4.
+level07_bullet_max:
         .byte   $02                             ; A1CB 02                       .
 ; jumpman starting Y position
 level07_y_start:
@@ -4846,8 +4902,8 @@
 ; number of bombs to pick up on this level
 level08_num_bombs:
         .byte   $08                             ; A20A 08                       .
-; 0 = no bullets
-level08_bullet_chance:
+; 0 = no bullets, range 0-4.
+level08_bullet_max:
         .byte   $00                             ; A20B 00                       .
 ; jumpman starting Y position
 level08_y_start:
@@ -4939,8 +4995,8 @@
 ; number of bombs to pick up on this level
 level09_num_bombs:
         .byte   $0C                             ; A24A 0C                       .
-; 0 = no bullets
-level09_bullet_chance:
+; 0 = no bullets, range 0-4.
+level09_bullet_max:
         .byte   $02                             ; A24B 02                       .
 ; jumpman starting Y position
 level09_y_start:
@@ -5032,8 +5088,8 @@
 ; number of bombs to pick up on this level
 level10_num_bombs:
         .byte   $0F                             ; A28A 0F                       .
-; 0 = no bullets
-level10_bullet_chance:
+; 0 = no bullets, range 0-4.
+level10_bullet_max:
         .byte   $00                             ; A28B 00                       .
 ; jumpman starting Y position
 level10_y_start:
@@ -5125,8 +5181,8 @@
 ; number of bombs to pick up on this level
 level11_num_bombs:
         .byte   $0E                             ; A2CA 0E                       .
-; 0 = no bullets
-level11_bullet_chance:
+; 0 = no bullets, range 0-4.
+level11_bullet_max:
         .byte   $00                             ; A2CB 00                       .
 ; jumpman starting Y position
 level11_y_start:
@@ -5154,7 +5210,7 @@
         .addr   LB658                           ; A2D4 58 B6                    X.
 ; map data
 level11_map0:
-        .addr   LB590                           ; A2D6 90 B5                    ..
+        .addr   data_b590                       ; A2D6 90 B5                    ..
 ; map data
 level11_map1:
         .addr   LB5D2                           ; A2D8 D2 B5                    ..
@@ -5292,7 +5348,7 @@
 electrocution_done:
         lda     $0623                           ; A4DD AD 23 06                 .#.
         bne     LA4FF                           ; A4E0 D0 1D                    ..
-        lda     $0621                           ; A4E2 AD 21 06                 .!.
+        lda     falling_flag                    ; A4E2 AD 21 06                 .!.
         bne     LA4E8                           ; A4E5 D0 01                    ..
         rts                                     ; A4E7 60                       `
 
@@ -5403,7 +5459,7 @@
 dumbwaiter_setup:
         jsr     L8036                           ; A68C 20 36 80                  6.
         lda     #$06                            ; A68F A9 06                    ..
-        sta     $0760                           ; A691 8D 60 07                 .`.
+        sta     bullet_y_delta+2                ; A691 8D 60 07                 .`.
         ldy     #$2A                            ; A694 A0 2A                    .*
 LA696:  ldx     #$06                            ; A696 A2 06                    ..
 LA698:  lda     LA781,x                         ; A698 BD 81 A7                 ...
@@ -5415,7 +5471,7 @@
         clc                                     ; A6A3 18                       .
         adc     #$1A                            ; A6A4 69 1A                    i.
         tay                                     ; A6A6 A8                       .
-        dec     $0760                           ; A6A7 CE 60 07                 .`.
+        dec     bullet_y_delta+2                ; A6A7 CE 60 07                 .`.
         bne     LA696                           ; A6AA D0 EA                    ..
         lda     #$FF                            ; A6AC A9 FF                    ..
         sta     SIZEM                           ; A6AE 8D 0C D0                 ...
@@ -5501,7 +5557,7 @@
         lda     collision_save+4                ; A755 AD B4 06                 ...
         ora     #$01                            ; A758 09 01                    ..
         sta     collision_save+4                ; A75A 8D B4 06                 ...
-        inc     $0683                           ; A75D EE 83 06                 ...
+        inc     player_y_pos                    ; A75D EE 83 06                 ...
 LA760:  tya                                     ; A760 98                       .
         and     #$02                            ; A761 29 02                    ).
         beq     LA779                           ; A763 F0 14                    ..
@@ -5511,14 +5567,14 @@
         txa                                     ; A76D 8A                       .
         and     #$02                            ; A76E 29 02                    ).
         beq     LA778                           ; A770 F0 06                    ..
-        inc     $0683                           ; A772 EE 83 06                 ...
+        inc     player_y_pos                    ; A772 EE 83 06                 ...
         sta     $0778                           ; A775 8D 78 07                 .x.
 LA778:  rts                                     ; A778 60                       `
 
 ; ----------------------------------------------------------------------------
-LA779:  lda     $0683                           ; A779 AD 83 06                 ...
+LA779:  lda     player_y_pos                    ; A779 AD 83 06                 ...
         and     #$FE                            ; A77C 29 FE                    ).
-        sta     $0683                           ; A77E 8D 83 06                 ...
+        sta     player_y_pos                    ; A77E 8D 83 06                 ...
 LA781:  rts                                     ; A781 60                       `
 
 ; ----------------------------------------------------------------------------
@@ -5571,15 +5627,15 @@
 LA843:  ldx     #$05                            ; A843 A2 05                    ..
 LA845:  dex                                     ; A845 CA                       .
         beq     LA842                           ; A846 F0 FA                    ..
-        lda     $075F,x                         ; A848 BD 5F 07                 ._.
+        lda     bullet_y_delta+1,x              ; A848 BD 5F 07                 ._.
         bne     LA865                           ; A84B D0 18                    ..
         lda     RANDOM                          ; A84D AD 0A D2                 ...
         and     #$1F                            ; A850 29 1F                    ).
         bne     LA845                           ; A852 D0 F1                    ..
-        inc     $075F,x                         ; A854 FE 5F 07                 ._.
+        inc     bullet_y_delta+1,x              ; A854 FE 5F 07                 ._.
         lda     #$00                            ; A857 A9 00                    ..
-        sta     $069E,x                         ; A859 9D 9E 06                 ...
-        lda     $067E                           ; A85C AD 7E 06                 .~.
+        sta     bullet_x_pos+3,x                ; A859 9D 9E 06                 ...
+        lda     player_x_pos                    ; A85C AD 7E 06                 .~.
         clc                                     ; A85F 18                       .
         adc     #$03                            ; A860 69 03                    i.
         sta     $069A,x                         ; A862 9D 9A 06                 ...
@@ -5588,7 +5644,7 @@
         lda     dli_vec_shadow_hi,x             ; A86A BD AF 06                 ...
         and     #$01                            ; A86D 29 01                    ).
         beq     LA89E                           ; A86F F0 2D                    .-
-        lda     $067E                           ; A871 AD 7E 06                 .~.
+        lda     player_x_pos                    ; A871 AD 7E 06                 .~.
         clc                                     ; A874 18                       .
         adc     #$03                            ; A875 69 03                    i.
         ldy     #$01                            ; A877 A0 01                    ..
@@ -5615,17 +5671,17 @@
 LA89E:  lda     $0763,x                         ; A89E BD 63 07                 .c.
         bne     LA8C1                           ; A8A1 D0 1E                    ..
 LA8A3:  clc                                     ; A8A3 18                       .
-        lda     $069E,x                         ; A8A4 BD 9E 06                 ...
+        lda     bullet_x_pos+3,x                ; A8A4 BD 9E 06                 ...
         adc     #$02                            ; A8A7 69 02                    i.
         cmp     #$CE                            ; A8A9 C9 CE                    ..
         bcs     LA8B3                           ; A8AB B0 06                    ..
-        sta     $069E,x                         ; A8AD 9D 9E 06                 ...
+        sta     bullet_x_pos+3,x                ; A8AD 9D 9E 06                 ...
         jmp     LA845                           ; A8B0 4C 45 A8                 LE.
 
 ; ----------------------------------------------------------------------------
 LA8B3:  lda     #$00                            ; A8B3 A9 00                    ..
         sta     $069A,x                         ; A8B5 9D 9A 06                 ...
-        sta     $075F,x                         ; A8B8 9D 5F 07                 ._.
+        sta     bullet_y_delta+1,x              ; A8B8 9D 5F 07                 ._.
         sta     $0763,x                         ; A8BB 9D 63 07                 .c.
         jmp     LA845                           ; A8BE 4C 45 A8                 LE.
 
@@ -5642,9 +5698,9 @@
 ; ----------------------------------------------------------------------------
 LA8D4:  tay                                     ; A8D4 A8                       .
         clc                                     ; A8D5 18                       .
-        lda     $069E,x                         ; A8D6 BD 9E 06                 ...
+        lda     bullet_x_pos+3,x                ; A8D6 BD 9E 06                 ...
         adc     LA905,y                         ; A8D9 79 05 A9                 y..
-        sta     $069E,x                         ; A8DC 9D 9E 06                 ...
+        sta     bullet_x_pos+3,x                ; A8DC 9D 9E 06                 ...
         lda     data_table_a8fd,y               ; A8DF B9 FD A8                 ...
         tay                                     ; A8E2 A8                       .
         beq     LA8EF                           ; A8E3 F0 0A                    ..
@@ -5692,9 +5748,8 @@
         .byte   $68,$00,$88,$00,$6A,$00,$8A,$00 ; A9B5 68 00 88 00 6A 00 8A 00  h...j...
         .byte   $2C,$00,$6C,$00,$8C,$00,$CC,$00 ; A9BD 2C 00 6C 00 8C 00 CC 00  ,.l.....
         .byte   $FF                             ; A9C5 FF                       .
-LA9C6:  .byte   $20                             ; A9C6 20                        
 ; ----------------------------------------------------------------------------
-        rol     $80,x                           ; A9C7 36 80                    6.
+LA9C6:  jsr     L8036                           ; A9C6 20 36 80                  6.
         lda     #$02                            ; A9C9 A9 02                    ..
         sta     $0770                           ; A9CB 8D 70 07                 .p.
         sta     $0772                           ; A9CE 8D 72 07                 .r.
@@ -5778,10 +5833,10 @@
         lda     collision_save+7,x              ; AA5F BD B7 06                 ...
         and     #$01                            ; AA62 29 01                    ).
         beq     LAA5C                           ; AA64 F0 F6                    ..
-        lda     $067E                           ; AA66 AD 7E 06                 .~.
+        lda     player_x_pos                    ; AA66 AD 7E 06                 .~.
         clc                                     ; AA69 18                       .
         adc     $076F,x                         ; AA6A 7D 6F 07                 }o.
-        sta     $067E                           ; AA6D 8D 7E 06                 .~.
+        sta     player_x_pos                    ; AA6D 8D 7E 06                 .~.
         jmp     LAA5C                           ; AA70 4C 5C AA                 L\.
 
 ; ----------------------------------------------------------------------------
@@ -5811,9 +5866,20 @@
         .byte   $FE,$EB,$9C,$FD,$00,$04,$50,$00 ; AAA6 FE EB 9C FD 00 04 50 00  ......P.
         .byte   $0C,$FE,$33,$9C,$4E,$05,$01,$FE ; AAAE 0C FE 33 9C 4E 05 01 FE  ..3.N...
         .byte   $C9,$9C,$50,$08,$0A,$FF         ; AAB6 C9 9C 50 08 0A FF        ..P...
-LAABC:  .byte   $AD,$2A,$06,$8D,$C7,$02,$60,$00 ; AABC AD 2A 06 8D C7 02 60 00  .*....`.
-        .byte   $8D,$C7,$02,$60,$00,$09,$40,$45 ; AAC4 8D C7 02 60 00 09 40 45  ...`..@E
-        .byte   $02,$58,$45,$02                 ; AACC 02 58 45 02              .XE.
+; ----------------------------------------------------------------------------
+LAABC:  lda     $062A                           ; AABC AD 2A 06                 .*.
+        sta     COLOR3                          ; AABF 8D C7 02                 ...
+        rts                                     ; AAC2 60                       `
+
+; ----------------------------------------------------------------------------
+        brk                                     ; AAC3 00                       .
+        sta     COLOR3                          ; AAC4 8D C7 02                 ...
+        rts                                     ; AAC7 60                       `
+
+; ----------------------------------------------------------------------------
+; dunno what this is for yet
+map_aac8:
+        .byte   $00,$09,$40,$45,$02,$58,$45,$02 ; AAC8 00 09 40 45 02 58 45 02  ..@E.XE.
 LAAD0:  .byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; AAD0 FE 33 9C FD 04 00 04 05  .3......
         .byte   $02,$1A,$05,$0B,$50,$05,$07,$04 ; AAD8 02 1A 05 0B 50 05 07 04  ....P...
         .byte   $25,$26,$7C,$33,$08,$20,$3B,$03 ; AAE0 25 26 7C 33 08 20 3B 03  %&|3. ;.
@@ -5902,16 +5968,18 @@
         .byte   $9C,$FD,$00,$04,$04,$18,$0E,$FE ; AD5A 9C FD 00 04 04 18 0E FE  ........
         .byte   $89,$9C,$8C,$31,$02,$FF         ; AD62 89 9C 8C 31 02 FF        ...1..
 ; ----------------------------------------------------------------------------
-LAD68:  lda     $0622                           ; AD68 AD 22 06                 .".
+; move bullets in ways that defy the laws of physics and common sense
+zigzag_sub0:
+        lda     $0622                           ; AD68 AD 22 06                 .".
         bne     LAD6E                           ; AD6B D0 01                    ..
 LAD6D:  rts                                     ; AD6D 60                       `
 
 ; ----------------------------------------------------------------------------
 LAD6E:  ldx     #$FF                            ; AD6E A2 FF                    ..
 LAD70:  inx                                     ; AD70 E8                       .
-        cpx     work_level_bullet_chance        ; AD71 EC 8B 07                 ...
+        cpx     work_level_bullet_max           ; AD71 EC 8B 07                 ...
         beq     LAD6D                           ; AD74 F0 F7                    ..
-        lda     $0756,x                         ; AD76 BD 56 07                 .V.
+        lda     bullet_flags,x                  ; AD76 BD 56 07                 .V.
         cmp     #$02                            ; AD79 C9 02                    ..
         beq     LAD8B                           ; AD7B F0 0E                    ..
         sta     $076C,x                         ; AD7D 9D 6C 07                 .l.
@@ -5924,7 +5992,7 @@
 LAD8B:  cmp     $076C,x                         ; AD8B DD 6C 07                 .l.
         beq     LADA1                           ; AD8E F0 11                    ..
         sta     $076C,x                         ; AD90 9D 6C 07                 .l.
-        lda     $075A,x                         ; AD93 BD 5A 07                 .Z.
+        lda     bullet_x_delta,x                ; AD93 BD 5A 07                 .Z.
         beq     LAD9E                           ; AD96 F0 06                    ..
         inc     $0768,x                         ; AD98 FE 68 07                 .h.
         jmp     LADA1                           ; AD9B 4C A1 AD                 L..
@@ -5936,7 +6004,7 @@
         and     #$0F                            ; ADA6 29 0F                    ).
         tay                                     ; ADA8 A8                       .
         lda     data_table_adc7,y               ; ADA9 B9 C7 AD                 ...
-        sta     $075A,x                         ; ADAC 9D 5A 07                 .Z.
+        sta     bullet_x_delta,x                ; ADAC 9D 5A 07                 .Z.
         inc     $0764,x                         ; ADAF FE 64 07                 .d.
         jmp     LAD70                           ; ADB2 4C 70 AD                 Lp.
 
@@ -5946,7 +6014,7 @@
         and     #$0F                            ; ADB8 29 0F                    ).
         tay                                     ; ADBA A8                       .
         lda     data_table_adc7,y               ; ADBB B9 C7 AD                 ...
-        sta     $075E,x                         ; ADBE 9D 5E 07                 .^.
+        sta     bullet_y_delta,x                ; ADBE 9D 5E 07                 .^.
 code_adc1:
         inc     $0768,x                         ; ADC1 FE 68 07                 .h.
         jmp     LAD70                           ; ADC4 4C 70 AD                 Lp.
@@ -5984,9 +6052,16 @@
 LAE8A:  .byte   $03,$00,$00,$01,$7C,$01,$01,$00 ; AE8A 03 00 00 01 7C 01 01 00  ....|...
         .byte   $04,$0C,$AF,$10,$86,$00,$01,$0F ; AE92 04 0C AF 10 86 00 01 0F  ........
         .byte   $FF                             ; AE9A FF                       .
-LAE9B:  .byte   $20,$36,$80,$A9,$C0,$8D,$70,$07 ; AE9B 20 36 80 A9 C0 8D 70 07   6....p.
-        .byte   $60                             ; AEA3 60                       `
-LAEA4:  .byte   $18,$08,$38,$20,$00,$48,$30,$18 ; AEA4 18 08 38 20 00 48 30 18  ..8 .H0.
+; ----------------------------------------------------------------------------
+LAE9B:  jsr     L8036                           ; AE9B 20 36 80                  6.
+        lda     #$C0                            ; AE9E A9 C0                    ..
+        sta     $0770                           ; AEA0 8D 70 07                 .p.
+        rts                                     ; AEA3 60                       `
+
+; ----------------------------------------------------------------------------
+; dunno
+data_table_aea4:
+        .byte   $18,$08,$38,$20,$00,$48,$30,$18 ; AEA4 18 08 38 20 00 48 30 18  ..8 .H0.
         .byte   $28,$10,$10                     ; AEAC 28 10 10                 (..
 ; letters for level07, spellbound (not ASCII or screencodes though)
 epyx_jumpman:
@@ -6002,12 +6077,7 @@
         .byte   $C3,$66,$3C,$18,$18,$18,$18,$18 ; AEF4 C3 66 3C 18 18 18 18 18  .f<.....
         .byte   $C3,$C3,$66,$3C,$3C,$66,$C3,$C3 ; AEFC C3 C3 66 3C 3C 66 C3 C3  ..f<<f..
         .byte   $00,$00,$00,$00,$00,$00,$00,$00 ; AF04 00 00 00 00 00 00 00 00  ........
-        .byte   $40                             ; AF0C 40                       @
-; ----------------------------------------------------------------------------
-        ldy     #$20                            ; AF0D A0 20                    . 
-        rti                                     ; AF0F 40                       @
-
-; ----------------------------------------------------------------------------
+        .byte   $40,$A0,$20,$40                 ; AF0C 40 A0 20 40              @. @
 ; looks almost like code but it's bogus
 data_af10:
         .byte   $E0,$00,$38,$20,$30,$08,$30,$04 ; AF10 E0 00 38 20 30 08 30 04  ..8 0.0.
@@ -6021,7 +6091,7 @@
 LAF23:  lda     $B2                             ; AF23 A5 B2                    ..
         lsr     a                               ; AF25 4A                       J
         tax                                     ; AF26 AA                       .
-        ldy     LAEA4,x                         ; AF27 BC A4 AE                 ...
+        ldy     data_table_aea4,x               ; AF27 BC A4 AE                 ...
         iny                                     ; AF2A C8                       .
         ldx     $0771                           ; AF2B AE 71 07                 .q.
         tya                                     ; AF2E 98                       .
@@ -6214,25 +6284,25 @@
         rts                                     ; B13F 60                       `
 
 ; ----------------------------------------------------------------------------
-LB140:  lda     $0621                           ; B140 AD 21 06                 .!.
+LB140:  lda     falling_flag                    ; B140 AD 21 06                 .!.
         bne     LB146                           ; B143 D0 01                    ..
 LB145:  rts                                     ; B145 60                       `
 
 ; ----------------------------------------------------------------------------
-LB146:  lda     $067E                           ; B146 AD 7E 06                 .~.
+LB146:  lda     player_x_pos                    ; B146 AD 7E 06                 .~.
         cmp     #$34                            ; B149 C9 34                    .4
         bcc     LB145                           ; B14B 90 F8                    ..
         cmp     #$C9                            ; B14D C9 C9                    ..
         bcs     LB145                           ; B14F B0 F4                    ..
         lda     #$0B                            ; B151 A9 0B                    ..
         sta     $97                             ; B153 85 97                    ..
-        lda     $067E                           ; B155 AD 7E 06                 .~.
+        lda     player_x_pos                    ; B155 AD 7E 06                 .~.
         sec                                     ; B158 38                       8
         sbc     #$33                            ; B159 E9 33                    .3
         lsr     a                               ; B15B 4A                       J
         lsr     a                               ; B15C 4A                       J
         sta     $91                             ; B15D 85 91                    ..
-        lda     $0683                           ; B15F AD 83 06                 ...
+        lda     player_y_pos                    ; B15F AD 83 06                 ...
         cmp     #$C3                            ; B162 C9 C3                    ..
         bcs     LB145                           ; B164 B0 DF                    ..
         jsr     LB1D2                           ; B166 20 D2 B1                  ..
@@ -6342,15 +6412,15 @@
         rts                                     ; B286 60                       `
 
 ; ----------------------------------------------------------------------------
-LB287:  inc     $0760                           ; B287 EE 60 07                 .`.
-        lda     $0760                           ; B28A AD 60 07                 .`.
+LB287:  inc     bullet_y_delta+2                ; B287 EE 60 07                 .`.
+        lda     bullet_y_delta+2                ; B28A AD 60 07                 .`.
         and     #$7F                            ; B28D 29 7F                    ).
         beq     LB292                           ; B28F F0 01                    ..
         rts                                     ; B291 60                       `
 
 ; ----------------------------------------------------------------------------
-LB292:  inc     $0761                           ; B292 EE 61 07                 .a.
-        lda     $0761                           ; B295 AD 61 07                 .a.
+LB292:  inc     bullet_y_delta+3                ; B292 EE 61 07                 .a.
+        lda     bullet_y_delta+3                ; B295 AD 61 07                 .a.
         and     #$07                            ; B298 29 07                    ).
         tax                                     ; B29A AA                       .
         lda     LB2D0,x                         ; B29B BD D0 B2                 ...
@@ -6384,9 +6454,9 @@
 
 ; ----------------------------------------------------------------------------
 LB2FD:  lda     $0680                           ; B2FD AD 80 06                 ...
-        sta     $067E                           ; B300 8D 7E 06                 .~.
+        sta     player_x_pos                    ; B300 8D 7E 06                 .~.
         lda     $0685                           ; B303 AD 85 06                 ...
-        sta     $0683                           ; B306 8D 83 06                 ...
+        sta     player_y_pos                    ; B306 8D 83 06                 ...
         lda     #$19                            ; B309 A9 19                    ..
         sta     sfx_ptr                         ; B30B 8D 3C 06                 .<.
         lda     #$B3                            ; B30E A9 B3                    ..
@@ -6513,7 +6583,7 @@
         jsr     cue_sfx_lowprior_jv             ; B4DF 20 03 80                  ..
 LB4E2:  ldy     #$01                            ; B4E2 A0 01                    ..
         lda     $0681                           ; B4E4 AD 81 06                 ...
-        cmp     $067E                           ; B4E7 CD 7E 06                 .~.
+        cmp     player_x_pos                    ; B4E7 CD 7E 06                 .~.
         bcc     LB4EE                           ; B4EA 90 02                    ..
         ldy     #$FF                            ; B4EC A0 FF                    ..
 LB4EE:  sty     $A0                             ; B4EE 84 A0                    ..
@@ -6522,7 +6592,7 @@
         sta     $0681                           ; B4F3 8D 81 06                 ...
         ldy     #$01                            ; B4F6 A0 01                    ..
         lda     $0686                           ; B4F8 AD 86 06                 ...
-        cmp     $0683                           ; B4FB CD 83 06                 ...
+        cmp     player_y_pos                    ; B4FB CD 83 06                 ...
         bcc     LB502                           ; B4FE 90 02                    ..
         ldy     #$FF                            ; B500 A0 FF                    ..
 LB502:  sty     $A0                             ; B502 84 A0                    ..
@@ -6562,7 +6632,8 @@
 ; ----------------------------------------------------------------------------
 zero_filler_8588:
         .byte   $00,$00,$00,$00,$00,$00,$00,$00 ; B588 00 00 00 00 00 00 00 00  ........
-LB590:  .byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B590 FE 33 9C FD 04 00 04 05  .3......
+data_b590:
+        .byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B590 FE 33 9C FD 04 00 04 05  .3......
         .byte   $08,$3C,$05,$0A,$7C,$05,$08,$04 ; B598 08 3C 05 0A 7C 05 08 04  .<..|...
         .byte   $25,$26,$04,$43,$26,$04,$55,$06 ; B5A0 25 26 04 43 26 04 55 06  %&.C&.U.
         .byte   $3C,$55,$0A,$84,$55,$06,$04,$43 ; B5A8 3C 55 0A 84 55 06 04 43  <U..U..C
@@ -6597,9 +6668,13 @@
         .byte   $05,$40,$E0,$38,$1C,$1E,$0D,$02 ; B680 05 40 E0 38 1C 1E 0D 02  .@.8....
         .byte   $05,$40,$EE,$3F,$1E,$1C,$0C,$02 ; B688 05 40 EE 3F 1E 1C 0C 02  .@.?....
         .byte   $05                             ; B690 05                       .
-LB691:  .byte   $AD,$21,$06,$D0,$01,$60         ; B691 AD 21 06 D0 01 60        .!...`
 ; ----------------------------------------------------------------------------
-        inc     $067E                           ; B697 EE 7E 06                 .~.
+LB691:  lda     falling_flag                    ; B691 AD 21 06                 .!.
+        bne     LB697                           ; B694 D0 01                    ..
+        rts                                     ; B696 60                       `
+
+; ----------------------------------------------------------------------------
+LB697:  inc     player_x_pos                    ; B697 EE 7E 06                 .~.
 LB69A:  rts                                     ; B69A 60                       `
 
 ; ----------------------------------------------------------------------------
@@ -6864,7 +6939,7 @@
         sta     $06AB                           ; B97D 8D AB 06                 ...
         sta     $067D                           ; B980 8D 7D 06                 .}.
         sta     $0681                           ; B983 8D 81 06                 ...
-        sta     $067E                           ; B986 8D 7E 06                 .~.
+        sta     player_x_pos                    ; B986 8D 7E 06                 .~.
         sta     $0680                           ; B989 8D 80 06                 ...
         lda     #$A0                            ; B98C A9 A0                    ..
         sta     FR1+1                           ; B98E 85 E1                    ..
@@ -7091,9 +7166,9 @@
         sta     $0688                           ; BC2F 8D 88 06                 ...
         sta     $066A                           ; BC32 8D 6A 06                 .j.
         lda     #$7C                            ; BC35 A9 7C                    .|
-        sta     $067E                           ; BC37 8D 7E 06                 .~.
+        sta     player_x_pos                    ; BC37 8D 7E 06                 .~.
         lda     #$20                            ; BC3A A9 20                    . 
-        sta     $0683                           ; BC3C 8D 83 06                 ...
+        sta     player_y_pos                    ; BC3C 8D 83 06                 ...
 ; load dli_service_2 address into dli shadow
 setup_dli_2:
         lda     #$C7                            ; BC3F A9 C7                    ..
@@ -7189,7 +7264,7 @@
 ; ----------------------------------------------------------------------------
 ; referenced by code at $BC83
 code_bd52:
-        lda     $0621                           ; BD52 AD 21 06                 .!.
+        lda     falling_flag                    ; BD52 AD 21 06                 .!.
         bne     LBD58                           ; BD55 D0 01                    ..
         rts                                     ; BD57 60                       `
 
@@ -7220,9 +7295,9 @@
         lda     #$09                            ; BD8B A9 09                    ..
         sta     player_speed                    ; BD8D 8D 24 06                 .$.
         lda     #$C6                            ; BD90 A9 C6                    ..
-        sta     $0683                           ; BD92 8D 83 06                 ...
+        sta     player_y_pos                    ; BD92 8D 83 06                 ...
         lda     #$00                            ; BD95 A9 00                    ..
-        sta     $0621                           ; BD97 8D 21 06                 .!.
+        sta     falling_flag                    ; BD97 8D 21 06                 .!.
         lda     #$01                            ; BD9A A9 01                    ..
         sta     $0688                           ; BD9C 8D 88 06                 ...
         rts                                     ; BD9F 60                       `
-- 
cgit v1.2.3