VCMP Launcher — README

A small, single-file launcher for joining Vice City Multiplayer servers. Useful to ship a ready-to-run executable that connects players directly to your server and optionally carries server store files and a splash image.

How to use

  1. By default the provided file (launcher-0.4.7.1.exe) connects to 127.0.0.1:8192. You will usually want to change that.
  2. Open LauncherConfig GUI and browse to launcher-0.4.7.1.exe or launcher-04rel006.exe.
  3. Edit IP, Port and other details of your server in the GUI.
  4. Click Save.
  5. Optionally rename launcher-0.4.7.1.exe to your server name (for example Freeroam Server.exe).
  6. Distribute the resulting executable to your friends — they just need a GTA: Vice City installation to run it.

Features

FAQ

Which player name will be used?

  1. If a name is embedded in the launcher, that will be used unless a same-name .conf file sets a different name (see below).
  2. If no embedded name exists but a VCMP browser (official, Spiller or Megamind) is installed, the launcher will try to read the name from there.
  3. If a configuration file (see Overriding defaults) is present and contains a name= entry, that name always takes precedence (over embedded and browser names).
  4. If all of the above fail, the launcher will ask the user for a player name on first run and store it in the registry for future runs.

Overriding defaults (.conf)

Create a file named exactly the same as the launcher but with .conf appended (for example Freeroam Server.conf if your launcher is Freeroam Server.exe), and place it next to the executable. Example contents:

addr=204.34.xx.40:8192
name=sheldrake
skipstorefiles=0

Options

Note: If the server address changes after the EXE was built, you can still override it via a .conf file — no rebuild required.

Offset details (embedded data layout)

MAGIC = "VCMP_MAGIC" (11 bytes)
MAGIC + 11  = ip address (64 characters)
MAGIC + 75  = domain name (254 characters)
MAGIC + 329 = port (int)
MAGIC + 333 = 1 (byte) embedded player name present
MAGIC + 334 = player name (25 bytes)
MAGIC + 359 = 1 (byte) fetch name from official VCMP browser
MAGIC + 360 = 1 (byte) fetch name from Spiller's browser
MAGIC + 361 = 1 (byte) fetch name from Megamind's browser
MAGIC + 362 = 1 (byte) splash PNG embedded
MAGIC + 363 = Store-zip offset in exe (4 bytes)
MAGIC + 367 = size of store-zip (uint32_t)
MAGIC + 371 = PNG image start offset (4 bytes)
MAGIC + 375 = size of png image (4 bytes)
-- total block size is 379 --
    

Store files / embedding

You can embed store files inside the launcher executable by zipping them and using the GUI tool to attach the archive. By default these are extracted into the user's AppData VCMP folder at runtime.

GUI Editor (LauncherConfig)

Use LauncherConfig.exe (GUI tool) to change embedded data without rebuilding:

  1. Open the GUI and load the launcher EXE.
  2. Edit IP, port, name, splash, or attached store zip.
  3. Save — the EXE is modified in place.

International versions

There are alternative GUI screens for other languages. These were exported using Resource Hacker and can help Russian and Chinese players. Unfortunately the author was unable to compile these as unicode support needed to rewrite entire code.

The Website

You can also create launchers from the browser: vcmp-launcher.art.

The Splash

Attach a PNG image to use as a custom splash screen during loading.

GTA:VC path detection

The launcher chooses gta-vc.exe using this priority:

  1. If launcher is inside a GTA:VC directory, use that copy directly.
  2. If not, check registry for saved path (set when user selects it once). Launcher still prioritizes local directory if present.
  3. If no registry path, try fetching from VCMP browser settings in AppData.
  4. If a .conf file exists with a valid vcdir=, use that (overrides all above).
  5. If all fail, ask the user to locate gta-vc.exe and save it to registry.

Usage examples

# Example conf file (Freeroam Server.conf)
addr=myserver.example:8192
name=Sheldrake
vcdir=C:\Games\GTA VC
skipstorefiles=0
splash=C:\images\my-splash.png
nosplash=0
    

Credits

ysc3839 — VCMP dll injection code for normal and steam versions.

License

BSD Zero Clause

Security & privacy

This program by itself neither downloads nor uploads anything to the internet. It only contains embedded configuration, optional store files and an optional splash image. When run it will connect to the configured VCMP server and (unless disabled) copy store files into the user's AppData VCMP directories.