diff --git a/README.md b/README.md
index a914f695..98de21e4 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# banjo (98.5170%)
+# banjo (98.5330%)
diff --git a/progress/progress_core2.svg b/progress/progress_core2.svg
index 5a8e426d..9df0d4d3 100644
--- a/progress/progress_core2.svg
+++ b/progress/progress_core2.svg
@@ -17,7 +17,7 @@
core2
- 97.8118%
- 97.8118%
+ 97.8397%
+ 97.8397%
\ No newline at end of file
diff --git a/progress/progress_total.svg b/progress/progress_total.svg
index a12b4d34..2c84dc0e 100644
--- a/progress/progress_total.svg
+++ b/progress/progress_total.svg
@@ -17,7 +17,7 @@
Banjo-Kazooie (us.v10)
- 98.5170%
- 98.5170%
+ 98.5330%
+ 98.5330%
\ No newline at end of file
diff --git a/src/core2/code_A5BC0.c b/src/core2/code_A5BC0.c
index 82aeacf4..8958d5c5 100644
--- a/src/core2/code_A5BC0.c
+++ b/src/core2/code_A5BC0.c
@@ -997,7 +997,7 @@ s32 func_8032F170(Cube **arg0, void **arg1){
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_A5BC0/func_8032F194.s")
#else
void func_8032F194(ActorMarker *marker, s32 position[3], Cube *cube) {
- ActorProp sp24;
+ ActorProp2 sp24;
((s32*)&sp24)[2] = ((s32*)marker->propPtr)[2];
sp24.x = (s16) position[0];
diff --git a/src/core2/modelRender.c b/src/core2/modelRender.c
index 3506b40f..5e0a471c 100644
--- a/src/core2/modelRender.c
+++ b/src/core2/modelRender.c
@@ -889,42 +889,44 @@ void func_80338BFC(Gfx **gfx, Mtx **mtx, void *arg2){
}
//CmdC_SELECTOR
-#ifndef NONMATCHING
-#pragma GLOBAL_ASM("asm/nonmatchings/core2/modelRender/func_80338CD0.s")
-#else
void func_80338CD0(Gfx **gfx, Mtx **mtx, void *arg2){
- GeoCmdC *cmd = (GeoCmdC *)arg2;
- s32 tmp_v0;
+ GeoCmdC *cmd = (GeoCmdC *) arg2;
+ s32 sub_cmd;
s32 indx;
- s32 indx2;
s32 s2;
s32 s1;
- s32* s0;
+ s32 *s0;
- tmp_v0 = cmd->unkA;
indx = D_80383658[cmd->unkA];
- if(cmd->unkA){
- if(indx == 0){
-
- }else if(indx > 0){
- if(cmd->unk8 >= indx){
- func_80339124(gfx, mtx, (s32)cmd + cmd->unkC[indx-1]);
- }
-
- }else{//L80338D5C
- s1 = -indx;
+
+ if (cmd->unkA == 0)
+ return;
+
+ if (indx == 0)
+ return;
+
+ if (0 < indx) {
+ if (indx <= cmd->unk8) {
s0 = cmd->unkC;
- for(s2 = 0; s2 < cmd->unk8; s2++){//L80338D6C
- if(s1 & 1){
- func_80339124(gfx, mtx, (s32)cmd + *s0);
- }
- s1 >>= 1;
- s0++;
- }
+ sub_cmd = cmd;
+ sub_cmd += *(s32*)(s0 + (indx - 1));
+ func_80339124(gfx, mtx, sub_cmd);
}
- }//L80338DA8
+ } else {
+ s1 = indx * (-1);
+ s0 = cmd->unkC;
+ for (s2 = 0; s2 < cmd->unk8; s2++) {
+ if (s1 & 1)
+ {
+ sub_cmd = cmd;
+ sub_cmd += s0[0];
+ func_80339124(gfx, mtx, sub_cmd);
+ }
+ s1 >>= 1;
+ s0++;
+ }
+ }
}
-#endif
//CmdD_DRAW_DISTANCE
void func_80338DCC(Gfx ** gfx, Mtx ** mtx, void *arg2){
diff --git a/symbol_addrs.us.v10.txt b/symbol_addrs.us.v10.txt
index 3e98852f..3e9a21a4 100644
--- a/symbol_addrs.us.v10.txt
+++ b/symbol_addrs.us.v10.txt
@@ -25,7 +25,6 @@ realloc = 0x80255358;
write_file_blocks = 0x80255B30;
ml_vec3f_normalize = 0x80256450;
ml_vec3f_set_length_copy = 0x802565E0;
-ml_vec3f_set_length = 0x80256A24;
ml_isNonzero_vec3f = 0x80258368;
mlAbsF = 0x80258964;
ml_vec3f_copy = 0x80258BA4;
@@ -34,13 +33,6 @@ ml_vec3f_add = 0x80258C48;
ml_vec3f_scale_copy = 0x80258CB0;
___osGetSR = 0x8025AFE0;
sns_write_payload_over_heap = 0x8025B700;
-alEvtqPostEvent = 0x8025CDFC;
-n_alSynStartVoice = 0x8025D4A0;
-n_alSynAllocVoice = 0x8025D208;
-n_alSynSetVol = 0x8025D400;
-n_alSynSetPan = 0x8025D520;
-n_alSynSetPitch = 0x8025D5A0;
-n_alSynSetFXMix = 0x8025D620;
bzero = 0x80263B40;
osWriteBackDCacheAll = 0x80263BE0;
osVirtualToPhysical = 0x802646A0;
@@ -68,10 +60,8 @@ __osProbeTLB = 0x8026B420;
bcopy = 0x8026C110;
__osSetCompare = 0x8026CA70;
osGetCount = 0x8026CE00;
-D_802758C0 = 0x802758C0; // size:0xC
framebuffer_width = 0x80276588;
framebuffer_height = 0x8027658C;
-n_syn = 0x80276E84;
__osShutdown = 0x8027712C;
__OSGlobalIntMask = 0x80277130;
__osRunQueue = 0x80277378;
@@ -82,13 +72,7 @@ __libm_qnan_f = 0x80278DB0;
D_8027BEEC = 0x8027BEEC;
__osEventStateTab = 0x80284660;
__osThreadSave = 0x80285DE0;
-leoDiskStack = 0x80285F90;//technically should have a OS_LEO_STACKSIZE or something..
-animctrl_new = 0x802872E0;
-animctrl_setIndex = 0x8028745C;
-animctrl_reset = 0x802874AC;
-_animctrl_start = 0x802875AC;
-animctrl_setDirection = 0x8028767C;
-animctrl_setDuration = 0x8028768C;
+leoDiskStack = 0x80285F90;//technically should have a OS_LEO_STACKSIZE or something...
baMarker_8028D694 = 0x8028D694;
player_getPosition = 0x8028E9A4;
_player_getPosition = 0x802984D4;
@@ -97,20 +81,15 @@ spawnQueue_func_802C3A18 = 0x802C3A18;
spawnQueue_flush = 0x802C3A38;
spawnQueue_unlock = 0x802C3BDC;
spawnQueue_lock = 0x802C3BE8;
-mapSpecificFlags_set = 0x802CADC0;
mapSpecificFlags_getAll = 0x802CAE8C;
mapSpecificFlags_setAll = 0x802CAE98;
-bitfield_isBitSet = 0x802CAF70;
mapSpecificFlags_validateCRC1 = 0x802CB00C;
mapSavestate_save = 0x802E2F2C;
mapSavestate_apply = 0x802E30AC;
getGameMode = 0x802E49FC;
vtxList_getVertices = 0x802EC450;
-_printbuffer_draw_letter = 0x802F55D8;
cube_atIndices = 0x80303384;
gctransition_8030BD98 = 0x8030BD98;
-sfxsource_setSfxId = 0x8030DA80;
-sfxsource_setSampleRate = 0x8030DABC;
gcdialog_setState = 0x8030F488;
gcdialog_update = 0x8030F990;
gczoombox_update = 0x80316EF4;
@@ -121,8 +100,6 @@ fileProgressFlag_get = 0x8031FF1C;
level_get = 0x80321900;
levelSpecificFlags_validateCRC1 = 0x8032204C;
marker_despawn = 0x803282F4;
-actor_playAnimationOnce = 0x803298AC;
-actor_loopAnimation = 0x803298D8;
actor_copy = 0x80329C40;
actors_appendToSavestate = 0x80329CBC;
strIToA = 0x8033D884;
@@ -133,13 +110,10 @@ item_empty = 0x80345F74;
itemscore_noteScores_get = 0x80346F34;
demo_readInput = 0x80349EE4;
randf = 0x8034A390;
-randf2 = 0x8034A754;
suBaddieActorArray = 0x8036E560;
D_80374CF0 = 0x80374CF0;
D_8037901C = 0x8037901C;
D_8037DCB0 = 0x8037DCB0;
-print_sCurrentPtr = 0x80380AE4;
-print_sInFontFormatMode = 0x80380B08;
__propellorTimer = 0x803912CC;
D_A00001D8 = 0xA00001D8;