Remote Control

From PS2 Developer wiki
Jump to navigation Jump to search

Overview[edit | edit source]

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. In service manuals, IR related components are referred to as SIRCS.

Compatibility[edit | edit source]

Many of the commands PS2 IR receivers can accept are the same as the ones for Sony's DVD players/recorders (such as those emitted by RMT-D105A, or RMT-D214J when in position 1). Notable exceptions to this are the power/eject related commands, as well as the PS2 controller related commands. The remote commands for PSX and BD players/recorders are distinct from the DVD players/recorders. However, remotes for BD recorders such as RMT-B006J can be programmed to emit commands for Sony's DVD players/recorders and PSX, which will then be handled by PS2 IR receivers.

Model numbers[edit | edit source]

  • 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.
  • RMT-P001
    • For usage with PSX; bundled with DESR-5000, DESR-7000, DESR-5100, and DESR-7100
    • Commands are distinct from SCPH-10150/SCPH-10420
  • RMT-P002J
    • For usage with PSX; bundled with DESR-5500, DESR-7500, DESR-5700, and DESR-7700
    • Commands are distinct from SCPH-10150/SCPH-10420

Bundles[edit | edit source]

  • 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[edit | edit source]

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[edit | edit source]

Codes in Dragon MechaCon SCMD 0x1E and lircd format that PS2 hardware or software responds to are listed below.
DESR codes for PSX are when the switch position is in "1". When the switch position is in "2" or "3", 0x00000093 is replaced with 0x0000009B or 0x000000A3 respectively.

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
RM_DESR_EJECT 0x0060D193 0x00068BC9
RM_DESR_G_GUIDE 0x0050D493 0x000A2BC9 Only on RMT-P001
RM_DESR_QUIT_GAME 0x0010D693 0x00086BC9
RM_DESR_POWER 0x0050D193 0x000A8BC9
RM_DESR_1 0x0000D093 0x00000BC9
RM_DESR_2 0x0010D093 0x00080BC9
RM_DESR_3 0x0020D093 0x00040BC9
RM_DESR_4 0x0030D093 0x000C0BC9
RM_DESR_5 0x0040D093 0x00020BC9
RM_DESR_6 0x0050D093 0x000A0BC9
RM_DESR_7 0x0060D093 0x00060BC9
RM_DESR_8 0x0070D093 0x000E0BC9
RM_DESR_9 0x0080D093 0x00010BC9
RM_DESR_10 0x0090D093 0x00090BC9
RM_DESR_11 0x00A0D093 0x00050BC9
RM_DESR_12 0x00B0D093 0x000D0BC9
RM_DESR_BS_7 0x00D0D093 0x000B0BC9 Only on RMT-P001
RM_DESR_BS_11 0x00E0D093 0x00070BC9 Only on RMT-P001
RM_DESR_CLEAR 0x00F0D093 0x000F0BC9
RM_DESR_TOP_MENU 0x00C0D293 0x00034BC9
RM_DESR_MENU 0x0090D293 0x00094BC9
RM_DESR_RETURN 0x0030D493 0x000C2BC9
RM_DESR_TRIANGLE_OPTION 0x00C0D593 0x0003ABC9
RM_DESR_CIRCLE 0x00D0D593 0x000BABC9
RM_DESR_SQUARE_VIEW 0x00F0D593 0x000FABC9
RM_DESR_CROSS_BACK 0x00E0D593 0x0007ABC9
RM_DESR_UP 0x0040D593 0x0002ABC9
RM_DESR_LEFT 0x0070D593 0x000EABC9
RM_DESR_RIGHT 0x0050D593 0x000AABC9
RM_DESR_DOWN 0x0060D593 0x0006ABC9
RM_DESR_ENTER 0x0000D693 0x00006BC9
RM_DESR_PROGRAM 0x00A0D293 0x00054BC9
RM_DESR_HOME 0x0020D493 0x00042BC9
RM_DESR_DISPLAY 0x0050D293 0x000A4BC9
RM_DESR_L1_PREV 0x00A0D593 0x0005ABC9
RM_DESR_L3 0x0010D593 0x0008ABC9
RM_DESR_R3 0x0020D593 0x0004ABC9
RM_DESR_R1_NEXT 0x00B0D593 0x000DABC9
RM_DESR_L2_SCAN_BACK 0x0080D593 0x0001ABC9
RM_DESR_SELECT 0x0000D593 0x0000ABC9
RM_DESR_START 0x0030D593 0x000CABC9
RM_DESR_R2_SCAN_FORW 0x0090D593 0x0009ABC9
RM_DESR_PLAY 0x00A0D193 0x00058BC9
RM_DESR_PAUSE 0x0090D193 0x00098BC9
RM_DESR_STOP 0x0080D193 0x00018BC9
RM_DESR_RECORDING_MODE 0x0060D293 0x00064BC9
RM_DESR_RECORD_START 0x00D0D193 0x000B8BC9
RM_DESR_RECORD_PAUSE 0x00E0D193 0x00078BC9
RM_DESR_RECORD_STOP 0x00F0D193 0x000F8BC9
RM_DESR_DELETE 0x0020D693 0x00046BC9
RM_DESR_G_GUIDE2 0x0010D493 0x00082BC9 Only on RMT-P002J
RM_DESR_FLASH_BACK 0x0060D793 0x0006EBC9 Only on RMT-P002J
RM_DESR_FLASH_FORW 0x0050D793 0x000AEBC9 Only on RMT-P002J

Algorithm for SCMD 0x1E to lircd format[edit | edit source]

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[edit | edit source]

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