Cleanup movie_lib.h

See #42
This commit is contained in:
Alexander Batalov 2022-06-19 14:21:01 +03:00
parent 7796fcd6a8
commit ce0f7f8091
2 changed files with 207 additions and 294 deletions

View File

@ -10,14 +10,97 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
typedef struct STRUCT_6B3690 {
void* field_0;
int field_4;
int field_8;
} STRUCT_6B3690;
#pragma pack(2)
typedef struct Mve {
char sig[20];
short field_14;
short field_16;
short field_18;
int field_1A;
} Mve;
#pragma pack()
typedef struct STRUCT_4F6930 {
int field_0;
MovieReadProc* readProc;
STRUCT_6B3690 field_8;
int fileHandle;
int field_18;
SDL_Surface* field_24;
SDL_Surface* field_28;
int field_2C;
unsigned char* field_30;
unsigned char* field_34;
unsigned char field_38;
unsigned char field_39;
unsigned char field_3A;
unsigned char field_3B;
int field_3C;
int field_40;
int field_44;
int field_48;
int field_4C;
int field_50;
} STRUCT_4F6930;
static void _MVE_MemInit(STRUCT_6B3690* a1, int a2, void* a3);
static void _MVE_MemFree(STRUCT_6B3690* a1);
static void _do_nothing_2(SDL_Surface* a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9);
static int _sub_4F4B5();
static int _ioReset(int fileHandle);
static void* _ioRead(int size);
static void* _MVE_MemAlloc(STRUCT_6B3690* a1, unsigned int a2);
static unsigned char* _ioNextRecord();
static void _sub_4F4DD();
static int _MVE_rmHoldMovie();
static int _syncWait();
static void _MVE_sndPause();
static int _syncInit(int a1, int a2);
static void _syncReset(int a1);
static int _MVE_sndConfigure(int a1, int a2, int a3, int a4, int a5, int a6);
static void _MVE_syncSync();
static void _MVE_sndReset();
static void _MVE_sndSync();
static int _syncWaitLevel(int a1);
static void _CallsSndBuff_Loc(unsigned char* a1, int a2);
static int _MVE_sndAdd(unsigned char* dest, unsigned char** src_ptr, int a3, int a4, int a5);
static void _MVE_sndResume();
static int _nfConfig(int a1, int a2, int a3, int a4);
static bool movieLockSurfaces();
static void movieUnlockSurfaces();
static void movieSwapSurfaces();
static void _sfShowFrame(int a1, int a2, int a3);
static void _do_nothing_(int a1, int a2, unsigned short* a3);
static void _SetPalette_1(int a1, int a2);
static void _SetPalette_(int a1, int a2);
static void _palMakeSynthPalette(int a1, int a2, int a3, int a4, int a5, int a6);
static void _palLoadPalette(unsigned char* palette, int a2, int a3);
static void _syncRelease();
static void _ioRelease();
static void _MVE_sndRelease();
static void _nfRelease();
static void _frLoad(STRUCT_4F6930* a1);
static void _frSave(STRUCT_4F6930* a1);
static void _MVE_frClose(STRUCT_4F6930* a1);
static int _MVE_sndDecompM16(unsigned short* a1, unsigned char* a2, int a3, int a4);
static int _MVE_sndDecompS16(unsigned short* a1, unsigned char* a2, int a3, int a4);
static void _nfPkConfig();
static void _nfPkDecomp(unsigned char* buf, unsigned char* a2, int a3, int a4, int a5, int a6);
// 0x51EBD8 // 0x51EBD8
int dword_51EBD8 = 0; static int dword_51EBD8 = 0;
// 0x51EBDC // 0x51EBDC
int dword_51EBDC = 4; static int dword_51EBDC = 4;
// 0x51EBE0 // 0x51EBE0
unsigned short word_51EBE0[256] = { static unsigned short word_51EBE0[256] = {
// clang-format off // clang-format off
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F,
@ -55,55 +138,55 @@ unsigned short word_51EBE0[256] = {
}; };
// 0x51EDE4 // 0x51EDE4
int _sync_active = 0; static int _sync_active = 0;
// 0x51EDE8 // 0x51EDE8
int _sync_late = 0; static int _sync_late = 0;
// 0x51EDEC // 0x51EDEC
int _sync_FrameDropped = 0; static int _sync_FrameDropped = 0;
#ifdef HAVE_DSOUND #ifdef HAVE_DSOUND
// 0x51EDF0 // 0x51EDF0
LPDIRECTSOUND gMovieLibDirectSound = NULL; static LPDIRECTSOUND gMovieLibDirectSound = NULL;
#endif #endif
#ifdef HAVE_DSOUND #ifdef HAVE_DSOUND
// 0x51EDF4 // 0x51EDF4
LPDIRECTSOUNDBUFFER gMovieLibDirectSoundBuffer = NULL; static LPDIRECTSOUNDBUFFER gMovieLibDirectSoundBuffer = NULL;
#endif #endif
// 0x51EDF8 // 0x51EDF8
int gMovieLibVolume = 0; static int gMovieLibVolume = 0;
// 0x51EDFC // 0x51EDFC
int gMovieLibPan = 0; static int gMovieLibPan = 0;
// 0x51EE08 // 0x51EE08
MovieShowFrameProc* _sf_ShowFrame = _do_nothing_2; static MovieShowFrameProc* _sf_ShowFrame = _do_nothing_2;
// 0x51EE0C // 0x51EE0C
int dword_51EE0C = 1; static int dword_51EE0C = 1;
// TODO: There is a default function (not yet implemented). // TODO: There is a default function (not yet implemented).
// //
// 0x51EE14 // 0x51EE14
void (*_pal_SetPalette)(unsigned char*, int, int) = NULL; static void (*_pal_SetPalette)(unsigned char*, int, int) = NULL;
// 0x51EE18 // 0x51EE18
int _rm_hold = 0; static int _rm_hold = 0;
// 0x51EE1C // 0x51EE1C
int _rm_active = 0; static int _rm_active = 0;
// 0x51EE20 // 0x51EE20
bool dword_51EE20 = false; static bool dword_51EE20 = false;
// 0x51F018 // 0x51F018
int dword_51F018[256]; static int dword_51F018[256];
// 0x51F418 // 0x51F418
unsigned short word_51F418[256] = { static unsigned short word_51F418[256] = {
// clang-format off // clang-format off
0xF8F8, 0xF8F9, 0xF8FA, 0xF8FB, 0xF8FC, 0xF8FD, 0xF8FE, 0xF8FF, 0xF8F8, 0xF8F9, 0xF8FA, 0xF8FB, 0xF8FC, 0xF8FD, 0xF8FE, 0xF8FF,
0xF800, 0xF801, 0xF802, 0xF803, 0xF804, 0xF805, 0xF806, 0xF807, 0xF800, 0xF801, 0xF802, 0xF803, 0xF804, 0xF805, 0xF806, 0xF807,
@ -141,7 +224,7 @@ unsigned short word_51F418[256] = {
}; };
// 0x51F618 // 0x51F618
unsigned short word_51F618[256] = { static unsigned short word_51F618[256] = {
// clang-format off // clang-format off
0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x0108, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x0108,
0x0109, 0x010A, 0x010B, 0x010C, 0x010D, 0x010E, 0x0208, 0x0209, 0x0109, 0x010A, 0x010B, 0x010C, 0x010D, 0x010E, 0x0208, 0x0209,
@ -179,7 +262,7 @@ unsigned short word_51F618[256] = {
}; };
// 0x51F818 // 0x51F818
unsigned int _$$R0053[16] = { static unsigned int _$$R0053[16] = {
// clang-format off // clang-format off
0xC3C3C3C3, 0xC3C3C1C3, 0xC3C3C3C1, 0xC3C3C1C1, 0xC1C3C3C3, 0xC1C3C1C3, 0xC1C3C3C1, 0xC1C3C1C1, 0xC3C3C3C3, 0xC3C3C1C3, 0xC3C3C3C1, 0xC3C3C1C1, 0xC1C3C3C3, 0xC1C3C1C3, 0xC1C3C3C1, 0xC1C3C1C1,
0xC3C1C3C3, 0xC3C1C1C3, 0xC3C1C3C1, 0xC3C1C1C1, 0xC1C1C3C3, 0xC1C1C1C3, 0xC1C1C3C1, 0xC1C1C1C1, 0xC3C1C3C3, 0xC3C1C1C3, 0xC3C1C3C1, 0xC3C1C1C1, 0xC1C1C3C3, 0xC1C1C1C3, 0xC1C1C3C1, 0xC1C1C1C1,
@ -187,7 +270,7 @@ unsigned int _$$R0053[16] = {
}; };
// 0x51F858 // 0x51F858
unsigned int _$$R0004[256] = { static unsigned int _$$R0004[256] = {
// clang-format off // clang-format off
0xC3C3C3C3, 0xC3C3C2C3, 0xC3C3C1C3, 0xC3C3C5C3, 0xC3C3C3C2, 0xC3C3C2C2, 0xC3C3C1C2, 0xC3C3C5C2, 0xC3C3C3C3, 0xC3C3C2C3, 0xC3C3C1C3, 0xC3C3C5C3, 0xC3C3C3C2, 0xC3C3C2C2, 0xC3C3C1C2, 0xC3C3C5C2,
0xC3C3C3C1, 0xC3C3C2C1, 0xC3C3C1C1, 0xC3C3C5C1, 0xC3C3C3C5, 0xC3C3C2C5, 0xC3C3C1C5, 0xC3C3C5C5, 0xC3C3C3C1, 0xC3C3C2C1, 0xC3C3C1C1, 0xC3C3C5C1, 0xC3C3C3C5, 0xC3C3C2C5, 0xC3C3C1C5, 0xC3C3C5C5,
@ -225,7 +308,7 @@ unsigned int _$$R0004[256] = {
}; };
// 0x51FC58 // 0x51FC58
unsigned int _$$R0063[256] = { static unsigned int _$$R0063[256] = {
// clang-format off // clang-format off
0xE3C3E3C3, 0xE3C7E3C3, 0xE3C1E3C3, 0xE3C5E3C3, 0xE7C3E3C3, 0xE7C7E3C3, 0xE7C1E3C3, 0xE7C5E3C3, 0xE3C3E3C3, 0xE3C7E3C3, 0xE3C1E3C3, 0xE3C5E3C3, 0xE7C3E3C3, 0xE7C7E3C3, 0xE7C1E3C3, 0xE7C5E3C3,
0xE1C3E3C3, 0xE1C7E3C3, 0xE1C1E3C3, 0xE1C5E3C3, 0xE5C3E3C3, 0xE5C7E3C3, 0xE5C1E3C3, 0xE5C5E3C3, 0xE1C3E3C3, 0xE1C7E3C3, 0xE1C1E3C3, 0xE1C5E3C3, 0xE5C3E3C3, 0xE5C7E3C3, 0xE5C1E3C3, 0xE5C5E3C3,
@ -263,180 +346,180 @@ unsigned int _$$R0063[256] = {
}; };
// 0x6B3660 // 0x6B3660
int dword_6B3660; static int dword_6B3660;
#ifdef HAVE_DSOUND #ifdef HAVE_DSOUND
// 0x6B3668 // 0x6B3668
DSBCAPS stru_6B3668; static DSBCAPS stru_6B3668;
#endif #endif
// 0x6B367C // 0x6B367C
int _sf_ScreenWidth; static int _sf_ScreenWidth;
// 0x6B3680 // 0x6B3680
int dword_6B3680; static int dword_6B3680;
// 0x6B3684 // 0x6B3684
int _rm_FrameDropCount; static int _rm_FrameDropCount;
// 0x6B3688 // 0x6B3688
int _snd_buf; static int _snd_buf;
// 0x6B3690 // 0x6B3690
STRUCT_6B3690 _io_mem_buf; static STRUCT_6B3690 _io_mem_buf;
// 0x6B369C // 0x6B369C
int _io_next_hdr; static int _io_next_hdr;
// 0x6B36A0 // 0x6B36A0
int dword_6B36A0; static int dword_6B36A0;
// 0x6B36A4 // 0x6B36A4
int dword_6B36A4; static int dword_6B36A4;
// 0x6B36A8 // 0x6B36A8
int _rm_FrameCount; static int _rm_FrameCount;
// 0x6B36AC // 0x6B36AC
int _sf_ScreenHeight; static int _sf_ScreenHeight;
// 0x6B36B0 // 0x6B36B0
int dword_6B36B0; static int dword_6B36B0;
// 0x6B36B8 // 0x6B36B8
unsigned char _palette_entries1[768]; static unsigned char _palette_entries1[768];
// 0x6B39B8 // 0x6B39B8
MallocProc* gMovieLibMallocProc; static MallocProc* gMovieLibMallocProc;
// 0x6B39BC // 0x6B39BC
int (*_rm_ctl)(); static int (*_rm_ctl)();
// 0x6B39C0 // 0x6B39C0
int _rm_dx; static int _rm_dx;
// 0x6B39C4 // 0x6B39C4
int _rm_dy; static int _rm_dy;
// 0x6B39C8 // 0x6B39C8
int _gSoundTimeBase; static int _gSoundTimeBase;
// 0x6B39CC // 0x6B39CC
int _io_handle; static int _io_handle;
// 0x6B39D0 // 0x6B39D0
int _rm_len; static int _rm_len;
// 0x6B39D4 // 0x6B39D4
FreeProc* gMovieLibFreeProc; static FreeProc* gMovieLibFreeProc;
// 0x6B39D8 // 0x6B39D8
int _snd_comp; static int _snd_comp;
// 0x6B39DC // 0x6B39DC
unsigned char* _rm_p; static unsigned char* _rm_p;
// 0x6B39E0 // 0x6B39E0
int dword_6B39E0[60]; static int dword_6B39E0[60];
// 0x6B3AD0 // 0x6B3AD0
int _sync_wait_quanta; static int _sync_wait_quanta;
// 0x6B3AD4 // 0x6B3AD4
int dword_6B3AD4; static int dword_6B3AD4;
// 0x6B3AD8 // 0x6B3AD8
int _rm_track_bit; static int _rm_track_bit;
// 0x6B3ADC // 0x6B3ADC
int _sync_time; static int _sync_time;
// 0x6B3AE0 // 0x6B3AE0
MovieReadProc* gMovieLibReadProc; static MovieReadProc* gMovieLibReadProc;
// 0x6B3AE4 // 0x6B3AE4
int dword_6B3AE4; static int dword_6B3AE4;
// 0x6B3AE8 // 0x6B3AE8
int dword_6B3AE8; static int dword_6B3AE8;
// 0x6B3CEC // 0x6B3CEC
int dword_6B3CEC; static int dword_6B3CEC;
// 0x6B3CF0 // 0x6B3CF0
int dword_6B3CF0; static int dword_6B3CF0;
// 0x6B3CF4 // 0x6B3CF4
int dword_6B3CF4; static int dword_6B3CF4;
// 0x6B3CF8 // 0x6B3CF8
int dword_6B3CF8; static int dword_6B3CF8;
// 0x6B3CFC // 0x6B3CFC
int _mveBW; static int _mveBW;
// 0x6B3D00 // 0x6B3D00
int dword_6B3D00; static int dword_6B3D00;
// 0x6B3D04 // 0x6B3D04
int dword_6B3D04; static int dword_6B3D04;
// 0x6B3D08 // 0x6B3D08
int dword_6B3D08; static int dword_6B3D08;
// 0x6B3D0C // 0x6B3D0C
unsigned char _pal_tbl[768]; static unsigned char _pal_tbl[768];
// 0x6B400C // 0x6B400C
unsigned char byte_6B400C; static unsigned char byte_6B400C;
// 0x6B400D // 0x6B400D
unsigned char byte_6B400D; static unsigned char byte_6B400D;
// 0x6B400E // 0x6B400E
int dword_6B400E; static int dword_6B400E;
// 0x6B4012 // 0x6B4012
int dword_6B4012; static int dword_6B4012;
// 0x6B4016 // 0x6B4016
unsigned char byte_6B4016; static unsigned char byte_6B4016;
// 0x6B4017 // 0x6B4017
int dword_6B4017; static int dword_6B4017;
// 0x6B401B // 0x6B401B
int dword_6B401B; static int dword_6B401B;
// 0x6B401F // 0x6B401F
int dword_6B401F; static int dword_6B401F;
// 0x6B4023 // 0x6B4023
int dword_6B4023; static int dword_6B4023;
// 0x6B4027 // 0x6B4027
int dword_6B4027; static int dword_6B4027;
// 0x6B402B // 0x6B402B
int dword_6B402B; static int dword_6B402B;
// 0x6B402F // 0x6B402F
int _mveBH; static int _mveBH;
// 0x6B4033 // 0x6B4033
unsigned char* gMovieDirectDrawSurfaceBuffer1; static unsigned char* gMovieDirectDrawSurfaceBuffer1;
// 0x6B4037 // 0x6B4037
unsigned char* gMovieDirectDrawSurfaceBuffer2; static unsigned char* gMovieDirectDrawSurfaceBuffer2;
// 0x6B403B // 0x6B403B
int dword_6B403B; static int dword_6B403B;
// 0x6B403F // 0x6B403F
int dword_6B403F; static int dword_6B403F;
SDL_Surface* gMovieSdlSurface1; static SDL_Surface* gMovieSdlSurface1;
SDL_Surface* gMovieSdlSurface2; static SDL_Surface* gMovieSdlSurface2;
// 0x4F4800 // 0x4F4800
void movieLibSetMemoryProcs(MallocProc* mallocProc, FreeProc* freeProc) void movieLibSetMemoryProcs(MallocProc* mallocProc, FreeProc* freeProc)
@ -452,7 +535,7 @@ void movieLibSetReadProc(MovieReadProc* readProc)
} }
// 0x4F4890 // 0x4F4890
void _MVE_MemInit(STRUCT_6B3690* a1, int a2, void* a3) static void _MVE_MemInit(STRUCT_6B3690* a1, int a2, void* a3)
{ {
if (a3 == NULL) { if (a3 == NULL) {
return; return;
@ -466,7 +549,7 @@ void _MVE_MemInit(STRUCT_6B3690* a1, int a2, void* a3)
} }
// 0x4F48C0 // 0x4F48C0
void _MVE_MemFree(STRUCT_6B3690* a1) static void _MVE_MemFree(STRUCT_6B3690* a1)
{ {
if (a1->field_8 && gMovieLibFreeProc != NULL) { if (a1->field_8 && gMovieLibFreeProc != NULL) {
gMovieLibFreeProc(a1->field_0); gMovieLibFreeProc(a1->field_0);
@ -538,7 +621,7 @@ void _MVE_sfCallbacks(MovieShowFrameProc* proc)
} }
// 0x4F4A00 // 0x4F4A00
void _do_nothing_2(SDL_Surface* a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9) static void _do_nothing_2(SDL_Surface* a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9)
{ {
} }
@ -549,7 +632,7 @@ void movieLibSetPaletteEntriesProc(void (*fn)(unsigned char*, int, int))
} }
// 0x4F4B50 // 0x4F4B50
int _sub_4F4B5() static int _sub_4F4B5()
{ {
return 0; return 0;
} }
@ -612,7 +695,7 @@ int _MVE_rmPrepMovie(int fileHandle, int a2, int a3, char a4)
} }
// 0x4F4C90 // 0x4F4C90
int _ioReset(int stream) static int _ioReset(int stream)
{ {
Mve* mve; Mve* mve;
@ -647,7 +730,7 @@ int _ioReset(int stream)
// Reads data from movie file. // Reads data from movie file.
// //
// 0x4F4D00 // 0x4F4D00
void* _ioRead(int size) static void* _ioRead(int size)
{ {
void* buf; void* buf;
@ -660,7 +743,7 @@ void* _ioRead(int size)
} }
// 0x4F4D40 // 0x4F4D40
void* _MVE_MemAlloc(STRUCT_6B3690* a1, unsigned int a2) static void* _MVE_MemAlloc(STRUCT_6B3690* a1, unsigned int a2)
{ {
void* ptr; void* ptr;
@ -687,7 +770,7 @@ void* _MVE_MemAlloc(STRUCT_6B3690* a1, unsigned int a2)
} }
// 0x4F4DA0 // 0x4F4DA0
unsigned char* _ioNextRecord() static unsigned char* _ioNextRecord()
{ {
unsigned char* buf; unsigned char* buf;
@ -702,7 +785,7 @@ unsigned char* _ioNextRecord()
} }
// 0x4F4DD0 // 0x4F4DD0
void _sub_4F4DD() static void _sub_4F4DD()
{ {
if (dword_51EE20) { if (dword_51EE20) {
return; return;
@ -714,7 +797,7 @@ void _sub_4F4DD()
} }
// 0x4F4E20 // 0x4F4E20
int _MVE_rmHoldMovie() static int _MVE_rmHoldMovie()
{ {
if (!_rm_hold) { if (!_rm_hold) {
_MVE_sndPause(); _MVE_sndPause();
@ -725,7 +808,7 @@ int _MVE_rmHoldMovie()
} }
// 0x4F4E40 // 0x4F4E40
int _syncWait() static int _syncWait()
{ {
int result; int result;
@ -743,7 +826,7 @@ int _syncWait()
} }
// 0x4F4EA0 // 0x4F4EA0
void _MVE_sndPause() static void _MVE_sndPause()
{ {
#ifdef HAVE_DSOUND #ifdef HAVE_DSOUND
if (gMovieLibDirectSoundBuffer != NULL) { if (gMovieLibDirectSoundBuffer != NULL) {
@ -1036,7 +1119,7 @@ LABEL_5:
} }
// 0x4F54F0 // 0x4F54F0
int _syncInit(int a1, int a2) static int _syncInit(int a1, int a2)
{ {
int v2; int v2;
@ -1056,14 +1139,14 @@ int _syncInit(int a1, int a2)
} }
// 0x4F5540 // 0x4F5540
void _syncReset(int a1) static void _syncReset(int a1)
{ {
_sync_active = 1; _sync_active = 1;
_sync_time = -1000 * compat_timeGetTime() + a1; _sync_time = -1000 * compat_timeGetTime() + a1;
} }
// 0x4F5570 // 0x4F5570
int _MVE_sndConfigure(int a1, int a2, int a3, int a4, int a5, int a6) static int _MVE_sndConfigure(int a1, int a2, int a3, int a4, int a5, int a6)
{ {
#ifdef HAVE_DSOUND #ifdef HAVE_DSOUND
DSBUFFERDESC dsbd; DSBUFFERDESC dsbd;
@ -1117,7 +1200,7 @@ int _MVE_sndConfigure(int a1, int a2, int a3, int a4, int a5, int a6)
} }
// 0x4F56C0 // 0x4F56C0
void _MVE_syncSync() static void _MVE_syncSync()
{ {
if (_sync_active) { if (_sync_active) {
while (((_sync_time + 1000 * compat_timeGetTime()) & 0x80000000) != 0) { while (((_sync_time + 1000 * compat_timeGetTime()) & 0x80000000) != 0) {
@ -1126,7 +1209,7 @@ void _MVE_syncSync()
} }
// 0x4F56F0 // 0x4F56F0
void _MVE_sndReset() static void _MVE_sndReset()
{ {
#ifdef HAVE_DSOUND #ifdef HAVE_DSOUND
if (gMovieLibDirectSoundBuffer != NULL) { if (gMovieLibDirectSoundBuffer != NULL) {
@ -1138,7 +1221,7 @@ void _MVE_sndReset()
} }
// 0x4F5720 // 0x4F5720
void _MVE_sndSync() static void _MVE_sndSync()
{ {
#ifdef HAVE_DSOUND #ifdef HAVE_DSOUND
DWORD dwCurrentPlayCursor; DWORD dwCurrentPlayCursor;
@ -1285,7 +1368,7 @@ void _MVE_sndSync()
} }
// 0x4F59B0 // 0x4F59B0
int _syncWaitLevel(int a1) static int _syncWaitLevel(int a1)
{ {
int v2; int v2;
int result; int result;
@ -1305,7 +1388,7 @@ int _syncWaitLevel(int a1)
} }
// 0x4F5A00 // 0x4F5A00
void _CallsSndBuff_Loc(unsigned char* a1, int a2) static void _CallsSndBuff_Loc(unsigned char* a1, int a2)
{ {
#ifdef HAVE_DSOUND #ifdef HAVE_DSOUND
int v2; int v2;
@ -1373,7 +1456,7 @@ void _CallsSndBuff_Loc(unsigned char* a1, int a2)
} }
// 0x4F5B70 // 0x4F5B70
int _MVE_sndAdd(unsigned char* dest, unsigned char** src_ptr, int a3, int a4, int a5) static int _MVE_sndAdd(unsigned char* dest, unsigned char** src_ptr, int a3, int a4, int a5)
{ {
int v5; int v5;
int v7; int v7;
@ -1440,12 +1523,12 @@ int _MVE_sndAdd(unsigned char* dest, unsigned char** src_ptr, int a3, int a4, in
} }
// 0x4F5CA0 // 0x4F5CA0
void _MVE_sndResume() static void _MVE_sndResume()
{ {
} }
// 0x4F5CB0 // 0x4F5CB0
int _nfConfig(int a1, int a2, int a3, int a4) static int _nfConfig(int a1, int a2, int a3, int a4)
{ {
if (gMovieSdlSurface1 != NULL) { if (gMovieSdlSurface1 != NULL) {
SDL_FreeSurface(gMovieSdlSurface1); SDL_FreeSurface(gMovieSdlSurface1);
@ -1510,7 +1593,7 @@ int _nfConfig(int a1, int a2, int a3, int a4)
} }
// 0x4F5E60 // 0x4F5E60
bool movieLockSurfaces() static bool movieLockSurfaces()
{ {
if (gMovieSdlSurface1 != NULL && gMovieSdlSurface2 != NULL) { if (gMovieSdlSurface1 != NULL && gMovieSdlSurface2 != NULL) {
if (SDL_LockSurface(gMovieSdlSurface1) != 0) { if (SDL_LockSurface(gMovieSdlSurface1) != 0) {
@ -1530,14 +1613,14 @@ bool movieLockSurfaces()
} }
// 0x4F5EF0 // 0x4F5EF0
void movieUnlockSurfaces() static void movieUnlockSurfaces()
{ {
SDL_UnlockSurface(gMovieSdlSurface1); SDL_UnlockSurface(gMovieSdlSurface1);
SDL_UnlockSurface(gMovieSdlSurface2); SDL_UnlockSurface(gMovieSdlSurface2);
} }
// 0x4F5F20 // 0x4F5F20
void movieSwapSurfaces() static void movieSwapSurfaces()
{ {
SDL_Surface* tmp = gMovieSdlSurface2; SDL_Surface* tmp = gMovieSdlSurface2;
gMovieSdlSurface2 = gMovieSdlSurface1; gMovieSdlSurface2 = gMovieSdlSurface1;
@ -1545,7 +1628,7 @@ void movieSwapSurfaces()
} }
// 0x4F5F40 // 0x4F5F40
void _sfShowFrame(int a1, int a2, int a3) static void _sfShowFrame(int a1, int a2, int a3)
{ {
int v3; int v3;
int v4; int v4;
@ -1598,12 +1681,12 @@ void _sfShowFrame(int a1, int a2, int a3)
} }
// 0x4F6080 // 0x4F6080
void _do_nothing_(int a1, int a2, unsigned short* a3) static void _do_nothing_(int a1, int a2, unsigned short* a3)
{ {
} }
// 0x4F6090 // 0x4F6090
void _SetPalette_1(int a1, int a2) static void _SetPalette_1(int a1, int a2)
{ {
if (!dword_6B4027) { if (!dword_6B4027) {
_pal_SetPalette(_pal_tbl, a1, a2); _pal_SetPalette(_pal_tbl, a1, a2);
@ -1611,7 +1694,7 @@ void _SetPalette_1(int a1, int a2)
} }
// 0x4F60C0 // 0x4F60C0
void _SetPalette_(int a1, int a2) static void _SetPalette_(int a1, int a2)
{ {
if (!dword_6B4027) { if (!dword_6B4027) {
_pal_SetPalette(_palette_entries1, a1, a2); _pal_SetPalette(_palette_entries1, a1, a2);
@ -1619,7 +1702,7 @@ void _SetPalette_(int a1, int a2)
} }
// 0x4F60F0 // 0x4F60F0
void _palMakeSynthPalette(int a1, int a2, int a3, int a4, int a5, int a6) static void _palMakeSynthPalette(int a1, int a2, int a3, int a4, int a5, int a6)
{ {
int i; int i;
int j; int j;
@ -1642,7 +1725,7 @@ void _palMakeSynthPalette(int a1, int a2, int a3, int a4, int a5, int a6)
} }
// 0x4F6210 // 0x4F6210
void _palLoadPalette(unsigned char* palette, int a2, int a3) static void _palLoadPalette(unsigned char* palette, int a2, int a3)
{ {
memcpy(_pal_tbl + 3 * a2, palette, 3 * a3); memcpy(_pal_tbl + 3 * a2, palette, 3 * a3);
} }
@ -1659,7 +1742,7 @@ void _MVE_rmEndMovie()
} }
// 0x4F6270 // 0x4F6270
void _syncRelease() static void _syncRelease()
{ {
_sync_active = 0; _sync_active = 0;
} }
@ -1674,18 +1757,18 @@ void _MVE_ReleaseMem()
} }
// 0x4F6370 // 0x4F6370
void _ioRelease() static void _ioRelease()
{ {
_MVE_MemFree(&_io_mem_buf); _MVE_MemFree(&_io_mem_buf);
} }
// 0x4F6380 // 0x4F6380
void _MVE_sndRelease() static void _MVE_sndRelease()
{ {
} }
// 0x4F6390 // 0x4F6390
void _nfRelease() static void _nfRelease()
{ {
if (gMovieSdlSurface1 != NULL) { if (gMovieSdlSurface1 != NULL) {
SDL_FreeSurface(gMovieSdlSurface1); SDL_FreeSurface(gMovieSdlSurface1);
@ -1699,7 +1782,7 @@ void _nfRelease()
} }
// 0x4F6550 // 0x4F6550
void _frLoad(STRUCT_4F6930* a1) static void _frLoad(STRUCT_4F6930* a1)
{ {
gMovieLibReadProc = a1->readProc; gMovieLibReadProc = a1->readProc;
_io_mem_buf.field_0 = a1->field_8.field_0; _io_mem_buf.field_0 = a1->field_8.field_0;
@ -1724,7 +1807,7 @@ void _frLoad(STRUCT_4F6930* a1)
} }
// 0x4F6610 // 0x4F6610
void _frSave(STRUCT_4F6930* a1) static void _frSave(STRUCT_4F6930* a1)
{ {
STRUCT_6B3690* ptr; STRUCT_6B3690* ptr;
@ -1752,7 +1835,7 @@ void _frSave(STRUCT_4F6930* a1)
} }
// 0x4F6930 // 0x4F6930
void _MVE_frClose(STRUCT_4F6930* a1) static void _MVE_frClose(STRUCT_4F6930* a1)
{ {
STRUCT_4F6930 v1; STRUCT_4F6930 v1;
@ -1768,7 +1851,7 @@ void _MVE_frClose(STRUCT_4F6930* a1)
} }
// 0x4F697C // 0x4F697C
int _MVE_sndDecompM16(unsigned short* a1, unsigned char* a2, int a3, int a4) static int _MVE_sndDecompM16(unsigned short* a1, unsigned char* a2, int a3, int a4)
{ {
int i; int i;
int v8; int v8;
@ -1787,7 +1870,7 @@ int _MVE_sndDecompM16(unsigned short* a1, unsigned char* a2, int a3, int a4)
} }
// 0x4F69AD // 0x4F69AD
int _MVE_sndDecompS16(unsigned short* a1, unsigned char* a2, int a3, int a4) static int _MVE_sndDecompS16(unsigned short* a1, unsigned char* a2, int a3, int a4)
{ {
int i; int i;
unsigned short v4; unsigned short v4;
@ -1812,7 +1895,7 @@ int _MVE_sndDecompS16(unsigned short* a1, unsigned char* a2, int a3, int a4)
} }
// 0x4F731D // 0x4F731D
void _nfPkConfig() static void _nfPkConfig()
{ {
int* ptr; int* ptr;
int v1; int v1;
@ -1842,7 +1925,7 @@ void _nfPkConfig()
} }
// 0x4F7359 // 0x4F7359
void _nfPkDecomp(unsigned char* a1, unsigned char* a2, int a3, int a4, int a5, int a6) static void _nfPkDecomp(unsigned char* a1, unsigned char* a2, int a3, int a4, int a5, int a6)
{ {
int v49; int v49;
unsigned char* dest; unsigned char* dest;

View File

@ -6,140 +6,11 @@
#include <SDL.h> #include <SDL.h>
typedef struct STRUCT_6B3690 {
void* field_0;
int field_4;
int field_8;
} STRUCT_6B3690;
#pragma pack(2)
typedef struct Mve {
char sig[20];
short field_14;
short field_16;
short field_18;
int field_1A;
} Mve;
#pragma pack()
typedef bool MovieReadProc(int fileHandle, void* buffer, int count); typedef bool MovieReadProc(int fileHandle, void* buffer, int count);
typedef void(MovieShowFrameProc)(SDL_Surface*, int, int, int, int, int, int, int, int); typedef void(MovieShowFrameProc)(SDL_Surface*, int, int, int, int, int, int, int, int);
typedef struct STRUCT_4F6930 {
int field_0;
MovieReadProc* readProc;
STRUCT_6B3690 field_8;
int fileHandle;
int field_18;
SDL_Surface* field_24;
SDL_Surface* field_28;
int field_2C;
unsigned char* field_30;
unsigned char* field_34;
unsigned char field_38;
unsigned char field_39;
unsigned char field_3A;
unsigned char field_3B;
int field_3C;
int field_40;
int field_44;
int field_48;
int field_4C;
int field_50;
} STRUCT_4F6930;
extern int dword_51EBD8;
extern int dword_51EBDC;
extern unsigned short word_51EBE0[256];
extern int _sync_active;
extern int _sync_late;
extern int _sync_FrameDropped;
#ifdef HAVE_DSOUND
extern LPDIRECTSOUND gMovieLibDirectSound;
extern LPDIRECTSOUNDBUFFER gMovieLibDirectSoundBuffer;
#endif
extern int gMovieLibVolume;
extern int gMovieLibPan;
extern MovieShowFrameProc* _sf_ShowFrame;
extern int dword_51EE0C;
extern void (*_pal_SetPalette)(unsigned char*, int, int);
extern int _rm_hold;
extern int _rm_active;
extern bool dword_51EE20;
extern int dword_51F018[256];
extern unsigned short word_51F418[256];
extern unsigned short word_51F618[256];
extern unsigned int _$$R0053[16];
extern unsigned int _$$R0004[256];
extern unsigned int _$$R0063[256];
extern int dword_6B3660;
#ifdef HAVE_DSOUND
extern DSBCAPS stru_6B3668;
#endif
extern int _sf_ScreenWidth;
extern int dword_6B3680;
extern int _rm_FrameDropCount;
extern int _snd_buf;
extern STRUCT_6B3690 _io_mem_buf;
extern int _io_next_hdr;
extern int dword_6B36A0;
extern int dword_6B36A4;
extern int _rm_FrameCount;
extern int _sf_ScreenHeight;
extern int dword_6B36B0;
extern unsigned char _palette_entries1[768];
extern MallocProc* gMovieLibMallocProc;
extern int (*_rm_ctl)();
extern int _rm_dx;
extern int _rm_dy;
extern int _gSoundTimeBase;
extern int _io_handle;
extern int _rm_len;
extern FreeProc* gMovieLibFreeProc;
extern int _snd_comp;
extern unsigned char* _rm_p;
extern int dword_6B39E0[60];
extern int _sync_wait_quanta;
extern int dword_6B3AD4;
extern int _rm_track_bit;
extern int _sync_time;
extern MovieReadProc* gMovieLibReadProc;
extern int dword_6B3AE4;
extern int dword_6B3AE8;
extern int dword_6B3CEC;
extern int dword_6B3CF0;
extern int dword_6B3CF4;
extern int dword_6B3CF8;
extern int _mveBW;
extern int dword_6B3D00;
extern int dword_6B3D04;
extern int dword_6B3D08;
extern unsigned char _pal_tbl[768];
extern unsigned char byte_6B400C;
extern unsigned char byte_6B400D;
extern int dword_6B400E;
extern int dword_6B4012;
extern unsigned char byte_6B4016;
extern int dword_6B4017;
extern int dword_6B401B;
extern int dword_6B401F;
extern int dword_6B4023;
extern int dword_6B4027;
extern int dword_6B402B;
extern int _mveBH;
extern unsigned char* gMovieDirectDrawSurfaceBuffer1;
extern unsigned char* gMovieDirectDrawSurfaceBuffer2;
extern int dword_6B403B;
extern int dword_6B403F;
extern SDL_Surface* gMovieSdlSurface1;
extern SDL_Surface* gMovieSdlSurface2;
void movieLibSetMemoryProcs(MallocProc* mallocProc, FreeProc* freeProc); void movieLibSetMemoryProcs(MallocProc* mallocProc, FreeProc* freeProc);
void movieLibSetReadProc(MovieReadProc* readProc); void movieLibSetReadProc(MovieReadProc* readProc);
void _MVE_MemInit(STRUCT_6B3690* a1, int a2, void* a3);
void _MVE_MemFree(STRUCT_6B3690* a1);
#ifdef HAVE_DSOUND #ifdef HAVE_DSOUND
void movieLibSetDirectSound(LPDIRECTSOUND ds); void movieLibSetDirectSound(LPDIRECTSOUND ds);
#endif #endif
@ -147,54 +18,13 @@ void movieLibSetVolume(int volume);
void movieLibSetPan(int pan); void movieLibSetPan(int pan);
void _MVE_sfSVGA(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9); void _MVE_sfSVGA(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9);
void _MVE_sfCallbacks(MovieShowFrameProc* proc); void _MVE_sfCallbacks(MovieShowFrameProc* proc);
void _do_nothing_2(SDL_Surface* a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9);
void movieLibSetPaletteEntriesProc(void (*fn)(unsigned char*, int, int)); void movieLibSetPaletteEntriesProc(void (*fn)(unsigned char*, int, int));
int _sub_4F4B5();
void _MVE_rmCallbacks(int (*fn)()); void _MVE_rmCallbacks(int (*fn)());
void _sub_4F4BB(int a1); void _sub_4F4BB(int a1);
void _MVE_rmFrameCounts(int* a1, int* a2); void _MVE_rmFrameCounts(int* a1, int* a2);
int _MVE_rmPrepMovie(int fileHandle, int a2, int a3, char a4); int _MVE_rmPrepMovie(int fileHandle, int a2, int a3, char a4);
int _ioReset(int fileHandle);
void* _ioRead(int size);
void* _MVE_MemAlloc(STRUCT_6B3690* a1, unsigned int a2);
unsigned char* _ioNextRecord();
void _sub_4F4DD();
int _MVE_rmHoldMovie();
int _syncWait();
void _MVE_sndPause();
int _MVE_rmStepMovie(); int _MVE_rmStepMovie();
int _syncInit(int a1, int a2);
void _syncReset(int a1);
int _MVE_sndConfigure(int a1, int a2, int a3, int a4, int a5, int a6);
void _MVE_syncSync();
void _MVE_sndReset();
void _MVE_sndSync();
int _syncWaitLevel(int a1);
void _CallsSndBuff_Loc(unsigned char* a1, int a2);
int _MVE_sndAdd(unsigned char* dest, unsigned char** src_ptr, int a3, int a4, int a5);
void _MVE_sndResume();
int _nfConfig(int a1, int a2, int a3, int a4);
bool movieLockSurfaces();
void movieUnlockSurfaces();
void movieSwapSurfaces();
void _sfShowFrame(int a1, int a2, int a3);
void _do_nothing_(int a1, int a2, unsigned short* a3);
void _SetPalette_1(int a1, int a2);
void _SetPalette_(int a1, int a2);
void _palMakeSynthPalette(int a1, int a2, int a3, int a4, int a5, int a6);
void _palLoadPalette(unsigned char* palette, int a2, int a3);
void _MVE_rmEndMovie(); void _MVE_rmEndMovie();
void _syncRelease();
void _MVE_ReleaseMem(); void _MVE_ReleaseMem();
void _ioRelease();
void _MVE_sndRelease();
void _nfRelease();
void _frLoad(STRUCT_4F6930* a1);
void _frSave(STRUCT_4F6930* a1);
void _MVE_frClose(STRUCT_4F6930* a1);
int _MVE_sndDecompM16(unsigned short* a1, unsigned char* a2, int a3, int a4);
int _MVE_sndDecompS16(unsigned short* a1, unsigned char* a2, int a3, int a4);
void _nfPkConfig();
void _nfPkDecomp(unsigned char* buf, unsigned char* a2, int a3, int a4, int a5, int a6);
#endif /* MOVIE_LIB_H */ #endif /* MOVIE_LIB_H */