problem with applicaition using SDL library

Started by hanmal, 23 March 2008, 20:25:52

Previous topic - Next topic

hanmal

Hello, this question may be too specific and not interesting to many people, but...

I'm having a problem with my voodoo 3 on a Pentium III 1Ghz (256mb RAM), with AmigaSport 3.0 XP installed on Windows 2000.
The application is an emulator called RAINE ( http://www.rainemu.com ).
It makes use of SDL video library, and basically offers two video rendering options, 'yuv overlays' & 'normal blits' :
'yuv overlays' works fine, but voodoo 3 can't handle overlays if i'm not mistaken, so it seems to be in software mode.
(I learned that if it was hardware-accelerated, it should be stretched full-screen in any video resolution without using any CPU power, but it doesn't seem so.), but no problem here.

My real problem is with 'normal blits' option, combined with double-buffering and scanlines in full-screen mode.
It must be in software-mode and use some CPU power, but it seems to drain my CPU usage (0% free) in some resolutions (while it works easy, and looks very comfortable in some other resolutions) : This problem occurs in a resolution of 640x480 without tv-out, but not in a resolution of 800x600 without tv-out. If I turn on the tv-out function, however, it seems to occur in both resolutions.
the emulator can display a rdtsc profiler, and it is easy to see that the CPU usage going up is solely related to video blit part.
If it didn't work in any resolution, I would think that there's just no solution,  but it does work with a faily low CPU usage in 800x600 and at least one higher resolution (something x 960), so I'm still wondering why it doesn't work in 640x480 or tv-out mode.

I'd be grateful if someone could test this with his voodoo 3 card and give his opinion, thanks!

Here, I copy & paste the config file of the neogeo cd version of this emulator, 'neoraine' for windows - 'raine32_sdl.cfg', with the video options mentioned above. it should be in 'config' folder.
(I'm giving this since every neogeo game works in 640x480 in double width & full height mode) :

[General]
run_count = 1
neo_version = 65795
LimitSpeed = 1
frame_skip = 0
ShowFPS = 3
UseRdtsc = 1
UseLEDS = 1
save_game_screen_settings = 0
auto_save = 0
UseCompression = 1

[Display]
video_mode = 2
screen_x = 640
screen_y = 480
scanlines = 3
stretch = 0
video_fps = 15
rotate = 0
flip = 0
no_rotate = 0
no_flip = 0
auto_mode_change = 2
fix_aspect_ratio = 1
prefered_yuv_format = 0
fullscreen = 1
double_buffer = 1

[neocd]
neocd_dir = f:\neoraine-1.1.3\roms
music_volume = 50
sfx_volume = 90
cdrom_speed = 8

[Directories]
ScreenShots = f:\neoraine-1.1.3\screens\
rom_dir_0 = f:\neoraine-1.1.3\roms\
language_file = english.cfg

[default_game_key_config]
Def_Coin_A = 51
Def_Coin_A_joystick = 655361
Def_Coin_B = 52
Def_Coin_B_joystick = 655362
Def_Coin_C = 55
Def_Coin_C_joystick = 655363
Def_Coin_D = 56
Def_Coin_D_joystick = 655364
Def_Tilt = 116
Def_Service = 121
Def_Test = 117
Def_P1_Start = 49
Def_P1_Start_joystick = 589825
Def_P1_Up = 273
Def_P1_Up_joystick = 513
Def_P1_Down = 274
Def_P1_Down_joystick = 769
Def_P1_Left = 276
Def_P1_Left_joystick = 1
Def_P1_Right = 275
Def_P1_Right_joystick = 257
Def_P1_Button_1 = 118
Def_P1_Button_1_joystick = 65537
Def_P1_Button_1_mouse = 1
Def_P1_Button_2 = 98
Def_P1_Button_2_joystick = 131073
Def_P1_Button_2_mouse = 3
Def_P1_Button_3 = 110
Def_P1_Button_3_joystick = 196609
Def_P1_Button_3_mouse = 2
Def_P1_Button_4 = 103
Def_P1_Button_4_joystick = 262145
Def_P1_Button_5 = 104
Def_P1_Button_5_joystick = 327681
Def_P1_Button_6 = 106
Def_P1_Button_6_joystick = 393217
Def_P1_Button_7 = 109
Def_P1_Button_7_joystick = 458753
Def_P1_Button_8 = 107
Def_P1_Button_8_joystick = 524289
Def_P2_Start = 50
Def_P2_Start_joystick = 589826
Def_P2_Up = 115
Def_P2_Up_joystick = 514
Def_P2_Down = 120
Def_P2_Down_joystick = 770
Def_P2_Left = 122
Def_P2_Left_joystick = 2
Def_P2_Right = 99
Def_P2_Right_joystick = 258
Def_P2_Button_1 = 113
Def_P2_Button_1_joystick = 65538
Def_P2_Button_2 = 119
Def_P2_Button_2_joystick = 131074
Def_P2_Button_3 = 101
Def_P2_Button_3_joystick = 196610
Def_P2_Button_4 = 114
Def_P2_Button_4_joystick = 262146
Def_P2_Button_5 = 97
Def_P2_Button_5_joystick = 327682
Def_P2_Button_6 = 100
Def_P2_Button_6_joystick = 393218
Def_P2_Button_7 = 102
Def_P2_Button_7_joystick = 458754
Def_P2_Button_8 = 103
Def_P2_Button_8_joystick = 524290
Def_P3_Start = 53
Def_P3_Start_joystick = 589827
Def_P3_Up = 0
Def_P3_Up_joystick = 515
Def_P3_Down = 0
Def_P3_Down_joystick = 771
Def_P3_Left = 0
Def_P3_Left_joystick = 3
Def_P3_Right = 0
Def_P3_Right_joystick = 259
Def_P3_Button_1 = 0
Def_P3_Button_1_joystick = 65539
Def_P3_Button_2 = 0
Def_P3_Button_2_joystick = 131075
Def_P3_Button_3 = 0
Def_P3_Button_3_joystick = 196611
Def_P3_Button_4 = 0
Def_P3_Button_4_joystick = 262147
Def_P3_Button_5 = 0
Def_P3_Button_5_joystick = 327683
Def_P3_Button_6 = 0
Def_P3_Button_6_joystick = 393219
Def_P3_Button_7 = 0
Def_P3_Button_7_joystick = 458755
Def_P3_Button_8 = 0
Def_P3_Button_8_joystick = 524291
Def_P4_Start = 54
Def_P4_Start_joystick = 589828
Def_P4_Up = 0
Def_P4_Up_joystick = 516
Def_P4_Down = 0
Def_P4_Down_joystick = 772
Def_P4_Left = 0
Def_P4_Left_joystick = 4
Def_P4_Right = 0
Def_P4_Right_joystick = 260
Def_P4_Button_1 = 0
Def_P4_Button_1_joystick = 65540
Def_P4_Button_2 = 0
Def_P4_Button_2_joystick = 131076
Def_P4_Button_3 = 0
Def_P4_Button_3_joystick = 196612
Def_P4_Button_4 = 0
Def_P4_Button_4_joystick = 262148
Def_P4_Button_5 = 0
Def_P4_Button_5_joystick = 327684
Def_P4_Button_6 = 0
Def_P4_Button_6_joystick = 393220
Def_P4_Button_7 = 0
Def_P4_Button_7_joystick = 458756
Def_P4_Button_8 = 0
Def_P4_Button_8_joystick = 524292
Def_Flipper_1_Left = 306
Def_Flipper_1_Right = 305
Def_Flipper_2_Left = 304
Def_Flipper_2_Right = 303
Def_Tilt_Left = 92
Def_Tilt_Right = 47
Def_Button_1_Left = 122
Def_Button_1_Right = 101
Def_P1_A = 97
Def_P1_E = 101
Def_P1_I = 105
Def_P1_M = 109
Def_P1_Kan = 306
Def_P1_B = 98
Def_P1_F = 102
Def_P1_J = 106
Def_P1_N = 110
Def_P1_Reach = 304
Def_P1_C = 99
Def_P1_G = 103
Def_P1_K = 107
Def_P1_Chi = 32
Def_P1_Ron = 122
Def_P1_D = 100
Def_P1_H = 104
Def_P1_L = 108
Def_P1_Pon = 308
Def_Service_A = 0
Def_Service_B = 0
Def_Service_C = 0
Def_Button_2_Left = 114
Def_Button_2_Right = 116
key_layer_0 = 286
key_layer_1 = 287
key_layer_2 = 288
key_layer_3 = 289
key_layer_4 = 290
key_layer_5 = 291
key_layer_6 = 293
key_layer_7 = 293
key_layer_8 = 293
key_layer_9 = 293
key_layer_10 = 293
key_layer_11 = 293
key_layer_12 = 293
key_layer_13 = 293
key_layer_14 = 293
key_layer_15 = 293

[emulator_key_config]
Save_Screenshot = 4194419
Fullscreen = 4194317
Increase_frameskip = 280
Decrease_frameskip = 281
Increase_cpu_skip = 278
Decrease_cpu_skip = 279
Toggle_limit_speed = 127
Save_game = 283
Switch_save_slot = 284
Load_game = 285
Switch_fps_display = 292
Reset_game = 282
Pause_game = 112
Stop_emulation = 27
Return_to_gui = 9
Fwd_1_frame_in_pause = 32

[emulator_joy_config]
Save_Screenshot = 0
Fullscreen = 0
Increase_frameskip = 0
Decrease_frameskip = 0
Increase_cpu_skip = 0
Decrease_cpu_skip = 0
Toggle_limit_speed = 0
Save_game = 0
Switch_save_slot = 0
Load_game = 0
Switch_fps_display = 0
Reset_game = 0
Pause_game = 0
Stop_emulation = 0
Return_to_gui = 0
Fwd_1_frame_in_pause = 0

[GUI]
repeat_delay = 500
repeat_interval = 30
min_font_size = 10
max_font_size = 30
return_mandatory = 0
use_transparency = 1
fg_color = FFFFFFFF
bg_color = 28287880
fgframe_color = FFFFFFFF
bgframe_color = 000080FF
slider_border = 000000FF
slider_bar = C0C0C0FF
slider_lift = FFFFFFFF
bg_dialog_bar = 000000FF

[Sound]
sound_card = 1
sample_rate = 44100
smallest_sound_buffer = 0