Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 6 additions & 9 deletions config/GQPE78/splits.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2400,7 +2400,6 @@ bink/src/sdk/decode/ngc/ngcfile.c:
bink/src/sdk/decode/yuv.cpp:
.text start:0x8019CE8C end:0x801A414C
.text start:0x801A414C end:0x801A414C
.rodata start:0x80274E00 end:0x80274E60
.data start:0x802AFFC0 end:0x802B0240
.data start:0x802B0240 end:0x802B0240
.bss start:0x80362C88 end:0x80363C88
Expand All @@ -2410,6 +2409,7 @@ bink/src/sdk/decode/yuv.cpp:
bink/src/sdk/decode/binkacd.c:
.text start:0x801A414C end:0x801A4E30
.text start:0x801A4E30 end:0x801A4E30
.rodata start:0x80274E00 end:0x80274E60
.data start:0x802B0240 end:0x802B0380
.sdata start:0x803CAE30 end:0x803CAE30

Expand Down Expand Up @@ -2443,27 +2443,24 @@ bink/src/sdk/decode/ngc/ngcrgb.c:
bink/src/sdk/decode/ngc/ngcyuy2.c:
.text start:0x801ABC7C end:0x801AC988
.text start:0x801AC988 end:0x801AC988
.rodata start:0x80275300 end:0x80275480
.sdata2 start:0x803CFC30 end:0x803CFC40

bink/src/sdk/varbits.c:
.text start:0x801AC988 end:0x801ACB6C
.text start:0x801ACB6C end:0x801ACB6C
.rodata start:0x80275480 end:0x802754E0
.rodata start:0x80275300 end:0x80275480
.sdata2 start:0x803CFC30 end:0x803CFC40

bink/src/sdk/fft.c:
.text start:0x801ACB6C end:0x801B0E50
.text start:0x801B0E50 end:0x801B0E50
.rodata start:0x802754E0 end:0x802754E0
.rodata start:0x80275480 end:0x802754E0
.sdata2 start:0x803CFC40 end:0x803CFC40

bink/src/sdk/dct.c:
.text start:0x801B0E50 end:0x801B1F24
.text start:0x801B1F24 end:0x801B1F24
.rodata start:0x802754E0 end:0x802794E0
.rodata start:0x802794E0 end:0x80279920
.sdata2 start:0x803CFC40 end:0x803CFC60
.sdata2 start:0x803CFC60 end:0x803CFC70
.rodata start:0x802754E0 end:0x80279920
.sdata2 start:0x803CFC40 end:0x803CFC70

bink/src/sdk/bitplane.c:
.text start:0x801B1F24 end:0x801B5350
Expand Down
264 changes: 132 additions & 132 deletions config/GQPE78/symbols.txt

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@
"-D__GEKKO__",
"-I src/bink/include",
"-I src/PowerPC_EABI_Support/include",
"-G4",
"-G8",
]

# Renderware library flags
Expand Down Expand Up @@ -641,17 +641,17 @@ def MatchingFor(*versions):
"progress_category": "bink",
"objects": [
Object(NonMatching, "bink/src/sdk/decode/ngc/binkngc.c"),
Object(NonMatching, "bink/src/sdk/decode/ngc/ngcsnd.c"),
Object(NonMatching, "bink/src/sdk/decode/ngc/ngcsnd.c", extra_cflags=["-G0"]),
Object(NonMatching, "bink/src/sdk/decode/binkread.c"),
Object(NonMatching, "bink/src/sdk/decode/ngc/ngcfile.c"),
Object(NonMatching, "bink/src/sdk/decode/yuv.cpp"),
Object(NonMatching, "bink/src/sdk/decode/binkacd.c"),
Object(NonMatching, "bink/shared/time/radcb.c"),
Object(Matching, "bink/shared/time/radcb.c"),
Object(NonMatching, "bink/src/sdk/decode/expand.c"),
Object(NonMatching, "bink/src/sdk/popmal.c"),
Object(Matching, "bink/src/sdk/popmal.c"),
Object(NonMatching, "bink/src/sdk/decode/ngc/ngcrgb.c"),
Object(NonMatching, "bink/src/sdk/decode/ngc/ngcyuy2.c"),
Object(NonMatching, "bink/src/sdk/varbits.c"),
Object(Matching, "bink/src/sdk/varbits.c"),
Object(NonMatching, "bink/src/sdk/fft.c"),
Object(NonMatching, "bink/src/sdk/dct.c"),
Object(NonMatching, "bink/src/sdk/bitplane.c"),
Expand Down
52 changes: 25 additions & 27 deletions src/SB/Core/gc/iFMV.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,17 @@ void RwGameCubeGetXFBs(void*, void*);
}

// .bss
static U32 Bink_surface_type[5];
static u32 Bink_surface_type[RAD3DSURFACECOUNT];

// .sbss
static S32 frame_num;
U32 fuckingSurfaceType;
u32 Rad_surface_type;
static HBINK Bink;
static HRAD3DIMAGE Image;
static S32 Paused;
static void* pixels;
static volatile F32 vol;
S32 ip;
S32 track_id;
s32 oof;
void* iFMV::mXFBs[2];
void* iFMV::mCurrentFrameBuffer;
Expand Down Expand Up @@ -70,33 +70,31 @@ U32 iFMVPlay(char* filename, U32 buttons, F32 time, bool skippable, bool lockCon

static void Setup_surface_array()
{
Bink_surface_type[0] = BINKSURFACE32;
Bink_surface_type[1] = BINKSURFACE32A;
Bink_surface_type[2] = BINKSURFACE565;
Bink_surface_type[3] = BINKSURFACE4444;
Bink_surface_type[4] = BINKSURFACEYUY2;
Bink_surface_type[RAD3DSURFACE32] = BINKSURFACE32;
Bink_surface_type[RAD3DSURFACE32A] = BINKSURFACE32A;
Bink_surface_type[RAD3DSURFACE565] = BINKSURFACE565;
Bink_surface_type[RAD3DSURFACE4444] = BINKSURFACE4444;
Bink_surface_type[RAD3DSURFACEYUY2] = BINKSURFACEYUY2;
}

// WIP.
void Decompress_frame(HBINK bnk, HRAD3DIMAGE rad_image, long flags)
{
struct Result
struct RAD3DLockInfo
{
S32 unk_0;
S32 unk_4;
U32 unk_8;
U32 unk_c;
S32 copy_status;
S32 do_frame_status;
u32 surface_type;
u32 buffer_pitch;
};
Result result;
result.unk_4 = BinkDoFrame(bnk);
if (Lock_RAD_3D_image(rad_image, &pixels, &result.unk_c, &result.unk_8) != 0)
RAD3DLockInfo lock_info;

lock_info.do_frame_status = BinkDoFrame(bnk);
if (Lock_RAD_3D_image(rad_image, &pixels, &lock_info.buffer_pitch, &lock_info.surface_type) != 0)
{
S32 mask = flags * -1;
mask = mask | flags;
mask = mask >> 0x1f;
mask = mask & 0x80000000;
mask |= Bink_surface_type[result.unk_8];
result.unk_0 = BinkCopyToBuffer(bnk, pixels, result.unk_c, bnk->Height, NULL, NULL, mask);
u32 copy_flags =
Bink_surface_type[lock_info.surface_type] | (flags != 0 ? BINKCOPYALL : 0);
lock_info.copy_status =
BinkCopyToBuffer(bnk, pixels, lock_info.buffer_pitch, bnk->Height, NULL, NULL, copy_flags);
Unlock_RAD_3D_image(rad_image);
}
}
Expand Down Expand Up @@ -241,18 +239,18 @@ static void PlayFMV(char* fname, size_t buttons, F32 time)

if (Bink != NULL)
{
if (Bink->Width != 0)
if (Bink->NumTracks != 0)
{
for (ip = 0; ip <= Bink->Width; ++ip)
for (track_id = 0; track_id <= Bink->NumTracks; ++track_id)
{
vol = gSnd.categoryVolFader[SND_CAT_CUTSCENE];
vol = vol * vol;
vol = vol * 32768.0f;
BinkSetVolume(Bink, ip, vol);
BinkSetVolume(Bink, track_id, vol);
}
}

Image = Open_RAD_3D_image(NULL, Bink->Width, Bink->Height, fuckingSurfaceType);
Image = Open_RAD_3D_image(NULL, Bink->Width, Bink->Height, Rad_surface_type);
if (Image != NULL)
{
if (frame_num != 0)
Expand Down
Loading
Loading