Tema LinuxBSD Ver. 0.2 lnx
 http://www.linuxbsd.com.br 

  


  

  

Como rodar jogos do Windows no Linux

Enviado por DarkWarrior em Qua, 2007-01-17 14:26.

Autor: Carlos (EXECx)
eMail: executor[NOSPAM]ieg.com.br
Data: 2003

Uma das grandes reclamações de novos usuários que migram para o linux é a falta de opção de jogos para esta plataforma, apesa de já haver grandes nomes que rodam no linux muitos grandes nomes ainda não possuem sua versão, mas apesar de todos estes problemas, ainda é possível jogar como o auxilio do WINE, o wine apesar de ser confudido com emulador não é um emulador, mas sim converter as apis Win32 fazendo que aplicativos Windows sejam executados no Linux. Se você Gosta de Jogos e quer experimentar no linux vale a pena ler este tutorial.

Sua função como muitos devem conhecer é converter as APIs de programas windows para que aplicativos executáveis em Windows possam ser executados no LINUX. Consideraria o nível de instalação desse software como "básico", pois não há muito segredo com a configuração, o que você mais vai precisar é de sorte para rodar os programas.

Recomendo que tenha muito espaço livre em disco onde se encontra o diretório /usr/src pelo menos 300 MB para durante a compilação.

PONTOS POSITIVOS:

- Você pode rodar jogos do Windows que não consegue abandonar, exemplos dos que consegui rodar:
- Half-Life
- Counter-Strike - FUNCIONA JOGO PELA INTERNET!!!
- StarCraft
- Diablo II
- Você pode rodar diversos aplicativos convencionais do Windows, como Winamp e outros

PONTOS NEGATIVOS:

- Provavelmente os jogos que usam DirectX ou DirectDraw (como StarCraft e Diablo II) rodarão com menor velocidade, devido às conversões das APIs proprietárias da microsoft, mas nada de lentidão exagerada.

1. REQUERIMENTOS:

Uma boa máquina!
Aconselho um bom processador e no mínimo 128 Mb de RAM para os jogos que são pesados. Placa de vídeo 3D com drivers que habilitam suporte a OpenGL no LINUX (para os jogos que suportam).

-Linux com kernel 2.0.36 ou mais recente.

-gcc

*para compilação com suporte a OpenGL (para rodar Half-Life) você precisa desses

arquivos:

gl.h
glx.h
glext.h

Estes arquivo podem ser encontrados no Google

Coloque todos eles neste diretório (crie se precisar - Case Sensitive!): /usr/X11R6/include/GL/ pronto, agora vamos começar a por a mão na massa...

2. Pegando o WINE na internet:

Pode ir para esse site oficial e pegar a versão mais atualizada: http://www.winehq.com

Prefira o arquivo tarball gziped (.tar.gz) como no meu exemplo usei o: Wine-20020122.tar.gz

3. Descompactando
Coloque o arquivo no diretório: /usr/src e execute tar -zxvf Wine-20020122.tar.gz (no meu exemplo) renomeie o diretório que ele cria para "wine"

4. Compilando
Entre no diretório onde foi descompactado o wine: cd /usr/src/wine/, agora execute o comando de configuração:

% ./configure

* Se for compilar com suporte a OpenGL (e tiver os arquivos requeridos para isto no lugar certo - veja o * acima)
execute:

% ./configure --enable-opengl
% make depend
% make

E relaxe enquanto o wine é compilado... isso demora muito, e ocupa muito espaço em disco durante o processo.

5. Instalando
Depois de compilado o WINE precisa ser instalado, ainda no diretório /usr/src/wine/ execute o comando (COMO ROOT!):

% ./tools/wineinstall
Esse instalador é interativo, primeiro ele instala os arquivos nos lugares certos, depois ele pergunta se quer detectar uma instalação do Windows no PC. Responda tudo com "yes" ou "no".

Se não tiver uma instalação do Windows no PC ele pergunta se quer criar uma instalação falsa, responda "yes", e escolha o diretório a ser criado para criar essa falsa instalação, ex: /winc ou apenas /c

Quando ele perguntar se quer criar um arquivo de configuração na sua pasta de usuário responda "yes" para que ele crie os arquivos necessários.

6. Configurando

Este passo vai variar de PC para PC, mas o principal é editar e fazer as alterações necessárias no arquivo criado em seu diretório de usuário na pasta:

~user/.wine/

Entre nele pelo midnight comander (em qualquer terminal digite: mc) e edite o arquivo:

/.wine/config

O necessário a ser alterado é principalmente as configurações dos diretórios a serem usados como unidades do Windows como A:, C:, D:, E: ...

Altere também as linhas de configurações da seção [x11drv]:

"UseDGA" = "Y"

altere para

"UseDGA" = "N"

e

"DesktopDoubleBuffered" = "N"

para

"DesktopDoubleBuffered" = "Y"

E pronto... Tudo deve funcionar. BOA SORTE!!! pois o WINE ainda está em fase ALPHA de desenvolvimento, nada é garantido de funcionar, mas vale a pena o desafio!

7. Testando

Para poder rodar qualquer coisa, o diretório do programa ou jogo devem estar dentro de alguma unidade definida no "config" (c:, d:, ...) senão não funciona!!!

Para rodar qualquer executável use o comando "wine arquivo.exe", ex:

wine StarCraft.exe;
wine Diablo II.exe;

*dica: para rodar Half-Life, execute este comando na pasta do HL:

wine hl.exe -- hl.exe -console -windowed

E para rodar Counter-Strike:

wine hl.exe -- hl.exe -console -windowed -game cstrike

Pronto! configure para rodar em OpenGL e teste!

Divirta-se, essa é uma ótima maneira de poder jogar o que você não abandonaria por nada do Windows!!!

Configuração da máquina onde realizei os processos
Hardware:
AMD AThlon XP 1500+ - mobo Asus A7A266
128 Mb DDR-RAM - HD MAXTOR ATA-133 40Gb
O.Ss.: RedHat LINUX 7.2 (kernel 2.4.7-10)
Mandrake LINUX 8.1 (Kernel 2.4.8)

*bug no MANDRAKE= após instalar, crie um link simbólico da seguinte forma:

ln -s /usr/local/bin/wine /usr/bin/wine

Isso coloca o wine em local executável.

*Aqui vai o meu arquivo de configuração como exemplo, (/.wine/config)

#------------------ Minha configuração -----------------#
WINE REGISTRY Version 2

;; All keys relative to MachineSoftwareWineWineConfig
;;
;; MS-DOS drives configuration
;;
;; Each section has the following format:

;; [Drive X]

;; "Path"="xxx" (Unix path for drive root)

;; "Type"="xxx" (supported types are 'floppy', 'hd', 'cdrom' and 'network')

;; "Label"="xxx" (drive label, at most 11 characters)

;; "Serial"="xxx" (serial number, 8 characters hexadecimal number)

;; "Filesystem"="xxx" (supported types are 'msdos'/'dos'/'fat', 'win95'/'vfat', 'unix')

;; This is the FS Wine is supposed to emulate on a certain

;; directory structure.

;; Recommended:

;; - "win95" for ext2fs, VFAT and FAT32

;; - "msdos" for FAT16 (ugly, upgrading to VFAT driver strongly recommended)

;; DON'T use "unix" unless you intend to port programs using Winelib !

;; "Device"="/dev/xx" (only if you want to allow raw device access)

;;

[Drive A]

"Path" = "/mnt/floppy"

"Type" = "floppy"

"Label" = "Floppy"

"Serial" = "87654321"

"Device" = "/dev/fd0"

[Drive C]

"Path" = "/winc"

"Type" = "hd"

"Label" = "MS-DOS"

"Filesystem" = "vfat"

[Drive D]

"Path" = "/win2"

"Type" = "hd"

"Label" = "backup"

"Filesystem" = "vfat"

[Drive E]

"Path" = "/win3"

"Type" = "hd"

"Label" = "games"

"Filesystem" = "vfat"

[Drive F]

"Path" = "/mnt/cdrom"

"Type" = "cdrom"

"Label" = "CD-Rom"

"Filesystem" = "win95"

; make sure that device is correct and has proper permissions !

"Device" = "/dev/cdrom"

[Drive G]

"Path" = "/tmp"

"Type" = "hd"

"Label" = "Tmp Drive"

"Filesystem" = "win95"

[Drive I]

"Path" = "${HOME}"

"Type" = "network"

"Label" = "Home"

"Filesystem" = "win95"

[wine]

"Windows" = "c:windows"

"System" = "c:windowssystem"

"Temp" = "e:"

"Path" = "c:windo

ws;c:windowssystem;e:;e:test;f:"

"Profile" = "c:windowsProfilesAdministrator"

"GraphicsDriver" = "x11drv"

; Wine doesn't pass directory symlinks to Windows programs by default.

; Enabling this may crash some programs that do recursive lookups of a whole

; subdir tree in case of a symlink pointing back to itself.

;"ShowDirSymlinks" = "1"

"ShellLinker" = "wineshelllink"

#

; Be careful here, wrong DllOverrides settings have the potential

; to pretty much kill your setup.

[DllOverrides]

"commdlg" = "builtin, native"

"comdlg32" = "builtin, native"

"ver" = "builtin, native"

"version" = "builtin, native"

"shell" = "builtin, native"

"shell32" = "builtin, native"

"shfolder" = "builtin, native"

"shlwapi" = "builtin, native"

"lzexpand" = "builtin, native"

"lz32" = "builtin, native"

"comctl32" = "builtin, native"

"commctrl" = "builtin, native"

"advapi32" = "builtin, native"

"crtdll" = "builtin, native"

"mpr" = "builtin, native"

"winspool.drv" = "builtin, native"

"ddraw" = "builtin, native"

"dinput" = "builtin, native"

"dsound" = "builtin, native"

"opengl32" = "builtin, native"

"msvcrt" = "native, builtin"

"rpcrt4" = "native, builtin"

"msvideo" = "builtin, native"

"msvfw32" = "builtin, native"

"mcicda.drv" = "builtin, native"

"mciseq.drv" = "builtin, native"

"mciwave.drv" = "builtin, native"

"mciavi.drv" = "native, builtin"

"mcianim.drv" = "native, builtin"

"msacm.drv" = "builtin, native"

"msacm" = "builtin, native"

"msacm32" = "builtin, native"

"midimap.drv" = "builtin, native"

; default for all other dlls

"*" = "native, builtin, so"

[x11drv]

; Number of colors to allocate from the system palette

"AllocSystemColors" = "100"

; Use a private color map

"PrivateColorMap" = "N"

; Favor correctness over speed in some graphics operations

"PerfectGraphics" = "N"

; Color depth to use on multi-depth screens

;;"ScreenDepth" = "16"

; Name of X11 display to use

;;"Display" = ":0.0"

; Allow the window manager to manage created windows

"Managed" = "N"

; Use a desktop window of 640x480 for Wine

;"Desktop" = "640x480"

; Use XFree86 DGA extension if present

; (make sure /dev/mem is accessible by you !)

"UseDGA" = "N"

; Use XShm extension if present

"UseXShm" = "Y"

; Use XVidMode extension if present

"UseXVidMode" = "Y"

; Enable DirectX mouse grab

"DXGrab" = "N"

; Create the desktop window with a double-buffered visual

; (useful to play OpenGL games)

"DesktopDoubleBuffered" = "Y"

; Code page used for captions in managed mode

; 0 means default ANSI code page (CP_ACP == 0)

"TextCP" = "0"

; Use this if you have more than one port for video on your setup

; (Wine uses for now the first 'input image' it finds).

;; "XVideoPort" = "43"

; Run in synchronous mode (useful for debugging X11 problems)

;;"Synchronous" = "Y"

[fonts]

;Read documentation/fonts before adding aliases

;See a couple of examples for russian users below

"Resolution" = "96"

"Default" = "-adobe-helvetica-"

"DefaultFixed" = "fixed"

"DefaultSerif" = "-adobe-times-"

"DefaultSansSerif" = "-adobe-helvetica-"

;; default TrueType fonts with russian koi8-r encoding

;"Default" = "-monotype-arial-*-*-*--*-*-*-*-*-*-koi8-r"

;"DefaultFixed" = "-monotype-courier new-*-*-*--*-*-*-*-*-*-koi8-r"

;"DefaultSerif" = "-monotype-times new roman-*-*-*--*-*-*-*-*-*-koi8-r"

;"DefaultSansSerif" = "-monotype-arial-*-*-*--*-*-*-*-*-*-koi8-r"

;; default cyrillic bitmap X fonts

;"Default" = "-cronyx-helvetica-"

;"DefaultFixed" = "fixed"

;"DefaultSerif" = "-cronyx-times-"

;"DefaultSansSerif" = "-cronyx-helvetica-"

[serialports]

"Com1" = "/dev/ttyS0"

"Com2" = "/dev/ttyS1"

"Com3" = "/dev/ttyS2"

"Com4" = "/dev/modem"

[parallelports]

"Lpt1" = "/dev/lp0"

[ppdev]

;; key: io-base of the emulated port

;; value : parport-device{,timeout}

;; timeout for auto closing an open device ( not yet implemented)

;"378" = "/dev/parport0"

;"278" = "/dev/parport1"

;"3bc" = "/dev/parport2"

[spooler]

"FILE:" = "tmp.ps"

"LPT1:" = "|lpr"

"LPT2:" = "|gs -sDEVICE=bj200 -sOutputFile=/tmp/fred -q -"

"LPT3:" = "/dev/lp3"

[ports]

;"read" = "0x779,0x379,0x280-0x2a0"

;"write" = "0x779,0x379,0x280-0x2a0"

[spy]

"Exclude" = "WM_SIZE;WM_TIMER;"

[registry]

;These are all booleans. Y/y/T/t/1 are true, N/n/F/f/0 are false.

;Defaults are read all, write to Home

; Global registries (stored in /etc)

"LoadGlobalRegistryFiles" = "Y"

; Home registries (stored in ~user/.wine/)

"LoadHomeRegistryFiles" = "Y"

; Load Windows registries from the Windows directory

"LoadWindowsRegistryFiles" = "Y"

; TRY to write all changes to home registries

"WritetoHomeRegistryFiles" = "Y"

; Registry periodic save timeout in seconds

; "PeriodicSave" = "600"

; Save only modified keys

"SaveOnlyUpdatedKeys" = "Y"

[Tweak.Layout]

;; supported styles are 'Win31'(default), 'Win95', 'Win98'

;; this has *nothing* to do with the windows version Wine returns:

;; use cmdline option --winver if you want that.

"WineLook" = "Win95"

[Console]

;"Drivers" = "tty"

;"XtermProg" = "nxterm

" ;"InitialRows" = "25"

;"InitialColumns" = "80"

;"TerminalType" = "nxterm"

[Clipboard]

"ClearAllSelections" = "0"

"PersistentSelection" = "1"

; List of all directories directly contain .AFM files

[afmdirs]

"1" = "/usr/share/ghostscript/fonts"

"2" = "/usr/share/a2ps/afm"

"3" = "/usr/share/enscript"

"4" = "/usr/X11R6/lib/X11/fonts/Type1"

[WinMM]

"Drivers" = "wineoss.drv"

"WaveMapper" = "msacm.drv"

"MidiMapper" = "midimap.drv"
#--------------- FIM --------------#

»