Saltar al contenido
PORTSNATIVE.
InicioCatálogo
Juegos WebEmuladoresHerramientasNovedades
PORTSNATIVE.

Un catálogo para descubrir ports y proyectos relacionados. Enlazamos a las fuentes oficiales y no alojamos archivos de los juegos originales.

ExplorarCatálogoMi lista
InformaciónNosotrosProponer un portSoporteApoyo y donacionesAviso legal
© 2026 PortsNative
Volver al catálogo
Grand Theft Auto: Vice City (reVCDOS)
PORTSNATIVE

Grand Theft Auto: Vice City (reVCDOS)

JUEGO WEBSHOOTER / DISPAROSWEBALPHA

Grand Theft Auto: Vice City (reVCDOS)

Grand Theft Auto: Vice City

TecnologíaWebAssembly (WASM) / WebGL / Canvas Nativo

Disponible paraWeb

Ver proyecto oficial

Sobre el proyecto

Grand Theft Auto: Vice City es un videojuego de acción-aventura de mundo abierto de disparos en tercera persona desarrollado por Rockstar North y distribuido por Rockstar Games. Es la cuarta entrega principal de la serie Grand Theft Auto, después de Grand Theft Auto III de 2001, y la sexta instalación en general. Ambientada en 1986 dentro de la ficticia Vice City, la historia para un solo jugador sigue el ascenso al poder del mafioso Tommy Vercetti después de ser liberado de la cárcel y quedar atrapado en una emboscada.

4 versiones de Grand Theft Auto: Vice City

Estás viendo: Grand Theft Auto: Vice City (reVCDOS)

Grand Theft Auto: Vice City (reVCDOS)github.com/Lolendor/reVCDOS
Web
Actual
Grand Theft Auto: Vice Citygithub.com/mrxenginner/reVC
Windows
›
REVC Android Evolvedgithub.com/codepdbh/revc-android-port-evolved
Android
›
Grand Theft Auto: Vice City (Web)github.com/origami-ltd/wasm-revc
Web
›

Información oficial del proyecto

README original del autor (en inglés)Abrir en GitHub ↗

GTA Vice City — HTML5 Port (DOS Zone)

Port made by the DOS.Zone team: dos.zone/reVCDOS

Official implementation: GitHub

Open In Colab

Fast Start: Run the server in one click using Google Colab. Click the badge above, run the cell, and use the "Launch Game" button. The tunnel password will be copied automatically — just paste it on the page that opens.

Web-based port of GTA: Vice City running in browser via WebAssembly.

Requirements

  • Colab or Docker or Python 3.8+ or PHP 8.0+
  • Dependencies from requirements.txt

Quick Start

  1. Clone the repository:

    git clone https://github.com/Lolendor/reVCDOS.git
    cd reVCDOS
    
  2. Configure Assets (Optional):

    By default, the project uses DOS Zone CDN — no local assets needed. For offline hosting you can use:

    • Packed archive (--packed or --unpacked) — single .bin file with all assets
    • Local folders (--vcsky_local, --vcbr_local) — unpacked asset directories
    • Cache mode (--vcsky_cache, --vcbr_cache) — download from CDN once, serve locally after
  3. Launch the Application: Choose one of the setup methods below:

    • Docker (Recommended for most users) — fast and isolated.
    • PHP — Simply upload the folder to your web server (FTP/Hosting).
    • Manual Installation — for development and customization.

Setup & Running

Option 1: Using Docker (Recommended)

The easiest way to get started is using Docker Compose:

PACKED=https://folder.morgen.qzz.io/revcdos.bin docker compose up -d --build

To configure server options via environment variables:

# Set port, enable auth and custom saves
IN_PORT=3000 AUTH_LOGIN=admin AUTH_PASSWORD=secret CUSTOM_SAVES=1 docker compose up -d --build
Environment VariableDescription
OUT_HOSTExternal host (default: 0.0.0.0)
OUT_PORTExternal port (default: 8000)
IN_PORTInternal container port (default: 8000)
AUTH_LOGINHTTP Basic Auth username
AUTH_PASSWORDHTTP Basic Auth password
CUSTOM_SAVESEnable local saves (set to 1)
VCSKY_LOCALServe vcsky from local directory (set to 1, or path like /data/vcsky)
VCBR_LOCALServe vcbr from local directory (set to 1, or path like /data/vcbr)
VCSKY_URLCustom vcsky proxy URL
VCBR_URLCustom vcbr proxy URL
VCSKY_CACHECache vcsky files locally while proxying (set to 1)
VCBR_CACHECache vcbr files locally while proxying (set to 1)
PACKEDServe from packed archive (filename or URL, e.g., revcdos.bin)
UNPACKEDUnpack archive to local folders (filename or URL, auto-sets vcsky/vcbr paths)
PACKPack a folder and serve from resulting archive (folder path or MD5 hash)

Option 2: Local Installation

  1. Install Python dependencies:
pip install -r requirements.txt
  1. Start the server:
python server.py --packed https://folder.morgen.qzz.io/revcdos.bin

Server starts at http://localhost:8000

Option 3: Shared Hosting on PHP (No installation)

If you want to run the game from a hosted environment with PHP 8.0 or above, just copy the contents of this repo to your desired hosting By default the index.php and .htaccess will get the job done.

Server Options

OptionTypeDefaultDescription
--portint8000Server port
--custom_savesflagdisabledEnable local save files (saves router)
--loginstringnoneHTTP Basic Auth username
--passwordstringnoneHTTP Basic Auth password
--vcsky_localstring/flagdisabledServe vcsky from local directory. Use flag for vcsky/ or specify path
--vcbr_localstring/flagdisabledServe vcbr from local directory. Use flag for vcbr/ or specify path
--vcsky_urlstringhttps://cdn.dos.zone/vcsky/Custom vcsky proxy URL
--vcbr_urlstringhttps://br.cdn.dos.zone/vcsky/Custom vcbr proxy URL
--vcsky_cacheflagdisabledCache vcsky files locally while proxying
--vcbr_cacheflagdisabledCache vcbr files locally while proxying
--packedstringdisabledServe from packed archive file. Accepts file path or URL
--unpackedstringdisabledUnpack archive to unpacked/{hash}/ and serve from there. Accepts file path or URL
--packstringdisabledPack a folder and serve from resulting {hash}.bin archive. Accepts folder path or MD5 hash

Examples:

# Start on custom port
python server.py --port 3000

# Enable local saves
python server.py --custom_saves

# Enable HTTP Basic Authentication
python server.py --login admin --password secret123

# Use local vcsky and vcbr files
python server.py --vcsky_local --vcbr_local

# Cache files locally while proxying (hybrid mode) (recommended)
python server.py --vcsky_cache --vcbr_cache

# Serve from packed archive (local file)
python server.py --packed revcdos.bin

# Serve from packed archive (download from URL if not present)
python server.py --packed https://example.com/revcdos.bin

# Unpack archive and serve from unpacked files
python server.py --unpacked revcdos.bin

# Stream-unpack from URL (downloads and unpacks simultaneously)
python server.py --unpacked https://example.com/revcdos.bin

# Pack a folder and serve from the resulting archive
python server.py --pack /path/to/assets  # Creates {folder_hash}.bin

# Pack from existing unpacked folder by MD5 hash
python server.py --pack a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6  # Uses unpacked/{hash}/

Note: HTTP Basic Auth is only enabled when both --login and --password are provided.

Note: By default, vcsky and vcbr are proxied from DOS Zone CDN. Use --vcsky_local and --vcbr_local flags to serve files from local directories instead. You can optionally specify a custom path.

Note: Use --vcsky_cache and --vcbr_cache to cache proxied files locally. Files are downloaded once and served from local storage on subsequent requests.

Note: --packed serves files directly from a compressed archive without unpacking (faster and more compressed). --unpacked extracts the archive once and serves from local files (if you want edit assets).

Note: When using URL with --unpacked, the archive is streamed and unpacked simultaneously during download using downloader_brotli.py.

Note: You can pass a raw MD5 hash (32 hex characters) to --unpacked to use an existing unpacked folder without needing the original archive. Example: if you have unpacked/a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6/, you can start the server with --unpacked a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6.

Note: --pack creates a packed archive from a folder containing subfolders (like vcsky/ and vcbr/). Each subfolder is packed sequentially: the first creates the archive, subsequent ones are appended. After packing, the server automatically uses the created archive via --packed mode.

URL Parameters

ParameterValuesDescription
langen, ruGame language
cheats1Enable cheat menu (F3)
request_original_game1Request original game files before play
fullscreen0Disable auto-fullscreen
max_fps1-240Limit frame rate (e.g., 60 for 60 FPS)
configurable1Show configuration UI before play button

Examples:

  • http://localhost:8000/?lang=ru — Russian version
  • http://localhost:8000/?lang=en&cheats=1 — English + cheats
  • http://localhost:8000/?configurable=1 — Show settings UI before play

Project Structure

├── server.py           # FastAPI proxy server
├── index.php           # PHP proxy server
├── .htaccess           # Apache config for PHP
├── requirements.txt    # Python dependencies
├── revcdos.bin         # Packed archive (optional)
├── additions/          # Server extensions
│   ├── auth.py         # HTTP Basic Auth middleware
│   ├── cache.py        # Proxy caching and brotli decompression
│   ├── packed.py       # Packed archive serving module
│   └── saves.py        # Local saves router
├── utils/              # Utility modules
│   ├── packer_brotli.py # Archive packer with brotli compression
│   └── downloader_brotli.py # Archive packer with brotli compression
├── unpacked/           # Auto-created by --unpacked flag
│   └── {md5_hash}/     # Unpacked files organized by source hash
│       ├── vcsky/      # Decompressed game assets
│       └── vcbr/       # Brotli-compressed binaries
├── dist/               # Game client files
│   ├── index.html      # Main page
│   ├── game.js         # Game loader
│   ├── index.js        # Module loader
│   ├── GamepadEmulator.js  # Touch controls
│   ├── idbfs.js        # IndexedDB filesystem
│   ├── jsdos-cloud-sdk.js  # Cloud saves (DOS Zone)
│   ├── jsdos-cloud-sdk-local.js  # Local saves (--custom_saves)
│   └── modules/        # WASM modules
│       ├── runtime.js      # WASM runtime initialization
│       ├── loader.js       # Asset/package loading
│       ├── fs.js           # Virtual filesystem
│       ├── audio.js        # Audio system
│       ├── graphics.js     # Rendering pipeline
│       ├── events.js       # Input events handling
│       ├── fetch.js        # Network requests (Real-time asset streaming)
│       ├── syscalls.js     # System calls
│       ├── main.js         # Main entry point
│       ├── cheats.js       # Cheat engine (F3)
│       ├── asm_consts/     # Language-specific ASM constants
│       │   ├── en.js
│       │   └── ru.js
│       └── packages/       # Language-specific data packages
│           ├── en.js
│           └── ru.js
├── vcbr/               # Brotli-compressed game data (optional)
│   ├── vc-sky-en-v6.data.br
│   ├── vc-sky-en-v6.wasm.br
│   ├── vc-sky-ru-v6.data.br
│   └── vc-sky-ru-v6.wasm.br
└── vcsky/              # Decompressed assets (optional)
    ├── fetched/        # English version files
    │   ├── data/
    │   ├── audio/
    │   ├── models/
    │   └── anim/
    └── fetched-ru/     # Russian version files
        ├── data/
        ├── audio/
        └── ...

Features

  • 🎮 Gamepad emulation for touch devices
  • ☁️ Cloud saves via js-dos key
  • 💾 Local saves (with --custom_saves flag)
  • 🌍 English/Russian language support
  • 🔧 Built-in cheat engine (memory scanner, cheats)
  • 📱 Mobile touch controls

Local Saves

When local saves are enabled (--custom_saves flag), enter any 5-character identifier in the "js-dos key" input field on the start page. This identifier will be used to store your saves in the saves/ directory on the server.

Example: Enter mykey or 12345 — saves will be stored as mykey_vcsky.saves or 12345_vcsky.saves.

Controls (Touch)

Touch controls appear automatically on mobile devices. Virtual joysticks for movement and camera, context-sensitive action buttons.

Cheats

Enable with ?cheats=1, press F3 to open menu:

  • Memory scanner (find/edit values)
  • All classic GTA VC cheats
  • AirBreak (noclip mode)

License

MIT. Do what you want (but credit the port authors and me). Not affiliated with Rockstar Games.


Authors: DOS Zone (@specialist003, @caiiiycuk, @SerGen)

Deobfuscated by: @Lolendor

Russian translation: GamesVoice

Added by the community:

  • PHP Support by Rohamgames

Support me

If you find this project useful:

  • TON / USDT (TON) UQAyBchGEKi9NnNQ3AKMQMuO-SGEhMIAKFAbkwwrsiOPj9Gy
  • ETH / USDT (ERC-20) 0x69Ec02715cF65538Bb03725F03Bd4c85D33F8AC0
  • TRX / USDT (TRC-20) THgNWT9MGW52tF8qFHbAWN25UR6WTeLDMY
Leer guía oficial
CALIFICACIÓN
—
Cargando votos…
Publicidad

FICHA DEL PROYECTO

Tipo de proyecto
JUEGO WEB
Género
Shooter / Disparos
Estado
alpha
Plataforma de origen
—
Tecnología
WebAssembly (WASM) / WebGL / Canvas Nativo
Versión
—
Actualización
—

Plataformas de destino 1

Web
Jugar en el Navegador
Publicidad