Mortal Kombat II
|Mortal Kombat II|
Despite the name, the NES Mortal Kombat II is actually an unlicensed port of Mortal Kombat.
"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
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...
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.
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,
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 supposed to stop.
Mortal Kombat II (Blue Logo Version)
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
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
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.