PS2SDK
PS2 Homebrew Libraries
Loading...
Searching...
No Matches
miditime.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 "libsnd2_internal.h"
12
13s32 _SsReadDeltaValue(s16 sep_no, s16 seq_no)
14{
15 libsnd2_sequence_struct_t *score_struct;
16 int delta_value;
17 s32 result;
18 int dv_mul4;
19
20 score_struct = &_ss_score[sep_no][seq_no];
21 delta_value = *score_struct->m_seq_ptr;
22 score_struct->m_seq_ptr += 1;
23 if ( !delta_value )
24 return 0;
25 if ( (delta_value & 0x80) != 0 )
26 {
27 char next_byte;
28
29 delta_value &= ~0x80;
30 do
31 {
32 next_byte = *score_struct->m_seq_ptr;
33 score_struct->m_seq_ptr += 1;
34 delta_value = (delta_value << 7) + (next_byte & 0x7F);
35 } while ( (next_byte & 0x80) != 0 );
36 }
37 dv_mul4 = 4 * delta_value;
38 result = 2 * (dv_mul4 + delta_value);
39 score_struct->m_unk88 += result;
40 return result;
41}