Guide to Setting up Creative Sound Blaster X-Fi PCI-e Cards with Project Reality

Project Reality could be one of the few, maybe the only Battlefield mods, to cater to X-Fi owners. Getting hold of a physical card is well worth it as they restore full surround sound and EAX. I have always found the full X-Fi/EAX sound in Battlefield 2 to be far superior to its default sound. Things really come alive in Project Reality with explosions echoing across the battlefield in ways that bring a real sense of space to the level.

However the drivers can be difficult to setup. So here is this guide !

Whatever you don’t use the drivers provided by Creative as they cause constant blue screen’s (BSOD’s).

Use the Daniel K drivers.

♦ Don’t use Windows 10 as memory protection is not available for that OS with the Daniel K drivers. This is “protected memory”. This is what causes the blue screens. The driver writes to a protected memory location and BOOM ! Blue screen.

♦ Do use Windows 8.1. An OEM key can be obtained legally for as little as £11.99.

It’s a fairly trivial task to shrink part of your hard drive and install Windows 8.1 into it for a dual boot setup with Windows 10. There are guides out there that show you how to do that.

First install the card (obviously). In my case a Creative Sound Blaster SB0880 X-Fi Titanium 7.1 PCI-e.

Then install Daaniel K’s drivers for your card model. In my case I had to do something extra to enable “What You Hear” as I’m passing the audio output from the card to my Creative SXFI USB sound card for full headphone surround sound (highly recommended by the way, and it lives up to the hype, its not “just another” headphones surround sound solution).

So I had to copy these “.dat” files from “XFTI_WUH” to  “\Audio\Drivers\SBXF\wdm\win2k_xp\data“. Over write the files. See the “ReadMe” in the “XFTI_WUH” directory.

Then once the drivers are installed What You Hear can be setup like this …

By the way I was assuming that What You Hear only does stereo sound as that’s what’s listed in its format settings. However my testing showed that in fact it is passing full surround sound.

Once you have the drivers installed you can setup the card …

 

Now the X-Fi will appear in the launcher menu …

 

Project Reality does not have this menu in it’s in game interface but other mods that install into a normal installation of BF2 will show …

So there you go. The trick is to use the Daniel K drivers and Windows 8.1. Enjoy your new amazing sounding Project Reality !

Project Reality now includes LAN server files (since May 2021) & Server Setup Guide

Table of Contents

Introduction

How to use the new LAN server files

Notes about Coop play

Coop Game Play Python Options

Introduction

I’ve been trying to setup a Project Reality (PR) local LAN dedicated server for Coop play for years ! Until now PR has always required a server license. Private Coop servers running on your local LAN or even the same machine with the PR:BF2 client were denied this license which was essential since it contained files necessary for the PR:BF2 server to work properly. However since patch 1.6.6.0 the team have relaxed the restrictions …

Added Windows server files to client install for playing in LAN.

This is all very good news for PR Coop players and especially solo (PvE) players as Coop PR had already been negatively affected by changes made to the flight model. This meant that bots could not be trained in that new flight model so some “old flight model” jets (don’t know if it affects helicopters) had to be reserved specifically for bots, and then the bots could not use the human only jets. This further reduced the amount of bot action on that battlefield. However with the new patch it’s now possible to go past the 48 bot limit restriction that a Coop game started from within the client (non-dedicated server) was limited to. I am currently playing games with 96 bots. This jazzes up a PR Coop game to say the least. Now because there are many more bots they tend to spawn in places where they are more likely to find vehicles or their special bot only jets !

How to use the new LAN server files

First make sure you are using an online profile as joining the server will crash the client if you connect to the server with an offline profile …

The server itself can be started with the included batch file “start_prbf2_w32ded.bat” but all that does is point the server to the correct mod directory. You will also need to edit “maplist.con” (in “C:\Program Files (x86)\Project Reality\Project Reality BF2\mods\pr\settings\“) to only load Coop maps. I just remmed out the unwanted levels with “beginrem” and “endrem” …

rem |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rem |-------------------------------------------------------------------------------|
rem | Project Reality Map List |
rem |-------------------------------------------------------------------------------|
rem | 16/32/64 does not represent player size, instead, different map layouts |
rem | 128 layers are recommended to be used with 100 player servers |
rem |-------------------------------------------------------------------------------|
rem | 16 = Infantry Layer At most light transport vehicles only |
rem | 32 = Alternative Layer An alternative layout with different vehicles/flags |
rem | 64 = Standard Layer The normal map layout |
rem | 128 = Large Layer Copy of 64 with higher ticket count for longer rounds|
rem |-------------------------------------------------------------------------------|
rem |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

rem mapList.append

rem |-------------------------------------------------------------------------------|
rem | Advance and Secure. Capture and defend control points (Default GameMode) |
rem |-------------------------------------------------------------------------------|
beginrem
mapList.append adak gpm_cq 32
mapList.append adak gpm_cq 64
mapList.append adak gpm_cq 128
mapList.append asad_khal gpm_cq 32
mapList.append asad_khal gpm_cq 64
mapList.append assault_on_grozny gpm_cq 16
mapList.append assault_on_grozny gpm_cq 32
mapList.append assault_on_grozny gpm_cq 64
mapList.append assault_on_mestia gpm_cq 64
mapList.append bamyan gpm_cq 32
mapList.append bamyan gpm_cq 64
mapList.append bamyan gpm_cq 128
mapList.append battle_of_ia_drang gpm_cq 16
mapList.append battle_of_ia_drang gpm_cq 32
mapList.append battle_of_ia_drang gpm_cq 64
mapList.append beirut gpm_cq 16
mapList.append beirut gpm_cq 32
mapList.append beirut gpm_cq 64
mapList.append beirut gpm_cq 128
mapList.append bijar_canyons gpm_cq 16
mapList.append bijar_canyons gpm_cq 32
mapList.append bijar_canyons gpm_cq 64
mapList.append bijar_canyons gpm_cq 128
mapList.append black_gold gpm_cq 16
mapList.append black_gold gpm_cq 32
mapList.append black_gold gpm_cq 64
mapList.append black_gold gpm_cq 128
mapList.append brecourt_assault gpm_cq 32
mapList.append brecourt_assault gpm_cq 64
mapList.append burning_sands gpm_cq 16
mapList.append burning_sands gpm_cq 32
mapList.append burning_sands gpm_cq 64
mapList.append burning_sands gpm_cq 128
mapList.append carentan gpm_cq 32
mapList.append carentan gpm_cq 64
mapList.append carentan gpm_cq 128
mapList.append charlies_point gpm_cq 64
mapList.append dovre gpm_cq 16
mapList.append dovre gpm_cq 32
mapList.append dovre gpm_cq 64
mapList.append dovre_winter gpm_cq 16
mapList.append dovre_winter gpm_cq 32
mapList.append dovre_winter gpm_cq 64
mapList.append dragon_fly gpm_cq 16
mapList.append dragon_fly gpm_cq 32
mapList.append dragon_fly gpm_cq 64
mapList.append fallujah_west gpm_cq 64
mapList.append fools_road gpm_cq 16
mapList.append fools_road gpm_cq 32
mapList.append fools_road gpm_cq 64
mapList.append fools_road gpm_cq 128
mapList.append gaza_2 gpm_cq 16
mapList.append gaza_2 gpm_cq 32
mapList.append gaza_2 gpm_cq 64
mapList.append goose_green gpm_cq 16
mapList.append goose_green gpm_cq 32
mapList.append goose_green gpm_cq 64
mapList.append hades_peak gpm_cq 16
mapList.append hades_peak gpm_cq 32
mapList.append hades_peak gpm_cq 64
mapList.append hades_peak gpm_cq 128
mapList.append hill_488 gpm_cq 64
mapList.append iron_ridge gpm_cq 16
mapList.append iron_ridge gpm_cq 32
mapList.append iron_ridge gpm_cq 64
mapList.append jabal gpm_cq 16
mapList.append jabal gpm_cq 32
mapList.append jabal gpm_cq 64
mapList.append kafar_halab gpm_cq 16
mapList.append kafar_halab gpm_cq 32
mapList.append kafar_halab gpm_cq 64
mapList.append kashan_desert gpm_cq 16
mapList.append kashan_desert gpm_cq 32
mapList.append kashan_desert gpm_cq 64
mapList.append kashan_desert gpm_cq 128
mapList.append khamisiyah gpm_cq 16
mapList.append khamisiyah gpm_cq 32
mapList.append khamisiyah gpm_cq 64
mapList.append khamisiyah gpm_cq 128
mapList.append korengal gpm_cq 64
mapList.append kozelsk gpm_cq 16
mapList.append kozelsk gpm_cq 32
mapList.append kozelsk gpm_cq 64
mapList.append masirah gpm_cq 64
mapList.append merville gpm_cq 16
mapList.append merville gpm_cq 64
mapList.append musa_qala gpm_cq 64
mapList.append muttrah_city_2 gpm_cq 16
mapList.append muttrah_city_2 gpm_cq 32
mapList.append muttrah_city_2 gpm_cq 64
mapList.append nuijamaa gpm_cq 16
mapList.append nuijamaa gpm_cq 32
mapList.append nuijamaa gpm_cq 64
mapList.append omaha_beach gpm_cq 16
mapList.append omaha_beach gpm_cq 32
mapList.append omaha_beach gpm_cq 64
mapList.append omaha_beach gpm_cq 128
mapList.append op_barracuda gpm_cq 16
mapList.append op_barracuda gpm_cq 32
mapList.append op_barracuda gpm_cq 64
mapList.append operation_bobcat gpm_cq 16
mapList.append operation_bobcat gpm_cq 32
mapList.append operation_bobcat gpm_cq 64
mapList.append operation_bobcat gpm_cq 128
mapList.append operation_falcon gpm_cq 16
mapList.append operation_falcon gpm_cq 32
mapList.append operation_falcon gpm_cq 64
mapList.append operation_falcon gpm_cq 128
mapList.append operation_ghost_train gpm_cq 16
mapList.append operation_ghost_train gpm_cq 64
mapList.append operation_marlin gpm_cq 16
mapList.append operation_marlin gpm_cq 32
mapList.append operation_marlin gpm_cq 64
mapList.append operation_marlin gpm_cq 128
mapList.append operation_soul_rebel gpm_cq 16
mapList.append operation_soul_rebel gpm_cq 64
mapList.append operation_thunder gpm_cq 32
mapList.append operation_thunder gpm_cq 64
mapList.append outpost gpm_cq 32
mapList.append outpost gpm_cq 64
mapList.append pavlovsk_bay gpm_cq 16
mapList.append pavlovsk_bay gpm_cq 32
mapList.append pavlovsk_bay gpm_cq 64
mapList.append qwai1 gpm_cq 16
mapList.append qwai1 gpm_cq 32
mapList.append qwai1 gpm_cq 64
mapList.append ramiel gpm_cq 64
mapList.append ras_el_masri_2 gpm_cq 64
mapList.append reichswald gpm_cq 16
mapList.append reichswald gpm_cq 32
mapList.append reichswald gpm_cq 64
mapList.append route gpm_cq 32
mapList.append route gpm_cq 64
mapList.append route gpm_cq 128
mapList.append saaremaa gpm_cq 16
mapList.append saaremaa gpm_cq 32
mapList.append saaremaa gpm_cq 64
mapList.append saaremaa gpm_cq 128
mapList.append sahel gpm_cq 16
mapList.append sahel gpm_cq 32
mapList.append sahel gpm_cq 64
mapList.append sbeneh_outskirts gpm_cq 16
mapList.append sbeneh_outskirts gpm_cq 32
mapList.append sbeneh_outskirts gpm_cq 64
mapList.append shahadah gpm_cq 64
mapList.append shijiavalley gpm_cq 16
mapList.append shijiavalley gpm_cq 32
mapList.append shijiavalley gpm_cq 64
mapList.append shijiavalley gpm_cq 128
mapList.append silent_eagle gpm_cq 16
mapList.append silent_eagle gpm_cq 32
mapList.append silent_eagle gpm_cq 64
mapList.append silent_eagle gpm_cq 128
mapList.append tad_sae gpm_cq 16
mapList.append tad_sae gpm_cq 32
mapList.append tad_sae gpm_cq 64
mapList.append the_falklands gpm_cq 16
mapList.append the_falklands gpm_cq 32
mapList.append the_falklands gpm_cq 64
mapList.append ulyanovsk gpm_cq 16
mapList.append ulyanovsk gpm_cq 32
mapList.append ulyanovsk gpm_cq 64
mapList.append vadso_city gpm_cq 16
mapList.append vadso_city gpm_cq 32
mapList.append vadso_city gpm_cq 64
mapList.append wanda_shan gpm_cq 16
mapList.append wanda_shan gpm_cq 32
mapList.append wanda_shan gpm_cq 64
mapList.append wanda_shan gpm_cq 128
mapList.append xiangshan gpm_cq 16
mapList.append xiangshan gpm_cq 32
mapList.append xiangshan gpm_cq 64
mapList.append xiangshan gpm_cq 128
mapList.append yamalia gpm_cq 16
mapList.append yamalia gpm_cq 32
mapList.append yamalia gpm_cq 64
mapList.append yamalia gpm_cq 128

rem |-------------------------------------------------------------------------------|
rem | Insurgency - Objective based. BluFor is to destroy OpFor ammo caches |
rem |-------------------------------------------------------------------------------|
mapList.append albasrah_2 gpm_insurgency 16
mapList.append albasrah_2 gpm_insurgency 64
mapList.append assault_on_grozny gpm_insurgency 64
mapList.append bamyan gpm_insurgency 64
mapList.append bijar_canyons gpm_insurgency 64
mapList.append black_gold gpm_insurgency 64
mapList.append dragon_fly gpm_insurgency 16
mapList.append dragon_fly gpm_insurgency 64
mapList.append fallujah_west gpm_insurgency 16
mapList.append fallujah_west gpm_insurgency 32
mapList.append fallujah_west gpm_insurgency 64
mapList.append fallujah_west gpm_insurgency 128
mapList.append gaza_2 gpm_insurgency 16
mapList.append gaza_2 gpm_insurgency 64
mapList.append iron_ridge gpm_insurgency 64
mapList.append kafar_halab gpm_insurgency 32
mapList.append kafar_halab gpm_insurgency 64
mapList.append karbala gpm_insurgency 16
mapList.append karbala gpm_insurgency 32
mapList.append karbala gpm_insurgency 64
mapList.append karbala gpm_insurgency 128
mapList.append khamisiyah gpm_insurgency 64
mapList.append kokan gpm_insurgency 16
mapList.append kokan gpm_insurgency 32
mapList.append kokan gpm_insurgency 64
mapList.append korengal gpm_insurgency 64
mapList.append kozelsk gpm_insurgency 64
mapList.append lashkar_valley gpm_insurgency 16
mapList.append lashkar_valley gpm_insurgency 32
mapList.append lashkar_valley gpm_insurgency 64
mapList.append lashkar_valley gpm_insurgency 128
mapList.append musa_qala gpm_insurgency 16
mapList.append musa_qala gpm_insurgency 32
mapList.append musa_qala gpm_insurgency 64
mapList.append operation_marlin gpm_insurgency 64
mapList.append outpost gpm_insurgency 64
mapList.append ramiel gpm_insurgency 16
mapList.append ramiel gpm_insurgency 32
mapList.append ramiel gpm_insurgency 64
mapList.append ras_el_masri_2 gpm_insurgency 64
mapList.append sahel gpm_insurgency 64
mapList.append sbeneh_outskirts gpm_insurgency 16
mapList.append sbeneh_outskirts gpm_insurgency 32
mapList.append sbeneh_outskirts gpm_insurgency 64
mapList.append shahadah gpm_insurgency 64

rem |-------------------------------------------------------------------------------|
rem | Skirmish - Small infantry-only battles, aimed at 6v6 to 10v10 |
rem |-------------------------------------------------------------------------------|
mapList.append adak gpm_skirmish 64
mapList.append albasrah_2 gpm_skirmish 16
mapList.append asad_khal gpm_skirmish 16
mapList.append asad_khal gpm_skirmish 32
mapList.append asad_khal gpm_skirmish 64
mapList.append assault_on_grozny gpm_skirmish 16
mapList.append assault_on_grozny gpm_skirmish 32
mapList.append assault_on_mestia gpm_skirmish 16
mapList.append bamyan gpm_skirmish 16
mapList.append battle_of_ia_drang gpm_skirmish 16
mapList.append battle_of_ia_drang gpm_skirmish 32
mapList.append beirut gpm_skirmish 16
mapList.append beirut gpm_skirmish 32
mapList.append bijar_canyons gpm_skirmish 16
mapList.append black_gold gpm_skirmish 16
mapList.append brecourt_assault gpm_skirmish 64
mapList.append burning_sands gpm_skirmish 16
mapList.append carentan gpm_skirmish 16
mapList.append carentan gpm_skirmish 32
mapList.append carentan gpm_skirmish 64
mapList.append charlies_point gpm_skirmish 16
mapList.append dovre gpm_skirmish 16
mapList.append dovre_winter gpm_skirmish 16
mapList.append dragon_fly gpm_skirmish 16
mapList.append fallujah_west gpm_skirmish 16
mapList.append fools_road gpm_skirmish 16
mapList.append fools_road gpm_skirmish 32
mapList.append gaza_2 gpm_skirmish 16
mapList.append goose_green gpm_skirmish 16
mapList.append goose_green gpm_skirmish 32
mapList.append hades_peak gpm_skirmish 16
mapList.append hill_488 gpm_skirmish 16
mapList.append iron_ridge gpm_skirmish 16
mapList.append iron_ridge gpm_skirmish 32
mapList.append jabal gpm_skirmish 16
mapList.append jabal gpm_skirmish 32
mapList.append jabal gpm_skirmish 64
mapList.append kafar_halab gpm_skirmish 64
mapList.append karbala gpm_skirmish 16
mapList.append kashan_desert gpm_skirmish 16
mapList.append kashan_desert gpm_skirmish 32
mapList.append kashan_desert gpm_skirmish 64
mapList.append khamisiyah gpm_skirmish 16
mapList.append kokan gpm_skirmish 16
mapList.append kokan gpm_skirmish 64
mapList.append korengal gpm_skirmish 16
mapList.append kozelsk gpm_skirmish 16
mapList.append lashkar_valley gpm_skirmish 16
mapList.append masirah gpm_skirmish 16
mapList.append merville gpm_skirmish 16
mapList.append musa_qala gpm_skirmish 16
mapList.append muttrah_city_2 gpm_skirmish 16
mapList.append nuijamaa gpm_skirmish 16
mapList.append omaha_beach gpm_skirmish 16
mapList.append op_barracuda gpm_skirmish 16
mapList.append op_barracuda gpm_skirmish 32
mapList.append operation_bobcat gpm_skirmish 16
mapList.append operation_bobcat gpm_skirmish 32
mapList.append operation_bobcat gpm_skirmish 64
mapList.append operation_falcon gpm_skirmish 16
mapList.append operation_ghost_train gpm_skirmish 16
mapList.append operation_marlin gpm_skirmish 16
mapList.append operation_soul_rebel gpm_skirmish 16
mapList.append operation_thunder gpm_skirmish 16
mapList.append outpost gpm_skirmish 16
mapList.append pavlovsk_bay gpm_skirmish 16
mapList.append qwai1 gpm_skirmish 16
mapList.append qwai1 gpm_skirmish 32
mapList.append ramiel gpm_skirmish 16
mapList.append ras_el_masri_2 gpm_skirmish 16
mapList.append reichswald gpm_skirmish 16
mapList.append reichswald gpm_skirmish 32
mapList.append route gpm_skirmish 16
mapList.append saaremaa gpm_skirmish 16
mapList.append sahel gpm_skirmish 32
mapList.append sahel gpm_skirmish 64
mapList.append sbeneh_outskirts gpm_skirmish 16
mapList.append sbeneh_outskirts gpm_skirmish 32
mapList.append shahadah gpm_skirmish 16
mapList.append shijiavalley gpm_skirmish 16
mapList.append shijiavalley gpm_skirmish 32
mapList.append shijiavalley gpm_skirmish 64
mapList.append silent_eagle gpm_skirmish 16
mapList.append tad_sae gpm_skirmish 16
mapList.append tad_sae gpm_skirmish 32
mapList.append the_falklands gpm_skirmish 16
mapList.append the_falklands gpm_skirmish 32
mapList.append ulyanovsk gpm_skirmish 16
mapList.append vadso_city gpm_skirmish 16
mapList.append vadso_city gpm_skirmish 64
mapList.append wanda_shan gpm_skirmish 16
mapList.append xiangshan gpm_skirmish 16
mapList.append xiangshan gpm_skirmish 32
mapList.append yamalia gpm_skirmish 16
mapList.append yamalia gpm_skirmish 32

rem |-------------------------------------------------------------------------------|
rem | Gungame - Small, fun oriented gamemode aimed at seeding |
rem |-------------------------------------------------------------------------------|
mapList.append asad_khal gpm_gungame 16
mapList.append black_gold gpm_gungame 16
mapList.append black_gold gpm_gungame 64
mapList.append dovre gpm_gungame 16
mapList.append wanda_shan gpm_gungame 16

rem |-------------------------------------------------------------------------------|
rem | Command and Control - Objective based. Build and defend Forward Outposts |
rem |-------------------------------------------------------------------------------|
mapList.append battle_of_ia_drang gpm_cnc 32
mapList.append battle_of_ia_drang gpm_cnc 64
mapList.append bijar_canyons gpm_cnc 16
mapList.append bijar_canyons gpm_cnc 32
mapList.append bijar_canyons gpm_cnc 64
mapList.append bijar_canyons gpm_cnc 128
mapList.append black_gold gpm_cnc 16
mapList.append black_gold gpm_cnc 32
mapList.append black_gold gpm_cnc 64
mapList.append black_gold gpm_cnc 128
mapList.append dragon_fly gpm_cnc 16
mapList.append dragon_fly gpm_cnc 32
mapList.append dragon_fly gpm_cnc 64
mapList.append fools_road gpm_cnc 16
mapList.append fools_road gpm_cnc 32
mapList.append fools_road gpm_cnc 64
mapList.append fools_road gpm_cnc 128
mapList.append hades_peak gpm_cnc 16
mapList.append hades_peak gpm_cnc 32
mapList.append hades_peak gpm_cnc 64
mapList.append hades_peak gpm_cnc 128
mapList.append iron_ridge gpm_cnc 16
mapList.append iron_ridge gpm_cnc 32
mapList.append iron_ridge gpm_cnc 64
mapList.append kashan_desert gpm_cnc 16
mapList.append kashan_desert gpm_cnc 32
mapList.append kashan_desert gpm_cnc 64
mapList.append khamisiyah gpm_cnc 16
mapList.append khamisiyah gpm_cnc 32
mapList.append khamisiyah gpm_cnc 64
mapList.append route gpm_cnc 32
mapList.append route gpm_cnc 64
mapList.append route gpm_cnc 128
mapList.append saaremaa gpm_cnc 16
mapList.append saaremaa gpm_cnc 32
mapList.append saaremaa gpm_cnc 64
mapList.append sbeneh_outskirts gpm_cnc 16
mapList.append sbeneh_outskirts gpm_cnc 64
mapList.append shijiavalley gpm_cnc 16
mapList.append shijiavalley gpm_cnc 32
mapList.append shijiavalley gpm_cnc 64
mapList.append shijiavalley gpm_cnc 128
mapList.append silent_eagle gpm_cnc 16
mapList.append silent_eagle gpm_cnc 32
mapList.append silent_eagle gpm_cnc 64
mapList.append silent_eagle gpm_cnc 128
mapList.append vadso_city gpm_cnc 16
mapList.append vadso_city gpm_cnc 32
mapList.append vadso_city gpm_cnc 64
mapList.append wanda_shan gpm_cnc 16
mapList.append wanda_shan gpm_cnc 32
mapList.append wanda_shan gpm_cnc 64
mapList.append wanda_shan gpm_cnc 128
mapList.append xiangshan gpm_cnc 16
mapList.append xiangshan gpm_cnc 32
mapList.append xiangshan gpm_cnc 64
mapList.append xiangshan gpm_cnc 128
mapList.append yamalia gpm_cnc 16
mapList.append yamalia gpm_cnc 32
mapList.append yamalia gpm_cnc 64
mapList.append yamalia gpm_cnc 128

rem |-------------------------------------------------------------------------------|
rem | Vehicle Warfare - Large, vehicle only battles |
rem |-------------------------------------------------------------------------------|
mapList.append bijar_canyons gpm_vehicles 64
mapList.append black_gold gpm_vehicles 16
mapList.append black_gold gpm_vehicles 64
mapList.append dragon_fly gpm_vehicles 64
mapList.append kashan_desert gpm_vehicles 32
mapList.append kashan_desert gpm_vehicles 64
mapList.append khamisiyah gpm_vehicles 16
mapList.append khamisiyah gpm_vehicles 64
mapList.append operation_soul_rebel gpm_vehicles 64
mapList.append sbeneh_outskirts gpm_vehicles 16
mapList.append sbeneh_outskirts gpm_vehicles 64
mapList.append shijiavalley gpm_vehicles 64
mapList.append silent_eagle gpm_vehicles 16
mapList.append silent_eagle gpm_vehicles 64
mapList.append the_falklands gpm_vehicles 32
mapList.append the_falklands gpm_vehicles 64
mapList.append wanda_shan gpm_vehicles 64
mapList.append xiangshan gpm_vehicles 64
mapList.append yamalia gpm_vehicles 64
endrem

rem |-------------------------------------------------------------------------------|
rem | Co-Operative - Play with Bots !!!Cannot be run with any other game mode!!! |
rem |-------------------------------------------------------------------------------|
mapList.append bijar_canyons gpm_coop 64
mapList.append adak gpm_coop 128
mapList.append albasrah_2 gpm_coop 16
mapList.append albasrah_2 gpm_coop 32
mapList.append albasrah_2 gpm_coop 64
mapList.append asad_khal gpm_coop 32
mapList.append asad_khal gpm_coop 64
mapList.append assault_on_grozny gpm_coop 16
mapList.append assault_on_grozny gpm_coop 32
mapList.append assault_on_grozny gpm_coop 64
mapList.append assault_on_mestia gpm_coop 64
mapList.append bamyan gpm_coop 16
mapList.append bamyan gpm_coop 32
mapList.append bamyan gpm_coop 64
mapList.append bamyan gpm_coop 128
mapList.append battle_of_ia_drang gpm_coop 32
mapList.append battle_of_ia_drang gpm_coop 64
mapList.append beirut gpm_coop 16
mapList.append beirut gpm_coop 32
mapList.append beirut gpm_coop 64
mapList.append beirut gpm_coop 128
mapList.append bijar_canyons gpm_coop 32
mapList.append bijar_canyons gpm_coop 64
mapList.append black_gold gpm_coop 16
mapList.append black_gold gpm_coop 32
mapList.append black_gold gpm_coop 64
mapList.append black_gold gpm_coop 128
mapList.append brecourt_assault gpm_coop 64
mapList.append burning_sands gpm_coop 16
mapList.append burning_sands gpm_coop 32
mapList.append burning_sands gpm_coop 64
mapList.append carentan gpm_coop 32
mapList.append carentan gpm_coop 64
mapList.append charlies_point gpm_coop 64
mapList.append dovre gpm_coop 64
mapList.append dovre_winter gpm_coop 32
mapList.append dovre_winter gpm_coop 64
mapList.append dragon_fly gpm_coop 16
mapList.append dragon_fly gpm_coop 64
mapList.append fallujah_west gpm_coop 64
mapList.append fools_road gpm_coop 16
mapList.append fools_road gpm_coop 32
mapList.append fools_road gpm_coop 64
mapList.append fools_road gpm_coop 128
mapList.append gaza_2 gpm_coop 16
mapList.append gaza_2 gpm_coop 64
mapList.append goose_green gpm_coop 64
mapList.append hades_peak gpm_coop 16
mapList.append hades_peak gpm_coop 32
mapList.append hades_peak gpm_coop 64
mapList.append hill_488 gpm_coop 64
mapList.append iron_ridge gpm_coop 64
mapList.append jabal gpm_coop 16
mapList.append jabal gpm_coop 32
mapList.append jabal gpm_coop 64
mapList.append jabal gpm_coop 128
mapList.append kafar_halab gpm_coop 16
mapList.append kafar_halab gpm_coop 32
mapList.append kafar_halab gpm_coop 64
mapList.append kafar_halab gpm_coop 128
mapList.append karbala gpm_coop 32
mapList.append karbala gpm_coop 64
mapList.append kashan_desert gpm_coop 16
mapList.append kashan_desert gpm_coop 32
mapList.append kashan_desert gpm_coop 64
mapList.append kashan_desert gpm_coop 128
mapList.append khamisiyah gpm_coop 16
mapList.append khamisiyah gpm_coop 32
mapList.append khamisiyah gpm_coop 64
mapList.append khamisiyah gpm_coop 128
mapList.append kokan gpm_coop 16
mapList.append kokan gpm_coop 32
mapList.append kokan gpm_coop 64
mapList.append kokan gpm_coop 128
mapList.append korengal gpm_coop 64
mapList.append kozelsk gpm_coop 16
mapList.append kozelsk gpm_coop 32
mapList.append kozelsk gpm_coop 64
mapList.append lashkar_valley gpm_coop 16
mapList.append lashkar_valley gpm_coop 32
mapList.append lashkar_valley gpm_coop 64
mapList.append masirah gpm_coop 16
mapList.append masirah gpm_coop 128
mapList.append merville gpm_coop 64
mapList.append musa_qala gpm_coop 32
mapList.append musa_qala gpm_coop 64
mapList.append muttrah_city_2 gpm_coop 16
mapList.append muttrah_city_2 gpm_coop 32
mapList.append muttrah_city_2 gpm_coop 64
mapList.append muttrah_city_2 gpm_coop 128
mapList.append nuijamaa gpm_coop 64
mapList.append omaha_beach gpm_coop 64
mapList.append op_barracuda gpm_coop 16
mapList.append op_barracuda gpm_coop 32
mapList.append op_barracuda gpm_coop 64
mapList.append op_barracuda gpm_coop 128
mapList.append operation_bobcat gpm_coop 16
mapList.append operation_bobcat gpm_coop 64
mapList.append operation_bobcat gpm_coop 128
mapList.append operation_falcon gpm_coop 32
mapList.append operation_falcon gpm_coop 64
mapList.append operation_ghost_train gpm_coop 16
mapList.append operation_marlin gpm_coop 16
mapList.append operation_marlin gpm_coop 32
mapList.append operation_marlin gpm_coop 64
mapList.append operation_marlin gpm_coop 128
mapList.append operation_soul_rebel gpm_coop 64
mapList.append operation_thunder gpm_coop 16
mapList.append operation_thunder gpm_coop 64
mapList.append outpost gpm_coop 32
mapList.append outpost gpm_coop 64
mapList.append pavlovsk_bay gpm_coop 16
mapList.append pavlovsk_bay gpm_coop 32
mapList.append pavlovsk_bay gpm_coop 64
mapList.append qwai1 gpm_coop 16
mapList.append qwai1 gpm_coop 32
mapList.append qwai1 gpm_coop 64
mapList.append ramiel gpm_coop 16
mapList.append ramiel gpm_coop 32
mapList.append ramiel gpm_coop 64
mapList.append ramiel gpm_coop 128
mapList.append reichswald gpm_coop 64
mapList.append route gpm_coop 16
mapList.append route gpm_coop 64
mapList.append saaremaa gpm_coop 32
mapList.append saaremaa gpm_coop 64
mapList.append sahel gpm_coop 16
mapList.append sahel gpm_coop 64
mapList.append sbeneh_outskirts gpm_coop 16
mapList.append sbeneh_outskirts gpm_coop 32
mapList.append sbeneh_outskirts gpm_coop 64
mapList.append shahadah gpm_coop 16
mapList.append shahadah gpm_coop 32
mapList.append shahadah gpm_coop 64
mapList.append shijiavalley gpm_coop 16
mapList.append shijiavalley gpm_coop 32
mapList.append shijiavalley gpm_coop 64
mapList.append silent_eagle gpm_coop 16
mapList.append silent_eagle gpm_coop 32
mapList.append silent_eagle gpm_coop 64
mapList.append tad_sae gpm_coop 16
mapList.append tad_sae gpm_coop 32
mapList.append the_falklands gpm_coop 16
mapList.append ulyanovsk gpm_coop 64
mapList.append vadso_city gpm_coop 32
mapList.append vadso_city gpm_coop 64
mapList.append vadso_city gpm_coop 128
mapList.append wanda_shan gpm_coop 64
mapList.append xiangshan gpm_coop 32
mapList.append xiangshan gpm_coop 64
mapList.append yamalia gpm_coop 16
mapList.append yamalia gpm_coop 32
mapList.append yamalia gpm_coop 64
mapList.append yamalia gpm_coop 128

 

Then here is my edited “serversettings.con” that will start a game with 96 bots and autobalance the teams …

rem Name of the server for the server list
sv.serverName "PR:BF2 Server"
rem Password for joining the server
sv.password ""
rem 1 for internet servers, 0 for everything else
sv.internet 0
rem IPv4 of the server
sv.serverIP "127.0.0.1"
sv.interfaceIP "127.0.0.1"
rem Port of the server
sv.serverPort 16567
rem Port to query server information
sv.gameSpyPort 29900
rem IPv4:Port of the mumble server to use. Leave empty to disable mumble
sv.voipServerRemoteIP ""
rem Message displayed in loading screen
sv.welcomeMessage "Welcome to a Project Reality server!"
rem Message displayed in server browser. User '|' for line breaks and add 'pr_maplist' to add next maps in rotation
sv.sponsorText "Welcome to a Project Reality server!|pr_maplist"
rem Logo displayed in server browser
sv.sponsorLogoURL "http://files.michaelzfreeman.org/pr_mzf.png"
rem Logo displayed in server browser
sv.communityLogoURL "http://files.michaelzfreeman.org/pr_mzf.png"sv.allowFreeCam 0
sv.allowExternalViews 0
sv.allowNoseCam 0
sv.hitIndicator 0
sv.maxPlayers 1
sv.numPlayersNeededToStart 1
sv.notEnoughPlayersRestartDelay 15
sv.ticketRatio 100
sv.roundsPerMap 1
sv.timeLimit 0
sv.scoreLimit 0
sv.soldierFriendlyFire 100
sv.vehicleFriendlyFire 100
sv.soldierSplashFriendlyFire 100
sv.vehicleSplashFriendlyFire 100
sv.tkPunishEnabled 1
sv.tkNumPunishToKick 3
sv.tkPunishByDefault 0
sv.votingEnabled 1
sv.voteTime 90
sv.minPlayersForVoting 1
sv.allowNATNegotiation 0
sv.autoRecord 0
sv.demoIndexURL http://
sv.demoDownloadURL http://
sv.autoDemoHook "adminutils/demo/rotate_demo.exe"
sv.demoQuality 1
sv.timeBeforeRestartMap 30
sv.autoBalanceTeam 1
sv.teamRatioPercent 95
sv.coopBotRatio 50
sv.coopBotCount 96
sv.maxPlayers 1
sv.coopBotDifficulty 90
sv.useGlobalRank 1
sv.useGlobalUnlocks 1
sv.radioSpamInterval 6
sv.radioMaxSpamFlagCount 6
sv.radioBlockedDurationTime 30rem DO NOT MODIFY
sv.adminScript ""rem NOT SUPPORTED
sv.startDelay 15
sv.endDelay 15
sv.spawnTime 10
sv.manDownTime 10
sv.endOfRoundDelay 15
sv.punkBuster 0
sv.voipEnabled 0
sv.voipQuality 3
sv.interfaceIP ""
sv.voipServerRemote 0
sv.voipServerPort 55125
sv.voipBFClientPort 55123
sv.voipBFServerPort 55124
sv.voipSharedPassword ""

 

I have the IP set to “127.0.0.1” as I’m still investigating if this gives improved communication performance between server and client. However the only way to actually join a server on that IP, even if it is listed in the server browser, is to click on “Join IP” in the client and type in “127.0.0.1”. So you might want to set that to your usual IP if you just want to join by double clicking on the server listed in the client.

Notes about Coop play

Above a certain amount of of bots (somewhere above 64) you will no longer be able to become squad leader even if you answer yes to the questions that comes up on the screen. However, unlike other mods, in PR you can hit the “Create squad” button and you can become the leader. Then you can manage that squad and invite up to 5 or 6 bots (or human Coop players) into the squad. You have to be squad leader to get an officer kit to build FOB’s and some other tasks require you to be the leader. However sometimes its beneficial to leave your squad and join another and allow another player to be squad leader. This is a quick way of getting in on the action as a green dot marks your squad leader on the level map and you can spawn right on top of him. If you are squad leader and die then spawn options can be limited.

Coop Game Play Python Options

There are a few options in “c:\Program Files (x86)\Project Reality\Project Reality BF2\mods\pr\python\game\realityconfig_coop.py” that might be especially interesting if you often play solo …

  1. Define if a player can only pick up a kit from his faction
2. Default is enabled
C[‘KIT_FACTION_LOCKED’] = 1

This determines if you get the “drop this kit now message” and then your screen goes black.

  1. Min number of close by squad members when setting rally points (must be lower than RALLY_LIMIT_SQUAD)
2. Default is 2
C[‘RALLY_CLOSE_SQUAD’] = 2

Could be especially useful if you play solo or with very few coop players.

  1. Defines if all players in a server running the private config have debug powers
2. Default is 0 (no)
C[‘PRDEBUG_ALL’] = 0

Has to be turned on to allow console debug and admin commands.

So that’s it. I hope coop players and bot lovers will get much more enjoyment in PR !

Coop Support for CMP Pacific maps in Forgotten Hope

Ivanwazowsky on the Forgotten Hope 2 forums has released Coop versions of the CMP (Collaborative Multi Player) maps Berlin, Wake island, Tarawa and Tulagi. These were always impressive maps, especially the Pacific one’s which hark back to the early days of Battlefield game play with 1942. Coop support for them was requested years ago. I even briefly tried to start adding the support myself at one point. It’s not easy, especially with complex maps such as these one’s. I played Tarawa for over an hour and that remained stable. However for me Tulagi crashed 15 minutes in so there is still some more work to be done to make them stable (for comparison I was in a Coop Project reality map for over 2 hours with no crashes but they tend to be beta tested by a lot more people).

So download these new Coop maps for Forgotten Hope and support this developer !