GLIDE: Update from upstream
authorptitSeb <sebastien.chev@gmail.com>
Mon, 3 Mar 2014 13:54:23 +0000 (14:54 +0100)
committerptitSeb <sebastien.chev@gmail.com>
Mon, 3 Mar 2014 13:54:23 +0000 (14:54 +0100)
source/gles2glide64/data/Glide64mk2.ini
source/gles2glide64/src/Glide64/Main.cpp

index 045c849..cc04738 100755 (executable)
 ;
 
 [SETTINGS]
-card_id = 0
-resolution=8
-filter_cache = 0
-autodetect_ucode = 1
-ucode = 2
-wireframe = 0
-wfmode=1
-filtering = 1
-depthmode = 0
-fog = 1
-buff_clear = 1
-vsync = 1
-swapmode = 1
-run_in_window = 0
-show_fps = 0
-clock = 0
-clock_24_hr = 0
-wrap_big_tex = 0
-custom_ini = 1
 hotkeys = 1
-ssformat=1
-logging = 0
-log_clear = 0
-unk_as_red = 0
-log_unk = 0
-unk_clear = 0
-new_swap = 1
-hires_motionblur = 0
-flame_corona = 0
-fb_smart = 1
-fb_read_always = 0
-fb_clear = 0
-fb_hires = 1
-fb_depth_clear = 0
-motionblur = 1
-elogging = 0
-lodmode = 0
-fb_get_info = 0
-fb_render = 1
-detect_cpu_write = 0
-fillrec_depth_compare = 0
-tex_wrap_hack = 0
-read_back_to_screen = 0
-advanced_options = 0
-texenh_options = 0
-ghq_fltr = 0
-ghq_cmpr = 0
-ghq_enht = 0
-ghq_hirs = 0
-ghq_enht_cmpr = 0
-ghq_enht_tile = 0
-ghq_enht_f16bpp = 0
-ghq_enht_gz = 1
-ghq_enht_nobg=0
-ghq_hirs_cmpr = 0
-ghq_hirs_tile = 0
-ghq_hirs_f16bpp = 0
-ghq_hirs_gz = 1
-ghq_hirs_altcrc = 1
-ghq_cache_save = 1
-ghq_cache_size=0
-ghq_hirs_let_texartists_fly = 0
-ghq_hirs_dump = 0
-wrpResolution=0
-wrpVRAM=0
-wrpFBO=0
-wrpAnisotropic=0
 
 ; UCODE:
 ; These are ucode crcs used in the uCode detector.
@@ -285,33 +219,20 @@ lodmode = 0
 fb_smart = 0
 fb_hires = 1
 fb_get_info = 0
-fb_read_always = 0
 fb_render = 1
 fb_crc_mode = 1
 read_back_to_screen = 0
 detect_cpu_write = 0
 alt_tex_size = 0
 use_sts1_only = 0
-PPL = 0
 fast_crc = 1
 force_microcheck = 0
 force_quad3d = 0
-texrect_zbuf = 0
-fix_tex_coord = 0
 optimize_texrect = 1
-optimize_write = 0
 hires_buf_clear = 1
-depthmode = 1
-fb_clear = 0
 fb_read_alpha = 0
-ignore_previous = 0
-soft_depth_compare = 0
-force_depth_compare = 0
 force_calc_sphere = 0
-texrect_compare_less = 0
 texture_correction = 1
-fillcolor_fix = 0
-depth_bias = 20
 increase_texrect_edge = 0
 decrease_fillrect_edge = 0
 stipple_mode = 2
@@ -324,118 +245,90 @@ aspect = 0
 zmode_compare_less = 0
 old_style_adither = 0
 n64_z_scale = 0
+pal230 = 0
+ignore_aux_copy = 0
+useless_is_useless = 0
+fb_read_always = 0
 
 [1080 SNOWBOARDING]
 optimize_texrect = 1
 alt_tex_size = 1
-depthmode = 0
 swapmode = 2
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 
 [A Bug's Life]
-depthmode = 0
 
 [AERO FIGHTERS ASSAUL]
 clip_zmin = 1
 
 [AIDYN_CHRONICLES]
-depthmode = 1
 
 [All-Star Baseball 20] 
-force_depth_compare = 1 
 
 [All-Star Baseball 99]
-force_depth_compare = 1
-depthmode = 1
 buff_clear = 0
 
 [All Star Baseball 99]
-force_depth_compare = 1
-depthmode = 1
 buff_clear = 0
 
 [All-Star Baseball '0]
-force_depth_compare = 1
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [ARMYMENAIRCOMBAT]
 increase_texrect_edge = 1
-depthmode = 1
 
 [BURABURA POYON]
-fix_tex_coord = 1
-depthmode = 0
 
 ;Bakushou Jinsei 64 - Mezease! Resort Ou.
 [ÊÞ¸¼®³¼Þݾ²64]
-fb_info_disable = 1
-depthmode = 0
 
 [BAKU-BOMBERMAN]
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [BAKUBOMB2]
 filtering = 1
-depthmode = 0
 
 [BANGAIOH]
-depthmode = 1
 
 [Banjo-Kazooie]
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [BANJO KAZOOIE 2]
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [BANJO TOOIE]
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [BASS HUNTER 64]
-fix_tex_coord = 1
-depthmode = 1
 buff_clear = 0
 swapmode = 2
 
 [BATTLEZONE]
-force_depth_compare = 1
-depthmode = 1
 
 [BEETLE ADVENTURE JP]
-wrap_big_tex = 1
 n64_z_scale = 1
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [Beetle Adventure Rac]
-wrap_big_tex = 1
 n64_z_scale = 1
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [Big Mountain 2000]
-depthmode = 1
 
 [BIOFREAKS]
-depthmode = 0
 buff_clear = 0
 fb_smart = 1
 fb_hires = 1
@@ -444,21 +337,17 @@ fb_hires = 1
 detect_cpu_write = 1
 adjust_aspect = 0
 n64_z_scale = 1
-fix_tex_coord = 128
-depthmode = 0
 swapmode = 2
 fb_smart = 1
 fb_hires = 1
 
 [Blast Corps]
-depthmode = 1
 swapmode = 0
 fb_smart = 1
 fb_hires = 1
 fb_read_alpha = 1
 
 [Blastdozer]
-depthmode = 1
 swapmode = 0
 fb_smart = 1
 fb_hires = 1
@@ -468,169 +357,120 @@ fb_read_alpha = 1
 lodmode = 2
 
 [Body Harvest]
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [BOMBERMAN64E]
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [BOMBERMAN64U]
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [BOMBERMAN64U2]
 filtering = 1
-depthmode = 0
 
 [Bottom of the 9th]
 optimize_texrect = 0
 filtering = 1
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [BRUNSWICKBOWLING]
-depthmode = 0
 buff_clear = 0
 swapmode = 0
 
 [Bust A Move 3 DX]
 filtering = 2
-depthmode = 1
 
 [Bust A Move '99]
 filtering = 2
-depthmode = 1
 
 [Bust A Move 2]
-fix_tex_coord = 1
 filtering = 2
-depthmode = 1
 fog = 0
 
 [CARMAGEDDON64]
-wrap_big_tex = 1
 filtering = 1
-depthmode = 1
 
 [CASTLEVANIA]
-depthmode = 0
-fb_clear = 1
 old_style_adither = 1
 
 [CASTLEVANIA2]
-depthmode = 0
-fb_clear = 1
 
 [CENTRE COURT TENNIS]
-soft_depth_compare = 1
-depthmode = 0
 
 [Chameleon Twist2]
 filtering = 1
-depthmode = 0
 
 [CHOPPER_ATTACK]
 filtering = 1
-depthmode = 0
 
 [CITY TOUR GP]
 force_microcheck = 1
 filtering = 1
-depthmode = 1
 
 [Command&Conquer]
-fix_tex_coord = 1
 aspect = 2
 filtering = 1
-depthmode = 1
 fog = 0
 
 [CONKER BFD]
 optimize_texrect = 1
-ignore_previous = 1
 lodmode = 1
 filtering = 1
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 
 [Cruis'n USA]
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 
 [CruisnExotica]
 filtering = 1
-depthmode = 1
 buff_clear = 0
 swapmode = 0
 
 [custom robo]
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [CUSTOMROBOV2]
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [CyberTiger]
-fix_tex_coord = 16
-depthmode = 0
 
 [DAFFY DUCK STARRING]
-depthmode = 1
-wrap_big_tex = 1
 
 [DARK RIFT]
 force_microcheck = 1
 
 [DeadlyArts]
-soft_depth_compare = 1
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 clip_zmin = 1
 
 [DERBYSTALLION 64]
-fix_tex_coord = 1
-depthmode = 0
 
 [D K DISPLAY]
-depthmode = 1
-fb_clear = 1
 
 [Donald Duck Goin' Qu]
 detect_cpu_write = 1
-depthmode = 0
 
 [Donald Duck Quack At]
 detect_cpu_write = 1
-depthmode = 0
 
 [DONKEY KONG 64]
 lodmode = 1
-depth_bias = 64
-depthmode = 1
-fb_clear = 1
 
 [Doom64]
-fillcolor_fix = 1
-depthmode = 1
 
 ;Doraemon - Mittsu no Seireiseki (J)
 [ÄÞ×´ÓݠЯÂɾ²Ú²¾·]
 read_back_to_screen = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
@@ -639,44 +479,30 @@ fb_hires = 1
 clip_zmin = 1
 
 [DR.MARIO 64]
-fix_tex_coord = 256
-optimize_write = 1
 read_back_to_screen = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 0
 
 [DRACULA MOKUSHIROKU]
-depthmode = 0
-fb_clear = 1
 
 [DRACULA MOKUSHIROKU2]
-depthmode = 0
-fb_clear = 1
 
 [Dual heroes JAPAN]
 filtering = 1
-depthmode = 0
 swapmode = 0
 
 [Dual heroes PAL]
 filtering = 1
-depthmode = 0
 swapmode = 0
 
 [Dual heroes USA]
 filtering = 1
-depthmode = 0
 swapmode = 0
 
 [DUKE NUKEM]
-increase_primdepth = 1
-depthmode = 0
 
 [EARTHWORM JIM 3D]
-increase_primdepth = 1
 filtering = 1
-depthmode = 0
 buff_clear = 0
 
 ;Eikou no Saint Andrew
@@ -685,74 +511,52 @@ correct_viewport = 1
 
 [Eltail]
 filtering = 2
-depthmode = 1
 
 [EVANGELION]
-depthmode = 1
 
 [EXCITEBIKE64]
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [extreme_g]
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [extremeg]
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [´¸½ÄØ°ÑG2]
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 
 [Extreme G 2]
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 
 [F1 POLE POSITION 64]
 clip_zmin = 1
 filtering = 2
-depthmode = 1
 
 [F1RacingChampionship]
-depthmode = 0
 buff_clear = 0
 swapmode = 0
 
 [F1 WORLD GRAND PRIX]
-soft_depth_compare = 1
-wrap_big_tex = 1
-depthmode = 0
 buff_clear = 0
 
 [F1 WORLD GRAND PRIX2]
-wrap_big_tex = 1
-soft_depth_compare = 1
-depthmode = 0
 buff_clear = 0
 
 [F-ZERO X]
-depthmode = 1
 
 ;Fushigi no Dungeon - Furai no Shiren 2 (J) 
 [F3 Ì³×²É¼ÚÝ2]
 decrease_fillrect_edge = 1
-depthmode = 0
 
 [Fighting Force]
-depthmode = 1
 
 [G.A.S.P!!Fighters'NE]
-soft_depth_compare = 1
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 clip_zmin = 1
@@ -761,7 +565,6 @@ clip_zmin = 1
 optimize_texrect = 0
 alt_tex_size = 1
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
@@ -770,80 +573,63 @@ fb_hires = 1
 optimize_texrect = 0
 alt_tex_size = 1
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [GAUNTLET LEGENDS]
-depthmode = 1
 swapmode = 2
 
 [Getter Love!!]
 zmode_compare_less = 1
-texrect_compare_less = 1
 filtering = 2
-depthmode = 1
 
 [Gex 3 Deep Cover Gec]
 filtering = 1
-depthmode = 0
 
 [GEX: ENTER THE GECKO]
 filtering = 1
-depthmode = 0
 
 [Glover]
 filtering = 1
-depthmode = 0
 
 [GOEMON2 DERODERO]
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [GOEMONS GREAT ADV]
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [GOLDENEYE]
 lodmode = 1
-depth_bias = 40
 filtering = 1
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [GOLDEN NUGGET 64]
 filtering = 2
-depthmode = 1
 
 [GT64]
 force_microcheck = 1
 filtering = 1
-depthmode = 1
 
 ; Hamster Monogatori
 [ÊѽÀ°ÓɶÞÀØ64]
 force_microcheck = 1
-depthmode = 0
 
 [HARVESTMOON64]
 zmode_compare_less = 1
-depthmode = 0
 fog = 0
 
 ; Harvest Moon 64 JAP
 [ÎÞ¸¼Þ®³ÓɶÞÀØ2]
 zmode_compare_less = 1
-depthmode = 0
 fog = 0
 
 ; Heiwa Pachinko World
 [HEIWA ÊßÁݺ Ü°ÙÄÞ64]
-depthmode = 0
 fog = 0
 swapmode = 2
 fb_smart = 1
@@ -852,84 +638,65 @@ fb_hires = 1
 [HEXEN]
 detect_cpu_write = 1
 filtering = 1
-depthmode = 1
 buff_clear = 0
 swapmode = 2
 
 [HSV ADVENTURE RACING]
-wrap_big_tex = 1
 n64_z_scale = 1
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [Holy Magic Century]
 filtering = 2
-depthmode = 1
 
 [HUMAN GRAND PRIX]
 filtering = 2
-depthmode = 0
 
 [·×¯Ä¶²¹Â 64ÀÝòÀÞÝ]
 filtering = 1
-depthmode = 0
 buff_clear = 0
 
 [Iggy's Reckin' Balls]
-fix_tex_coord = 512
-depthmode = 0
 
 [I S S 64]
-depthmode = 1
 swapmode = 2
 old_style_adither = 1
 
 [I.S.S.2000]
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [ITF 2000]
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [IT&F SUMMERGAMES]
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [J_league 1997]
-fix_tex_coord = 1
-depthmode = 1
 swapmode = 0
 
 ;J.League Eleven Beat 1997
 [JØ°¸Þ\ ²ÚÌÞÝËÞ°Ä1997]
-fb_smart=1
-fb_hires=1
+fb_smart = 1
+fb_hires = 1
 
 [J LEAGUE LIVE 64]
-wrap_big_tex = 1
-depthmode = 1
 
 [J WORLD SOCCER3]
-depthmode = 1
 swapmode = 2
 
 [JEREMY MCGRATH SUPER]
-depthmode = 0
 swapmode = 0
 
 [JET FORCE GEMINI]
 read_back_to_screen = 1
 decrease_fillrect_edge = 1
 alt_tex_size = 1
-depthmode = 1
 swapmode = 2
 fb_smart = 1
 fb_hires = 1
@@ -938,148 +705,113 @@ fb_hires = 1
 read_back_to_screen = 1
 decrease_fillrect_edge = 1
 alt_tex_size = 1
-depthmode = 1
 swapmode = 2
 fb_smart = 1
 fb_hires = 1
 
 [KEN GRIFFEY SLUGFEST]
 read_back_to_screen = 2
-depthmode = 1
 swapmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [Kirby64]
 filtering = 1
-depthmode = 0
 buff_clear = 0
 swapmode = 0
 
 [Killer Instinct Gold]
 filtering = 1
-depthmode = 0
 fog = 0
 buff_clear = 0
 
 [KNIFE EDGE]
-wrap_big_tex = 1
 fast_crc = 0
 filtering = 1
-depthmode = 1
 
 [Knockout Kings 2000]
-fb_info_disable = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 fb_read_alpha = 1
 
 [LAMBORGHINI]
 use_sts1_only = 1
 
 [LCARS - WT_Riker]
-depthmode = 1
 
 [LEGORacers]
 detect_cpu_write = 1
-depthmode = 1
 buff_clear = 0
 fb_smart = 1
 fb_hires = 1
 fb_read_alpha = 1
 
 [LET'S SMASH]
-soft_depth_compare = 1
-depthmode = 0
 
 [Lode Runner 3D] 
 swapmode = 0
 
 [LT DUCK DODGERS]
-wrap_big_tex = 1
-depthmode = 1
 
 [MACE]
-fix_tex_coord = 8
 filtering = 1
-depthmode = 1
 
 [MAGICAL TETRIS]
 force_microcheck = 1
-depthmode = 1
 fog = 0
 
 ;Mahjong Master (J)
 [Ï°¼Þ¬Ý Ï½À°]
 n64_z_scale = 1
-texrect_compare_less = 1
 zmode_compare_less = 1
 
 [MAJORA'S MASK]
-wrap_big_tex = 1
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 fb_crc_mode = 0
 
 [MARIOKART64]
 fast_crc = 0
 stipple_mode = 1
 stipple_pattern = 4286595040
-depthmode = 1
 
 [MarioGolf64]
-fb_info_disable = 1
 ignore_aux_copy = 1
 buff_clear = 0
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 
 [MarioParty]
 clip_zmin = 1
-depthmode = 0
 swapmode = 2
 
 [MarioParty2]
-depthmode = 0
 swapmode = 2
 
 [MarioParty3]
-fix_tex_coord = 1
-depthmode = 0
 
 [MARIO STORY]
 useless_is_useless = 1
 hires_buf_clear = 0
 optimize_texrect = 0
 filtering = 1
-depthmode = 1
 swapmode = 2
 fb_smart = 1
 fb_hires = 1
 fb_read_alpha = 1
 
 [MASTERS'98]
-wrap_big_tex = 1
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [Mega Man 64]
 increase_texrect_edge = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [MGAH VOL1]
 force_microcheck = 1
-depthmode = 1
 zmode_compare_less = 1
 fb_smart = 1
 
@@ -1088,20 +820,15 @@ buff_clear = 0
 
 [MICKEY USA]
 alt_tex_size = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 
 [MICKEY USA PAL]
 alt_tex_size = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 
 [MICROMACHINES64TURBO]
-depthmode = 0
 
 [Mini Racers]
 force_microcheck = 1
@@ -1111,26 +838,20 @@ fb_hires = 1
 swapmode = 0
 
 [MISCHIEF MAKERS]
-tex_wrap_hack = 0
-depthmode = 1
 fog = 0
 
 [MLB FEATURING K G JR]
 read_back_to_screen = 2
-depthmode = 1
 
 [MK_MYTHOLOGIES]
-depthmode = 1
 
 [MO WORLD LEAGUE SOCC]
 buff_clear = 0
 
 [Monaco GP Racing 2]
-depthmode = 0
 buff_clear = 0
 
 [Monaco Grand Prix]
-depthmode = 0
 buff_clear = 0
 
 ;Morita Shogi 64
@@ -1139,17 +860,14 @@ correct_viewport = 1
 
 [MortalKombatTrilogy]
 filtering = 2
-depthmode = 1
 
 [MS. PAC-MAN MM]
 detect_cpu_write = 1
-depthmode = 1
 
 [MYSTICAL NINJA]
 alt_tex_size = 1
 optimize_texrect = 0
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
@@ -1157,22 +875,18 @@ fb_hires = 1
 alt_tex_size = 1
 optimize_texrect = 0
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [NASCAR 99]
-depthmode = 0
 buff_clear = 0
 swapmode = 0
 
 [NASCAR 2000]
-depthmode = 0
 buff_clear = 0
 swapmode = 0
 
 [NBA Courtside 2]
-depthmode = 0
 buff_clear = 0
 swapmode = 0
 
@@ -1191,9 +905,7 @@ adjust_aspect = 0
 
 [NEWTETRIS]
 pal230 = 1
-fix_tex_coord = 1
 increase_texrect_edge = 1
-depthmode = 0
 fog = 0
 
 [NFL BLITZ]
@@ -1206,23 +918,15 @@ lodmode = 2
 lodmode = 2
 
 [NFL QBC '99]
-force_depth_compare = 1
-wrap_big_tex = 1
-depthmode = 0
 
 [NFL QBC 2000]
-wrap_big_tex = 1
-depthmode = 0
 swapmode = 0
 
 [NFL Quarterback Club]
-wrap_big_tex = 1
-depthmode = 0
 swapmode = 0
 
 [NINTAMAGAMEGALLERY64]
 force_microcheck = 1
-depthmode = 0
 
 [NITRO64] 
 fb_smart = 1 
@@ -1234,14 +938,9 @@ buff_clear = 0
 ; Nushi Zuri 64
 [ǼÂÞØ64]
 force_microcheck = 1
-wrap_big_tex = 0
-depthmode = 0
 buff_clear = 0
 
 [OgreBattle64]
-fb_info_disable = 1
-force_depth_compare = 1
-depthmode = 1
 
 [PACHINKO365NICHI]
 correct_viewport = 1
@@ -1251,7 +950,6 @@ useless_is_useless = 1
 hires_buf_clear = 0
 optimize_texrect = 0
 filtering = 1
-depthmode = 1
 swapmode = 2
 fb_smart = 1
 fb_hires = 1
@@ -1260,32 +958,24 @@ fb_read_alpha = 1
 [Parlor PRO 64]
 force_microcheck = 1
 filtering = 1
-depthmode = 1
 
 [Perfect Dark]
 useless_is_useless = 1
 decrease_fillrect_edge = 1
 optimize_texrect = 0
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 
 [PERFECT STRIKER]
-depthmode = 1
 swapmode = 2
 
 [Pilot Wings64]
-depthmode = 1
 buff_clear = 0
 
 [PUZZLE LEAGUE N64]
-PPL = 1
 force_microcheck = 1
-fix_tex_coord = 1
 filtering = 2
-depthmode = 1
 fog = 0
 buff_clear = 0
 fb_smart = 1
@@ -1293,11 +983,8 @@ fb_hires = 0
 fb_read_alpha = 1
 
 [PUZZLE LEAGUE]
-PPL = 1
 force_microcheck = 1
-fix_tex_coord = 1
 filtering = 2
-depthmode = 1
 fog = 0
 buff_clear = 0
 fb_smart = 1
@@ -1306,14 +993,11 @@ fb_read_alpha = 1
 
 [POKEMON SNAP]
 fast_crc = 0
-depthmode = 1
 fb_smart = 1
 fb_hires = 0
-fb_clear = 1
 
 [POKEMON STADIUM]
 optimize_texrect = 0
-depthmode = 1
 fast_crc = 0
 buff_clear = 0
 fb_smart = 1
@@ -1324,7 +1008,6 @@ fb_crc_mode = 2
 [POKEMON STADIUM 2]
 optimize_texrect = 0
 swapmode = 2
-depthmode = 1
 fast_crc = 0
 buff_clear = 0
 fb_smart = 1
@@ -1334,7 +1017,6 @@ fb_crc_mode = 2
 
 [POKEMON STADIUM G&S]
 optimize_texrect = 0
-depthmode = 1
 fast_crc = 0
 buff_clear = 0
 fb_smart = 1
@@ -1343,8 +1025,6 @@ fb_read_alpha = 1
 fb_crc_mode = 2
 
 [POLARISSNOCROSS]
-fix_tex_coord = 5
-depthmode = 1
 
 [PowerLeague64]
 force_quad3d = 1
@@ -1362,7 +1042,6 @@ fb_hires = 1
 optimize_texrect = 0
 hires_buf_clear = 0
 filtering = 1
-depthmode = 1
 swapmode = 0
 buff_clear = 0
 fb_smart = 1
@@ -1370,68 +1049,52 @@ fb_hires = 1
 fb_read_alpha = 1
 
 [Quest 64]
-depthmode = 1
 
 [Racing Simulation 2] 
-depthmode = 0
 buff_clear = 0
 
 [RAINBOW SIX]
 increase_texrect_edge = 1
-depthmode = 1
 
 [Rally'99]
 filtering = 1
-depthmode = 1
 buff_clear = 0
 fb_smart = 1
 fb_hires = 1
 
 [RALLY CHALLENGE]
 filtering = 1
-depthmode = 1
 buff_clear = 0
 fb_smart = 1
 fb_hires = 1
 
 [Rayman 2]
-depthmode = 0
 detect_cpu_write = 1
 
 [READY 2 RUMBLE]
-fix_tex_coord = 64
-depthmode = 0
 
 [Ready to Rumble]
-fix_tex_coord = 1
-depthmode = 0
 
 [Resident Evil II]
 detect_cpu_write = 1
 adjust_aspect = 0
 n64_z_scale = 1
-fix_tex_coord = 128
-depthmode = 0
 swapmode = 2
 fb_smart = 1
 fb_hires = 1
 
 [Re-Volt]
 texture_correction = 0
-depthmode = 1
 
 [RIDGE RACER 64]
 force_calc_sphere = 1
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [ROAD RASH 64]
-depthmode = 0
 swapmode = 2
 
 [Robopon64]
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
@@ -1440,12 +1103,10 @@ clip_zmin = 1
 
 [RockMan Dash]
 increase_texrect_edge = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 
 [RONALDINHO SOCCER]
-depthmode = 1
 swapmode = 2
 old_style_adither = 1
 
@@ -1453,30 +1114,23 @@ old_style_adither = 1
 buff_clear = 0
 
 [RUGRATS IN PARIS]
-depthmode = 1
 
 [RUSH 2049]
-force_texrect_zbuf = 1
 filtering = 1
-depthmode = 0
 
 [SCARS]
 filtering = 1
-depthmode = 0
 
 [SD HIRYU STADIUM]
 force_microcheck = 1
-depthmode = 0
 
 [Shadow of the Empire]
 swapmode = 2
 
 [Shadowman]
-depthmode = 0
 
 [Silicon Valley]
 filtering = 1
-depthmode = 0
 
 [Snobow Kids 2]
 swapmode = 0
@@ -1487,16 +1141,12 @@ swapmode = 0
 filtering = 1
 
 [South Park: Chef's L]
-fix_tex_coord = 4
 filtering = 2
-depthmode = 1
 fog = 0
 buff_clear = 0
 
 [South Park Chef's Lu]
-fix_tex_coord = 4
 filtering = 1
-depthmode = 1
 fog = 0
 buff_clear = 0
 
@@ -1510,20 +1160,17 @@ fast_crc = 0
 detect_cpu_write = 1
 aspect = 2
 filtering = 2
-depthmode = 1
 fog = 0
 
 [STAR SOLDIER]
 force_microcheck = 1
 filtering = 1
-depthmode = 1
 swapmode = 0
 
 [STAR TWINS]
 read_back_to_screen = 1
 decrease_fillrect_edge = 1
 alt_tex_size = 1
-depthmode = 1
 swapmode = 2
 fb_smart = 1
 fb_hires = 1
@@ -1542,20 +1189,15 @@ fb_smart = 1
 fb_hires = 1
 
 [Supercross]
-depthmode = 1
 buff_clear = 0
 
 [SUPER MARIO 64]
-depth_bias = 32
 lodmode = 1
 filtering = 1
-depthmode = 1
 
 [SUPERMARIO64]
-depth_bias = 32
 lodmode = 1
 filtering = 1
-depthmode = 1
 
 [SUPERMAN]
 detect_cpu_write = 1
@@ -1563,19 +1205,16 @@ detect_cpu_write = 1
 ;Susume! Taisen Puzzle Dama Toukon! Marumata Chou (J) 
 [½½Ò!À²¾ÝÊß½ÞÙÀÞÏ]
 force_microcheck = 1
-depthmode = 1
 fog = 0
 swapmode = 0
 
 ;Tamagotchi World 64 (J) 
 [ÐÝÅÃÞÀϺޯÁÜ°ÙÄÞ]
 use_sts1_only = 1
-depthmode = 0
 fog = 0
 
 [Taz Express]
 filtering = 1
-depthmode = 0
 buff_clear = 0
 
 [TELEFOOT SOCCER 2000]
@@ -1585,137 +1224,96 @@ buff_clear = 0
 alt_tex_size = 1
 use_sts1_only = 1
 increase_texrect_edge = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
 fb_crc_mode = 2
 
 [TG RALLY 2]
 filtering = 1
-depthmode = 1
 buff_clear = 0
 swapmode = 2
 
 [THE LEGEND OF ZELDA]
-depth_bias = 60
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 
 [THE MASK OF MUJURA]
-wrap_big_tex = 1
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 fb_crc_mode = 0
 
 [THPS2]
 filtering = 1
-depthmode = 0
 
 [THPS3]
 filtering = 1
-depthmode = 0
 
 [Tigger's Honey Hunt]
 zmode_compare_less = 1
-depthmode = 0
 buff_clear = 0
 
 [TOM AND JERRY]
-depth_bias = 2
 filtering = 1
-depthmode = 0
 
 [Tonic Trouble]
-depthmode = 0
 detect_cpu_write = 1
 
 [TONY HAWK PRO SKATER]
 filtering = 1
-depthmode = 0
 
 [TONY HAWK SKATEBOARD]
 filtering = 1
-depthmode = 0
 
 [Top Gear Hyper Bike]
-fb_info_disable = 1
 swapmode = 2
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 
 [Top Gear Overdrive]
-fb_info_disable = 1
-depthmode = 0
 buff_clear = 0
 
 [TOP GEAR RALLY]
-depth_bias = 64
-fillcolor_fix = 1
-depthmode = 0
 
 [TOP GEAR RALLY 2]
 filtering = 1
-depthmode = 1
 buff_clear = 0
 swapmode = 2
 
 [TRIPLE PLAY 2000]
-wrap_big_tex = 1
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [TROUBLE MAKERS]
-mischief_tex_hack = 0
-depthmode = 1
 fog = 0
 
 [TSUMI TO BATSU]
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 
 [TSUWAMONO64]
 force_microcheck = 1
-depthmode = 0
 
 [TWINE]
 filtering = 1
-depthmode = 0
 
 [TWISTED EDGE]
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 
 [Ultraman Battle JAPA]
-depthmode = 0
 
 [Virtual Pool 64]
-depthmode = 1
 buff_clear = 0
 
 [V-RALLY]
-fix_tex_coord = 3
 filtering = 1
-depthmode = 0
 buff_clear = 0
 swapmode = 0
 
 [Waialae Country Club]
-wrap_big_tex = 1
-depthmode = 0
 fb_smart = 1
 fb_hires = 1
 
@@ -1724,52 +1322,38 @@ pal230 = 1
 
 [WILD CHOPPERS]
 filtering = 1
-depthmode = 0
 
 [Wipeout 64]
 filtering = 1
-depthmode = 0
 swapmode = 2
 
 [WONDER PROJECT J2]
-depthmode = 0
 buff_clear = 0
 swapmode = 0
 
 [World Cup 98] 
-depthmode = 0
 swapmode = 0
 fb_smart = 1
 fb_hires = 1
 
 [WRESTLEMANIA 2000]
-depthmode = 0
 
 [YAKOUTYUU2]
-depthmode = 0
 
 [YOSHI STORY]
-fix_tex_coord = 32
 filtering = 1
-depthmode = 1
 fog = 0
 
 [ZELDA MAJORA'S MASK]
-wrap_big_tex = 1
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 fb_crc_mode = 0
 
 [ZELDA MASTER QUEST]
-depth_bias = 60
 filtering = 1
-depthmode = 1
 fb_smart = 1
 fb_hires = 1
-fb_clear = 1
 
 [MUPEN64PLUS]
 
index 9b0651b..8fd53fc 100755 (executable)
@@ -470,6 +470,46 @@ void ReadSettings ()
   settings.ghq_hirs_let_texartists_fly = Config_ReadInt ("ghq_hirs_let_texartists_fly", "Use full alpha channel -- could cause issues for some tex packs", 0, TRUE, TRUE);
   settings.ghq_hirs_dump = Config_ReadInt ("ghq_hirs_dump", "Dump textures", 0, FALSE, TRUE);
 #endif
+
+  settings.special_alt_tex_size = Config_ReadInt("alt_tex_size", "Alternate texture size method: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_use_sts1_only = Config_ReadInt("use_sts1_only", "Use first SETTILESIZE only: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_force_calc_sphere = Config_ReadInt("force_calc_sphere", "Use spheric mapping only: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_correct_viewport = Config_ReadInt("correct_viewport", "Force positive viewport: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_increase_texrect_edge = Config_ReadInt("increase_texrect_edge", "Force texrect size to integral value: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_decrease_fillrect_edge = Config_ReadInt("decrease_fillrect_edge", "Reduce fillrect size by 1: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_texture_correction = Config_ReadInt("texture_correction", "Enable perspective texture correction emulation: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_pal230 = Config_ReadInt("pal230", "Set special scale for PAL games: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_stipple_mode = Config_ReadInt("stipple_mode", "3DFX Dithered alpha emulation mode: -1=Game default, >=0=dithered alpha emulation mode", -1, TRUE, FALSE);
+  settings.special_stipple_pattern = Config_ReadInt("stipple_pattern", "3DFX Dithered alpha pattern: -1=Game default, >=0=pattern used for dithered alpha emulation", -1, TRUE, FALSE);
+  settings.special_force_microcheck = Config_ReadInt("force_microcheck", "Check microcode each frame: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_force_quad3d = Config_ReadInt("force_quad3d", "Force 0xb5 command to be quad, not line 3D: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_clip_zmin = Config_ReadInt("clip_zmin", "Enable near z clipping: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_clip_zmax = Config_ReadInt("clip_zmax", "Enable far plane clipping: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_fast_crc = Config_ReadInt("fast_crc", "Use fast CRC algorithm: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_adjust_aspect = Config_ReadInt("adjust_aspect", "Adjust screen aspect for wide screen mode: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_zmode_compare_less = Config_ReadInt("zmode_compare_less", "Force strict check in Depth buffer test: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_old_style_adither = Config_ReadInt("old_style_adither", "Apply alpha dither regardless of alpha_dither_mode: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_n64_z_scale = Config_ReadInt("n64_z_scale", "Scale vertex z value before writing to depth buffer: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_optimize_texrect = Config_ReadInt("optimize_texrect", "Fast texrect rendering with hwfbe: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_ignore_aux_copy = Config_ReadInt("ignore_aux_copy", "Do not copy auxiliary frame buffers: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_hires_buf_clear = Config_ReadInt("hires_buf_clear", "Clear auxiliary texture frame buffers: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_fb_read_alpha = Config_ReadInt("fb_read_alpha", "Read alpha from framebuffer: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_useless_is_useless = Config_ReadInt("useless_is_useless", "Handle unchanged fb: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_fb_crc_mode = Config_ReadInt("fb_crc_mode", "Set frambuffer CRC mode: -1=Game default, 0=disable CRC, 1=fast CRC, 2=safe CRC", -1, TRUE, FALSE);
+  settings.special_filtering = Config_ReadInt("filtering", "Filtering mode: -1=Game default, 0=automatic, 1=force bilinear, 2=force point sampled", -1, TRUE, FALSE);
+  settings.special_fog = Config_ReadInt("fog", "Fog: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_buff_clear = Config_ReadInt("buff_clear", "Buffer clear on every frame: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_swapmode = Config_ReadInt("swapmode", "Buffer swapping method: -1=Game default, 0=swap buffers when vertical interrupt has occurred, 1=swap buffers when set of conditions is satisfied. Prevents flicker on some games, 2=mix of first two methods", -1, TRUE, FALSE);
+  settings.special_aspect = Config_ReadInt("aspect", "Aspect ratio: -1=Game default, 0=Force 4:3, 1=Force 16:9, 2=Stretch, 3=Original", -1, TRUE, FALSE);
+  settings.special_lodmode = Config_ReadInt("lodmode", "LOD calculation: -1=Game default, 0=disable. 1=fast, 2=precise", -1, TRUE, FALSE);
+  settings.special_fb_smart = Config_ReadInt("fb_smart", "Smart framebuffer: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_fb_hires = Config_ReadInt("fb_hires", "Hardware frame buffer emulation: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_fb_read_always = Config_ReadInt("fb_read_always", "Read framebuffer every frame (may be slow use only for effects that need it e.g. Banjo Kazooie, DK64 transitions): -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_read_back_to_screen = Config_ReadInt("read_back_to_screen", "Render N64 frame buffer as texture: -1=Game default, 0=disable, 1=mode1, 2=mode2", -1, TRUE, FALSE);
+  settings.special_detect_cpu_write = Config_ReadInt("detect_cpu_write", "Show images written directly by CPU: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_fb_get_info = Config_ReadInt("fb_get_info", "Get frame buffer info: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+  settings.special_fb_render = Config_ReadInt("fb_render", "Enable software depth render: -1=Game default, 0=disable. 1=enable", -1, TRUE, FALSE);
+
   //TODO-PORT: remove?
   ConfigWrapper();
 }
@@ -549,37 +589,112 @@ void ReadSpecialSettings (const char * name)
   ini->SetPath(name);
 
   ini->Read(_T("alt_tex_size"), &(settings.alt_tex_size));
+  if (settings.special_alt_tex_size >= 0)
+    settings.alt_tex_size = settings.special_alt_tex_size;
+
   ini->Read(_T("use_sts1_only"), &(settings.use_sts1_only));
+  if (settings.special_use_sts1_only >= 0)
+    settings.use_sts1_only = settings.special_use_sts1_only;
+
   ini->Read(_T("force_calc_sphere"), &(settings.force_calc_sphere));
+  if (settings.special_force_calc_sphere >= 0)
+    settings.force_calc_sphere = settings.special_force_calc_sphere;
+
   ini->Read(_T("correct_viewport"), &(settings.correct_viewport));
+  if (settings.special_correct_viewport >= 0)
+    settings.correct_viewport = settings.special_correct_viewport;
+
   ini->Read(_T("increase_texrect_edge"), &(settings.increase_texrect_edge));
+  if (settings.special_increase_texrect_edge >= 0)
+    settings.increase_texrect_edge = settings.special_increase_texrect_edge;
+
   ini->Read(_T("decrease_fillrect_edge"), &(settings.decrease_fillrect_edge));
+  if (settings.special_decrease_fillrect_edge >= 0)
+    settings.decrease_fillrect_edge = settings.special_decrease_fillrect_edge;
+
   if (ini->Read(_T("texture_correction"), -1) == 0) settings.texture_correction = 0;
   else settings.texture_correction = 1;
+  if (settings.special_texture_correction >= 0)
+    settings.texture_correction = settings.special_texture_correction;
+
   if (ini->Read(_T("pal230"), -1) == 1) settings.pal230 = 1;
   else settings.pal230 = 0;
+  if (settings.special_pal230 >= 0)
+    settings.pal230 = settings.special_pal230;
+
   ini->Read(_T("stipple_mode"), &(settings.stipple_mode));
+  if (settings.special_stipple_mode >= 0)
+    settings.stipple_mode = settings.special_stipple_mode;
+
   int stipple_pattern = ini->Read(_T("stipple_pattern"), -1);
   if (stipple_pattern > 0) settings.stipple_pattern = (wxUint32)stipple_pattern;
+  if (settings.special_stipple_pattern >= 0)
+    stipple_pattern = settings.special_stipple_pattern;
+
   ini->Read(_T("force_microcheck"), &(settings.force_microcheck));
+  if (settings.special_force_microcheck >= 0)
+    settings.force_microcheck = settings.special_force_microcheck;
+
   ini->Read(_T("force_quad3d"), &(settings.force_quad3d));
+  if (settings.special_force_quad3d >= 0)
+    settings.force_quad3d = settings.special_force_quad3d;
+
   ini->Read(_T("clip_zmin"), &(settings.clip_zmin));
+  if (settings.special_clip_zmin >= 0)
+    settings.clip_zmin = settings.special_clip_zmin;
+
   ini->Read(_T("clip_zmax"), &(settings.clip_zmax));
+  if (settings.special_clip_zmax >= 0)
+    settings.clip_zmax = settings.special_clip_zmax;
+
   ini->Read(_T("fast_crc"), &(settings.fast_crc));
+  if (settings.special_fast_crc >= 0)
+    settings.fast_crc = settings.special_fast_crc;
+
   ini->Read(_T("adjust_aspect"), &(settings.adjust_aspect), 1);
+  if (settings.special_adjust_aspect >= 0)
+    settings.adjust_aspect = settings.special_adjust_aspect;
+
   ini->Read(_T("zmode_compare_less"), &(settings.zmode_compare_less));
+  if (settings.special_zmode_compare_less >= 0)
+    settings.zmode_compare_less = settings.special_zmode_compare_less;
+
   ini->Read(_T("old_style_adither"), &(settings.old_style_adither));
+  if (settings.special_old_style_adither >= 0)
+    settings.old_style_adither = settings.special_old_style_adither;
+
   ini->Read(_T("n64_z_scale"), &(settings.n64_z_scale));
+  if (settings.special_n64_z_scale >= 0)
+    settings.n64_z_scale = settings.special_n64_z_scale;
+
   if (settings.n64_z_scale)
     ZLUT_init();
 
   //frame buffer
   int optimize_texrect = ini->Read(_T("optimize_texrect"), -1);
+  if (settings.special_optimize_texrect >= 0)
+    optimize_texrect = settings.special_optimize_texrect;
+
   int ignore_aux_copy = ini->Read(_T("ignore_aux_copy"), -1);
+  if (settings.special_ignore_aux_copy >= 0)
+    ignore_aux_copy = settings.special_ignore_aux_copy;
+
   int hires_buf_clear = ini->Read(_T("hires_buf_clear"), -1);
+  if (settings.special_hires_buf_clear >= 0)
+    hires_buf_clear = settings.special_hires_buf_clear;
+
   int read_alpha = ini->Read(_T("fb_read_alpha"), -1);
+  if (settings.special_fb_read_alpha >= 0)
+    read_alpha = settings.special_fb_read_alpha;
+
   int useless_is_useless = ini->Read(_T("useless_is_useless"), -1);
+  if (settings.special_useless_is_useless >= 0)
+    useless_is_useless = settings.special_useless_is_useless;
+
   int fb_crc_mode = ini->Read(_T("fb_crc_mode"), -1);
+  if (settings.special_fb_crc_mode >= 0)
+    fb_crc_mode = settings.special_fb_crc_mode;
+
 
   if (optimize_texrect > 0) settings.frame_buffer |= fb_optimize_texrect;
   else if (optimize_texrect == 0) settings.frame_buffer &= ~fb_optimize_texrect;
@@ -599,7 +714,8 @@ void ReadSpecialSettings (const char * name)
     ini->Read(_T("fog"), &(settings.fog));
     ini->Read(_T("buff_clear"), &(settings.buff_clear));
     ini->Read(_T("swapmode"), &(settings.swapmode));
-    ini->Read(_T("aspect"), &(settings.aspectmode));
+    int tmp_aspect = ini->Read(_T("aspect"), -1);
+    if (tmp_aspect != 0) settings.aspectmode = tmp_aspect;
     ini->Read(_T("lodmode"), &(settings.lodmode));
 #ifdef PAULSCODE
     ini->Read(_T("autoframeskip"), &(settings.autoframeskip));
@@ -629,12 +745,32 @@ void ReadSpecialSettings (const char * name)
 
     //frame buffer
     int smart_read = ini->Read(_T("fb_smart"), -1);
+    if (settings.special_fb_smart >= 0)
+      smart_read = settings.special_fb_smart;
+
     int hires = ini->Read(_T("fb_hires"), -1);
+    if (settings.special_fb_hires >= 0)
+      hires = settings.special_fb_hires;
+
     int read_always = ini->Read(_T("fb_read_always"), -1);
+    if (settings.special_fb_read_always >= 0)
+      read_always = settings.special_fb_read_always;
+
     int read_back_to_screen = ini->Read(_T("read_back_to_screen"), -1);
+    if (settings.special_read_back_to_screen >= 0)
+      read_back_to_screen = settings.special_read_back_to_screen;
+
     int cpu_write_hack = ini->Read(_T("detect_cpu_write"), -1);
+    if (settings.special_detect_cpu_write >= 0)
+      cpu_write_hack = settings.special_detect_cpu_write;
+
     int get_fbinfo = ini->Read(_T("fb_get_info"), -1);
+    if (settings.special_fb_get_info >= 0)
+      get_fbinfo = settings.special_fb_get_info;
+
     int depth_render = ini->Read(_T("fb_render"), -1);
+    if (settings.special_fb_render >= 0)
+      depth_render = settings.special_fb_render;
 
     if (smart_read > 0) settings.frame_buffer |= fb_emulation;
     else if (smart_read == 0) settings.frame_buffer &= ~fb_emulation;