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:
@@ -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]
|
||||||
|
@@ -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]
|
||||||
|
@@ -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 */
|
||||||
|
28
include/core1/framebufferdraw.h
Normal file
28
include/core1/framebufferdraw.h
Normal 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
11
include/core1/sprite.h
Normal 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
|
@@ -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);
|
||||||
|
@@ -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
|
||||||
|
@@ -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;
|
|
||||||
}
|
|
@@ -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
28
src/core1/sprite.c
Normal 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;
|
||||||
|
}
|
@@ -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);
|
||||||
}
|
}
|
@@ -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)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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){
|
||||||
|
@@ -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);
|
||||||
|
@@ -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);
|
||||||
|
@@ -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;
|
||||||
|
@@ -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);
|
||||||
|
@@ -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];
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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);
|
||||||
|
@@ -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){
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user