====== PowerMode 2003 ====== PowerMode 2003, also known as Mega Patch 2003, is a patch made by firesta for RPG Maker 2003 v. 1.09. This patch changes the behaviour of the variables 1 to 8 to open menus, tracks the mouse and keyboard status, does calculations and handles picture angles. It also skips the logo and title screen, allows the mouse to be used in menus, and changes the top and bottom transparency properties of pictures. This patch is supported by the EasyRPG Player in the [[https://github.com/EasyRPG/Player/pull/3384|continuous build of the version 0.8.1.1 since May 31, 2026]]. The EasyRPG Player recognises a game as a PowerMode 2003 game if a file named warp.dll is present in the folder of the game, or if the PowerMode2003 flag is set through the [[https://easyrpg.org/player/manual/#_easyrpg_ini|EasyRPG.ini]] file or through command line. Mouse and keyboard controls are not available on all platforms, and can require to plug or connect an external device to use them: see [[user:player:platforms|Platform Differences]] to check which platforms are compatible. A test suite of the patch made for the EasyRPG Player is available as part of the TestGame project, and can be used as reference if needed: * [[https://easyrpg.org/play/master/?game=TestGame-PowerMode2003|Test online]] * [[https://github.com/EasyRPG/TestGame|TestGame repository]] Games using it: [[https://www.rpg-maker.fr/jeux-877-super-mario-portal.html|Super Mario Portal]] ====== Properties ====== FIXME //Verify all properties to make sure they match what the patch does.// ===== Global changes === ==== Title skip === When the patch is used, the logo and title scenes are automatically skipped. ==== Mouse controls === The left and right mouse buttons are remapped to game keys: the left mouse button works like an action key, and the right mouse button works like a cancel key. ==== Picture transparency changes === As the patch was made for the non-English version of RPG Maker 2003, pictures displayed on the screen have two transparency values, a top transparency and a bottom transparency. The patch changes the behaviours of those transparency properties: * The top transparency parameter adjusts the transparency of the entire picture, similar to what is done in RPG Maker 2000 and in the English version of RPG Maker 2003. * The bottom transparency dictates how a picture should rotate if the picture uses the rotation property: if the value is below 50, it will rotate clockwise (default RPG Maker behaviour), and if it is 50 or above, the picture will rotate counterclockwise. ==== Audio formats === FIXME ===== Variable changes === ==== Save and system operations (variable 1) === The variable 1 is always equal to either 0 or 1 when using the patch: it will be equal to 0 if no save file exists, and 1 if at least one save file exists. If the variable 1 is attempted to be changed to the value 254, the game will close. If the variable 1 is attempted to be changed to the value 255 and that at least one save file exists, the load menu will open. ==== Mouse coordinates (variables 2 and 3) === If the value of the variable 3 is attempted to be changed, the variable 2 will receive the X coordinate of the mouse while variable 3 will receive the Y coordinate of the mouse. ==== Keyboard tracking (variable 4) === When attempting to set the value of variable 4 to 0, the value written to variable 4 will instead be the one of the key pressed with the smallest ID, and 0 will be returned if no key is pressed. For instance, if variable 4 is attempted to be set to 0 and that the user is only pressing the left shift key, the value returned will be 16, as it corresponds to the ID of the Shift key. The value returned will not be 160 (value of the left shift key) as it is bigger than the smallest key ID pressed. When attempting to set the value of variable 4 to another value, the value that will be written to variable 4 will be 0, or said value if its corresponding key is pressed. For instance, if variable 4 is attempted to be set to 160, the value written to variable 4 will either be 0 if the left shift key is not pressed, or 160 if the left shift key is pressed. The keys that can be used and their ID correspond to the [[https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes|Virtual-Key Codes]]. You can find a list of keys with their value correspondance here: ^ Value ^ Key ^ | 1 | Left mouse button | | 2 | Right mouse button | | 3 | Control-break processing | | 4 | Middle Mouse button | | 5 | X1 Mouse button | | 6 | X2 Mouse button | | 8 | Backspace | | 9 | Tab | | 12 | Clear | | 13 | Enter | | 16 | Shift | | 17 | Ctrl | | 18 | Alt | | 19 | Pause | | 20 | CapsLock | | 21 | IME Kana mode/IME Hangul mode | | 22 | IME On | | 23 | IME Junja mode | | 24 | IME final mode | | 25 | IME Hanja mode/IME Kanji mode | | 26 | IME Off | | 27 | Esc | | 28 | IME convert | | 29 | IME nonconvert | | 30 | IME accept | | 31 | IME mode change request | | 32 | Space | | 33 | PageUp | | 34 | PageDown | | 35 | End | | 36 | Home | | 37 | Left | | 38 | Up | | 39 | Right | | 40 | Down | | 41 | SELECT key | | 42 | PRINT key | | 43 | EXECUTE key | | 44 | PRINT SCREEN key | | 45 | INS key | | 46 | DEL key | | 47 | HELP key | | 48 | 0 (non-Numpad) | | 49 | 1 (non-Numpad) | | 50 | 2 (non-Numpad) | | 51 | 3 (non-Numpad) | | 52 | 4 (non-Numpad) | | 53 | 5 (non-Numpad) | | 54 | 6 (non-Numpad) | | 55 | 7 (non-Numpad) | | 56 | 8 (non-Numpad) | | 57 | 9 (non-Numpad) | | 65 | A | | 66 | B | | 67 | C | | 68 | D | | 69 | E | | 70 | F | | 71 | G | | 72 | H | | 73 | I | | 74 | J | | 75 | K | | 76 | L | | 77 | M | | 78 | N | | 79 | O | | 80 | P | | 81 | Q | | 82 | R | | 83 | S | | 84 | T | | 85 | U | | 86 | V | | 87 | W | | 88 | X | | 89 | Y | | 90 | Z | | 91 | Left Windows key | | 92 | Right Windows key | | 93 | Applications key | | 95 | Computer Sleep key | | 96 | 0 (Numpad) | | 97 | 1 (Numpad) | | 98 | 2 (Numpad) | | 99 | 3 (Numpad) | | 100 | 4 (Numpad) | | 101 | 5 (Numpad) | | 102 | 6 (Numpad) | | 103 | 7 (Numpad) | | 104 | 8 (Numpad) | | 105 | 9 (Numpad) | | 106 | * (Numpad) | | 107 | + (Numpad) | | 108 | , (Numpad - keyboard specific) | | 109 | - (Numpad) | | 110 | . (Numpad) | | 111 | / (Numpad) | | 112 | F1 | | 113 | F2 | | 114 | F3 | | 115 | F4 | | 116 | F5 | | 117 | F6 | | 118 | F7 | | 119 | F8 | | 120 | F9 | | 121 | F10 | | 122 | F11 | | 123 | F12 | | 124 | F13 | | 125 | F14 | | 126 | F15 | | 127 | F16 | | 128 | F17 | | 129 | F18 | | 130 | F19 | | 131 | F20 | | 132 | F21 | | 133 | F22 | | 134 | F23 | | 135 | F24 | | 144 | Numlock | | 145 | ScrollLock | | 146~150 | OEM specific | | 160 | Left Shift key | | 161 | Right Shift key | | 162 | Left Ctrl key | | 163 | Right Ctrl key | | 164 | Left Alt key | | 165 | Right Alt key | | 166 | Browser Back key | | 167 | Browser Forward key | | 168 | Browser Refresh key | | 169 | Browser Stop key | | 170 | Browser Search key | | 171 | Browser Favorites key | | 172 | Browser Start and Home key | | 173 | Volume Mute key | | 174 | Volume Down key | | 175 | Volume Up key | | 176 | Next Track key | | 177 | Previous Track key | | 178 | Stop Media key | | 179 | Play/Pause Media key | | 180 | Start Mail key | | 181 | Select Media key | | 182 | Start Application 1 key | | 183 | Start Application 2 key | | 186 | ;: (US standard keyboard, key varies per keyboard) | | 187 | + | | 188 | , | | 189 | - (US standard keyboard, key varies per keyboard) | | 190 | . | | 191 | /? (US standard keyboard, key varies per keyboard) | | 192 | `~ (US standard keyboard, key varies per keyboard) | | 219 | [{ (US standard keyboard, key varies per keyboard) | | 220 | ''\\'' (US standard keyboard, key varies per keyboard) | | 221 | ]} (US standard keyboard, key varies per keyboard) | | 222 | '" (US standard keyboard, key varies per keyboard) | | 223 | Unspecified Miscellanous key (varies per keyboard) | | 225 | OEM specific | | 226 | <> (US standard keyboard, key varies per keyboard) | | 227~228 | OEM specific | | 229 | IME PROCESS key | | 230 | OEM specific | | 231 | VK_PACKET | | 233~245 | OEM specific | | 246 | Attn key | | 247 | CrSel key | | 248 | ExSel key | | 249 | Erase EOF key | | 250 | Play key | | 251 | Zoom key | | 253 | PA1 key | | 254 | Clear key | ==== Math operations (variables 5 to 7) === By setting the variable 7 to a value between 1 and 4, operations will be done on the variables 5 and 6: * If variable 7 is set to 1, the cos and sin of the value in variable 5 will be calculated, with the cos being output in variable 5 and the sin in variable 6. * If variable 7 is set to 2, the tangent of the value in variable 5 will be calculated to be output in variable 6. * If variable 7 is set to 3, the square root of the value in variable 5 will be calculated, with the natural part of the square root output in variable 5 and the fractional part in variable 6. * If variable 7 is set to 4, the value of variable 5 will be divided by the value of variable 6, with the natural part of the quotient output in variable 5 and the fractional part in variable 6. ==== Fixed picture rotation (variable 8) === FIXME //Verify the angle range on the original patch (0~255 or 0~256?).// If the variable 8 is set to a value of 11 or above, pictures using the rotate parameter will no longer rotate, and instead will be displayed a fixed angle. The fixed angle value is picked from the variable pointed by variable 8, as well as the 49 variables present after it (the original RPG Maker 2003 only supported 50 picture slots, so those 50 variables cover all pictures), and accepts values on a 0~255 range. For instance, if variable 8 is equal to 101, the picture of ID 1 will have its fixed angle value picked from variable 101, the picture of ID 2 from variable 102, and so on up to the picture of ID 50 with the variable 150. If the variable 8 is set to a value below 11, pictures with the rotate parameter will rotate as usual. ====== References and further reading ====== * [[https://www.rpg-maker.fr/programmes/PowerMode2003-en.rar|PowerMode 2003 download on Oniromancie]]; includes English and French manuals * [[https://www.makerpendium.de/wiki/PowerMode_2003|PowerMode 2003 on Makerpendium]] (German)