arduino_midi_player/Midi/music-box-nv32-master/WaveTableSynthesizer/UpdateTick.inc
2025-03-24 14:30:56 +08:00

36 lines
775 B
PHP

#include "SynthCore.h"
#include "Player.h"
#include "AsmCommon.h"
.section .text
// if (player->decoder.status == STATUS_DECODING)
// player->decoder.currentTick++;
// if (player->synthesizer.decayGenTick < 200)
// player->synthesizer.decayGenTick += 1;
UpdateTick:
ptrSoundUnit .req r0
ptrScoreDecoder .req r1
ldr r5,=#pStatus
add r5,r5,ptrScoreDecoder
ldr r5,[r5]
cmp r5,#constSTATUS_DECODING
bne currentTickUpdateEnd
ldr r5,=#pCurrentTick
add r5,r5,ptrScoreDecoder
ldr r6,[r5]
adds r6,r6,#1
str r6,[r5]
currentTickUpdateEnd:
ldr r5,=#pDecayGenTick
add r5,r5,ptrSoundUnit
ldr r6,[r5]
ldr r4,=#DECAY_TIME_FACTOR
cmp r6,r4
bhs updateDecayGenTickEnd //bhs Branch if Same or Higher (Unsigned)
adds r6,r6,#1
str r6,[r5]
updateDecayGenTickEnd: