On this page
  1. Related
  2. Games
  3. References
  4. Sources

A ground slide trades height for speed: the character drops low and dashes along the floor for a moment. Mega Man 2 has none1. Mega Man 3 starts it with Down and A, 2.5 px/frame for 21 frames, and a jump can cut it short only from its 9th frame2. Mega Man 4 stretches it to 26 frames and allows the jump from the second3, and Mega Man 5 keeps that4.

  • NoneMega Man 2 (1988). No slide; A on the ground always jumps.1
  • TimedMega Man 3 (1990). Down and A: a short, fast, low dash that A can turn into a jump partway.2Mega Man 4 (1991). A slide of under half a second that a press of A turns into a jump at once.3Mega Man 5 (1992). Mega Man 4's slide, as fast and as long, and A jumps out of it.4

Games

GameYearHowNote
Mega Man 31990TimedDown and A: a short, fast, low dash that A can turn into a jump partway
Mega Man 41991Timeda slide of under half a second that a press of A turns into a jump at once
Mega Man 51992TimedMega Man 4's slide, as fast and as long, and A jumps out of it
Mega Man 61993TimedMega Man 5's slide, as fast and as long, but A ends it without a jump
Every claim about this mechanic, by game (15)
Mega Man 2 1988Mega Man 2 has no slide. A fresh A press in a grounded state always starts a jump; that code tests no other button.Code
Mega Man 3 1990Down and a fresh A press on the ground start a slide if no wall is ahead: 2 px lower, at 2.5 px/frame ($02.$80), with a timer of 20 ($14). The set-up frame moves once, and each slide frame moves before it tests the timer, so an unbroken slide moves on 21 frames. A turn, a wall, the timer's end, or (from the 9th frame) a fresh A press all lead to the standing test, where a solid tile at standing height keeps the slide going; otherwise it ends, with a jump at walking speed if A was pressed.Verified
Starting a slide, Mega Man 3 first tests for a wall 8 and 22 px ahead of his center at its height, and a wall there cancels the press. A slide lowers him 2 px, tests the floor at x − 15, x, and x + 15, 10 px below his lowered center, and moves with a wall point 16 px ahead, at 5 px above and 7 px below that center. A turn, a wall, the timer's end, or a jump press leads to the standing test, the ceiling points 12 px over his lowered center.Code
A slide that ends on open ground leaves Mega Man in the ground state with the walking animation, still 2 px low; the next frame's floor test pushes him back up. That walking animation moves him on the next frame toward his facing, so with no direction held he steps once more at 1.30 px/frame and then pauses, and with one held he walks on at once. A slide whose floor test finds nothing ends without moving that frame, and he falls from the next.Verified
Mega Man 4 1991Mega Man 4's slide keeps Mega Man 3's 2.5 px/frame but moves on 26 frames (a timer of $1A, counted after each move from the set-up frame on) where Mega Man 3's moves on 21 (a timer of 20). Its A test runs on every slide frame, the set-up's included: a fresh A press without Down jumps out whenever he has headroom, where Mega Man 3 waits for its 9th frame, and A with Down held keeps sliding. The set-up's own press comes with Down, and A held from it into the second frame is no fresh press, so the earliest jump out comes on the slide's 3rd frame.Verified
Down and a fresh A press start a slide only if the slide's start point, 15 px ahead of his center and 4 px below it, isn't in a wall; with a wall there the press does nothing, neither slide nor jump. The slide moves his Y pixel 2 px down and tests a lower, wider box: floor points 10 px below the new center at x-14, x, and x+14, and wall points 15 px ahead, level with it and 9 px below. With no floor under those points, ground 16 px below the center keeps the slide going, and none stands him up.Code
A slide ends in two ways. When the slide box finds no floor and no ground 16 px below his center either (slide-box), he stands up at once, with no headroom test, before that frame's A test and move. Otherwise it ends at the standing test, which a wall, the timer's end, or a turn sends it to. A turn (a held direction against the slide's) zeroes the timer and still moves him 2.5 px the new way on that frame. The test checks his standing headroom, three points 14 px above the slide's center (12 px above his standing one) at x-14, x, and x+14: a solid tile there keeps him sliding at 2.5 px/frame, testing again each frame, and otherwise he stands up in the walking pose, at walking speed, after that frame's move. A fresh A press without Down jumps out of it instead, at 5 px/frame and walking speed, if the same headroom is clear, from the 2 px lower slide center; the earliest such press comes on the slide's 3rd frame (slide-line).Verified
Mega Man 5 1992Mega Man 5 keeps Mega Man 4's slide, 2.5 px/frame for 26 frames ($1A), with a jump out of it on any slide frame a fresh A press comes without Down and there is headroom. The earliest is the slide's 3rd frame, counting the set-up frame (Down and A) as the 1st: a fresh press needs A let go on the 2nd.Code
Down and a fresh A press start a slide only if the slide's start point, 15 px ahead of his center and 4 px below it, isn't in a wall; with a wall there the press does nothing, neither slide nor jump. The slide moves his Y pixel 2 px down and tests a lower, wider box: floor points 10 px below the new center at x−14, x, and x+14; ceiling points 8 px above it at the same three; and wall points 15 px ahead, 5 px above it and 9 px below. Its stand-up and jump-out test his headroom at three points 14 px above the slide's center (12 px above his standing one) at x−14, x, and x+14.Code
A slide ends at the standing test, which a wall, the timer's end, or a turn sends it to. A turn (a held direction against the slide's) zeroes the timer and still moves him 2.5 px the new way on that frame. The test checks his headroom (slide-box): a solid tile there keeps him sliding at 2.5 px/frame, tested again every frame; a clear one raises him the 2 px back, puts him in the ground state with the walking pose and walking speed, and sets his vertical speed to −0.25 px/frame ($FF.$C0), so the next frame's fall moves his Y fraction $40 down before the floor snap. A slide off a ledge ends at once in the ground state without the 2 px back, at the same −0.25.Code
Mega Man 5's ordinary-floor movement differs from Mega Man 4's, though the walk, the step pose, the jump, gravity, the fall cap, air control, and the slide's speed, length, and start are the same. The first difference on flat ground: on a slide's last frame Mega Man 5 raises his center the 2 px the slide lowered it and sets −0.25 px/frame, where Mega Man 4 leaves it 2 px low at −1 px/frame, so for that frame Mega Man 5 stands 2 px higher, and each of its slides adds $40 to his Y fraction. Against blocks, Mega Man 5's ceiling points are 10 px above his center (Mega Man 4's 9) and his wall points 9 px above it (Mega Man 4's 8); its slide's wall points are 5 px above and 9 px below the slide's center (Mega Man 4's level and 9 below), and its slide's ceiling points 8 px above it (Mega Man 4's level with it).Code
Mega Man 6 1993Mega Man 6 keeps Mega Man 5's slide speed and length, 2.5 px/frame for 26 frames ($1A), set from the table at $8003, outside tile type $09, where the table at $8009 gives 1.5 px/frame (slow-surface). Measured in Mesen from power-on, at the start of Tomahawk Man's stage, a slide from Down and A moved him 2.5 px on each of 26 frames, 65 px in all.Verified
A press of A without Down ends Mega Man 6's slide but doesn't jump: the slide hands over to the standing loop, which looks for a jump only in a later frame's fresh press ($9A). In Mega Man 5 the same press jumps out of the slide when there is headroom. Measured in Mesen from power-on, at the start of Tomahawk Man's stage, an A press on a slide's 8th frame with Down let go ended the slide that frame, and A held for the next 6 frames left him on the floor.Verified
Down and A start the slide only with no Rush adaptor on ($9B 0); with one, the press jumps. A turn (a held direction against his facing) ends the slide early, and at its end two tile probes above him keep it going 4 frames at a time while the ceiling is low.Code
Mega Man 6's slide ends on a turn, a wall (wall-stop), a fresh A without Down (slide-exit), its 26th frame, or the 2nd frame over a gap, when gravity has taken his speed's fraction to $41 or more. Unless a low ceiling keeps the slide going (slide-rules), it hands over in the same frame: over a gap to the air loop, with the fraction set to $CC, and otherwise to the standing loop, which moves him a second time that frame, at the walking speed toward a held direction or not at all. So a turn out of a slide moves him 2.5 px forward and 1.30 px back in one frame, and the next frame starts a step. Measured in Mesen from power-on near the start of Tomahawk Man's stage, a slide off the ledge at X 160 slid on its first frame over the gap and fell from the second, and Left on a rightward slide's 7th frame moved him 1.20 px right that frame ($01.$34, the slide's $02.$80 less the walk's $01.$4C), then 1.30 px left as a step began.Verified

References

  1. ^ abMega Man 2 has no slide. A fresh A press in a grounded state always starts a jump; that code tests no other button.Codelsmmega/mm2
    How we know
    94_run_megaman_landing_common_1:
    95	LDA z:zjoy1_pressed_bits
    96	AND #a_button
    97	BEQ @not_pressed
    98	LDA z:zjump_speed_fraction
    99	STA aobject_ycoord_speed_fraction
    100	LDA z:zjump_speed
    101	STA aobject_ycoord_speed
    102	LDA #$06
    103	STA z:zmegaman_status
    
    engine/run_megaman.asm lines 94–103 at 94f0bf3 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-21.

    In the claim ledger

  2. ^ abcDown and a fresh A press on the ground start a slide if no wall is ahead: 2 px lower, at 2.5 px/frame ($02.$80), with a timer of 20 ($14). The set-up frame moves once, and each slide frame moves before it tests the timer, so an unbroken slide moves on 21 frames. A turn, a wall, the timer's end, or (from the 9th frame) a fresh A press all lead to the standing test, where a solid tile at standing height keeps the slide going; otherwise it ends, with a jump at walking speed if A was pressed.Verifiedplasticsmoke/megaman3-disassembly-ca65revised
    How we know
    286slide_initiate_confirmed:  lda     #PSTATE_SLIDE ; state $02 = player_slide
    287        sta     player_state            ; set player state to slide
    288        lda     #$14                    ; slide timer = 20 frames
    289        sta     $33                     ; store slide timer
    290        lda     #$10                    ; OAM anim $10 = slide sprite
    291        jsr     reset_sprite_anim       ; set slide sprite animation
    292        lda     ent_y_px                ; player Y += 2 (crouch posture)
    293        clc                             ; prepare for addition
    294        adc     #$02                    ; lower Y by 2 for slide crouch
    295        sta     ent_y_px                ; store adjusted Y position
    296        lda     #$80                    ; X speed = $02.80 = 2.5 px/frame
    297        sta     ent_xvel_sub            ; X velocity sub-pixel
    ⋮
    
    src/fixed/player_states.asm lines 286–299 at 58ca1c3 · upstream ↗
    318        beq     slide_move_check_facing ; always → skip to slide movement
    
    src/fixed/player_states.asm line 318 at 58ca1c3 · upstream ↗
    344slide_collision_wall_solid:  lda     $10 ; hit a wall?
    345        and     #$10                    ; bit 4 = solid wall
    346        bne     slide_end_ground_check  ; yes → end slide
    347        lda     $33                     ; timer expired?
    348        beq     slide_end_ground_check  ; yes → end slide
    349        dec     $33                     ; decrement timer
    350        lda     $33                     ; check slide timer phase
    351        cmp     #$0C                    ; >= $0C? (uncancellable phase)
    352        bcs     slide_continue_moving   ; yes → uncancellable, keep sliding
    353        lda     joy1_press              ; A button pressed? (cancellable phase)
    354        and     #BTN_A                  ; check A button
    355        bne     slide_end_ground_check  ; yes → cancel into slide jump
    ⋮
    
    src/fixed/player_states.asm lines 344–366 at 58ca1c3 · upstream ↗
    328        lda     joy1_held               ; read held D-pad
    329        and     #$03                    ; mask left/right bits
    330        beq     slide_move_check_facing ; no direction → keep sliding
    331        cmp     player_facing           ; same as current facing?
    332        beq     slide_move_check_facing ; yes → keep sliding
    333        sta     player_facing           ; changed direction → end slide
    334        bne     slide_end_ground_check  ; always taken → end slide
    
    src/fixed/player_states.asm lines 328–334 at 58ca1c3 · upstream ↗
    367        sta     player_state            ; state = on_ground
    368        lda     joy1_press              ; A button pressed?
    369        and     #BTN_A                  ; check A button
    370        bne     slide_jump_walk_speed_init ; yes → slide jump
    ⋮
    380        lda     #$01                    ; X velocity whole = 1
    ⋮
    386slide_jump_walk_speed_init:  lda     #$4C ; walk speed X = $01.4C
    387        sta     ent_xvel_sub            ; X velocity sub = $4C
    388        lda     #$01                    ; X velocity whole = 1
    389        sta     ent_xvel                ; X velocity = 1
    390        jmp     player_ground_normal_jump ; jump from slide (uses slide_jump velocity)
    
    src/fixed/player_states.asm lines 367–390 at 58ca1c3 · upstream ↗

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  3. ^ abMega Man 4's slide keeps Mega Man 3's 2.5 px/frame but moves on 26 frames (a timer of $1A, counted after each move from the set-up frame on) where Mega Man 3's moves on 21 (a timer of 20). Its A test runs on every slide frame, the set-up's included: a fresh A press without Down jumps out whenever he has headroom, where Mega Man 3 waits for its 9th frame, and A with Down held keeps sliding. The set-up's own press comes with Down, and A held from it into the second frame is no fresh press, so the earliest jump out comes on the slide's 3rd frame.Verifiedplasticsmoke/megaman4-disassembly-ca65 · “Mega Man 4 (USA) (Rev 1)” · plasticsmoke/megaman3-disassembly-ca65revised
    How we know
    254    JMP L_8368                          ; post-slide-start processing
    
    src/bank3C.asm line 254 at a63bb6e · upstream ↗
    510    LDY #$04                            ; speed selector 4 = slide
    511    JSR entity_horiz_dispatch           ; move player horizontally
    512    BCS L_83C3                          ; hit wall: try to stand
    513    LDA $34                             ; slide timer
    514    BEQ L_83C3                          ; expired: try to stand
    515    DEC $34                             ; count down slide
    516    BNE L_83EF                          ; still sliding: done
    
    src/bank3C.asm lines 510–516 at a63bb6e · upstream ↗
    217    LDA #$1A                            ; slide duration 26 frames
    218    STA $34                             ; set slide timer
    219    LDA #$02                            ; state $02 = slide
    220    STA player_state                    ; enter slide state
    221    LDA #$80                            ; slide speed 2.5 px/frame
    222    STA ent_xvel_sub                    ; X velocity sub = $80
    223    STA $37                             ; mirror in $37
    224    LDA #$02                            ; 2 px
    225    STA ent_xvel                        ; X velocity = 2
    226    STA $38                             ; mirror in $38
    
    src/bank3C.asm lines 217–226 at a63bb6e · upstream ↗
    473L_8368:
    474    LDA joy1_press                      ; newly pressed
    475    AND #$80                            ; A button?
    476    BEQ L_839D                          ; no jump: steering
    477    LDA joy1_held                       ; held buttons
    478    AND #$04                            ; Down held?
    479    BNE L_839D                          ; Down+A: stay sliding
    480    LDY #$03                            ; probe 3 = standing headroom
    481    JSR tile_collision_detect           ; check tile above head
    482    LDA $10                             ; collision result
    483    BNE L_839D                          ; blocked: no jump
    484    JSR L_83F2                          ; platform overhead check
    ⋮
    
    src/bank3C.asm lines 473–496 at a63bb6e · upstream ↗

    In the cartridge (“Mega Man 4 (USA) (Rev 1)”): bank $3C $8184, the slide's set-up in the Rev 1 ROM; bank $3C $8368, the jump out of the slide in the Rev 1 ROM. We don't reproduce the bytes.

    288        lda     #$14                    ; slide timer = 20 frames
    289        sta     $33                     ; store slide timer
    
    src/fixed/player_states.asm lines 288–289 at 58ca1c3 · upstream ↗
    344slide_collision_wall_solid:  lda     $10 ; hit a wall?
    345        and     #$10                    ; bit 4 = solid wall
    346        bne     slide_end_ground_check  ; yes → end slide
    347        lda     $33                     ; timer expired?
    348        beq     slide_end_ground_check  ; yes → end slide
    
    src/fixed/player_states.asm lines 344–348 at 58ca1c3 · upstream ↗
    349        dec     $33                     ; decrement timer
    350        lda     $33                     ; check slide timer phase
    351        cmp     #$0C                    ; >= $0C? (uncancellable phase)
    352        bcs     slide_continue_moving   ; yes → uncancellable, keep sliding
    353        lda     joy1_press              ; A button pressed? (cancellable phase)
    354        and     #BTN_A                  ; check A button
    355        bne     slide_end_ground_check  ; yes → cancel into slide jump
    
    src/fixed/player_states.asm lines 349–355 at 58ca1c3 · upstream ↗

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on Mega Man 4 (USA) (Rev 1) (SHA-1 05d238c2a315…). It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  4. ^ abMega Man 5 keeps Mega Man 4's slide, 2.5 px/frame for 26 frames ($1A), with a jump out of it on any slide frame a fresh A press comes without Down and there is headroom. The earliest is the slide's 3rd frame, counting the set-up frame (Down and A) as the 1st: a fresh press needs A let go on the 2nd.Codeplasticsmoke/megaman5-disassembly-ca65 · plasticsmoke/megaman4-disassembly-ca65
    How we know
    lda #$1A sta $35 lda #$02 sta $30 lda #$80 sta $03A8 lda #$02 sta $03C0
    src/bank1B.asm#L161-L168 · upstream ↗
    lda $14 and #$80 beq L82C8 lda $16 and #$04 bne L82C8 … jsr probe_horiz lda L0010 bne L82C8 lda #$4C sta $03A8 …
    src/bank1B.asm#L377-L393 · upstream ↗
    217    LDA #$1A                            ; slide duration 26 frames
    218    STA $34                             ; set slide timer
    219    LDA #$02                            ; state $02 = slide
    220    STA player_state                    ; enter slide state
    221    LDA #$80                            ; slide speed 2.5 px/frame
    
    src/bank3C.asm lines 217–226 at a63bb6e · upstream ↗
    474    LDA joy1_press                      ; newly pressed
    475    AND #$80                            ; A button?
    476    BEQ L_839D                          ; no jump: steering
    477    LDA joy1_held                       ; held buttons
    478    AND #$04                            ; Down held?
    479    BNE L_839D                          ; Down+A: stay sliding
    
    src/bank3C.asm lines 474–479 at a63bb6e · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

Sources

Code