User Avatar Image

howto: get SBCG4AP 101 (demo and full game) running on Linux

posted by tremby on - last edited - Viewed by 3.6K users

Strong Bad's Cool Game for Attractive People episodes 101 and 102 howto: get them running in Linux
by demonfoo and tremby

the commands in this howto (and some of the files linked) are specific to Ubuntu Hardy Heron. a similar procedure should work for other distros, though.

[list=1]
[*] install Wine 1.1.3 or later
[list=1]
[*] if you haven't already, add WineHQ's repository to your package manager. (instructions from WineHQ)
[list=1]
[*] add the repository's key so packages can be authenticated by running
wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -
[*] add the repository to the list of sources by running
sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/hardy.list -O /etc/apt/sources.list.d/winehq.list
[*] refresh your package list by running
sudo apt-get update
[/list]
[*] install or upgrade Wine by running
sudo apt-get install wine
[/list]
[*] install IEs4Linux
[list=1]
[*] first we need cabextract and tar. we'll get the MS fonts while we're at it. install them by running
sudo apt-get install cabextract tar msttcorefonts
[*] then download and extract IEs4Linux by running
wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz -O- | tar zx
[*] move into the IEs4Linux directory by running
cd ies4linux-*
[*] load the installer by running
./ies4linux
it'll complain on the command line that you're running an old version of Wine, but it's lying.
[*] install it. the default options are fine for the purposes of this howto, but since i'm a web developer i install IE7 too by clicking "advanced" and then checking IE7's box. close the installer when it's done.
[*] move back out of the IEs4Linux directory by running
cd ..
[/list]
[*] set up Wine for SBCG4AP and install the game
[list=1]
[*] copy the WINEPREFIX ("drive C") for IE6 to make one for SBCG4AP which has IE6 installed by running
cp -a ~/.ies4linux/ie6 ~/.wine_sbcg4ap
[*] download the Homestar Ruiner demo installer with your browser (i'll assume to your desktop) or by running
wget http://www.telltalegames.com/demo/homestarruiner -O ~/Desktop/homestarruinerdemo.exe
[*] start the installer by running
env WINEPREFIX=$HOME/.wine_sbcg4ap WINEDLLOVERRIDES=\"rpcrt4,ole32,d3d9=b\" wine ~/Desktop/homestarruinerdemo.exe
[*] follow its instructions. the default paths are fine, and be sure to answer "yes" to the question about installing DirectX. uncheck "Play now" when it's done and click "Finish". then you can delete the installer if you like by selecting it and hitting delete or running
rm ~/Desktop/homestarruinerdemo.exe
[*] set up Wine for this WINEPREFIX (and therefore the game)
[list=1]
[*] run the Wine config tool with the game's WINEPREFIX by running
env WINEPREFIX=$HOME/.wine_sbcg4ap winecfg
[*] on the "Applications" tab, set the Windows version to Windows XP
[*] on the Audio tab, say OK to the box telling you to edit your audio settings and it will set some defaults. check they make sense.
[*] add DLL overrides. to do this, go to the "Libraries" tab and add each of the following:
[list]
[*] d3d9
[*] ole32
[*] rpcrt4
[/list]
by choosing from the list (or typing) and then clicking add, for each.
[*] for each of the overrides above, click its entry in the list of "Existing overrides" and click "Edit". choose "Built-in (Wine)" from the menu and click OK.
[*] optional (do this if you're having problems with the game screen or just want to run in a window): on the "Graphics" tab, check "Emulate a virtual desktop" and enter the resolution you want.
[*] click "Apply" and then "Close"
[/list]
[/list]
[*] start the game
double click the launcher, enter your My Telltale login information (if asked) and then click on the green area at right about the level of Strong Bad's feet; unfortunately the image that should be there doesn't appear.
[/list]

to install the second episode, make sure you run the installer in your SBCG4AP environment: env WINEPREFIX=$HOME/.wine_sbcg4ap wine ~/Desktop/Strong_Badia_the_Free_setup.exe
this time, you can say no to the DirectX question. if you do, you need to put a link to the DLL which the DirectX installer would have added (already in the Episode 1 directory) for Episode 2 after installing by running ln -s \"../Episode 1 - Homestar Ruiner/d3dx9_27.dll\" ~/.wine_sbcg4ap/drive_c/\"Program Files/Telltale Games/Strong Bad/Episode 2 - Strong Badia the Free/\"
then the launcher the game puts on your desktop should work just fine.

to install the third, do the same stuff as for the second, but the link command will be a tad different:
ln -s \"../Episode 1 - Homestar Ruiner/d3dx9_27.dll\" ~/.wine_sbcg4ap/drive_c/\"Program Files/Telltale Games/Strong Bad/Episode 3 - Baddest of the Bands/\"

96 Comments - Linear Discussion: Classic Style
  • Yes, hardware vertex support is enabled.

    My chipset is supposed to support openGL 2.0 and directX 9.0c, but I know the Phoronix diagnostics thingy says that my drivers only expose openGL 1.4-level functionality. Figures, Ubuntu 8.04 was shipped with a release candidate version of Mesa3D, which is now out-of-date, and won't be updated because 8.04 is supposed to be "stable."

    But since openGL 1.4 is more recent than the required "four or five years" mentioned in the system requirements page, I figured it would still work.

    maxtothemax@maxtothemax-laptop:~$ glxinfo
    name of display: :0.0
    display: :0 screen: 0
    direct rendering: Yes
    server glx vendor string: SGI
    server glx version string: 1.2
    server glx extensions:
    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
    GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGI_swap_control,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group
    client glx vendor string: SGI
    client glx version string: 1.4
    client glx extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,
    GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control,
    GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_OML_sync_control,
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap
    GLX version: 1.2
    GLX extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
    GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_OML_swap_method,
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group
    OpenGL vendor string: Tungsten Graphics, Inc
    OpenGL renderer string: Mesa DRI Intel(R) 965GM 4.1.3002 x86/MMX/SSE2
    OpenGL version string: 1.4 Mesa 7.0.3-rc2
    OpenGL extensions:
    GL_ARB_depth_texture, GL_ARB_fragment_program, GL_ARB_imaging,
    GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_point_parameters,
    GL_ARB_shadow, GL_ARB_texture_border_clamp, GL_ARB_texture_compression,
    GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
    GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar,
    GL_ARB_texture_env_dot3, GL_ARB_texture_mirrored_repeat,
    GL_ARB_texture_non_power_of_two, GL_ARB_texture_rectangle,
    GL_ARB_transpose_matrix, GL_ARB_vertex_buffer_object,
    GL_ARB_vertex_program, GL_ARB_window_pos, GL_EXT_abgr, GL_EXT_bgra,
    GL_EXT_blend_color, GL_EXT_blend_equation_separate,
    GL_EXT_blend_func_separate, GL_EXT_blend_logic_op, GL_EXT_blend_minmax,
    GL_EXT_blend_subtract, GL_EXT_clip_volume_hint, GL_EXT_cull_vertex,
    GL_EXT_compiled_vertex_array, GL_EXT_convolution, GL_EXT_copy_texture,
    GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_histogram,
    GL_EXT_multi_draw_arrays, GL_EXT_packed_pixels, GL_EXT_point_parameters,
    GL_EXT_polygon_offset, GL_EXT_rescale_normal, GL_EXT_secondary_color,
    GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap,
    GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D,
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias,
    GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_vertex_array,
    GL_3DFX_texture_compression_FXT1, GL_APPLE_client_storage,
    GL_APPLE_packed_pixels, GL_ATI_blend_equation_separate,
    GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat,
    GL_INGR_blend_func_separate, GL_MESA_pack_invert, GL_MESA_ycbcr_texture,
    GL_MESA_window_pos, GL_NV_blend_square, GL_NV_light_max_exponent,
    GL_NV_texture_rectangle, GL_NV_texgen_reflection, GL_OES_read_format,
    GL_SGI_color_matrix, GL_SGI_color_table, GL_SGIS_generate_mipmap,
    GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp,
    GL_SGIS_texture_lod, GL_SGIX_depth_texture, GL_SUN_multi_draw_arrays

    visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
    id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
    ----------------------------------------------------------------------
    0x23 24 tc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
    0x24 24 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
    0x25 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
    0x26 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
    0x27 24 tc 0 32 0 r y . 8 8 8 8 0 0 0 16 16 16 16 0 0 Slow
    0x28 24 tc 0 32 0 r . . 8 8 8 8 0 0 0 16 16 16 16 0 0 Slow
    0x29 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
    0x2a 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
    0x2b 24 dc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
    0x2c 24 dc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
    0x2d 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
    0x2e 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
    0x2f 24 dc 0 32 0 r y . 8 8 8 8 0 0 0 16 16 16 16 0 0 Slow
    0x30 24 dc 0 32 0 r . . 8 8 8 8 0 0 0 16 16 16 16 0 0 Slow
    0x31 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
    0x32 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
    0x57 32 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 Ncon
    maxtothemax@maxtothemax-laptop:~$

  • Bad news, I'm afraid. Telltale says in their support FAQ that graphics chips mentioned in this list probably won't work with their games. Looks like you have a 965GM, so it sounds like that may just not work. Unless there's a newer Xorg driver that works better, you may just be out of luck. Sorry.

    Edit: I suppose you could try upgrading to Ubuntu intrepid, and see if the drivers it contains do any better, but based on what the FAQ mentions, I wouldn't count on it.

  • That's okay, I'll just wait until I can get my desktop working again, and then the game will be staring down the barrel of an HD 4850.


    And I can always enable more Intrepid packages to try the new drivers. (I have the Intrepid repositories enabled, but I'm keeping all but a few packages back to Hardy using apt's "pinning" feature.)

  • demonfoo: that list might not be applicable because this is Wine, and Wine uses OpenGL as its DirectX implementation, which means that these cards suddenly might work in Wine when they don't in real DirectX.

    Doesn't work for me, no matter if I have IE6, set Vista mode, etc... Did anyone file a bug for this in Bugzilla? If there is one this problem might attract the Wine devs' atttention and it could get fixed permanently in a newer version of Wine.

    EDIT:
    Hi guys, please support the following bug reports by making a reply (in which you explain a bit more or just say you have the problem). The more popular a bug is, the faster it usually gets fixed.

    http://bugs.winehq.org/show_bug.cgi?id=17588
    http://bugs.winehq.org/show_bug.cgi?id=17589

  • @DaVince said: demonfoo: that list might not be applicable because this is Wine, and Wine uses OpenGL as its DirectX implementation, which means that these cards suddenly might work in Wine when they don't in real DirectX.

    That's pretty unlikely. If the card can't support hardware vertex shader fragments on Windows, it's almost certainly not going to on Linux. (And yes, I looked at his 'glxinfo' output and compared to my workstation with an nVidia board; no shader-related extensions are present on his setup, which is going to be a problem...)

    @DaVince said: Doesn't work for me, no matter if I have IE6, set Vista mode, etc... Did anyone file a bug for this in Bugzilla? If there is one this problem might attract the Wine devs' atttention and it could get fixed permanently in a newer version of Wine.

    I'd suggest using ies4linux. It's what I've used, and as I've pointed out before, I've played literally every Telltale title, and they all work. (I'm currently running Wine 1.1.15 debs on Ubuntu intrepid x86_64, as a point of comparison.)

  • I'd rather steer clear from external tools that supposedly run Wine stuff better - I've tried and disliked both WineDoors and PlayOnLinux in the past, and improvement on games working better or at all was nil.

    The reason I made these bug reports is so that it can be fixed in Wine instead, which is a lot better than having to rely on these external tools, anyway. :)

  • I just downloaded the free Episode 5 from the Trogday deal, and everything works except that I still reliably have the flamin’ “missing eyes” bug. (Actually, characters seem to have no faces at all; is this the same problem that everyone else was having?)

    I’m running this on a Lenovo ThinkPad X61 Tablet, with some kind of Intel integrated graphics. (“Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c),” according to lspci.) I use Ubuntu 9.10 “Karmic Koala,” and my Wine version is the latest dev release from the Wine repository. Please help!

  • No one ever has faces/eyes? It's a known bug that they can occasionally vanish, and it does seem like it happens more frequently on some cards than others, but if it's ALWAYS gone, then it probably is a driver/DirectX issue. Though I'm not sure what sort of luck you will have with updating a GM965. Those intel integrated cards aren't really designed for gaming even under the best conditions I'm afraid.

  • @Will said: No one ever has faces/eyes? It's a known bug that they can occasionally vanish, and it does seem like it happens more frequently on some cards than others, but if it's ALWAYS gone, then it probably is a driver/DirectX issue. Though I'm not sure what sort of luck you will have with updating a GM965. Those intel integrated cards aren't really designed for gaming even under the best conditions I'm afraid.

    Yeah, it’s sad. The worst part is that virtually all tablets are bereft of dedicated graphics, and yet, a tablet would be the best way to play a 3D adventure game, wouldn’t it? Argh.

    The game (well, uh, the title screen and main menu) seem to work just fine on the machine (minus the faces, of course), though I put the graphics quality on “low” just in case.

    I can try some unstable Intel graphics drivers from repositories and such, but in the meantime, any advice on where to go from here? Any leads that might help? I know... “getting SBCG4AP to work on an Ubuntu machine with terrible Intel graphics” is a pretty obscure query, but since I’m pretty computer-literate even vague ideas might help. Thanks!

  • Well unfortunately, I haven't done anything with Linux in probably 7 years now, so I'm probably not your best resource. All I can suggest is fiddling with your graphics drivers and whatever you are using for DirectX. One of those two is surely the culprit.

Add Comment