Codxe
Multi Call of Duty modification for Xbox 360 and Xenia
Install / Use
/learn @michaeloliverx/CodxeREADME
CoDxe
CoDxe is an open-source modding environment for the Xbox 360 versions of older Call of Duty games.
It supports both physical Xbox 360 consoles and emulation via Xenia.
WHY? As a fun project to explore modding the CoD games I grew up with, and to provide a more flexible and powerful modding experience.
Why the name? CoDxe comes from Call of Duty and Xenon — short, simple, and on brand.
Requirements
To run CoDxe, you will need one of the following:
- Xbox 360 capable of running unsigned code (JTAG/RGH/DEVKIT/Bad Update)
- Xenia Canary - Xbox 360 Emulator (Use the latest version)
[!WARNING] Only Xenia Canary supports plugins. Master builds will not work.
Game Compatibility
| Game | Version | Singleplayer | Multiplayer | Supported Region |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ------------------ | ----------------------------------------------- |
| Call of Duty 2 (2005) (IW2) | TU3 | :white_check_mark: | :white_check_mark: | Call of Duty 2 (USA, Europe) |
| Call of Duty 4: Modern Warfare (2007) (IW3) | TU4 | :white_check_mark: | :white_check_mark: | Call of Duty 4 - Modern Warfare (USA, Europe) |
| 007: Quantum of Solace (2008) | TU2 | :white_check_mark: | :white_check_mark: | 007 - Quantum of Solace (USA, Europe) (En,Fr) |
| Call of Duty 5: World at War (2008) (T4) | TU7 | :white_check_mark: | :white_check_mark: | Call of Duty - World at War (USA, Europe) |
| Call of Duty: Modern Warfare 2 (2009) (IW4) | SP TU9 / MP TU6 | :white_check_mark: | :x: | Call of Duty - Modern Warfare 2 (USA, Europe) |
| Call of Duty: Black Ops (2010) (T5) | TU11 | :white_check_mark: | :white_check_mark: | Call of Duty - Black Ops (USA, Europe) |
| Call of Duty: Modern Warfare 3 (2011) (IW5) | TU24 | :x: | :white_check_mark: | Call of Duty - Modern Warfare 3 (USA Europe) |
Feature Matrix
| Feature | IW2 SP | IW2 MP | IW3 SP | IW3 MP | T4 SP | T4 MP | IW4 SP |
| ------------------------- | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| Raw .gsc loader | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| Raw map ents loader | :x: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| Raw .dds texture loader | :x: | :x: | :x: | :white_check_mark: | :x: | :x: | :x: |
Call of Duty 4 - Modern Warfare
The following is an incomplete version of all the features the client has to offer.
Client Commands:
godnoclipufotogglerecord- start/stop movement recorderstartplayback- start a playback of the current movement recorderimagedump- Dump all currently loaded textures to disk.
Dvars:
pm_pc_mp_velocity_snap- Enable PC Multiplayer style velocity snapping (round to nearest).pm_multi_bounce- Enable multi-bounces.noclip_brushes- Disable player collision for clipmap brush indices e.g."50 123 647"""- Empty string restores original collision flag for all brushes."*"disable collision for all brushes.
r_drawDynEnts- Draw dynamic entities.bg_bobIdle- Idle gun sway.cg_scoreboardLabel_Score- Override label for 'Score' column on scoreboard.cg_scoreboardLabel_Kills- Override label for 'Kills' column on scoreboard.cg_scoreboardLabel_Assists- Override label for 'Assists' column on scoreboard.cg_scoreboardLabel_Deaths- Override label for 'Deaths' column on scoreboard.
GSC Entity fields:
self.noclip = <bool>- toggles noclipself.ufo = <bool>- toggles ufomodeself.entityflags = <int>- gentity flags e.g.1is godmodeself.forwardmove <int>- Read-Only Player's forward/backward movement input (-127 = full backward, 127 = full forward, 0 = no input)self.rightmove <int>- Read-Only Player's left/right movement input (-127 = full left, 127 = full right, 0 = no input)
GSC Functions:
execExecutes the given command on server as console command e.g.exec("fast_restart");
GSC Methods:
-
ButtonPressed- HOST ONLY - Check if a specific button is pressed.- Usage:
self ButtonPressed("DPAD_DOWN") - See keynames below for valid button identifiers.
- Usage:
-
SprintBreathButtonPressed- Check if the sprint button is pressed. -
LeanLeftButtonPressed- Check if the lean left button is pressed. -
LeanRightButtonPressed- Check if the lean right button is pressed. -
JumpButtonPressed- Check if the jump button is pressed. -
HoldBreathButtonPressed- Check if the hold breath button is pressed. -
NightVisionButtonPressed- Check if the night vision button is pressed. -
ForwardButtonPressed- Check if the player is moving forward (left stick up). -
BackButtonPressed- Check if the player is moving backward (left stick down). -
LeftButtonPressed- Check if the player is moving left (left stick left). -
RightButtonPressed- Check if the player is moving right (left stick right). -
SetVelocity- Changes current player velocity. -
SetStance- Changes current players stance.- Usage:
self setVelocity((0, 0, 300)); // Go up.
- Usage:
-
BotAction- Same as CoD4x -
BotStop- Same as CoD4x -
CloneBrushModelToScriptModel- Clones a brush model's geometry to a script model entity.- Usage:
scriptModel CloneBrushModelToScriptModel(brushEntity);
- Usage:
-
SetBrushModel- Sets an entity's brush model by index.- Usage:
entity SetBrushModel(index);
- Usage:
BUTTON_A
BUTTON_B
BUTTON_X
BUTTON_Y
BUTTON_LSHLDR
BUTTON_RSHLDR
BUTTON_START
BUTTON_BACK
BUTTON_LSTICK
BUTTON_RSTICK
BUTTON_RTRIG
BUTTON_LTRIG
DPAD_UP
DPAD_DOWN
DPAD_LEFT
DPAD_RIGHT
APAD_UP
APAD_DOWN
APAD_LEFT
APAD_RIGHT
</details>
Loading single-player maps
Loading single player maps in multiplayer is a best effort approach. Lots of things are broken such as missing FX, player models, crashes etc.
| Name | Xbox 360 | Xenia | | ------------------- | :------: | :---: | | ac130.ff | 🟢 | 🟢 | | aftermath.ff | 🟢 | 🟢 | | airlift.ff | ❌ | 🟢 | | airplane.ff | 🟢 | 🟢 | | ambush.ff | ❌ | 🟢 | | armada.ff | ❌ | ❌ | | blackout.ff | ❌ | 🟢 | | bog_a.ff | ❌ | 🟢 | | bog_b.ff | ❌ | 🟢 | | cargoship.ff | 🟢 | 🟢 | | coup.ff | ❌ | 🟢 | | hunted.ff | ❌ | 🟢 | | icbm.ff | ❌ | 🟢 | | jeepride.ff | ❌ | 🟢 | | killhouse.ff | ❌ | 🟢 | | launchfacility_a.ff | ❌ | 🟢 | | launchfacility_b.ff | ❌ | 🟢 | | scoutsniper.ff | ❌ | 🟢 | | simplecredits.ff | ❌ | ❌ | | sniperescape.ff | ❌ | 🟢 | | village_assault.ff | ❌ | 🟢 | | village_defend.ff | ❌ | 🟢 |
NOTE: Xenia requires the patch to increase memory installed.
Call of Duty: Modern Warfare 2
Loading single player maps in multiplayer is a best effort approach. Lots of things are broken such as missing FX, player models, crashes etc.
🟢 - Loads without issues 🟡 - Texture limit was reached but the out of memory error was patched to not fail. Expect broken and undefined behaviour. 🔴 - Does not load
| Name | Xbox 360 | Xenia | Notes | | ---------------- | :------: | :---: | ------------------------------------------- | | af_caves.ff | 🟢 | 🟢 | |
