SpideyPS1recomp

SpideyPS1recomp is a native PC port of Spider-Man and Spider-Man 2 Enter Electro with modern rendering and widescreen support.

README

SpideyPS1Recomp

Native recompilations of Spider-Man and Spider-Man 2: Enter Electro for Windows, built with RecompOne. The PlayStation code is translated to C# ahead of time and runs against a shared runtime that implements the original console services, with modern rendering and higher-detail character assets.

This is an active development project, not a claim of complete game compatibility. Both games reach gameplay; targeted menu, level, costume and renderer tests do not replace full playthroughs or long-duration stability testing.

Download and install version 1.0

  1. Download the package for your game below and extract it. Open the extracted game folder.
  2. Launch SpiderMan.exe or SpiderMan2.exe, keeping the included mods folder beside it.
  3. Select your USA PlayStation BIN/CUE or ISO. Setup extracts the assets and starts the game.
PackageDownloadInstallation and included contents
Spider-Man 1.0 — 34 costume modsWindows x64 ZIPRelease notes
Spider-Man 2 1.0 — 35 costume modsWindows x64 ZIPRelease notes
Blender Character Tools 1.0Installable add-on ZIPInstallation and requirements

Each package includes Readme.txt. Install the Blender ZIP through Blender's add-on preferences; its repository and conversion-tool requirements are listed in its release notes.

Use the downloads above for ready-to-run games. GitHub's Source code (zip) and the ZIP links on the Tags tab contain developer source files.

Screenshots

Native renderer captures from both games. Click any image for the full-size version. The 4:3 and 16:9 shots come from separate runs, so camera position, animation, and HUD state can differ. The overlays place the complete 4:3 capture over the wider shot at 40% opacity; the cyan outline marks its boundary.

Spider-Man
4:3 gameplay16:9 gameplay
Spider-Man rooftop gameplay in 4:3Spider-Man rooftop gameplay in 16:9

Spider-Man: centered 4:3 capture over 16:9, with cyan boundary

Miles Morales - gameplayMiles Morales - main menu
Miles Morales custom model in Spider-Man gameplayMiles Morales custom model in the Spider-Man main menu
Last Stand - gameplayLast Stand - main menu
Last Stand custom model in Spider-Man gameplayLast Stand custom model in the Spider-Man main menu
Spider-Punk - gameplaySpider-Punk - main menu
Spider-Punk custom model in Spider-Man gameplaySpider-Punk custom model in the Spider-Man main menu
Spider-Noir - gameplaySpider-Noir - main menu
Spider-Noir custom model in Spider-Man gameplaySpider-Noir custom model in the Spider-Man main menu
Spider-Man 2: Enter Electro
4:3 gameplay16:9 gameplay
Spider-Man 2: Enter Electro rooftop gameplay in 4:3Spider-Man 2: Enter Electro rooftop gameplay in 16:9

Spider-Man 2: Enter Electro: centered 4:3 capture over 16:9, with cyan boundary

SP//DR - gameplaySP//DR - main menu
SP//DR custom model in Spider-Man 2: Enter Electro gameplaySP//DR custom model in the Spider-Man 2: Enter Electro main menu
MCU Infinity War - gameplayMCU Infinity War - main menu
MCU Infinity War custom model in Spider-Man 2: Enter Electro gameplayMCU Infinity War custom model in the Spider-Man 2: Enter Electro main menu
Hornet - gameplayHornet - main menu
Hornet custom model in Spider-Man 2: Enter Electro gameplayHornet custom model in the Spider-Man 2: Enter Electro main menu
Ghost Spider - gameplayGhost Spider - main menu
Ghost Spider custom model in Spider-Man 2: Enter Electro gameplayGhost Spider custom model in the Spider-Man 2: Enter Electro main menu

Featured mod models and textures by Gameloft, converted from Spider-Man Unlimited.

Current features

  • Modern rendering in both games: perspective-correct textured geometry, no PS1 dithering or 5-bit output quantization, increased internal resolution, and host-resolution FXAA enabled by default. Both 4:3 and 16:9 use the modern renderer; legacy rendering is reserved for developer reference.
  • Widescreen gameplay: wider projection and HUD handling in both games. Choose 4:3 or 16:9 in OPTIONS > VIDEO SETUP. Menus retain their original 4:3 layout.
  • Dreamcast character upgrades: SM1 uses converted DC actors where applicable; SM2's upgrade work focuses on Spider-Man and costumes, not matching every NPC. Character textures use external host-resolution packs. Environments remain the original PS1 environments.
  • Twenty built-in SM1 costumes: the ten original suits plus ten imported SM2 entries. Imported suits use SM1 animations and copied SM1 ability profiles, with paired existing unlock events. The winged default SM2 suit is available from the start. Original SM1 default Spider-Man remains visually wingless.
  • Costume mods in both games: external PNGs, custom names and author credits, independent donor powers, built-in bodies, and validated custom native models. Mod suits are always unlocked and do not replace built-ins. Each game supports 60 total costumes.
  • First-run disc setup: published builds are self-contained executables with an embedded installer. Extraction runs inside the game window with progress and elapsed time, then subsequent launches use loose files.

Make or customize a costume

The selector supports 60 total costumes: 20 built-ins plus 40 mod slots in SM1, and 19 built-ins plus 41 mod slots in SM2. Version 1.0 includes 34 SM1 mods and 35 SM2 mods, leaving six free slots in each game. Magenta Man is not in the release roster.

  1. Copy a complete installed suit folder under mods/suits/ beside the executable.
  2. Give the copy a unique folder name and id in suit.json; edit its name and comments while preserving author credits. Names support 19 printable ASCII characters.
  3. Edit the referenced PNG textures, keeping their UV layout and texture keys. Keep any referenced modelFile with its matching textures.
  4. Choose a supported abilities.profile for the destination game. Appearance and donor powers are independent; profiles do not combine powers.
  5. Restart and select the costume under SPECIAL > COSTUME VIEWER in SM1 or SPECIAL > COSTUMES in SM2.

Every packaged suit includes instructions. The shared mod instructions cover all donor profiles, model choices, moving suits between games, and troubleshooting. Move unwanted suits to mods/inactive-suits to free slots while preserving their files.

The model field selects a built-in body: spiderman, scarlet-spider, symbiote, quick-change, peter-parker, or sm2-spiderman. spiderman uses the wingless SM1 body in either game. An optional modelFile references a validated native .psx actor in the suit folder; raw FBX, OBJ, or GLB models cannot be installed directly. PNGs support up to 4096 pixels per side within a 64 MiB decoded texture budget per suit.

For custom geometry, use Blender Character Tools to import a native template, transfer and edit weights, and export a native character package. The add-on requires the repository conversion backend, external Python with Pillow, and NeversoftMultitool. Always check the result in native gameplay; automatic weight transfer still needs artist review.

In-game video setup (SM1 and SM2)

Open OPTIONS → VIDEO SETUP. This replaces the old Screen Adjust entry and uses the game's original menu graphics, text, highlights, sounds, and controls. Use Up/Down to select a row and Left/Right to change its value (Cross also cycles the value). Select APPLY with Cross to save; Triangle discards any pending changes and returns to OPTIONS.

AspectOutput resolutions
4:3640×480, 800×600, 1024×768, 1280×960, 1600×1200, 1920×1440
16:9960×540, 1280×720, 1600×900, 1920×1080, 2560×1440, 3840×2160

FULLSCREEN: ON/OFF switches between fullscreen and windowed presentation when you select Apply. Fullscreen uses the monitor's output area; turning it off restores the selected windowed resolution. Apply also sets the gameplay aspect immediately. The existing internal rendering scale remains a separate Display setting. Menus retain their original 4:3 proportions. Applied choices are remembered on restart in each game's settings.json and interface.ini.

Run a published build

Extract the download, keeping mods/ beside the EXE. Launch the game and select your USA BIN/CUE or ISO when prompted. For a CUE sheet, keep its referenced BIN files alongside it.

ExecutableRequired discID
SpiderMan.exeSpider-Man (USA)SLUS-00875
SpiderMan2.exeSpider-Man 2: Enter Electro (USA)SLUS-01378

The installer checks the USA boot ID in SYSTEM.CNF and that its boot file exists. It does not check disc hashes, exact executable sizes, or revision-specific disc lengths. Extraction runs in the game window, then the game starts automatically. After installation, the original image is no longer needed for play.

Both EXEs contain .NET, the native game libraries, and the Visual C++ runtime. No separate runtime installer or loose DLLs are required. Windows and your graphics driver supply the remaining system libraries.

Game files live under game/ beside the executable; bundled character replacements and texture packs live under assets/builtin/. User reskins belong in mods/suits/, not inside the built-in asset folder. Each game has its own settings and data. The bundled replacements do not require a Dreamcast disc, and SM1's imported costumes do not require an SM2 disc at installation time.

See first-run installation for validation, installation layout and recovery details.

Build from source

For the shared runtime/recompiler and tests that require no retail disc, use python tools/run_regressions.py after installing .NET 10, Python 3, and Pillow. Verification coverage explains what the Windows/Linux CI gate checks. The project checkpoint records current fixes, actual results, and the next gameplay blocker.

Development builds require .NET 10, Python 3 with NumPy and Pillow, and the appropriate retail disc data. Start in the directory of the game being built:

cd spiderman        # or spiderman2
python tools/disc.py extract extracted
python tools/cdwad.py extract extracted/wad
python tools/overlays.py build config/overlays
python tools/genmaps.py
python tools/build.py

BIN/CUE is import media, not the runtime format. The extractor produces loose files and recompone-disc.json; later builds and launches use that directory. Raw source discs and extracted retail files must not be added to Git.

From the repository root, publish a self-contained executable with:

dotnet publish spiderman/port/SpiderMan.csproj -c Release
dotnet publish spiderman2/port/SpiderMan2.csproj -c Release

Publishing defaults to the .NET SDK host runtime identifier (RID), such as linux-x64 on 64-bit Linux or win-x64 on 64-bit Windows. Select a different target explicitly with -r linux-x64 or -r win-x64; the explicit RID takes precedence over the host. Each target has a separate port/dist/<RID>/ directory:

TargetSM1 executableSM2 executable
Linux x64spiderman/port/dist/linux-x64/SpiderManspiderman2/port/dist/linux-x64/SpiderMan2
Windows x64spiderman/port/dist/win-x64/SpiderMan.exespiderman2/port/dist/win-x64/SpiderMan2.exe

An explicit --output directory still overrides that layout. The bundled Windows VC++ DLLs are included only for the Windows x64 target. Linux builds still require the operating system's graphics, windowing, and audio libraries; native gameplay verification is tracked in the checkpoint.

Ordinary builds instead use each project's port/bin/Release/net10.0/ directory; launch its SpiderMan or SpiderMan2 apphost on Linux, or the corresponding .exe on Windows. Published builds embed each game's port/bundled/runtime-assets.zip; asset maintainers rebuild those payloads using python dreamcast/tools/build_bundled_runtime_assets.py after approved changes.

Development switches

Both games use the SPIDEY_* prefix, but level and costume names differ. Set environment variables before starting the executable.

VariablePurpose
SPIDEY_WIDE=1 / 0Enable / disable widescreen gameplay; neither selects legacy rendering
RECOMP_RENDER_SCALE=4Internal rendering scale, from 1 to 8
RECOMP_FXAA=0Disable the normally enabled FXAA pass
SPIDEY_LEVEL=l1a1Direct SM1 level boot; SM2 uses names such as e1m0
SPIDEY_COSTUME=symbioteSelect an SM1 built-in costume for testing
SPIDEY_CHEATS=allEnable the game's cheat set
SPIDEY_SHOTS=1050,1500Save native captures at specified frames
SPIDEY_SNAP=crashDump game RAM on a crash

Project layout and technical notes

spiderman/ and spiderman2/ have separate game code, configuration, extracted data and output. tools/RecompOne/ contains the shared recompiler/runtime; dreamcast/ contains character-conversion and audit tooling, not a third game port.

Older per-game investigation notes record the results of particular builds and test routes. They should not be read as guarantees that every map, costume or long-session scenario currently passes.

Rights

Spider-Man, Spider-Man 2: Enter Electro, their characters and original assets belong to their respective rights holders. This is an unofficial project. Players supply the supported retail PS1 disc for the game they run. Converted character assets and the sample reskin are distinct from the port's source code; their inclusion does not transfer ownership of the underlying art.