fix SOUND_ARG_LOAD
Some checks failed
Build coop / build-linux (push) Has been cancelled
Build coop / build-steamos (push) Has been cancelled
Build coop / build-windows-opengl (push) Has been cancelled
Build coop / build-windows-directx (push) Has been cancelled
Build coop / build-macos-arm (push) Has been cancelled
Build coop / build-macos-intel (push) Has been cancelled

This commit is contained in:
PeachyPeachSM64 2025-07-16 03:13:00 +02:00
parent a6cd005565
commit de96a75ddc
5 changed files with 31 additions and 7 deletions

View file

@ -70,7 +70,13 @@ gGlobalSoundSource = create_read_only_table({ x = 0, y = 0, z = 0 })
--- @return number
function SOUND_ARG_LOAD(bank, soundID, priority, flags)
if flags == nil then flags = 0 end
return (bank << 28) | (soundID << 16) | (priority << 8) | flags | SOUND_STATUS_WAITING
return math.s32(
((bank << SOUNDARGS_SHIFT_BANK) & SOUNDARGS_MASK_BANK) |
((soundID << SOUNDARGS_SHIFT_SOUNDID) & SOUNDARGS_MASK_SOUNDID) |
((priority << SOUNDARGS_SHIFT_PRIORITY) & SOUNDARGS_MASK_PRIORITY) |
(flags & SOUNDARGS_MASK_BITFLAGS) |
SOUND_STATUS_WAITING
)
end
-------------

View file

@ -72,7 +72,13 @@ gGlobalSoundSource = create_read_only_table({ x = 0, y = 0, z = 0 })
--- @return number
function SOUND_ARG_LOAD(bank, soundID, priority, flags)
if flags == nil then flags = 0 end
return (bank << 28) | (soundID << 16) | (priority << 8) | flags | SOUND_STATUS_WAITING
return math.s32(
((bank << SOUNDARGS_SHIFT_BANK) & SOUNDARGS_MASK_BANK) |
((soundID << SOUNDARGS_SHIFT_SOUNDID) & SOUNDARGS_MASK_SOUNDID) |
((priority << SOUNDARGS_SHIFT_PRIORITY) & SOUNDARGS_MASK_PRIORITY) |
(flags & SOUNDARGS_MASK_BITFLAGS) |
SOUND_STATUS_WAITING
)
end
-------------
@ -8982,6 +8988,9 @@ SOUNDARGS_MASK_PRIORITY = 0x0000FF00
--- @type integer
SOUNDARGS_MASK_STATUS = 0x0000000F
--- @type integer
SOUNDARGS_MASK_BITFLAGS = 0x0F0000F0
--- @type integer
SOUNDARGS_SHIFT_BANK = 28

View file

@ -3950,6 +3950,7 @@
- SOUNDARGS_MASK_SOUNDID
- SOUNDARGS_MASK_PRIORITY
- SOUNDARGS_MASK_STATUS
- SOUNDARGS_MASK_BITFLAGS
- SOUNDARGS_SHIFT_BANK
- SOUNDARGS_SHIFT_SOUNDID
- SOUNDARGS_SHIFT_PRIORITY

View file

@ -9,16 +9,17 @@
// Fourth Byte (Upper Nibble): More bitflags
// Fourth Byte (Lower Nibble): Sound Status (this is set to SOUND_STATUS_PLAYING when passed to the audio driver.)
#define SOUND_ARG_LOAD(bank, soundID, priority, flags) (\
((u32) (bank) << 28) | \
((u32) (soundID) << 16) | \
((u32) (priority) << 8) | \
(flags) | \
(((u32) (bank) << SOUNDARGS_SHIFT_BANK) & SOUNDARGS_MASK_BANK) | \
(((u32) (soundID) << SOUNDARGS_SHIFT_SOUNDID) & SOUNDARGS_MASK_SOUNDID) | \
(((u32) (priority) << SOUNDARGS_SHIFT_PRIORITY) & SOUNDARGS_MASK_PRIORITY) | \
(((u32) (flags)) & SOUNDARGS_MASK_BITFLAGS) | \
SOUND_STATUS_WAITING)
#define SOUNDARGS_MASK_BANK 0xF0000000
#define SOUNDARGS_MASK_SOUNDID 0x00FF0000
#define SOUNDARGS_MASK_PRIORITY 0x0000FF00
#define SOUNDARGS_MASK_STATUS 0x0000000F
#define SOUNDARGS_MASK_BITFLAGS 0x0F0000F0
#define SOUNDARGS_SHIFT_BANK 28
#define SOUNDARGS_SHIFT_SOUNDID 16

View file

@ -62,7 +62,13 @@ char gSmluaConstants[] = ""
"--- @return number\n"
"function SOUND_ARG_LOAD(bank, soundID, priority, flags)\n"
"if flags == nil then flags = 0 end\n"
"return (bank << 28) | (soundID << 16) | (priority << 8) | flags | SOUND_STATUS_WAITING\n"
"return math.s32(\n"
"((bank << SOUNDARGS_SHIFT_BANK) & SOUNDARGS_MASK_BANK) |\n"
"((soundID << SOUNDARGS_SHIFT_SOUNDID) & SOUNDARGS_MASK_SOUNDID) |\n"
"((priority << SOUNDARGS_SHIFT_PRIORITY) & SOUNDARGS_MASK_PRIORITY) |\n"
"(flags & SOUNDARGS_MASK_BITFLAGS) |\n"
"SOUND_STATUS_WAITING\n"
")\n"
"end\n"
"-------------\n"
"-- courses --\n"
@ -3879,6 +3885,7 @@ char gSmluaConstants[] = ""
"SOUNDARGS_MASK_SOUNDID=0x00FF0000\n"
"SOUNDARGS_MASK_PRIORITY=0x0000FF00\n"
"SOUNDARGS_MASK_STATUS=0x0000000F\n"
"SOUNDARGS_MASK_BITFLAGS=0x0F0000F0\n"
"SOUNDARGS_SHIFT_BANK=28\n"
"SOUNDARGS_SHIFT_SOUNDID=16\n"
"SOUNDARGS_SHIFT_PRIORITY=8\n"