Merge latest TomB version as of 25 April

This commit is contained in:
Chips 2016-04-25 18:51:31 +00:00
parent f6baa22248
commit 5f13d69c31
37 changed files with 30914 additions and 21448 deletions

View file

@ -16,6 +16,7 @@
static char last_active_config[MAX_PATH] = { '\0' };
static int ensureVisible = -1;
static gcn::Button *cmdLoad;
static gcn::Button *cmdSave;
@ -280,13 +281,13 @@ void InitPanelConfig(const struct _ConfigCategory& category)
scrAreaConfigs->setSize(category.panel->getWidth() - 2 * DISTANCE_BORDER - 2, 252);
scrAreaConfigs->setScrollbarWidth(20);
scrAreaConfigs->setBaseColor(gui_baseCol);
category.panel->add(scrAreaConfigs);
if(strlen(last_active_config) == 0)
strncpy(last_active_config, OPTIONSFILENAME, MAX_PATH);
txtName->setText(last_active_config);
txtDesc->setText(changed_prefs.description);
ensureVisible = -1;
RefreshPanelConfig();
}
@ -313,6 +314,16 @@ void ExitPanelConfig(void)
}
static void MakeCurrentVisible(void)
{
if(ensureVisible >= 0)
{
scrAreaConfigs->setVerticalScrollAmount(ensureVisible * 19);
ensureVisible = -1;
}
}
void RefreshPanelConfig(void)
{
ReadConfigFileList();
@ -327,6 +338,8 @@ void RefreshPanelConfig(void)
{
// Select current entry
lstConfigs->setSelected(i);
ensureVisible = i;
RegisterRefreshFunc(MakeCurrentVisible);
break;
}
}

View file

@ -28,6 +28,8 @@ static bool dialogFinished = false;
static bool createNew = false;
static char workingDir[MAX_PATH];
static const char **filefilter;
static bool dialogCreated = false;
static int selectedOnStart = -1;
static gcn::Window *wndSelectFile;
static gcn::Button* cmdOK;
@ -146,6 +148,7 @@ static void checkfilename(char *current)
if(!fileList->isDir(i) && !strcasecmp(fileList->getElementAt(i).c_str(), actfile))
{
lstFiles->setSelected(i);
selectedOnStart = i;
break;
}
}
@ -243,9 +246,10 @@ static void InitSelectFile(const char *title)
wndSelectFile->add(scrAreaFiles);
gui_top->add(wndSelectFile);
lstFiles->requestFocus();
lstFiles->setSelected(0);
wndSelectFile->requestModalFocus();
}
@ -347,6 +351,13 @@ static void SelectFileLoop(void)
uae_gui->draw();
// Finally we update the screen.
SDL_Flip(gui_screen);
if(!dialogCreated)
{
dialogCreated = true;
if(selectedOnStart >= 0)
scrAreaFiles->setVerticalScrollAmount(selectedOnStart * 19);
}
}
}
@ -360,7 +371,8 @@ bool SelectFile(const char *title, char *value, const char *filter[], bool creat
dialogFinished = false;
createNew = create;
filefilter = filter;
dialogCreated = false;
selectedOnStart = -1;
#ifdef FILE_SELECT_KEEP_POSITION
if (Already_init == 0)

View file

@ -85,6 +85,7 @@ void ExitPanelSavestate(void);
void RefreshPanelSavestate(void);
void RefreshAllPanels(void);
void RegisterRefreshFunc(void (*func)(void));
void DisableResume(void);

View file

@ -102,6 +102,13 @@ void gui_force_rtarea_hdchange(void)
gui_rtarea_flags_onenter |= 2;
}
static void (*refreshFuncAfterDraw)(void) = NULL;
void RegisterRefreshFunc(void (*func)(void))
{
refreshFuncAfterDraw = func;
}
namespace sdl
{
@ -271,6 +278,13 @@ namespace sdl
uae_gui->draw();
// Finally we update the screen.
SDL_Flip(gui_screen);
if(refreshFuncAfterDraw != NULL)
{
void (*currFunc)(void) = refreshFuncAfterDraw;
refreshFuncAfterDraw = NULL;
currFunc();
}
}
}

View file

@ -280,6 +280,8 @@ static void parse_peripheral(struct uae_prefs *p, xmlNode *node)
p->cpu_model = atoi((const char *) attr);
if(p->cpu_model > 68020)
p->address_space_24 = 0;
if(p->cpu_model == 68040)
p->fpu_model = 68040;
xmlFree(attr);
}
attr = xmlGetProp(curr_node, (const xmlChar *) _T("speed"));
@ -290,6 +292,18 @@ static void parse_peripheral(struct uae_prefs *p, xmlNode *node)
xmlFree(attr);
}
}
else if(strcmp((const char *)content, "fpu") == 0)
{
xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("type"));
if(attr != NULL)
{
if(strcmp((const char *) attr, "68881") == 0)
p->fpu_model = 68881;
else if(strcmp((const char *) attr, "68882") == 0)
p->fpu_model = 68882;
xmlFree(attr);
}
}
else if(strcmp((const char *)content, "jit") == 0)
{
xmlChar *attr = xmlGetProp(curr_node, (const xmlChar *) _T("memory"));

View file

@ -65,7 +65,7 @@ enum {
static inline void unknown_instruction(uae_u32 instr)
{
panicbug("Unknown instruction %08x!", instr);
panicbug("Unknown instruction %08x!\n", instr);
SDL_Quit();
abort();
}
@ -80,7 +80,7 @@ static bool handle_arm_instruction(unsigned long *pregs, uintptr addr)
if (in_handler > 0)
{
panicbug("Segmentation fault in handler :-(");
panicbug("Segmentation fault in handler :-(\n");
return false;
}

View file

@ -76,7 +76,7 @@
#define HAVE_GETMNTENT 1
/* Define if your struct stat has st_blocks. */
/* #undef HAVE_ST_BLOCKS */
#define HAVE_ST_BLOCKS
/* Define if utime(file, NULL) sets file's timestamp to the present. */
#define HAVE_UTIME_NULL 1
@ -206,7 +206,7 @@
#define SIZEOF_DOUBLE 8
#define HAVE_ISNAN
#undef HAVE_ISINF
#define HAVE_ISINF
/* Define if you have the bcopy function. */
#define HAVE_BCOPY 1