├── EE_Core_Instruction_Set_Manual.pdf ├── EE_Core_Users_Manual.pdf ├── EE_Overview_Manual.pdf ├── EE_Users_Manual.pdf ├── GS_Users_Manual.pdf ├── GS_Users_Manual_Supplement.pdf ├── MIPS_Calling_Conventions_Summary.pdf ├── PS2Optimisations.pdf ├── README.md ├── SPU2_Overview_Manual.pdf ├── Sony's Emotionally Charged Chip.pdf ├── VU_Users_Manual.pdf ├── Vector Unit Architecture for Emotion Synthesis.pdf ├── eeprogramming.pdf ├── padspecs.txt ├── ps2_normalmapping.pdf ├── tx79architecture.pdf └── vu-instruction-manual.pdf /EE_Core_Instruction_Set_Manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/EE_Core_Instruction_Set_Manual.pdf -------------------------------------------------------------------------------- /EE_Core_Users_Manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/EE_Core_Users_Manual.pdf -------------------------------------------------------------------------------- /EE_Overview_Manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/EE_Overview_Manual.pdf -------------------------------------------------------------------------------- /EE_Users_Manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/EE_Users_Manual.pdf -------------------------------------------------------------------------------- /GS_Users_Manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/GS_Users_Manual.pdf -------------------------------------------------------------------------------- /GS_Users_Manual_Supplement.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/GS_Users_Manual_Supplement.pdf -------------------------------------------------------------------------------- /MIPS_Calling_Conventions_Summary.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/MIPS_Calling_Conventions_Summary.pdf -------------------------------------------------------------------------------- /PS2Optimisations.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/PS2Optimisations.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PS2-Programming-Docs 2 | Repository with documentation for playstation 2 programming information. 3 | -------------------------------------------------------------------------------- /SPU2_Overview_Manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/SPU2_Overview_Manual.pdf -------------------------------------------------------------------------------- /Sony's Emotionally Charged Chip.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/Sony's Emotionally Charged Chip.pdf -------------------------------------------------------------------------------- /VU_Users_Manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/VU_Users_Manual.pdf -------------------------------------------------------------------------------- /Vector Unit Architecture for Emotion Synthesis.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/Vector Unit Architecture for Emotion Synthesis.pdf -------------------------------------------------------------------------------- /eeprogramming.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/eeprogramming.pdf -------------------------------------------------------------------------------- /padspecs.txt: -------------------------------------------------------------------------------- 1 | PAD low-level specs by [RO]man / (v1.0, 2004, Florin Sasu) 2 | ---------------------------------------------------------- 3 | [Big thanks to Pukko for his lib] 4 | 5 | DEVICE MODES 6 | 0 5 3+2*1 01 UNUSED 7 | 1 7 3+2*2 12 MOUSE 8 | 4 5 3+2*1 41 STANDARD(DIGITAL) 9 | 7 9,21 3+2*3 73/79 ANALOG 10 | 2 9 3+2*3 23 NEGI-CON(NEGICON/NASKA/VOLUME) 11 | 5 9 3+2*3 53 JOY STICK(ANALOGJOYSTICK) 12 | 3 5 3+2*1 31 KONAMI-GUN 13 | 6 9 3+2*3 63 NAMCO-GUN 14 | E 9,13 3+2*3 E3/E5 JOGCON 15 | F 9 3+2*3 F3 CONFIG 16 | 8 80 MULTITAP 17 | | | | | +------------ name 18 | | | | +----------------------- modeId 19 | | | +------------------------- lo-nibble of modeId 20 | | +---------------------------------- size of command 21 | +------------------------------------ hi-nibble of modeId 22 | 23 | COMMANDS 24 | 25 | Notes: 26 | 1. 0x5A in send commands clears the corresponding positions in recv buffer 27 | as they will be filled with requested data (see cmd=0x43) 28 | ================================================================================ 29 | @ 0x40 // SET_VREF_PARAM 30 | +------------------- ith (0->11) 31 | | +---------------- vref[ith] (2 or vrefBuffer[idx]) 32 | 01,40,00,02,02,xx,xx,xx,xx (xx=00) 33 | FF,F3,5A,00,00,02,00,00,5A 34 | ================================================================================ 35 | A 0x41 // QUERY_BUTTON_MASK 36 | 0 1 2 3 4 5 6 7 8 37 | 01,41,00,5A,5A,5A,5A,5A,5A 38 | FF,F3,5A,FF,FF,03,00,xx,5A (xx=00) 39 | | | | | +---- (must be pressent here!!!) 40 | | | | +---------- bmask3 41 | | | +------------- bmask2 42 | | +---------------- bmask1 43 | +------------------- bmask0 44 | ================================================================================ 45 | B 0x42 // READ_DATA 46 | 47 | 01 42 00 xx xx 48 | FF 41 5A FF FF --------------------- 04/digital 49 | +--+----------------------- buttons status (1released/0pushed) 50 | 01 42 00 xx xx 51 | FF 41 5A FF FF --------------------- 04/digital 52 | +--+----------------------- buttons status 53 | ================================================================================ 54 | C 0x43 // ENTER/EXIT_CONFIG_MODE; i.e. exit device mode and enter config mode 55 | +-------------------------- 00 - exit config / 01 enter config 56 | 01 43 00 00 5A 5A 5A 5A 5A 57 | FF F3 5A 00 00 00 00 00 00 --------- new data (6 bytes) 58 | 01 43 00 01 00 59 | FF 41 5A FF FF --------------------- old data (2 bytes) 60 | 01 43 00 01 00 00 00 00 00 61 | FF 73 5A FF FF 69 78 77 84 --------- old data (6 bytes) 62 | 01 43 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63 | FF 79 5A FF FF 69 78 77 84 00 00 00 00 00 00 00 00 00 00 00 00 old data (18 bytes) 64 | ================================================================================ 65 | D 0x44 // SET_MAIN_MODE; i.e. set mode and lock 66 | +------------------- mode 67 | | +---------------- lock 68 | 01,44,00,MM,LL,xx,xx,xx,xx (xx=00) 69 | FF,F3,5A,00,00,00,00,00,00 70 | ================================================================================ 71 | E 0x45 // QUERY_MODEL; i.e. query model and mode 72 | 01,45,00,5A,5A,5A,5A,5A,5A 73 | FF,F3,5A,01,02,00,02,01,00 74 | | | | | | +---- ??? 75 | | | | | +------- noOfComb: 01 76 | | | | +---------- noOfAct: 02 - DUALSHOCK / 01 - JOYSTICK 77 | | | +------------- modeCurOffs: 00 - digital / 01 - analog/joystickmode 78 | | +---------------- noOfmodes: 02 79 | +------------------- model: 01 - dualshock / 03 - dualshock2 80 | ================================================================================ 81 | F 0x46 // QUERY_ACT 82 | +------------------- idx of act 83 | 01,46,00,00,5A,5A,5A,5A,5A 84 | FF,F3,5A,00,xx,01,02,00,0A DUALSHOCK small motor (100mA, xx=00) 85 | FF,F3,5A,00,xx,04,03,01,1E JOYSTICK (300mA, xx=00) 86 | 01,46,00,01,5A,5A,5A,5A,5A 87 | FF,F3,5A,00,xx,01,01,01,14 DUALSHOCK big motor (200mA, xx=00) 88 | | | | | +---- curr (10mA units) 89 | | | | +------- length (0: 1 bit (on/off only), 90 | | | | 1 or more: number of bytes) 91 | | | +---------- subfunction (1: low-speed rotation, 92 | | | 2: high-speed rotation) 93 | | +------------- function (1: continuous rotation vibration) 94 | ================================================================================ 95 | G 0x47 // QUERY_COMB 96 | +------------------- idx of comb 97 | 01,47,00,00,5A,5A,5A,5A,5A 98 | FF,F3,5A,00,xx,02,00,01,xx DUALSHOCK (xx=00) 99 | FF,F3,5A,00,xx,01,00,xx,xx JOYSTICK (xx=00) 100 | | | | | +---- act2 in comb 101 | | | | +------- act1 in comb 102 | | | +---------- act0 in comb 103 | | +------------- noOfAct in comb 104 | ================================================================================ 105 | L 0x4C // QUERY_MODE 106 | +------------------- idx of mode 107 | 01,4C,00,00,5A,5A,5A,5A,5A 108 | FF,F3,5A,00,xx,00,04,xx,xx DIGITAL DUALSHOCK (mode=0x0004, xx=00) 109 | FF,F3,5A,00,xx,00,04,xx,xx DIGITAL JOYSTICK (mode=0x0004, xx=00) 110 | 01,4C,00,01,5A,5A,5A,5A,5A 111 | FF,F3,5A,00,xx,00,07,xx,xx ANALOG DUALSHOCK (mode=0x0007, xx=00) 112 | FF,F3,5A,00,xx,03,00,xx,xx ANALOG JOYSTICK (mode=0x0300, xx=00) 113 | | | +---------- lo of mode (mode is u_short) 114 | | +------------- hi of mode 115 | ================================================================================ 116 | M 0x4D // SET_ACT_ALIGN; i.e. vibration enable 117 | +--+--+--+--+--+---- act align buffer of 6 bytes 118 | 01,4D,00,00,01,FF,FF,FF,FF 119 | FF,F3,5A,FF,FF,FF,FF,FF,FF 120 | ================================================================================ 121 | O 0x4F // SET_BUTTON_INFO 122 | +--+--+--+---------- button info buffer of 4 bytes 123 | 01,4F,00,FF,0F,00,00,00,00 mask for 12 buttons (w/o SELECT/START/L3/R3) 124 | FF,F3,5A,00,00,00,00,00,5A 125 | ================================================================================ 126 | -------------------------------------------------------------------------------- /ps2_normalmapping.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/ps2_normalmapping.pdf -------------------------------------------------------------------------------- /tx79architecture.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/tx79architecture.pdf -------------------------------------------------------------------------------- /vu-instruction-manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarrenRainey/PS2-Programming-Docs/b13fb347ceebd3f71a0ce978adb15b60c64ed6ec/vu-instruction-manual.pdf --------------------------------------------------------------------------------