37c37
< 	OSystem_SDL_Normal() : sdl_tmpscreen(0), sdl_hwscreen(0), _overlay_visible(false) { _glScreenStart = 0; }
---
> 	OSystem_SDL_Normal() : sdl_tmpscreen(0), sdl_hwscreen(0), _overlay_visible(false) { _glScreenStart = 0; _glBilinearFilter = true; }
58a59
> 	bool _glBilinearFilter;
264,265d264
< 	fprintf(stderr,"bits: %d\n",sdl_tmpscreen->format->BitsPerPixel);
< 	
364a364
> 		tmpBlackRect.h = 256-_screenHeight-_glScreenStart-_currentShakePos;
367c367
< 		fb2gl.blit16(tmpSurface,1,&tmpBlackRect,0,_screenHeight+_glScreenStart);
---
> 		fb2gl.blit16(tmpSurface,1,&tmpBlackRect,0,_screenHeight+_glScreenStart+_currentShakePos);
411,420d410
< 		if (value->gfx_mode==0) {
< 		  fb2gl.init(0,0,0,15,gl_flags);
< 		  _glScreenStart = 20;
< 		  SDL_FillRect(tmpSurface,&tmpBlackRect,0);
< 		  fb2gl.blit16(tmpSurface,1,&tmpBlackRect,0,0);
< 		}
< 		else {
< 		  fb2gl.init(0,0,0,70,gl_flags);
< 		  _glScreenStart = 0;
< 		}
421a412,457
> 		glPopMatrix();
> 
> 		switch(value->gfx_mode) {
> 		  case 0: // Bilinear Filtering (on/off)
> 		    _glBilinearFilter ^= true;
> 		    for (int i=0; i<2; i++) {
> 		      glBindTexture(GL_TEXTURE_2D,i);
> 		      if (_glBilinearFilter) {
> 			glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, 
> 			    GL_LINEAR);
> 			glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, 
> 			    GL_LINEAR);
> 		      }
> 		      else {
> 			glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, 
> 			    GL_NEAREST);
> 			glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, 
> 			    GL_NEAREST);
> 		      }
> 		    }
> 		    break;
> 		  case 1: // Don't fit the whole screen
> 		    fb2gl.init(0,0,0,15,gl_flags);
> 		    _glScreenStart = 20;
> 		    SDL_FillRect(tmpSurface,&tmpBlackRect,0);
> 		    fb2gl.blit16(tmpSurface,1,&tmpBlackRect,0,0);
> 		    break;
> 		  case 2: // Fit the whole screen
> 		    fb2gl.init(0,0,0,70,gl_flags);
> 		    _glScreenStart = 0;
> 		    break;
> 		  default: // Zooming
> 		    glPushMatrix();
> /*		    SDL_FillRect(tmpSurface, &full, 0);
> 		    fb2gl.blit16(tmpSurface,1,&full,0,_glScreenStart);
> 		    fb2gl.display();
> 		    double x = (double)((_mouse_cur_state.x) 
> 			- (_screenWidth/2)) / (_screenWidth/2);
> 		    double y = (double)((_mouse_cur_state.y) 
> 			- (_screenHeight/2)) / (_screenHeight/2);
> 		    glTranslatef(-x,y,0);
> */
> 		    glScalef(1.0+(double)(value->gfx_mode-1)/10,
> 		      1.0+(double)(value->gfx_mode-1)/10,
> 		      0);
> 		};
423a460
> 		
