Remote Control: Difference between revisions

From PS2 Developer wiki
Jump to navigation Jump to search
mNo edit summary
(Add information on remote codes)
Line 36: Line 36:
== Trivia ==
== Trivia ==
Early third party PS2 remote controls were available months before the release of the original remote control in Japan. However, their buttons only map directly to DualShock 2 buttons with no additional features. This is because at the time, no DVD player versions supporting any extra features were available.
Early third party PS2 remote controls were available months before the release of the original remote control in Japan. However, their buttons only map directly to DualShock 2 buttons with no additional features. This is because at the time, no DVD player versions supporting any extra features were available.
== Remote codes ==
Codes in Dragon [[MechaCon]] SCMD 0x1E and lircd format that PS2 hardware or software responds to are listed below.
{| class="wikitable" style="font-size:small;"
|-
! Label        !! ps2sdk Definition !! SCMD 0x1E  !! lircd      !! Remarks
|-
| 1            || RM_DVD_ONE        || 0x0000D049 || 0x00000B92 ||
|-
| 2            || RM_DVD_TWO        || 0x0010D049 || 0x00080B92 ||
|-
| 3            || RM_DVD_THREE      || 0x0020D049 || 0x00040B92 ||
|-
| 4            || RM_DVD_FOUR      || 0x0030D049 || 0x000C0B92 ||
|-
| 5            || RM_DVD_FIVE      || 0x0040D049 || 0x00020B92 ||
|-
| 6            || RM_DVD_SIX        || 0x0050D049 || 0x000A0B92 ||
|-
| 7            || RM_DVD_SEVEN      || 0x0060D049 || 0x00060B92 ||
|-
| 8            || RM_DVD_EIGHT      || 0x0070D049 || 0x000E0B92 ||
|-
| 9            || RM_DVD_NINE      || 0x0080D049 || 0x00010B92 ||
|-
| 0            || RM_DVD_ZERO      || 0x0090D049 || 0x00090B92 ||
|-
| ENTER        || RM_DVD_ENTER      || 0x00B0D049 || 0x000D0B92 ||
|-
| RETURN      || RM_DVD_RETURN    || 0x00E0D049 || 0x00070B92 ||
|-
| CLEAR        || RM_DVD_CLEAR      || 0x00F0D049 || 0x000F0B92 ||
|-
| TOP MENU    || RM_DVD_TITLE      || 0x00A0D149 || 0x00058B92 ||
|-
| MENU        || RM_DVD_MENU      || 0x00B0D149 || 0x000D8B92 ||
|-
| PROGRAM      || RM_DVD_PROGRAM    || 0x00F0D149 || 0x000F8B92 ||
|-
| TIME        || RM_DVD_TIME      || 0x0080D249 || 0x00014B92 ||
|-
| A-B          || RM_DVD_ATOB      || 0x00A0D249 || 0x00054B92 ||
|-
| REPEAT      || RM_DVD_REPEAT    || 0x00C0D249 || 0x00034B92 ||
|-
| PREV        || RM_DVD_PREV      || 0x0000D349 || 0x0000CB92 ||
|-
| NEXT        || RM_DVD_NEXT      || 0x0010D349 || 0x0008CB92 ||
|-
| PLAY        || RM_DVD_PLAY      || 0x0020D349 || 0x0004CB92 ||
|-
| SCAN (left)  || RM_DVD_SCAN_BACK  || 0x0030D349 || 0x000CCB92 ||
|-
| SCAN (right) || RM_DVD_SCAN_FORW  || 0x0040D349 || 0x0002CB92 ||
|-
| SHUFFLE      || RM_DVD_SHUFFLE    || 0x0050D349 || 0x000ACB92 ||
|-
| STOP        || RM_DVD_STOP      || 0x0080D349 || 0x0001CB92 ||
|-
| PAUSE        || RM_DVD_PAUSE      || 0x0090D349 || 0x0009CB92 ||
|-
| DISPLAY      || RM_DVD_DISPLAY    || 0x0040D549 || 0x0002AB92 ||
|-
| SLOW (left)  || RM_DVD_SLOW_BACK  || 0x0000D649 || 0x00006B92 ||
|-
| SLOW (right) || RM_DVD_SLOW_FORW  || 0x0010D649 || 0x00086B92 ||
|-
| SUBTITLE    || RM_DVD_SUBTITLE  || 0x0030D649 || 0x000C6B92 ||
|-
| AUDIO        || RM_DVD_AUDIO      || 0x0040D649 || 0x00026B92 ||
|-
| ANGLE        || RM_DVD_ANGLE      || 0x0050D649 || 0x000A6B92 ||
|-
|              || RM_DVD_UP        || 0x0090D749 || 0x0009EB92 || SCPH-10420 and SCPH-10150 will alternate between this and RM_PS2_UP when held down
|-
|              || RM_DVD_DOWN      || 0x00A0D749 || 0x0005EB92 || SCPH-10420 and SCPH-10150 will alternate between this and RM_PS2_DOWN when held down
|-
|              || RM_DVD_LEFT      || 0x00B0D749 || 0x000DEB92 || SCPH-10420 and SCPH-10150 will alternate between this and RM_PS2_LEFT when held down
|-
|              || RM_DVD_RIGHT      || 0x00C0D749 || 0x0003EB92 || SCPH-10420 and SCPH-10150 will alternate between this and RM_PS2_RIGHT when held down
|-
| RESET        || RM_PS2_POWER      || 0x0050D1DA || 0x000A8B5B || Responeded to by Dragon [[MechaCon]]: hold briefly to reset, and hold longer to power off. Only on SCPH-10420.
|-
| OPEN/CLOSE  || RM_PS2_EJECT      || 0x0060D1DA || 0x00068B5B || Responeded to by Dragon [[MechaCon]]: opens and closes the tray. Only on SCPH-10420.
|-
|              || RM_PS2_RESET      || 0x0070D1DA || 0x000E8B5B || Responeded to by Dragon [[MechaCon]]: resets the console if powered on. Not on SCPH-10420 and SCPH-10150.
|-
|              || RM_PS2_POWERON    || 0x00E0D2DA || 0x00074B5B || Responeded to by Dragon [[MechaCon]]: powers on the console if powered off. Not on SCPH-10420 and SCPH-10150.
|-
|              || RM_PS2_POWEROFF  || 0x00F0D2DA || 0x000F4B5B || Responeded to by Dragon [[MechaCon]]: powers off the console if powered on. Not on SCPH-10420 and SCPH-10150.
|-
|              || RM_PS2_NOLIGHT    || 0x0050D7DA || 0x000AEB5B || Responeded to by Dragon [[MechaCon]]: extinguishes the power LED while being held. Not on SCPH-10420 and SCPH-10150.
|-
| SELECT      || RM_PS2_SELECT    || 0x0000D5DA || 0x0000AB5B ||
|-
| L3          || RM_PS2_L3        || 0x0010D5DA || 0x0008AB5B ||
|-
| R3          || RM_PS2_R3        || 0x0020D5DA || 0x0004AB5B ||
|-
| START        || RM_PS2_START      || 0x0030D5DA || 0x000CAB5B ||
|-
|              || RM_PS2_UP        || 0x0040D5DA || 0x0002AB5B || SCPH-10420 and SCPH-10150 will alternate between this and RM_DVD_UP when held down
|-
|              || RM_PS2_RIGHT      || 0x0050D5DA || 0x000AAB5B || SCPH-10420 and SCPH-10150 will alternate between this and RM_DVD_RIGHT when held down
|-
|              || RM_PS2_DOWN      || 0x0060D5DA || 0x0006AB5B || SCPH-10420 and SCPH-10150 will alternate between this and RM_DVD_DOWN when held down
|-
|              || RM_PS2_LEFT      || 0x0070D5DA || 0x000EAB5B || SCPH-10420 and SCPH-10150 will alternate between this and RM_DVD_LEFT when held down
|-
| L2          || RM_PS2_L2        || 0x0080D5DA || 0x0001AB5B ||
|-
| R2          || RM_PS2_R2        || 0x0090D5DA || 0x0009AB5B ||
|-
| L1          || RM_PS2_L1        || 0x00A0D5DA || 0x0005AB5B ||
|-
| R1          || RM_PS2_R1        || 0x00B0D5DA || 0x000DAB5B ||
|-
|              || RM_PS2_TRIANGLE  || 0x00C0D5DA || 0x0003AB5B ||
|-
|              || RM_PS2_CIRCLE    || 0x00D0D5DA || 0x000BAB5B ||
|-
|              || RM_PS2_CROSS      || 0x00E0D5DA || 0x0007AB5B ||
|-
|              || RM_PS2_SQUARE    || 0x00F0D5DA || 0x000FAB5B ||
|}
=== Algorithm for SCMD 0x1E to lircd format ===
<pre>
def bit_swap(x):
    return (((x & (1 << 7)) >> 7) << 0) | (((x & (1 << 6)) >> 6) << 1) | (((x & (1 << 5)) >> 5) << 2) | (((x & (1 << 4)) >> 4) << 3) | (((x & (1 << 3)) >> 3) << 4) | (((x & (1 << 2)) >> 2) << 5) | (((x & (1 << 1)) >> 1) << 6) | (((x & (1 << 0)) >> 0) << 7)
def byte_swap_24(x):
    return (bit_swap(((x & 0xFF0000) >> 16)) << 16) | (bit_swap(((x & 0x00FF00) >> 8)) << 8) | (bit_swap(((x & 0x0000FF) >> 0)) << 0)
</pre>
=== lircd template for specified remote codes ===
<pre>
begin remote
  name  PS2
  bits          20
  flags SPACE_ENC|CONST_LENGTH
  eps            30
  aeps          100
  header      2432  581
  one          1212  581
  zero          614  581
  gap          44853
  min_repeat      2
  toggle_bit      0
      begin codes
          RM_PS2_EJECT            0x00068B5B
          RM_PS2_RESET            0x000A8B5B
          # Add more codes here...
      end codes
end remote
</pre>

Revision as of 16:25, 1 February 2025

Overview

Separate sets were sold, either for consoles with or without integrated IR receiver. The latter always came with an IR-receiver and a DVD player update disc to add software support for the remote control.

Model numbers

  • SCPH-10150
    • Remote control for use with the SCPH-10160 IR receiver
  • SCPH-10160
    • IR receiver for use with the SCPH-10150 remote control. Plugs into a controller port.
  • SCPH-10420
    • Remote control for use only on consoles with integrated IR receiver (SCPH-5X0XX and all slim consoles). Can also remotely open/close the disc tray (not on slim consoles, since their disc doors are purely mechanical) and turn on/off the console via two additional buttons.

Bundles

  • SCPH-18000 (PS2 console)
    • Japan-only
    • Released on December 8th, 2000
    • All SCPH-18000 consoles (A+ and AB-chassis) came bundled with the SCPH-10150 remote control as well as the SCPH-10160 IR receiver. These consoles also have DVD player 2.00 installed in ROM, which supports the remote control out of the box.
    • Buying a SCPH-18000 PS2 console is indeed the first way the official remote control became available to end users.
  • SCPH-10170
    • Released on December 22nd, 2000
    • Japanese bundle containing remote control (SCPH-10150), IR receiver (SCPH-10160), batteries and DVD player install/update disc 2.01, 2.10, 2.12, 2.14 or 2.16. Released in Japan in December 2000.
    • Meant for use with SCPH-10000 and SCPH-15000 PS2 consoles, since SCPH-18000 consoles already included the remote control.
  • SCPH-10171
    • North American bundle containing remote control (SCPH-10150), IR receiver (SCPH-10160), batteries and DVD player install/update disc 2.10, 2.12 or 2.14.
  • SCPH-10172
    • European bundle containing remote control (SCPH-10150), IR receiver (SCPH-10160), batteries and DVD player install/update disc 2.10 or 2.14.
  • SCPH-10173
    • Australian bundle containing remote control (SCPH-10150), IR receiver (SCPH-10160), batteries and DVD player install/update disc 2.10 or 2.14.
  • SCPH-10420 (+ region suffix, e.g. J for Japan, U for US and E for Europe)
    • Released concurrently to SCPH-5X0XX
    • Bundle containing the SCPH-10420 remote control (only for SCPH-5X0XX and up) with some batteries. No IR receiver and no DVD player install/update disc are included, since these are not needed for operation.

Trivia

Early third party PS2 remote controls were available months before the release of the original remote control in Japan. However, their buttons only map directly to DualShock 2 buttons with no additional features. This is because at the time, no DVD player versions supporting any extra features were available.

Remote codes

Codes in Dragon MechaCon SCMD 0x1E and lircd format that PS2 hardware or software responds to are listed below.

Label ps2sdk Definition SCMD 0x1E lircd Remarks
1 RM_DVD_ONE 0x0000D049 0x00000B92
2 RM_DVD_TWO 0x0010D049 0x00080B92
3 RM_DVD_THREE 0x0020D049 0x00040B92
4 RM_DVD_FOUR 0x0030D049 0x000C0B92
5 RM_DVD_FIVE 0x0040D049 0x00020B92
6 RM_DVD_SIX 0x0050D049 0x000A0B92
7 RM_DVD_SEVEN 0x0060D049 0x00060B92
8 RM_DVD_EIGHT 0x0070D049 0x000E0B92
9 RM_DVD_NINE 0x0080D049 0x00010B92
0 RM_DVD_ZERO 0x0090D049 0x00090B92
ENTER RM_DVD_ENTER 0x00B0D049 0x000D0B92
RETURN RM_DVD_RETURN 0x00E0D049 0x00070B92
CLEAR RM_DVD_CLEAR 0x00F0D049 0x000F0B92
TOP MENU RM_DVD_TITLE 0x00A0D149 0x00058B92
MENU RM_DVD_MENU 0x00B0D149 0x000D8B92
PROGRAM RM_DVD_PROGRAM 0x00F0D149 0x000F8B92
TIME RM_DVD_TIME 0x0080D249 0x00014B92
A-B RM_DVD_ATOB 0x00A0D249 0x00054B92
REPEAT RM_DVD_REPEAT 0x00C0D249 0x00034B92
PREV RM_DVD_PREV 0x0000D349 0x0000CB92
NEXT RM_DVD_NEXT 0x0010D349 0x0008CB92
PLAY RM_DVD_PLAY 0x0020D349 0x0004CB92
SCAN (left) RM_DVD_SCAN_BACK 0x0030D349 0x000CCB92
SCAN (right) RM_DVD_SCAN_FORW 0x0040D349 0x0002CB92
SHUFFLE RM_DVD_SHUFFLE 0x0050D349 0x000ACB92
STOP RM_DVD_STOP 0x0080D349 0x0001CB92
PAUSE RM_DVD_PAUSE 0x0090D349 0x0009CB92
DISPLAY RM_DVD_DISPLAY 0x0040D549 0x0002AB92
SLOW (left) RM_DVD_SLOW_BACK 0x0000D649 0x00006B92
SLOW (right) RM_DVD_SLOW_FORW 0x0010D649 0x00086B92
SUBTITLE RM_DVD_SUBTITLE 0x0030D649 0x000C6B92
AUDIO RM_DVD_AUDIO 0x0040D649 0x00026B92
ANGLE RM_DVD_ANGLE 0x0050D649 0x000A6B92
RM_DVD_UP 0x0090D749 0x0009EB92 SCPH-10420 and SCPH-10150 will alternate between this and RM_PS2_UP when held down
RM_DVD_DOWN 0x00A0D749 0x0005EB92 SCPH-10420 and SCPH-10150 will alternate between this and RM_PS2_DOWN when held down
RM_DVD_LEFT 0x00B0D749 0x000DEB92 SCPH-10420 and SCPH-10150 will alternate between this and RM_PS2_LEFT when held down
RM_DVD_RIGHT 0x00C0D749 0x0003EB92 SCPH-10420 and SCPH-10150 will alternate between this and RM_PS2_RIGHT when held down
RESET RM_PS2_POWER 0x0050D1DA 0x000A8B5B Responeded to by Dragon MechaCon: hold briefly to reset, and hold longer to power off. Only on SCPH-10420.
OPEN/CLOSE RM_PS2_EJECT 0x0060D1DA 0x00068B5B Responeded to by Dragon MechaCon: opens and closes the tray. Only on SCPH-10420.
RM_PS2_RESET 0x0070D1DA 0x000E8B5B Responeded to by Dragon MechaCon: resets the console if powered on. Not on SCPH-10420 and SCPH-10150.
RM_PS2_POWERON 0x00E0D2DA 0x00074B5B Responeded to by Dragon MechaCon: powers on the console if powered off. Not on SCPH-10420 and SCPH-10150.
RM_PS2_POWEROFF 0x00F0D2DA 0x000F4B5B Responeded to by Dragon MechaCon: powers off the console if powered on. Not on SCPH-10420 and SCPH-10150.
RM_PS2_NOLIGHT 0x0050D7DA 0x000AEB5B Responeded to by Dragon MechaCon: extinguishes the power LED while being held. Not on SCPH-10420 and SCPH-10150.
SELECT RM_PS2_SELECT 0x0000D5DA 0x0000AB5B
L3 RM_PS2_L3 0x0010D5DA 0x0008AB5B
R3 RM_PS2_R3 0x0020D5DA 0x0004AB5B
START RM_PS2_START 0x0030D5DA 0x000CAB5B
RM_PS2_UP 0x0040D5DA 0x0002AB5B SCPH-10420 and SCPH-10150 will alternate between this and RM_DVD_UP when held down
RM_PS2_RIGHT 0x0050D5DA 0x000AAB5B SCPH-10420 and SCPH-10150 will alternate between this and RM_DVD_RIGHT when held down
RM_PS2_DOWN 0x0060D5DA 0x0006AB5B SCPH-10420 and SCPH-10150 will alternate between this and RM_DVD_DOWN when held down
RM_PS2_LEFT 0x0070D5DA 0x000EAB5B SCPH-10420 and SCPH-10150 will alternate between this and RM_DVD_LEFT when held down
L2 RM_PS2_L2 0x0080D5DA 0x0001AB5B
R2 RM_PS2_R2 0x0090D5DA 0x0009AB5B
L1 RM_PS2_L1 0x00A0D5DA 0x0005AB5B
R1 RM_PS2_R1 0x00B0D5DA 0x000DAB5B
RM_PS2_TRIANGLE 0x00C0D5DA 0x0003AB5B
RM_PS2_CIRCLE 0x00D0D5DA 0x000BAB5B
RM_PS2_CROSS 0x00E0D5DA 0x0007AB5B
RM_PS2_SQUARE 0x00F0D5DA 0x000FAB5B

Algorithm for SCMD 0x1E to lircd format

def bit_swap(x):
    return (((x & (1 << 7)) >> 7) << 0) | (((x & (1 << 6)) >> 6) << 1) | (((x & (1 << 5)) >> 5) << 2) | (((x & (1 << 4)) >> 4) << 3) | (((x & (1 << 3)) >> 3) << 4) | (((x & (1 << 2)) >> 2) << 5) | (((x & (1 << 1)) >> 1) << 6) | (((x & (1 << 0)) >> 0) << 7)
def byte_swap_24(x):
    return (bit_swap(((x & 0xFF0000) >> 16)) << 16) | (bit_swap(((x & 0x00FF00) >> 8)) << 8) | (bit_swap(((x & 0x0000FF) >> 0)) << 0)

lircd template for specified remote codes

begin remote

  name  PS2
  bits           20
  flags SPACE_ENC|CONST_LENGTH
  eps            30
  aeps          100

  header       2432   581
  one          1212   581
  zero          614   581
  gap          44853
  min_repeat      2
  toggle_bit      0


      begin codes
          RM_PS2_EJECT             0x00068B5B
          RM_PS2_RESET             0x000A8B5B
          # Add more codes here...
      end codes

end remote