.onedev-buildspec.yml Loading last commit info...
.gitignore
CMakeLists.txt
README.md
build.sh
main.cpp
mingw-w64-i686.cmake
version.def
winmm.def
ws2_32.def
README.md

Need for Speed: ProStreet Server ASI Loader (ProStreetServerASILoader)

An ASI loader specifically engineered for the Need for Speed: ProStreet dedicated server executable (bombd.exe). It provides a lightweight proxy DLL interface (winmm.dll) that intercepts startup initialization calls, forwards system multimedia and Winsock functions, and dynamically loads custom .asi plugins from the root directory or scripts/ folder into bombd.exe's process space.

Repository URL: https://code.weexnes.dev/ProStreetServerASILoader/


Features

  • Automated Plugin Discovery: Automatically creates and scans .\ and .\scripts\ for .asi files on startup.
  • Full Windows & Linux (Wine) Compatibility: Works natively on Windows and under Linux Wine runners (via winmm.dll proxying and PE Import table mapping in OpenProStreetV).
  • Winsock & Multimedia Forwarding: Wraps and forwards all ws2_32.dll and winmm.dll calls via dynamic GetProcAddress resolution.
  • Console Debug Logging: Provides clear console feedback detailing hooked DLL status and loaded plugins.
  • OneDev CI/CD Ready: Includes complete .onedev-buildspec.yml configuration for automated cross-compilation, tag generation, and artifact releases.

Installation & Deployment

  1. Download the latest winmm.dll from releases (or build from source).
  2. Place winmm.dll into the directory containing bombd.exe (e.g. ~/.OpenProStreet/).
  3. Place any .asi plugins into the root server directory or inside the scripts/ folder (.\scripts\).
  4. Launch bombd.exe (or run ./OpenProStreetV start).

Build Instructions

Prerequisites

  • Linux: cmake, make, mingw-w64-gcc, python3
    # Arch Linux
    sudo pacman -S cmake make mingw-w64-gcc python
    

Cross-Compiling for Windows x86

Run the provided cross-build script:

chmod +x build.sh
./build.sh

The compiled output will be generated in build/:

  • build/winmm.dll: The proxy loader binary.
  • build/ProStreetServerASILoader_v1.0.0.zip: The packaged release zip.

Plugin Development Template

For building custom server .asi plugins, check out the plugin template repository: https://code.weexnes.dev/ProStreetServerASILoader/PluginTemplate


Project Structure

ProStreetServerASILoader/
├── CMakeLists.txt           # CMake build configuration
├── build.sh                 # Linux-to-Windows cross-compilation script
├── main.cpp                 # Proxy loader implementation & plugin scanner
├── mingw-w64-i686.cmake     # MinGW 32-bit toolchain file
├── winmm.def                # Module definition file for export forwarding
├── README.md                # Project documentation
└── .onedev-buildspec.yml    # OneDev CI/CD pipeline spec

License

Distributed under the MIT License.

Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover