PCem

changeset 63:91fb7c44ae30

Fixed ROM autoselection. Video card menu now only lists cards for which ROMs are present again.
author TomW
date Sun Dec 29 15:33:29 2013 +0000
parents bc605850281a
children 4bde4cf3074b
files src/model.c src/model.h src/win.c
diffstat 3 files changed, 24 insertions(+), 7 deletions(-) [+]
line diff
     1.1 --- a/src/model.c	Sun Dec 29 14:12:43 2013 +0000
     1.2 +++ b/src/model.c	Sun Dec 29 15:33:29 2013 +0000
     1.3 @@ -86,6 +86,20 @@
     1.4          return models[model].id;
     1.5  }
     1.6  
     1.7 +int model_getmodel(int romset)
     1.8 +{
     1.9 +	int c = 0;
    1.10 +	
    1.11 +	while (models[c].id != -1)
    1.12 +	{
    1.13 +		if (models[c].id == romset)
    1.14 +			return c;
    1.15 +		c++;
    1.16 +	}
    1.17 +	
    1.18 +	return 0;
    1.19 +}
    1.20 +
    1.21  char *model_getname()
    1.22  {
    1.23          return models[model].name;
     2.1 --- a/src/model.h	Sun Dec 29 14:12:43 2013 +0000
     2.2 +++ b/src/model.h	Sun Dec 29 15:33:29 2013 +0000
     2.3 @@ -16,5 +16,6 @@
     2.4  extern int model;
     2.5  
     2.6  int model_getromset();
     2.7 +int model_getmodel(int romset);
     2.8  char *model_getname();
     2.9  void model_init();
     3.1 --- a/src/win.c	Sun Dec 29 14:12:43 2013 +0000
     3.2 +++ b/src/win.c	Sun Dec 29 15:33:29 2013 +0000
     3.3 @@ -14,7 +14,9 @@
     3.4  #include "ibm.h"
     3.5  #include "video.h"
     3.6  #include "resources.h"
     3.7 +#include "cpu.h"
     3.8  #include "ide.h"
     3.9 +#include "model.h"
    3.10  #include "nvr.h"
    3.11  #include "sound.h"
    3.12  
    3.13 @@ -374,8 +376,10 @@
    3.14                  {
    3.15                          if (romspresent[c])
    3.16                          {
    3.17 -                                romset=c;
    3.18 -                                loadbios();
    3.19 +                                romset = c;
    3.20 +                                model = model_getmodel(romset);
    3.21 +                                saveconfig();
    3.22 +                                resetpchard();
    3.23                                  break;
    3.24                          }
    3.25                  }
    3.26 @@ -397,7 +401,8 @@
    3.27                          if (gfx_present[c])
    3.28                          {
    3.29                                  gfxcard = c;
    3.30 -                                mem_load_video_bios();
    3.31 +                                saveconfig();
    3.32 +                                resetpchard();
    3.33                                  break;
    3.34                          }
    3.35                  }
    3.36 @@ -601,9 +606,6 @@
    3.37                          19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,
    3.38                          19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, 19};
    3.39  
    3.40 -#include "cpu.h"
    3.41 -#include "model.h"
    3.42 -
    3.43  BOOL CALLBACK configdlgproc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
    3.44  {
    3.45          char temp_str[256];
    3.46 @@ -645,7 +647,7 @@
    3.47                          if (!s[0])
    3.48                                  break;
    3.49  
    3.50 -                        if (video_card_available(c))
    3.51 +                        if (video_card_available(c) && gfx_present[video_new_to_old(c)])
    3.52                          {
    3.53                                  SendMessage(h, CB_ADDSTRING, 0, (LPARAM)(LPCSTR)s);
    3.54                                  if (video_new_to_old(c) == gfxcard)