11#include "libspu2_internal.h"
13int SpuSetReverbModeType(
int mode)
24 if ( (mode & SPU_REV_MODE_CLEAR_WA) != 0 )
26 v1 = mode & ~SPU_REV_MODE_CLEAR_WA;
29 if ( v1 >= SPU_REV_MODE_MAX )
33 _spu_rev_attr.mode = v1;
34 _spu_rev_offsetaddr = SpuGetReverbEndAddr() - (8 * _spu_rev_workareasize[v1] - 2);
35 memcpy(&v7, &_spu_rev_param[v1], 0x44u);
39 case SPU_REV_MODE_ECHO:
40 _spu_rev_attr.feedback = 127;
41 _spu_rev_attr.delay = 127;
43 case SPU_REV_MODE_DELAY:
44 _spu_rev_attr.feedback = 0;
45 _spu_rev_attr.delay = 127;
48 _spu_rev_attr.feedback = 0;
49 _spu_rev_attr.delay = 0;
52 v4 = &_spu_RXX[512 * _spu_core];
53 v5 = (v4[205] >> 7) & 1;
56 v6 = &_spu_RXX[20 * _spu_core];
59 _spu_rev_attr.depth.left = 0;
60 _spu_rev_attr.depth.right = 0;
61 _spu_setReverbAttr(&v7);
63 SpuClearReverbWorkArea(v1);
64 _spu_FsetRXX(368, _spu_rev_offsetaddr, 1);
67 _spu_RXX[512 * _spu_core + 205] |= 0x80u;