1.9a
Nintendo 64 Developers Newsletters will be published periodically, as needed. These feature software and hardware system anomalies, which have been discovered, and their solutions and/or work-arounds. Development tips will also be included.
Internally, a read/write test is performed using a safe area in the Controller Pak RAM . If there is a failure during the read/write test, then it is assumed that there is no RAM and a PFS_ERR_DEVICE error is returned.
osMotorInit() | | +-----------+ | ret=0 | ret=PFS_ERR_DEVICE | | ( ( RumblePak osPfsInitPak() | | +-----------+-----------------------+ | ret=0 | ret=PFS_ERR_DEVICE | ret=PFS_ERR_ID_FATAL | | | ( ( ( Controller Other Device Since ID area has been destroyed, Pak (64GB Pak, etc.) after user confirmation, repair with osPfsRepairId()
This is true not only for the osPfsRepairId() function, but for other pfs functions as well. A PFS_ERR_INVALID error will be generated when this kind of call is performed. This happens because the contents of the osPfs structure is overwritten with Rumble Pak information when osMotorInit()is called. To avoid this error, call the osPfsInitPak() function again if a pfs function is to be called after osMotorInit has been called.
Note: Initialization can be completed without initializing each device separately by having an osPfs structure for each type of device and using one for each of the various device functions. However, this method should not be used because there may be situations in which unexpected operations are performed. Please be sure to call the corresponding initialization function each time a device is changed.