Fix EU build and related cleanup and fixes (#710)

* Fix EU build and eu-final offsets

* Fix instrument align and bring EU matches

* Fix EU trig table segment

* Label audio_init

* Simplify float comments

* Proper EU name version defines
This commit is contained in:
AloXado320 2025-05-11 19:00:37 -05:00 committed by GitHub
parent 1f9e0d7e6a
commit 30fef62f81
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
24 changed files with 145 additions and 1042 deletions

View File

@ -36,19 +36,20 @@ DEBUG ?= 0
GCC ?= 0
# VERSION - selects the version of the game to build
# us - builds the 1997 North American version
# eu - builds the 1997 1.1 PAL version
# us - builds the 1997 North American version
# eu.v10 - builds the 1997 1.0 PAL version
# eu.v11 - builds the 1997 1.1 PAL version
VERSION ?= us
$(eval $(call validate-option,VERSION,us eu-1.0 eu-final))
$(eval $(call validate-option,VERSION,us eu.v10 eu.v11))
ifeq ($(VERSION),us)
DEFINES += VERSION_US=1
GRUCODE ?= f3dex_old
else ifeq ($(VERSION),eu-1.0)
DEFINES += VERSION_EU=1 VERSION_EU_1_0=1
else ifeq ($(VERSION),eu.v10)
DEFINES += VERSION_EU=1 VERSION_EU_V10=1
GRUCODE ?= f3dex_old
else ifeq ($(VERSION),eu-final)
DEFINES += VERSION_EU=1 VERSION_EU_1_1=1
else ifeq ($(VERSION),eu.v11)
DEFINES += VERSION_EU=1 VERSION_EU_V11=1
GRUCODE ?= f3dex_old
endif

View File

@ -5,11 +5,11 @@ This repository does not contain assets. Compiling requires asset extraction fro
It supports and builds the following versions:
| ROM Output | Revision| SHA-1 Checksum |
|-------------------|---------|------------------------------------------|
| mk64.us.z64 | USA | 579c48e211ae952530ffc8738709f078d5dd215e |
| mk64.eu-1.0.z64 | EUR 1.0 | a729039453210b84f17019dda3f248d5888f7690 |
| mk64.eu-final.z64 | EUR 1.1 | f6b5f519dd57ea59e9f013cc64816e9d273b2329 |
| ROM Output | Revision| SHA-1 Checksum |
|-----------------|---------|------------------------------------------|
| mk64.us.z64 | USA | 579c48e211ae952530ffc8738709f078d5dd215e |
| mk64.eu.v10.z64 | EUR 1.0 | a729039453210b84f17019dda3f248d5888f7690 |
| mk64.eu.v11.z64 | EUR 1.1 | f6b5f519dd57ea59e9f013cc64816e9d273b2329 |
[![Linux Compile](https://github.com/n64decomp/mk64/actions/workflows/linux-compile.yml/badge.svg)](https://github.com/n64decomp/mk64/actions/workflows/linux-compile.yml)

View File

@ -1,309 +0,0 @@
.section .late_rodata
glabel D_800F2FE0
.float 20.0304203
.section .text
glabel audio_init
/* BCCDC 800BC0DC 27BDFF70 */ addiu $sp, $sp, -0x90
/* BCCE0 800BC0E0 3C0E800F */ lui $t6, %hi(gAudioLoadLock)
/* BCCE4 800BC0E4 AFBF002C */ sw $ra, 0x2C($sp)
/* BCCE8 800BC0E8 AFB50028 */ sw $s5, 0x28($sp)
/* BCCEC 800BC0EC AFB40024 */ sw $s4, 0x24($sp)
/* BCCF0 800BC0F0 AFB30020 */ sw $s3, 0x20($sp)
/* BCCF4 800BC0F4 AFB2001C */ sw $s2, 0x1C($sp)
/* BCCF8 800BC0F8 AFB10018 */ sw $s1, 0x18($sp)
/* BCCFC 800BC0FC AFB00014 */ sw $s0, 0x14($sp)
/* BCD00 800BC100 25CEA71C */ addiu $t6, $t6, %lo(gAudioLoadLock)
/* BCD04 800BC104 ADC00000 */ sw $zero, 0x0($t6)
/* BCD08 800BC108 3C04800F */ lui $a0, %hi(gAudioHeapSize)
/* BCD0C 800BC10C 8C84A710 */ lw $a0, %lo(gAudioHeapSize)($a0)
/* BCD10 800BC110 00001825 */ or $v1, $zero, $zero
/* BCD14 800BC114 3C0A803B */ lui $t2, %hi(gAudioGlobalsEndMarker)
/* BCD18 800BC118 04810003 */ bgez $a0, .L800BC128
/* BCD1C 800BC11C 000478C3 */ sra $t7, $a0, 3
/* BCD20 800BC120 24810007 */ addiu $at, $a0, 0x7
/* BCD24 800BC124 000178C3 */ sra $t7, $at, 3
.L800BC128:
/* BCD28 800BC128 19E0000C */ blez $t7, .L800BC15C
/* BCD2C 800BC12C 3C04803B */ lui $a0, %hi(gGfxSPTaskOutputBufferSize)
/* BCD30 800BC130 3C18803B */ lui $t8, %hi(gAudioHeap)
/* BCD34 800BC134 270271B0 */ addiu $v0, $t8, %lo(gAudioHeap)
/* BCD38 800BC138 000FC8C0 */ sll $t9, $t7, 3
/* BCD3C 800BC13C 03221821 */ addu $v1, $t9, $v0
.L800BC140:
/* BCD40 800BC140 24420008 */ addiu $v0, $v0, 0x8
/* BCD44 800BC144 0043082B */ sltu $at, $v0, $v1
/* BCD48 800BC148 24080000 */ addiu $t0, $zero, 0x0
/* BCD4C 800BC14C 24090000 */ addiu $t1, $zero, 0x0
/* BCD50 800BC150 AC49FFFC */ sw $t1, -0x4($v0)
/* BCD54 800BC154 1420FFFA */ bnez $at, .L800BC140
/* BCD58 800BC158 AC48FFF8 */ sw $t0, -0x8($v0)
.L800BC15C:
/* BCD5C 800BC15C 2482F780 */ addiu $v0, $a0, %lo(gGfxSPTaskOutputBufferSize)
/* BCD60 800BC160 254A71A0 */ addiu $t2, $t2, %lo(gAudioGlobalsEndMarker)
/* BCD64 800BC164 01421823 */ subu $v1, $t2, $v0
/* BCD68 800BC168 000380C2 */ srl $s0, $v1, 3
/* BCD6C 800BC16C 06000008 */ bltz $s0, .L800BC190
/* BCD70 800BC170 3C01800F */ lui $at, %hi(D_800F2FE0)
.L800BC174:
/* BCD74 800BC174 2610FFFF */ addiu $s0, $s0, -0x1
/* BCD78 800BC178 240C0000 */ addiu $t4, $zero, 0x0
/* BCD7C 800BC17C 240D0000 */ addiu $t5, $zero, 0x0
/* BCD80 800BC180 AC4D0004 */ sw $t5, 0x4($v0)
/* BCD84 800BC184 AC4C0000 */ sw $t4, 0x0($v0)
/* BCD88 800BC188 0601FFFA */ bgez $s0, .L800BC174
/* BCD8C 800BC18C 24420008 */ addiu $v0, $v0, 0x8
.L800BC190:
/* BCD90 800BC190 C4242FE0 */ lwc1 $ft0, %lo(D_800F2FE0)($at)
/* BCD94 800BC194 3C01803B */ lui $at, %hi(D_803B7178)
/* BCD98 800BC198 240E0032 */ addiu $t6, $zero, 0x32
/* BCD9C 800BC19C E4247178 */ swc1 $ft0, %lo(D_803B7178)($at)
/* BCDA0 800BC1A0 3C01803B */ lui $at, %hi(gRefreshRate)
/* BCDA4 800BC1A4 0C032FF6 */ jal port_eu_init
/* BCDA8 800BC1A8 AC2E717C */ sw $t6, %lo(gRefreshRate)($at)
/* BCDAC 800BC1AC 3C02803B */ lui $v0, %hi(gAiBufferLengths)
/* BCDB0 800BC1B0 3C04803B */ lui $a0, %hi(D_803B7192)
/* BCDB4 800BC1B4 24847192 */ addiu $a0, $a0, %lo(D_803B7192)
/* BCDB8 800BC1B8 2442718C */ addiu $v0, $v0, %lo(gAiBufferLengths)
/* BCDBC 800BC1BC 240300A0 */ addiu $v1, $zero, 0xA0
.L800BC1C0:
/* BCDC0 800BC1C0 24420002 */ addiu $v0, $v0, 0x2
/* BCDC4 800BC1C4 0044082B */ sltu $at, $v0, $a0
/* BCDC8 800BC1C8 1420FFFD */ bnez $at, .L800BC1C0
/* BCDCC 800BC1CC A443FFFE */ sh $v1, -0x2($v0)
/* BCDD0 800BC1D0 3C0F803B */ lui $t7, %hi(gAudioFrameCount)
/* BCDD4 800BC1D4 25EF70B8 */ addiu $t7, $t7, %lo(gAudioFrameCount)
/* BCDD8 800BC1D8 ADE00000 */ sw $zero, 0x0($t7)
/* BCDDC 800BC1DC 3C01803B */ lui $at, %hi(gAudioTaskIndex)
/* BCDE0 800BC1E0 AC2070C0 */ sw $zero, %lo(gAudioTaskIndex)($at)
/* BCDE4 800BC1E4 3C01803B */ lui $at, %hi(gCurrAiBufferIndex)
/* BCDE8 800BC1E8 AC2070C4 */ sw $zero, %lo(gCurrAiBufferIndex)($at)
/* BCDEC 800BC1EC 3C01803B */ lui $at, %hi(gAudioLibSoundMode)
/* BCDF0 800BC1F0 A02070B6 */ sb $zero, %lo(gAudioLibSoundMode)($at)
/* BCDF4 800BC1F4 3C02803B */ lui $v0, %hi(gAudioTasks)
/* BCDF8 800BC1F8 3C01803B */ lui $at, %hi(gAudioTask)
/* BCDFC 800BC1FC 244270D8 */ addiu $v0, $v0, %lo(gAudioTasks)
/* BCE00 800BC200 AC2070D4 */ sw $zero, %lo(gAudioTask)($at)
/* BCE04 800BC204 3C04803B */ lui $a0, %hi(D_803B6720)
/* BCE08 800BC208 3C05803B */ lui $a1, %hi(D_803B6738)
/* BCE0C 800BC20C AC400034 */ sw $zero, 0x34($v0)
/* BCE10 800BC210 AC400084 */ sw $zero, 0x84($v0)
/* BCE14 800BC214 24A56738 */ addiu $a1, $a1, %lo(D_803B6738)
/* BCE18 800BC218 24846720 */ addiu $a0, $a0, %lo(D_803B6720)
/* BCE1C 800BC21C 0C03337C */ jal osCreateMesgQueue
/* BCE20 800BC220 24060001 */ addiu $a2, $zero, 0x1
/* BCE24 800BC224 3C04803B */ lui $a0, %hi(gCurrAudioFrameDmaQueue)
/* BCE28 800BC228 3C05803B */ lui $a1, %hi(gCurrAudioFrameDmaMesgBufs)
/* BCE2C 800BC22C 24A56020 */ addiu $a1, $a1, %lo(gCurrAudioFrameDmaMesgBufs)
/* BCE30 800BC230 24846008 */ addiu $a0, $a0, %lo(gCurrAudioFrameDmaQueue)
/* BCE34 800BC234 0C03337C */ jal osCreateMesgQueue
/* BCE38 800BC238 24060040 */ addiu $a2, $zero, 0x40
/* BCE3C 800BC23C 3C01803B */ lui $at, %hi(gCurrAudioFrameDmaCount)
/* BCE40 800BC240 AC2070BC */ sw $zero, %lo(gCurrAudioFrameDmaCount)($at)
/* BCE44 800BC244 3C01803B */ lui $at, %hi(gSampleDmaNumListItems)
/* BCE48 800BC248 3C04800F */ lui $a0, %hi(gAudioInitPoolSize)
/* BCE4C 800BC24C AC206E58 */ sw $zero, %lo(gSampleDmaNumListItems)($at)
/* BCE50 800BC250 0C02E43C */ jal sound_init_main_pools
/* BCE54 800BC254 8C84A714 */ lw $a0, %lo(gAudioInitPoolSize)($a0)
/* BCE58 800BC258 3C06803B */ lui $a2, %hi(gAiBuffers)
/* BCE5C 800BC25C 3C14803B */ lui $s4, %hi(gAudioInitPool)
/* BCE60 800BC260 3C11803B */ lui $s1, %hi(gAiBufferLengths)
/* BCE64 800BC264 2631718C */ addiu $s1, $s1, %lo(gAiBufferLengths)
/* BCE68 800BC268 2694FBD8 */ addiu $s4, $s4, %lo(gAudioInitPool)
/* BCE6C 800BC26C 24C67180 */ addiu $a2, $a2, %lo(gAiBuffers)
/* BCE70 800BC270 24100AA0 */ addiu $s0, $zero, 0xAA0
/* BCE74 800BC274 02802025 */ or $a0, $s4, $zero
.L800BC278:
/* BCE78 800BC278 24050AA0 */ addiu $a1, $zero, 0xAA0
/* BCE7C 800BC27C 0C02E3FF */ jal soundAlloc
/* BCE80 800BC280 AFA6003C */ sw $a2, 0x3C($sp)
/* BCE84 800BC284 8FA6003C */ lw $a2, 0x3C($sp)
/* BCE88 800BC288 00001825 */ or $v1, $zero, $zero
/* BCE8C 800BC28C ACC20000 */ sw $v0, 0x0($a2)
.L800BC290:
/* BCE90 800BC290 8CD90000 */ lw $t9, 0x0($a2)
/* BCE94 800BC294 0323C021 */ addu $t8, $t9, $v1
/* BCE98 800BC298 A7000000 */ sh $zero, 0x0($t8)
/* BCE9C 800BC29C 8CC80000 */ lw $t0, 0x0($a2)
/* BCEA0 800BC2A0 01034821 */ addu $t1, $t0, $v1
/* BCEA4 800BC2A4 A5200002 */ sh $zero, 0x2($t1)
/* BCEA8 800BC2A8 8CCA0000 */ lw $t2, 0x0($a2)
/* BCEAC 800BC2AC 01435821 */ addu $t3, $t2, $v1
/* BCEB0 800BC2B0 A5600004 */ sh $zero, 0x4($t3)
/* BCEB4 800BC2B4 8CCC0000 */ lw $t4, 0x0($a2)
/* BCEB8 800BC2B8 01836821 */ addu $t5, $t4, $v1
/* BCEBC 800BC2BC 24630008 */ addiu $v1, $v1, 0x8
/* BCEC0 800BC2C0 1470FFF3 */ bne $v1, $s0, .L800BC290
/* BCEC4 800BC2C4 A5A00006 */ sh $zero, 0x6($t5)
/* BCEC8 800BC2C8 24C60004 */ addiu $a2, $a2, 0x4
/* BCECC 800BC2CC 00D1082B */ sltu $at, $a2, $s1
/* BCED0 800BC2D0 5420FFE9 */ bnel $at, $zero, .L800BC278
/* BCED4 800BC2D4 02802025 */ or $a0, $s4, $zero
/* BCED8 800BC2D8 3C01803B */ lui $at, %hi(gAudioResetPresetIdToLoad)
/* BCEDC 800BC2DC 3C0F803B */ lui $t7, %hi(gAudioResetStatus)
/* BCEE0 800BC2E0 A0200501 */ sb $zero, %lo(gAudioResetPresetIdToLoad)($at)
/* BCEE4 800BC2E4 25EF0500 */ addiu $t7, $t7, %lo(gAudioResetStatus)
/* BCEE8 800BC2E8 240E0001 */ addiu $t6, $zero, 0x1
/* BCEEC 800BC2EC 0C02E803 */ jal audio_shut_down_and_reset_step
/* BCEF0 800BC2F0 A1EE0000 */ sb $t6, 0x0($t7)
/* BCEF4 800BC2F4 3C11803B */ lui $s1, %hi(gSeqFileHeader)
/* BCEF8 800BC2F8 3C1200BC */ lui $s2, %hi(_sequencesSegmentRomStart)
/* BCEFC 800BC2FC 26526160 */ addiu $s2, $s2, %lo(_sequencesSegmentRomStart)
/* BCF00 800BC300 2631706C */ addiu $s1, $s1, %lo(gSeqFileHeader)
/* BCF04 800BC304 27B50060 */ addiu $s5, $sp, 0x60
/* BCF08 800BC308 AE350000 */ sw $s5, 0x0($s1)
/* BCF0C 800BC30C 02A02825 */ or $a1, $s5, $zero
/* BCF10 800BC310 02402025 */ or $a0, $s2, $zero
/* BCF14 800BC314 0C02EAA0 */ jal audio_dma_copy_immediate
/* BCF18 800BC318 24060010 */ addiu $a2, $zero, 0x10
/* BCF1C 800BC31C 8E390000 */ lw $t9, 0x0($s1)
/* BCF20 800BC320 3C02803B */ lui $v0, %hi(gSequenceCount)
/* BCF24 800BC324 2401FFF0 */ addiu $at, $zero, -0x10
/* BCF28 800BC328 87380002 */ lh $t8, 0x2($t9)
/* BCF2C 800BC32C 2442707C */ addiu $v0, $v0, %lo(gSequenceCount)
/* BCF30 800BC330 02802025 */ or $a0, $s4, $zero
/* BCF34 800BC334 3310FFFF */ andi $s0, $t8, 0xFFFF
/* BCF38 800BC338 001040C0 */ sll $t0, $s0, 3
/* BCF3C 800BC33C 01008025 */ or $s0, $t0, $zero
/* BCF40 800BC340 26100013 */ addiu $s0, $s0, 0x13
/* BCF44 800BC344 02012824 */ and $a1, $s0, $at
/* BCF48 800BC348 00A08025 */ or $s0, $a1, $zero
/* BCF4C 800BC34C 0C02E3FF */ jal soundAlloc
/* BCF50 800BC350 A4580000 */ sh $t8, 0x0($v0)
/* BCF54 800BC354 AE220000 */ sw $v0, 0x0($s1)
/* BCF58 800BC358 02402025 */ or $a0, $s2, $zero
/* BCF5C 800BC35C 00402825 */ or $a1, $v0, $zero
/* BCF60 800BC360 0C02EAA0 */ jal audio_dma_copy_immediate
/* BCF64 800BC364 02003025 */ or $a2, $s0, $zero
/* BCF68 800BC368 8E240000 */ lw $a0, 0x0($s1)
/* BCF6C 800BC36C 0C02ED0F */ jal func_800BB43C
/* BCF70 800BC370 02402825 */ or $a1, $s2, $zero
/* BCF74 800BC374 3C110096 */ lui $s1, %hi(_audio_banksSegmentRomStart)
/* BCF78 800BC378 3C12803B */ lui $s2, %hi(gAlCtlHeader)
/* BCF7C 800BC37C 26527070 */ addiu $s2, $s2, %lo(gAlCtlHeader)
/* BCF80 800BC380 26316460 */ addiu $s1, $s1, %lo(_audio_banksSegmentRomStart)
/* BCF84 800BC384 AE550000 */ sw $s5, 0x0($s2)
/* BCF88 800BC388 02202025 */ or $a0, $s1, $zero
/* BCF8C 800BC38C 02A02825 */ or $a1, $s5, $zero
/* BCF90 800BC390 0C02EAA0 */ jal audio_dma_copy_immediate
/* BCF94 800BC394 24060010 */ addiu $a2, $zero, 0x10
/* BCF98 800BC398 8E4A0000 */ lw $t2, 0x0($s2)
/* BCF9C 800BC39C 2401FFF0 */ addiu $at, $zero, -0x10
/* BCFA0 800BC3A0 02802025 */ or $a0, $s4, $zero
/* BCFA4 800BC3A4 85530002 */ lh $s3, 0x2($t2)
/* BCFA8 800BC3A8 001380C0 */ sll $s0, $s3, 3
/* BCFAC 800BC3AC 26100013 */ addiu $s0, $s0, 0x13
/* BCFB0 800BC3B0 02012824 */ and $a1, $s0, $at
/* BCFB4 800BC3B4 0C02E3FF */ jal soundAlloc
/* BCFB8 800BC3B8 00A08025 */ or $s0, $a1, $zero
/* BCFBC 800BC3BC AE420000 */ sw $v0, 0x0($s2)
/* BCFC0 800BC3C0 02202025 */ or $a0, $s1, $zero
/* BCFC4 800BC3C4 00402825 */ or $a1, $v0, $zero
/* BCFC8 800BC3C8 0C02EAA0 */ jal audio_dma_copy_immediate
/* BCFCC 800BC3CC 02003025 */ or $a2, $s0, $zero
/* BCFD0 800BC3D0 8E440000 */ lw $a0, 0x0($s2)
/* BCFD4 800BC3D4 0C02ED0F */ jal func_800BB43C
/* BCFD8 800BC3D8 02202825 */ or $a1, $s1, $zero
/* BCFDC 800BC3DC 00132880 */ sll $a1, $s3, 2
/* BCFE0 800BC3E0 00B32823 */ subu $a1, $a1, $s3
/* BCFE4 800BC3E4 00052880 */ sll $a1, $a1, 2
/* BCFE8 800BC3E8 0C02E3FF */ jal soundAlloc
/* BCFEC 800BC3EC 02802025 */ or $a0, $s4, $zero
/* BCFF0 800BC3F0 3C07803B */ lui $a3, %hi(gCtlEntries)
/* BCFF4 800BC3F4 24E77080 */ addiu $a3, $a3, %lo(gCtlEntries)
/* BCFF8 800BC3F8 ACE20000 */ sw $v0, 0x0($a3)
/* BCFFC 800BC3FC 1A600019 */ blez $s3, .L800BC464
/* BD000 800BC400 00001825 */ or $v1, $zero, $zero
/* BD004 800BC404 00008825 */ or $s1, $zero, $zero
/* BD008 800BC408 00008025 */ or $s0, $zero, $zero
.L800BC40C:
/* BD00C 800BC40C 8E4C0000 */ lw $t4, 0x0($s2)
/* BD010 800BC410 02A02825 */ or $a1, $s5, $zero
/* BD014 800BC414 24060010 */ addiu $a2, $zero, 0x10
/* BD018 800BC418 01916821 */ addu $t5, $t4, $s1
/* BD01C 800BC41C 8DA40004 */ lw $a0, 0x4($t5)
/* BD020 800BC420 0C02EAA0 */ jal audio_dma_copy_immediate
/* BD024 800BC424 AFA3008C */ sw $v1, 0x8C($sp)
/* BD028 800BC428 3C07803B */ lui $a3, %hi(gCtlEntries)
/* BD02C 800BC42C 24E77080 */ addiu $a3, $a3, %lo(gCtlEntries)
/* BD030 800BC430 8CEF0000 */ lw $t7, 0x0($a3)
/* BD034 800BC434 8FAE0060 */ lw $t6, 0x60($sp)
/* BD038 800BC438 8FA3008C */ lw $v1, 0x8C($sp)
/* BD03C 800BC43C 01F0C821 */ addu $t9, $t7, $s0
/* BD040 800BC440 A32E0001 */ sb $t6, 0x1($t9)
/* BD044 800BC444 8CE80000 */ lw $t0, 0x0($a3)
/* BD048 800BC448 8FB80064 */ lw $t8, 0x64($sp)
/* BD04C 800BC44C 24630001 */ addiu $v1, $v1, 0x1
/* BD050 800BC450 01104821 */ addu $t1, $t0, $s0
/* BD054 800BC454 2610000C */ addiu $s0, $s0, 0xC
/* BD058 800BC458 26310008 */ addiu $s1, $s1, 0x8
/* BD05C 800BC45C 1473FFEB */ bne $v1, $s3, .L800BC40C
/* BD060 800BC460 A1380002 */ sb $t8, 0x2($t1)
.L800BC464:
/* BD064 800BC464 3C11803B */ lui $s1, %hi(gAlTbl)
/* BD068 800BC468 3C120098 */ lui $s2, %hi(_audio_tablesSegmentRomStart)
/* BD06C 800BC46C 26529CA0 */ addiu $s2, $s2, %lo(_audio_tablesSegmentRomStart)
/* BD070 800BC470 26317074 */ addiu $s1, $s1, %lo(gAlTbl)
/* BD074 800BC474 AE350000 */ sw $s5, 0x0($s1)
/* BD078 800BC478 02402025 */ or $a0, $s2, $zero
/* BD07C 800BC47C 02A02825 */ or $a1, $s5, $zero
/* BD080 800BC480 0C02EAA0 */ jal audio_dma_copy_immediate
/* BD084 800BC484 24060010 */ addiu $a2, $zero, 0x10
/* BD088 800BC488 8E2A0000 */ lw $t2, 0x0($s1)
/* BD08C 800BC48C 2401FFF0 */ addiu $at, $zero, -0x10
/* BD090 800BC490 02802025 */ or $a0, $s4, $zero
/* BD094 800BC494 85500002 */ lh $s0, 0x2($t2)
/* BD098 800BC498 001058C0 */ sll $t3, $s0, 3
/* BD09C 800BC49C 01608025 */ or $s0, $t3, $zero
/* BD0A0 800BC4A0 26100013 */ addiu $s0, $s0, 0x13
/* BD0A4 800BC4A4 02012824 */ and $a1, $s0, $at
/* BD0A8 800BC4A8 0C02E3FF */ jal soundAlloc
/* BD0AC 800BC4AC 00A08025 */ or $s0, $a1, $zero
/* BD0B0 800BC4B0 AE220000 */ sw $v0, 0x0($s1)
/* BD0B4 800BC4B4 02402025 */ or $a0, $s2, $zero
/* BD0B8 800BC4B8 00402825 */ or $a1, $v0, $zero
/* BD0BC 800BC4BC 0C02EAA0 */ jal audio_dma_copy_immediate
/* BD0C0 800BC4C0 02003025 */ or $a2, $s0, $zero
/* BD0C4 800BC4C4 8E240000 */ lw $a0, 0x0($s1)
/* BD0C8 800BC4C8 0C02ED0F */ jal func_800BB43C
/* BD0CC 800BC4CC 02402825 */ or $a1, $s2, $zero
/* BD0D0 800BC4D0 02802025 */ or $a0, $s4, $zero
/* BD0D4 800BC4D4 0C02E3FF */ jal soundAlloc
/* BD0D8 800BC4D8 24050100 */ addiu $a1, $zero, 0x100
/* BD0DC 800BC4DC 3C03803B */ lui $v1, %hi(gAlBankSets)
/* BD0E0 800BC4E0 24637078 */ addiu $v1, $v1, %lo(gAlBankSets)
/* BD0E4 800BC4E4 3C0400BF */ lui $a0, %hi(_instrument_setsSegmentRomStart+0x20)
/* BD0E8 800BC4E8 AC620000 */ sw $v0, 0x0($v1)
/* BD0EC 800BC4EC 248493E0 */ addiu $a0, $a0, %lo(_instrument_setsSegmentRomStart+0x20)
/* BD0F0 800BC4F0 00402825 */ or $a1, $v0, $zero
/* BD0F4 800BC4F4 0C02EAA0 */ jal audio_dma_copy_immediate
/* BD0F8 800BC4F8 24060100 */ addiu $a2, $zero, 0x100
/* BD0FC 800BC4FC 3C10800F */ lui $s0, %hi(D_800EA5D8)
/* BD100 800BC500 2610A718 */ addiu $s0, $s0, %lo(D_800EA5D8)
/* BD104 800BC504 8E050000 */ lw $a1, 0x0($s0)
/* BD108 800BC508 0C02E3FF */ jal soundAlloc
/* BD10C 800BC50C 02802025 */ or $a0, $s4, $zero
/* BD110 800BC510 3C04803B */ lui $a0, %hi(gUnkPool1)
/* BD114 800BC514 248401B8 */ addiu $a0, $a0, %lo(gUnkPool1)
/* BD118 800BC518 00402825 */ or $a1, $v0, $zero
/* BD11C 800BC51C 0C02E41F */ jal sound_alloc_pool_init
/* BD120 800BC520 8E060000 */ lw $a2, 0x0($s0)
/* BD124 800BC524 0C030499 */ jal init_sequence_players
/* BD128 800BC528 00000000 */ nop
/* BD12C 800BC52C 3C0D7655 */ lui $t5, (0x76557364 >> 16)
/* BD130 800BC530 3C0F800F */ lui $t7, %hi(gAudioLoadLock)
/* BD134 800BC534 25EFA71C */ addiu $t7, $t7, %lo(gAudioLoadLock)
/* BD138 800BC538 35AD7364 */ ori $t5, $t5, (0x76557364 & 0xFFFF)
/* BD13C 800BC53C ADED0000 */ sw $t5, 0x0($t7)
/* BD140 800BC540 8FBF002C */ lw $ra, 0x2C($sp)
/* BD144 800BC544 8FB50028 */ lw $s5, 0x28($sp)
/* BD148 800BC548 8FB40024 */ lw $s4, 0x24($sp)
/* BD14C 800BC54C 8FB30020 */ lw $s3, 0x20($sp)
/* BD150 800BC550 8FB2001C */ lw $s2, 0x1C($sp)
/* BD154 800BC554 8FB10018 */ lw $s1, 0x18($sp)
/* BD158 800BC558 8FB00014 */ lw $s0, 0x14($sp)
/* BD15C 800BC55C 03E00008 */ jr $ra
/* BD160 800BC560 27BD0090 */ addiu $sp, $sp, 0x90
/* BD164 800BC564 00000000 */ nop
/* BD168 800BC568 00000000 */ nop
/* BD16C 800BC56C 00000000 */ nop

View File

@ -1,601 +0,0 @@
.section .late_rodata
glabel jpt_800F376C
.word L800C3DEC, L800C3E10, L800C3E30, L800C3E70
.word L800C3E98, L800C3EBC, L800C3F04
.section .text
glabel func_800C3724
/* 0C43A4 800C37A4 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 0C43A8 800C37A8 AFB60048 */ sw $s6, 0x48($sp)
/* 0C43AC 800C37AC F7B40028 */ sdc1 $f20, 0x28($sp)
/* 0C43B0 800C37B0 3C0142FE */ li $at, 0x42FE0000 # 127.000000
/* 0C43B4 800C37B4 AFBE0050 */ sw $fp, 0x50($sp)
/* 0C43B8 800C37B8 AFB7004C */ sw $s7, 0x4c($sp)
/* 0C43BC 800C37BC AFB50044 */ sw $s5, 0x44($sp)
/* 0C43C0 800C37C0 3C168019 */ lui $s6, %hi(D_801930D0) # $s6, 0x8019
/* 0C43C4 800C37C4 4481A000 */ mtc1 $at, $f20
/* 0C43C8 800C37C8 03A0F025 */ move $fp, $sp
/* 0C43CC 800C37CC AFBF0054 */ sw $ra, 0x54($sp)
/* 0C43D0 800C37D0 AFB40040 */ sw $s4, 0x40($sp)
/* 0C43D4 800C37D4 AFB3003C */ sw $s3, 0x3c($sp)
/* 0C43D8 800C37D8 AFB20038 */ sw $s2, 0x38($sp)
/* 0C43DC 800C37DC AFB10034 */ sw $s1, 0x34($sp)
/* 0C43E0 800C37E0 AFB00030 */ sw $s0, 0x30($sp)
/* 0C43E4 800C37E4 26D63210 */ addiu $s6, %lo(D_801930D0) # addiu $s6, $s6, 0x3210
/* 0C43E8 800C37E8 0000A825 */ move $s5, $zero
/* 0C43EC 800C37EC 2417024C */ li $s7, 588
.L800C37F0:
/* 0C43F0 800C37F0 02B70019 */ multu $s5, $s7
/* 0C43F4 800C37F4 00007012 */ mflo $t6
/* 0C43F8 800C37F8 02CE9821 */ addu $s3, $s6, $t6
/* 0C43FC 800C37FC 926F0012 */ lbu $t7, 0x12($s3)
/* 0C4400 800C3800 11E00048 */ beqz $t7, .L800C3924
/* 0C4404 800C3804 0015C0C0 */ sll $t8, $s5, 3
/* 0C4408 800C3808 0315C021 */ addu $t8, $t8, $s5
/* 0C440C 800C380C 0018C080 */ sll $t8, $t8, 2
/* 0C4410 800C3810 0315C021 */ addu $t8, $t8, $s5
/* 0C4414 800C3814 0018C080 */ sll $t8, $t8, 2
/* 0C4418 800C3818 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C441C 800C381C 0315C023 */ subu $t8, $t8, $s5
/* 0C4420 800C3820 0018C080 */ sll $t8, $t8, 2
/* 0C4424 800C3824 44810000 */ mtc1 $at, $f0
/* 0C4428 800C3828 02D8A021 */ addu $s4, $s6, $t8
/* 0C442C 800C382C 00009025 */ move $s2, $zero
/* 0C4430 800C3830 02A01025 */ move $v0, $s5
/* 0C4434 800C3834 0292C821 */ addu $t9, $s4, $s2
.L800C3838:
/* 0C4438 800C3838 932A000E */ lbu $t2, 0xe($t9)
/* 0C443C 800C383C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C4440 800C3840 448A2000 */ mtc1 $t2, $f4
/* 0C4444 800C3844 05410004 */ bgez $t2, .L800C3858
/* 0C4448 800C3848 468021A0 */ cvt.s.w $f6, $f4
/* 0C444C 800C384C 44814000 */ mtc1 $at, $f8
/* 0C4450 800C3850 00000000 */ nop
/* 0C4454 800C3854 46083180 */ add.s $f6, $f6, $f8
.L800C3858:
/* 0C4458 800C3858 46143283 */ div.s $f10, $f6, $f20
/* 0C445C 800C385C 26520001 */ addiu $s2, $s2, 1
/* 0C4460 800C3860 324B00FF */ andi $t3, $s2, 0xff
/* 0C4464 800C3864 29610003 */ slti $at, $t3, 3
/* 0C4468 800C3868 01609025 */ move $s2, $t3
/* 0C446C 800C386C 460A0002 */ mul.s $f0, $f0, $f10
/* 0C4470 800C3870 5420FFF1 */ bnezl $at, .L800C3838
/* 0C4474 800C3874 0292C821 */ addu $t9, $s4, $s2
/* 0C4478 800C3878 46140402 */ mul.s $f16, $f0, $f20
/* 0C447C 800C387C 240A0001 */ li $t2, 1
/* 0C4480 800C3880 926C0011 */ lbu $t4, 0x11($s3)
/* 0C4484 800C3884 3C014000 */ lui $at, 0x4000
/* 0C4488 800C3888 00027E00 */ sll $t7, $v0, 0x18
/* 0C448C 800C388C 000C6C00 */ sll $t5, $t4, 0x10
/* 0C4490 800C3890 01A17025 */ or $t6, $t5, $at
/* 0C4494 800C3894 4459F800 */ cfc1 $t9, $31
/* 0C4498 800C3898 44CAF800 */ ctc1 $t2, $31
/* 0C449C 800C389C 01CFC025 */ or $t8, $t6, $t7
/* 0C44A0 800C38A0 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000
/* 0C44A4 800C38A4 460084A4 */ cvt.w.s $f18, $f16
/* 0C44A8 800C38A8 444AF800 */ cfc1 $t2, $31
/* 0C44AC 800C38AC 00000000 */ nop
/* 0C44B0 800C38B0 314A0078 */ andi $t2, $t2, 0x78
/* 0C44B4 800C38B4 51400013 */ beql $t2, $zero, .L800C3904
/* 0C44B8 800C38B8 440A9000 */ mfc1 $t2, $f18
/* 0C44BC 800C38BC 44819000 */ mtc1 $at, $f18
/* 0C44C0 800C38C0 240A0001 */ li $t2, 1
/* 0C44C4 800C38C4 46128481 */ sub.s $f18, $f16, $f18
/* 0C44C8 800C38C8 44CAF800 */ ctc1 $t2, $31
/* 0C44CC 800C38CC 00000000 */ nop
/* 0C44D0 800C38D0 460094A4 */ cvt.w.s $f18, $f18
/* 0C44D4 800C38D4 444AF800 */ cfc1 $t2, $31
/* 0C44D8 800C38D8 00000000 */ nop
/* 0C44DC 800C38DC 314A0078 */ andi $t2, $t2, 0x78
/* 0C44E0 800C38E0 15400005 */ bnez $t2, .L800C38F8
/* 0C44E4 800C38E4 00000000 */ nop
/* 0C44E8 800C38E8 440A9000 */ mfc1 $t2, $f18
/* 0C44EC 800C38EC 3C018000 */ lui $at, 0x8000
/* 0C44F0 800C38F0 10000007 */ b .L800C3910
/* 0C44F4 800C38F4 01415025 */ or $t2, $t2, $at
.L800C38F8:
/* 0C44F8 800C38F8 10000005 */ b .L800C3910
/* 0C44FC 800C38FC 240AFFFF */ li $t2, -1
/* 0C4500 800C3900 440A9000 */ mfc1 $t2, $f18
.L800C3904:
/* 0C4504 800C3904 00000000 */ nop
/* 0C4508 800C3908 0540FFFB */ bltz $t2, .L800C38F8
/* 0C450C 800C390C 00000000 */ nop
.L800C3910:
/* 0C4510 800C3910 44D9F800 */ ctc1 $t9, $31
/* 0C4514 800C3914 314B00FF */ andi $t3, $t2, 0xff
/* 0C4518 800C3918 0C030D16 */ jal func_800C3448
/* 0C451C 800C391C 030B2025 */ or $a0, $t8, $t3
/* 0C4520 800C3920 A2600012 */ sb $zero, 0x12($s3)
.L800C3924:
/* 0C4524 800C3924 9662000C */ lhu $v0, 0xc($s3)
/* 0C4528 800C3928 10400011 */ beqz $v0, .L800C3970
/* 0C452C 800C392C 244CFFFF */ addiu $t4, $v0, -1
/* 0C4530 800C3930 318DFFFF */ andi $t5, $t4, 0xffff
/* 0C4534 800C3934 11A00006 */ beqz $t5, .L800C3950
/* 0C4538 800C3938 A66C000C */ sh $t4, 0xc($s3)
/* 0C453C 800C393C C6640000 */ lwc1 $f4, ($s3)
/* 0C4540 800C3940 C6680008 */ lwc1 $f8, 8($s3)
/* 0C4544 800C3944 46082181 */ sub.s $f6, $f4, $f8
/* 0C4548 800C3948 10000003 */ b .L800C3958
/* 0C454C 800C394C E6660000 */ swc1 $f6, ($s3)
.L800C3950:
/* 0C4550 800C3950 C66A0004 */ lwc1 $f10, 4($s3)
/* 0C4554 800C3954 E66A0000 */ swc1 $f10, ($s3)
.L800C3958:
/* 0C4558 800C3958 32A400FF */ andi $a0, $s5, 0xff
/* 0C455C 800C395C 00047400 */ sll $t6, $a0, 0x10
/* 0C4560 800C3960 3C014100 */ lui $at, 0x4100
/* 0C4564 800C3964 01C12025 */ or $a0, $t6, $at
/* 0C4568 800C3968 0C032F06 */ jal func_800CBB88
/* 0C456C 800C396C 8E650000 */ lw $a1, ($s3)
.L800C3970:
/* 0C4570 800C3970 8E650014 */ lw $a1, 0x14($s3)
/* 0C4574 800C3974 10A00093 */ beqz $a1, .L800C3BC4
/* 0C4578 800C3978 3C0100FF */ lui $at, 0xff
/* 0C457C 800C397C 00A11024 */ and $v0, $a1, $at
/* 0C4580 800C3980 0002CBC2 */ srl $t9, $v0, 0xf
/* 0C4584 800C3984 30A40FFF */ andi $a0, $a1, 0xfff
/* 0C4588 800C3988 332700FF */ andi $a3, $t9, 0xff
/* 0C458C 800C398C 00A01825 */ move $v1, $a1
/* 0C4590 800C3990 332800FF */ andi $t0, $t9, 0xff
/* 0C4594 800C3994 14E00004 */ bnez $a3, .L800C39A8
/* 0C4598 800C3998 3086FFFF */ andi $a2, $a0, 0xffff
/* 0C459C 800C399C 24E80001 */ addiu $t0, $a3, 1
/* 0C45A0 800C39A0 310A00FF */ andi $t2, $t0, 0xff
/* 0C45A4 800C39A4 01404025 */ move $t0, $t2
.L800C39A8:
/* 0C45A8 800C39A8 0015C080 */ sll $t8, $s5, 2
/* 0C45AC 800C39AC 0315C021 */ addu $t8, $t8, $s5
/* 0C45B0 800C39B0 0018C0C0 */ sll $t8, $t8, 3
/* 0C45B4 800C39B4 0315C021 */ addu $t8, $t8, $s5
/* 0C45B8 800C39B8 3C0B803B */ lui $t3, %hi(gSequencePlayers) # $t3, 0x803b
/* 0C45BC 800C39BC 256B1510 */ addiu $t3, %lo(gSequencePlayers) # addiu $t3, $t3, 0x1510
/* 0C45C0 800C39C0 0018C0C0 */ sll $t8, $t8, 3
/* 0C45C4 800C39C4 030B2821 */ addu $a1, $t8, $t3
/* 0C45C8 800C39C8 8CAC0000 */ lw $t4, ($a1)
/* 0C45CC 800C39CC 24010030 */ li $at, 48
/* 0C45D0 800C39D0 3062F000 */ andi $v0, $v1, 0xf000
/* 0C45D4 800C39D4 000C6FC2 */ srl $t5, $t4, 0x1f
/* 0C45D8 800C39D8 51A0007A */ beql $t5, $zero, .L800C3BC4
/* 0C45DC 800C39DC AE600014 */ sw $zero, 0x14($s3)
/* 0C45E0 800C39E0 94A90008 */ lhu $t1, 8($a1)
/* 0C45E4 800C39E4 00027B02 */ srl $t7, $v0, 0xc
/* 0C45E8 800C39E8 31F900FF */ andi $t9, $t7, 0xff
/* 0C45EC 800C39EC 0121001A */ div $zero, $t1, $at
/* 0C45F0 800C39F0 00004812 */ mflo $t1
/* 0C45F4 800C39F4 24010001 */ li $at, 1
/* 0C45F8 800C39F8 1321000C */ beq $t9, $at, .L800C3A2C
/* 0C45FC 800C39FC 3127FFFF */ andi $a3, $t1, 0xffff
/* 0C4600 800C3A00 24010002 */ li $at, 2
/* 0C4604 800C3A04 1321000E */ beq $t9, $at, .L800C3A40
/* 0C4608 800C3A08 3083FFFF */ andi $v1, $a0, 0xffff
/* 0C460C 800C3A0C 24010003 */ li $at, 3
/* 0C4610 800C3A10 13210013 */ beq $t9, $at, .L800C3A60
/* 0C4614 800C3A14 308CFFFF */ andi $t4, $a0, 0xffff
/* 0C4618 800C3A18 24010004 */ li $at, 4
/* 0C461C 800C3A1C 53210048 */ beql $t9, $at, .L800C3B40
/* 0C4620 800C3A20 96620018 */ lhu $v0, 0x18($s3)
/* 0C4624 800C3A24 1000004B */ b .L800C3B54
/* 0C4628 800C3A28 96620018 */ lhu $v0, 0x18($s3)
.L800C3A2C:
/* 0C462C 800C3A2C 00873021 */ addu $a2, $a0, $a3
/* 0C4630 800C3A30 30D8FFFF */ andi $t8, $a2, 0xffff
/* 0C4634 800C3A34 03003025 */ move $a2, $t8
/* 0C4638 800C3A38 10000046 */ b .L800C3B54
/* 0C463C 800C3A3C 96620018 */ lhu $v0, 0x18($s3)
.L800C3A40:
/* 0C4640 800C3A40 0067082A */ slt $at, $v1, $a3
/* 0C4644 800C3A44 10200004 */ beqz $at, .L800C3A58
/* 0C4648 800C3A48 00E01025 */ move $v0, $a3
/* 0C464C 800C3A4C 00433023 */ subu $a2, $v0, $v1
/* 0C4650 800C3A50 30CBFFFF */ andi $t3, $a2, 0xffff
/* 0C4654 800C3A54 01603025 */ move $a2, $t3
.L800C3A58:
/* 0C4658 800C3A58 1000003E */ b .L800C3B54
/* 0C465C 800C3A5C 96620018 */ lhu $v0, 0x18($s3)
.L800C3A60:
/* 0C4660 800C3A60 448C8000 */ mtc1 $t4, $f16
/* 0C4664 800C3A64 44875000 */ mtc1 $a3, $f10
/* 0C4668 800C3A68 05810005 */ bgez $t4, .L800C3A80
/* 0C466C 800C3A6C 468084A0 */ cvt.s.w $f18, $f16
/* 0C4670 800C3A70 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C4674 800C3A74 44812000 */ mtc1 $at, $f4
/* 0C4678 800C3A78 00000000 */ nop
/* 0C467C 800C3A7C 46049480 */ add.s $f18, $f18, $f4
.L800C3A80:
/* 0C4680 800C3A80 3C0142C8 */ li $at, 0x42C80000 # 100.000000
/* 0C4684 800C3A84 44814000 */ mtc1 $at, $f8
/* 0C4688 800C3A88 46805420 */ cvt.s.w $f16, $f10
/* 0C468C 800C3A8C 04E10005 */ bgez $a3, .L800C3AA4
/* 0C4690 800C3A90 46089183 */ div.s $f6, $f18, $f8
/* 0C4694 800C3A94 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C4698 800C3A98 44812000 */ mtc1 $at, $f4
/* 0C469C 800C3A9C 00000000 */ nop
/* 0C46A0 800C3AA0 46048400 */ add.s $f16, $f16, $f4
.L800C3AA4:
/* 0C46A4 800C3AA4 46068482 */ mul.s $f18, $f16, $f6
/* 0C46A8 800C3AA8 24060001 */ li $a2, 1
/* 0C46AC 800C3AAC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000
/* 0C46B0 800C3AB0 444DF800 */ cfc1 $t5, $31
/* 0C46B4 800C3AB4 44C6F800 */ ctc1 $a2, $31
/* 0C46B8 800C3AB8 00000000 */ nop
/* 0C46BC 800C3ABC 46009224 */ cvt.w.s $f8, $f18
/* 0C46C0 800C3AC0 4446F800 */ cfc1 $a2, $31
/* 0C46C4 800C3AC4 00000000 */ nop
/* 0C46C8 800C3AC8 30C60078 */ andi $a2, $a2, 0x78
/* 0C46CC 800C3ACC 50C00013 */ beql $a2, $zero, .L800C3B1C
/* 0C46D0 800C3AD0 44064000 */ mfc1 $a2, $f8
/* 0C46D4 800C3AD4 44814000 */ mtc1 $at, $f8
/* 0C46D8 800C3AD8 24060001 */ li $a2, 1
/* 0C46DC 800C3ADC 46089201 */ sub.s $f8, $f18, $f8
/* 0C46E0 800C3AE0 44C6F800 */ ctc1 $a2, $31
/* 0C46E4 800C3AE4 00000000 */ nop
/* 0C46E8 800C3AE8 46004224 */ cvt.w.s $f8, $f8
/* 0C46EC 800C3AEC 4446F800 */ cfc1 $a2, $31
/* 0C46F0 800C3AF0 00000000 */ nop
/* 0C46F4 800C3AF4 30C60078 */ andi $a2, $a2, 0x78
/* 0C46F8 800C3AF8 14C00005 */ bnez $a2, .L800C3B10
/* 0C46FC 800C3AFC 00000000 */ nop
/* 0C4700 800C3B00 44064000 */ mfc1 $a2, $f8
/* 0C4704 800C3B04 3C018000 */ lui $at, 0x8000
/* 0C4708 800C3B08 10000007 */ b .L800C3B28
/* 0C470C 800C3B0C 00C13025 */ or $a2, $a2, $at
.L800C3B10:
/* 0C4710 800C3B10 10000005 */ b .L800C3B28
/* 0C4714 800C3B14 2406FFFF */ li $a2, -1
/* 0C4718 800C3B18 44064000 */ mfc1 $a2, $f8
.L800C3B1C:
/* 0C471C 800C3B1C 00000000 */ nop
/* 0C4720 800C3B20 04C0FFFB */ bltz $a2, .L800C3B10
/* 0C4724 800C3B24 00000000 */ nop
.L800C3B28:
/* 0C4728 800C3B28 44CDF800 */ ctc1 $t5, $31
/* 0C472C 800C3B2C 30CEFFFF */ andi $t6, $a2, 0xffff
/* 0C4730 800C3B30 01C03025 */ move $a2, $t6
/* 0C4734 800C3B34 10000007 */ b .L800C3B54
/* 0C4738 800C3B38 96620018 */ lhu $v0, 0x18($s3)
/* 0C473C 800C3B3C 96620018 */ lhu $v0, 0x18($s3)
.L800C3B40:
/* 0C4740 800C3B40 30E6FFFF */ andi $a2, $a3, 0xffff
/* 0C4744 800C3B44 10400003 */ beqz $v0, .L800C3B54
/* 0C4748 800C3B48 00000000 */ nop
/* 0C474C 800C3B4C 10000001 */ b .L800C3B54
/* 0C4750 800C3B50 3046FFFF */ andi $a2, $v0, 0xffff
.L800C3B54:
/* 0C4754 800C3B54 44898000 */ mtc1 $t1, $f16
/* 0C4758 800C3B58 28C1012D */ slti $at, $a2, 0x12d
/* 0C475C 800C3B5C 14200002 */ bnez $at, .L800C3B68
/* 0C4760 800C3B60 468080A0 */ cvt.s.w $f2, $f16
/* 0C4764 800C3B64 2406012C */ li $a2, 300
.L800C3B68:
/* 0C4768 800C3B68 44865000 */ mtc1 $a2, $f10
/* 0C476C 800C3B6C 14400002 */ bnez $v0, .L800C3B78
/* 0C4770 800C3B70 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C4774 800C3B74 A6670018 */ sh $a3, 0x18($s3)
.L800C3B78:
/* 0C4778 800C3B78 04C10004 */ bgez $a2, .L800C3B8C
/* 0C477C 800C3B7C 46805020 */ cvt.s.w $f0, $f10
/* 0C4780 800C3B80 44812000 */ mtc1 $at, $f4
/* 0C4784 800C3B84 00000000 */ nop
/* 0C4788 800C3B88 46040000 */ add.s $f0, $f0, $f4
.L800C3B8C:
/* 0C478C 800C3B8C 44889000 */ mtc1 $t0, $f18
/* 0C4790 800C3B90 E6600020 */ swc1 $f0, 0x20($s3)
/* 0C4794 800C3B94 E662001C */ swc1 $f2, 0x1c($s3)
/* 0C4798 800C3B98 46001181 */ sub.s $f6, $f2, $f0
/* 0C479C 800C3B9C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C47A0 800C3BA0 05010004 */ bgez $t0, .L800C3BB4
/* 0C47A4 800C3BA4 46809220 */ cvt.s.w $f8, $f18
/* 0C47A8 800C3BA8 44815000 */ mtc1 $at, $f10
/* 0C47AC 800C3BAC 00000000 */ nop
/* 0C47B0 800C3BB0 460A4200 */ add.s $f8, $f8, $f10
.L800C3BB4:
/* 0C47B4 800C3BB4 46083103 */ div.s $f4, $f6, $f8
/* 0C47B8 800C3BB8 A6680028 */ sh $t0, 0x28($s3)
/* 0C47BC 800C3BBC E6640024 */ swc1 $f4, 0x24($s3)
/* 0C47C0 800C3BC0 AE600014 */ sw $zero, 0x14($s3)
.L800C3BC4:
/* 0C47C4 800C3BC4 96620028 */ lhu $v0, 0x28($s3)
/* 0C47C8 800C3BC8 10400015 */ beqz $v0, .L800C3C20
/* 0C47CC 800C3BCC 244FFFFF */ addiu $t7, $v0, -1
/* 0C47D0 800C3BD0 32A300FF */ andi $v1, $s5, 0xff
/* 0C47D4 800C3BD4 0003CC00 */ sll $t9, $v1, 0x10
/* 0C47D8 800C3BD8 31EAFFFF */ andi $t2, $t7, 0xffff
/* 0C47DC 800C3BDC A66F0028 */ sh $t7, 0x28($s3)
/* 0C47E0 800C3BE0 11400006 */ beqz $t2, .L800C3BFC
/* 0C47E4 800C3BE4 03201825 */ move $v1, $t9
/* 0C47E8 800C3BE8 C670001C */ lwc1 $f16, 0x1c($s3)
/* 0C47EC 800C3BEC C6720024 */ lwc1 $f18, 0x24($s3)
/* 0C47F0 800C3BF0 46128281 */ sub.s $f10, $f16, $f18
/* 0C47F4 800C3BF4 10000003 */ b .L800C3C04
/* 0C47F8 800C3BF8 E66A001C */ swc1 $f10, 0x1c($s3)
.L800C3BFC:
/* 0C47FC 800C3BFC C6660020 */ lwc1 $f6, 0x20($s3)
/* 0C4800 800C3C00 E666001C */ swc1 $f6, 0x1c($s3)
.L800C3C04:
/* 0C4804 800C3C04 C668001C */ lwc1 $f8, 0x1c($s3)
/* 0C4808 800C3C08 3C014700 */ lui $at, 0x4700
/* 0C480C 800C3C0C 00612025 */ or $a0, $v1, $at
/* 0C4810 800C3C10 4600410D */ trunc.w.s $f4, $f8
/* 0C4814 800C3C14 44052000 */ mfc1 $a1, $f4
/* 0C4818 800C3C18 0C032F12 */ jal func_800CBBB8
/* 0C481C 800C3C1C 00000000 */ nop
.L800C3C20:
/* 0C4820 800C3C20 966B0246 */ lhu $t3, 0x246($s3)
/* 0C4824 800C3C24 1160002C */ beqz $t3, .L800C3CD8
/* 0C4828 800C3C28 001560C0 */ sll $t4, $s5, 3
/* 0C482C 800C3C2C 01956021 */ addu $t4, $t4, $s5
/* 0C4830 800C3C30 000C6080 */ sll $t4, $t4, 2
/* 0C4834 800C3C34 01956021 */ addu $t4, $t4, $s5
/* 0C4838 800C3C38 000C6080 */ sll $t4, $t4, 2
/* 0C483C 800C3C3C 01956023 */ subu $t4, $t4, $s5
/* 0C4840 800C3C40 000C6080 */ sll $t4, $t4, 2
/* 0C4844 800C3C44 02CCA021 */ addu $s4, $s6, $t4
/* 0C4848 800C3C48 00008025 */ move $s0, $zero
.L800C3C4C:
/* 0C484C 800C3C4C 00102140 */ sll $a0, $s0, 5
/* 0C4850 800C3C50 02841021 */ addu $v0, $s4, $a0
/* 0C4854 800C3C54 94430050 */ lhu $v1, 0x50($v0)
/* 0C4858 800C3C58 32A600FF */ andi $a2, $s5, 0xff
/* 0C485C 800C3C5C 00067400 */ sll $t6, $a2, 0x10
/* 0C4860 800C3C60 10600018 */ beqz $v1, .L800C3CC4
/* 0C4864 800C3C64 246DFFFF */ addiu $t5, $v1, -1
/* 0C4868 800C3C68 3C010100 */ lui $at, 0x100
/* 0C486C 800C3C6C 31B9FFFF */ andi $t9, $t5, 0xffff
/* 0C4870 800C3C70 A44D0050 */ sh $t5, 0x50($v0)
/* 0C4874 800C3C74 13200006 */ beqz $t9, .L800C3C90
/* 0C4878 800C3C78 01C13025 */ or $a2, $t6, $at
/* 0C487C 800C3C7C C4500044 */ lwc1 $f16, 0x44($v0)
/* 0C4880 800C3C80 C452004C */ lwc1 $f18, 0x4c($v0)
/* 0C4884 800C3C84 46128281 */ sub.s $f10, $f16, $f18
/* 0C4888 800C3C88 10000009 */ b .L800C3CB0
/* 0C488C 800C3C8C E44A0044 */ swc1 $f10, 0x44($v0)
.L800C3C90:
/* 0C4890 800C3C90 02641821 */ addu $v1, $s3, $a0
/* 0C4894 800C3C94 C4660048 */ lwc1 $f6, 0x48($v1)
/* 0C4898 800C3C98 24180001 */ li $t8, 1
/* 0C489C 800C3C9C 02185804 */ sllv $t3, $t8, $s0
/* 0C48A0 800C3CA0 E4660044 */ swc1 $f6, 0x44($v1)
/* 0C48A4 800C3CA4 966A0246 */ lhu $t2, 0x246($s3)
/* 0C48A8 800C3CA8 014B6026 */ xor $t4, $t2, $t3
/* 0C48AC 800C3CAC A66C0246 */ sh $t4, 0x246($s3)
.L800C3CB0:
/* 0C48B0 800C3CB0 320D00FF */ andi $t5, $s0, 0xff
/* 0C48B4 800C3CB4 000D7200 */ sll $t6, $t5, 8
/* 0C48B8 800C3CB8 00CE2025 */ or $a0, $a2, $t6
/* 0C48BC 800C3CBC 0C032F06 */ jal func_800CBB88
/* 0C48C0 800C3CC0 8C450044 */ lw $a1, 0x44($v0)
.L800C3CC4:
/* 0C48C4 800C3CC4 26100001 */ addiu $s0, $s0, 1
/* 0C48C8 800C3CC8 320F00FF */ andi $t7, $s0, 0xff
/* 0C48CC 800C3CCC 29E10010 */ slti $at, $t7, 0x10
/* 0C48D0 800C3CD0 1420FFDE */ bnez $at, .L800C3C4C
/* 0C48D4 800C3CD4 01E08025 */ move $s0, $t7
.L800C3CD8:
/* 0C48D8 800C3CD8 96790244 */ lhu $t9, 0x244($s3)
/* 0C48DC 800C3CDC 1320002C */ beqz $t9, .L800C3D90
/* 0C48E0 800C3CE0 0015C0C0 */ sll $t8, $s5, 3
/* 0C48E4 800C3CE4 0315C021 */ addu $t8, $t8, $s5
/* 0C48E8 800C3CE8 0018C080 */ sll $t8, $t8, 2
/* 0C48EC 800C3CEC 0315C021 */ addu $t8, $t8, $s5
/* 0C48F0 800C3CF0 0018C080 */ sll $t8, $t8, 2
/* 0C48F4 800C3CF4 0315C023 */ subu $t8, $t8, $s5
/* 0C48F8 800C3CF8 0018C080 */ sll $t8, $t8, 2
/* 0C48FC 800C3CFC 02D8A021 */ addu $s4, $s6, $t8
/* 0C4900 800C3D00 00008025 */ move $s0, $zero
.L800C3D04:
/* 0C4904 800C3D04 00102140 */ sll $a0, $s0, 5
/* 0C4908 800C3D08 02841021 */ addu $v0, $s4, $a0
/* 0C490C 800C3D0C 94430060 */ lhu $v1, 0x60($v0)
/* 0C4910 800C3D10 32A600FF */ andi $a2, $s5, 0xff
/* 0C4914 800C3D14 00065C00 */ sll $t3, $a2, 0x10
/* 0C4918 800C3D18 10600018 */ beqz $v1, .L800C3D7C
/* 0C491C 800C3D1C 246AFFFF */ addiu $t2, $v1, -1
/* 0C4920 800C3D20 3C010400 */ lui $at, 0x400
/* 0C4924 800C3D24 314DFFFF */ andi $t5, $t2, 0xffff
/* 0C4928 800C3D28 A44A0060 */ sh $t2, 0x60($v0)
/* 0C492C 800C3D2C 11A00006 */ beqz $t5, .L800C3D48
/* 0C4930 800C3D30 01613025 */ or $a2, $t3, $at
/* 0C4934 800C3D34 C4480054 */ lwc1 $f8, 0x54($v0)
/* 0C4938 800C3D38 C444005C */ lwc1 $f4, 0x5c($v0)
/* 0C493C 800C3D3C 46044401 */ sub.s $f16, $f8, $f4
/* 0C4940 800C3D40 10000009 */ b .L800C3D68
/* 0C4944 800C3D44 E4500054 */ swc1 $f16, 0x54($v0)
.L800C3D48:
/* 0C4948 800C3D48 02641821 */ addu $v1, $s3, $a0
/* 0C494C 800C3D4C C4720058 */ lwc1 $f18, 0x58($v1)
/* 0C4950 800C3D50 240F0001 */ li $t7, 1
/* 0C4954 800C3D54 020FC804 */ sllv $t9, $t7, $s0
/* 0C4958 800C3D58 E4720054 */ swc1 $f18, 0x54($v1)
/* 0C495C 800C3D5C 966E0244 */ lhu $t6, 0x244($s3)
/* 0C4960 800C3D60 01D9C026 */ xor $t8, $t6, $t9
/* 0C4964 800C3D64 A6780244 */ sh $t8, 0x244($s3)
.L800C3D68:
/* 0C4968 800C3D68 320A00FF */ andi $t2, $s0, 0xff
/* 0C496C 800C3D6C 000A5A00 */ sll $t3, $t2, 8
/* 0C4970 800C3D70 00CB2025 */ or $a0, $a2, $t3
/* 0C4974 800C3D74 0C032F06 */ jal func_800CBB88
/* 0C4978 800C3D78 8C450054 */ lw $a1, 0x54($v0)
.L800C3D7C:
/* 0C497C 800C3D7C 26100001 */ addiu $s0, $s0, 1
/* 0C4980 800C3D80 320C00FF */ andi $t4, $s0, 0xff
/* 0C4984 800C3D84 29810010 */ slti $at, $t4, 0x10
/* 0C4988 800C3D88 1420FFDE */ bnez $at, .L800C3D04
/* 0C498C 800C3D8C 01808025 */ move $s0, $t4
.L800C3D90:
/* 0C4990 800C3D90 926D0041 */ lbu $t5, 0x41($s3)
/* 0C4994 800C3D94 11A00089 */ beqz $t5, .L800C3FBC
/* 0C4998 800C3D98 3C04F000 */ lui $a0, 0xf000
/* 0C499C 800C3D9C 0C030D7E */ jal func_800C357C_eu
/* 0C49A0 800C3DA0 00802825 */ move $a1, $a0
/* 0C49A4 800C3DA4 54400004 */ bnezl $v0, .L800C3DB8
/* 0C49A8 800C3DA8 92620040 */ lbu $v0, 0x40($s3)
/* 0C49AC 800C3DAC 10000088 */ b .L800C3FD0
/* 0C49B0 800C3DB0 A2600041 */ sb $zero, 0x41($s3)
/* 0C49B4 800C3DB4 92620040 */ lbu $v0, 0x40($s3)
.L800C3DB8:
/* 0C49B8 800C3DB8 00157080 */ sll $t6, $s5, 2
/* 0C49BC 800C3DBC 01D57021 */ addu $t6, $t6, $s5
/* 0C49C0 800C3DC0 10400004 */ beqz $v0, .L800C3DD4
/* 0C49C4 800C3DC4 000E70C0 */ sll $t6, $t6, 3
/* 0C49C8 800C3DC8 244FFFFF */ addiu $t7, $v0, -1
/* 0C49CC 800C3DCC 1000007B */ b .L800C3FBC
/* 0C49D0 800C3DD0 A26F0040 */ sb $t7, 0x40($s3)
.L800C3DD4:
/* 0C49D4 800C3DD4 01D57021 */ addu $t6, $t6, $s5
/* 0C49D8 800C3DD8 000E70C0 */ sll $t6, $t6, 3
/* 0C49DC 800C3DDC 3C19803B */ lui $t9, %hi(gSequencePlayers) # 0x803b
/* 0C49E0 800C3DE0 032EC821 */ addu $t9, $t9, $t6
/* 0C49E4 800C3DE4 8F391510 */ lw $t9, %lo(gSequencePlayers)($t9) # 0x1510($t6)
/* 0C49E8 800C3DE8 0019C7C2 */ srl $t8, $t9, 0x1f
/* 0C49EC 800C3DEC 57000074 */ bnezl $t8, .L800C3FC0
/* 0C49F0 800C3DF0 26B50001 */ addiu $s5, $s5, 1
/* 0C49F4 800C3DF4 92630041 */ lbu $v1, 0x41($s3)
/* 0C49F8 800C3DF8 001550C0 */ sll $t2, $s5, 3
/* 0C49FC 800C3DFC 01555021 */ addu $t2, $t2, $s5
/* 0C4A00 800C3E00 1860006D */ blez $v1, .L800C3FB8
/* 0C4A04 800C3E04 00009025 */ move $s2, $zero
/* 0C4A08 800C3E08 000A5080 */ sll $t2, $t2, 2
/* 0C4A0C 800C3E0C 01555021 */ addu $t2, $t2, $s5
/* 0C4A10 800C3E10 000A5080 */ sll $t2, $t2, 2
/* 0C4A14 800C3E14 01555023 */ subu $t2, $t2, $s5
/* 0C4A18 800C3E18 000A5080 */ sll $t2, $t2, 2
/* 0C4A1C 800C3E1C 02CAA021 */ addu $s4, $s6, $t2
.L800C3E20:
/* 0C4A20 800C3E20 00125880 */ sll $t3, $s2, 2
/* 0C4A24 800C3E24 028B6021 */ addu $t4, $s4, $t3
/* 0C4A28 800C3E28 8D82002C */ lw $v0, 0x2c($t4)
/* 0C4A2C 800C3E2C 3C0100F0 */ lui $at, 0xf0
/* 0C4A30 800C3E30 00412024 */ and $a0, $v0, $at
/* 0C4A34 800C3E34 3C01000F */ lui $at, 0xf
/* 0C4A38 800C3E38 00046D02 */ srl $t5, $a0, 0x14
/* 0C4A3C 800C3E3C 00418824 */ and $s1, $v0, $at
/* 0C4A40 800C3E40 31AF00FF */ andi $t7, $t5, 0xff
/* 0C4A44 800C3E44 3045FF00 */ andi $a1, $v0, 0xff00
/* 0C4A48 800C3E48 00403025 */ move $a2, $v0
/* 0C4A4C 800C3E4C 00117402 */ srl $t6, $s1, 0x10
/* 0C4A50 800C3E50 0005C202 */ srl $t8, $a1, 8
/* 0C4A54 800C3E54 30CB00FF */ andi $t3, $a2, 0xff
/* 0C4A58 800C3E58 2DE10007 */ sltiu $at, $t7, 7
/* 0C4A5C 800C3E5C 31D100FF */ andi $s1, $t6, 0xff
/* 0C4A60 800C3E60 330500FF */ andi $a1, $t8, 0xff
/* 0C4A64 800C3E64 1020004F */ beqz $at, .L800C3FA4
/* 0C4A68 800C3E68 01603025 */ move $a2, $t3
/* 0C4A6C 800C3E6C 000F6080 */ sll $t4, $t7, 2
/* 0C4A70 800C3E70 3C01800F */ lui $at, %hi(jpt_800F376C) # 0x800f
/* 0C4A74 800C3E74 002C0821 */ addu $at, $at, $t4
/* 0C4A78 800C3E78 8C2C376C */ lw $t4, %lo(jpt_800F376C)($at) # 0x376c($at)
/* 0C4A7C 800C3E7C 01800008 */ jr $t4
/* 0C4A80 800C3E80 00000000 */ nop
glabel L800C3DEC
/* 0C4A84 800C3E84 02370019 */ multu $s1, $s7
/* 0C4A88 800C3E88 240F0001 */ li $t7, 1
/* 0C4A8C 800C3E8C 240E007F */ li $t6, 127
/* 0C4A90 800C3E90 00006812 */ mflo $t5
/* 0C4A94 800C3E94 02CD8021 */ addu $s0, $s6, $t5
/* 0C4A98 800C3E98 A20F0012 */ sb $t7, 0x12($s0)
/* 0C4A9C 800C3E9C A20E000F */ sb $t6, 0xf($s0)
/* 0C4AA0 800C3EA0 10000040 */ b .L800C3FA4
/* 0C4AA4 800C3EA4 92630041 */ lbu $v1, 0x41($s3)
glabel L800C3E10
/* 0C4AA8 800C3EA8 96790248 */ lhu $t9, 0x248($s3)
/* 0C4AAC 800C3EAC 3C013000 */ lui $at, 0x3000
/* 0C4AB0 800C3EB0 00155600 */ sll $t2, $s5, 0x18
/* 0C4AB4 800C3EB4 0321C025 */ or $t8, $t9, $at
/* 0C4AB8 800C3EB8 0C030D16 */ jal func_800C3448
/* 0C4ABC 800C3EBC 030A2025 */ or $a0, $t8, $t2
/* 0C4AC0 800C3EC0 10000038 */ b .L800C3FA4
/* 0C4AC4 800C3EC4 92630041 */ lbu $v1, 0x41($s3)
glabel L800C3E30
/* 0C4AC8 800C3EC8 02370019 */ multu $s1, $s7
/* 0C4ACC 800C3ECC 00116E00 */ sll $t5, $s1, 0x18
/* 0C4AD0 800C3ED0 3C010001 */ lui $at, 1
/* 0C4AD4 800C3ED4 00005812 */ mflo $t3
/* 0C4AD8 800C3ED8 02CB8021 */ addu $s0, $s6, $t3
/* 0C4ADC 800C3EDC 960C0248 */ lhu $t4, 0x248($s0)
/* 0C4AE0 800C3EE0 018D2025 */ or $a0, $t4, $t5
/* 0C4AE4 800C3EE4 00817825 */ or $t7, $a0, $at
/* 0C4AE8 800C3EE8 0C030D16 */ jal func_800C3448
/* 0C4AEC 800C3EEC 01E02025 */ move $a0, $t7
/* 0C4AF0 800C3EF0 240E0001 */ li $t6, 1
/* 0C4AF4 800C3EF4 2419007F */ li $t9, 127
/* 0C4AF8 800C3EF8 A20E0012 */ sb $t6, 0x12($s0)
/* 0C4AFC 800C3EFC A219000F */ sb $t9, 0xf($s0)
/* 0C4B00 800C3F00 10000028 */ b .L800C3FA4
/* 0C4B04 800C3F04 92630041 */ lbu $v1, 0x41($s3)
glabel L800C3E70
/* 0C4B08 800C3F08 3C01B000 */ lui $at, (0xB0003000 >> 16) # lui $at, 0xb000
/* 0C4B0C 800C3F0C 34213000 */ ori $at, (0xB0003000 & 0xFFFF) # ori $at, $at, 0x3000
/* 0C4B10 800C3F10 0011C600 */ sll $t8, $s1, 0x18
/* 0C4B14 800C3F14 03015025 */ or $t2, $t8, $at
/* 0C4B18 800C3F18 00055C00 */ sll $t3, $a1, 0x10
/* 0C4B1C 800C3F1C 014B6025 */ or $t4, $t2, $t3
/* 0C4B20 800C3F20 0C030D16 */ jal func_800C3448
/* 0C4B24 800C3F24 01862025 */ or $a0, $t4, $a2
/* 0C4B28 800C3F28 1000001E */ b .L800C3FA4
/* 0C4B2C 800C3F2C 92630041 */ lbu $v1, 0x41($s3)
glabel L800C3E98
/* 0C4B30 800C3F30 3C01B000 */ lui $at, (0xB0004000 >> 16) # lui $at, 0xb000
/* 0C4B34 800C3F34 34214000 */ ori $at, (0xB0004000 & 0xFFFF) # ori $at, $at, 0x4000
/* 0C4B38 800C3F38 00116E00 */ sll $t5, $s1, 0x18
/* 0C4B3C 800C3F3C 01A17825 */ or $t7, $t5, $at
/* 0C4B40 800C3F40 00067400 */ sll $t6, $a2, 0x10
/* 0C4B44 800C3F44 0C030D16 */ jal func_800C3448
/* 0C4B48 800C3F48 01EE2025 */ or $a0, $t7, $t6
/* 0C4B4C 800C3F4C 10000015 */ b .L800C3FA4
/* 0C4B50 800C3F50 92630041 */ lbu $v1, 0x41($s3)
glabel L800C3EBC
/* 0C4B54 800C3F54 02370019 */ multu $s1, $s7
/* 0C4B58 800C3F58 00116600 */ sll $t4, $s1, 0x18
/* 0C4B5C 800C3F5C 3059FFFF */ andi $t9, $v0, 0xffff
/* 0C4B60 800C3F60 0000C012 */ mflo $t8
/* 0C4B64 800C3F64 02D88021 */ addu $s0, $s6, $t8
/* 0C4B68 800C3F68 920A0042 */ lbu $t2, 0x42($s0)
/* 0C4B6C 800C3F6C 000A5C00 */ sll $t3, $t2, 0x10
/* 0C4B70 800C3F70 016C6825 */ or $t5, $t3, $t4
/* 0C4B74 800C3F74 0C030D16 */ jal func_800C3448
/* 0C4B78 800C3F78 01B92025 */ or $a0, $t5, $t9
/* 0C4B7C 800C3F7C 322400FF */ andi $a0, $s1, 0xff
/* 0C4B80 800C3F80 24050001 */ li $a1, 1
/* 0C4B84 800C3F84 2406007F */ li $a2, 127
/* 0C4B88 800C3F88 0C030DD1 */ jal func_800C36C4
/* 0C4B8C 800C3F8C 00003825 */ move $a3, $zero
/* 0C4B90 800C3F90 A2000042 */ sb $zero, 0x42($s0)
/* 0C4B94 800C3F94 10000003 */ b .L800C3FA4
/* 0C4B98 800C3F98 92630041 */ lbu $v1, 0x41($s3)
glabel L800C3F04
/* 0C4B9C 800C3F9C A2650042 */ sb $a1, 0x42($s3)
/* 0C4BA0 800C3FA0 92630041 */ lbu $v1, 0x41($s3)
.L800C3FA4:
/* 0C4BA4 800C3FA4 26520001 */ addiu $s2, $s2, 1
/* 0C4BA8 800C3FA8 324F00FF */ andi $t7, $s2, 0xff
/* 0C4BAC 800C3FAC 01E3082A */ slt $at, $t7, $v1
/* 0C4BB0 800C3FB0 1420FF9B */ bnez $at, .L800C3E20
/* 0C4BB4 800C3FB4 01E09025 */ move $s2, $t7
.L800C3FB8:
/* 0C4BB8 800C3FB8 A2600041 */ sb $zero, 0x41($s3)
.L800C3FBC:
/* 0C4BBC 800C3FBC 26B50001 */ addiu $s5, $s5, 1
.L800C3FC0:
/* 0C4BC0 800C3FC0 32AE00FF */ andi $t6, $s5, 0xff
/* 0C4BC4 800C3FC4 29C10003 */ slti $at, $t6, 3
/* 0C4BC8 800C3FC8 1420FE09 */ bnez $at, .L800C37F0
/* 0C4BCC 800C3FCC 01C0A825 */ move $s5, $t6
.L800C3FD0:
/* 0C4BD0 800C3FD0 8FDF0054 */ lw $ra, 0x54($fp)
/* 0C4BD4 800C3FD4 03C0E825 */ move $sp, $fp
/* 0C4BD8 800C3FD8 D7D40028 */ ldc1 $f20, 0x28($fp)
/* 0C4BDC 800C3FDC 8FD00030 */ lw $s0, 0x30($fp)
/* 0C4BE0 800C3FE0 8FD10034 */ lw $s1, 0x34($fp)
/* 0C4BE4 800C3FE4 8FD20038 */ lw $s2, 0x38($fp)
/* 0C4BE8 800C3FE8 8FD3003C */ lw $s3, 0x3c($fp)
/* 0C4BEC 800C3FEC 8FD40040 */ lw $s4, 0x40($fp)
/* 0C4BF0 800C3FF0 8FD50044 */ lw $s5, 0x44($fp)
/* 0C4BF4 800C3FF4 8FD60048 */ lw $s6, 0x48($fp)
/* 0C4BF8 800C3FF8 8FD7004C */ lw $s7, 0x4c($fp)
/* 0C4BFC 800C3FFC 8FDE0050 */ lw $fp, 0x50($fp)
/* 0C4C00 800C4000 03E00008 */ jr $ra
/* 0C4C04 800C4004 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -27,7 +27,7 @@
.ascii "E" /* NTSC-U (North America) */
.endif
.ifdef VERSION_EU_1_1
.ifdef VERSION_EU_V11
.byte 0x01 /* Version */
.else
.byte 0x00 /* Version */

View File

@ -59,8 +59,8 @@
"bin/lib/PR/f3d/F3DEX_data.bin": {"meta":{"size": "0x800"}, "offsets": {"us":["0x0F4900", "0x0"]}},
"bin/lib/PR/f3d/F3DLX_data.bin": {"meta":{"size": "0x800"}, "offsets": {"us":["0x0F5100", "0x0"]}},
"bin/lib/PR/audio/aspMain_data.bin": {"meta":{"size": "0x300"}, "offsets": {"us":["0x0F5900", "0x0"]}},
"bin/audiobanks.us.bin": {"meta":{"size": "0x13840"}, "offsets":{"us":["0x966260","0x0"],"eu-final":["0x966380","0x0"]}},
"bin/audiobanks.eu.bin": {"meta":{"size": "0x13840"}, "offsets":{"eu-1.0":["0x966460","0x0"]}},
"bin/audiobanks.us.bin": {"meta":{"size": "0x13840"}, "offsets":{"us":["0x966260","0x0"],"eu.v11":["0x966380","0x0"]}},
"bin/audiobanks.eu.bin": {"meta":{"size": "0x13840"}, "offsets":{"eu.v10":["0x966460","0x0"]}},
"bin/audiotables.bin": {"meta":{"size": "0x24C4C0"}, "offsets":{"us":["0x979AA0","0x0"]}},
"music/00_seq_00.m64": {"meta":{"size":"0x2830"}, "offsets": {"us":["0xBC6060", "0x0"]}},
@ -94,36 +94,36 @@
"music/28_staff_roll.m64": {"meta":{"size":"0x2750"}, "offsets": {"us":["0xBE5D00", "0x0"]}},
"music/29_award_ceremony_4th_8th.m64": {"meta":{"size":"0x0C80"}, "offsets": {"us":["0xBE8450", "0x0"]}},
"music/eu/00_seq_00.m64": {"meta":{"size":"0x2910"}, "offsets": {"eu-1.0":["0xBC6260", "0x0"],"eu-final":["0xBC6180", "0x0"]}},
"music/eu/01_title_screen.m64": {"meta":{"size":"0x1B30"}, "offsets": {"eu-1.0":["0xBC8B70", "0x0"],"eu-final":["0xBC8A90", "0x0"]}},
"music/eu/02_main_menu.m64": {"meta":{"size":"0x0D60"}, "offsets": {"eu-1.0":["0xBCA6A0", "0x0"],"eu-final":["0xBCA5C0", "0x0"]}},
"music/eu/03_racways_wario_stadium.m64": {"meta":{"size":"0x1A10"}, "offsets": {"eu-1.0":["0xBCB400", "0x0"],"eu-final":["0xBCB320", "0x0"]}},
"music/eu/04_moo_moo_fame_yoshi_valley.m64": {"meta":{"size":"0x1CA0"}, "offsets": {"eu-1.0":["0xBCCE10", "0x0"],"eu-final":["0xBCCC30", "0x0"]}},
"music/eu/05_choco_mountain.m64": {"meta":{"size":"0x1F70"}, "offsets": {"eu-1.0":["0xBCEAB0", "0x0"],"eu-final":["0xBCE9D0", "0x0"]}},
"music/eu/06_koopa_troopa_beach.m64": {"meta":{"size":"0x1EE0"}, "offsets": {"eu-1.0":["0xBD0A20", "0x0"],"eu-final":["0xBD0920", "0x0"]}},
"music/eu/07_banshee_boardwalk.m64": {"meta":{"size":"0x16D0"}, "offsets": {"eu-1.0":["0xBD2900", "0x0"],"eu-final":["0xBD2800", "0x0"]}},
"music/eu/08_seq_08.m64": {"meta":{"size":"0x23D0"}, "offsets": {"eu-1.0":["0xBD3FD0", "0x0"],"eu-final":["0xBD3E50", "0x0"]}},
"music/eu/09_seq_09.m64": {"meta":{"size":"0x1800"}, "offsets": {"eu-1.0":["0xBD63A0", "0x0"],"eu-final":["0xBD6230", "0x0"]}},
"music/eu/10_kalimari_desert.m64": {"meta":{"size":"0x1AE0"}, "offsets": {"eu-1.0":["0xBD7BA0", "0x0"],"eu-final":["0xBD7A20", "0x0"]}},
"music/eu/11_start_grid_gp_vs.m64": {"meta":{"size":"0x05F0"}, "offsets": {"eu-1.0":["0xBD9680", "0x0"],"eu-final":["0xBD9500", "0x0"]}},
"music/eu/12_final_lap_fanfare.m64": {"meta":{"size":"0x03D0"}, "offsets": {"eu-1.0":["0xBD9C70", "0x0"],"eu-final":["0xBD9AF0", "0x0"]}},
"music/eu/13_finish_1st_place.m64": {"meta":{"size":"0x0360"}, "offsets": {"eu-1.0":["0xBDA040", "0x0"],"eu-final":["0xBD9DC0", "0x0"]}},
"music/eu/14_finish_2nd_4th_place.m64": {"meta":{"size":"0x02E0"}, "offsets": {"eu-1.0":["0xBDA3A0", "0x0"],"eu-final":["0xBDA140", "0x0"]}},
"music/eu/15_finish_5th_8th_place.m64": {"meta":{"size":"0x04C0"}, "offsets": {"eu-1.0":["0xBDA680", "0x0"],"eu-final":["0xBDA400", "0x0"]}},
"music/eu/16_seq_10.m64": {"meta":{"size":"0x1410"}, "offsets": {"eu-1.0":["0xBDAB40", "0x0"],"eu-final":["0xBDAA60", "0x0"]}},
"music/eu/17_star_jingle.m64": {"meta":{"size":"0x06E0"}, "offsets": {"eu-1.0":["0xBDBF50", "0x0"],"eu-final":["0xBDBE70", "0x0"]}},
"music/eu/18_rainbow_road.m64": {"meta":{"size":"0x32F0"}, "offsets": {"eu-1.0":["0xBDC630", "0x0"],"eu-final":["0xBDC4D0", "0x0"]}},
"music/eu/19_maybe_boo_item.m64": {"meta":{"size":"0x06C0"}, "offsets": {"eu-1.0":["0xBDF920", "0x0"],"eu-final":["0xBDF840", "0x0"]}},
"music/eu/20_game_over.m64": {"meta":{"size":"0x04B0"}, "offsets": {"eu-1.0":["0xBDFFE0", "0x0"],"eu-final":["0xBDFF00", "0x0"]}},
"music/eu/21_toads_turnpike.m64": {"meta":{"size":"0x1160"}, "offsets": {"eu-1.0":["0xBE0490", "0x0"],"eu-final":["0xBE0380", "0x0"]}},
"music/eu/22_start_gird_time_attack.m64": {"meta":{"size":"0x0310"}, "offsets": {"eu-1.0":["0xBE15F0", "0x0"],"eu-final":["0xBE1500", "0x0"]}},
"music/eu/23_vs_battle_results.m64": {"meta":{"size":"0x12B0"}, "offsets": {"eu-1.0":["0xBE1900", "0x0"],"eu-final":["0xBE17D0", "0x0"]}},
"music/eu/24_losing_results.m64": {"meta":{"size":"0x0600"}, "offsets": {"eu-1.0":["0xBE2BB0", "0x0"],"eu-final":["0xBE2A90", "0x0"]}},
"music/eu/25_battle_arenas.m64": {"meta":{"size":"0x16E0"}, "offsets": {"eu-1.0":["0xBE31B0", "0x0"],"eu-final":["0xBE30B0", "0x0"]}},
"music/eu/26_award_ceremony_buildup.m64": {"meta":{"size":"0x0AD0"}, "offsets": {"eu-1.0":["0xBE4890", "0x0"],"eu-final":["0xBE4780", "0x0"]}},
"music/eu/27_award_ceremony_1st_3rd.m64": {"meta":{"size":"0x0C80"}, "offsets": {"eu-1.0":["0xBE5360", "0x0"],"eu-final":["0xBE5260", "0x0"]}},
"music/eu/28_staff_roll.m64": {"meta":{"size":"0x2750"}, "offsets": {"eu-1.0":["0xBE5FE0", "0x0"],"eu-final":["0xBE5EA0", "0x0"]}},
"music/eu/29_award_ceremony_4th_8th.m64": {"meta":{"size":"0x0C80"}, "offsets": {"eu-1.0":["0xBE8730", "0x0"],"eu-final":["0xBE8680", "0x0"]}},
"music/eu/00_seq_00.m64": {"meta":{"size":"0x2910"}, "offsets": {"eu.v10":["0xBC6260", "0x0"],"eu.v11":["0xBC6180", "0x0"]}},
"music/eu/01_title_screen.m64": {"meta":{"size":"0x1B30"}, "offsets": {"eu.v10":["0xBC8B70", "0x0"],"eu.v11":["0xBC8A90", "0x0"]}},
"music/eu/02_main_menu.m64": {"meta":{"size":"0x0D60"}, "offsets": {"eu.v10":["0xBCA6A0", "0x0"],"eu.v11":["0xBCA5C0", "0x0"]}},
"music/eu/03_racways_wario_stadium.m64": {"meta":{"size":"0x1A10"}, "offsets": {"eu.v10":["0xBCB400", "0x0"],"eu.v11":["0xBCB320", "0x0"]}},
"music/eu/04_moo_moo_fame_yoshi_valley.m64": {"meta":{"size":"0x1CA0"}, "offsets": {"eu.v10":["0xBCCE10", "0x0"],"eu.v11":["0xBCCD30", "0x0"]}},
"music/eu/05_choco_mountain.m64": {"meta":{"size":"0x1F70"}, "offsets": {"eu.v10":["0xBCEAB0", "0x0"],"eu.v11":["0xBCE9D0", "0x0"]}},
"music/eu/06_koopa_troopa_beach.m64": {"meta":{"size":"0x1EE0"}, "offsets": {"eu.v10":["0xBD0A20", "0x0"],"eu.v11":["0xBD0940", "0x0"]}},
"music/eu/07_banshee_boardwalk.m64": {"meta":{"size":"0x16D0"}, "offsets": {"eu.v10":["0xBD2900", "0x0"],"eu.v11":["0xBD2820", "0x0"]}},
"music/eu/08_seq_08.m64": {"meta":{"size":"0x23D0"}, "offsets": {"eu.v10":["0xBD3FD0", "0x0"],"eu.v11":["0xBD3EF0", "0x0"]}},
"music/eu/09_seq_09.m64": {"meta":{"size":"0x1800"}, "offsets": {"eu.v10":["0xBD63A0", "0x0"],"eu.v11":["0xBD62C0", "0x0"]}},
"music/eu/10_kalimari_desert.m64": {"meta":{"size":"0x1AE0"}, "offsets": {"eu.v10":["0xBD7BA0", "0x0"],"eu.v11":["0xBD7AC0", "0x0"]}},
"music/eu/11_start_grid_gp_vs.m64": {"meta":{"size":"0x05F0"}, "offsets": {"eu.v10":["0xBD9680", "0x0"],"eu.v11":["0xBD95A0", "0x0"]}},
"music/eu/12_final_lap_fanfare.m64": {"meta":{"size":"0x03D0"}, "offsets": {"eu.v10":["0xBD9C70", "0x0"],"eu.v11":["0xBD9B90", "0x0"]}},
"music/eu/13_finish_1st_place.m64": {"meta":{"size":"0x0360"}, "offsets": {"eu.v10":["0xBDA040", "0x0"],"eu.v11":["0xBD9F60", "0x0"]}},
"music/eu/14_finish_2nd_4th_place.m64": {"meta":{"size":"0x02E0"}, "offsets": {"eu.v10":["0xBDA3A0", "0x0"],"eu.v11":["0xBDA2C0", "0x0"]}},
"music/eu/15_finish_5th_8th_place.m64": {"meta":{"size":"0x04C0"}, "offsets": {"eu.v10":["0xBDA680", "0x0"],"eu.v11":["0xBDA5A0", "0x0"]}},
"music/eu/16_seq_10.m64": {"meta":{"size":"0x1410"}, "offsets": {"eu.v10":["0xBDAB40", "0x0"],"eu.v11":["0xBDAA60", "0x0"]}},
"music/eu/17_star_jingle.m64": {"meta":{"size":"0x06E0"}, "offsets": {"eu.v10":["0xBDBF50", "0x0"],"eu.v11":["0xBDBE70", "0x0"]}},
"music/eu/18_rainbow_road.m64": {"meta":{"size":"0x32F0"}, "offsets": {"eu.v10":["0xBDC630", "0x0"],"eu.v11":["0xBDC550", "0x0"]}},
"music/eu/19_maybe_boo_item.m64": {"meta":{"size":"0x06C0"}, "offsets": {"eu.v10":["0xBDF920", "0x0"],"eu.v11":["0xBDF840", "0x0"]}},
"music/eu/20_game_over.m64": {"meta":{"size":"0x04B0"}, "offsets": {"eu.v10":["0xBDFFE0", "0x0"],"eu.v11":["0xBDFF00", "0x0"]}},
"music/eu/21_toads_turnpike.m64": {"meta":{"size":"0x1160"}, "offsets": {"eu.v10":["0xBE0490", "0x0"],"eu.v11":["0xBE03B0", "0x0"]}},
"music/eu/22_start_gird_time_attack.m64": {"meta":{"size":"0x0310"}, "offsets": {"eu.v10":["0xBE15F0", "0x0"],"eu.v11":["0xBE1510", "0x0"]}},
"music/eu/23_vs_battle_results.m64": {"meta":{"size":"0x12B0"}, "offsets": {"eu.v10":["0xBE1900", "0x0"],"eu.v11":["0xBE1820", "0x0"]}},
"music/eu/24_losing_results.m64": {"meta":{"size":"0x0600"}, "offsets": {"eu.v10":["0xBE2BB0", "0x0"],"eu.v11":["0xBE2AD0", "0x0"]}},
"music/eu/25_battle_arenas.m64": {"meta":{"size":"0x16E0"}, "offsets": {"eu.v10":["0xBE31B0", "0x0"],"eu.v11":["0xBE30D0", "0x0"]}},
"music/eu/26_award_ceremony_buildup.m64": {"meta":{"size":"0x0AD0"}, "offsets": {"eu.v10":["0xBE4890", "0x0"],"eu.v11":["0xBE47B0", "0x0"]}},
"music/eu/27_award_ceremony_1st_3rd.m64": {"meta":{"size":"0x0C80"}, "offsets": {"eu.v10":["0xBE5360", "0x0"],"eu.v11":["0xBE5280", "0x0"]}},
"music/eu/28_staff_roll.m64": {"meta":{"size":"0x2750"}, "offsets": {"eu.v10":["0xBE5FE0", "0x0"],"eu.v11":["0xBE5F00", "0x0"]}},
"music/eu/29_award_ceremony_4th_8th.m64": {"meta":{"size":"0x0C80"}, "offsets": {"eu.v10":["0xBE8730", "0x0"],"eu.v11":["0xBE8650", "0x0"]}},
"bin/gTexturePlayerSelect.rgba16.tkmk00": {"meta":{"size":"0xC00"}, "offsets": {"us":["0x7FA3C0", "0x0"]}},
"bin/gTextureOption.rgba16.tkmk00": {"meta":{"size":"0x900"}, "offsets": {"us":["0x7FAFC0", "0x0"]}},

View File

@ -7,7 +7,7 @@
# Audiobank data
.ifdef VERSION_EU_1_0
.ifdef VERSION_EU_V10
.incbin "bin/audiobanks.eu.bin"
.else
.incbin "bin/audiobanks.us.bin"

View File

@ -162,5 +162,3 @@ glabel seq_1C_end
glabel seq_1D
.incbin "music/29_award_ceremony_4th_8th.m64"
glabel seq_1D_end
# Unknown region BE90D0-BE90E0 [10]
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

View File

@ -163,6 +163,5 @@ glabel seq_1C_end
glabel seq_1D
.incbin "music/eu/29_award_ceremony_4th_8th.m64"
glabel seq_1D_end
# Unknown region BE90D0-BE90E0 [10]
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.endif

View File

@ -4,10 +4,10 @@ def add_custom_arguments(parser):
group = parser.add_mutually_exclusive_group(required=False)
group.add_argument('-u', dest='lang', action='store_const', const='us',
help="Set version to US.")
group.add_argument('-eu10', dest='lang', action='store_const', const='eu-1.0',
help="Set version to EU.")
group.add_argument('-eu11', dest='lang', action='store_const', const='eu-final',
help="Set version to EU.")
group.add_argument('-eu10', dest='lang', action='store_const', const='eu.v10',
help="Set version to EU 1.0.")
group.add_argument('-eu11', dest='lang', action='store_const', const='eu.v11',
help="Set version to EU 1.1.")
def apply(config, args):
lang = args.lang or 'us'

View File

@ -62,7 +62,7 @@ def main():
clean_assets(local_asset_file)
sys.exit(0)
all_langs = ["us", "eu-1.0", "eu-final"]
all_langs = ["us", "eu.v10", "eu.v11"]
if not langs or not all(a in all_langs for a in langs):
langs_str = " ".join("[" + lang + "]" for lang in all_langs)
print("Usage: " + sys.argv[0] + " " + langs_str)

View File

@ -23,7 +23,7 @@ versionGroup.add_argument(
"--eu10",
help="use European (1.0) version",
action="store_const",
const="eu-1.0",
const="eu.v10",
dest="version",
)
versionGroup.add_argument(
@ -31,7 +31,7 @@ versionGroup.add_argument(
"--eu11",
help="use European (1.1) version",
action="store_const",
const="eu-final",
const="eu.v11",
dest="version",
)
parser.add_argument(

View File

@ -52,9 +52,14 @@
#define DEMO_MODE_ACTIVE 1
#define DEMO_MODE_INACTIVE 0
// Float version required for matching
#ifdef VERSION_EU
#define COURSE_TIMER_ITER 0.020041665999999999 // 1 / 50
#define COURSE_TIMER_ITER_f 0.020041665999999999f // 1 / 50
#ifdef AVOID_UB
#define COURSE_TIMER_ITER_f 0.020041665999999999f // 1 / 50
#else
#define COURSE_TIMER_ITER_f 0.01666666f //! 1 / 60 - Float unchanged in EU
#endif
#else
#define COURSE_TIMER_ITER 0.01666666 // 1 / 60
#define COURSE_TIMER_ITER_f 0.01666666f // 1 / 60

View File

@ -1 +0,0 @@
a729039453210b84f17019dda3f248d5888f7690 build/eu-1.0/mk64.eu-1.0.z64

View File

@ -1 +0,0 @@
f6b5f519dd57ea59e9f013cc64816e9d273b2329 build/eu-final/mk64.eu-final.z64

1
mk64.eu.v10.sha1 Normal file
View File

@ -0,0 +1 @@
a729039453210b84f17019dda3f248d5888f7690 build/eu.v10/mk64.eu.v10.z64

1
mk64.eu.v11.sha1 Normal file
View File

@ -0,0 +1 @@
f6b5f519dd57ea59e9f013cc64816e9d273b2329 build/eu.v11/mk64.eu.v11.z64

View File

@ -656,13 +656,11 @@ SECTIONS
#else
BUILD_DIR/data/sound_data/sequences.o(.data);
#endif
. = ALIGN(0x40);
}
END_SEG(sequences)
BEGIN_SEG(instrument_sets, 0x282E80)
BEGIN_SEG(instrument_sets, .)
{
#ifdef VERSION_EU
. += 0x20;
#endif
BUILD_DIR/data/sound_data/instrument_sets.o(.data);
}
END_SEG(instrument_sets)

View File

@ -964,9 +964,6 @@ void func_800C36C4(u8 arg0, u8 arg1, u8 arg2, u8 arg3) {
D_801930D0[arg0].unk_012 = 1;
}
#ifdef VERSION_EU
GLOBAL_ASM("asm/eu_nonmatchings/func_800C3724.s")
#else
void func_800C3724(void) {
u8 seqPlayerIndex;
f32 volume;
@ -1097,6 +1094,12 @@ void func_800C3724(void) {
}
}
if (D_801930D0[seqPlayerIndex].unk_041) {
#ifdef VERSION_EU
if (func_800C357C_eu(-0x10000000, -0x10000000) == 0) {
D_801930D0[seqPlayerIndex].unk_041 = 0;
return;
}
#endif
if (D_801930D0[seqPlayerIndex].unk_040 != 0) {
D_801930D0[seqPlayerIndex].unk_040--;
continue;
@ -1156,7 +1159,6 @@ void func_800C3724(void) {
}
}
}
#endif
void func_800C3F70(void) {
u8 var_v0;
@ -1939,24 +1941,24 @@ void func_800C6108(u8 playerId) {
#ifdef VERSION_EU
if ((D_800E9EE4[playerId] > 0.5f) || (D_800E9EE4[playerId] < -0.5f))
#else
if ((D_800E9EE4[playerId] > 0.5f) || (D_800E9EE4[playerId] < 0.5f)) {
if ((D_800E9EE4[playerId] > 0.5f) || (D_800E9EE4[playerId] < 0.5f))
#endif
{
D_800E9ED4[playerId] = D_800E9EE4[playerId] * 0.25f;
D_800E9F7C[playerId].unk_0C = D_800E9EC4[playerId] + D_800E9ED4[playerId] + D_800E9F34[playerId];
}
else {
D_800E9F7C[playerId].unk_0C = D_800E9EC4[playerId] + D_800E9ED4[playerId] + D_800E9F34[playerId];
} else {
D_800E9F7C[playerId].unk_0C = D_800E9EB4[playerId] + D_800E9F34[playerId];
}
}
#ifdef VERSION_EU
if (D_800E9F7C[playerId].unk_0C < 0.0f) {
D_800E9F7C[playerId].unk_0C = 0.0f;
}
if (D_800E9F7C[playerId].unk_0C < 0.0f) {
D_800E9F7C[playerId].unk_0C = 0.0f;
}
#endif
if (D_800E9F7C[playerId].unk_0C > 4.0f) {
D_800E9F7C[playerId].unk_0C = 4.0f;
}
D_800E9EC4[playerId] = D_800E9F7C[playerId].unk_0C;
D_800E9F7C[playerId].unk_38 = (D_800E9F7C[playerId].unk_0C / 1.5f) + 0.4f;
if (D_800E9F7C[playerId].unk_0C > 4.0f) {
D_800E9F7C[playerId].unk_0C = 4.0f;
}
D_800E9EC4[playerId] = D_800E9F7C[playerId].unk_0C;
D_800E9F7C[playerId].unk_38 = (D_800E9F7C[playerId].unk_0C / 1.5f) + 0.4f;
}
void func_800C64A0(u8 playerId) {
@ -2493,8 +2495,9 @@ void func_800C76C0(u8 playerId) {
} else if ((D_800EA104 == 1) && (D_800EA0EC[playerId] == 1)) {
func_800C5278(5U);
#ifndef VERSION_EU
if (func_800C3508(1) != 0x000D) {
if (func_800C3508(1) != 0x000D)
#endif
{
D_800EA104 = 0;
func_800CA414(0x000EU, 0x0017U);
}
@ -2516,8 +2519,9 @@ void func_800C76C0(u8 playerId) {
} else if ((D_800EA104 == 2) && (D_800EA0EC[playerId] == 1)) {
func_800C5278(5U);
#ifndef VERSION_EU
if (func_800C3508(1) != 0x000E) {
if (func_800C3508(1) != 0x000E)
#endif
{
D_800EA104 = 0;
func_800CA414(0x000EU, 0x0017U);
}

View File

@ -755,11 +755,6 @@ void load_sequence_internal(u32 player, u32 seqId, s32 loadAsync) {
seqPlayer->scriptState.pc = sequenceData;
}
#ifdef VERSION_EU
GLOBAL_ASM("asm/eu_nonmatchings/audio_init.s")
#else
extern u8 _audio_banksSegmentRomStart;
extern u8 _audio_tablesSegmentRomStart;
extern u8 _instrument_setsSegmentRomStart;
@ -774,14 +769,14 @@ void audio_init(void) {
s32 i;
UNUSED s32 pad[6];
s32 j, k;
s32 aaa;
u32 sp60[2];
s32 ctlSeqCount;
u32 buf[2];
UNUSED s32 lim2, lim3;
s32 size;
u64* ptr64;
UNUSED void *data;
UNUSED s32 pad2;
UNUSED s32 one = 1;
u8* test;
void* data;
gAudioLoadLock = 0;
@ -797,21 +792,26 @@ void audio_init(void) {
}
#endif
switch (osTvType) { /* irregular */
case 0:
#ifdef VERSION_EU
D_803B7178 = 20.03042f;
gRefreshRate = 50;
#else // US
switch (osTvType) {
case TV_TYPE_PAL:
D_803B7178 = 20.03042f;
gRefreshRate = 0x00000032;
gRefreshRate = 50;
break;
case 2:
case TV_TYPE_MPAL:
D_803B7178 = 16.546f;
gRefreshRate = 0x0000003C;
gRefreshRate = 60;
break;
case 1:
case TV_TYPE_NTSC:
default:
D_803B7178 = 16.713f;
gRefreshRate = 0x0000003C;
gRefreshRate = 60;
break;
}
#endif
port_eu_init();
if (k) {} // fake
for (i = 0; i < NUMAIBUFFERS; i++) {
@ -842,42 +842,49 @@ void audio_init(void) {
gAudioResetPresetIdToLoad = 0;
gAudioResetStatus = one;
audio_shut_down_and_reset_step();
gSeqFileHeader = (ALSeqFile*) sp60;
test = &_sequencesSegmentRomStart;
audio_dma_copy_immediate(test, gSeqFileHeader, 0x00000010U);
// Load headers for sounds and sequences
gSeqFileHeader = (ALSeqFile*) buf;
data = &_sequencesSegmentRomStart;
audio_dma_copy_immediate(data, gSeqFileHeader, 0x10);
gSequenceCount = gSeqFileHeader->seqCount;
size = gSequenceCount * sizeof(ALSeqData) + 4;
size = ALIGN16(size);
gSeqFileHeader = soundAlloc(&gAudioInitPool, size);
audio_dma_copy_immediate(test, gSeqFileHeader, size);
func_800BB43C(gSeqFileHeader, test);
gAlCtlHeader = (ALSeqFile*) sp60;
test = &_audio_banksSegmentRomStart;
audio_dma_copy_immediate(test, gAlCtlHeader, 0x00000010U);
aaa = gAlCtlHeader->seqCount;
size = ALIGN16(aaa * sizeof(ALSeqData) + 4);
gAlCtlHeader = soundAlloc(&gAudioInitPool, size);
audio_dma_copy_immediate(test, gAlCtlHeader, size);
func_800BB43C(gAlCtlHeader, test);
gCtlEntries = soundAlloc(&gAudioInitPool, aaa * 0xC);
for (i = 0; i < aaa; i++) {
audio_dma_copy_immediate(gAlCtlHeader->seqArray[i].offset, sp60, 0x00000010U);
audio_dma_copy_immediate(data, gSeqFileHeader, size);
func_800BB43C(gSeqFileHeader, data);
gCtlEntries[i].numInstruments = sp60[0];
gCtlEntries[i].numDrums = sp60[1];
// Load header for CTL (instrument metadata)
gAlCtlHeader = (ALSeqFile*) buf;
data = &_audio_banksSegmentRomStart;
audio_dma_copy_immediate(data, gAlCtlHeader, 0x10);
ctlSeqCount = gAlCtlHeader->seqCount;
size = ALIGN16(ctlSeqCount * sizeof(ALSeqData) + 4);
gAlCtlHeader = soundAlloc(&gAudioInitPool, size);
audio_dma_copy_immediate(data, gAlCtlHeader, size);
func_800BB43C(gAlCtlHeader, data);
gCtlEntries = soundAlloc(&gAudioInitPool, ctlSeqCount * sizeof(struct CtlEntry));
for (i = 0; i < ctlSeqCount; i++) {
audio_dma_copy_immediate(gAlCtlHeader->seqArray[i].offset, buf, 0x10);
gCtlEntries[i].numInstruments = buf[0];
gCtlEntries[i].numDrums = buf[1];
}
gAlTbl = (ALSeqFile*) sp60;
test = &_audio_tablesSegmentRomStart;
audio_dma_copy_immediate(test, gAlTbl, 0x00000010U);
// Load header for TBL (raw sound data)
gAlTbl = (ALSeqFile*) buf;
data = &_audio_tablesSegmentRomStart;
audio_dma_copy_immediate(data, gAlTbl, 0x10);
size = gAlTbl->seqCount * sizeof(ALSeqData) + 4;
size = ALIGN16(size);
gAlTbl = soundAlloc(&gAudioInitPool, size);
audio_dma_copy_immediate(test, gAlTbl, size);
func_800BB43C(gAlTbl, test);
gAlBankSets = soundAlloc(&gAudioInitPool, 0x00000100U);
audio_dma_copy_immediate((u32) &_instrument_setsSegmentRomStart, gAlBankSets, 0x00000100U);
audio_dma_copy_immediate(data, gAlTbl, size);
func_800BB43C(gAlTbl, data);
// Load bank sets for each sequence
gAlBankSets = soundAlloc(&gAudioInitPool, 0x100);
audio_dma_copy_immediate((u8 *) &_instrument_setsSegmentRomStart, gAlBankSets, 0x100);
sound_alloc_pool_init(&gUnkPool1.pool, soundAlloc(&gAudioInitPool, (u32) D_800EA5D8), (u32) D_800EA5D8);
init_sequence_players();
gAudioLoadLock = 0x76557364;
}
#endif

View File

@ -231,7 +231,7 @@ void process_notes(void) {
}
#endif
#ifdef VERSION_EU_1_0
#ifdef VERSION_EU_V10
// Just threw these in here. They are probably wrong place and variables.
stubbed_printf("----------------------Double-Error CH: %x %f\n", &note, note->parentLayer->seqChannel);
stubbed_printf("----------------------Double-Error NT: %x\n", &note);

View File

@ -24,7 +24,7 @@ char seqplayer_unused_string02[] = "Audio:Track: Warning :SUBTRACK had been stol
char seqplayer_unused_string03[] = "SEQID %d,BANKID %d\n";
char seqplayer_unused_string04[] = "ERR:SUBTRACK %d NOT ALLOCATED\n";
char seqplayer_unused_string05[] = "Error:Same List Add\n";
#ifdef VERSION_EU_1_0
#ifdef VERSION_EU_V10
char seqplayer_unused_string_eu_01[] = "Wait Time out!\n";
#endif
char seqplayer_unused_string06[] = "Macro Level Over Error!\n";
@ -363,7 +363,7 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer* layer) {
if (!layer->continuousNotes) {
seq_channel_layer_note_decay(layer);
}
#ifdef VERSION_EU_1_0
#ifdef VERSION_EU_V10
else {
if ((layer->note != 0) && (layer == layer->note->wantedParentLayer)) {
seq_channel_layer_note_decay(layer);

View File

@ -1,4 +1,9 @@
#include <segments.h>
u16 gRandomSeed16;
#ifdef VERSION_EU
u8 randomSeedPadding[16];
#else
u8 randomSeedPadding[216];
#endif

View File

@ -6,8 +6,4 @@
* See trig_tables.c for the real file.
*/
#ifdef VERSION_EU
ALIGNED8 u8 trigTablesPadding[0x5750];
#else
ALIGNED8 u8 trigTablesPadding[0x5810];
#endif