psx.wiki

Coprocessor Usable Bits

Checks which coprocessor instructions raise an exception when the coprocessor is disabled in SR.

Coprocessor Usable Bits
MachineSCPH-5501
Programcpu/cop (ps1-tests)

This is an old revision of this page, as edited by RemmyLee at 05:11, 23 October 2026. Edit this revision | Latest revision

Overview

Each check sets or clears one coprocessor usable bit in the COP0 status register (SR bits 28 to 31), executes one instruction for that coprocessor and records whether an exception was raised. The instructions are written as words: MFC0 r2,r15 for COP0, the COP1 and COP3 opcodes 44000000h and 4C000000h, MFC2 for the GTE, invalid opcodes 43E00000h and 4BE00000h, and SWC0, SWC2 and SWC3 storing to address 0.1

Results

The SCPH-5501 passed all 17 checks in every run.2

Table 1: Exceptions by instruction and SR bit
Instruction Coprocessor disabled Coprocessor enabled
MFC0 no exception no exception
COP0 invalid opcode 43E00000h no exception
SWC0 exception no exception
COP1 44000000h exception no exception
MFC2 exception no exception
COP2 invalid opcode 4BE00000h no exception
SWC2 exception no exception
COP3 4C000000h exception no exception
SWC3 exception no exception

A COP3 instruction with COP3 disabled raised exception code 11 (Coprocessor Unusable).2

Runs

25 September 2026

04COP.txt

===== 04 COP CPU COP | BIOS 19951204 System ROM Version 3.0 11/18/96 A

cpu/cop
pass - testCop0Disabled
pass - testCop0Enabled
pass - testCop0InvalidOpcode
pass - testSwc0Disabled
pass - testSwc0Enabled
pass - testCop1Disabled
pass - testCop1Enabled
pass - testCop2Disabled
pass - testCop2Enabled
pass - testCop2InvalidOpcode
pass - testSwc2Disabled
pass - testSwc2Enabled
pass - testCop3Disabled
pass - testCop3Enabled
pass - testSwc3Disabled
pass - testSwc3Enabled
pass - testDisabledCoprocessorThrowsCoprocessorUnusable
Done.

27 September 2026

04COP.txt

===== 04 COP CPU COP | BIOS 19951204 System ROM Version 3.0 11/18/96 A

cpu/cop
pass - testCop0Disabled
pass - testCop0Enabled
pass - testCop0InvalidOpcode
pass - testSwc0Disabled
pass - testSwc0Enabled
pass - testCop1Disabled
pass - testCop1Enabled
pass - testCop2Disabled
pass - testCop2Enabled
pass - testCop2InvalidOpcode
pass - testSwc2Disabled
pass - testSwc2Enabled
pass - testCop3Disabled
pass - testCop3Enabled
pass - testSwc3Disabled
pass - testSwc3Enabled
pass - testDisabledCoprocessorThrowsCoprocessorUnusable
Done.

27 September 2026 run 2

04COP.txt

===== 04 COP CPU COP | BIOS 19951204 System ROM Version 3.0 11/18/96 A

cpu/cop
pass - testCop0Disabled
pass - testCop0Enabled
pass - testCop0InvalidOpcode
pass - testSwc0Disabled
pass - testSwc0Enabled
pass - testCop1Disabled
pass - testCop1Enabled
pass - testCop2Disabled
pass - testCop2Enabled
pass - testCop2InvalidOpcode
pass - testSwc2Disabled
pass - testSwc2Enabled
pass - testCop3Disabled
pass - testCop3Enabled
pass - testSwc3Disabled
pass - testSwc3Enabled
pass - testDisabledCoprocessorThrowsCoprocessorUnusable
Done.

27 September 2026 run 3

04COP.txt

===== 04 COP CPU COP | BIOS 19951204 System ROM Version 3.0 11/18/96 A

cpu/cop
pass - testCop0Disabled
pass - testCop0Enabled
pass - testCop0InvalidOpcode
pass - testSwc0Disabled
pass - testSwc0Enabled
pass - testCop1Disabled
pass - testCop1Enabled
pass - testCop2Disabled
pass - testCop2Enabled
pass - testCop2InvalidOpcode
pass - testSwc2Disabled
pass - testSwc2Enabled
pass - testCop3Disabled
pass - testCop3Enabled
pass - testSwc3Disabled
pass - testSwc3Enabled
pass - testDisabledCoprocessorThrowsCoprocessorUnusable
Done.

27 September 2026 run 4

04COP.txt

===== 04 COP CPU COP | BIOS 19951204 System ROM Version 3.0 11/18/96 A

cpu/cop
pass - testCop0Disabled
pass - testCop0Enabled
pass - testCop0InvalidOpcode
pass - testSwc0Disabled
pass - testSwc0Enabled
pass - testCop1Disabled
pass - testCop1Enabled
pass - testCop2Disabled
pass - testCop2Enabled
pass - testCop2InvalidOpcode
pass - testSwc2Disabled
pass - testSwc2Enabled
pass - testCop3Disabled
pass - testCop3Enabled
pass - testSwc3Disabled
pass - testSwc3Enabled
pass - testDisabledCoprocessorThrowsCoprocessorUnusable
Done.

28 September 2026

04COP.txt

===== 04 COP CPU COP | BIOS 19951204 System ROM Version 3.0 11/18/96 A

cpu/cop
pass - testCop0Disabled
pass - testCop0Enabled
pass - testCop0InvalidOpcode
pass - testSwc0Disabled
pass - testSwc0Enabled
pass - testCop1Disabled
pass - testCop1Enabled
pass - testCop2Disabled
pass - testCop2Enabled
pass - testCop2InvalidOpcode
pass - testSwc2Disabled
pass - testSwc2Enabled
pass - testCop3Disabled
pass - testCop3Enabled
pass - testSwc3Disabled
pass - testSwc3Enabled
pass - testDisabledCoprocessorThrowsCoprocessorUnusable
Done.

References


  1. ^ ps1-tests, cpu/cop. https://github.com/JaCzekanski/ps1-tests.

  2. ^ a b SCPH-5501 output: main/04COP.txt and the files beside it, with the other runs listed under Runs.

Categories: Hardware tests