SsSetTickMode, add jpt splits (#911)

https://decomp.me/scratch/N9Af7
This commit is contained in:
sozud 2023-12-30 03:57:44 -05:00 committed by GitHub
parent 22c86430ea
commit 2d2eb200f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 85 additions and 3 deletions

View File

@ -29,11 +29,24 @@ segments:
subalign: 4
subsegments:
- [0x800, rodata]
- [0x874, rodata]
- [0x874, rodata] # jpt_80011B20
- [0x8F8, rodata]
- [0xA10, .rodata, psxsdk/libgpu/sys]
- [0xB60, rodata]
- [0xC94, rodata]
- [0xC94, rodata] # jpt_800163F4
- [0xD48, rodata]
- [0xEB4, rodata]
- [0xF18, rodata] # jpt_80019DE8
- [0xF2C, rodata]
- [0x1260, rodata] # jpt_8001DE24
- [0x1448, rodata] # jpt_8001EECC
- [0x14A8, rodata] # jpt_8001EFB8
- [0x14D4, .rodata, psxsdk/libsnd/sstick] # jpt_80020818, SsSetTickMode
- [0x14EC, rodata]
- [0x1574, rodata] # jpt_8002A518
- [0x1594, rodata] # jpt_8002A5E8
- [0x15B4, rodata] # jpt_8002ADFC
- [0x15D4, rodata] # jpt_8002AEC4
- [0x15F4, asm, psxsdk/2mbyte]
- [0x16B8, c, main]
- [0x192C, c, psxsdk/libgpu/ext]
@ -242,3 +255,4 @@ segments:
- [0x1BB88, c, psxsdk/libspu/sr_gaks]
- [0x1BCE0, data]
- [0x89800]

View File

@ -1,3 +1,71 @@
#include "common.h"
INCLUDE_ASM("asm/us/main/nonmatchings/psxsdk/libsnd/sstick", SsSetTickMode);
s32 GetVideoMode();
extern s32 D_80032EF4;
extern s32 VBLANK_MINUS;
extern s32 snd_seq_tick_env;
void SsSetTickMode(s32 tick_mode) {
s32 videoMode;
s32 var_v0;
videoMode = GetVideoMode();
if (tick_mode & 0x1000) {
D_80032EF4 = 1;
snd_seq_tick_env = tick_mode & 0xFFF;
} else {
D_80032EF4 = 0;
snd_seq_tick_env = tick_mode;
}
if (snd_seq_tick_env < 6) {
switch (snd_seq_tick_env) {
case 4:
VBLANK_MINUS = 0x32;
if (videoMode != 1) {
snd_seq_tick_env = 0x32;
return;
}
snd_seq_tick_env = 5;
return;
case 1:
var_v0 = 0x3C;
VBLANK_MINUS = 0x3C;
if (videoMode == 0) {
var_v0 = 5;
}
snd_seq_tick_env = var_v0;
return;
case 3:
VBLANK_MINUS = 0x78;
return;
case 2:
VBLANK_MINUS = 0xF0;
return;
case 5:
switch (videoMode) {
case 1:
VBLANK_MINUS = 0x32;
return;
default:
case 0:
VBLANK_MINUS = 0x3C;
return;
}
break;
case 0:
if (videoMode != 0) {
if (videoMode == 1) {
VBLANK_MINUS = 0x32;
return;
}
}
VBLANK_MINUS = 0x3C;
return;
default:
VBLANK_MINUS = 0x3C;
return;
}
} else {
VBLANK_MINUS = snd_seq_tick_env;
}
}