Please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Mortal Kombat II (NES)

From The Cutting Room Floor
Jump to: navigation, search

Title Screen

Mortal Kombat II

Also known as: Mortal Kombat II Turbo, Mortal Kombat III, Mortal Kombat III Turbo
Developer: Hummer Team
Publisher: JY Company
Platform: Unlicensed NES
Released internationally: 1994


CharacterIcon.png This game has unused playable characters.
SourceIcon.png This game has uncompiled source code.
GraphicsIcon.png This game has unused graphics.
Sgf2-unusedicon1.png This game has unused abilities.
Carts.png This game has revisional differences.


Despite the name, the NES Mortal Kombat II is actually an unlicensed port of Mortal Kombat.

"Skang-Tsung" Fireball

MKIINES ShangTsungFireball.png

"Skang-Tsung" does have a fireball attack similar to the original game, which is done by pressing Back, Forward, A. You never see it during normal play because the AI never performs it, and trying to do the command yourself will cause you to transform into another character that will perform their projectile attack.

The only way to see this is by changing the value under 00A3 to 08, which will allow you to play as him without the ability to transform.

Super Fighter III Leftovers

MKIINES SFIIILifebars.PNG

The lifebar and lowercase font shown here isn't used in any part of the game. It turns out these were originally from Super Fighter III. Hummer Team made a game before this called Master Fighter VI' which is probably why these appear here. (Interestingly enough, the lowercase font isn't used in Super Fighter III or Master Fighter VI' either.) This isn't the only thing that came from Master Fighter VI' however...

Raiden Clones

MKIINES HondaRaiden.pngMKIINES ZangiefRaiden.pngMKIINES KenRaiden.png

At 00A3, values 09, 0A, and 0B contain these fully functional but nameless Raiden clones with strange palettes that appear to have no significance. However, these three contain palette data and special move commands from E.Honda, Zangief, and Ken from Master Fighter VI'. This along with the Super Fighter III graphics may imply Mortal Kombat II was originally built off of Master Fighter VI.

Uncompiled Code

A corrupted fragment of code can be seen in the ROM. Some restoration was done to remove some of the garbage text. This begins at 18B8 in the ROM, but a few pieces of this are spread throughout the ROM:

                              ANKING.
        db      $3f,$3f     ;CONTINUE. AND OVER.
        db      $36,$36     ;ENDING.
        db      $3e,$3f    ͝ÐM  SE�   øŸÐM VS
        db      $3e,$3f     ;MARK PAGE.
;==============================================================================
;=      Pr ÐM  CK�   `¢ÐMABLES.
;==============================================================================
page_scr:
        dw      $3534,$ffff,$3534,$f¢ÐM    �   ;TITLE .
        dw      scr_o01,$2020,scr_o02,$2828         ;OPTION.
        dw      scr_s01,$2020,scr_v01,$2828         ;CHOISE 1 AND   VS
ÿÿ      ȤÐM    scr_s11,$2020,scr_v01,$2828         ;CHOISE 2 AND   VS
        dw      scr_r01,$2020,scr_r01,$2828         ;RANKING.
        dw   �¥ÐM  _c�   0§ÐM,scr_c02,$2828         ;CONTINUE. AND OVER.
        dw      scr_e01,$2020,scr_e02,$2828         ;ENDING.
        dw      scr_v02,$2020ª§ÐM  03�   ˜©ÐM       ;CLASS 2 VS PAGE.
        dw      scr_m01,$2020,scr_m01,$2828         ;MARK PAGE.

        ENDIF

;==================================================================
;=      INITIAL PAGE VARIABLE.  use main_flow * 2 get variable.
;=              irq_code,color_iz¬ÐM  
;==================================================================
ip_val:
        db      $0c,$00                                
        db      $0e,$01                                 ;OPTION.
        db      $0c,$02                                 ;CHOISE 1 AND   VS
        db      $0c,$02                                 ;CHOISE 2 AND   VS
        db      $0c,$01                                 ;RANKING.
                                                        ;CONTINUE. AND OVER.
        db      $0c,$01                                 ;ENDING.
        db                                              ;CHOISE 2 AND   VS
        db      $0f,$04                                 ;MARK PAGE.



        INCLUDE  ‚¸ÐM   F�   pºÐM
        INCLUDE D00.DAT


Sel_Treetbl
        dw      Sel_title,Sel_option,Sel_chois1,Sel_chois2
;;;     TOGGLE  L,  R,  U,  D.
        db      $00,$01,$ff,$ff         ;; main
        db      $00,$01,$ff,$ff         ;; option.
Sel_option
        db      $FF,$FF,$05,$01         ;; very easy.
        db      $FF,$FF,$00,$02         ;; easy.
        db      $FF,$FF,$01,$03         ;; normal.
        db      $FF,$FF,$02,ÿÿ4         ;; hard.
        db      $FF,$FF,$03,$05         ;; very hard.
        db      $FF,$FF,$04,$00         ;; exit.
Sel_chois1
        db   ÿÿ $    01,$06,$03         ;; exit.
        db      $00,$01,$08,$04         ;; exit.
        db      $05,$03,$00,$06         ;; exit.
        db     ÿÿ02    ؼÐM,$06         ;; exit.
        db      $03,$05,$01,$08         ;; exit.
        db      $04,$02,$01,$08         ;; exit.
        db   �½ÐM  ,$�   03,$00        ;; exit.
        db      $06,$08,$03,$00         ;; exit.
        db      $07,$06,$04,$01         ;; exit.
Sel_chois2
        db     @¿ÐM,$01,$0c,$05         ;; UPPER SECTION.
        db      $00,$02,$0d,$06         ;; exit.
        db      $01,$03,$0f,$08         ;; exit.
        db      $02,$00,$10,$09         ;; exit.

        db      $0a,$05,$ff,$0b         ;; MIDIUM SECTION.
        db      $04,$06,$00,$0c     
        db      $05,$07,$01,$0d         ;; exit.
        db      $06,$08,$ff,$0e         ;; exit.
        db      $07,$09,$02,$0f         ;; exit.
        db      $08,$0a,$03,$10         ;; exit.
        db      $09,$04,$ff,$11         ;; exit.

        db      $11,$0C,$04,$FF         ;; LOWER SECTION.
        db      $0B,$0D,$05,$00         ;; exit.
        db      $0C,$0E,$06,$01         ;; exit.
        db      $0D,$0F,$07,$FF         ;; exit.
        db      $0E,$10,$08,$02         ;; exit.
        db      $0F,$11,$09,$03         ;; exit.
        db      $10,$0B,$0A,$FF  


;==============================================================================
;=      MUSIC SETTING.   use Ip_cod get music value
===============================================================================
init_music:
        ldx     Ip_code
        lda     music_tbl,x
                _Music
        rts

music_tbl:
        db      $20     ;TITLE .
        db      $22     ;OPTION.
        db      $21     ;CHOISE 1 AND   VS
        db      $21     ;CHOISE 2 AND   VS
        db      $24     ;RANKING.
        db      $22     ;CONTINUE. AND OVER.
        db      
        db      $21     ;CHOISE 1 AND   VS
        db      $22     ;MARK



        .ENDS
        SYMBOLS OFF



�  selectibÕÐM   t�   P×ÐM=
;=                       a0     old_selection.
;=                       a1     toggle value.
;=               output : Acc as new selection
;=                      **  MINUS NO CHANGE.
;==============================================================================
Key_sel:
        and     #$0f
        bne     ?k00
        lda     #$ff
        rts                     ;;; no key toggle return #$FF.
?k00
      ÿÿta                      ;;; key code index offset.
        lda     a0
        asl     a
        asl     a               ;;; get old key selection iÿÿex     ÜÐM   clc
        adc     tog_index,x
        tay                     ;;; y as new selection index.
        lda     (r0),y
        rts
        db      $00,$01,$00,$01,$03,$01,$00,$01
        db      $02,$01,$00,$01,$03,$01,$00,$01


        IF      _mmc3
;================================================================
;=      PATTERN BANK SETTING.   use main_flow * 8 get bank values.
;================================================================

mark_1:
        lda     #$08
        sta     Ip_code
        jsr     Page_init
        jsr     ClrSprite      ;   lear selection cursor.
        lda     #$00
        sta     sc

Vsmanphoto2:
        lda     MODE1OR2
        asl     a
        tay
        lda     nametophoto,y
        sta     r1
        lda     nametophoto+1,y
        sta     r1+1            ;;; data address.
        ;;;
        ldx     #$00
        stx     d2              ;;; d0 p1,2,3.  index.
        lda     _Mselect
        jsr     _photo
        ldx     #$01
        stx     d2              ;;; d0 p1,2,3.  index.
        lda     _Mselect,x
        jsr     _photo
        ldx     #$02
        stx     d2              ;;; d0 p1,2,3.  index.
        lda     _Mselect,x
        jsr     _photo
        jmp     photo_col       ;;; set photo color.


;;;===================================================================
;;;=    _photo :
;;=     INPUT : d2 player index.
;;=             Acc player code.
;;;===================================================================
_photo:
        and     #$7f
        asl     a
        tay
        lda     (r1),y
        sta     a0              ;;; photo    ex.
        iny
        ldx     d2
        lda     (r1),y
        sta     color_temp,x    ;;; photo color.
        ;;;     < SET PHOTO TEXT >
        jsr     photo_text
        ;;;     < WRITE PHOTO TEXT >
        lda     d2
        asl     a
        asl     a
        tax
        lda     photo_pos,x
        sta     dhi
        lda     photo_pos+1,x
        sta     dlo
        jsr     FillText
        lda     d2
        asl     
        asl     a
        tax
        lda     photo_pos+2,x
        sta     dhi
        lda     photo_pos+3,x
        sta     dlo
        
        sta     dwide
        lda     #$06
        sta     dtall
        ldy     #$00
        sty     dhv
        jmp     FillText

phoÿÿ_t    
        lda     a0
        asl     a
        tay
        lda     photo_tbl,y
        sta     r0
        lda     photo_tbl+1,y
        stÿÿ      ÈñÐM          ;;; photo data address.
        lda     #$04
        sta     dwide
        lda     #$06
        sta     dtall
        ldyBòÐM  $0�
        sty     dhv
?v00    lda     (r0),y
        sta     _DBuffer,y      ;;; move photo data .
        iny
        cpy     #24
        bcc
        rts


photo_pos:
        db      $21,$44,

Revisions/Hacks

Mortal Kombat II (Rev. B)

This version of the game fixes a bug that prevented the scrolling up animation on the title screen's menu from activating. In Rev. A, the menu is static but still makes the sound for when the animation is supposed to stop.

Mortal Kombat II (Blue Logo Version)

MKIINESBlueLogo.png

The only difference between this and the original, other than the logo, is that the animations in all the stages appear broken.

Mortal Kombat II Turbo

MKIITurboNES Title.png

A title hack of Rev. B with the only differences being that the animation on the title screen's menu is broken again (instead of scrolling up, it just vibrates in place) and that Liu Kang, Kano and Scorpion are using their second player palettes instead. Another variation of this has a blue Mortal Kombat logo instead.

Mortal Kombat III Turbo/Mortal Kombat III

MKIIITurboNES Title.pngMKIIINES Title.pngMKIIINES Roster.pngMKIIINES Stage.png

Mortal Kombat III Turbo changes the menu on the title screen (but doesn't fix the vibrating menu), gives every character their own clone on the select screen and alters some of the stages. Mortal Kombat III is the same as the turbo version, but with a different title screen.

Similar to the Mortal Kombat II Turbo revisions, the palette swaps in that revision also occur here. Mortal Kombat III appears to be an unofficial hack, since JY Company never released that version. However, the expanded roster can be accessed in the original game by freezing 0x0050 in memory to 03, suggesting that Hummer Team might have released Mortal Kombat III under a different publisher.