diff --git a/src/drawing.cpp b/src/drawing.cpp index 4c5adea6..a3303fe0 100644 --- a/src/drawing.cpp +++ b/src/drawing.cpp @@ -5,103 +5,103 @@ #include "movie.h" #include "driver.h" -static uint8 Font6x5[594] = +static uint8 Font6x7[792] = { - 4, 0, 0, 0, 0, 0, - 3, 64, 64, 64, 0, 64, - 5, 80, 80, 0, 0, 0, - 6, 80,248, 80,248, 80, - 6,112,160,112, 40,240, - 6,136, 16, 32, 64,136, - 6, 96, 96,104,144,104, - 3, 64, 64, 0, 0, 0, - 4, 32, 64, 64, 64, 32, - 4, 64, 32, 32, 32, 64, - 7, 72, 48,252, 48, 72, - 6, 32, 32,248, 32, 32, - 3, 0, 0, 0, 64,128, - 5, 0, 0,240, 0, 0, - 3, 0, 0, 0, 0, 64, - 6, 8, 16, 32, 64,128, - 5,240,144,144,144,240, //0 - 5, 64,192, 64, 64,224, //1 - 5, 96,144, 32, 64,240, //2 - 5,240, 16, 96, 16,224, //3 - 5, 80,144,240, 16, 16, //4 - 5,240,128,224, 16,224, //5 - 5, 96,128,224,144, 96, //6 - 5,240, 16, 32, 32, 64, //7 - 5, 96,144, 96,144, 96, //8 - 5, 96,144,112, 16, 96, //9 - 3, 0, 64, 0, 64, 0, - 3, 0, 64, 0, 64,128, - 4, 32, 64,128, 64, 32, - 4, 0,224, 0,224, 0, - 4,128, 64, 32, 64,128, - 5, 96,144, 32, 0, 32, - 5, 96,144,176,128, 96, - 5, 96,144,240,144,144, - 5,224,144,224,144,224, - 5,112,128,128,128,112, - 5,224,144,144,144,224, - 5,240,128,224,128,240, - 5,240,128,224,128,128, - 5,112,128,176,144,112, - 5,144,144,240,144,144, - 4,224, 64, 64, 64,224, - 5, 16, 16, 16,144, 96, - 5,144,160,192,160,144, - 5,128,128,128,128,240, - 6,136,216,168,136,136, - 6,136,200,168,152,136, - 5, 96,144,144,144, 96, - 5,224,144,224,128,128, - 5, 96,144,144,176,112, - 5,224,144,224,160,144, - 5, 96,128, 96, 16,224, - 6,248, 32, 32, 32, 32, - 5,144,144,144,144, 96, - 6,136,136, 80, 80, 32, - 6,136,136,136,168, 80, - 6,136, 80, 32, 80,136, - 6,136, 80, 32, 32, 32, - 6,248, 16, 32, 64,248, - 3,192,128,128,128,192, - 6,128, 64, 32, 16, 8, - 3,192, 64, 64, 64,192, - 4, 64,160, 0, 0, 0, - 5, 0, 0, 0, 0,240, - 3,128, 64, 0, 0, 0, - 5, 96, 16,112,144,112, - 5,128,128,224,144,224, - 4, 0, 96,128,128, 96, - 5, 16, 16,112,144,112, - 5, 0, 96,240,128, 96, - 4, 96,128,192,128,128, - 4, 0,224,224, 32,192, - 5,128,128,224,144,144, - 4, 64, 0,192, 64,224, - 3, 64, 0, 64, 64,192, - 5,128,160,192,160,144, - 4,192, 64, 64, 64,224, - 6, 0,208,168,168,136, - 5, 0,224,144,144,144, - 5, 0, 96,144,144, 96, - 5, 0,224,144,224,128, - 5, 0,112,144,112, 16, - 4, 0, 96,128,128,128, - 5, 0, 96,224, 16,224, - 4, 64,224, 64, 64, 32, - 5, 0,144,144,144,112, - 6, 0,136,136, 80, 32, - 6, 0,136,136,168, 80, - 5, 0,144, 96, 96,144, - 5, 0,144,112, 16, 96, - 5, 0,240, 32, 64,240, - 4, 96, 64,128, 64, 96, - 3, 64, 64, 64, 64, 64, - 4,192, 64, 32, 64,192, - 5, 80,160, 0, 0, 0 + 6, 0, 0, 0, 0, 0, 0, 0, + 3, 64, 64, 64, 64, 64, 0, 64, + 5, 80, 80, 80, 0, 0, 0, 0, + 6, 80, 80,248, 80,248, 80, 80, + 6, 32,120,160,112, 40,240, 32, + 6, 64,168, 80, 32, 80,168, 16, + 6, 96,144,160, 64,168,144,104, + 3, 64, 64, 0, 0, 0, 0, 0, + 4, 32, 64, 64, 64, 64, 64, 32, + 4, 64, 32, 32, 32, 32, 32, 64, + 6, 0, 80, 32,248, 32, 80, 0, + 6, 0, 32, 32,248, 32, 32, 0, + 3, 0, 0, 0, 0, 0, 64,128, + 5, 0, 0, 0,240, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 64, + 5, 16, 16, 32, 32, 32, 64, 64, + 6,112,136,136,136,136,136,112, //0 + 6, 32, 96, 32, 32, 32, 32, 32, + 6,112,136, 8, 48, 64,128,248, + 6,112,136, 8, 48, 8,136,112, + 6, 16, 48, 80,144,248, 16, 16, + 6,248,128,128,240, 8, 8,240, + 6, 48, 64,128,240,136,136,112, + 6,248, 8, 16, 16, 32, 32, 32, + 6,112,136,136,112,136,136,112, + 6,112,136,136,120, 8, 16, 96, + 3, 0, 0, 64, 0, 0, 64, 0, + 3, 0, 0, 64, 0, 0, 64,128, + 4, 0, 32, 64,128, 64, 32, 0, + 5, 0, 0,240, 0,240, 0, 0, + 4, 0,128, 64, 32, 64,128, 0, + 5,112,136, 8, 16, 32, 0, 32, + 6,112,136,136,184,176,128,112, + 6,112,136,136,248,136,136,136, //A + 6,240,136,136,240,136,136,240, + 6,112,136,128,128,128,136,112, + 6,224,144,136,136,136,144,224, + 6,248,128,128,240,128,128,248, + 6,248,128,128,240,128,128,128, + 6,112,136,128,184,136,136,120, + 6,136,136,136,248,136,136,136, + 4,224, 64, 64, 64, 64, 64,224, + 6, 8, 8, 8, 8, 8,136,112, + 6,136,144,160,192,160,144,136, + 6,128,128,128,128,128,128,248, + 6,136,216,168,168,136,136,136, + 6,136,136,200,168,152,136,136, + 7, 48, 72,132,132,132, 72, 48, + 6,240,136,136,240,128,128,128, + 6,112,136,136,136,168,144,104, + 6,240,136,136,240,144,136,136, + 6,112,136,128,112, 8,136,112, + 6,248, 32, 32, 32, 32, 32, 32, + 6,136,136,136,136,136,136,112, + 6,136,136,136, 80, 80, 32, 32, + 6,136,136,136,136,168,168, 80, + 6,136,136, 80, 32, 80,136,136, + 6,136,136, 80, 32, 32, 32, 32, + 6,248, 8, 16, 32, 64,128,248, + 3,192,128,128,128,128,128,192, + 5, 64, 64, 32, 32, 32, 16, 16, + 3,192, 64, 64, 64, 64, 64,192, + 4, 64,160, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0,248, + 3,128, 64, 0, 0, 0, 0, 0, + 5, 0, 0, 96, 16,112,144,112, //a + 5,128,128,224,144,144,144,224, + 5, 0, 0,112,128,128,128,112, + 5, 16, 16,112,144,144,144,112, + 5, 0, 0, 96,144,240,128,112, + 5, 48, 64,224, 64, 64, 64, 64, + 5, 0,112,144,144,112, 16,224, + 5,128,128,224,144,144,144,144, + 2,128, 0,128,128,128,128,128, + 4, 32, 0, 32, 32, 32, 32,192, + 5,128,128,144,160,192,160,144, + 2,128,128,128,128,128,128,128, + 6, 0, 0,208,168,168,168,168, + 5, 0, 0,224,144,144,144,144, + 5, 0, 0, 96,144,144,144, 96, + 5, 0, 0,224,144,144,224,128, + 5, 0, 0,112,144,144,112, 16, + 5, 0, 0,176,192,128,128,128, + 5, 0, 0,112,128, 96, 16,224, + 4, 64, 64,224, 64, 64, 64, 32, + 5, 0, 0,144,144,144,144,112, + 5, 0, 0,144,144,144,160,192, + 6, 0, 0,136,136,168,168, 80, + 5, 0, 0,144,144, 96,144,144, + 5, 0,144,144,144,112, 16, 96, + 5, 0, 0,240, 32, 64,128,240, + 4, 32, 64, 64,128, 64, 64, 32, + 3, 64, 64, 64, 64, 64, 64, 64, + 4,128, 64, 64, 32, 64, 64,128, + 6, 0,104,176, 0, 0, 0, 0 }; void DrawTextLineBG(uint8 *dest) @@ -135,7 +135,7 @@ void DrawMessage(bool beforeMovie) uint8 *t; guiMessage.howlong--; - t=XBuf+FCEU_TextScanlineOffsetFromBottom(16); + t=XBuf+FCEU_TextScanlineOffsetFromBottom(20)+1; /* FCEU palette: @@ -151,11 +151,11 @@ void DrawMessage(bool beforeMovie) if(t>=XBuf) { int color = 0x20; - if(guiMessage.howlong == 39) color = 0x38; - if(guiMessage.howlong <= 30) color = 0x2C; - if(guiMessage.howlong <= 20) color = 0x1C; - if(guiMessage.howlong <= 10) color = 0x11; - if(guiMessage.howlong <= 5) color = 0x1; + if(guiMessage.howlong <= 40) color = 0x3C; + if(guiMessage.howlong <= 32) color = 0x31; + if(guiMessage.howlong <= 24) color = 0x21; + if(guiMessage.howlong <= 16) color = 0x51; + if(guiMessage.howlong <= 8) color = 0x41; DrawTextTrans(ClipSidesOffset+t, 256, (uint8 *)guiMessage.errmsg, color+0x80); } } @@ -393,12 +393,12 @@ static int FixJoedChar(uint8 ch) } static int JoedCharWidth(uint8 ch) { - return Font6x5[FixJoedChar(ch)*6]; + return Font6x7[FixJoedChar(ch)*8]; } -void DrawTextTransWH(uint8 *dest, uint32 width, uint8 *textmsg, uint8 fgcolor, int max_w, int max_h) +void DrawTextTransWH(uint8 *dest, uint32 width, uint8 *textmsg, uint8 fgcolor, int max_w, int max_h, int border) { - unsigned beginx=5, x=beginx; + unsigned beginx=2, x=beginx; unsigned y=2; char target[64][256] = {{0}}; @@ -411,19 +411,19 @@ void DrawTextTransWH(uint8 *dest, uint32 width, uint8 *textmsg, uint8 fgcolor, i { int ch, wid; - if(*textmsg == '\n') { x=beginx; y+=6; continue; } + if(*textmsg == '\n') { x=beginx; y+=8; continue; } ch = FixJoedChar(*textmsg); wid = JoedCharWidth(*textmsg); - for(int ny=0; ny<5; ++ny) + for(int ny=0; ny<7; ++ny) { - uint8 d = Font6x5[ch*6 + 1+ny]; + uint8 d = Font6x7[ch*8 + 1+ny]; for(int nx=0; nx> (7-nx)) & 1; if(c) { - if(y+ny >= 16) goto textoverflow; + if(y+ny >= 18) goto textoverflow; target[y+ny][x+nx] = 2; } else @@ -431,51 +431,57 @@ void DrawTextTransWH(uint8 *dest, uint32 width, uint8 *textmsg, uint8 fgcolor, i } } x += wid; - if(x >= width) { x=beginx; y+=6; } + if(x >= width) { x=beginx; y+=8; } } textoverflow: - for(y=0; y<16; ++y) + for(y=0; y<20; ++y) for(x=0; x=( 1) && (c += target[y][x-1] * 8); - x<(width-1) && (c += target[y][x+1] * 8); - y>=( 1) && (c += target[y-1][x] * 8); - y<(16 -1) && (c += target[y+1][x] * 8); + if(border>=1){ + x>=( 1) && (c += target[y][x-1]); + x<(width-1) && (c += target[y][x+1]); + y>=( 1) && (c += target[y-1][x]); + y<(16 -1) && (c += target[y+1][x]); + } + if(border>=2){ + x>=( 1) && (c += target[y][x-1]*10); + x<(width-1) && (c += target[y][x+1]*10); + y>=( 1) && (c += target[y-1][x]*10); + y<(16 -1) && (c += target[y+1][x]*10); - x>=( 1) && y>=( 1) && (c += target[y-1][x-1]*3); - x<(width-1) && y>=( 1) && (c += target[y-1][x+1]*3); - x>=( 1) && y<(16-1) && (c += target[y+1][x-1]*3); - x<(width-1) && y<(16-1) && (c += target[y+1][x+1]*3); + x>=( 1) && y>=( 1) && (c += target[y-1][x-1]); + x<(width-1) && y>=( 1) && (c += target[y-1][x+1]); + x>=( 1) && y<(16-1) && (c += target[y+1][x-1]); + x<(width-1) && y<(16-1) && (c += target[y+1][x+1]); - x>=( 2) && (c += target[y][x-2]); - x<(width-2) && (c += target[y][x+2]); - y>=( 2) && (c += target[y-2][x]); - y<(16 -2) && (c += target[y+2][x]); + x>=( 2) && (c += target[y][x-2]); + x<(width-2) && (c += target[y][x+2]); + y>=( 2) && (c += target[y-2][x]); + y<(16 -2) && (c += target[y+2][x]); + } - x>=( 3) && (c += target[y][x-3]); - x<(width-3) && (c += target[y][x+3]); - y>=( 3) && (c += target[y-3][x]); - y<(16 -3) && (c += target[y+3][x]); - - if(c >= 1200) + if(c >= 200) dest[offs] = fgcolor; - else if(c >= 30) + else if(c >= 10) { - dest[offs] = (dest[offs] & 0x0F) | 0xC0; + if(dest[offs] < 0xA0) + dest[offs] = 0xC1; + else + dest[offs] = 0xD1; } else if(c > 0) { - dest[offs] = (dest[offs] & 0x3F) | 0xC0; + dest[offs] = 0xCF; } } } -void DrawTextTrans(uint8 *dest, uint32 width, uint8 *textmsg, uint8 fgcolor) -{ - DrawTextTransWH(dest, width, textmsg, fgcolor, 256, 16); -} +void DrawTextTrans(uint8 *dest, uint32 width, uint8 *textmsg, uint8 fgcolor) +{ + DrawTextTransWH(dest, width, textmsg, fgcolor, 256, 16, 2); +} diff --git a/src/drawing.h b/src/drawing.h index 59a9b6b3..6bffdebe 100644 --- a/src/drawing.h +++ b/src/drawing.h @@ -5,4 +5,4 @@ void DrawMessage(bool beforeMovie); void FCEU_DrawRecordingStatus(uint8* XBuf); void FCEU_DrawNumberRow(uint8 *XBuf, int *nstatus, int cur); void DrawTextTrans(uint8 *dest, uint32 width, uint8 *textmsg, uint8 fgcolor); -void DrawTextTransWH(uint8 *dest, uint32 width, uint8 *textmsg, uint8 fgcolor, int max_w, int max_h); +void DrawTextTransWH(uint8 *dest, uint32 width, uint8 *textmsg, uint8 fgcolor, int max_w, int max_h, int border); \ No newline at end of file diff --git a/src/drivers/win/SConscript b/src/drivers/win/SConscript index 485dd6cc..a23de80d 100644 --- a/src/drivers/win/SConscript +++ b/src/drivers/win/SConscript @@ -1,9 +1,9 @@ Import('env') my_list = Split(""" +archive.cpp args.cpp aviout.cpp -basicbot.cpp cdlogger.cpp cheat.cpp common.cpp @@ -34,11 +34,13 @@ replay.cpp sound.cpp state.cpp tasedit.cpp +texthook.cpp throttle.cpp timing.cpp tracer.cpp video.cpp wave.cpp +Win32InputBox.cpp window.cpp """) diff --git a/src/drivers/win/lua/include/luaconf.h b/src/drivers/win/lua/include/luaconf.h index eb2f5a1f..fd24f392 100644 --- a/src/drivers/win/lua/include/luaconf.h +++ b/src/drivers/win/lua/include/luaconf.h @@ -86,7 +86,7 @@ ** path of the directory of the executable file of the current process. */ #define LUA_LDIR "!\\lua\\" -#define LUA_CDIR "!\\" +#define LUA_CDIR "!\\dll\\" #define LUA_PATH_DEFAULT \ ".\\?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua" diff --git a/src/lua-engine.cpp b/src/lua-engine.cpp index 6a89d2b3..5f7d67e3 100644 --- a/src/lua-engine.cpp +++ b/src/lua-engine.cpp @@ -1019,7 +1019,7 @@ static int gui_text(lua_State *L) { gui_prepare(); - DrawTextTransWH(gui_data+y*256+x, 256, (uint8 *)msg, 0x20+0x80, 256 - x, 256 - y); + DrawTextTransWH(gui_data+y*256+x, 256, (uint8 *)msg, 0x20+0x80, 256 - x, 256 - y, 1); return 0; @@ -1667,7 +1667,7 @@ int FCEU_LoadLuaCode(const char *filename) { if (!L) { #ifdef WIN32 - HMODULE test = LoadLibrary("lua5.1.dll"); + HMODULE test = LoadLibrary("dll\\lua5.1.dll"); if(!test) { FCEUD_PrintError("Couldn't initialize lua system due to failure loading lua5.1.dll"); diff --git a/src/movie.cpp b/src/movie.cpp index 68b3e2cc..d3e57361 100644 --- a/src/movie.cpp +++ b/src/movie.cpp @@ -945,27 +945,19 @@ void FCEUMOV_AddCommand(int cmd) void FCEU_DrawMovies(uint8 *XBuf) { - if(frame_display) + if(frame_display && movieMode != MOVIEMODE_TASEDIT) { - if (movieMode != MOVIEMODE_INACTIVE) - { - - char counterbuf[32] = {0}; - if(movieMode == MOVIEMODE_PLAY) - sprintf(counterbuf,"%d/%d",currFrameCounter,currMovieData.records.size()); - else if(movieMode == MOVIEMODE_RECORD) - sprintf(counterbuf,"%d",currMovieData.records.size()); - - if(counterbuf[0]) - DrawTextTrans(ClipSidesOffset+XBuf+FCEU_TextScanlineOffsetFromBottom(24), 256, (uint8*)counterbuf, 0x20+0x80); - } + char counterbuf[32] = {0}; + + if(movieMode == MOVIEMODE_PLAY) + sprintf(counterbuf,"%d/%d",currFrameCounter,currMovieData.records.size()); + else if(movieMode == MOVIEMODE_RECORD) + sprintf(counterbuf,"%d",currMovieData.records.size()); else - { - char counterbuf[32] = {0}; sprintf(counterbuf,"%d (no movie)",currFrameCounter); - if(counterbuf[0]) - DrawTextTrans(ClipSidesOffset+XBuf+FCEU_TextScanlineOffsetFromBottom(24), 256, (uint8*)counterbuf, 0x20+0x80); - } + + if(counterbuf[0]) + DrawTextTrans(ClipSidesOffset+XBuf+FCEU_TextScanlineOffsetFromBottom(30)+1, 256, (uint8*)counterbuf, 0x20+0x80); } } @@ -974,7 +966,7 @@ void FCEU_DrawLagCounter(uint8 *XBuf) uint8 color; if (lagFlag) color = 0x16+0x80; //If currently lagging display red - else color = 0x19+0x80; //else display green + else color = 0x2A+0x80; //else display green if(lagCounterDisplay) { @@ -982,7 +974,7 @@ void FCEU_DrawLagCounter(uint8 *XBuf) sprintf(counterbuf,"%d",lagCounter); if(counterbuf[0]) - DrawTextTrans(ClipSidesOffset+XBuf+FCEU_TextScanlineOffsetFromBottom(32), 256, (uint8*)counterbuf, color); //0x20+0x80 + DrawTextTrans(ClipSidesOffset+XBuf+FCEU_TextScanlineOffsetFromBottom(40)+1, 256, (uint8*)counterbuf, color); //0x20+0x80 } } diff --git a/src/types.h b/src/types.h index e74c8e06..76b4cf75 100644 --- a/src/types.h +++ b/src/types.h @@ -65,7 +65,7 @@ typedef signed int int32; //mingw32 doesnt prototype this for some reason #ifdef __MINGW32__ -void *alloca(size_t); +#define alloca __builtin_alloca #endif #include diff --git a/src/video.cpp b/src/video.cpp index 5925bdfa..a47dbbb5 100644 --- a/src/video.cpp +++ b/src/video.cpp @@ -253,14 +253,14 @@ void FCEU_PutImage(void) { for(i = 0; i < 34;i++) for(j = 0; j <9 ; j++) - t[i+j*256] = (t[i+j*256] & 15) | 0xC0; + t[i+j*256] = (t[i+j*256] & 0x30) | 0xC1; for(i = 3; i < 6; i++) for(j = 3; j< 6; j++) - t[i+j*256] = 3; + t[i+j*256] = 0xCF; c = cur_input_display >> (controller * 8); c &= 255; //A - color = c&1?4:3; + color = c&1?0xA7:0xCF; for(i=0; i < 4; i++) { for(j = 0; j < 4; j++) @@ -271,7 +271,7 @@ void FCEU_PutImage(void) } } //B - color = c&2?4:3; + color = c&2?0xA7:0xCF; for(i=0; i < 4; i++) { for(j = 0; j < 4; j++) @@ -282,21 +282,21 @@ void FCEU_PutImage(void) } } //Select - color = c&4?4:3; + color = c&4?0xA7:0xCF; for(i = 0; i < 4; i++) { t[11+5*256+i] = color; t[11+6*256+i] = color; } //Start - color = c&8?4:3; + color = c&8?0xA7:0xCF; for(i = 0; i < 4; i++) { t[17+5*256+i] = color; t[17+6*256+i] = color; } //Up - color = c&16?4:3; + color = c&16?0xA7:0xCF; for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) @@ -305,7 +305,7 @@ void FCEU_PutImage(void) } } //Down - color = c&32?4:3; + color = c&32?0xA7:0xCF; for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) @@ -314,7 +314,7 @@ void FCEU_PutImage(void) } } //Left - color = c&64?4:3; + color = c&64?0xA7:0xCF; for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) @@ -323,7 +323,7 @@ void FCEU_PutImage(void) } } //Right - color = c&128?4:3; + color = c&128?0xA7:0xCF; for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++)