I have a patch you can apply after the normal one (for mame 139 or 139u1) which adds Linux support for removing the warnings and such. From what I can tell this seems like the way to fully remove it and it cleanly goes straight into the game now.
diff -ruN Mame_vanilla_0.139u1/src/osd/sdl/video.c Mame_hiscore_0.139u1/src/osd/sdl/video.c
--- Mame_vanilla_0.139u1/src/osd/sdl/video.c 2010-06-29 20:46:22.000000000 -0500
+++ Mame_hiscore_0.139u1/src/osd/sdl/video.c 2010-08-28 02:20:48.000000000 -0500
@@ -357,6 +357,29 @@
debugwin_update_during_game(machine);
}
+//============================================================
+// MKCHAMP - BELOW IS THE NEW SUB CALLED FROM emu/video.c. ONLY
+// DIFFERENCE BETWEEN THIS SUB AND osd_update IS IT CALLS NEW SUB CALLED sdlwindow_video_window_update_hi
+// INSTEAD OF sdlwindow_video_window_update (located in osd/sdl/window.c)
+//============================================================
+
+void osd_update_hi(running_machine *machine, int skip_redraw)
+{
+ sdl_window_info *window;
+
+ // if we're not skipping this redraw, update all windows
+ if (!skip_redraw)
+ for (window = sdl_window_list; window != NULL; window = window->next)
+ sdlwindow_video_window_update_hi(machine, window);
+
+ // poll the joystick values here
+ sdlinput_poll(machine);
+ check_osd_inputs(machine);
+
+ if ((machine->debug_flags & DEBUG_FLAG_OSD_ENABLED) != 0)
+ debugwin_update_during_game(machine);
+}
+
//============================================================
// add_primary_monitor
diff -ruN Mame_vanilla_0.139u1/src/osd/sdl/window.c Mame_hiscore_0.139u1/src/osd/sdl/window.c
--- Mame_vanilla_0.139u1/src/osd/sdl/window.c 2010-06-29 20:46:22.000000000 -0500
+++ Mame_hiscore_0.139u1/src/osd/sdl/window.c 2010-08-28 02:34:30.000000000 -0500
@@ -1007,6 +1007,64 @@
//============================================================
+// sdlwindow_video_window_update_hi
+// (main thread)
+//============================================================
+
+void sdlwindow_video_window_update_hi(running_machine *machine, sdl_window_info *window)
+{
+
+ ASSERT_MAIN_THREAD();
+
+ // adjust the cursor state
+ sdlwindow_update_cursor_state(machine, window);
+
+ // if we're visible and running and not in the middle of a resize, draw
+ if (window->target != NULL)
+ {
+ int tempwidth, tempheight;
+
+ // see if the games video mode has changed
+ render_target_get_minimum_size(window->target, &tempwidth, &tempheight);
+ if (tempwidth != window->minwidth || tempheight != window->minheight)
+ {
+ window->minwidth = tempwidth;
+ window->minheight = tempheight;
+ if (!window->fullscreen)
+ {
+ sdlwindow_blit_surface_size(window, window->width, window->height);
+ sdlwindow_resize(window, window->blitwidth, window->blitheight);
+ }
+ else if (video_config.switchres)
+ {
+ pick_best_mode(window, &tempwidth, &tempheight);
+ sdlwindow_resize(window, tempwidth, tempheight);
+ }
+ }
+
+ // only render if we have been signalled
+ /*if (osd_event_wait(window->rendered_event, 0))
+ {
+ worker_param wp;
+ const render_primitive_list *primlist;
+
+ clear_worker_param(&wp);
+
+ // ensure the target bounds are up-to-date, and then get the primitives
+ primlist = window->get_primitives(window);
+
+ // and redraw now
+
+ wp.list = primlist;
+ wp.window = window;
+ wp.machine = machine;
+
+ execute_async(&draw_video_contents_wt, &wp);
+ }*/
+ }
+}
+
+//============================================================
// set_starting_view
// (main thread)
//============================================================
diff -ruN Mame_vanilla_0.139u1/src/osd/sdl/window.h Mame_hiscore_0.139u1/src/osd/sdl/window.h
--- Mame_vanilla_0.139u1/src/osd/sdl/window.h 2010-06-03 15:27:50.000000000 -0500
+++ Mame_hiscore_0.139u1/src/osd/sdl/window.h 2010-08-28 02:18:41.000000000 -0500
@@ -127,6 +127,7 @@
// creation/deletion of windows
int sdlwindow_video_window_create(running_machine *machine, int index, sdl_monitor_info *monitor, const sdl_window_config *config);
void sdlwindow_video_window_update(running_machine *machine, sdl_window_info *window);
+void sdlwindow_video_window_update_hi(running_machine *machine, sdl_window_info *window);
void sdlwindow_blit_surface_size(sdl_window_info *window, int window_width, int window_height);
void sdlwindow_toggle_full_screen(running_machine *machine, sdl_window_info *window);
void sdlwindow_modify_prescale(running_machine *machine, sdl_window_info *window, int dir);
Also another thing I did was change the following line in hiscore.c ....
- filerr = mame_fopen(NULL, db_filename, OPEN_FLAG_READ, &f);
+ filerr = mame_fopen(FILETYPE_HIGHSCORE, db_filename, OPEN_FLAG_READ, &f);
Which makes it so mame looks for the hiscore.dat file in the highscore directory ("hi" by default) and seems easier to me for it to be there and able to change location in the config. Also allows frontends like wahcade to find it, cause they use the current directory of /usr/local/bin/ or whereever mame is located and under Linux it's messy to just put files in the current working directory programs run (guessing it is in Windows too, but seems more common).
Thanks,
Chris