mirror of https://github.com/n64decomp/mk64.git
fix todo, bug not appears and change theme (#525)
* fix todo, bug not appears and change theme * fix warning
This commit is contained in:
parent
2727a5e5dd
commit
98474c5b94
|
@ -7,3 +7,6 @@
|
|||
[submodule "tools/asm-differ"]
|
||||
path = tools/asm-differ
|
||||
url = https://github.com/simonlindholm/asm-differ
|
||||
[submodule "doxygen-awesome-css"]
|
||||
path = doxygen-awesome-css
|
||||
url = https://github.com/jothepro/doxygen-awesome-css.git
|
||||
|
|
5
Doxyfile
5
Doxyfile
|
@ -1394,7 +1394,8 @@ HTML_STYLESHEET =
|
|||
# documentation.
|
||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||
|
||||
HTML_EXTRA_STYLESHEET =
|
||||
HTML_EXTRA_STYLESHEET = doxygen-awesome-css/doxygen-awesome.css \
|
||||
doxygen-awesome-css/doxygen-awesome-sidebar-only.css
|
||||
|
||||
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
|
||||
# other source files which should be copied to the HTML output directory. Note
|
||||
|
@ -1417,7 +1418,7 @@ HTML_EXTRA_FILES =
|
|||
# The default value is: AUTO_LIGHT.
|
||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||
|
||||
HTML_COLORSTYLE = AUTO_LIGHT
|
||||
HTML_COLORSTYLE = LIGHT
|
||||
|
||||
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
|
||||
# will adjust the colors in the style sheet and background images according to
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -24,7 +24,7 @@ struct CourseTable {
|
|||
|
||||
extern struct CourseTable gCourseTable[];
|
||||
|
||||
// todo: These should probably be ptr's instead of array's?
|
||||
//! @todo These should probably be ptr's instead of array's?
|
||||
extern u8 _course_mario_raceway_dl_mio0SegmentRomStart[];
|
||||
extern u8 _course_mario_raceway_dl_mio0SegmentRomEnd[];
|
||||
extern u8 _mario_raceway_vertexSegmentRomStart[];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// todo: Replace addresses with variables
|
||||
//! @todo Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Subproject commit df88fe4fdd97714fadfd3ef17de0b4401f804052
|
|
@ -136,7 +136,7 @@ typedef u32 OSYieldResult;
|
|||
#define OS_YIELD_DATA_SIZE 0x900
|
||||
#endif
|
||||
|
||||
// TODO: These defines shouldn't exist - PR/rcp.h has them properly defined (ultralib)
|
||||
//! @todo These defines shouldn't exist - PR/rcp.h has them properly defined (ultralib)
|
||||
/* Flags */
|
||||
#define M_TASK_FLAG0 1
|
||||
#define M_TASK_FLAG1 2
|
||||
|
|
|
@ -357,7 +357,8 @@ extern s16 D_80165738;
|
|||
#define NUM_TORCHES 8
|
||||
|
||||
// This should really be `extern Vec3s gTorchSpawns[];`
|
||||
extern s16 gTorchSpawns[]; // todo: fix this extern
|
||||
//! @todo fix this extern
|
||||
extern s16 gTorchSpawns[];
|
||||
|
||||
/**
|
||||
* List of object list indices. Used both for the fires in the DK Jungle cave
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef SOUNDS_H
|
||||
#define SOUNDS_H
|
||||
|
||||
// todo: format like sm64 sounds.h
|
||||
//! @todo format like sm64 sounds.h
|
||||
// The sound cue bit fields can be split up into its basic pieces and put back together.
|
||||
|
||||
|
||||
|
|
|
@ -213,7 +213,7 @@ s16 gUnknownWave7[256] = {
|
|||
|
||||
s16 *gWaveSamples[6] = { sSawtoothWaves, sTriangleWaves, sSineWaves, sSquareWaves, sUnknownWave6, gUnknownWave7 };
|
||||
|
||||
// TODO: file boundary?
|
||||
//! @todo file boundary?
|
||||
u32 fill[2] = {0x00000000, 0x00000000};
|
||||
|
||||
// Transforms a pitch scale factor in -127..127 into a frequency scale factor
|
||||
|
@ -343,7 +343,7 @@ struct AdsrEnvelope gDefaultEnvelope[] = {
|
|||
{ BSWAP16(ADSR_HANG), 0 } // then continue staying there
|
||||
};
|
||||
|
||||
// TODO 0x00000000800f624c fill2
|
||||
//! @todo 0x00000000800f624c fill2
|
||||
u32 fill2 = 0x00000000;
|
||||
|
||||
struct NoteSubEu gZeroNoteSub = { 0 };
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
#define TEMPO_SCALE TATUMS_PER_BEAT
|
||||
|
||||
// TODO: US_FLOAT should probably be renamed to JP_DOUBLE since eu seems to use floats too
|
||||
//! @todo US_FLOAT should probably be renamed to JP_DOUBLE since eu seems to use floats too
|
||||
#define US_FLOAT(x) x ## f
|
||||
#define US_FLOAT2(x) x
|
||||
|
||||
|
@ -440,7 +440,7 @@ struct Note {
|
|||
// that results in messy US/EU ifdefs. Instead we cast to a struct pointer
|
||||
// when needed... This breaks alignment on non-N64 platforms, which we hack
|
||||
// around by skipping the padding in that case.
|
||||
// TODO: use macros or something instead.
|
||||
//! @todo use macros or something instead.
|
||||
#ifdef TARGET_N64
|
||||
u8 pad0[12];
|
||||
#endif
|
||||
|
|
|
@ -669,7 +669,7 @@ void preload_sequence(u32 seqId, u8 preloadMask) {
|
|||
}
|
||||
|
||||
if (preloadMask & PRELOAD_SEQUENCE) {
|
||||
// @bug should be IS_SEQ_LOAD_COMPLETE
|
||||
//! @bug should be IS_SEQ_LOAD_COMPLETE
|
||||
if (IS_BANK_LOAD_COMPLETE(seqId) == TRUE) {
|
||||
sequenceData = get_bank_or_seq(0, 2, seqId);
|
||||
} else {
|
||||
|
@ -716,9 +716,11 @@ void load_sequence_internal(u32 player, u32 seqId, s32 loadAsync) {
|
|||
if (bank_load_async(bankId, 2, seqPlayer) == NULL) {
|
||||
return;
|
||||
}
|
||||
// @bug This should set the last bank (i.e. the first in the JSON)
|
||||
// as default, not the missing one. This code path never gets
|
||||
// taken, though -- all sequence loading is synchronous.
|
||||
/**
|
||||
* @bug This should set the last bank (i.e. the first in the JSON)
|
||||
* as default, not the missing one. This code path never gets
|
||||
* taken, though -- all sequence loading is synchronous.
|
||||
*/
|
||||
seqPlayer->defaultBank[0] = bankId;
|
||||
} else {
|
||||
if (load_banks_immediate(seqId, &seqPlayer->defaultBank[0]) == NULL) {
|
||||
|
|
|
@ -255,7 +255,7 @@ void func_800CBBE8(u32 arg0, s8 arg1) {
|
|||
func_800CBB48(arg0, &sp34);
|
||||
}
|
||||
|
||||
// TODO: clenanup, something's weird with the variables. D_800EA4A4 is probably EuAudioCmd bc of the + 0x100
|
||||
//! @todo clenanup, something's weird with the variables. D_800EA4A4 is probably EuAudioCmd bc of the + 0x100
|
||||
void func_800CBC24(void)
|
||||
{
|
||||
s32 temp_t6;
|
||||
|
|
|
@ -1578,9 +1578,11 @@ void init_sequence_players(void) {
|
|||
for (i = 0; i < ARRAY_COUNT(gSequenceChannels); i++) {
|
||||
gSequenceChannels[i].seqPlayer = NULL;
|
||||
gSequenceChannels[i].enabled = FALSE;
|
||||
// @bug Size of wrong array. Zeroes out second half of gSequenceChannels[0],
|
||||
// all of gSequenceChannels[1..31], and part of gSequenceLayers[0].
|
||||
// However, this is only called at startup, so it's harmless.
|
||||
/**
|
||||
* @bug Size of wrong array. Zeroes out second half of gSequenceChannels[0],
|
||||
* all of gSequenceChannels[1..31], and part of gSequenceLayers[0].
|
||||
* However, this is only called at startup, so it's harmless.
|
||||
*/
|
||||
#ifdef AVOID_UB
|
||||
#define LAYERS_SIZE LAYERS_MAX
|
||||
#else
|
||||
|
|
12
src/camera.h
12
src/camera.h
|
@ -3,11 +3,13 @@
|
|||
|
||||
#include "common_structs.h"
|
||||
|
||||
// todo put this define in types.h or similar.
|
||||
// Certain functions are marked as having return values, but do not
|
||||
// actually return a value. This causes undefined behavior, which we'd rather
|
||||
// avoid on modern GCC. This only impacts -O2 and can matter for both the function
|
||||
// itself and functions that call it.
|
||||
/**
|
||||
* @todo put this define in types.h or similar.
|
||||
* Certain functions are marked as having return values, but do not
|
||||
* actually return a value. This causes undefined behavior, which we'd rather
|
||||
* avoid on modern GCC. This only impacts -O2 and can matter for both the function
|
||||
* itself and functions that call it.
|
||||
*/
|
||||
#ifdef AVOID_UB
|
||||
#define BAD_RETURN(cmd) void
|
||||
#else
|
||||
|
|
|
@ -50,7 +50,7 @@ s32 D_800DC5E0 = 32;
|
|||
// This is tracking which credit "state" we're in, decides which credits are shown (and probably other stuff)
|
||||
u16 D_800DC5E4 = 0;
|
||||
|
||||
// TODO: gPlayerWinningIndex (D_800DC5E8) accessed as word, D_800DC5EB as u8
|
||||
//! @todo gPlayerWinningIndex (D_800DC5E8) accessed as word, D_800DC5EB as u8
|
||||
s32 gPlayerWinningIndex = 0;
|
||||
|
||||
struct UnkStruct_800DC5EC D_8015F480[4];
|
||||
|
@ -146,7 +146,7 @@ u16 gNumPermanentActors;
|
|||
s32 code_800029B0_bss_pad2[44];
|
||||
|
||||
struct Actor gActorList[ACTOR_LIST_SIZE];
|
||||
// @warning todo: Is this apart of the actor array?
|
||||
//! @warning todo: Is this apart of the actor array?
|
||||
UNUSED u8 D_80162578[sizeof(struct Actor)];
|
||||
|
||||
s16 gDebugPathCount;
|
||||
|
|
|
@ -3562,7 +3562,7 @@ void func_8000F2DC(void) {
|
|||
D_801645E0 = D_801645A0[0];
|
||||
|
||||
// zero allocated memory?
|
||||
// @warning does not appear to zero all the above allocated variables.
|
||||
//! @warning does not appear to zero all the above allocated variables.
|
||||
for (i = 0; i < 4; i++) {
|
||||
func_8000F2BC(D_80164550[i], D_80163368[i]);
|
||||
func_8000F2BC(D_80164560[i], D_80163368[i]);
|
||||
|
@ -3800,7 +3800,7 @@ void func_800100F0(s32 pathIndex) {
|
|||
|
||||
// If path data higher than 3000 something has gone wrong.
|
||||
// Skip processing the data.
|
||||
// todo: Confirm this comment
|
||||
//! @todo Confirm this comment
|
||||
if (!bInvalidPath) {
|
||||
var_v0 = func_80011014(pathDest, path, sp24, pathIndex);
|
||||
gWaypointCountByPathIndex[pathIndex] = (u16) var_v0;
|
||||
|
@ -7124,7 +7124,7 @@ void func_8001969C(s32 playerId, f32 arg1, s32 cameraId, s16 pathIndex) {
|
|||
waypoint = &D_80164550[0][gNearestWaypointByCameraId[cameraId]];
|
||||
|
||||
D_801645F8[cameraId] = waypoint->posX;
|
||||
// @bug Adding an (f32) cast changes asm, why?
|
||||
//! @bug Adding an (f32) cast changes asm, why?
|
||||
D_80164618[cameraId] = waypoint->posY + 10.0;
|
||||
D_80164638[cameraId] = waypoint->posZ;
|
||||
D_80164648[cameraId] = 0.0f;
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#include "spawn_players.h"
|
||||
|
||||
|
||||
// WARNING: this macro is undef'd at the end of this file
|
||||
//! @warning this macro is undef'd at the end of this file
|
||||
#define MAKE_RGB(r,g,b) (((r) << 0x10) | ((g) << 0x08) | (b << 0x00))
|
||||
|
||||
s16 D_800E4730[] = {
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
#include "menus.h"
|
||||
#include "data/other_textures.h"
|
||||
|
||||
// TODO: unused?
|
||||
//! @todo unused?
|
||||
f32 D_800E43B0[] = {
|
||||
65536.0, 0.0, 1.0, 0.0,
|
||||
0.0, 65536.0, 0.0, 1.0,
|
||||
|
@ -118,7 +118,7 @@ s32 find_unused_obj_index(s32* arg0) {
|
|||
return temp_v1;
|
||||
}
|
||||
|
||||
// @warning Does not clear struct members.
|
||||
//! @warning Does not clear struct members.
|
||||
void delete_object(s32 *objectIndex) {
|
||||
func_80072428(*objectIndex);
|
||||
gObjectList[*objectIndex].unk_0CA = 0;
|
||||
|
@ -1208,7 +1208,7 @@ void func_80074574(u8 *arg0, void *arg1, u16 arg2, u16 arg3) {
|
|||
func_80074510((uintptr_t) &_other_texturesSegmentRomStart[SEGMENT_OFFSET(arg0)], arg1, arg2 * arg3);
|
||||
}
|
||||
|
||||
// todo: arg1 should likely be a u8 *
|
||||
//! @todo arg1 should likely be a u8 *
|
||||
void func_800745C8(s32 objectIndex, s32 arg1) {
|
||||
s32 phi_a1;
|
||||
|
||||
|
@ -3629,7 +3629,7 @@ void consume_item(s32 playerId) {
|
|||
}
|
||||
}
|
||||
|
||||
// todo: Cleanup this function to use array access and struct if possible.
|
||||
//! @todo Cleanup this function to use array access and struct if possible.
|
||||
u8 gen_random_item(s16 rank, s16 isCpu)
|
||||
{
|
||||
u16 rand = random_int(100);
|
||||
|
|
|
@ -1236,7 +1236,7 @@ s32 func_8008A060(s32 objectIndex, Camera *camera, u16 arg2) {
|
|||
var_v1 = 0;
|
||||
temp_t3 = (((u16)camera->rot[1] - gObjectList[objectIndex].unk_0BE[1]) + (arg2 >> 1));
|
||||
|
||||
// @warning Always true
|
||||
//! @warning Always true
|
||||
if ((temp_t3 >= 0) && (arg2 >= temp_t3)) {
|
||||
var_v1 = 1;
|
||||
}
|
||||
|
|
|
@ -31,12 +31,14 @@
|
|||
#include "racing/race_logic.h"
|
||||
#include "ending/code_80281C40.h"
|
||||
#include "spawn_players.h"
|
||||
// TODO: Move gGfxPool out of main.h
|
||||
//! @todo Move gGfxPool out of main.h
|
||||
// Unfortunately that's not a small effort due to weird import structure in this project
|
||||
#include "main.h"
|
||||
|
||||
s16 D_8018E820; // todo: these are likely arrays.
|
||||
s16 D_8018E822; // todo: This may not be the right file for them.
|
||||
//! @todo these are likely arrays.
|
||||
s16 D_8018E820;
|
||||
//! @todo This may not be the right file for them.
|
||||
s16 D_8018E822;
|
||||
s32 code_80091750_pad_1;
|
||||
s16 D_8018E828;
|
||||
s16 D_8018E82A;
|
||||
|
@ -1623,7 +1625,7 @@ void func_80091EE4(void) {
|
|||
void func_80091FA4(void) {
|
||||
s32 i;
|
||||
|
||||
// todo: These sizes need to be sizeof() for shiftability if possible
|
||||
//! @todo These sizes need to be sizeof() for shiftability if possible
|
||||
D_8018D9B4 = (uintptr_t *) get_next_available_memory_addr(0x00002800);
|
||||
D_8018D9B0 = get_next_available_memory_addr(0x000124F8);
|
||||
D_8018D9B8 = (uintptr_t *) get_next_available_memory_addr(0x00001000);
|
||||
|
|
|
@ -162,7 +162,7 @@ void crash_screen_draw_info(u16 *framebuffer, OSThread *thread) {
|
|||
faultedAddr = context->pc & (~3);
|
||||
|
||||
// Ensure the address to the faulted instruction is a memory address.
|
||||
// @bug if this check fails, the ra register is printed a second time.
|
||||
//! @bug if this check fails, the ra register is printed a second time.
|
||||
if ((faultedAddr > 0x80000000) && (faultedAddr < 0x803FFF7F)) {
|
||||
// Cast the address to its value; the faulty machine code.
|
||||
crashInfo = *(u32*)faultedAddr;
|
||||
|
|
|
@ -631,7 +631,7 @@ Gfx common_model_flat_banana[] = {
|
|||
};
|
||||
|
||||
// tlut size 8x29
|
||||
// todo: What is this?
|
||||
//! @todo What is this?
|
||||
s8 D_0D004C68[] = {
|
||||
#include "assets/trees/gTLUTTreesImport.inc.c"
|
||||
};
|
||||
|
@ -3011,7 +3011,7 @@ u8 gTLUTLakituCountdown[][512] = {
|
|||
};
|
||||
|
||||
/**
|
||||
* todo: Generate tlut based on the actual texture.
|
||||
* @todo Generate tlut based on the actual texture.
|
||||
* The textures these tluts are for are not in common_textures.inc.c
|
||||
* This applies to gTLUTLakituCheckeredFlag, gTLUTLakituSecondLap,
|
||||
* gTLUTLakituFinalLap, gTLUTLakituReverse, gTLUTLakituFishing
|
||||
|
|
|
@ -281,7 +281,7 @@ UNUSED Vtx D_02007B38[] = {
|
|||
{{{ 0, 0, 0}, 0, { 0, 448}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
// Todo: Place all these vertices in a single array
|
||||
//! @todo Place all these vertices in a single array
|
||||
// Access the correct vertex using sym[value]
|
||||
Vtx D_02007BB8[] = {
|
||||
{{{ 0, 65520, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
|
|
|
@ -377,7 +377,7 @@ dummy_label_888430: ;
|
|||
}
|
||||
}
|
||||
|
||||
// todo: Cast to normal Camera? Or from CinematicCamera?
|
||||
//! @todo Cast to normal Camera? Or from CinematicCamera?
|
||||
s32 func_80282D90(struct CinematicCamera *camera, struct struct_80286A04 *arg1, struct struct_80286A04 *arg2, s32 arg3) {
|
||||
s32 res;
|
||||
|
||||
|
@ -497,7 +497,7 @@ s32 func_80283330(s32 arg0) {
|
|||
|
||||
extern s32 D_802876D8;
|
||||
|
||||
// todo: Does this match as a return of s8?
|
||||
//! @todo Does this match as a return of s8?
|
||||
s32 func_8028336C(UNUSED struct CinematicCamera *arg0, UNUSED Camera *camera) {
|
||||
u8 sp20[] = { 2, 3, 4, 5, 5, 5, 5, 5 };
|
||||
if (D_802876D8 != 0)
|
||||
|
@ -1177,7 +1177,7 @@ void func_802846B4(struct CinematicCamera *camera) {
|
|||
func_80282D90(camera, (struct struct_80286A04 *) D_80285C38, (struct struct_80286A04 *) D_80285C74, 0);
|
||||
}
|
||||
|
||||
// todo: What does this even do?
|
||||
//! @todo What does this even do?
|
||||
void func_802846E4(struct CinematicCamera *camera) {
|
||||
|
||||
func_80282D90(camera, (struct struct_80286A04 *) D_80285CB0, (struct struct_80286A04 *) D_80285CE0, 0);
|
||||
|
|
|
@ -1884,7 +1884,7 @@ u8 texture_podium3[] = {
|
|||
#include "assets/ending_ceremony/gTexturePodium3.inc.c"
|
||||
};
|
||||
|
||||
// Todo: rename this to left_ or right_ instead of model2.
|
||||
//! @todo rename this to left_ or right_ instead of model2.
|
||||
Vtx short_podium_model2[] = {
|
||||
|
||||
{{{ -7, 0, -21}, 0, { 0, 0}, {0xc8, 0xe3, 0xff, 0xff}}},
|
||||
|
|
|
@ -53,7 +53,7 @@ void debug_switch_character_ceremony_cutscene(void) {
|
|||
} else {
|
||||
gCharacterSelections[0] = MARIO;
|
||||
}
|
||||
// todo: confirm this.
|
||||
//! @todo confirm this.
|
||||
// Resets gCharacterIdByGPOverallRank to default?
|
||||
bcopy(&defaultCharacterIds, &gCharacterIdByGPOverallRank, 8);
|
||||
}
|
||||
|
@ -132,7 +132,7 @@ void load_ceremony_cutscene(void) {
|
|||
D_800DC5BC = (u16)0;
|
||||
D_800DC5C8 = (u16)0;
|
||||
gSurfaceMap = (mk64_surface_map_ram *) gNextFreeMemoryAddress;
|
||||
// @bug these segmented addresses need to be symbols for mobility
|
||||
//! @bug these segmented addresses need to be symbols for mobility
|
||||
set_vertex_data_with_default_section_id(0x070067E8, -1);
|
||||
set_vertex_data_with_default_section_id(0x0700AEF8, -1);
|
||||
set_vertex_data_with_default_section_id(0x0700A970, 8);
|
||||
|
|
|
@ -124,8 +124,8 @@ CeremonyActor *find_available_entry(void) {
|
|||
CeremonyActor *new_actor(ActorInitParams *arg0) {
|
||||
CeremonyActor *actor = find_available_entry();
|
||||
|
||||
// @bug No null check.
|
||||
// todo: More indepth error checking/return value
|
||||
//! @bug No null check.
|
||||
//! @todo More indepth error checking/return value
|
||||
#ifdef AVOID_UB
|
||||
if (actor == NULL) {
|
||||
return (CeremonyActor*) &sPodiumActorList[0]; // Return first actor to prevent crash
|
||||
|
|
|
@ -388,7 +388,7 @@ void func_80045F18(u8 *texture, Vtx *arg1, s32 width, s32 arg3, s32 height, s32
|
|||
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
|
||||
}
|
||||
|
||||
// todo: tlut/texture unconfirmed. This could be texture1 and texture2
|
||||
//! @todo tlut/texture unconfirmed. This could be texture1 and texture2
|
||||
UNUSED void func_80046030(u8 *tlut, u8 *texture, Vtx *arg2, s32 width, s32 arg4, s32 height) {
|
||||
s32 var_s0 = 0;
|
||||
u8 *img1 = tlut;
|
||||
|
@ -1419,7 +1419,7 @@ void func_8004B7DC(s32 x, s32 y, s32 width, s32 height, s32 arg4, s32 arg5, s32
|
|||
s32 yh2 = ((y + height) << 2);
|
||||
|
||||
if (arg6 == 0) {
|
||||
// todo: Update to F3DEX. Uses OLD definition for gspTextureRectangle.
|
||||
//! @todo Update to F3DEX. Uses OLD definition for gspTextureRectangle.
|
||||
gSPTextureRectangle(gDisplayListHead++, xl, yl, xh, yh, G_TX_RENDERTILE, arg4 << 5, (arg5 << 5), 4 << 10, 1 << 10);
|
||||
return;
|
||||
}
|
||||
|
@ -1589,7 +1589,7 @@ void func_8004C268(u32 arg0, u32 arg1, u8 *texture, u32 width, u32 arg4, u32 hei
|
|||
for (i = 0; (u32)i < (arg4 / height); i++) {
|
||||
func_80043D50(img2, width, height);
|
||||
func_8004B97C(arg0, arg1, width, height, arg6);
|
||||
// todo: fakematch?
|
||||
//! @todo fakematch?
|
||||
#ifdef AVOID_UB
|
||||
img2 += (width * height) * 2;
|
||||
#else
|
||||
|
|
|
@ -410,7 +410,7 @@ void end_master_display_list(void) {
|
|||
}
|
||||
|
||||
// clear_frame_buffer from SM64, with a few edits
|
||||
//! TODO: Why did void* work for matching
|
||||
//! @todo Why did void* work for matching
|
||||
void *clear_framebuffer(s32 color) {
|
||||
gDPPipeSync(gDisplayListHead++);
|
||||
|
||||
|
@ -1145,8 +1145,10 @@ void update_gamestate(void) {
|
|||
gCurrentlyLoadedCourseId = COURSE_NULL;
|
||||
break;
|
||||
case RACING:
|
||||
// @bug Reloading this segment makes random_u16() deterministic for player spawn order.
|
||||
// In laymens terms, random_u16() outputs the same value every time.
|
||||
/**
|
||||
* @bug Reloading this segment makes random_u16() deterministic for player spawn order.
|
||||
* In laymens terms, random_u16() outputs the same value every time.
|
||||
*/
|
||||
init_segment_racing();
|
||||
setup_race();
|
||||
break;
|
||||
|
|
|
@ -20,12 +20,12 @@
|
|||
|
||||
#define MTX_OBJECT_POOL_SIZE 128
|
||||
|
||||
// TODO: Verify with proper documentation
|
||||
//! @todo Verify with proper documentation
|
||||
// functions called by mtxShadow multiply by 8
|
||||
// 8 CPU Players * 4 real players in coop
|
||||
#define MTX_SHADOW_POOL_SIZE 8 * 4
|
||||
|
||||
// TODO: Verify with proper documentation
|
||||
//! @todo Verify with proper documentation
|
||||
// functions called by mtxKart multiply by 8
|
||||
// 8 CPU Players * 4 real players in coop
|
||||
#define MTX_KART_POOL_SIZE 8 * 4
|
||||
|
|
|
@ -56,7 +56,8 @@ s32 __osRepairPackId(OSPfs *pfs, __OSPackId *badid, __OSPackId *newid)
|
|||
{
|
||||
pfs->activebank = j;
|
||||
ERRCK(__osPfsSelectBank(pfs))
|
||||
ERRCK(__osContRamRead(pfs->queue, pfs->channel, 0, (u8*)&temp)); //TODO: fix magic number
|
||||
//! @todo fix magic number
|
||||
ERRCK(__osContRamRead(pfs->queue, pfs->channel, 0, (u8*)&temp));
|
||||
temp[0] = j | 0x80;
|
||||
for (i = 1; i < ARRLEN(temp); i++)
|
||||
{
|
||||
|
@ -80,7 +81,8 @@ s32 __osRepairPackId(OSPfs *pfs, __OSPackId *badid, __OSPackId *newid)
|
|||
ERRCK(__osPfsSelectBank(pfs));
|
||||
ERRCK(__osContRamRead(pfs->queue, pfs->channel, 0, (u8*)temp));
|
||||
if (temp[0] != 128)
|
||||
break; //TODO: remove magic constant
|
||||
//! @todo remove magic constant
|
||||
break;
|
||||
}
|
||||
j++;
|
||||
}
|
||||
|
@ -173,7 +175,8 @@ s32 __osGetId(OSPfs *pfs)
|
|||
return ret;
|
||||
}
|
||||
}
|
||||
if ((id->deviceid & 1) == 0) //TODO: remove magic constant
|
||||
//! @todo remove magic constant
|
||||
if ((id->deviceid & 1) == 0)
|
||||
{
|
||||
ERRCK(__osRepairPackId(pfs, id, &newid));
|
||||
id = &newid;
|
||||
|
@ -186,7 +189,8 @@ s32 __osGetId(OSPfs *pfs)
|
|||
}
|
||||
pfs->version = id->version;
|
||||
pfs->banks = id->banks;
|
||||
pfs->inode_start_page = pfs->banks * 2 + 3; //TODO: loads of magic constants..
|
||||
//! @todo loads of magic constants..
|
||||
pfs->inode_start_page = pfs->banks * 2 + 3;
|
||||
pfs->dir_size = 16;
|
||||
pfs->inode_table = 8;
|
||||
pfs->minode_table = pfs->banks * PFS_ONE_PAGE + 8;
|
||||
|
@ -240,7 +244,8 @@ s32 __osPfsRWInode(OSPfs *pfs, __OSInode *inode, u8 flag, u8 bank)
|
|||
|
||||
for (j = 0; j < 8; j++)
|
||||
{
|
||||
addr = ((u8 *)inode->inode_page + j * 32); //TODO: don't like this =/ //maybe &inode->inode_table[j*PFS_ONE_PAGE].ipage or something
|
||||
//! @todo don't like this =/ //maybe &inode->inode_table[j*PFS_ONE_PAGE].ipage or something
|
||||
addr = ((u8 *)inode->inode_page + j * 32);
|
||||
if (flag == PFS_WRITE)
|
||||
{
|
||||
ret = __osContRamWrite(pfs->queue, pfs->channel, pfs->inode_table + bank * 8 + j, addr, FALSE);
|
||||
|
|
|
@ -8,7 +8,7 @@ u8 leoDiskStack[OS_PIM_STACKSIZE]; // technically should have a OS_LEO_STACKSIZE
|
|||
|
||||
#ifdef VERSION_SH
|
||||
|
||||
// TODO: so many magic constants :'(
|
||||
//! @todo so many magic constants :'(
|
||||
static void __osLeoResume(void);
|
||||
static void __osLeoAbnormalResume(void);
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
// These unions are necessary to put the constants in .rodata rather than .data.
|
||||
// TODO: is it possible to remove them somehow?
|
||||
//! @todo is it possible to remove them somehow?
|
||||
|
||||
typedef union {
|
||||
/* 0x0 */ double d;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
// These unions are necessary to put the constants in .rodata rather than .data.
|
||||
// TODO: is it possible to remove them somehow?
|
||||
//! @todo is it possible to remove them somehow?
|
||||
|
||||
typedef union {
|
||||
/* 0x0 */ double d;
|
||||
|
|
|
@ -31,7 +31,8 @@ s32 osContInit(OSMesgQueue *mq, u8 *bitpattern, OSContStatus *status) {
|
|||
osSetTimer(&timer, 500000 * osClockRate / 1000000 - currentTime, 0, &timerMesgQueue, &mesg);
|
||||
osRecvMesg(&timerMesgQueue, &mesg, OS_MESG_BLOCK);
|
||||
}
|
||||
_osContNumControllers = 4; // TODO: figure out what it means
|
||||
//! @todo figure out what it means
|
||||
_osContNumControllers = 4;
|
||||
__osPackRequestData(0);
|
||||
ret = __osSiRawStartDma(OS_WRITE, _osContCmdBuf);
|
||||
osRecvMesg(mq, &mesg, OS_MESG_BLOCK);
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
#define OS_PI_MGR_MESG_BUFF_SIZE 1
|
||||
|
||||
#ifdef VERSION_SH // TODO: In libreultra this is in an include
|
||||
//! @todo In libreultra this is in an include
|
||||
#ifdef VERSION_SH
|
||||
extern OSPiHandle *CartRomHandle;
|
||||
extern OSPiHandle *LeoDiskHandle;
|
||||
#endif
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
#include "hardware.h"
|
||||
#include "new_func.h"
|
||||
#include "PR/R4300.h"
|
||||
// TODO: This define is from piint.h, but including that causes problems...
|
||||
//! @todo This define is from piint.h, but including that causes problems...
|
||||
#define UPDATE_REG(reg, var) \
|
||||
if (cHandle->var != pihandle->var) \
|
||||
IO_WRITE(reg, pihandle->var);
|
||||
// TODO: This define is from os.h, but including that causes problems...
|
||||
//! @todo This define is from os.h, but including that causes problems...
|
||||
#define PI_DOMAIN1 0
|
||||
// TODO: These defines are from PR/rcp.h, but including that causes problems...
|
||||
//! @todo These defines are from PR/rcp.h, but including that causes problems...
|
||||
#define IO_WRITE(addr, data) (*(vu32 *) PHYS_TO_K1(addr) = (u32)(data))
|
||||
|
||||
s32 osEPiRawStartDma(OSPiHandle *pihandle, s32 dir, u32 cart_addr, void *dram_addr, u32 size) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "libultra_internal.h"
|
||||
|
||||
// TODO: merge with osEepromWrite
|
||||
//! @todo merge with osEepromWrite
|
||||
typedef struct {
|
||||
u16 unk00;
|
||||
u8 unk02;
|
||||
|
|
|
@ -31,7 +31,8 @@ s32 osPfsDeleteFile(OSPfs *pfs, u16 company_code, u32 game_code, u8 *game_name,
|
|||
for (bank = dir.start_page.inode_t.bank; bank < pfs->banks;)
|
||||
{
|
||||
ERRCK(__osPfsRWInode(pfs, &inode, OS_READ, bank));
|
||||
ERRCK(__osPfsReleasePages(pfs, &inode, startpage, &sum, bank, &last_page, 1)); //TODO: magic constant
|
||||
//! @todo magic constant
|
||||
ERRCK(__osPfsReleasePages(pfs, &inode, startpage, &sum, bank, &last_page, 1));
|
||||
ERRCK(__osPfsRWInode(pfs, &inode, OS_WRITE, bank));
|
||||
if (last_page.ipage == 1)
|
||||
break;
|
||||
|
@ -84,7 +85,8 @@ s32 __osPfsReleasePages(OSPfs *pfs, __OSInode *inode, u8 start_page, u16 *sum, u
|
|||
if (next_page.inode_t.page < offset && next_page.ipage != 1)
|
||||
return PFS_ERR_INCONSISTENT;
|
||||
*last_page = next_page;
|
||||
if (flag == 1) //TODO: magic number
|
||||
//! @todo magic number
|
||||
if (flag == 1)
|
||||
inode->inode_page[start_page].ipage = 3;
|
||||
|
||||
ERRCK(__osBlockSum(pfs, start_page, sum, bank));
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
#include "libultra_internal.h"
|
||||
#include "hardware.h"
|
||||
|
||||
extern u32 osRomBase; // TODO: figure out why this is like this
|
||||
//! @todo figure out why this is like this
|
||||
extern u32 osRomBase;
|
||||
|
||||
s32 osPiRawStartDma(s32 dir, u32 cart_addr, void *dram_addr, size_t size) {
|
||||
register int status;
|
||||
|
|
|
@ -10,7 +10,7 @@ s32 osPiStartDma(OSIoMesg *mb, s32 priority, s32 direction, uintptr_t devAddr, v
|
|||
return -1;
|
||||
}
|
||||
|
||||
// TODO: name magic constants
|
||||
//! @todo name magic constants
|
||||
if (direction == OS_READ) {
|
||||
mb->hdr.type = 11;
|
||||
} else {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
extern OSViContext *__osViNext;
|
||||
|
||||
// TODO: name magic constants
|
||||
//! @todo name magic constants
|
||||
void osViBlack(u8 active) {
|
||||
register u32 int_disabled = __osDisableInt();
|
||||
if (active) {
|
||||
|
|
|
@ -5,6 +5,7 @@ extern OSViContext *__osViNext;
|
|||
void osViSwapBuffer(void *vaddr) {
|
||||
u32 int_disabled = __osDisableInt();
|
||||
__osViNext->buffer = vaddr;
|
||||
__osViNext->unk00 |= 0x10; // TODO: figure out what this flag means
|
||||
//! @todo figure out what this flag means
|
||||
__osViNext->unk00 |= 0x10;
|
||||
__osRestoreInt(int_disabled);
|
||||
}
|
||||
|
|
|
@ -83,9 +83,12 @@
|
|||
#define LEO_BM_CTL_SECTOR_MASK 0x00FF0000
|
||||
#define LEO_BM_CTL_SECTOR_SHIFT 16
|
||||
|
||||
#define LEO_CMD_TYPE_0 0 //TODO: name
|
||||
#define LEO_CMD_TYPE_1 1 //TODO: name
|
||||
#define LEO_CMD_TYPE_2 2 //TODO: name
|
||||
//! @todo name
|
||||
#define LEO_CMD_TYPE_0 0
|
||||
//! @todo name
|
||||
#define LEO_CMD_TYPE_1 1
|
||||
//! @todo name
|
||||
#define LEO_CMD_TYPE_2 2
|
||||
|
||||
#define LEO_ERROR_GOOD 0
|
||||
#define LEO_ERROR_3 3
|
||||
|
|
|
@ -1209,7 +1209,7 @@ void render_actor_shell(Camera *camera, Mat4 matrix, struct ShellActor *shell) {
|
|||
0x1c00, 0x1800, 0x1400, 0x1000,
|
||||
0x0c00, 0x0800, 0x0400
|
||||
};
|
||||
// todo: Is this making the shell spin?
|
||||
//! @todo Is this making the shell spin?
|
||||
// Is it doing this by modifying a an address?
|
||||
uintptr_t phi_t3;
|
||||
|
||||
|
|
|
@ -1965,10 +1965,12 @@ void func_802AF314(void) {
|
|||
}
|
||||
|
||||
D_8015F58A = 0;
|
||||
// @bug possibly bug. Allocate memory but not increment the pointer.
|
||||
// This is bad, dumb code, and more importantly it's bad dumb code that doesn't make any sense here.
|
||||
// It is incremented after this function completes using a different variable.
|
||||
// Not good.
|
||||
/**
|
||||
* @bug possibly bug. Allocate memory but not increment the pointer.
|
||||
* This is bad, dumb code, and more importantly it's bad dumb code that doesn't make any sense here.
|
||||
* It is incremented after this function completes using a different variable.
|
||||
* Not good.
|
||||
*/
|
||||
D_8015F584 = (u16 *) gNextFreeMemoryAddress;
|
||||
|
||||
for (j = 0; j < 32; j++) {
|
||||
|
|
|
@ -126,7 +126,8 @@ void *vec3f_copy_return(Vec3f dest, Vec3f src) {
|
|||
dest[0] = src[0];
|
||||
dest[1] = src[1];
|
||||
dest[2] = src[2];
|
||||
return &dest; //! warning: function returns address of local variable
|
||||
//! @warning function returns address of local variable
|
||||
return &dest;
|
||||
}
|
||||
|
||||
void vec3s_copy(Vec3s dest, Vec3s src) {
|
||||
|
|
|
@ -794,7 +794,7 @@ void func_8028F970(void) {
|
|||
return;
|
||||
}
|
||||
|
||||
// todo: increasing players past four would require increase this loop iterator.
|
||||
//! @todo increasing players past four would require increase this loop iterator.
|
||||
for (i = 0; i < 4; i++) {
|
||||
|
||||
Player *player = &gPlayers[i];
|
||||
|
|
|
@ -76,7 +76,7 @@ void load_surface_map(uintptr_t addr, struct UnkStruct_800DC5EC *arg1) {
|
|||
Camera *camera = arg1->camera;
|
||||
u32 segment = SEGMENT_NUMBER2(addr);
|
||||
u32 offset = SEGMENT_OFFSET(addr);
|
||||
// todo: Should be Gfx*
|
||||
//! @todo Should be Gfx*
|
||||
s32 *gfx = (s32 *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
s16 var_a3;
|
||||
s16 temp_v1;
|
||||
|
|
Loading…
Reference in New Issue