sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
Loading...
Searching...
No Matches
s_sfr.c
1
/*
2
# _____ ___ ____ ___ ____
3
# ____| | ____| | | |____|
4
# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5
#-----------------------------------------------------------------------
6
# Copyright ps2dev - http://www.ps2dev.org
7
# Licenced under Academic Free License version 2.0
8
# Review ps2sdk README & LICENSE files for further details.
9
*/
10
11
#include "
libspu2_internal.h
"
12
13
void
SpuStopFreeRun(
void
)
14
{
15
u16 *v1;
16
s16 *v2;
17
u16 *v3;
18
u16 *v4;
19
int
v15;
20
int
i;
21
int
j;
22
int
k;
23
24
v1 = (u16 *)0xBF900000;
25
v2 = (s16 *)0xBF900400;
26
v3 = (u16 *)0xBF9001C0;
27
v4 = (u16 *)0xBF9005C0;
28
*((vu16 *)0xBF9001A8) = 0;
29
*((vu16 *)0xBF9001AA) = 10240;
30
// Unofficial: Fixed out of bounds dummy array access by replacing with constant setting
31
for
( v15 = 0; v15 < 16; v15 += 1 )
32
{
33
*((vu16 *)0xBF9001AC) = 1799u;
34
}
35
*((vu16 *)0xBF90019A) = (*((vu16 *)0xBF90019A) & ~0x30) | 0x10;
36
while
( (*((vu16 *)0xBF900344) & 0x400) != 0 )
37
;
38
*((vu16 *)0xBF90019A) &= ~0x30;
39
for
( i = 0; i < 24; i += 1 )
40
{
41
s16 *v6;
42
u16 *v7;
43
u16 *v13;
44
u16 *v14;
45
46
v6 = v2 + (i * 8);
47
v7 = v1 + (i * 8);
48
v13 = v4 + (i * 6);
49
v14 = v3 + (i * 6);
50
v6[0] = 0;
51
v7[0] = v6[0];
52
v6[1] = 0;
53
v7[1] = v6[1];
54
v6[2] = 0x3FFF;
55
v7[2] = v6[2];
56
v6[3] = 0;
57
v7[3] = v6[3];
58
v6[4] = 0;
59
v7[4] = v6[4];
60
v13[0] = 0;
61
v14[0] = v13[0];
62
v13[1] = 10240;
63
v14[1] = v13[1];
64
}
65
*((vu16 *)0xBF9005A0) = -1;
66
*((vu16 *)0xBF9001A0) = -1;
67
*((vu16 *)0xBF9005A2) = 255;
68
*((vu16 *)0xBF9001A2) = 255;
69
for
( j = 0; j < 3124; j += 1 )
70
{
71
__asm__ __volatile__(
""
:
"+g"
(j) : :);
72
}
73
*((vu16 *)0xBF9005A4) = -1;
74
*((vu16 *)0xBF9001A4) = -1;
75
*((vu16 *)0xBF9005A6) = 255;
76
*((vu16 *)0xBF9001A6) = 255;
77
for
( k = 0; k < 3124; k += 1 )
78
{
79
__asm__ __volatile__(
""
:
"+g"
(k) : :);
80
}
81
*((vu16 *)0xBF900342) = 0;
82
*((vu16 *)0xBF900340) = 0;
83
}
libspu2_internal.h
core
libspu2
src
s_sfr.c
Generated by
1.18.0