Mortal Kombat: Armageddonis the last installment of theMortal Kombatseries on sixth-generation consoles, and as such Midway added nearly every character from the series to the game. It's likeMortal Kombat Trilogy'', if half the roster were clones. Which does at least make it the first trueEVERYONE IS HERE'' type game in a sense.
It's also the first- and so far, the only- Mortal Kombat game where players could kreate their own fighter.
|
|
To do:
|
Unused Levels#
Arenas#
nis_bgnd#

Judging by the filename, this arena was likely a test background for cutscenes. It is referred to as "unknown background name" in-game.
Release |
Action Replay code |
|---|---|
PS2 (USA) |
20660094 00000004 |
Wii (USA) |
0456E0AC 00000004 |
kredits#
|
Krypt Art |
Arena |
|---|---|
|
|
The background used to show off unlocked alternate outfits for characters in the Krypt is actually a stage in the game, though it is normally inaccessible for players. It was most likely also used for the E3 character select screen due to the presence of fog, which does not appear on the alternate costume art as it does on the E3 character select screen. The stage is named "PLAYER 1" in-game.
Release |
Action Replay code |
|---|---|
PS2 (USA) |
20660094 00000019 |
Wii (USA) |
0456E0AC 00000019 |
Motor Kombat#
kart_test_derby#

This is a test track that was used before the minigame was finalized.
Release |
Action Replay code |
|---|---|
PS2 (USA) |
20660094 00000036 |
Wii (USA) |
0456E0AC 00000036 |
kart_track_loop#

This track will cause the game to hang when loaded in Motor Kombat, though it oddly loads without issue in Arcade. It is a lava-themed level that can be seen in Motor Concept Movie from the Krypt.
Release |
Action Replay code |
|---|---|
PS2 (USA) |
20660094 00000035 |
Wii (USA) |
0456E0AC 00000035 |
kart_track_straightaway#
This track also only loads in Arcade. It seems to be a mostly black background with two walls on opposite ends of the stage.
Release |
Action Replay code |
|---|---|
PS2 (USA) |
20660094 00000037 |
Wii (USA) |
0456E0AC 00000037 |
Konquest#
Newtown_demo#

An unused map that was shown in Konquest Progression Movie from the Krypt. The player spawns outside of the map and is able to walk through any object as the level lacks collision. The only other character present is an untextured ninja that can be seen t-posing.
Release |
Action Replay code |
|---|---|
PS2 (USA) |
207BFC78 00000000 |
Wii (USA) |
04525288 00000000 |
Test Character "0"#

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 "Bug This" and plays like a normal custom character, except she has no special moves.
Platform |
AR code |
|---|---|
PS2 (USA) |
20660158 0000003E |
Wii (USA) |
0056e173 0000003F |
Unused Graphics#
E3 End Screen#
Once again, there's a leftover end screen from the E3 demo featuring an early logo. Found inside konquest_common.ssf. 
Test Textures#
A few test textures are present in kart_track_straightaway.ssf.
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" |
||
"Bloody" |
||
"Mortal" |
||
"Brutal" |
||
"Evil" |
||
"Vicious" |
||
"Savage" |
||
"Extreme" |
||
"Ultimate" |
Music#
shell_music_2 |
Leftover main menu music from Mortal Kombatː Deception that is only played in the PS2 version's MK Online lobby screen. |
|
|---|---|---|
shell_music_3 |
Debug Functions#
Game Version#
|
|
To do: |

When you go to game options and select gameplay, hold L + Attack 1 for about six seconds in order for the game version to display on the bottom-right corner. It appears this function is enabled in all releases, which was not the case with the previous sixth-generation games.
Release |
Version Number |
|---|---|
Xbox (USA) |
0.099 |
Wii (USA) |
0.099 |
PlayStation 2 (USA) |
0.084 |
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
Internal Names#
As it was the case with the previous games, some files and code refer to debuting characters and arenas with their internal names.
Internal name |
Actual name |
|---|---|
Desert |
Lost Pyramid |
Hero |
Taven |
Lava World |
Outworld Refinery |
Motor Town |
Bo' Rai Cho's Brewery |
The Pyramid |
Pyramid of Argus |
Volcano |
Outworld Refinery |
list2.txt#
Also 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#
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
Version Differences#
The Wii port was released several months after the others and features a few differences:
- Backgrounds for Cyrax, Shao Kahn, and Shinnok were added to the main menu.
- Characters now have facial expressions.
- Players were given more icons to use as profile images.
- Khameleon was added as a playable character, thus reducing Kreate-a-Fighter to only one slot in the character select screen (not that the PS2 and Xbox's two slots had much practical utility, since only one custom character could be saved per profile anyway).
- New features such as Endurance Mode and better visuals overall.
- Kreate a Fighter's track "In Depth" no longer plays.
- The following infinite combos were fixed:
- Havik's free throw infinite
- Hotaru's free throw infinite
- Tai Chi's 33 infinite
- Bo Rai Cho's 24 infinite
- Jade's teleport infinite
- Konquest's cutscenes are made unskippable for the Wii version, despite the PS2 and Xbox versions allowing you to skip them.
- The Midway vanity plate is changed:
|
PS2/Xbox |
Wii |
|---|---|
Premium Edition#
|
|
To do: |
A Premium Edition was released for PS2 in North America. It adds the arcade version of Ultimate Mortal Kombat 3 as a bonus game, and also includes a DVD containing videos such as a making of documentary.
|
The Mortal Kombat series | |
|---|---|
|
Arcade |
Mortal Kombat • Mortal Kombat II • Mortal Kombat 3 (Ultimate) • Mortal Kombat 4 |
|
SNES |
Mortal Kombat • Mortal Kombat II (Prototype) • Mortal Kombat 3 (Ultimate) |
|
Genesis |
Mortal Kombat • Mortal Kombat II • Mortal Kombat 3 (Prototype, Ultimate) |
|
32X |
|
|
Game Boy (Color) |
Mortal Kombat (Prototype) • Mortal Kombat II • Mortal Kombat 3 • Mortal Kombat 4 |
|
Sega Master System |
|
|
Game Gear |
|
|
Sega Saturn |
|
|
Dreamcast |
|
|
PlayStation |
Mortal Kombat II • Mortal Kombat 3 • Mythologies: Sub-Zero • Special Forces |
|
PlayStation 2, Xbox |
Deadly Alliance • Deception (Prototype) • Shaolin Monks • Armageddon |
|
PlayStation 3, Xbox 360 |
|
|
PlayStation Vita |
|
|
Game Boy Advance |
Mortal Kombat Advance • Deadly Alliance • Tournament Edition |
|
Nintendo 64 |
|
|
GameCube |
|
|
Wii |
|
|
Windows |
Mortal Kombat 4 • Mortal Kombat • Mortal Kombat X • Mortal Kombat 1 |
|
PlayStation 5, Xbox Series X, Nintendo Switch |
|
|
Compilations | |
|
Game Boy |
|
|
Game.com |
|
|
Sega Saturn |
|
|
PlayStation |
|
|
Nintendo 64 |
|
|
Windows |
|