TWINE-pc

twine-pc is a native PC port of The World Is Not Enough for PlayStation, featuring smooth motion, high-resolution graphics, and modern controls.

README

007: The World Is Not Enough, native PC port

Platforms: Windows and Linux Renderer: Vulkan Decompilation: 14 of 14 executables byte-identical License: MPL 2.0

Download for Windows  ·  Download for Linux  ·  Setup in 3 steps  ·  Developer guide

Gameplay: the grenade launcher, rocket launcher, shotgun, sniper rifle, a quick-punch combo, the IAC Defender, KA-57, satchel charges, KS5 and a flash bang

The 2000 PlayStation shooter, rebuilt to run natively on PC. This isn't an emulator or your average decomp! The game's code was decompiled, rebuilt for the PC in the C language, and given a new "engine room": smooth motion at your monitor's refresh rate, sharp high-resolution graphics, mouse and keyboard or a modern gamepad layout, many new gameplay additions, and an entirely new Endless (high-score) Mode.

Table of contents

PlayStation vs. PC

(Back to top)

A wipe between the PlayStation's picture and the PC port's in Courier's bank hall
PS1 vs. port comparison.

Close-up: the PlayStation's 512×240 dithered picture next to the port's 4× true-colour picture
The original's 512 × 240 picture with 15-bit colour, and the port at four times the resolution in true colour.

Features

(Back to top)

The same camera pan at the original 20 frames a second and with smooth motion at 60
The game originally runs at 20 FPS. Smooth motion draws extra frames in between, so the picture moves at your display's refresh rate while keeping the original artistic vision intact.

Smooth motion"Shaken, not Stirred..." The game engine technically still runs at its original 20 frames a second; the port draws the frames between ticks, at 60, 144 or 240 Hz: whatever your display runs at.
High-resolution graphicsYour GPU redraws the game at up to 8× the PlayStation's resolution, in true colour. Prefer the original look, with its 15-bit colour and dithering? See PORT SETTINGS.
Mouse and keyboardMouse look, with additional keyboard layout support, number keys for weapon groups, quick punch, quick grenade, sprint.
Modern gamepad controlsGripping, modern controls for dynamic movement and gadget combos! Twin-stick aiming, triggers to aim and fire, and an all-new sprint. Supports any controller SDL recognises: Xbox, PlayStation, Switch and generic pads.
Quick punch and quick grenadeQuick controls for frag grenades and melee, removing the original's need to cycle through weapons or switch to unarmed.
Save statesF5 to save, F6 to load.
The entire gameEvery mission, the menus, briefings, movies, music and memory card saves, from the PlayStation boot animation on. Nothing is cut, and extra effort went into restoring content cut from the retail and development versions.

A quick-punch combo knocking guards off their feet
Quick punch: attack with "unarmed" in left hand without holstering weapon, or while reloading.

Endless Mode

(Back to top)

A grid of the 61 rooms of Endless Mode

BOND IS BACK! with a new way to play. Pick ENDLESS on mission select and fight wave after wave through rooms taken from nine of the game's missions, from Courier's bank to Turncoat's subway. Each room picks its guards from that mission, sends them in through the doors, and opens an exit after you've fought for the escape. Your weapons, health and armour come with you, along with weapons lent from other missions. Your score goes on the game's own high-score table, saved to the memory card.

  • 61 rooms, hand-picked by playing every section of every mission. Some flow into each other: King's Ransom's streets and the Turncoat subway's cars.
  • AI/Room Director paces the waves, sends guards in by doorways you can't see, and lets the room's own guards hunt you when it goes quiet.
  • Bond's arsenal, unleashed: your inventory can hold any of the game's guns. The PS1 original didn't have the memory to do this in-engine.
  • Mission objectives, suppressed: no timers, alarms or mission-failure screens, just the fight!
  • 8 MB mode (optional) raises the people limit from 6 to 12 at once.

Scoring and medals

The end-of-run stats screen fading through a black, bronze, silver and gold medal
The run's stats on the Mission Complete screen, from a black medal up to gold.

Endless Mode scores every run as you play:

Points
A kill100, doubled if it comes the moment you enter a room and falling back to 100 over the first minute, then multiplied by the wave: ×1.1 on wave 1, ×2 on wave 10, ×3 on wave 20
A room cleared500 + 250 per wave, plus up to 900 more for clearing it in under 90 seconds
At the end of the run250 per headshot, plus 50 per point of accuracy (a 60% run: 3,000)

The run ends when Bond falls, and its stats rate four lines out of four stars each:

  • Efficiency: kills per hit landed. One hit per kill is 100%.
  • Accuracy: hits per shot fired.
  • Waves: 5% per wave reached, so wave 20 is 100%.
  • Time: how long you survived, with 20 minutes for 100%.

Each line earns a star at 21%, 41%, 61% and 81%. The stars add up to the medal: black (0–5), bronze (6–10), silver (11–15) or gold (16–20), with Bond's gun on the screen in the medal's colour. On the harder difficulty every line earns one extra star. A ranked run's score goes on the high-score table on your memory card; cheats, save states, the debug menu and infinite grenades make a run unranked.

The campaign keeps the original game's own scoring and medals: 100 per kill, 1,000 per headshot, 1,000 per point of efficiency, up to 8,000 for the health you finish with, 25 for every second under the mission's par time, plus the mission's own bonuses. Its medals rate efficiency, accuracy, the health you finish with, and your time against the mission's par.

Supplied by MI6's Finest: Bond's Arsenal of Weaponry and Gadgets

(Back to top)

Wolfram P2K pistolIngalls Type 20 submachine gunKoffler KS5 submachine gun
Meyer TMPFrinesi AutoKazakovich KA-57 rifle
Frinesi shotgunAR36 sniper rifle scopeIAC Defender
Rocket launcherGrenade launcherSatchel charges
Flash bangGas grenadeCell phone stunner

Fifteen of the game's weapons, each in a room of Endless Mode.

Each weapon works the same in every Endless room as in its home mission: fire rate, damage, scope and sounds are all identical.

Grenades

(Back to top)

A quick grenade thrown without changing weaponsA gas grenade putting guards to sleep

Quick grenade: (G, or R1 on a gamepad), thrown without holstering your weapon, with a frag counter on the HUD. An optional infinite grenades setting is available in PORT SETTINGS.

Blackjack mode

(Back to top)

A hand of blackjack at the casino table

"Well played, Mr. Bond..." The fan-favourite, PlayStation-exclusive casino from Russian Roulette, straight from the main menu: pick BLACKJACK and you're seated at the table.

Port settings

(Back to top)

Scrolling the PORT SETTINGS page in the game's Options menu

The port's options live inside the game's Options menu: PORT SETTINGS has mouse speed, invert mouse, pad layout (modern or original), smooth motion, HD movies, vibration, enemy AI (the port's improved or the original), where the in-game message box sits (bottom or top), CONTROLS for remapping (below) and the debug menu. Options also gets AUTOLOAD, the memory card slot loaded at start. SKIP INTRO there goes straight to the title screen at start-up. Every setting is also a line in twine.ini, alongside the ones with no menu entry (display, renderer, scale, filter and more: see docs/DEVELOPMENT.md).

Controls

(Back to top)

Press F1 in the game for the full list. Everything can be rebound (below).

ActionKeyboard and mouseGamepad
Move / lookWASD / mouseleft stick / right stick
Fire / aimleft button / right buttonR2 (RT) / L2 (LT)
UseE or FTriangle (Y)
ReloadRSquare (X)
Change weapon1-9 by group, wheel or Z/X; Q for the previously used weapond-pad left/right; L1 (LB) for the previously used weapon
Punch / grenadeSpace or mouse 4 / GR3 / R1 (RB)
Sprint / crouchShift / C or CtrlL3 (toggle) / Circle (B)
MessagesTabBack or touchpad
PauseEsc or EnterStart
Save / load stateF5 / F6
Full screenF11 or Alt+Enter

Remapping

The CONTROLS page in PORT SETTINGS: scrolling the actions and their keys

Every action can be rebound, on the keyboard, mouse and gamepad:

  • In the game: Options → PORT SETTINGS → CONTROLS. Pick an action and press the new key or button. Right adds an additional key or button, Left resets the row, and the last option resets everything to default. Changes are saved immediately.
  • In twine.ini: a [controls] block lists every action with its current keys, for example fire = Mouse Left or use = E, F. Remove the # in front of a line to change it. Gamepad buttons are labelled by their position (South, East, Right Trigger...).

F1 in-game shows your current bindings. Prefer the PlayStation's own button layouts? Set PAD LAYOUT to ORIGINAL in PORT SETTINGS, and the game's Options → CONTROLLER page chooses the gamepad's buttons, as on the original console version.


Debug menu

(Back to top)

The developers' debug menu open over Courier's bank, then its object count page

The original developers' debug menu, left in the game's code, with pages restored from a development version. Open it with F9; DEBUG MENU must be enabled in PORT SETTINGS first.

OptionFunction
DISPLAYAn information panel: (player info, first-person weapon info, object counts, frame rate (shown frames added) and more), plus three pages from a 2000 beta that the retail game dropped, restored: COLLBOX INFO (Page Up/Down steps through the collision boxes), TERRAIN INFO and BG COLOR INFO.
EDITEdit modes, such as a free camera.
TERRAIN · SUBDIVISION · CONTOURSwitches for the level's geometry.
SNAPSHOT · WAYPOINTSDisabled in the retail game; shown as they were left.
INVINCIBILITYBond takes no damage.
IGNORE WALLSBond walks through walls.
EDIT OBJECTIVESA switch for controlling the mission's objectives.
DISPLAY HUDThe HUD on or off: clean shots for screenshots.
DISPLAY OBJECTSLevel objects on/off.

Opening it during an Endless Mode run marks the run unranked, excluding it from the high-score table.

High Definition Movie Support

(Back to top)

The mission movies on the disc are short, low-resolution, chopped cuts of the film: a limitation of the PS1's CD capacity. If you own the film and would enjoy higher-quality movie scenes, the port can play HD video in their place, in high definition with full sound. (This feature is experimental: depending on your file, the clips may be cut incorrectly.)

  1. Get the film (I can't provide support for obtaining it). The clip timings were matched against a 2160p upscaled release (2:08:00); other versions may not line up.
  2. Cut the clips with ffmpeg installed: python3 port/tools/hdmovies.py FILM hdmovies
  3. Put the hdmovies folder next to the game. The movies play from then on; HD MOVIES in PORT SETTINGS turns them off (until the clips are there, it shows NONE).

No film footage is part of this project: the clips are made only from your own copy of the film.

Requirements

(Back to top)

  • Your own copy of the game: a disc image of 007: The World Is Not Enough for the PlayStation. It must be the American release (SLUS-01272), as .bin + .cue. This project contains no game data.
  • System requirements: Windows 10 or 11, or Linux (Ubuntu 22.04 or newer, Debian 12, Fedora, Arch, SteamOS...). For the high-resolution renderer you need a graphics card with Vulkan support; without one, the game draws in software.
  • Optional: a PlayStation BIOS file, for the console's start-up animation (supported for the love of the original).

Setup in 3 steps

(Back to top)

The first-run screen: disc image found and checked
  1. Download the build for your system from Releases and unpack it anywhere.
  2. Start it: twine.exe on Windows, ./twine on Linux. (Windows may say "Windows protected your PC": click More info, then Run anyway.)
  3. Choose your disc image on the first-run screen, or drop the file onto the window. The port checks it's the right release, and you're in.

Settings, saves and memory cards stay in the game's folder. To keep them in your user folder instead, delete the file named portable. A disc image kept inside the game's folder is saved relative to it, so you can move the whole folder.


FAQ

(Back to top)

Is this an emulator?
No. The game's code was decompiled to C and is compiled as a native program, and the PlayStation's hardware is rebuilt in software for the PC. That's what makes smooth motion, high resolutions and new modes possible.
Why do I need my own disc image?
The game belongs to its rights holders. This project shares only its own work; the game itself has to come from you.
Do my saves carry over?
Yes. Memory card images in the usual emulator format (raw 128 KB .mcd) work, although I'd advise making a backup first: moving saves from the port back to an emulator is untested.
Will it run on my graphics card?
Any card with a current Vulkan driver should run the high-resolution renderer: NVIDIA, AMD or Intel. If it can't start, the game falls back to drawing in software and tells you so. If you have issues with specific hardwa