src/core1: more documentation and renaming

neue Datei:     include/core1/framebufferdraw.h
        neue Datei:     include/core1/sprite.h
        umbenannt:      src/core1/code_ABB0.c -> src/core1/framebufferdraw.c
        umbenannt:      src/core1/code_13680.c -> src/core1/sprite.c
        umbenannt:      src/core1/code_3A70.c -> src/core1/stub_3A70.c
This commit is contained in:
mariob92
2024-10-15 22:14:17 +02:00
parent fe54c1d7ce
commit 05fe65d6e8
22 changed files with 306 additions and 297 deletions

View File

@@ -155,13 +155,13 @@ segments:
- [0xF40850, c, stub_2FA0] - [0xF40850, c, stub_2FA0]
- [0xF40A70, c, initthread] - [0xF40A70, c, initthread]
- [0xF40B00, c, code_3250] - [0xF40B00, c, code_3250]
- [0xF41320, c, code_3A70] - [0xF41320, c, stub_3A70]
- [0xF42F00, c, code_5650] - [0xF42F00, c, code_5650]
- [0xF44940, c, code_7090] - [0xF44940, c, code_7090]
- [0xF44b60, c, code_72B0] - [0xF44b60, c, code_72B0]
- [0xF45810, c, code_7F60] - [0xF45810, c, code_7F60]
- [0xF46500, c, code_8C50] - [0xF46500, c, code_8C50]
- [0xF475C0, c, code_ABB0] - [0xF475C0, c, framebufferdraw]
- [0xF49870, c, code_CE60] - [0xF49870, c, code_CE60]
- [0xF4AD70, c, vimgr] - [0xF4AD70, c, vimgr]
- [0xF4B4C0, c, viewport] - [0xF4B4C0, c, viewport]
@@ -169,7 +169,7 @@ segments:
- [0xF4E490, c, code_11AC0] - [0xF4E490, c, code_11AC0]
- [0xF4F890, c, rumblemanager] - [0xF4F890, c, rumblemanager]
- [0xF50010, c, stub_13640] - [0xF50010, c, stub_13640]
- [0xF50050, c, code_13680] - [0xF50050, c, sprite]
- [0xF500a0, c, overlaymanager] - [0xF500a0, c, overlaymanager]
- [0xF50360, c, code_13990] - [0xF50360, c, code_13990]
- [0xF51FC0, hasm, code_155F0] - [0xF51FC0, hasm, code_155F0]
@@ -367,13 +367,13 @@ segments:
- [0xF74A10, bin, data_37E30] #unreferenced - [0xF74A10, bin, data_37E30] #unreferenced
- [0xF74A20, .data, stub_2FA0] - [0xF74A20, .data, stub_2FA0]
- [0xF74A30, .data, code_3250] - [0xF74A30, .data, code_3250]
- [0xF74A40, .data, code_3A70] - [0xF74A40, .data, stub_3A70]
- [0xF74A80, .data, code_5650] - [0xF74A80, .data, code_5650]
- [0xF74AA0, .data, code_7090] - [0xF74AA0, .data, code_7090]
- [0xF74AB0, bin, data_37ED0] #unreferenced - [0xF74AB0, bin, data_37ED0] #unreferenced
- [0xF74AC0, .data, code_7F60] - [0xF74AC0, .data, code_7F60]
- [0xF74AD0, .data, code_8C50] - [0xF74AD0, .data, code_8C50]
- [0xF74C60, .data, code_ABB0] - [0xF74C60, .data, framebufferdraw]
- [0xF74C70, .data, code_CE60] - [0xF74C70, .data, code_CE60]
- [0xF74CE0, .data, vimgr] - [0xF74CE0, .data, vimgr]
- [0xF74DD0, .data, viewport] - [0xF74DD0, .data, viewport]
@@ -411,7 +411,7 @@ segments:
- [0xF76680, .data, io/vimodentsclan1] - [0xF76680, .data, io/vimodentsclan1]
- [0xF766D0, .rodata, code_1D00] - [0xF766D0, .rodata, code_1D00]
- [0xF766F0, .rodata, code_3250] - [0xF766F0, .rodata, code_3250]
- [0xF76700, .rodata, code_3A70] - [0xF76700, .rodata, stub_3A70]
- [0xF76710, .rodata, code_5650] - [0xF76710, .rodata, code_5650]
- [0xF76770, .rodata, code_72B0] - [0xF76770, .rodata, code_72B0]
- [0xF76790, .rodata, code_7F60] - [0xF76790, .rodata, code_7F60]
@@ -463,7 +463,7 @@ segments:
- [0xF791D0, .bss, code_7090] - [0xF791D0, .bss, code_7090]
- [0xF791D0, .bss, code_72B0] - [0xF791D0, .bss, code_72B0]
- [0xF791D0, .bss, code_8C50] - [0xF791D0, .bss, code_8C50]
- [0xF791D0, .bss, code_ABB0] - [0xF791D0, .bss, framebufferdraw]
- [0xF791D0, .bss, code_CE60] - [0xF791D0, .bss, code_CE60]
- [0xF791D0, .bss, vimgr] - [0xF791D0, .bss, vimgr]
- [0xF791D0, .bss, viewport] - [0xF791D0, .bss, viewport]

View File

@@ -155,14 +155,14 @@ segments:
- [0xF1C1F0, c, stub_2FA0] #DONE - [0xF1C1F0, c, stub_2FA0] #DONE
- [0xF1C410, c, initthread] #DONE - [0xF1C410, c, initthread] #DONE
- [0xF1C4A0, c, code_3250] #DONE - [0xF1C4A0, c, code_3250] #DONE
- [0xF1CCC0, c, code_3A70] #DONE - [0xF1CCC0, c, stub_3A70] #DONE
- [0xF1E8A0, c, code_5650] - [0xF1E8A0, c, code_5650]
- [0xF202E0, c, code_7090] #DONE - [0xF202E0, c, code_7090] #DONE
- [0xF20500, c, code_72B0] #DONE - [0xF20500, c, code_72B0] #DONE
- [0xF211B0, c, code_7F60] #DONE - [0xF211B0, c, code_7F60] #DONE
- [0xF21EA0, c, code_8C50] #DONE - [0xF21EA0, c, code_8C50] #DONE
- [0xF22F80, c, code_9D30] #DONE - [0xF22F80, c, code_9D30] #DONE
- [0xF23E00, c, code_ABB0] #DONE - [0xF23E00, c, framebufferdraw] #DONE
- [0xF260B0, c, code_CE60] #DONE - [0xF260B0, c, code_CE60] #DONE
- [0xF275B0, c, vimgr] #DONE - [0xF275B0, c, vimgr] #DONE
- [0xF27D40, c, viewport] #DONE - [0xF27D40, c, viewport] #DONE
@@ -170,7 +170,7 @@ segments:
- [0xF2AD10, c, code_11AC0] #DONE - [0xF2AD10, c, code_11AC0] #DONE
- [0xF2C160, c, rumblemanager] #DONE - [0xF2C160, c, rumblemanager] #DONE
- [0xF2C890, c, stub_13640] #DONE - [0xF2C890, c, stub_13640] #DONE
- [0xF2C8D0, c, code_13680] #DONE - [0xF2C8D0, c, sprite] #DONE
- [0xF2C920, c, overlaymanager] #DONE - [0xF2C920, c, overlaymanager] #DONE
- [0xF2CBE0, c, code_13990] - [0xF2CBE0, c, code_13990]
- [0xF2E840, hasm, code_155F0] #DONE - [0xF2E840, hasm, code_155F0] #DONE
@@ -367,14 +367,14 @@ segments:
- [0xF51080, bin, data_37E30] #unreferenced - [0xF51080, bin, data_37E30] #unreferenced
- [0xF51090, .data, stub_2FA0] - [0xF51090, .data, stub_2FA0]
- [0xF510A0, .data, code_3250] - [0xF510A0, .data, code_3250]
- [0xF510B0, .data, code_3A70] - [0xF510B0, .data, stub_3A70]
- [0xF510F0, .data, code_5650] - [0xF510F0, .data, code_5650]
- [0xF51110, .data, code_7090] - [0xF51110, .data, code_7090]
- [0xF51120, bin, data_37ED0] #unreferenced - [0xF51120, bin, data_37ED0] #unreferenced
- [0xF51130, .data, code_7F60] - [0xF51130, .data, code_7F60]
- [0xF51140, .data, code_8C50] - [0xF51140, .data, code_8C50]
- [0xF51280, .data, code_9D30] - [0xF51280, .data, code_9D30]
- [0xF51430, .data, code_ABB0] - [0xF51430, .data, framebufferdraw]
- [0xF51440, .data, code_CE60] - [0xF51440, .data, code_CE60]
- [0xF514B0, .data, vimgr] - [0xF514B0, .data, vimgr]
- [0xF51550, .data, viewport] - [0xF51550, .data, viewport]
@@ -412,7 +412,7 @@ segments:
- [0xF52DB0, .data, io/vimodentsclan1] - [0xF52DB0, .data, io/vimodentsclan1]
- [0xF52E50, .rodata, code_1D00] - [0xF52E50, .rodata, code_1D00]
- [0xF52E70, .rodata, code_3250] - [0xF52E70, .rodata, code_3250]
- [0xF52E80, .rodata, code_3A70] - [0xF52E80, .rodata, stub_3A70]
- [0xF52E90, .rodata, code_5650] - [0xF52E90, .rodata, code_5650]
- [0xF52EF0, .rodata, code_72B0] - [0xF52EF0, .rodata, code_72B0]
- [0xF52F10, .rodata, code_7F60] - [0xF52F10, .rodata, code_7F60]
@@ -464,7 +464,7 @@ segments:
- [0xF55960, .bss, code_7090] - [0xF55960, .bss, code_7090]
- [0xF55960, .bss, code_72B0] - [0xF55960, .bss, code_72B0]
- [0xF55960, .bss, code_8C50] - [0xF55960, .bss, code_8C50]
- [0xF55960, .bss, code_ABB0] - [0xF55960, .bss, framebufferdraw]
- [0xF55960, .bss, code_CE60] - [0xF55960, .bss, code_CE60]
- [0xF55960, .bss, vimgr] - [0xF55960, .bss, vimgr]
- [0xF55960, .bss, viewport] - [0xF55960, .bss, viewport]

View File

@@ -4,14 +4,18 @@
#include <ultra64.h> #include <ultra64.h>
#include "bool.h" #include "bool.h"
#include "enums.h" #include "enums.h"
#include "structs.h"
#include "prop.h"
#include "core1/eeprom.h" #include "core1/eeprom.h"
#include "core1/framebufferdraw.h"
#include "core1/lookup.h" #include "core1/lookup.h"
#include "core1/main.h" #include "core1/main.h"
#include "core1/mem.h" #include "core1/mem.h"
#include "core1/pfsmanager.h" #include "core1/pfsmanager.h"
#include "core1/rarezip.h" #include "core1/rarezip.h"
#include "core1/sns.h" #include "core1/sns.h"
#include "core1/sprite.h"
#include "core1/ucode.h" #include "core1/ucode.h"
#include "core1/viewport.h" #include "core1/viewport.h"
#include "core1/vimgr.h" #include "core1/vimgr.h"
@@ -19,6 +23,8 @@
void mlMtx_apply_vec3f(f32[3], f32[3]); void mlMtx_apply_vec3f(f32[3], f32[3]);
void func_80252C08(f32 arg0[3], f32 arg1[3], f32 scale, f32 arg3[3]); void func_80252C08(f32 arg0[3], f32 arg1[3], f32 scale, f32 arg3[3]);
void glcrc_calc_checksum(void *start, void *end, u32 checksum[2]); void glcrc_calc_checksum(void *start, void *end, u32 checksum[2]);
f32 ml_cos_deg(f32);
f32 ml_sin_deg(f32);
/* src/core1/depthbuffer.c */ /* src/core1/depthbuffer.c */

View File

@@ -0,0 +1,28 @@
#ifndef BANJO_KAZOOIE_CORE1_FRAMEBUFFERDRAW_H
#define BANJO_KAZOOIE_CORE1_FRAMEBUFFERDRAW_H
void framebufferdraw_drawSpriteCI4(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled);
void framebufferdraw_drawSpriteCI8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled);
void framebufferdraw_drawSpriteRGBA16(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_enabled);
void framebufferdraw_drawSpriteI4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enabled);
void framebufferdraw_drawSpriteIA4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enabled);
void framebufferdraw_drawSpriteI8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled);
void framebufferdraw_drawSpriteIA8(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_enabled);
void framebufferdraw_drawSpriteRGBA32(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled);
void framebufferdraw_stub1(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
void framebufferdraw_stub2(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
void framebufferdraw_drawTexture_CI4(s32 x, s32 y, void *tmem, s32 w, s32 h, bool alpha_enabled);
void framebufferdraw_draw(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled);
void framebufferdraw_func_80249DE0(s32 x, s32 y, s16 *arg2, s32 arg3, s32 arg4);
void framebufferdraw_func_80249F34(s32 x, s32 y, Struct84s* maskList, s32 maskIndex, s32 mX, s32 mY, s32 mW, s32 mH, s32 maskColor, s32 mStride, bool dim, s32 replacementColor);
void framebufferdraw_drawGrid(s32 x, s32 y, s32 arg2, s32 arg3, s32 horz_spacing, s32 vert_spacing);
void framebufferdraw_setPixel(s32 x, s32 y);
void framebufferdraw_drawOutline(s32 x, s32 y, s32 w, s32 h);
void framebufferdraw_func_8024A564(s32 x, s32 y, u16 *arg2, s32 arg3, s32 arg4, f32 arg5, f32 arg6);
void framebufferdraw_drawRect(s32 x, s32 y, s32 w, s32 h);
void framebufferdraw_resetPrimColorAndBuffer(void);
void framebufferdraw_setPrimColor(s32 r, s32 g, s32 b);
void framebufferdraw_setBufferIndex(s32 buffer_indx);
s32 framebufferdraw_getBufferIndex(void);
#endif

11
include/core1/sprite.h Normal file
View File

@@ -0,0 +1,11 @@
#ifndef BANJO_KAZOOIE_CORE1_SPRITE_H
#define BANJO_KAZOOIE_CORE1_SPRITE_H
u32 sprite_getUnk8(BKSprite *this);
u32 sprite_getUnkA(BKSprite *this);
u32 sprite_getUnk6(BKSprite *this);
u32 sprite_getUnk4(BKSprite *this);
s32 sprite_getFrameCount(BKSprite *this);
BKSpriteFrame *sprite_getFramePtr(BKSprite *this, u32 frame_id);
#endif

View File

@@ -57,8 +57,6 @@ void ml_vec3f_scale_copy(f32 dst[3], f32 src[3], f32 scale);
float gu_sqrtf(float val); float gu_sqrtf(float val);
BKSpriteFrame *spriteGetFramePtr(BKSprite *, u32);
bool baanim_isAt(f32); bool baanim_isAt(f32);
void baanim_playForDuration_once(enum asset_e anim_id, f32 duration); void baanim_playForDuration_once(enum asset_e anim_id, f32 duration);
void baanim_setEnd(f32); void baanim_setEnd(f32);

View File

@@ -7,10 +7,6 @@
#define MAIN_THREAD_STACK_SIZE 0x17F0 #define MAIN_THREAD_STACK_SIZE 0x17F0
void setBootMap(enum map_e);
void func_8023DFF0(s32);
#if VERSION == VERSION_PAL #if VERSION == VERSION_PAL
extern s32 D_80000300; extern s32 D_80000300;
#endif #endif

View File

@@ -1,33 +0,0 @@
#include <ultra64.h>
#include "core1/core1.h"
#include "functions.h"
#include "variables.h"
u32 func_802510A0(BKSprite *this){
return this->unk8;
}
u32 func_802510A8(BKSprite *this){
return this->unkA;
}
u32 func_802510B0(BKSprite *this){
return this->unk6;
}
u32 func_802510B8(BKSprite *this){
return this->unk4;
}
s32 spriteGetFrameCount(BKSprite *this){
return this->frameCnt;
}
BKSpriteFrame *spriteGetFramePtr(BKSprite *this, u32 frame)
{
BKSpriteFrame * new_var;
new_var = this->offsets[frame] + ((s32) ((*this).offsets + this->frameCnt));
return new_var;
}

View File

@@ -1,8 +1,5 @@
#include <ultra64.h> #include <ultra64.h>
#include "core1/core1.h" #include "core1/core1.h"
#include "functions.h"
#include "variables.h"
#define IA8_I(ia) ((ia) >> 4) #define IA8_I(ia) ((ia) >> 4)
#define IA8_A(ia) ((ia) & 0xF) #define IA8_A(ia) ((ia) & 0xF)
@@ -15,19 +12,12 @@
#define C5_TO_C8(c5) ((c5) << 3) #define C5_TO_C8(c5) ((c5) << 3)
#define C8_TO_C5(c5) ((c5) >> 3) #define C8_TO_C5(c5) ((c5) >> 3)
static s32 sPrimColor_r;
static s32 sPrimColor_g;
static s32 sPrimColor_b;
static s32 sBufferIndex;
void func_8024A3C8(s32 x, s32 y); void framebufferdraw_draw_CI4(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled)
void draw_prim_rect(s32 x, s32 y, s32 w, s32 h);
void set_prim_color(s32 r, s32 g, s32 b);
void func_8024A85C(s32 buffer_indx);
/* .bss */
s32 D_802806E0;
s32 D_802806E4;
s32 D_802806E8;
s32 D_802806EC;
void draw_sprite_ci4(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled)
{ {
BKSpriteFrame *sprite_frame; BKSpriteFrame *sprite_frame;
s32 palette_offset; s32 palette_offset;
@@ -46,11 +36,11 @@ void draw_sprite_ci4(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enable
s32 color1; s32 color1;
s32 color2; s32 color2;
framebuffer = gFramebuffers[D_802806EC]; framebuffer = gFramebuffers[sBufferIndex];
sprite_frame = spriteGetFramePtr(sprite, (u32) frame); sprite_frame = sprite_getFramePtr(sprite, (u32) frame);
if (!alpha_enabled){ if (!alpha_enabled){
set_prim_color(0, 0, 0x80); framebufferdraw_setPrimColor(0, 0, 0x80);
draw_prim_rect(x, y, sprite_frame->w, sprite_frame->h); framebufferdraw_drawRect(x, y, sprite_frame->w, sprite_frame->h);
} }
//align palette //align palette
@@ -101,7 +91,7 @@ void draw_sprite_ci4(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enable
} }
} }
void draw_sprite_ci8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled) void framebufferdraw_draw_CI8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled)
{ {
static s32 D_80275C00 = 0; static s32 D_80275C00 = 0;
u16 *palette; u16 *palette;
@@ -122,11 +112,11 @@ void draw_sprite_ci8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enable
if (D_80275C00 == 0xA) { if (D_80275C00 == 0xA) {
D_80275C00 = 0; D_80275C00 = 0;
} }
framebuffer = gFramebuffers[D_802806EC]; framebuffer = gFramebuffers[sBufferIndex];
sprite_frame = spriteGetFramePtr(sprite, (u32) frame); sprite_frame = sprite_getFramePtr(sprite, (u32) frame);
if (!alpha_enabled){ if (!alpha_enabled){
set_prim_color(0, 0, 0x80); framebufferdraw_setPrimColor(0, 0, 0x80);
draw_prim_rect(x, y, sprite_frame->w, sprite_frame->h); framebufferdraw_drawRect(x, y, sprite_frame->w, sprite_frame->h);
} }
palette = (u16 *) (sprite_frame + 1); palette = (u16 *) (sprite_frame + 1);
@@ -175,7 +165,7 @@ void draw_sprite_ci8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enable
} }
void draw_sprite_rgba16(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_enabled) { void framebufferdraw_draw_RGBA16(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_enabled) {
BKSpriteFrame *sprite_ptr; BKSpriteFrame *sprite_ptr;
BKSpriteTextureBlock *chunk_ptr; BKSpriteTextureBlock *chunk_ptr;
s16 *tmem; s16 *tmem;
@@ -188,11 +178,11 @@ void draw_sprite_rgba16(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_en
u16 *pxl_ptr; u16 *pxl_ptr;
u16 rgba; u16 rgba;
framebuffer_ptr = &gFramebuffers[D_802806EC][0]; framebuffer_ptr = &gFramebuffers[sBufferIndex][0];
sprite_ptr = spriteGetFramePtr(sprite, frame); sprite_ptr = sprite_getFramePtr(sprite, frame);
if (!alpha_enabled) { if (!alpha_enabled) {
set_prim_color(0, 0, 0x80); framebufferdraw_setPrimColor(0, 0, 0x80);
draw_prim_rect(x, y, sprite_ptr->w, sprite_ptr->h); framebufferdraw_drawRect(x, y, sprite_ptr->w, sprite_ptr->h);
} }
chunk_ptr = (BKSpriteTextureBlock *)(sprite_ptr + 1); chunk_ptr = (BKSpriteTextureBlock *)(sprite_ptr + 1);
for(i_chunk = 0; i_chunk < sprite_ptr->chunkCnt; i_chunk++) { for(i_chunk = 0; i_chunk < sprite_ptr->chunkCnt; i_chunk++) {
@@ -220,7 +210,7 @@ void draw_sprite_rgba16(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_en
} }
} }
void draw_sprite_i4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enabled) { void framebufferdraw_draw_I4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enabled) {
BKSpriteFrame *frame_ptr; BKSpriteFrame *frame_ptr;
BKSpriteTextureBlock *chunk_ptr; BKSpriteTextureBlock *chunk_ptr;
s16 *temp_v0; s16 *temp_v0;
@@ -235,11 +225,11 @@ void draw_sprite_i4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enable
s32 txtr_x; s32 txtr_x;
u16 *fb_pxl_ptr; u16 *fb_pxl_ptr;
framebuffer_ptr = &gFramebuffers[D_802806EC][0]; framebuffer_ptr = &gFramebuffers[sBufferIndex][0];
frame_ptr = spriteGetFramePtr(sprite, frame); frame_ptr = sprite_getFramePtr(sprite, frame);
if (!aplha_enabled) { if (!aplha_enabled) {
set_prim_color(0, 0, 0x80); framebufferdraw_setPrimColor(0, 0, 0x80);
draw_prim_rect(x, y, frame_ptr->w, frame_ptr->h); framebufferdraw_drawRect(x, y, frame_ptr->w, frame_ptr->h);
} }
chunk_ptr = (BKSpriteTextureBlock *)(frame_ptr + 1); chunk_ptr = (BKSpriteTextureBlock *)(frame_ptr + 1);
for(i_chunk = 0; i_chunk < frame_ptr->chunkCnt; i_chunk++) { for(i_chunk = 0; i_chunk < frame_ptr->chunkCnt; i_chunk++) {
@@ -273,7 +263,7 @@ void draw_sprite_i4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enable
} }
} }
void draw_sprite_ia4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enabled) { void framebufferdraw_draw_IA4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enabled) {
BKSpriteFrame *frame_ptr; BKSpriteFrame *frame_ptr;
BKSpriteTextureBlock *chunk_ptr; BKSpriteTextureBlock *chunk_ptr;
s16 *temp_v0; s16 *temp_v0;
@@ -292,11 +282,11 @@ void draw_sprite_ia4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enabl
s32 txtr_x; s32 txtr_x;
u16 *fb_pxl_ptr; u16 *fb_pxl_ptr;
framebuffer_ptr = &gFramebuffers[D_802806EC][0]; framebuffer_ptr = &gFramebuffers[sBufferIndex][0];
frame_ptr = spriteGetFramePtr(sprite, frame); frame_ptr = sprite_getFramePtr(sprite, frame);
if (!aplha_enabled) { if (!aplha_enabled) {
set_prim_color(0, 0, 0x80); framebufferdraw_setPrimColor(0, 0, 0x80);
draw_prim_rect(x, y, frame_ptr->w, frame_ptr->h); framebufferdraw_drawRect(x, y, frame_ptr->w, frame_ptr->h);
} }
chunk_ptr = (BKSpriteTextureBlock *)(frame_ptr + 1); chunk_ptr = (BKSpriteTextureBlock *)(frame_ptr + 1);
for(i_chunk = 0; i_chunk < frame_ptr->chunkCnt; i_chunk++) { for(i_chunk = 0; i_chunk < frame_ptr->chunkCnt; i_chunk++) {
@@ -334,7 +324,7 @@ void draw_sprite_ia4(s32 x, s32 y, BKSprite *sprite, s32 frame, bool aplha_enabl
} }
} }
void draw_sprite_i8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled) { void framebufferdraw_draw_I8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled) {
BKSpriteFrame *frame_ptr; BKSpriteFrame *frame_ptr;
BKSpriteTextureBlock *chunk_ptr; BKSpriteTextureBlock *chunk_ptr;
s16 *pixel_ptr; s16 *pixel_ptr;
@@ -347,11 +337,11 @@ void draw_sprite_i8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled
s32 i_chunk; s32 i_chunk;
s32 txtr_y; s32 txtr_y;
framebuffer_ptr = &gFramebuffers[D_802806EC][0]; framebuffer_ptr = &gFramebuffers[sBufferIndex][0];
frame_ptr = spriteGetFramePtr(sprite, frame); frame_ptr = sprite_getFramePtr(sprite, frame);
if (!alpha_enabled) { if (!alpha_enabled) {
set_prim_color(0, 0, 0x80); framebufferdraw_setPrimColor(0, 0, 0x80);
draw_prim_rect(x, y, frame_ptr->w, frame_ptr->h); framebufferdraw_drawRect(x, y, frame_ptr->w, frame_ptr->h);
} }
chunk_ptr = (BKSpriteTextureBlock *)(frame_ptr + 1); chunk_ptr = (BKSpriteTextureBlock *)(frame_ptr + 1);
for(i_chunk = 0; i_chunk < frame_ptr->chunkCnt; i_chunk++){ for(i_chunk = 0; i_chunk < frame_ptr->chunkCnt; i_chunk++){
@@ -382,7 +372,7 @@ void draw_sprite_i8(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled
} }
} }
void draw_sprite_ia8(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_enabled) { void framebufferdraw_draw_IA8(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_enabled) {
BKSpriteFrame *sprite_frame; BKSpriteFrame *sprite_frame;
BKSpriteTextureBlock *chunk_ptr; BKSpriteTextureBlock *chunk_ptr;
s16 *temp_a1; s16 *temp_a1;
@@ -396,12 +386,12 @@ void draw_sprite_ia8(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_enabl
s32 var_t3; s32 var_t3;
u32 temp_a2; u32 temp_a2;
framebuffer_ptr = &gFramebuffers[D_802806EC][0]; framebuffer_ptr = &gFramebuffers[sBufferIndex][0];
sprite_frame = spriteGetFramePtr(sprite, frame); sprite_frame = sprite_getFramePtr(sprite, frame);
if (!alpha_enabled) { if (!alpha_enabled) {
//draw blue rect over display area //draw blue rect over display area
set_prim_color(0, 0, 0x80); framebufferdraw_setPrimColor(0, 0, 0x80);
draw_prim_rect(x, y, sprite_frame->w, sprite_frame->h); framebufferdraw_drawRect(x, y, sprite_frame->w, sprite_frame->h);
} }
chunk_ptr = (BKSpriteTextureBlock *)(sprite_frame + 1); chunk_ptr = (BKSpriteTextureBlock *)(sprite_frame + 1);
for(i_chunk = 0; i_chunk < sprite_frame->chunkCnt; i_chunk++) { for(i_chunk = 0; i_chunk < sprite_frame->chunkCnt; i_chunk++) {
@@ -429,7 +419,7 @@ void draw_sprite_ia8(s32 x, s32 y, BKSprite *sprite, s32 frame, bool alpha_enabl
} }
} }
void draw_sprite_rgba32(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled){ void framebufferdraw_draw_RGBA32(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled){
BKSpriteTextureBlock *chunk_ptr; BKSpriteTextureBlock *chunk_ptr;
u32 *tmem; u32 *tmem;
u32 fb_value; u32 fb_value;
@@ -451,11 +441,11 @@ void draw_sprite_rgba32(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_ena
s32 blue8; s32 blue8;
framebuffer = &gFramebuffers[D_802806EC][0]; framebuffer = &gFramebuffers[sBufferIndex][0];
sprite_frame = spriteGetFramePtr(sprite, frame); sprite_frame = sprite_getFramePtr(sprite, frame);
if (!alpha_enabled) { if (!alpha_enabled) {
set_prim_color(0, 0, 0x80); framebufferdraw_setPrimColor(0, 0, 0x80);
draw_prim_rect(x, y, sprite_frame->w, sprite_frame->h); framebufferdraw_drawRect(x, y, sprite_frame->w, sprite_frame->h);
} }
chunk_ptr = (BKSpriteTextureBlock *) (sprite_frame + 1); chunk_ptr = (BKSpriteTextureBlock *) (sprite_frame + 1);
for (i_chunk = 0; i_chunk < sprite_frame->chunkCnt; i_chunk++) { for (i_chunk = 0; i_chunk < sprite_frame->chunkCnt; i_chunk++) {
@@ -503,13 +493,10 @@ void draw_sprite_rgba32(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_ena
} }
} }
void func_802499BC(s32 arg0, s32 arg1, s32 arg2, s32 arg3){//signature may have more variables passed in void framebufferdraw_stub1(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {} //signature may have more variables passed in
} void framebufferdraw_stub2(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {} //signature may have more variables passed in
void func_802499D0(s32 arg0, s32 arg1, s32 arg2, s32 arg3){//signature may have more variables passed in void framebufferdraw_drawTexture_CI4(s32 x, s32 y, void *tmem, s32 w, s32 h, bool alpha_enabled) {
}
void draw_texture_ci4(s32 x, s32 y, void *tmem, s32 w, s32 h, bool alpha_enabled){
s32 ix; s32 ix;
s32 iy; s32 iy;
s32 icolor; s32 icolor;
@@ -519,7 +506,7 @@ void draw_texture_ci4(s32 x, s32 y, void *tmem, s32 w, s32 h, bool alpha_enabled
palette_ptr = (u16*)tmem; palette_ptr = (u16*)tmem;
pixel_ptr = (u8*)&palette_ptr[0x10]; pixel_ptr = (u8*)&palette_ptr[0x10];
framebuffer_ptr = &gFramebuffers[D_802806EC][x + y * gFramebufferWidth]; framebuffer_ptr = &gFramebuffers[sBufferIndex][x + y * gFramebufferWidth];
for(iy = 0; iy < h; iy++){ for(iy = 0; iy < h; iy++){
for(ix = 0; ix < w; ix++){ for(ix = 0; ix < w; ix++){
icolor = (ix & 1)? pixel_ptr[ix/2 + (iy*w)/2] & 0xF icolor = (ix & 1)? pixel_ptr[ix/2 + (iy*w)/2] & 0xF
@@ -531,31 +518,31 @@ void draw_texture_ci4(s32 x, s32 y, void *tmem, s32 w, s32 h, bool alpha_enabled
} }
} }
void draw_sprite(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled) { void framebufferdraw_draw(s32 x, s32 y, BKSprite *sprite, s32 frame, s32 alpha_enabled) {
s16 temp_v0; s16 type;
temp_v0 = sprite->type; type = sprite->type;
if (temp_v0 & SPRITE_TYPE_I4) { if (type & SPRITE_TYPE_I4) {
draw_sprite_i4(x, y, sprite, frame, alpha_enabled); framebufferdraw_draw_I4(x, y, sprite, frame, alpha_enabled);
} else if (temp_v0 & SPRITE_TYPE_IA4) { } else if (type & SPRITE_TYPE_IA4) {
draw_sprite_ia4(x, y, sprite, frame, alpha_enabled); framebufferdraw_draw_IA4(x, y, sprite, frame, alpha_enabled);
} else if (temp_v0 & SPRITE_TYPE_I8) { } else if (type & SPRITE_TYPE_I8) {
draw_sprite_i8(x, y, sprite, frame, alpha_enabled); framebufferdraw_draw_I8(x, y, sprite, frame, alpha_enabled);
} else if (temp_v0 & SPRITE_TYPE_IA8) { } else if (type & SPRITE_TYPE_IA8) {
draw_sprite_ia8(x, y, sprite, frame, alpha_enabled); framebufferdraw_draw_IA8(x, y, sprite, frame, alpha_enabled);
} else if (temp_v0 & SPRITE_TYPE_RGBA16) { } else if (type & SPRITE_TYPE_RGBA16) {
draw_sprite_rgba16(x, y, sprite, frame, alpha_enabled); framebufferdraw_draw_RGBA16(x, y, sprite, frame, alpha_enabled);
} else if (temp_v0 & SPRITE_TYPE_RGBA32) { } else if (type & SPRITE_TYPE_RGBA32) {
draw_sprite_rgba32(x, y, sprite, frame, alpha_enabled); framebufferdraw_draw_RGBA32(x, y, sprite, frame, alpha_enabled);
} else if (temp_v0 & SPRITE_TYPE_CI4) { } else if (type & SPRITE_TYPE_CI4) {
draw_sprite_ci4(x, y, sprite, frame, alpha_enabled); framebufferdraw_draw_CI4(x, y, sprite, frame, alpha_enabled);
} else if (temp_v0 & SPRITE_TYPE_CI8) { } else if (type & SPRITE_TYPE_CI8) {
draw_sprite_ci8(x, y, sprite, frame, alpha_enabled); framebufferdraw_draw_CI8(x, y, sprite, frame, alpha_enabled);
} }
} }
//arg4 = alpha enabled? //arg4 = alpha enabled?
void func_80249DE0(s32 x, s32 y, s16 *arg2, s32 arg3, s32 arg4) { void framebufferdraw_func_80249DE0(s32 x, s32 y, s16 *arg2, s32 arg3, s32 arg4) {
s32 ix; s32 ix;
s32 var_t2; s32 var_t2;
s32 iy; s32 iy;
@@ -567,11 +554,11 @@ void func_80249DE0(s32 x, s32 y, s16 *arg2, s32 arg3, s32 arg4) {
temp_v0 = func_8033EFB0(arg2, arg3); temp_v0 = func_8033EFB0(arg2, arg3);
texture_ptr = (u16*)(temp_v0 + 1); texture_ptr = (u16*)(temp_v0 + 1);
if (*arg2 == SPRITE_TYPE_CI4) { if (*arg2 == SPRITE_TYPE_CI4) {
draw_texture_ci4(x, y, temp_v0 + 1, temp_v0->w, temp_v0->h, arg4); framebufferdraw_drawTexture_CI4(x, y, temp_v0 + 1, temp_v0->w, temp_v0->h, arg4);
return; return;
} }
//otherwise RGBA16 //otherwise RGBA16
framebuffer_ptr = &gFramebuffers[D_802806EC][x + y*gFramebufferWidth]; framebuffer_ptr = &gFramebuffers[sBufferIndex][x + y*gFramebufferWidth];
for(iy = 0; iy < temp_v0->h; iy++){ for(iy = 0; iy < temp_v0->h; iy++){
for(ix = 0; ix < temp_v0->w; ix++){ for(ix = 0; ix < temp_v0->w; ix++){
temp_v1 = *texture_ptr; temp_v1 = *texture_ptr;
@@ -587,7 +574,7 @@ void func_80249DE0(s32 x, s32 y, s16 *arg2, s32 arg3, s32 arg4) {
} }
} }
void func_80249F34(s32 x, s32 y, Struct84s* maskList, s32 maskIndex, s32 mX, s32 mY, s32 mW, s32 mH, s32 maskColor, s32 mStride, bool dim, s32 replacementColor) { void framebufferdraw_func_80249F34(s32 x, s32 y, Struct84s* maskList, s32 maskIndex, s32 mX, s32 mY, s32 mW, s32 mH, s32 maskColor, s32 mStride, bool dim, s32 replacementColor) {
BKSpriteTextureBlock* mask_texture; BKSpriteTextureBlock* mask_texture;
s32 ix; s32 ix;
s32 iy; s32 iy;
@@ -596,7 +583,7 @@ void func_80249F34(s32 x, s32 y, Struct84s* maskList, s32 maskIndex, s32 mX, s32
mask_texture = func_8033EFB0(maskList, maskIndex); mask_texture = func_8033EFB0(maskList, maskIndex);
mask_ptr = (u16*)(mask_texture + 1) + mX + mY * mask_texture->w; mask_ptr = (u16*)(mask_texture + 1) + mX + mY * mask_texture->w;
color_ptr = &gFramebuffers[D_802806EC][x + y * gFramebufferWidth]; color_ptr = &gFramebuffers[sBufferIndex][x + y * gFramebufferWidth];
for(iy = 0; iy < mH; iy += mStride){ for(iy = 0; iy < mH; iy += mStride){
for(ix = 0; ix < mW; ix++){ for(ix = 0; ix < mW; ix++){
@@ -618,122 +605,104 @@ void func_80249F34(s32 x, s32 y, Struct84s* maskList, s32 maskIndex, s32 mX, s32
} }
} }
//fill framebuffer with vert and horz lines void framebufferdraw_drawGrid(s32 x, s32 y, s32 arg2, s32 arg3, s32 horz_spacing, s32 vert_spacing) {
void func_8024A284(s32 x, s32 y, s32 arg2, s32 arg3, s32 horz_spacing, s32 vert_spacing) { s32 x1;
s32 var_s2; s32 y1;
s32 var_s3;
for(var_s2 = 0; var_s2 < gFramebufferWidth; var_s2 += horz_spacing){ for (x1 = 0; x1 < gFramebufferWidth; x1 += horz_spacing) {
for(var_s3 = 0; var_s3 < gFramebufferHeight; var_s3++){ for (y1 = 0; y1 < gFramebufferHeight; y1++) {
func_8024A3C8(x + var_s2, y + var_s3); framebufferdraw_setPixel(x + x1, y + y1);
} }
} }
for(var_s3 = 0; var_s3 < gFramebufferHeight; var_s3 += vert_spacing) { for (y1 = 0; y1 < gFramebufferHeight; y1 += vert_spacing) {
for(var_s2 = 0; var_s2 < gFramebufferWidth; var_s2++){ for (x1 = 0; x1 < gFramebufferWidth; x1++) {
func_8024A3C8(x + var_s2, y + var_s3); framebufferdraw_setPixel(x + x1, y + y1);
} }
} }
} }
//fills in pixel in frame buffer with D_802806E0 color void framebufferdraw_setPixel(s32 x, s32 y) {
void func_8024A3C8(s32 x, s32 y) { if ((x >= 0) && (x < gFramebufferWidth) && (y >= 0) && (y < gFramebufferHeight)) {
s32 temp_v0; gFramebuffers[sBufferIndex][x + y * gFramebufferWidth] = _SHIFTL(sPrimColor_r >> 3, 11, 5) | _SHIFTL(sPrimColor_g >> 3, 6, 5) | _SHIFTL(sPrimColor_b >> 3, 1, 5) | _SHIFTL(1, 0, 1);
if (x >= 0) {
if ((x < gFramebufferWidth) && (y >= 0) && (y < gFramebufferHeight)) {
gFramebuffers[D_802806EC][x + y * gFramebufferWidth] = _SHIFTL(D_802806E0 >> 3, 11, 5) | _SHIFTL(D_802806E4 >> 3, 6, 5) | _SHIFTL(D_802806E8 >> 3, 1, 5) | _SHIFTL(1, 0, 1);
}
} }
} }
//draw rectangular outline void framebufferdraw_drawOutline(s32 x, s32 y, s32 w, s32 h) {
void func_8024A490(s32 x, s32 y, s32 w, s32 h) { s32 x1;
s32 var_s1;
for(var_s1 = 0; var_s1 < w; var_s1++){ for (x1 = 0; x1 < w; x1++) {
func_8024A3C8(x + var_s1, y); framebufferdraw_setPixel(x + x1, y);
func_8024A3C8(x + var_s1, y + h - 1); framebufferdraw_setPixel(x + x1, y + h - 1);
} }
for(var_s1 = 1; var_s1 < h - 1; var_s1++){
func_8024A3C8(x, y + var_s1); for (x1 = 1; x1 < h - 1; x1++) {
func_8024A3C8(x + w - 1, y + var_s1); framebufferdraw_setPixel(x, y + x1);
framebufferdraw_setPixel(x + w - 1, y + x1);
} }
} }
void func_8024A564(s32 x, s32 y, u16 *arg2, s32 arg3, s32 arg4, f32 arg5, f32 arg6) void framebufferdraw_func_8024A564(s32 x, s32 y, u16 *arg2, s32 arg3, s32 arg4, f32 arg5, f32 arg6) {
{ s32 temp_lo;
s32 temp_a2; s32 var_a2;
s32 temp_a2_2; s32 new_var;
s32 temp_a2_3; f32 new_var3;
s32 temp_f6; s32 new_var2;
s32 temp_f6_2; s32 var_t1;
s32 temp_lo; s32 var_t3;
s32 temp_t5; s32 var_v0;
s32 var_a0; s32 fb_width;
s32 var_a2; s16 *pixel;
s32 new_var; s16 *var_t2;
f32 new_var3;
s32 new_var2; var_v0 = 0;
s32 var_t1; fb_width = gFramebufferWidth;
s32 var_t3; pixel = &gFramebuffers[sBufferIndex][x + (y * gFramebufferWidth)];
s32 var_v0; new_var = (s32) (((f64) (256.0f / (new_var3 = arg6))) + 0.5);
s32 var_v1; new_var2 = (s32) (((f64) (256.0f / arg5)) + 0.5);
u16 temp_t8;
s16 *var_t0; for (var_t1 = (arg4 * arg6) + 0.5; var_t1 != 0; var_t1--)
s16 *var_t2;
var_v0 = 0;
var_v1 = gFramebufferWidth;
var_t0 = &gFramebuffers[D_802806EC][x + (y * gFramebufferWidth)];
new_var = (s32) (((f64) (256.0f / (new_var3 = arg6))) + 0.5);
new_var2 = (s32) (((f64) (256.0f / arg5)) + 0.5);
for (var_t1 = (arg4 * arg6) + 0.5; var_t1 != 0; var_t1--)
{
temp_lo = (arg3 * arg5) + 0.5;
var_a2 = ((var_v0 >> 8) * arg3) << 8;
var_t2 = var_t0;
for (var_t3 = temp_lo; var_t3 != 0; var_t3--)
{ {
*var_t2 = arg2[var_a2 >> 8]; temp_lo = (arg3 * arg5) + 0.5;
var_a2 += new_var2; var_a2 = ((var_v0 >> 8) * arg3) << 8;
var_t2++; var_t2 = pixel;
for (var_t3 = temp_lo; var_t3 != 0; var_t3--) {
*var_t2 = arg2[var_a2 >> 8];
var_a2 += new_var2;
var_t2++;
}
pixel += gFramebufferWidth;
var_v0 += new_var;
} }
var_t0 += gFramebufferWidth;
var_v0 += new_var;
}
} }
//fills in rectangle in frame buffer with D_802806E0 color void framebufferdraw_drawRect(s32 x, s32 y, s32 w, s32 h) {
void draw_prim_rect(s32 x, s32 y, s32 w, s32 h) { s32 y1, x1;
s32 var_s0;
s32 var_s1;
s32 var_s4;
var_s4 = 0; for (x1 = 0; x1 < w; x1++) {
for(var_s4 = 0; var_s4 < w; var_s4++) { for (y1 = 0; y1 < h; y1++) {
for(var_s0 = 0; var_s0 < h; var_s0++){ framebufferdraw_setPixel(x + x1, y + y1);
func_8024A3C8(x + var_s4, y + var_s0);
} }
} }
} }
void func_8024A810(void){ void framebufferdraw_resetPrimColorAndBuffer(void) {
set_prim_color(0, 0x80, 0); framebufferdraw_setPrimColor(0, 128, 0);
func_8024A85C(0); framebufferdraw_setBufferIndex(0);
} }
void set_prim_color(s32 r, s32 g, s32 b){ void framebufferdraw_setPrimColor(s32 r, s32 g, s32 b) {
D_802806E0 = r; sPrimColor_r = r;
D_802806E4 = g; sPrimColor_g = g;
D_802806E8 = b; sPrimColor_b = b;
} }
void func_8024A85C(s32 buffer_indx){ void framebufferdraw_setBufferIndex(s32 buffer_indx) {
D_802806EC = buffer_indx; sBufferIndex = buffer_indx;
} }
s32 func_8024A868(void){ s32 framebufferdraw_getBufferIndex(void) {
return D_802806EC; return sBufferIndex;
} }

28
src/core1/sprite.c Normal file
View File

@@ -0,0 +1,28 @@
#include <ultra64.h>
#include "core1/core1.h"
u32 sprite_getUnk8(BKSprite *this) {
return this->unk8;
}
u32 sprite_getUnkA(BKSprite *this) {
return this->unkA;
}
u32 sprite_getUnk6(BKSprite *this) {
return this->unk6;
}
u32 sprite_getUnk4(BKSprite *this) {
return this->unk4;
}
s32 sprite_getFrameCount(BKSprite *this) {
return this->frameCnt;
}
BKSpriteFrame *sprite_getFramePtr(BKSprite *this, u32 frame_id) {
BKSpriteFrame *sprite_frame;
sprite_frame = (BKSpriteFrame *) (this->offsets[frame_id] + ((s32) ((*this).offsets + this->frameCnt)));
return sprite_frame;
}

View File

@@ -1,13 +1,9 @@
#include <ultra64.h> #include <ultra64.h>
#include "core1/core1.h" #include "core1/core1.h"
#include "functions.h"
#include "variables.h"
// all functions in this file are unsued
extern f32 ml_cos_deg(f32); static Gfx sGfxSublist[] = {
extern f32 ml_sin_deg(f32);
Gfx D_80275880[] = {
gsSPClearGeometryMode(G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH | G_CLIPPING | 0x0060CD00), gsSPClearGeometryMode(G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH | G_CLIPPING | 0x0060CD00),
gsSPTexture(0, 0, 0, G_TX_RENDERTILE, G_OFF), gsSPTexture(0, 0, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(), gsDPPipeSync(),
@@ -18,34 +14,37 @@ Gfx D_80275880[] = {
gsSPEndDisplayList() gsSPEndDisplayList()
}; };
/* .code */ void func_80241490(Gfx **gfx, Vtx **vtx, s32 arg2[3], s32 arg3[3], s32 arg4[3], s32 arg5[3], bool cull_front, s32 arg7) {
void func_80241490(Gfx **gfx, Vtx **vtx, s32 arg2[3], s32 arg3[3], s32 arg4[3], s32 arg5[3], s32 arg6, s32 arg7) { s32 vp_position[3];
s32 spB4[3];
s32 var_a0; s32 var_a0;
s32 var_v0; s32 var_v0;
s32 var_v1; s32 var_v1;
s32 sp78[3][4]; s32 colors[3][4];
s32 i; s32 i;
viewport_getPosition_vec3w(spB4); viewport_getPosition_vec3w(vp_position);
gSPDisplayList((*gfx)++, D_80275880);
if (arg6 != 0) { gSPDisplayList((*gfx)++, sGfxSublist);
if (cull_front != FALSE) {
gSPSetGeometryMode((*gfx)++, G_ZBUFFER | G_CULL_BACK); gSPSetGeometryMode((*gfx)++, G_ZBUFFER | G_CULL_BACK);
} else { } else {
gSPSetGeometryMode((*gfx)++, G_ZBUFFER | G_CULL_FRONT); gSPSetGeometryMode((*gfx)++, G_ZBUFFER | G_CULL_FRONT);
} }
gSPVertex((*gfx)++, *vtx, 8, 0); gSPVertex((*gfx)++, *vtx, 8, 0);
for(i = 0; i < 2; i++){ for(i = 0; i < 2; i++){
for(var_a0 = 0; var_a0 < 2; var_a0++){ for(var_a0 = 0; var_a0 < 2; var_a0++){
for(var_v1 = 0; var_v1 < 2; var_v1++){ for(var_v1 = 0; var_v1 < 2; var_v1++){
var_v0 = (var_v1 == 0) ? arg2[0] : arg3[0]; var_v0 = (var_v1 == 0) ? arg2[0] : arg3[0];
(*vtx)->v.ob[0] = (s16) (var_v0 - spB4[0]); (*vtx)->v.ob[0] = (s16) (var_v0 - vp_position[0]);
var_v0 = (i == 0) ? arg2[1] : arg3[1]; var_v0 = (i == 0) ? arg2[1] : arg3[1];
(*vtx)->v.ob[1] = (s16) (var_v0 - spB4[1]); (*vtx)->v.ob[1] = (s16) (var_v0 - vp_position[1]);
var_v0 = (var_a0 == 0) ? arg2[2] : arg3[2]; var_v0 = (var_a0 == 0) ? arg2[2] : arg3[2];
(*vtx)->v.ob[2] = (s16) (var_v0 - spB4[2]); (*vtx)->v.ob[2] = (s16) (var_v0 - vp_position[2]);
(*vtx)->v.flag = 0; (*vtx)->v.flag = 0;
(*vtx)->v.tc[0] = 0; (*vtx)->v.tc[0] = 0;
@@ -62,50 +61,50 @@ void func_80241490(Gfx **gfx, Vtx **vtx, s32 arg2[3], s32 arg3[3], s32 arg4[3],
if (arg7 != 0) { if (arg7 != 0) {
for(i = 0; i < 3; i++){ for(i = 0; i < 3; i++){
for(var_v1 = 0; var_v1 < 3; var_v1++){ for(var_v1 = 0; var_v1 < 3; var_v1++){
sp78[i][var_v1] = (arg4[var_v1] * arg5[i]) / 255; colors[i][var_v1] = (arg4[var_v1] * arg5[i]) / 255;
} }
sp78[i][3] = 0xFF; colors[i][3] = 0xFF;
} }
} else { } else {
for(i = 0; i < 3; i++){ for(i = 0; i < 3; i++){
for(var_v1 = 0; var_v1 < 3; var_v1++){ for(var_v1 = 0; var_v1 < 3; var_v1++){
sp78[i][var_v1] = arg4[var_v1]; colors[i][var_v1] = arg4[var_v1];
} }
sp78[i][3] = arg5[i]; colors[i][3] = arg5[i];
} }
} }
gDPPipeSync((*gfx)++); gDPPipeSync((*gfx)++);
gDPSetPrimColor((*gfx)++, 0, 0, sp78[0][0], sp78[0][1], sp78[0][2], sp78[0][3]); gDPSetPrimColor((*gfx)++, 0, 0, colors[0][0], colors[0][1], colors[0][2], colors[0][3]);
gSP2Triangles((*gfx)++, 7, 3, 5, 0, 5, 3, 1, 0); gSP2Triangles((*gfx)++, 7, 3, 5, 0, 5, 3, 1, 0);
gSP1Quadrangle((*gfx)++, 6, 4, 0, 2, 0); gSP1Quadrangle((*gfx)++, 6, 4, 0, 2, 0);
gDPPipeSync((*gfx)++); gDPPipeSync((*gfx)++);
gDPSetPrimColor((*gfx)++, 0, 0, sp78[1][0], sp78[1][1], sp78[1][2], sp78[1][3]); gDPSetPrimColor((*gfx)++, 0, 0, colors[1][0], colors[1][1], colors[1][2], colors[1][3]);
gSP1Quadrangle((*gfx)++, 7, 6, 2, 3, 0); gSP1Quadrangle((*gfx)++, 7, 6, 2, 3, 0);
gSP2Triangles((*gfx)++, 4, 5, 0, 0, 5, 1, 0, 0); gSP2Triangles((*gfx)++, 4, 5, 0, 0, 5, 1, 0, 0);
gDPPipeSync((*gfx)++); gDPPipeSync((*gfx)++);
gDPSetPrimColor((*gfx)++, 0, 0, sp78[2][0], sp78[2][1], sp78[2][2], sp78[2][3]); gDPSetPrimColor((*gfx)++, 0, 0, colors[2][0], colors[2][1], colors[2][2], colors[2][3]);
gSP1Quadrangle((*gfx)++, 5, 4, 6, 7, 0); gSP1Quadrangle((*gfx)++, 5, 4, 6, 7, 0);
gSP2Triangles((*gfx)++, 0, 1, 2, 0, 1, 3, 2, 0); gSP2Triangles((*gfx)++, 0, 1, 2, 0, 1, 3, 2, 0);
} }
void func_80241928(Gfx** gfx, Vtx** vtx, s32 arg2[3], s32 arg3, s32 arg4[3]) { void func_80241928(Gfx** gfx, Vtx** vtx, s32 arg2[3], s32 arg3, s32 arg4[3]) {
s32 spB4[3]; s32 vp_position[3];
f32 var_f26; f32 var_f26;
s32 var_fp; s32 var_fp;
s32 var_s0; s32 var_s0;
viewport_getPosition_vec3w(spB4); viewport_getPosition_vec3w(vp_position);
for(var_fp = 0; var_fp < 4; var_fp++){ for(var_fp = 0; var_fp < 4; var_fp++){
gSPDisplayList((*gfx)++, D_80275880); gSPDisplayList((*gfx)++, sGfxSublist);
gSPSetGeometryMode((*gfx)++, G_ZBUFFER); gSPSetGeometryMode((*gfx)++, G_ZBUFFER);
gSPVertex((*gfx)++, *vtx, 10, 0); gSPVertex((*gfx)++, *vtx, 10, 0);
for(var_f26 = 0; var_f26 <= 90; var_f26 += 22.5){ for(var_f26 = 0; var_f26 <= 90; var_f26 += 22.5){
for(var_s0 = -300; var_s0 < 900; var_s0 += 600){ for(var_s0 = -300; var_s0 < 900; var_s0 += 600){
(*vtx)->v.ob[0] = ((ml_sin_deg(var_fp*90 + var_f26) * arg3) + (f32) arg2[0]) - spB4[0]; (*vtx)->v.ob[0] = ((ml_sin_deg(var_fp*90 + var_f26) * arg3) + (f32) arg2[0]) - vp_position[0];
(*vtx)->v.ob[1] = ((var_s0 / 2) + arg2[1]) - spB4[1]; (*vtx)->v.ob[1] = ((var_s0 / 2) + arg2[1]) - vp_position[1];
(*vtx)->v.ob[2] = ((ml_cos_deg(var_fp*90 + var_f26) * arg3) + (f32) arg2[2]) - spB4[2]; (*vtx)->v.ob[2] = ((ml_cos_deg(var_fp*90 + var_f26) * arg3) + (f32) arg2[2]) - vp_position[2];
(*vtx)->v.tc[0] = 0; (*vtx)->v.tc[0] = 0;
(*vtx)->v.tc[1] = 0; (*vtx)->v.tc[1] = 0;
(*vtx)->v.cn[0] = 0; (*vtx)->v.cn[0] = 0;
@@ -164,7 +163,7 @@ void func_802424D4(Gfx **gfx, Mtx **mtx, Vtx **vtx, f32 arg3[3], f32 arg4[3], f3
sp68[2] *= arg5; sp68[2] *= arg5;
viewport_getPosition_vec3f(sp5C); viewport_getPosition_vec3f(sp5C);
gSPDisplayList((*gfx)++, D_80275880); gSPDisplayList((*gfx)++, sGfxSublist);
gSPSetGeometryMode((*gfx)++, G_ZBUFFER); gSPSetGeometryMode((*gfx)++, G_ZBUFFER);
gSPVertex((*gfx)++, *vtx, 8, 0); gSPVertex((*gfx)++, *vtx, 8, 0);
for( var_a0 = 0; var_a0 < 2; var_a0++){ for( var_a0 = 0; var_a0 < 2; var_a0++){
@@ -203,51 +202,58 @@ void func_802424D4(Gfx **gfx, Mtx **mtx, Vtx **vtx, f32 arg3[3], f32 arg4[3], f3
} }
} }
void func_80242BE8(Gfx **gfx, Vtx **arg1, f32 arg2[2][2][2][3], s32 arg3[3], s32 *arg4, s32 arg5) void func_80242BE8(Gfx **gfx, Vtx **vtx, f32 arg2[2][2][2][3], s32 color[3], s32 alpha_values[3], s32 cull_back)
{ {
f32 sp84[3]; f32 vp_position[3];
#define var_v0 ((f32*)((u8*)arg2 + (i << 2) * sizeof(f32[3]) + (j << 1) * sizeof(f32[3]) + k * sizeof(f32[3]))) #define var_v0 ((f32*)((u8*)arg2 + (i << 2) * sizeof(f32[3]) + (j << 1) * sizeof(f32[3]) + k * sizeof(f32[3])))
s32 i; s32 i;
s32 j; s32 j;
s32 k; s32 k;
viewport_getPosition_vec3f(sp84);
gSPDisplayList((*gfx)++, D_80275880); viewport_getPosition_vec3f(vp_position);
if (arg5){
gSPDisplayList((*gfx)++, sGfxSublist);
if (cull_back){
gSPSetGeometryMode((*gfx)++, G_CULL_BACK); gSPSetGeometryMode((*gfx)++, G_CULL_BACK);
} else { } else {
gSPSetGeometryMode((*gfx)++, G_CULL_FRONT); gSPSetGeometryMode((*gfx)++, G_CULL_FRONT);
} }
gSPVertex((*gfx)++, *arg1, 8, 0);
for(i = 0; i < 2; i++){ gSPVertex((*gfx)++, *vtx, 8, 0);
for(j = 0; j < 2; j++){
for(k = 0; k < 2; k++){ for (i = 0; i < 2; i++) {
(*arg1)->v.ob[0] = var_v0[0] - sp84[0]; for (j = 0; j < 2; j++) {
(*arg1)->v.ob[1] = var_v0[1] - sp84[1]; for (k = 0; k < 2; k++) {
(*arg1)->v.ob[2] = var_v0[2] - sp84[2]; (*vtx)->v.ob[0] = var_v0[0] - vp_position[0];
(*arg1)->v.flag = 0; (*vtx)->v.ob[1] = var_v0[1] - vp_position[1];
(*arg1)->v.tc[0] = 0; (*vtx)->v.ob[2] = var_v0[2] - vp_position[2];
(*arg1)->v.tc[1] = 0; (*vtx)->v.flag = 0;
(*arg1)->v.cn[0] = 0; (*vtx)->v.tc[0] = 0;
(*arg1)->v.cn[1] = 0; (*vtx)->v.tc[1] = 0;
(*arg1)->v.cn[2] = 0; (*vtx)->v.cn[0] = 0;
(*arg1)->v.cn[3] = 0; (*vtx)->v.cn[1] = 0;
(*arg1)++; (*vtx)->v.cn[2] = 0;
(*vtx)->v.cn[3] = 0;
(*vtx)++;
} }
} }
} }
#undef var_v0 #undef var_v0
gDPPipeSync((*gfx)++); gDPPipeSync((*gfx)++);
gDPSetPrimColor((*gfx)++, 0, 0, arg3[0], arg3[1], arg3[2], arg4[0]); gDPSetPrimColor((*gfx)++, 0, 0, color[0], color[1], color[2], alpha_values[0]);
gSP2Triangles((*gfx)++, 7, 3, 5, 0, 5, 3, 1, 0); gSP2Triangles((*gfx)++, 7, 3, 5, 0, 5, 3, 1, 0);
gSP1Quadrangle((*gfx)++, 6, 4, 0, 2, 0); gSP1Quadrangle((*gfx)++, 6, 4, 0, 2, 0);
gDPPipeSync((*gfx)++); gDPPipeSync((*gfx)++);
gDPSetPrimColor((*gfx)++, 0, 0, arg3[0], arg3[1], arg3[2], arg4[1]); gDPSetPrimColor((*gfx)++, 0, 0, color[0], color[1], color[2], alpha_values[1]);
gSP1Quadrangle((*gfx)++, 7, 6, 2, 3, 0); gSP1Quadrangle((*gfx)++, 7, 6, 2, 3, 0);
gSP2Triangles((*gfx)++, 4, 5, 0, 0, 5, 1, 0, 0); gSP2Triangles((*gfx)++, 4, 5, 0, 0, 5, 1, 0, 0);
gDPPipeSync((*gfx)++); gDPPipeSync((*gfx)++);
gDPSetPrimColor((*gfx)++, 0, 0, arg3[0], arg3[1], arg3[2], arg4[2]); gDPSetPrimColor((*gfx)++, 0, 0, color[0], color[1], color[2], alpha_values[2]);
gSP1Quadrangle((*gfx)++, 5, 4, 6, 7, 0); gSP1Quadrangle((*gfx)++, 5, 4, 6, 7, 0);
gSP2Triangles((*gfx)++, 0, 1, 2, 0, 1, 3, 2, 0); gSP2Triangles((*gfx)++, 0, 1, 2, 0, 1, 3, 2, 0);
} }

View File

@@ -29,8 +29,8 @@ void func_802E31D0(s32 arg0) {
temp_v0 = D_8037E8C0.unk14; temp_v0 = D_8037E8C0.unk14;
if ((temp_v0 == 0) || (temp_v0 == 3)) { if ((temp_v0 == 0) || (temp_v0 == 3)) {
func_8024A85C(arg0); framebufferdraw_setBufferIndex(arg0);
func_80249DE0(0, 0, D_8037E8C0.unkC, 0, 0); framebufferdraw_func_80249DE0(0, 0, D_8037E8C0.unkC, 0, 0);
osWritebackDCache(gFramebuffers[arg0], (s32) ((f32) gFramebufferWidth * (f32) gFramebufferHeight * sizeof(s16))); osWritebackDCache(gFramebuffers[arg0], (s32) ((f32) gFramebufferWidth * (f32) gFramebufferHeight * sizeof(s16)));
} }
} }

View File

@@ -166,7 +166,7 @@ void func_802E39D0(Gfx **gdl, Mtx **mptr, Vtx **vptr, s32 framebuffer_idx, s32 a
} }
void func_802E3BD0(s32 frame_buffer_indx){ void func_802E3BD0(s32 frame_buffer_indx){
func_8024A85C(frame_buffer_indx); framebufferdraw_setBufferIndex(frame_buffer_indx);
} }
void func_802E3BF0(void){ void func_802E3BF0(void){

View File

@@ -121,7 +121,7 @@ BKSpriteTextureBlock **func_802E4D8C(BKSprite *sprite) {
s32 i; s32 i;
s32 chunk_size; s32 chunk_size;
frame = spriteGetFramePtr(sprite, 0); frame = sprite_getFramePtr(sprite, 0);
chunkPtrArray = (BKSpriteTextureBlock **)malloc((frame->chunkCnt + 1)*4); chunkPtrArray = (BKSpriteTextureBlock **)malloc((frame->chunkCnt + 1)*4);
chunk = (BKSpriteTextureBlock *)(frame + 1); chunk = (BKSpriteTextureBlock *)(frame + 1);
for (i = 0; i < frame->chunkCnt; i++) { for (i = 0; i < frame->chunkCnt; i++) {
@@ -530,7 +530,7 @@ void func_802E6820(s32 arg0) {
prev_sprite_ptr = D_8037E900->unk4[var_s5].font_bin; prev_sprite_ptr = D_8037E900->unk4[var_s5].font_bin;
if (D_8037E900->unk4[var_s5].font_bin != NULL) { if (D_8037E900->unk4[var_s5].font_bin != NULL) {
chunk_count = spriteGetFramePtr(prev_sprite_ptr, 0U)->chunkCnt; chunk_count = sprite_getFramePtr(prev_sprite_ptr, 0U)->chunkCnt;
D_8037E900->unk4[var_s5].font_bin = (BKSprite *)defrag_asset(D_8037E900->unk4[var_s5].font_bin); D_8037E900->unk4[var_s5].font_bin = (BKSprite *)defrag_asset(D_8037E900->unk4[var_s5].font_bin);
for(i_chunk = 0; i_chunk < chunk_count; i_chunk++){ for(i_chunk = 0; i_chunk < chunk_count; i_chunk++){
D_8037E900->unk4[var_s5].letter_texture[i_chunk] = ((u32)(((s32)D_8037E900->unk4[var_s5].letter_texture[i_chunk] - (s32)prev_sprite_ptr)) + (u32)D_8037E900->unk4[var_s5].font_bin); D_8037E900->unk4[var_s5].letter_texture[i_chunk] = ((u32)(((s32)D_8037E900->unk4[var_s5].letter_texture[i_chunk] - (s32)prev_sprite_ptr)) + (u32)D_8037E900->unk4[var_s5].font_bin);

View File

@@ -283,7 +283,7 @@ void func_802F4B58(BKSpriteTextureBlock *alphaMask, BKSpriteTextureBlock *textur
//This functions seperates the fonts into letters //This functions seperates the fonts into letters
FontLetter *func_802F4C3C(BKSprite *alphaMask, BKSprite *textureSprite){ FontLetter *func_802F4C3C(BKSprite *alphaMask, BKSprite *textureSprite){
BKSpriteFrame * font = spriteGetFramePtr(alphaMask, 0); BKSpriteFrame * font = sprite_getFramePtr(alphaMask, 0);
BKSpriteTextureBlock *chunkPtr; BKSpriteTextureBlock *chunkPtr;
FontLetter * sp2C = malloc((font->chunkCnt + 1)*sizeof(FontLetter)); FontLetter * sp2C = malloc((font->chunkCnt + 1)*sizeof(FontLetter));
u8* palDataPtr; u8* palDataPtr;
@@ -320,7 +320,7 @@ FontLetter *func_802F4C3C(BKSprite *alphaMask, BKSprite *textureSprite){
{ {
chunkPtr = (BKSpriteTextureBlock *)(font + 1); chunkPtr = (BKSpriteTextureBlock *)(font + 1);
for( i = 0; i < font->chunkCnt; i++){ for( i = 0; i < font->chunkCnt; i++){
func_802F4B58(chunkPtr, (BKSpriteTextureBlock *)(spriteGetFramePtr(textureSprite, 0) + 1)); func_802F4B58(chunkPtr, (BKSpriteTextureBlock *)(sprite_getFramePtr(textureSprite, 0) + 1));
sp2C[i].unk0 = chunkPtr; sp2C[i].unk0 = chunkPtr;
chunkSize = chunkPtr->w*chunkPtr->h; chunkSize = chunkPtr->w*chunkPtr->h;
chunkDataPtr = (u8*)(chunkPtr + 1); chunkDataPtr = (u8*)(chunkPtr + 1);

View File

@@ -1975,7 +1975,7 @@ f32 func_80331D20(BKSprite *sprite) {
if (sprite == 0) { if (sprite == 0) {
return 1.0f; return 1.0f;
} }
frame = spriteGetFramePtr(sprite, 0); frame = sprite_getFramePtr(sprite, 0);
temp_lo = (s32) (((frame->unk10 - frame->unkC) + 1) * sprite->unk8) / (s32) frame->w; temp_lo = (s32) (((frame->unk10 - frame->unkC) + 1) * sprite->unk8) / (s32) frame->w;
temp_lo_2 = (s32) (((frame->unk12 - frame->unkE) + 1) * sprite->unkA) / (s32) frame->h; temp_lo_2 = (s32) (((frame->unk12 - frame->unkE) + 1) * sprite->unkA) / (s32) frame->h;
phi_v0 = (temp_lo_2 < temp_lo) ? temp_lo : temp_lo_2; phi_v0 = (temp_lo_2 < temp_lo) ? temp_lo : temp_lo_2;

View File

@@ -260,7 +260,7 @@ void spriteRender_drawWithSegment(Gfx **gfx, Vtx **vtx, BKSprite *sprite, u32 fr
gDPPipelineMode((*gfx)++, G_PM_1PRIMITIVE); gDPPipelineMode((*gfx)++, G_PM_1PRIMITIVE);
} }
frame_ptr = spriteGetFramePtr(sprite, frame); frame_ptr = sprite_getFramePtr(sprite, frame);
//load palette in indexed pixels //load palette in indexed pixels
var_t2 = (BKSpriteTextureBlock *)(frame_ptr + 1); var_t2 = (BKSpriteTextureBlock *)(frame_ptr + 1);

View File

@@ -338,7 +338,7 @@ BKSprite *func_8033B6C4(enum asset_e sprite_id, BKSpriteDisplayData **arg1){
s0 = assetcache_get(sprite_id); s0 = assetcache_get(sprite_id);
if(D_80383CD4[assetCacheCurrentIndex] == NULL){ if(D_80383CD4[assetCacheCurrentIndex] == NULL){
func_803382E4(-1); func_803382E4(-1);
func_80338308(func_802510A0(s0), func_802510A8(s0)); func_80338308(sprite_getUnk8(s0), sprite_getUnkA(s0));
D_80383CD4[assetCacheCurrentIndex] = func_80344A1C(s0); D_80383CD4[assetCacheCurrentIndex] = func_80344A1C(s0);
} }
*arg1 = D_80383CD4[assetCacheCurrentIndex]; *arg1 = D_80383CD4[assetCacheCurrentIndex];

View File

@@ -135,7 +135,7 @@ void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile,
s32 var_v0; s32 var_v0;
s32 maskt; s32 maskt;
sprite_frame = spriteGetFramePtr(sprite, frame); sprite_frame = sprite_getFramePtr(sprite, frame);
*frame_width = (s32) sprite_frame->w; *frame_width = (s32) sprite_frame->w;
*frame_height = (s32) sprite_frame->h; *frame_height = (s32) sprite_frame->h;
if (*textureCount == -1) { if (*textureCount == -1) {

View File

@@ -761,12 +761,12 @@ void gcpausemenu_init(void) {
func_80311604(); func_80311604();
gcpausemenu_zoomboxes_initMainMenu(); gcpausemenu_zoomboxes_initMainMenu();
D_80383010.joystick_sprite = assetcache_get(0x7EB); D_80383010.joystick_sprite = assetcache_get(0x7EB);
D_80383010.joystick_frame_count = spriteGetFrameCount(D_80383010.joystick_sprite); D_80383010.joystick_frame_count = sprite_getFrameCount(D_80383010.joystick_sprite);
D_80383010.left_joystick_alpha = temp_v1 = D_80383010.right_joystick_alpha = 0; D_80383010.left_joystick_alpha = temp_v1 = D_80383010.right_joystick_alpha = 0;
D_80383010.joystick_frame = D_80383010.unk3_4 = temp_v1; D_80383010.joystick_frame = D_80383010.unk3_4 = temp_v1;
D_80383010.b_button_sprite = assetcache_get(0x7ED); D_80383010.b_button_sprite = assetcache_get(0x7ED);
D_80383010.b_button_frame_count = spriteGetFrameCount(D_80383010.b_button_sprite); D_80383010.b_button_frame_count = sprite_getFrameCount(D_80383010.b_button_sprite);
D_80383010.b_button_frame = D_80383010.unk3_0 = D_80383010.b_button_alpha = 0; D_80383010.b_button_frame = D_80383010.unk3_0 = D_80383010.b_button_alpha = 0;
D_80383010.page_cnt = gcpausemenu_initLargestPageIndex(); D_80383010.page_cnt = gcpausemenu_initLargestPageIndex();
D_80383010.sns_alpha = D_80383010.sns_visible = D_80383010.unk70_31 = D_80383010.unk70_30 = 0; D_80383010.sns_alpha = D_80383010.sns_visible = D_80383010.unk70_31 = D_80383010.unk70_30 = 0;
@@ -1303,7 +1303,7 @@ void __gcpausemenu_drawSprite(Gfx **gdl, Mtx **mptr, Vtx **vptr, BKSprite *sprit
f32 sp2C; f32 sp2C;
f32 sp28; f32 sp28;
_frame = spriteGetFramePtr(sprite, frame); _frame = sprite_getFramePtr(sprite, frame);
sp2C = _frame->w; sp2C = _frame->w;
sp28 = _frame->h; sp28 = _frame->h;
func_803382E4(5); func_803382E4(5);
@@ -1334,7 +1334,7 @@ void gcpausemenu_drawSprite(Gfx **gdl, Mtx **mptr, Vtx **vptr, BKSprite *sprite,
BKSpriteFrame *_frame; BKSpriteFrame *_frame;
s32 w; s32 w;
s32 h; s32 h;
_frame = spriteGetFramePtr(sprite, frame); _frame = sprite_getFramePtr(sprite, frame);
w = ((mirror) ? -1 : 1) * _frame->w; w = ((mirror) ? -1 : 1) * _frame->w;
h = _frame->h; h = _frame->h;
__gcpausemenu_drawSprite(gdl, mptr, vptr, sprite, frame, (x - w * 0.5), (y - h * 0.5), w, h, a); __gcpausemenu_drawSprite(gdl, mptr, vptr, sprite, frame, (x - w * 0.5), (y - h * 0.5), w, h, a);

View File

@@ -1343,7 +1343,7 @@ void __gczoombox_load_sprite(GcZoombox *this, GcZoomboxSprite portrait_id){
this->frame_count = this->unkF8->frameCnt; this->frame_count = this->unkF8->frameCnt;
func_803382E4(-1); func_803382E4(-1);
func_80338308(func_802510A0(this->unkF8), func_802510A8(this->unkF8)); func_80338308(sprite_getUnk8(this->unkF8), sprite_getUnkA(this->unkF8));
} }
void __gczoombox_load_sfx(GcZoombox *this, GcZoomboxSprite portrait_id){ void __gczoombox_load_sfx(GcZoombox *this, GcZoomboxSprite portrait_id){

View File

@@ -4,7 +4,7 @@
#include "variables.h" #include "variables.h"
#include "core2/particle.h" #include "core2/particle.h"
extern s32 spriteGetFrameCount(BKSprite *); extern s32 sprite_getFrameCount(BKSprite *);
extern void func_80344720(s32 SpriteGfx, s32 frame, s32, f32[3], f32[3], f32[3], Gfx **, Mtx **); extern void func_80344720(s32 SpriteGfx, s32 frame, s32, f32[3], f32[3], f32[3], Gfx **, Mtx **);
extern void func_80344424(s32 SpriteGfx, s32 frame, s32, f32[3], f32[3], f32, Gfx **, Mtx **); extern void func_80344424(s32 SpriteGfx, s32 frame, s32, f32[3], f32[3], f32, Gfx **, Mtx **);
@@ -626,9 +626,9 @@ void particleEmitter_update(ParticleEmitter *this){
if(this->sprite_1C){ if(this->sprite_1C){
particle->frame += particle->framerate*tick; particle->frame += particle->framerate*tick;
if(!((s32)particle->frame < spriteGetFrameCount(this->sprite_1C))){ if(!((s32)particle->frame < sprite_getFrameCount(this->sprite_1C))){
if(this->draw_mode & PART_EMIT_NO_LOOP){ if(this->draw_mode & PART_EMIT_NO_LOOP){
particle->frame = spriteGetFrameCount(this->sprite_1C) - 1; particle->frame = sprite_getFrameCount(this->sprite_1C) - 1;
}else{ }else{
particle->frame = 0.0f; particle->frame = 0.0f;
} }