We have upgraded to the latest version of MediaWiki and now support TLS1.2 and transcoding!
Please contact us via Discord or Twitter if you experience any problems.

Mortal Kombat: Armageddon

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Mortal Kombat: Armageddon

Developer: Midway Games
Publisher: Midway Games
Platforms: PlayStation 2, Xbox, Wii
Released in US: October 11, 2006 (PS2), October 16, 2006 (Xbox), May 29, 2007 (Wii)
Released in EU: October 27, 2006 (PS2), June 15, 2007 (Wii)


AreasIcon.png This game has unused areas.
CharacterIcon.png This game has unused playable characters.
SourceIcon.png This game has uncompiled source code.
DevTextIcon.png This game has hidden development-related text.
MusicIcon.png This game has unused music.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.
Carts.png This game has revisional differences.


This cactus is UNDER CONSTRUCTION
This article is a work in progress.
...Well, all the articles here are, in a way. But this one moreso, and the article may contain incomplete information and editor's notes.
Hmmm...
To do:
  • Replace the screenshots with ones taken in the native resolution.
  • Elaborate on how to access the unused stages.
  • Look into newtown_demo.ssf as it can be found in all releases and appears to reuse assets from the Acid Bath arena.
  • Check to see if there is more unused content.

Mortal Kombat: Armageddon is the last installment of the Mortal Kombat series on sixth generation consoles and as such Midway added nearly every character from the series to the game. it's like a Super Smash Bros. Ultimate but with Mortal Kombat.

Unused Arenas

Mortal Kombat Armageddon Test Arena.png

The arena pictured was likely used to test fights before the other arenas were finished. It can still be accessed via Action Replay but the walls have no collision.

Krypt alternate outfit art The arena where the alternate outfit art was made
MKA krypt alt costume art.png MKA Krypt alt costume background arena.png

The background used to show off unlocked alternate offits for characters in the Krypt is actually a stage in the game, though it is normally inacessible for players.

Unused Motor Kombat Tracks

MKA Test track ingame.png

This is a test track that was used before Motor Kombat was finalized.

Test character "0"

Mortal kombat armageddon 0 Bug this.png

If you force the game to load the player's created character slot when the player isn't signed in during Arcade Mode, the game loads a base female character named "0". She has the fighting style named "Bug This" and plays like a normal custom character except she has no special moves.

Platform AR code
PS2 20660158 0000003E
Wii 0056e173 0000003F

Unused Sounds

Announcer Dialogue

"Deadly"
The soundbytes for the different fatality levels were originally split into two parts rather than being one soundbyte each.
"Killer"
Same as above.
"Bloody"
Same as above.
"Mortal"
Same as above.
"Brutal"
Same as above.
"Evil"
Same as above.
"Vicious"
Same as above.
"Savage"
Same as above.
"Extreme"
Same as above.
"Ultimate"
Same as above.

Music

shell_music_2
Leftover main menu music from Mortal Kombatː Deception.
shell_music_3
Same as above.

Unused Text

Uncompiled Source Code

Some auto-generated C++ headers from AiLive LiveMove are present in the root folder of the Wii release.

CFatality.h

/* -- LiveMove classification labels                                */
/*                                                                  */
/*    Generated by lmMaker. Do not modify by hand.                  */
/*                                                                  */
/* -- AiLive LiveMove (c) 2000-2006 AiLive Inc.                     */
#ifndef LM_FATALITY
#define LM_FATALITY

enum lm_Fatality
{
   Fatality_watnat = 0,
   Fatality_wdundu,
   Fatality_wpopunpopu,
   Fatality_wpotnpoa,
   Fatality_wpounpou,
   Fatality_wpuponpupo,
   Fatality_wtanta,
   Fatality_wudnud,
   Fatality_wpodnpod,
   Fatality_wponpu,
   Fatality_wund,
   Fatality_HCircle_Towards,
   Fatality_wpoccw,
   Fatality_wcw,
   Fatality_wweird,
   Fatality_wccw,
   Fatality_wdpo,
   Fatality_wpoa,
   Fatality_wdat,
   Fatality_wupo,
   Fatality_wcwt,
   Fatality_wccwpo,
   Fatality_NoMotion2,
   Fatality_HCircle_Away
};

/*
E.g.,
if ( lmGetClassification( a ) == Fatality_watnat )
{
   ... did move watnat ! ...
}
*/

#endif

Midway.h

/* -- LiveMove classification labels                                */
/*                                                                  */
/*    Generated by lmMaker. Do not modify by hand.                  */
/*                                                                  */
/* -- AiLive LiveMove (c) 2000-2006 AiLive Inc.                     */
#ifndef LM_MIDWAY
#define LM_MIDWAY

enum lm_Midway
{
   Midway_Away_Towards = 0,
   Midway_Down_Up,
   Midway_HCircle_Away,
   Midway_HCircle_Towards,
   Midway_NoMotion,
   Midway_Towards_Away,
   Midway_Up_Down,
   Midway_Arc_Away,
   Midway_Arc_Towards
};

/*
E.g.,
if ( lmGetClassification( a ) == Midway_Away_Towards )
{
   ... did move Away_Towards ! ...
}
*/

#endif

Nunchuk.h

/* -- LiveMove classification labels                                */
/*                                                                  */
/*    Generated by lmMaker. Do not modify by hand.                  */
/*                                                                  */
/* -- AiLive LiveMove (c) 2000-2006 AiLive Inc.                     */
#ifndef LM_NUNCHUK
#define LM_NUNCHUK

enum lm_Nunchuk
{
   Nunchuk_watnat = 0,
   Nunchuk_wdundu,
   Nunchuk_wpopunpopu,
   Nunchuk_wpotnpoa,
   Nunchuk_wpounpou,
   Nunchuk_wpuponpupo,
   Nunchuk_wtanta,
   Nunchuk_wudnud,
   Nunchuk_wpodnpod,
   Nunchuk_wponpu,
   Nunchuk_wund,
   Nunchuk_NoMotion2
};

/*
E.g.,
if ( lmGetClassification( a ) == Nunchuk_watnat )
{
   ... did move watnat ! ...
}
*/

#endif

list2.txt

Also found in the root folder is a text file that lists files and folders that were used in development builds.

anims
art
CFatality.h
Fatality.lmc
HomeButton2
Konquest.lmc
list2.txt
logs
Midway.h
Midway.lmc
mk7.dol
mko
moviegc
Nunchuk.h
Nunchuk.lmc
opening.bnr
sndsgc
zzz.zzz

Memory Heap Debugger

A bunch of text belonging to a memory heap debugger is in the Xbox executable at 0x4FBFA8.

System Heap 1.5 rev 1   \games\mk7xbox\mk7\mwMEM\mwMem.c    MEM_ALWAYS_FAIL
       memDebugHeap() is unavailable with MEM_DEBUG_BUILD disabled!
   memDebugHeapTag() is unavailable with MEM_DEBUG_BUILD disabled!
        memDebugGetTagMemSize() is unavailable with MEM_DEBUG_BUILD disabled!
  memDebugVerifyMemSize() is unavailable with MEM_DEBUG_BUILD disabled!
  memDebugVerifyHdrFtr() is unavailable with MEM_DEBUG_BUILD disabled!
      Current Num Mallocs :  %d
      Peak Num Mallocs    :  %d
      Current Free Mem    : %08d bytes 0x%08x  
      Current Used Mem    : %08d bytes 0x%08x  
      Peak Used Mem       : %08d bytes 0x%08x  
      Total Reserved Mem  : %08d bytes 0x%08x  
      Total Memory
    *************************************************************
      memDebugHeapTagSummary() is unavaible with MEM_DEBUG_BUILD disabled!
   *********************************************************************************************
   %s        %08d  0x%08x   0x%08x   0x%08x  
    USED     %s        %08d  0x%08x   0x%08x   0x%08x   
   FREE     ----------+------------------------+-----------------+-------------------------
           Type            Size                  Start(Hdr)    End(Hdr+data+struct)
   => Function DumpHeapUsedFree(%s)  ...............
   %8.2fK  0x%08x   0x%08p       0x%08p
       ----------------------+-----------------+-------------------------
              Size           Start(freeHdr)    End(freeHdr+data)
   => DumpHeapFreeList(%s) ...
     Max Size Free Blocks : %d
  NUM of Free Blocks   : %d
 TRUE            Overflow Status: %s
    FALSE      Current Num Mallocs : %u
          Peak Num Mallocs : %u
      Allocated Num Blocks : %d  [ used: %d || free: %d || to be freed: %d ]
         Current Mem Size : %08d bytes 0x%08x  
            Peak Mem Size : %08d bytes 0x%08x  
            Allocated Mem : %08d bytes 0x%08x  
           Bottom Address : 0x%08x  
             Top Address : 0x%08x  
     Heap Name           : %s
        *****************************************************************
               BIGSTACK fixed block heap   TINYSTACK fixed block heap  fixed block 1024 heap   fixed block 512 heap    fixed block 128 heap    fixed block 64 heap fixed block 32 heap fixed block 16 heap MKPROC fixed block heap MKSOBJ fixed block heap MKBONE fixed block heap MKOBJ fixed block heap  PFX objects Player Attack Col fixed block heap  Player Col fixed block heap NPCSTACK fixed block heap   overflowing 16 word fixed block heap into 32 word heap
 overflowing 32 word fixed block heap into 64 word heap
 overflowing 64 word fixed block heap into 128 word heap
    overflowing 128 word fixed block heap into 512 word heap
   overflowing 512 word fixed block heap into 1024 word heap
  OVERFLOW Heap   ==>> allocated OVERFLOW_HEAP size: %6.2f K
 SECTION TABLE fixed block heap  MPEG heap   Wave heap   mwFile heap mwSound Temp heap   mwSound heap    Section heap(external)  \games\mk7xbox\mk7\mwMEM\mwMemHeap.c    Permanent heap        FAILURE:  cannot allocate: %f K  from heap: %s
   >> Out of RAM 
 Overflow in %s is not allowed... fix it!
       >> OVERFLOW_HEAP: size: %f K origin heap: %s, dest heap: %s, file: %s L: %d
    operator new

Repository Log

Once again a source code repository log related to the Renderware SDK can be found at 0x4FD448 and throughout the Xbox executable.

@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/hanim/rphanim.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/hanim/stdkey.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/matfx/rpmatfx.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/matfx/xbox/effectPipesXbox.c#2 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/matfx/xbox/multitexxbox.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/matfx/multiTex.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/matfx/multiTexEffect.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/batextur.c#2 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/plcore/bastream.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/plcore/babinary.c#2 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/baraster.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/bacamera.c#4 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/baimage.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/plcore/bamatrix.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/baframe.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/badevice.c#2 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/batypehf.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/pipe/p2/baim3d.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/plcore/bafsys.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/baimras.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/plcore/bavector.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/babinfrm.c#2 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/plcore/baerr.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/plcore/batkbin.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/plcore/batkreg.c#3 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/plcore/baresour.c#2 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/driver/xbox/xbcache.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/plcore/bamemory.c#2 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/driver/xbox/xbrendst.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/driver/xbox/xbdevice.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/driver/xbox/xbmemory.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/driver/xbox/xbraster.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/pipe/p2/bapipe.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/pipe/p2/p2core.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/babintex.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/baresamp.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/plcore/rwstring.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/babbox.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/basync.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/os/xbox/osintf.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/plcore/bacolor.c#2 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/pipe/p2/p2heap.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/pipe/p2/xbox/im3dpipe.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/plcore/resmem.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/driver/xbox/xb2drend.c#2 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/driver/xbox/xbtexdic.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/driver/xbox/xbsprite.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/driver/xbox/xbconvrt.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/pipe/p2/p2renderstate.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/pipe/p2/p2dep.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/pipe/p2/xbox/nodeXBoxSubmitNoLight.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/driver/common/palquant.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/pipe/p2/p2resort.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/baclump.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/balight.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/baworobj.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/baworld.c#2 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/bageomet.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/bamatlst.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/bamesh.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/bamateri.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/pipe/p2/xbox/xbpipe.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/pipe/p2/xbox/xbvtxfmt.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/pipe/p2/xbox/xblights.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/pipe/p2/xbox/xbpixelshader.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/pipe/p2/xbox/nodeXBoxAtomicAllInOne.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/pipe/p2/xbox/nodeXBoxWorldSectorAllInOne.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/pipe/p2/xbox/native.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/pipe/p2/bapipew.c#2 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/babinwor.c#2 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/basector.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/world/pipe/p2/xbox/wrldpipe.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/skin2/rpskin.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/skin2/xbox/skinxboxrender.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/skin2/xbox/skinxboxformat.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/skin2/xbox/skinxboxconstantmode.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/skin2/xbox/skinxbox.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/skin2/xbox/skinxboxinstance.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/skin2/bsplit.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/skin2/xbox/skinplatform.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/skin2/xbox/skinxboxplain.c#1 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/tool/quat/rtquat.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/plugin/anisot/rpanisot.c#1 $
@@@@(#)$Id: //RenderWare/RW36Active/rwsdk/tool/anim/rtanim.c#2 $
@@(#)$Id: //RenderWare/RW36Active/rwsdk/src/babincam.c#1 $

Build Date

A build date for RenderWare can also be found in the Xbox executable at 0x4FDA89.

Core built at Dec  1 2005 15:24:51

Revisional Differences

The Wii port was released several months after the others and features a few differences.

  • Backgrounds for Cryax, Shao Kahn, and Shinnok were added to the main menu.
  • Players were given more icons to use as profile images.
  • Khameleon was added as a playable character.
  • Wii port also offers new features and better visuals
  • The following infinite combos were fixed in the Wii port:
    • Havik's free throw infinite
    • Hotaru's free throw infinite
    • Tai Chi 33 infinite
    • Bo Rai Cho's 24 infinite
    • Jade's teleport infinite