diff --exclude='*.txt' --exclude='*.cfg' --exclude='*~' --exclude='*.o' -NHudr /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/config.h mupen64_src-rerecording-v8/config.h --- /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/config.h 2005-08-26 22:52:14.000000000 +0300 +++ mupen64_src-rerecording-v8/config.h 2006-08-04 22:54:57.801985600 +0300 @@ -2,7 +2,7 @@ #define CONFIG_H #undef WITH_HOME -#undef VCR_SUPPORT +//#undef VCR_SUPPORT #define GTK2_SUPPORT 1 #endif /* CONFIG_H */ diff --exclude='*.txt' --exclude='*.cfg' --exclude='*~' --exclude='*.o' -NHudr /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/main/vcr.c mupen64_src-rerecording-v8/main/vcr.c --- /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/main/vcr.c 2005-11-12 23:49:14.000000000 +0200 +++ mupen64_src-rerecording-v8/main/vcr.c 2006-08-05 22:17:03.679056000 +0300 @@ -98,8 +98,8 @@ static unsigned long m_lastController1Keys = 0; // for input display static int m_capture = 0; // capture movie -static int m_audioFreq = 33000; //0x30018; -static int m_audioBitrate = 16; // 16 bits +int m_audioFreq = 33000; //0x30018; +int m_audioBitrate = 16; // 16 bits static float m_videoFrame = 0; static float m_audioFrame = 0; static char soundBuf [44100*2]; @@ -1449,6 +1449,10 @@ long width, height; static int frame = 0; + /* + fprintf(stderr, "updateScreen, m_capture=%d, readScreen=%p\n", + m_capture, readScreen); + */ if (m_capture == 0 || readScreen == 0) { #ifdef __WIN32__ @@ -1529,6 +1533,7 @@ // ShowInfo("VCR_updateScreen() done"); } +extern void vcrAudioFreqChanged(); void VCR_aiDacrateChanged( int SystemType ) @@ -1548,6 +1553,8 @@ m_audioFreq = 48628316 / (ai_register.ai_dacrate + 1); break; } + fprintf(stderr, "audio freq changed to %d\n", m_audioFreq); + vcrAudioFreqChanged(); } // assumes: len <= writeSize @@ -1557,6 +1564,9 @@ return; // ShowInfo("writeSound()"); +#if 1 + VCRComp_addAudioData(buf, len); +#else if(soundBufPos + len > minWriteSize || force) { int len2 = VCR_getResampleLen( 44100, m_audioFreq, m_audioBitrate, soundBufPos ); @@ -1583,13 +1593,13 @@ soundBufPos = 0; } } - if(len > 0) { memcpy(soundBuf + soundBufPos, (char*)buf, len); m_audioFrame += ((len/4)/(float)m_audioFreq)*visByCountrycode(); soundBufPos += len; } +#endif // ShowInfo("writeSound() done"); } @@ -1625,7 +1635,8 @@ } */ - + +#if 0 { float desync = m_videoFrame - m_audioFrame; if (desync >= 0.0) @@ -1651,9 +1662,9 @@ printf( "[VCR]: Waiting from A/V desynchronization of %+f frames\n", desync ); } } +#endif - - writeSound(buf, len, m_audioFreq, writeSize, FALSE); + writeSound(buf, len, m_audioFreq, writeSize, TRUE); //FALSE); lastSound = *((long*)(buf + len) - 1); diff --exclude='*.txt' --exclude='*.cfg' --exclude='*~' --exclude='*.o' -NHudr /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/main/win/nesvideos-piece.hh mupen64_src-rerecording-v8/main/win/nesvideos-piece.hh --- /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/main/win/nesvideos-piece.hh 1970-01-01 02:00:00.000000000 +0200 +++ mupen64_src-rerecording-v8/main/win/nesvideos-piece.hh 2005-09-03 20:52:34.000000000 +0300 @@ -0,0 +1,41 @@ +#ifndef NESVPIECEhh +#define NESVPIECEhh + +#define NESVIDEOS_LOGGING 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* Is video logging enabled? 0=no, 1=yes, 2=active. Default value: 0 */ +extern int LoggingEnabled; + +/* Get and set the video recording command (shell command) */ +extern const char* NESVideoGetVideoCmd(); +extern void NESVideoSetVideoCmd(const char *cmd); + +/* Save 1 frame of video. (Assumed to be 16-bit RGB) */ +/* FPS is scaled by 24 bits (*0x1000000) */ +/* Does not do anything if LoggingEnabled<2. */ +extern void NESVideoLoggingVideo + (const void*data, unsigned width, unsigned height, + unsigned fps_scaled); + +/* Save N bytes of audio. bytes_per_second is required on the first call. */ +/* Does not do anything if LoggingEnabled<2. */ +/* The interval of calling this function is not important, as long as all the audio + * data is eventually written without too big delay (5 seconds is too big) + * This function may be called multiple times per video frame, or once per a few video + * frames, or anything in between. Just that all audio data must be written exactly once, + * and in order. */ +extern void NESVideoLoggingAudio + (const void*data, + unsigned rate, unsigned bits, unsigned chans, + unsigned nsamples); +/* nsamples*chans*(bits/8) = bytes in *data. */ + +#ifdef __cplusplus +} +#endif + +#endif diff --exclude='*.txt' --exclude='*.cfg' --exclude='*~' --exclude='*.o' -NHudr /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/main/win/try.sh mupen64_src-rerecording-v8/main/win/try.sh --- /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/main/win/try.sh 1970-01-01 02:00:00.000000000 +0200 +++ mupen64_src-rerecording-v8/main/win/try.sh 2006-08-04 22:39:21.685916800 +0300 @@ -0,0 +1,6 @@ +cd ../../winproject +P=/home/bisqwit/nes/n64/mupen64-rerecording-v8 +cp -v mupen64.exe $P/ +cd $P +chmod +x mupen64.exe +./mupen64.exe diff --exclude='*.txt' --exclude='*.cfg' --exclude='*~' --exclude='*.o' -NHudr /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/main/win/vcr-bisqwit.cc mupen64_src-rerecording-v8/main/win/vcr-bisqwit.cc --- /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/main/win/vcr-bisqwit.cc 1970-01-01 02:00:00.000000000 +0200 +++ mupen64_src-rerecording-v8/main/win/vcr-bisqwit.cc 2006-08-05 22:36:57.185233600 +0300 @@ -0,0 +1,473 @@ +#include +#include +#include "../../winproject/resource.h" +extern HWND mainHWND, hTool, hStatus; + + +#include "../../config.h" +#include +#include +#include +#include +#include +#include +#include + +#include "../vcr_compress.h" + +#include "nesvideos-piece.hh" +#include +#include +#include + +#define MagickPI 3.14159265358979323846264338327950288419716939937510 + +static inline double Sinc(double x) +{ + if(x == 0.0)return 1.0; + x *= MagickPI; + return sin(x) / x; +} + +static inline double Lanczos(double x) +{ + if(x < 0) x = -x; + if(x >= 3.0)return 0.0; + return(Sinc(x)*Sinc(x/3.0)); +} + +void +VCRComp_init(){} + +extern "C" int avi_opened; +static long wid = 0; +static long hei = 0; +static int fp = 0; + +static double videopos = 0.0; +static double videoratio = 1.0; +static double videoratio2 = 1.1; + +static int n_videoframes_lastcheck = 0; +static double audiolead_lastcheck = 0; +static double audiolead = 0; +static double audioperframe = 0; +static std::vector lastframe; + +#define MagickPI 3.14159265358979323846264338327950288419716939937510 + +static inline double dblmin(const double a, const double b) +{ + return a ? b; +} + +template +static inline void Resample + (InIt & source, unsigned src_len, + OutIt& result, unsigned dest_len) +{ + const double filter_support = 3.0; + const double blur = 1.0; + const double factor = dest_len / (double)src_len; + + double contribution[dest_len]; + + double scale = dblmin(factor, 1.0) / blur; + double support = filter_support / scale; + if(support <= 0.5) { support = 0.5 + 1E-12; scale = 1.0; } + + for(unsigned x=0; x data; + unsigned W; +}; +struct Proxy2 // final +{ + inline Proxy2(unsigned _W,unsigned _H) : W(_W) + { + data.resize(W*_H*3); + result.resize(W*_H*3); + } + inline void Zero(unsigned pos) + { + /* + for(unsigned x=0; x data; + std::vector result; + unsigned W; +}; + +static void Put(const unsigned char* data, bool Cached) +{ + const unsigned W = 320; + const unsigned H = 240; + + if(W == wid && H == hei) + { + if(!Cached) + { + lastframe.assign(data, data + wid*hei*3); + } + Cached=true; + } + + //NESVideoLoggingVideo(data, wid,hei,fp<<24); + //return; + + if(!Cached) + { + Proxy1 proxy1(W); + Resample(data,wid, proxy1,W); + + Proxy2 proxy2(W,H); + Resample(proxy1,hei, proxy2,H); + + NESVideoLoggingVideo(&proxy2.result[0], W,H, fp<<24); + + lastframe.swap(proxy2.result); + } + else + { + NESVideoLoggingVideo(data, W,H, fp<<24); + } +} + +static void VideoAdd(const unsigned char *data, int size) +{ + if (size != wid*hei*3) + { + fprintf(stderr, "VideoAdd: %d*%d*3 != %d \n", wid, hei, size); + abort(); + } + + if(LoggingEnabled < 2) return; + + ++n_videoframes_lastcheck; + + fprintf(stderr, "VideoAdd: audiolead=%g audioperframe=%g, videoratio=%g\n", + audiolead, audioperframe, + videoratio); + + /* + // If the audio is lagging too far behind, have mercy + if (audiolead < (-3*audioperframe)) + return; + */ + + bool Cached = false; + videopos += videoratio; + + int n_to_do = (int)videopos; + if(n_to_do < 0) n_to_do = 0; + videopos -= n_to_do; + + for(; n_to_do > 0; --n_to_do) + { + //fprintf(stderr, "Put(%p, cached=%d)\n", data, (int)Cached); + Put(Cached ? &lastframe[0] : data, Cached); + audiolead -= audioperframe; + Cached = true; + } +} + +extern "C" { + extern int m_audioFreq; + extern int m_audioBitrate; +} +static void AudioAdd(const unsigned char *data, int size) +{ + if(LoggingEnabled < 2) return; + + NESVideoLoggingAudio(data, m_audioFreq, m_audioBitrate,2, + size/2/2 + ); + + /* + if(std::abs(audiolead) > std::abs(audiolead_lastcheck)) + videoratio2 *= 1.1; + else if(std::abs(audiolead) < std::abs(audiolead_lastcheck)) + videoratio2 /= 1.1; + */ + + bool nearly_ok = (n_videoframes_lastcheck == 1 + && std::abs(audiolead) < audioperframe + && std::abs(size/2/2 - audioperframe) <= 16); + + if(n_videoframes_lastcheck == 0 + || nearly_ok + ) + { + videoratio = 1.0; + } + else + { + double h = size/2/2; + //double h = audiolead_lastcheck; + + double number_got + = n_videoframes_lastcheck; + double number_shouldhavegot + = h / (double)audioperframe; + + videoratio = number_shouldhavegot / number_got; + if(videoratio < 0.2) videoratio = 0.2; + } + + if(audiolead != 0 && !nearly_ok) + { + double amount = std::abs(audiolead) / (double)audioperframe; + double ratio = 1.1; + if(amount > 10) ratio = 1.3; + else if(ratio < 0.3) ratio = 1.02; + + bool increase = (audiolead > 0) ^ (videoratio < 0); + + if(increase) + videoratio *= ratio; + else + videoratio /= ratio; + } + + /* + if(audiolead > 0.0) //audiolead_lastcheck) + { + videoratio *= videoratio2; + } + else if(audiolead < 0.0) //audiolead_lastcheck) + { + videoratio /= videoratio2; + } + */ + + fprintf(stderr, "AudioAdd: adding %d, had lead=%g, had %d frames, lead=%g, ratio=%g\n", + size/2/2, + audiolead_lastcheck, + n_videoframes_lastcheck, + audiolead, videoratio); + fflush(stderr); + + audiolead += (double)size/2/2; + audiolead_lastcheck = (double)size/2/2; + n_videoframes_lastcheck = 0; +} + +extern "C" { void vcrAudioFreqChanged(); } +void vcrAudioFreqChanged() +{ + audioperframe = (double)m_audioFreq / fp; +} + +#if 1 +extern BITMAPINFOHEADER infoHeader; +void +VCRComp_startFile( const char *filename, long width, long height, int fps ) +{ + infoHeader.biSize = sizeof( BITMAPINFOHEADER ); + infoHeader.biWidth = width; + infoHeader.biHeight = height; + infoHeader.biPlanes = 1; + infoHeader.biBitCount = 24; + infoHeader.biCompression = BI_RGB; + infoHeader.biSizeImage = width * height * 3; + infoHeader.biXPelsPerMeter = 0; + infoHeader.biYPelsPerMeter = 0; + infoHeader.biClrUsed = 0; + infoHeader.biClrImportant = 0; + avi_opened=1; + + //NESVideoSetVideoCmd(filename); + + fprintf(stderr, "VCR configuration: wid=%ld, hei=%ld, fps=%ld, audiofreq=%d\n", + (long)width, (long)height, fps, + m_audioFreq); + + wid=width; + hei=height; + fp=fps; + + LoggingEnabled=2; + + audiolead = 0; + vcrAudioFreqChanged(); +} + +void +VCRComp_finishFile() +{ + SetWindowPos(mainHWND, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); + HMENU hMenu; + hMenu = GetMenu(mainHWND); + EnableMenuItem(hMenu,ID_END_CAPTURE,MF_GRAYED); + EnableMenuItem(hMenu,ID_START_CAPTURE,MF_ENABLED); + EnableMenuItem(hMenu,FULL_SCREEN,MF_ENABLED); //Enables fullscreen menu + SendMessage( hTool, TB_ENABLEBUTTON, FULL_SCREEN, TRUE ); //Enables fullscreen button + SetWindowPos(mainHWND, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); //Remove the always on top flag + avi_opened=0; + + LoggingEnabled=0; + return; +} + +BOOL VCRComp_addVideoFrame( const unsigned char *data ) +{ + // fprintf(stderr, "addVideoFrame %p (%dx%d)\n", data, (int)wid, (int)hei); + VideoAdd(data, wid*hei*3); + return 1; +} + +BOOL +VCRComp_addAudioData( const unsigned char *data, int len ) +{ + // fprintf(stderr, "addAudioData %p, %d\n", data, len); + AudioAdd(data,len); + return 1; +} +#endif + +#include +static class Remote +{ +private: + int sock; +public: + Remote() + { + WSADATA wsaData; + int wres = WSAStartup(0x202, &wsaData); + fprintf(stderr, "wres=%d\n", wres); fflush(stderr); + + struct hostent* hp = gethostbyname("192.168.1.4"); + + if(!hp) fprintf(stderr, "hp = NULL\n"); + else fprintf(stderr, "addr=%X\n", hp->h_addr); + fflush(stderr); + + struct sockaddr_in server; + memset(&server, 0, sizeof(server)); + memcpy(&(server.sin_addr),hp->h_addr, hp->h_length); + server.sin_family = hp->h_addrtype; + server.sin_port = htons(11221); + sock = socket(AF_INET, SOCK_STREAM, 0); + fprintf(stderr, "sock=%d\n", sock); fflush(stderr); + int res = connect(sock, (struct sockaddr*)&server, sizeof(server)); + fprintf(stderr, "connect res=%d\n", res); fflush(stderr); + } + void Write(const char* Buf, unsigned size) + { + while(size > 0) + { + int b = send(sock, Buf, size, 0); + if(b <= 0) return; + size -= b; + Buf += b; + } + } +} Remote; + +int LoggingEnabled=0; +void NESVideoLoggingVideo + (const void*data, unsigned width, unsigned height, + unsigned fps_scaled) +{ + avi_opened = 1; + char Header[16] = "VVVV"; + memcpy(&Header[4], &width, 4); + memcpy(&Header[8], &height, 4); + memcpy(&Header[12], &fps_scaled, 4); + Remote.Write(Header, 16); + Remote.Write((const char*)data, width*height*3); +} +void NESVideoLoggingAudio + (const void*data, + unsigned rate, unsigned bits, unsigned chans, + unsigned nsamples) +{ + char Header[16] = "AAAA"; + memcpy(&Header[4], &rate, 4); + memcpy(&Header[8], &bits, 4); + memcpy(&Header[10], &chans, 2); + memcpy(&Header[12], &nsamples, 4); + + Remote.Write(Header, 16); + Remote.Write((const char*)data, nsamples*(bits/8)*chans); +} diff --exclude='*.txt' --exclude='*.cfg' --exclude='*~' --exclude='*.o' -NHudr /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/main/win/vcr_compress.c mupen64_src-rerecording-v8/main/win/vcr_compress.c --- /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/main/win/vcr_compress.c 2005-11-12 22:33:44.000000000 +0200 +++ mupen64_src-rerecording-v8/main/win/vcr_compress.c 2006-08-06 00:17:05.905985600 +0300 @@ -37,11 +37,11 @@ extern HWND mainHWND, hTool, hStatus; -static int avi_opened = 0; +int avi_opened = 0; extern int recording; static int frame; -static BITMAPINFOHEADER infoHeader; +BITMAPINFOHEADER infoHeader; static PAVIFILE avi_file; static AVISTREAMINFO video_stream_header; static PAVISTREAM video_stream; @@ -128,7 +128,7 @@ BITMAPINFO bmpinfos; memcpy(&bmpinfos.bmiHeader, &infoHeader, sizeof(BITMAPINFOHEADER)); GetDIBits(copy, bitmap, 0, *height, buffer, &bmpinfos, DIB_RGB_COLORS); - + *dest = buffer; if(bitmap) DeleteObject(bitmap); @@ -139,6 +139,7 @@ // ShowInfo("win_readScreen() done"); } +#if 0 BOOL VCRComp_addVideoFrame( unsigned char *data ) { return (0 == AVIStreamWrite(compressed_video_stream, frame++, 1, data, infoHeader.biSizeImage, AVIIF_KEYFRAME, NULL, NULL)); @@ -232,6 +233,7 @@ avi_opened = 0; printf("[VCR]: Finished AVI capture.\n"); } +#endif void init_readScreen() { @@ -243,4 +245,3 @@ if(readScreen == NULL) readScreen = win_readScreen; } - diff --exclude='*.txt' --exclude='*.cfg' --exclude='*~' --exclude='*.o' -NHudr /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/winproject/Makefile.win mupen64_src-rerecording-v8/winproject/Makefile.win --- /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/winproject/Makefile.win 2006-08-04 17:59:06.569284800 +0300 +++ mupen64_src-rerecording-v8/winproject/Makefile.win 2006-08-04 23:40:31.192408000 +0300 @@ -5,10 +5,10 @@ CC = gcc.exe WINDRES = windres.exe RES = mupen64_private.res -OBJ = ../main/rom.o ../memory/memory.o ../r4300/x86/debug.o ../main/win/configdialog.o ../r4300/r4300.o ../main/unzip.o ../r4300/interupt.o ../memory/tlb.o ../memory/dma.o ../memory/pif.o ../r4300/exception.o ../r4300/recomp.o ../r4300/pure_interp.o ../r4300/x86/rjump.o ../main/ioapi.o ../r4300/x86/assemble.o ../r4300/x86/gr4300.o ../r4300/special.o ../r4300/x86/gspecial.o ../r4300/regimm.o ../r4300/x86/gregimm.o ../r4300/tlb.o ../r4300/x86/gtlb.o ../r4300/cop0.o ../r4300/x86/gcop0.o ../r4300/bc.o ../r4300/x86/gbc.o ../r4300/cop1_s.o ../r4300/x86/gcop1_s.o ../r4300/cop1_d.o ../r4300/x86/gcop1_d.o ../r4300/cop1_w.o ../r4300/x86/gcop1_w.o ../r4300/cop1_l.o ../r4300/x86/gcop1_l.o ../r4300/cop1.o ../r4300/x86/gcop1.o ../memory/flashram.o ../main/md5.o ../main/mupenIniApi.o ../main/win/dumplist.o ../main/win/rombrowser.o ../main/win/timers.o ../main/win/translation.o ../main/win/main_win.o ../main/win/inifunctions.o ../main/savestates.o ../main/win/Config.o ../main/win/guifuncs.o ../main/win/RomSettings.o ../main/win/GUI_LogWindow.o ../main/win/kaillera.o ../main/win/commandline.o ../main/vcr.o ../r4300/x86/regcache.o ../main/win/vcr_compress.o ../main/vcr_resample.o ../main/adler32.o $(RES) -LINKOBJ = ../main/rom.o ../memory/memory.o ../r4300/x86/debug.o ../main/win/configdialog.o ../r4300/r4300.o ../main/unzip.o ../r4300/interupt.o ../memory/tlb.o ../memory/dma.o ../memory/pif.o ../r4300/exception.o ../r4300/recomp.o ../r4300/pure_interp.o ../r4300/x86/rjump.o ../main/ioapi.o ../r4300/x86/assemble.o ../r4300/x86/gr4300.o ../r4300/special.o ../r4300/x86/gspecial.o ../r4300/regimm.o ../r4300/x86/gregimm.o ../r4300/tlb.o ../r4300/x86/gtlb.o ../r4300/cop0.o ../r4300/x86/gcop0.o ../r4300/bc.o ../r4300/x86/gbc.o ../r4300/cop1_s.o ../r4300/x86/gcop1_s.o ../r4300/cop1_d.o ../r4300/x86/gcop1_d.o ../r4300/cop1_w.o ../r4300/x86/gcop1_w.o ../r4300/cop1_l.o ../r4300/x86/gcop1_l.o ../r4300/cop1.o ../r4300/x86/gcop1.o ../memory/flashram.o ../main/md5.o ../main/mupenIniApi.o ../main/win/dumplist.o ../main/win/rombrowser.o ../main/win/timers.o ../main/win/translation.o ../main/win/main_win.o ../main/win/inifunctions.o ../main/savestates.o ../main/win/Config.o ../main/win/guifuncs.o ../main/win/RomSettings.o ../main/win/GUI_LogWindow.o ../main/win/kaillera.o ../main/win/commandline.o ../main/vcr.o ../r4300/x86/regcache.o ../main/win/vcr_compress.o ../main/vcr_resample.o ../main/adler32.o $(RES) -LIBS = -L"lib" -L"zlib" -mwindows -L. -lz -lcomctl32 -lwinmm -lvfw_avi32 -lvfw_ms32 -s -march=pentium2 -mmmx -INCS = -I"../include" -I"../zlib" +OBJ = ../main/rom.o ../memory/memory.o ../r4300/x86/debug.o ../main/win/configdialog.o ../r4300/r4300.o ../main/unzip.o ../r4300/interupt.o ../memory/tlb.o ../memory/dma.o ../memory/pif.o ../r4300/exception.o ../r4300/recomp.o ../r4300/pure_interp.o ../r4300/x86/rjump.o ../main/ioapi.o ../r4300/x86/assemble.o ../r4300/x86/gr4300.o ../r4300/special.o ../r4300/x86/gspecial.o ../r4300/regimm.o ../r4300/x86/gregimm.o ../r4300/tlb.o ../r4300/x86/gtlb.o ../r4300/cop0.o ../r4300/x86/gcop0.o ../r4300/bc.o ../r4300/x86/gbc.o ../r4300/cop1_s.o ../r4300/x86/gcop1_s.o ../r4300/cop1_d.o ../r4300/x86/gcop1_d.o ../r4300/cop1_w.o ../r4300/x86/gcop1_w.o ../r4300/cop1_l.o ../r4300/x86/gcop1_l.o ../r4300/cop1.o ../r4300/x86/gcop1.o ../memory/flashram.o ../main/md5.o ../main/mupenIniApi.o ../main/win/dumplist.o ../main/win/rombrowser.o ../main/win/timers.o ../main/win/translation.o ../main/win/main_win.o ../main/win/inifunctions.o ../main/savestates.o ../main/win/Config.o ../main/win/guifuncs.o ../main/win/RomSettings.o ../main/win/GUI_LogWindow.o ../main/win/kaillera.o ../main/win/commandline.o ../main/vcr.o ../r4300/x86/regcache.o ../main/win/vcr_compress.o ../main/vcr_resample.o ../main/adler32.o ../main/win/vcr-bisqwit.o $(RES) +LINKOBJ = ../main/rom.o ../memory/memory.o ../r4300/x86/debug.o ../main/win/configdialog.o ../r4300/r4300.o ../main/unzip.o ../r4300/interupt.o ../memory/tlb.o ../memory/dma.o ../memory/pif.o ../r4300/exception.o ../r4300/recomp.o ../r4300/pure_interp.o ../r4300/x86/rjump.o ../main/ioapi.o ../r4300/x86/assemble.o ../r4300/x86/gr4300.o ../r4300/special.o ../r4300/x86/gspecial.o ../r4300/regimm.o ../r4300/x86/gregimm.o ../r4300/tlb.o ../r4300/x86/gtlb.o ../r4300/cop0.o ../r4300/x86/gcop0.o ../r4300/bc.o ../r4300/x86/gbc.o ../r4300/cop1_s.o ../r4300/x86/gcop1_s.o ../r4300/cop1_d.o ../r4300/x86/gcop1_d.o ../r4300/cop1_w.o ../r4300/x86/gcop1_w.o ../r4300/cop1_l.o ../r4300/x86/gcop1_l.o ../r4300/cop1.o ../r4300/x86/gcop1.o ../memory/flashram.o ../main/md5.o ../main/mupenIniApi.o ../main/win/dumplist.o ../main/win/rombrowser.o ../main/win/timers.o ../main/win/translation.o ../main/win/main_win.o ../main/win/inifunctions.o ../main/savestates.o ../main/win/Config.o ../main/win/guifuncs.o ../main/win/RomSettings.o ../main/win/GUI_LogWindow.o ../main/win/kaillera.o ../main/win/commandline.o ../main/vcr.o ../r4300/x86/regcache.o ../main/win/vcr_compress.o ../main/vcr_resample.o ../main/adler32.o ../main/win/vcr-bisqwit.o $(RES) +LIBS = -L"lib" -L"zlib" -mwindows -L. -lz -lcomctl32 -lwinmm -lvfw_avi32 -lvfw_ms32 -s -march=pentium2 -mmmx -lws2_32 +INCS = -I"include" -I"zlib" -I../include -I../zlib CXXINCS = -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include" -I"zlib" BIN = mupen64.exe CXXFLAGS = $(CXXINCS) -fexpensive-optimizations -O3 -march=pentium2 -mmmx @@ -24,7 +24,7 @@ ${RM} $(OBJ) $(BIN) $(BIN): $(OBJ) - $(CC) $(LINKOBJ) -o "mupen64.exe" $(LIBS) + $(CXX) $(LINKOBJ) -o "mupen64.exe" $(LIBS) ../main/rom.o: ../main/rom.c $(CC) -c ../main/rom.c -o ../main/rom.o $(CFLAGS) @@ -188,6 +188,9 @@ ../main/vcr.o: ../main/vcr.c $(CC) -c ../main/vcr.c -o ../main/vcr.o $(CFLAGS) +../main/win/vcr-bisqwit.o: ../main/win/vcr-bisqwit.cc + $(CXX) -c ../main/win/vcr-bisqwit.cc -o ../main/win/vcr-bisqwit.o $(CFLAGS) + ../r4300/x86/regcache.o: ../r4300/x86/regcache.c $(CC) -c ../r4300/x86/regcache.c -o ../r4300/x86/regcache.o $(CFLAGS) diff --exclude='*.txt' --exclude='*.cfg' --exclude='*~' --exclude='*.o' -NHudr /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/winproject/debugview.ini mupen64_src-rerecording-v8/winproject/debugview.ini --- /home/bisqwit/nes/n64/mupen64_src-rerecording-v8/winproject/debugview.ini 2005-08-26 22:52:16.000000000 +0300 +++ mupen64_src-rerecording-v8/winproject/debugview.ini 2006-08-04 22:30:30.452040000 +0300 @@ -2,8 +2,8 @@ [common] x = 12 y = 142 -width = 345 -height = 423 +width = 329 +height = 315 showtoolbar = 1 showstatusbar = 1