Init 0.1 - 1

This commit is contained in:
Nekura
2024-01-07 22:27:20 +01:00
commit 700d64cdbb
119 changed files with 13428 additions and 0 deletions

BIN
EXE/00000000.016 Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
EXE/00000000.256 Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 KiB

BIN
EXE/1033/dwintl.dll Normal file

Binary file not shown.

BIN
EXE/CheatMessage.txt Normal file

Binary file not shown.

BIN
EXE/D3D8.dll Normal file

Binary file not shown.

BIN
EXE/DALib.dll Normal file

Binary file not shown.

BIN
EXE/DelayDisplay.dll Normal file

Binary file not shown.

BIN
EXE/Freelancer.exe Normal file

Binary file not shown.

BIN
EXE/HUDless.dll Normal file

Binary file not shown.

BIN
EXE/HudFacility.dll Normal file

Binary file not shown.

BIN
EXE/HudShift.dll Normal file

Binary file not shown.

BIN
EXE/HudStatus.dll Normal file

Binary file not shown.

BIN
EXE/HudTarget.dll Normal file

Binary file not shown.

BIN
EXE/HudWeaponGroups.dll Normal file

Binary file not shown.

BIN
EXE/MP3codec.dll Normal file

Binary file not shown.

BIN
EXE/MPRep.dll Normal file

Binary file not shown.

BIN
EXE/MinHook.x86.dll Normal file

Binary file not shown.

BIN
EXE/MultiIntro.dll Normal file

Binary file not shown.

BIN
EXE/REM-Client.dll Normal file

Binary file not shown.

77
EXE/ReShade.ini Normal file
View File

@@ -0,0 +1,77 @@
[APP]
Force10BitFormat=0
ForceFullscreen=0
ForceResolution=0,0
ForceVsync=0
ForceWindowed=0
[GENERAL]
EffectSearchPaths=.\reshade-shaders\Shaders
NoDebugInfo=0
NoEffectCache=0
NoReloadOnInit=0
NoReloadOnInitForNonVR=0
PerformanceMode=0
PreprocessorDefinitions=RESHADE_DEPTH_LINEARIZATION_FAR_PLANE=1000.0,RESHADE_DEPTH_INPUT_IS_UPSIDE_DOWN=0,RESHADE_DEPTH_INPUT_IS_REVERSED=0,RESHADE_DEPTH_INPUT_IS_LOGARITHMIC=0
PresetPath=.\ReShadePreset.ini
PresetTransitionDuration=1000
SkipLoadingDisabledEffects=0
TextureSearchPaths=.\reshade-shaders\Textures
[INPUT]
ForceShortcutModifiers=1
InputProcessing=2
KeyEffects=0,0,0,0
KeyNextPreset=0,0,0,0
KeyOverlay=36,0,0,0
KeyPerformanceMode=0,0,0,0
KeyPreviousPreset=0,0,0,0
KeyReload=0,0,0,0
KeyScreenshot=44,0,0,0
[OVERLAY]
ClockFormat=0
FPSPosition=1
NoFontScaling=0
SavePresetOnModification=1
SaveWindowState=0
ShowClock=0
ShowForceLoadEffectsButton=1
ShowFPS=0
ShowFrameTime=0
ShowScreenshotMessage=1
TutorialProgress=2
VariableListHeight=300.000000
VariableListUseTabs=0
[SCREENSHOT]
ClearAlpha=1
FileFormat=1
FileNaming=%AppName% %Date% %Time%
JPEGQuality=100
PostSaveCommand=
PostSaveCommandArguments="%TargetPath%"
PostSaveCommandNoWindow=0
PostSaveCommandWorkingDirectory=.\
SaveBeforeShot=0
SaveOverlayShot=0
SavePath=.\
SavePresetFile=0
[STYLE]
Alpha=1.000000
ChildRounding=0.000000
ColFPSText=1.000000,1.000000,0.784314,1.000000
EditorFont=
EditorFontSize=13
EditorStyleIndex=0
Font=
FontSize=13
FPSScale=1.000000
FrameRounding=0.000000
GrabRounding=0.000000
PopupRounding=0.000000
ScrollbarRounding=0.000000
StyleIndex=2
TabRounding=4.000000
WindowRounding=0.000000

38
EXE/ReShadePreset.ini Normal file
View File

@@ -0,0 +1,38 @@
PreprocessorDefinitions=
Techniques=Colourfulness@Colourfulness.fx,ContrastAdaptiveSharpen@CAS.fx
TechniqueSorting=MagicBloom@MagicBloom.fx,HDR@FakeHDR.fx,Colourfulness@Colourfulness.fx,Tonemap@Tonemap.fx,ContrastAdaptiveSharpen@CAS.fx
[Colourfulness.fx]
backbuffer_bits=8.000000
colourfulness=0.250000
col_noise=1
enable_dither=0
lim_luma=0.700000
[FakeHDR.fx]
HDRPower=1.280000
radius1=0.805000
radius2=0.855000
[MagicBloom.fx]
f2Adapt_Clip=0.000000,1.000000
fAdapt_Sensitivity=1.000000
fAdapt_Speed=0.100000
fBloom_Intensity=1.000000
fBloom_Threshold=1.900000
fDirt_Intensity=0.000000
fExposure=0.500000
iAdapt_Precision=0
iDebug=0
[Tonemap.fx]
Bleach=0.000000
Defog=0.000000
Exposure=0.000000
FogColor=0.000000,0.000000,1.000000
Gamma=0.775000
Saturation=0.000000
[CAS.fx]
Contrast=0.500000
Sharpening=0.750000

9
EXE/ReShade_LICENSE.txt Normal file
View File

@@ -0,0 +1,9 @@
Copyright 2014 Patrick Mours. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

BIN
EXE/Territory.dll Normal file

Binary file not shown.

14
EXE/Territory_readme.txt Normal file
View File

@@ -0,0 +1,14 @@
TERRITORY by Jason Hood
Version 1.02
Territory allows customization of the message displayed when entering a system,
and the Houses on the Nav Map. To use it, copy TERRITORY.DLL to the EXE
directory and add it to the [Libraries] section of EXE\dacom.ini. Then copy
TERRITORY.INI to the DATA\UNIVERSE directory and edit it as required. Please
read the start of TERRITORY.CPP for the description of its format.
Jason Hood, 21 February, 2014.
http://freelancer.adoxa.vze.com/

BIN
EXE/TurretZoom.dll Normal file

Binary file not shown.

70
EXE/TurretZoom_readme.txt Normal file
View File

@@ -0,0 +1,70 @@
Turret Zoom
by Jason Hood
Version 1.41
Turret Zoom is a plugin that lets you adjust the Turret View camera using the
mouse wheel. To install it, copy TURRETZOOM.DLL to Freelancer's EXE directory
and add it to the [Libraries] section of EXE\dacom.ini.
The default behavior is to adjust the "z" position of the camera, providing a
zoom in (wheel down) and out (wheel up) feature. It will scale the current
value, by 1.5 up to 5K, then by 1.1. Use the modifiers for additional control:
Shift move by 10K
Ctrl move by 1K
Alt move by 100
Shift+Ctrl move by 10
Ctrl+Alt move by 1
Zooming in causes the camera to become quite sensitive. The speed is halved
every 10K, but can be fine-tuned by holding Shift+Ctrl+Alt and moving the wheel
down (halve the speed) or up (double it).
Holding Shift+Alt and moving the wheel down will switch to "y" mode (moving the
wheel up will go back to "z"). In "y" mode, the camera will move up and down
with the wheel.
The current values are saved when you enter Turret View and restored on exit.
However, this means if there is a situation where the view is reset without
actually exiting Turret View, those values will become default. Should that
occur, a new launch/load/select will restore the original values.
=======
Options
=======
Strings can be added after the DLL in dacom.ini to customize the values (shown
with their default):
fast immediate movement (like previous versions)
inverse reverse wheel direction (movement only)
max=200000 maximum distance to move
shift=10000 Shift movement
ctrl=1000 Ctrl movement
alt=100 Alt movement
s+c=10 Shift+Ctrl movement
c+a=1 Ctrl+Alt movement
small=1.1 small move factor
large=1.5 large move factor
switch=5000 distance to switch from large to small
adjust=0.5 zoom in camera speed adjust factor
interval=10000 interval to adjust camera speed
For example:
TurretZoom.dll inverse max=20000 switch=0
will cause wheel up to zoom in; move the camera no further than 20K; and always
use the small factor. There is a chance this may not work on your system, in
which case the options can be patched directly into the DLL (which will also
override the dacom.ini options). Open TurretZoom.dll in your hex editor and go
to hex offset 30C0, then just write in the options you want. However, this
method requires adding a space before the equal sign ("max = 20000").
================================
Jason Hood, 5 June, 2011.
http://freelancer.adoxa.cjb.net/

BIN
EXE/WheelScroll.dll Normal file

Binary file not shown.

BIN
EXE/Zone.dll Normal file

Binary file not shown.

BIN
EXE/alchemy.dll Normal file

Binary file not shown.

BIN
EXE/backgroundpattern.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
EXE/common.dll Normal file

Binary file not shown.

BIN
EXE/dacom.dll Normal file

Binary file not shown.

177
EXE/dacom.ini Normal file
View File

@@ -0,0 +1,177 @@
@include FL_Dev.ini
[DACOM]
IgnoreDACOMEnv = true
DllPath = .\
[Libraries]
;;;dosfile.dll
ReadFile.dll ;optimized read-only version of dosfile.dll
x86math.dll
EngBase.dll
system.dll
RP8.dll
SoundStreamer.dll
SoundManager.dll
Deformable2.dll
Thorn.dll
Shading.dll
RendComp.dll
alchemy.dll
ximage.dll
flmaterials.dll
jflp.dll ; Jason's Freelancer Patch
DelayDisplay.dll
HudShift.dll
MP3codec.dll
MPRep.dll
numeric.dll
ranks.dll
storyfactions.dll
Territory.dll
TurretZoom.dll max=1000 shift=100 ctrl=10 alt=2 s+c=0.2 c+a=0.1 switch=50 interval=250 adjust=0.85
MultiIntro.dll
flplusplus.dll
WheelScroll.dll
Zone.dll
HUDless.dll
HudFacility.dll
HudTarget.dll
HudStatus.dll
;REM
REM-Client.dll
MinHook.x86.dll
;;EMAURER now include any DLLs used only in development.
@include FL_DevOnlyLibs.ini
[System]
VMeshLibrary
DirectX8 ; implements IID_IRenderPipeline, IID_IVertexBuffer under dx8
SoundManager
SoundStreamer
TextureLibrary
MaterialAnimation
MaterialBatcher
Alchemy
FxRuntime
[Engine]
Animation
Hardpoint
Deformable
RenderManager
FLAppearance
VMeshWire
[RenderManager]
VMesh
TriMesh ; keep trimesh above sphere mesh --
SphereMesh ; subsystems attempt to create objects in order listed
[TriMesh]
tristrips = 0
[RenderPipeline]
MGSDB= FLConfigDatabase.txt
;DEVICE_GAMMA = false ; forces gamma control off
;TEXTURE_ALLOW_DXT = false ; forces dxtn support off
ALPHAREF = 0 ; d3drenderstate: default alpha ref
ALPHATESTENABLE = true ; d3drenderstate: basic alpha test
ALPHAFUNC = 5 ; d3drenderstate: D3DCMP_GREATER
LOCALVIEWER = false ; d3drenderstate: specular highlights
zfunc = 4 ; default z compare func is D3DCMP_LESSEQUAL
;FPU_PRESERVE = false ; should Direct3D save and restore the FPU state every time it needs to modify the FPU state.
;MULTITHREADED = false ; request multithread-safe behavior. This causes Direct3D to take the global critical section more frequently.
; vertex processing flags are mutually exclusive
; regardless of what the user asks for if the device cant support hw-tl the user gets sw-tl
HARDWARE_VERTEXPROCESSING= true
;MIXED_VERTEXPROCESSING= true
;SOFTWARE_VERTEXPROCESSING= true
;LOCAKABLE_BACKBUFFER= false ; should the device allow the backbuffer to be locked
USE_SYSLOCK= false ; should resources (vb, ib, texture) take a windows wide critical lock when in use
HANDLE_SWAPLOSS= false ; should rp attempt to handle device loss internally?
; a poor substitute for app-side management but makes tool building easier
;VIEWSPACE_LIGHTS = false
;TEXTURE_CUBEMAPS = false
[;TextureLibrary]
;(TEXTURE_LOD_LOAD_MIN= 128) while this would work for other apps, Freelancer's perfoptions.ini will override whatever setting this has.
[SoundManager]
;HEADPHONES 1, STERO 2, QUAD 7, SURROUND 8
;speakerConfiguration = 2 ;set only if you want to override Windows setting
createAll2dInSoftware = true
3D_SW_Algorithm = Light
use2DHW = true
use3DHW = true
maxSoundChannels = 24 ; was 30. changed for Beta -psw
;pci - force HW mixing until Library default is changed
FORCE_FREQ_CONTROL_TO_SW = false
max3DPan = 15
[Alchemy]
;EMAURER added this line to fix problem with runtime alchemy running out of vertex buffer
;maxVertices and maxIndices are now determined by alchemy based on the particle pools
;Alchemy.maxVertices ~= 11100
;Alchemy.maxIndices ~= 28200
Alchemy.useMaterialBatcher = false
; (note: 1000 is default poolsize)
FxBasicAppearance.poolSize = 10000 ; each particle can generate: 4 verts 6, indices
FxRectAppearance.poolSize = 4000 ; each particle can generate: 4 verts 6, indices
FxPerpAppearance.poolSize = 2500 ; each particle can generate: 4 verts 6, indices
FxOrientedAppearance.poolSize = 1000 ; each particle can generate: 4 verts 6, indices
FLBeamAppearance.poolSize = 6800 ; custom app from flalchemy.dll: each particle can generate: 5 verts 24 indices
FLDustAppearance.poolSize = 2500 ; custom app from flalchemy.dll: each particle can generate: 4 verts 6 indices
;---------------------- total = 26000 -------;
;
FxMeshAppearance.poolSize = 5000 ; generates meshes not particles; need enough of these for all tradelane rings in a system.
FxParticleAppearance.poolSize = 1000 ; generates effects not particles
[BatchedMaterials]
Type = .*OcOt
[MaterialMap] ; evaluation of material map happens in reverse order listed so put more specific last
; -------- da standard maps ------------------------
DcDtEtTwo = DcDtEt ; jhood: spew complained about Two, so map it
EcEtOcOt= DcDtOcOt ; EMAURER: exporter generates EcEtOcOt but there is no implementation of it right now.
DcDtEcEt= DcDtEt ; STRAVIS: should already be happening but the exporters dont seem to be making the conversion
; -------- freelancer specific maps: from dalibs\shading.dll ------------------------
name = ^alpha_mask.* = DcDt ; these are materials that would otherwise get mapped to translucent textures and batched
name = ^alpha_mask.*2side = DcDtTwo ; we arent using alpha for blending -- just for masking
name = ^detailmap_.* = BtDetailMapMaterial
name = ^tlr_material$ = NebulaTwo
name = ^tlr_energy$ = NebulaTwo
; -------- freelancer materials: from flmaterials.dll -----------------
;name = ^nomad.*$ = NomadMaterial ---> this must be commented out
name = ^nomad.*$ = NomadMaterialNoBendy
name = ^n-texture.*$ = NomadMaterialNoBendy
name = ^ui_.* = HUDIconMaterial
name = ^exclusion_.* = ExclusionZoneMaterial
Name= ^c_glass$ = HighGlassMaterial
Name= ^cv_glass$ = HighGlassMaterial
Name= ^b_glass$ = HighGlassMaterial
Name= ^k_glass$ = HighGlassMaterial
Name= ^l_glass$ = HighGlassMaterial
Name= ^r_glass$ = HighGlassMaterial
Name = ^planet.*_glass$ = GFGlassMaterial
Name = ^bw_glass$ = HighGlassMaterial
Name = ^o_glass$ = HighGlassMaterial
Name = ^anim_hud.*$ = HUDAnimMaterial
name = ^sea_anim.*$ = PlanetWaterMaterial
Name = ^null$ = NullMaterial

30
EXE/dacomsrv.ini Normal file
View File

@@ -0,0 +1,30 @@
@include FL_Dev.ini
[DACOM]
IgnoreDACOMEnv = true
DllPath = .\
[Libraries]
readfile.dll
engbase.dll
x86math.dll
rendcomp.dll
system.dll
Thorn.dll
DebugLib.dll
rp8.dll
shading.dll
[System]
DirectX8
MaterialLibrary
TextureLibrary
[Engine]
Animation
Hardpoint
RenderManager
[RenderManager]
SphereMesh
TriMesh

BIN
EXE/debuglib.dll Normal file

Binary file not shown.

BIN
EXE/deformable2.dll Normal file

Binary file not shown.

349
EXE/dgVoodoo.conf Normal file
View File

@@ -0,0 +1,349 @@
;==========================================================================
; === Text based config file for dgVoodoo2
; === Use this file if you are a game modder/hacker or an experted user and
; want to modify some advanced properties not available via the CPL.
;==========================================================================
Version = 0x282
;--------------------------------------------------------------------------
[General]
; OutputAPI: "d3d11warp", "d3d11_fl10_0", "d3d11_fl10_1", "d3d11_fl11_0",
; "d3d12_fl11_0", "d3d12_fl12_0", "bestavailable"
; Adapters: "all", or the ordinal of the adapter (1, ...)
;FullScreenOutput: "default", or the ordinal of the output on the adapter (1, ...)
; ScalingMode: "unspecified", "centered", "stretched", "centered_ar", "stretched_ar", "stretched_ar_crt",
; "stretched_4_3", "stretched_4_3_crt", "stretched_4_3_c64"
;
;InheritColorProfileInFullScreenMode:
; Enabled by default and can only be disabled only when a D3D11 output API
; is explicitly selected. Disabled case is intended for avoiding extra
; rendering resources on old hardware for better performance, if required.
OutputAPI = bestavailable
Adapters = all
FullScreenOutput = default
FullScreenMode = true
ScalingMode = unspecified
ProgressiveScanlineOrder = false
EnumerateRefreshRates = false
Brightness = 100
Color = 100
Contrast = 100
InheritColorProfileInFullScreenMode = true
KeepWindowAspectRatio = true
CaptureMouse = true
CenterAppWindow = false
;--------------------------------------------------------------------------
[GeneralExt]
; DesktopResolution: Desktop (native) resolution can be forced for dgVoodoo's internal calculations.
; Useful for rare applications that pre-set the desktop to other than the native
; resolution before dgVoodoo gets in action. Only the compact format can be used here,
; and applies to all outputs of the desktop.
; DesktopBitDepth: You can define what screen bit depth should be reported through dgVoodoo
; (8, 16, 32)
; DeframerSize: When resolution is forced to other than the app default then
; a black frame is drawn around the output image coming from a wrapped API
; to remove scaling artifacts -
; frame thickness can be defined in pixels (max 16, 0 = disable)
; ImageScaleFactor: Integer factor for scaling the output image coming from a wrapped API
; Always done by nearest point filtering, independent on scaling mode
; (0 = max available)
; Separate factors can be defined for horizontal and vertical scaling
; by subproperties, e.g.
; ImageScaleFactor = x:3, y:2
; CursorScaleFactor: Integer factor for scaling the emulated hardware mouse (max 16)
; (0 = automatic, 1 = no scale, 2 = double scale, ...)
; DisplayROI: Display region of interest
; If scaling is done by the dgVoodoo then you can define a subrect of the
; output image, coming from a wrapped API, to be displayed. The defined subrect
; is mapped to the display output according to the current scaling mode
; It can be useful for applications rendering a widescreen subimage into a 4:3
; resolution; in this case you can scale up that subimage to (nearly) fill the
; whole screen on a widescreen monitor.
; DisplayROI empty value means the whole image.
; DisplayROI value can be a proportion in form of %d_%d or a pixel size (%d|%d)
; Pos subproperty is not mandatory and can be 'centered' or a pixel position (%d|%d)
; Examples: DisplayROI = 16_9, pos:centered
; DisplayROI = (320|200), pos:(10|10)
; Resampling: When scaling is done by the dgVoodoo for the given scaling mode,
; you can choose which filter is to be used for resampling the output image
; Available filters are: "pointsampled", "bilinear", "bicubic", "lanczos-2", "lanczos-3"
; PresentationModel: Low-level swapchain swap effect: if you know what you are doing then it can be
; overridden here. Flip models are better suited for modern OS features like auto HDR,
; while plain legacy models provide the best presentation performance under ideal conditions
; Not all model + output API + OS version combinations are supported.
; "auto", "discard", "seq", "flip_discard", "flip_seq"
; ColorSpace: Color space of the swap chain:
; "appdriven" - an application can choose argb2101010 through D3D9, but it means
; the legacy argb8888_srgb in any other case
; "argb8888_srgb" - Legacy 32 bit output for SDR displays
; "argb2101010_sdr" - 32 bit extended precision for SDR displays
; "argb2101010_sdr_wcg" - Wide Color Gamut format for SDR displays (available from Windows 11 22H2)
; "argb16161616_hdr" - Float16 HDR output (available from Windows 10 1709)
; FreeMouse: If true then physical mouse is free to move inside the game window
; when using emulated scaling and/or application and forced resolution
; differs; can be useful when a game relies on the physical window size
; WindowedAttributes: You can define attributes for forced windowed appearance (separated by commas):
; "borderless" - forces the app window not have any border
; "alwaysontop" - forces the app window into the top-most band
; "fullscreensize" - forces the app window to be full screen size with image scaling inside
; FullscreenAttributes: You can define attributes for fullscreen appearance (separated by commas):
; "fake" - forces fake fullscreen mode with a screen-size window
; FPSLimit: An integer or rational (fractional) value, 0 = unlimited
; Environment: Software environment in which dgVoodoo is running: can be left unspecified (native)
; or can be set to 'DosBox' or 'QEmu'.
; SystemHookFlags: You can define which part of the system should be hooked (x86-DX only):
; "gdi" - for showing graphical contents rendered through GDI
; (like movie playback through the ancient Windows Multimedia AVI player library)
; "cursor" - for suppressing double-cursor symptoms when the cursor is emulated
DesktopResolution =
DesktopBitDepth =
DeframerSize = 1
ImageScaleFactor = 1
CursorScaleFactor = 0
DisplayROI =
Resampling = bilinear
PresentationModel = auto
ColorSpace = appdriven
FreeMouse = false
WindowedAttributes =
FullscreenAttributes =
FPSLimit = 0
Environment =
SystemHookFlags =
;--------------------------------------------------------------------------
[Glide]
; VideoCard: "voodoo_graphics", "voodoo_rush", "voodoo_2", "voodoo_banshee", "other_greater"
; OnboardRAM: in MBs
; MemorySizeOfTMU: in kBs
; TMUFiltering: "appdriven", "pointsampled", "bilinear"
;
; Resolution: either "unforced", "max", "max_isf", "max_fhd", "max_fhd_isf", "max_qhd", "max_qhd_isf", "desktop", "%dx",
; "max_%dx", "max_isf_%dx", "max_fhd_%dx", "max_fhd_isf_%d"x, "max_qhd_%dx", "max_qhd_isf_%dx", "desktop_%dx"
; or subproperties: h: horizontal, v: vertical
; + optional subproperty refrate: refresh rate in Hz
; e.g. Resolution = max, refrate:60
; Resolution = 2x, refrate:59
; Resolution = h:1280, v:1024, refrate:75
; Resolution = max_2x
; or just use the compact form like "1024x768@60" or "512x384"
;
;Antialiasing: "off", "appdriven", "2x", "4x", "8x", "16x" (your GPU must support the chosen one)
VideoCard = voodoo_2
OnboardRAM = 12
MemorySizeOfTMU = 4096
NumberOfTMUs = 2
TMUFiltering = bilinear
DisableMipmapping = false
Resolution = unforced
Antialiasing = 8x
EnableGlideGammaRamp = true
ForceVerticalSync = false
ForceEmulatingTruePCIAccess = false
16BitDepthBuffer = false
3DfxWatermark = false
3DfxSplashScreen = false
PointcastPalette = false
EnableInactiveAppState = false
;--------------------------------------------------------------------------
[GlideExt]
; DitheringEffect: "pure32bit", "dither2x2", "dither4x4"
; Dithering: "disabled", "appdriven", "forcealways"
; DitherOrderedMatrixSizeScale: integer scale value for dither matrix size
; 1 = normal, 2 = double size, etc.
; 0 = automatic (the aim is to have some retro feel&look)
DitheringEffect = pure32bit
Dithering = forcealways
DitherOrderedMatrixSizeScale = 0
;--------------------------------------------------------------------------
[DirectX]
; VideoCard: "svga", "internal3D", "geforce_ti_4800", "ati_radeon_8500",
; "matrox_parhelia-512", "geforce_fx_5700_ultra", "geforce_9800_gt"
; VRAM: in MBs (default) or in GBs (e.g. VRAM = 2GB)
; Filtering: "appdriven", "pointsampled", "bilinear", "pointmip", "linearmip", "trilinear"
; or the integer value of an anisotropic filtering level (1-16)
; Mipmapping: "appdriven", "disabled", "autogen_point", "autogen_bilinear"
; KeepFilterIfPointSampled: if enabled then forced filtering affects only non-point sampled textures
; Bilinear2DOperations: if enabled then DirectDraw Blit and CPU-written data is transferred with bilinear scaling
DisableAndPassThru = false
VideoCard = internal3D
VRAM = 4096
Filtering = 16
Mipmapping = autogen_bilinear
KeepFilterIfPointSampled = false
Resolution = unforced
Antialiasing = 8x
AppControlledScreenMode = true
DisableAltEnterToToggleScreenMode = true
Bilinear2DOperations = false
PhongShadingWhenPossible = false
ForceVerticalSync = false
dgVoodooWatermark = false
FastVideoMemoryAccess = false
;--------------------------------------------------------------------------
[DirectXExt]
; AdapterIDType: "nvidia", "amd", "intel" or leave it undefined
; You can define what type of driver version and vendor id's the wrapper should report to
; the application; Some games rely on that information so it can be useful for them
; Can be defined only for SVGA and Internal3D card types; the others have their own wired
; information
; VendorID, DeviceID, SubsystemID, RevisionID:
; Can be defined only for SVGA and Internal3D card types
; You can overwrite these properties even if a non-default AdapterIDType is defined;
; say, you defined an nvidia id type but would like to refine the vendor id
; DefaultEnumeratedResolutions: you can define what resolutions should be enumerated to the application by default
; "all", "classics", "none"
; ExtraEnumeratedResolutions: you can add extra resolutions (separated by commas, max 16) that will get
; enumerated to the application as display adapter supported ones -
; can be useful if an app supports rendering at arbitrary resolutions
; and you have a particular favorite resolution that are not
; enumerated to the application by default
; you can either use the compact resolution format here, or
; "max", "max@refrate" meaning your desktop resolution with a potential refresh rate, or
; "max_4_3", "max_4_3@refrate", "max_16_9", "max_16_9@refrate"
; meaning the maximum resolution with the given aspect ratio calculated from
; the desktop resolution with the given refresh rate, e.g. "max_4_3@60", "max_16_9"
; EnumeratedResolutionBitdepths: you can filter what bitdepths are included in the resolution enumeration
; any subset of {"8", "16", "32"}, or "all"
; DitheringEffect: "high_quality", "ordered2x2", "ordered4x4"
; Dithering: "disabled", "appdriven", "forceon16bit", "forcealways"
; DitherOrderedMatrixSizeScale: integer scale value for dither matrix size
; 1 = normal, 2 = double size, etc.
; 0 = automatic
; DepthBuffersBitDepth: internal bit depth of depth/stencil buffers for 3D rendering (32 bit is not recommended)
; "appdriven", "forcemin24bit", "force32bit"
; Default3DRenderFormat: default format of 3D rendering
; "auto", "argb8888", "argb2101010", "argb16161616"
; auto corresponds to the selected color space
; argb2101010 has the benefit that it is still 32 bit but it can corrupt the rendering
; because of the lowered alpha bits, not recommended
; MaxVSConstRegisters: Max number of vertex shader constant registers (DX8/9 only)
; Can be defined only for SVGA and Internal3D card types
; Valid values are 256 (default), 512 or 1024
; NPatchTesselationLevel: Force N-Patch tesselation level (D3D8/9)
; 0 = app driven
; 1 = disable
; 2 to 8 = a forced tesselation level
; Altough tesselation works with all vertex shader versions, you can force level higher than 1
; only for the fixed function or vs.1.x vertex pipeline because of performance and practical reasons
; (forced tesselation also disables adaptive mode (D3D9), but forcing is not recommended at all, anyway)
; DisplayOutputEnableMask: Each bit in this 32 bit value corresponds to a display output. Display outputs of the adapters are numbered
; sequentially. If Adapter0 has n display outputs and Adapter1 has m display outputs attached then the lowest
; n bits match Adapter0 display outputs, the next m bits match Adapter1 outputs, and so on. The lowest bit
; in a group corresponds to Output0. If a bit value is 0 then the display output is disabled for the device
; enumeration, in other words, it is invisible to the application. It can be useful for D3D9 multihead-
; or very special applications where you want to enable only individual displays on your monitor wall.
; MSD3DDeviceNames: if true then original Microsoft D3D device names are exposed
; (some applications check for them and they fail)
; RTTexturesForceScaleAndMSAA: if true then forced resolution scaling and MSAA is
; applied also to rendertarget textures
; Set it to false for games requiring pixel-precise rendering
; but be careful it can EASILY break certain things, not recommended
; SmoothedDepthSampling: if true then extra smoothing is added to depth textures
; when they are sampled
; DeferredScreenModeSwitch: If true the switching to full screen is deferred after the application initialized
; the DirectX device; can be useful for games that don't expect rendering window changes
; during initialization and crash
; PrimarySurfaceBatchedUpdate: If true then direct changes of the primary surface are batched together for presenting them
; If false then each change is instantly presented (debug-like mode)
; SuppressAMDBlacklist: Some AMD GPU models are blacklisted to workaround the solid-color-textures driver issue
; You can suppress it to check out if the problem is fixed in your current driver
AdapterIDType =
VendorID =
DeviceID =
SubsystemID =
RevisionID =
DefaultEnumeratedResolutions = all
ExtraEnumeratedResolutions =
EnumeratedResolutionBitdepths = all
DitheringEffect = high_quality
Dithering = forcealways
DitherOrderedMatrixSizeScale = 0
DepthBuffersBitDepth = appdriven
Default3DRenderFormat = auto
MaxVSConstRegisters = 256
NPatchTesselationLevel = 0
DisplayOutputEnableMask = 0xffffffff
MSD3DDeviceNames = false
RTTexturesForceScaleAndMSAA = true
SmoothedDepthSampling = true
DeferredScreenModeSwitch = false
PrimarySurfaceBatchedUpdate = false
SuppressAMDBlacklist = false
;--------------------------------------------------------------------------
[Debug]
; This section affects only debug/spec release builds
;
; Info, Warning, Error
; "Disable" - disables all messages and debugger break
; "Enable" - enables messages and disables debugger break
; "EnableBreak" - enables both messages and breaking into debugger
;
; MaxTraceLevel: Maximum level of tracing API calls
; 0 - Disable
; 1 - API Functions and methods
; 2 - Additional trace info for internals
;
; LogToFile: if false or debugger is detected then output goes to the debug output
; if true and no debugger detected then output goes to 'dgVoodoo.log'
; (not implemented yet, always the default debug output is used)
Info = enable
Warning = enable
Error = enable
MaxTraceLevel = 0
;LogToFile = false

BIN
EXE/dgVoodooCpl.exe Normal file

Binary file not shown.

2
EXE/dgVoodooReadme.url Normal file
View File

@@ -0,0 +1,2 @@
[InternetShortcut]
URL=http://dege.fw.hu/dgVoodoo2/ReadmeGeneral/

View File

@@ -0,0 +1,2 @@
[InternetShortcut]
URL=http://dege.fw.hu/dgVoodoo2/ReadmeDirectX/

BIN
EXE/dinput8.dll Normal file

Binary file not shown.

BIN
EXE/dw15.exe Normal file

Binary file not shown.

BIN
EXE/dxgi.dll Normal file

Binary file not shown.

BIN
EXE/ebueula.dll Normal file

Binary file not shown.

BIN
EXE/engbase.dll Normal file

Binary file not shown.

BIN
EXE/equipresources.dll Normal file

Binary file not shown.

1123
EXE/flconfigdatabase.txt Normal file

File diff suppressed because it is too large Load Diff

77
EXE/fldirectip.hta Normal file
View File

@@ -0,0 +1,77 @@
<HTML>
<!-- Jan 30, 2003 -->
<HEAD>
<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
<HTA:APPLICATION
ID="oHTA"
APPLICATIONNAME="MyFLMPKey"
SINGLEINSTANCE="yes"
CONTEXTMENU="no"
MAXIMIZEBUTTON="no"
>
<SCRIPT language="VBScript">
On Error Resume Next
Sub window_OnLoad
window.resizeto 600, 450
IPADDRESS.focus()
PORT.value = "2302"
End Sub
Sub ADDSERVER_OnClick
if (PORT.value = "") then PORT.value = "2302"
FLOPTIONS.innerText = FLOPTIONS.innerText & " -s" & IPADDRESS.value & ":" & PORT.value
IPADDRESS.value = ""
PORT.value = "2302"
IPADDRESS.focus()
End Sub
Sub LAUNCH_OnClick
Set WS=CreateObject("Wscript.Shell")
On Error Resume Next
regAppKey="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games\Freelancer\1.0\"
appPath=WS.RegRead(regAppKey&"AppPath")
If Err Then
Err=false
'Assume the current directory
appPath="Freelancer.exe"
Else
'Put in the rest of the path
appPath=""""&appPath&"\EXE\Freelancer.exe"""
End If
result=WS.Run(appPath & FLOPTIONS.innerText, 1, 0)
Set WS=Nothing
Window.close()
End Sub
</SCRIPT>
<title>Direct Freelancer Server Connection</title>
</HEAD>
<BODY BACKGROUND="BackgroundPattern.bmp" style="color: #87C3E0; font-family: Agency FB" SCROLL="no">
<font color="#87C3E0">
<H1 align="center" ID="HEADER">Connect to a <I>Freelancer</I> Server via IP Address</H1>
<p>
This feature allows you to connect to a Freelancer server without having to connect to the global server.
This is useful for when the server admin does not want to advertise the server to the rest of the Internet,
or when the global server is down.
</p>
<p>
To add an IP address and port to the list: enter the address and port below, then click the "Add Server" button.
</p>
<p>
Once you have entered all of the IP addresses you want, click the "Launch Freelancer" button.
</p>
<table align=center>
<tr><td align="right">IP Address:</td><td><INPUT type="text" ID="IPADDRESS" NAME="IPADDRESS"/></td></tr>
<tr><td align="right">Port:</td><td><INPUT type="text" ID="PORT" NAME="PORT"/></td></tr>
</table>
<p align="center">
<BUTTON id="ADDSERVER">Add Server</BUTTON>
</p>
<p>
Command line: Freelancer.exe <b id="FLOPTIONS"></b>
</p>
<p align="center">
<BUTTON id="LAUNCH">Launch Freelancer</BUTTON>
</p>
</font>
</BODY>
</HTML>

BIN
EXE/flmaterials.dll Normal file

Binary file not shown.

BIN
EXE/flplusplus.dll Normal file

Binary file not shown.

19
EXE/flplusplus.ini Normal file
View File

@@ -0,0 +1,19 @@
; Settings file for flplusplus
[flplusplus]
; Multiplier for render distance and the distance at which LODs are switched.
; Supports decimal values
; 0 = maximized
; 1 = no change from vanilla Freelancer
; 2 = Double render distance & LOD switch threshold
; 3.5 = 3.5x render distance & LOD switch threshold, etc.
lod_scale = 0
; save_folder_name
; Name of the save folder in Documents/My Games
save_folder_name = Freelancer
; save_in_directory
; if true, save in the game directory (EXE/../SAVE) instead of Documents/My Games
save_in_directory = false
; Patch out "Failed to get start location" warning
remove_start_location_warning = true
; Log spew to stdout (not too useful on Windows)
log_to_console = false

View File

@@ -0,0 +1,11 @@
Copyright 2020 Callum McGing, flplusplus contributors
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

BIN
EXE/flserver.exe Normal file

Binary file not shown.

236
EXE/freelancer.ini Normal file
View File

@@ -0,0 +1,236 @@
;
; FreeLancer - game configuration file
;
[Freelancer]
data path = ..\data
local_server = rpclocal.dll
initial_world = InitialWorld.ini ;relative to Data path
AppGUID = {A690F026-26F0-4e57-ACA0-ECF868E48D21}
[Startup]
;movie_file = movies\MGS_Logo_Final.wmv
;movie_file = movies\DA_Logo_Final.wmv
;movie_file = movies\FL_Intro.wmv
[ListServer]
;;;hostname = localhost ;Your local machine
;;;hostname = FLListServer2.dns.corp.microsoft.com ;GUN server in Austin
;;;hostname = 131.107.135.190 ;GUN server in Redmond
;;;hostname = fllistserver.zone.msn.com ;GUN server in Redmond (DNS entry)
hostname = gun.rem-freelancer.moe ;Alternative GUN server gun.fllistserver.com
port = 2300
[Server]
;name = M9Universe
;description = My cool Freelancer server
death_penalty = 100 ; percentage of your cargo (commoditied and unmounted equipment) lost at death in MP
[Initial MP DLLs]
path = ..\dlls\bin
DLL = Content.dll, GameSupport, HIGHEST
; required to operate gates and docks
; required to create ships in space
DLL = Content.dll, SpaceSupport, NORMAL
DLL = Content.dll, BaseSupport, NORMAL
DLL = Content.dll, SpacePop, LOWEST ;populator
DLL = Content.dll, AISandbox, BELOW_NORMAL
DLL = Content.dll, TestAutomation, BELOW_NORMAL
DLL = Content.dll, BasePop, LOWEST
[Initial SP DLLs]
path = ..\dlls\bin
DLL = Content.dll, GameSupport, HIGHEST
; required to operate gates and docks
; required to create ships in space
DLL = Content.dll, SpaceSupport, NORMAL
DLL = Content.dll, BaseSupport, NORMAL
DLL = Content.dll, StoryLauncher, BELOW_NORMAL ;story/static missions
DLL = Content.dll, SpacePop, LOWEST ;populator
DLL = Content.dll, AISandbox, BELOW_NORMAL
DLL = Content.dll, TestAutomation, BELOW_NORMAL
DLL = Content.dll, BasePop, LOWEST
DLL = callsign.dll, player 1 1-1
[Resources]
DLL = InfoCards.dll ; Contains all infocard text resources
DLL = MiscText.dll ; Contains other bulk text resource: rumor, offer, and mission text
DLL = NameResources.dll ; Contains names of things, primarily.
DLL = EquipResources.dll ;Contains names of equipment (in string table) and infocards for equipment (in HTML resources)
DLL = OfferBribeResources.dll ; Contains random mission offers and bribes
DLL = MiscTextInfo2.dll ;Contains MP UI elements as well as other misc. text
[Data]
;;; ************************************************************************
;;; SNICHOLS: There is a multi-player optimization that has been made to
;;; the archetype system. This optimization allows archetype-holding packets
;;; to store those values in 16 bits instead of 32 bits. It is vital that
;;; the order of shared archetype initialization is kept in sync between
;;; the client and server. This must be verified before releasing any patch
;;; without increasing the "build number". Otherwise, unpredictable results
;;; will occur.
;;; ************************************************************************
;EMAURER must load solar archetypes before universe. Universe inspects solar OBJECT_TYPE values.
solar = solar\solararch.ini
universe = universe\universe.ini
constants = constants.ini ;constant variables
fonts = fonts\fonts.ini
rich_fonts = fonts\rich_fonts.ini
sounds = audio\ambience_sounds.ini ;sound-effects (NOT music) for exterior map locations, regions, areas and solar objects
sounds = audio\sounds.ini ;all sfx not falling into some other category
sounds = audio\engine_sounds.ini ;engine sounds only
sounds = audio\interface_sounds.ini
sounds = audio\music.ini
sounds = audio\story_sounds.ini ;dialogue for the story (except for news broadcasts)
sounds = audio\gf_sounds.ini ;sound-effects for gameflow - bases, rooms etc.
; sounds = audio\news_sounds.ini ;dialogue for news broadcasts - re-usable PLUS story CUT on 20021211 MG
voices = audio\voices_space_male.ini ;dialogue for male NPCs in space (all re-usable)
voices = audio\voices_space_female.ini ;dialogue for female NPCs in space (all re-usable)
voices = audio\voices_base_male.ini ;dialogue for male NPCs on bases (all re-usable)
voices = audio\voices_base_female.ini ;dialogue for female NPCs on bases (all re-usable)
voices = audio\voices_recognizable.ini ;all the main characters<72> voice profiles (re-usable dialogue only) (must be read in before mission-specific lines)
voices = audio\voices_mission01.ini ;dialogue specific to mission 01 (story & special supporting characters only - no reusable dialogue)
voices = audio\voices_mission02.ini ;dialogue specific to mission 02 (story & special supporting characters only - no reusable dialogue)
voices = audio\voices_mission03.ini ;dialogue specific to mission 03 (story & special supporting characters only - no reusable dialogue)
voices = audio\voices_mission04.ini ;dialogue specific to mission 04 (story & special supporting characters only - no reusable dialogue)
voices = audio\voices_mission05.ini ;dialogue specific to mission 05 (story & special supporting characters only - no reusable dialogue)
voices = audio\voices_mission06.ini ;dialogue specific to mission 06 (story & special supporting characters only - no reusable dialogue)
voices = audio\voices_mission07.ini ;dialogue specific to mission 07 (story & special supporting characters only - no reusable dialogue)
voices = audio\voices_mission08.ini ;dialogue specific to mission 08 (story & special supporting characters only - no reusable dialogue)
voices = audio\voices_mission09.ini ;dialogue specific to mission 09 (story & special supporting characters only - no reusable dialogue)
voices = audio\voices_mission10.ini ;dialogue specific to mission 10 (story & special supporting characters only - no reusable dialogue)
voices = audio\voices_mission11.ini ;dialogue specific to mission 11 (story & special supporting characters only - no reusable dialogue)
voices = audio\voices_mission12.ini ;dialogue specific to mission 12 (story & special supporting characters only - no reusable dialogue)
voices = audio\voices_mission13.ini ;dialogue specific to mission 13 (story & special supporting characters only - no reusable dialogue)
; voices = audio\voices_tutorial.ini ;dialogue specific to tutorial CUT on 20021211 MG
explosions = fx\explosions.ini
debris = fx\explosions.ini
asteroids = solar\asteroidarch.ini
equipment = equipment\light_equip.ini
equipment = equipment\select_equip.ini
equipment = equipment\misc_equip.ini
equipment = equipment\engine_equip.ini
equipment = equipment\ST_equip.ini
equipment = equipment\weapon_equip.ini
equipment = equipment\prop_equip.ini
ships = ships\shiparch.ini
ships = ships\rtc_shiparch.ini
goods = equipment\goods.ini
goods = equipment\engine_good.ini
goods = equipment\misc_good.ini
goods = equipment\st_good.ini
goods = equipment\weapon_good.ini
loadouts = ships\loadouts.ini
loadouts = ships\loadouts_special.ini
loadouts = ships\loadouts_utility.ini
loadouts = solar\loadouts.ini
bodyparts = characters\bodyparts.ini
costumes = characters\costumes.ini
PetalDB = PetalDB.ini
effects = fx\effect_types.ini ; needs to be before effects.ini
effects = fx\beam_effects.ini ; also needs to be before effects.ini
effects = fx\engines\engines_ale.ini
effects = fx\equipment\equipment_ale.ini
effects = fx\explosions\explosions_ale.ini
effects = fx\hull_hits\hull_hits_ale.ini
effects = fx\misc\misc_ale.ini
effects = fx\shields\shields_ale.ini
effects = fx\space\space_ale.ini
effects = fx\weapons\weapons_ale.ini
effects = fx\effects.ini
effects = fx\effects_explosion.ini
effect_shapes = fx\effect_shapes.ini
fuses = fx\fuse.ini
fuses = fx\fuse_br_battleship.ini
fuses = fx\fuse_br_destroyer.ini
fuses = fx\fuse_br_gunship.ini
fuses = fx\fuse_ku_battleship.ini
fuses = fx\fuse_ku_destroyer.ini
fuses = fx\fuse_ku_gunship.ini
fuses = fx\fuse_li_cruiser.ini
fuses = fx\fuse_li_dreadnought.ini
fuses = fx\fuse_rh_battleship.ini
fuses = fx\fuse_rh_cruiser.ini
fuses = fx\fuse_rh_gunship.ini
fuses = fx\fuse_or_osiris.ini
fuses = fx\fuse_transport.ini
fuses = fx\fuse_suprise_solar.ini
fuses = fx\fuse_freeport7.ini
intro = interface\intro.ini
gate_tunnels = fx\gate_tunnel.ini
groups = InitialWorld.ini
HUD = interface\hud.ini
jump_effect = fx\jumpeffect.ini
igraph = igraph.ini
; bases has no filename but the key specifies the load order
bases
markets = equipment\market_misc.ini
markets = equipment\market_ships.ini
markets = equipment\market_commodities.ini
NewCharDB = characters\NewCharacter.ini
WeaponModDB = equipment\WeaponModDB.ini
rtcslider = scripts\rtcslider.ini
[Error]
;EMAURER these four should remain as set.
log = $Window,65540 ; alert all asserts
log = $Window,-1,1 ; alert all errors (SEV_ERROR=1)
;EMAURER comment out lines below to vary the amount of output spew.
log = $Text, 65536, 5 ; 65536 means 'don't care' about kind value.
; 5 refers to TRACE_LEVEL_5. means report all messages
; with severity of 5 or less. lower the number, more severe
; the message. WARNINGS are at level 2. reduce for less spew.
;log = $Text, 'I' ; incoming packet transmission
;log = $Text, 'O' ; outgoing packet transmission
;log = $Text, 'i' ; instance creation related messages (mass, MOI, equip)
;log = $Text, 'r' ; significant attitude/reputation events (show results of AdjustAttitude calls)
;log = $Text, 'a' ; detailed info regarding loading/unloading of archetypes.
log = $Text, 'c' ; report server-side events sent to contollers
log = $Text, 'm' ; mission-generated messages
log = $Text, 's' ; log second thread activity
;log = $Text, 'f' ; report file opens/closes
;log = $Text, 'e' ; explosion/fuse messages
log = $Text, 'd' ; damage messages
log = $Text, 'A' ; reload console command messages
;----------------------------
; Error explanation
;
; log = where to display log message, kind of msg, severity of msg
; where: [no default]
; $window = popup dialog
; $text = debugger window
; filename = any filename
; kind: [default = -1]
; -1 // all kinds, distinguish display based on severity.
; ERR_RENDER ='R', // Render Pipeline
; ERR_NETWORK ='n', // SERVER.DLL
; ERR_WARN ='w', // minor general problems
; ERR_SPINST ='i', // instance creation messages
; ERR_REP ='r', // log significant attitude/reputation events
; ERR_ARCH ='a', // log unloads of archetypes.
; ERR_CTRL ='c', // log server-side events sent to contollers
; ERR_MISN ='m', // mission-generated messages
; ERR_ASYNC ='s', // log second thread activity
; ERR_FILEIO ='f', // print File open/close
; ERR_ASSERT = 65540 // asserts
; severity: [ default = all severities ]
; the lower the number the more severe
; SEV_FATAL = 0 // Unrecoverable errors
; SEV_ERROR = 1 // Recoverable errors
; SEV_WARNING = 2 // Conditions which may indicate a problem, but are handled
; SEV_NOTICE = 3 // Useful messages that are in release builds.
; SEV_TRACE_1 = 4 // Information useful for debugging or determining program flow
; SEV_TRACE_2..n = 5..n // Higher traces levels indicate more verbose information

BIN
EXE/gundll.dll Normal file

Binary file not shown.

BIN
EXE/imeui.dll Normal file

Binary file not shown.

BIN
EXE/infocards.dll Normal file

Binary file not shown.

BIN
EXE/jflp.dll Normal file

Binary file not shown.

BIN
EXE/luaprofile.dll Normal file

Binary file not shown.

BIN
EXE/misctext.dll Normal file

Binary file not shown.

BIN
EXE/misctextinfo2.dll Normal file

Binary file not shown.

BIN
EXE/movie.dll Normal file

Binary file not shown.

99
EXE/mpnewcharacter.fl Normal file
View File

@@ -0,0 +1,99 @@
[Player]
name = %%NAME%%
;initial_rep = %%FACTION%%
rank = 0
money = %%MONEY%%
;voice = %%VOICE%%
;All must be Trent!
voice = trent_voice
costume = %%BASE_COSTUME%%
com_costume = %%COMM_COSTUME%%
system = %%HOME_SYSTEM%%
base = %%HOME_BASE%%
house = 0.91, li_n_grp
house = 0.91, li_lsf_grp
house = 0.65, li_p_grp
house = 0, br_n_grp
house = 0, br_p_grp
house = 0, ku_n_grp
house = 0, ku_p_grp
house = 0, rh_n_grp
house = 0, rh_p_grp
house = 0, co_alg_grp
house = 0, co_be_grp
house = 0, br_m_grp
house = 0, co_nws_grp
house = 0, co_hsp_grp
house = 0.65, co_ic_grp
house = -0.3, co_khc_grp
house = -0.3, co_kt_grp
house = 0, rh_m_grp
house = 0.65, co_me_grp
house = 0.65, co_ni_grp
house = 0, co_os_grp
house = -0.3, co_rs_grp
house = -0.3, co_shi_grp
house = 0.65, co_ss_grp
house = 0, co_ti_grp
house = 0.65, co_vr_grp
house = -0.3, fc_bd_grp
house = -0.3, fc_b_grp
house = -0.65, fc_c_grp
house = -0.3, fc_fa_grp
house = -0.3, fc_g_grp
house = -0.3, fc_gc_grp
house = -0.3, fc_h_grp
house = -0.3, fc_j_grp
house = -0.65, fc_lh_grp
house = -0.65, fc_lr_grp
house = -0.3, fc_lwb_grp
house = -0.65, fc_m_grp
house = -0.65, fc_ou_grp
house = -0.65, fc_rh_grp
house = 0, fc_or_grp
house = -0.65, fc_u_grp
house = -0.65, fc_x_grp
house = 0, gd_gm_grp
house = 0, fc_uk_grp
house = -0.65, fc_n_grp
house = -0.65, fc_ln_grp
house = -0.65, fc_kn_grp
house = -0.65, fc_rn_grp
house = 0, fc_ouk_grp
house = 0, fc_q_grp
house = 0, fc_f_grp
house = 0, gd_im_grp
house = 0, gd_z_grp
house = -0.3, gd_bh_grp
visit = 2745692751,1 ;Li02
visit = 2208818767,1 ;Li03
visit = 2745633359,1 ;Li04
visit = 2945966082,1 ;Br01
visit = 2409077762,1 ;Br02
visit = 2945943554,1 ;Br03
visit = 2409063426,1 ;Br04
visit = 2945937410,1 ;Br05
visit = 2409040898,1 ;Br06
visit = 2281145474,1 ;Rh01
visit = 2818046082,1 ;Rh02
visit = 2281172098,1 ;Rh03
visit = 2817982594,1 ;Rh04
visit = 2281116802,1 ;Rh05
visit = 3013596745,1 ;Ku01
visit = 2476714569,1 ;Ku02
Visit = 3013590601,1 ;Ku03
visit = 2476692041,1 ;Ku04
visit = 3013559881,1 ;Ku05
visit = 3146760779,1 ;Iw01
visit = 2609888843,1 ;Iw02
visit = 3146754635,1 ;Iw03
visit = 2609858123,1 ;Iw04
visit = 3146732107,1 ;Iw05
visit = 2609851979,1 ;Iw06
%%PACKAGE%%

60
EXE/myflaccountid.hta Normal file
View File

@@ -0,0 +1,60 @@
<HTML>
<!-- Jan 30, 2003 -->
<HEAD>
<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
<HTA:APPLICATION
ID="oHTA"
APPLICATIONNAME="MyFLMPKey"
SINGLEINSTANCE="yes"
CONTEXTMENU="no"
MAXIMIZEBUTTON="no"
ICON="help.ico"
>
<SCRIPT language="VBScript">
On Error Resume Next
installKey=""
statusText=""
regKey="HKEY_CURRENT_USER\Software\Microsoft\Microsoft Games\Freelancer\1.0\"
regKeyBeta="HKEY_CURRENT_USER\Software\Microsoft\Microsoft Games\Freelancer Beta\3.0\"
Sub window_OnLoad
Set WS=CreateObject("Wscript.Shell")
On Error Resume Next
installKey=WS.RegRead(regKey&"InstallKey")
statusText = "Your account is properly installed"
If Err Then
Err=false
installKey = WS.RegRead(regKeyBeta&"InstallKey")
if Err Then
installKey = "<Not found>"
statusText = "You do not have a Freelancer multiplayer account"
Else
HEADER.innerText="My Freelancer Beta MP Account ID"
End If
End If
Set WS=Nothing
INSTKEY.innerText=UCase(installKey)
INSTSTATUS.innerText=statusText
window.resizeto 600, 300
End Sub
Sub DOPRINT_OnClick
window.print()
End Sub
</SCRIPT>
<TITLE>My Freelancer Multiplayer Account ID</TITLE>
</HEAD>
<BODY BACKGROUND="BackgroundPattern.bmp" style="color: #87C3E0; font-family: Agency FB" SCROLL="no" bgcolor=Black>
<font color="#87C3E0">
<H1 align="center" ID="HEADER">My <I>Freelancer</I> MP Account ID</H1>
<H2 align="center" ID="INSTKEY"></H2>
<p>
This is your account ID. <b>Don't lose it!</b> If you lose it, you will lose all of the characters on all of the servers
on which you have played <I>Freelancer</I>.
</p>
<H3 align="center" ID="INSTSTATUS"></H3>
<p align="center"><BUTTON id="DOPRINT">Print My Account ID</BUTTON></p>
</font>
</BODY>
</HTML>

BIN
EXE/nameresources.dll Normal file

Binary file not shown.

232
EXE/newplayer.fl Normal file
View File

@@ -0,0 +1,232 @@
[Player]
name = Trent
rank = 0
Description = NewPlayer
money = 500
voice = trent_voice
costume = trent
com_costume = trent
system = FP7_system
pos = 3216,1314,-21775
rotate = 175,-15,179.8
log = 1553, 0
;----------------------------------------------------------------------------------
; Debug Ship - gets replaced if missions active
;----------------------------------------------------------------------------------
ship_archetype = ge_fighter
equip = ge_gf1_engine_01
equip = shield01_mark01_lf, HpShield01
equip = ge_fighter_power01
equip = ge_s_scanner_01
equip = ge_s_tractor_01
equip = li_gun01_mark01, HpWeapon01
equip = li_gun01_mark01, HpWeapon02
equip = ge_s_cm_01, HpCM01
cargo = ge_s_cm_01_ammo, 20
equip = LargeWhiteSpecial, HpHeadlight
equip = SlowSmallOrange, HpRunningLight01
equip = SlowSmallOrange, HpRunningLight02
equip = SlowSmallOrange, HpRunningLight05
equip = contrail01, HpContrail01
equip = contrail01, HpContrail02
equip = DockingLightRedSmall, HpDockLight01
equip = DockingLightRedSmall, HpDockLight02
cargo = ge_s_battery_01, 10
cargo = ge_s_repair_01, 10
;exported player vibes
;c:\freelancer\data\playervibe_export.ini
house = 0.91, li_n_grp
house = 0.91, li_lsf_grp
house = 0.65, li_p_grp
house = 0, br_n_grp
house = 0, br_p_grp
house = 0, ku_n_grp
house = 0, ku_p_grp
house = 0, rh_n_grp
house = 0, rh_p_grp
house = 0, co_alg_grp
house = 0, co_be_grp
house = 0, br_m_grp
house = 0, co_nws_grp
house = 0, co_hsp_grp
house = 0.65, co_ic_grp
house = -0.3, co_khc_grp
house = -0.3, co_kt_grp
house = 0, rh_m_grp
house = 0.65, co_me_grp
house = 0.65, co_ni_grp
house = 0, co_os_grp
house = -0.3, co_rs_grp
house = -0.3, co_shi_grp
house = 0.65, co_ss_grp
house = 0, co_ti_grp
house = 0.65, co_vr_grp
house = -0.3, fc_bd_grp
house = -0.3, fc_b_grp
house = -0.65, fc_c_grp
house = -0.3, fc_fa_grp
house = -0.3, fc_g_grp
house = -0.3, fc_gc_grp
house = -0.3, fc_h_grp
house = -0.3, fc_j_grp
house = -0.65, fc_lh_grp
house = -0.65, fc_lr_grp
house = -0.3, fc_lwb_grp
house = -0.65, fc_m_grp
house = -0.65, fc_ou_grp
house = -0.65, fc_rh_grp
house = 0, fc_or_grp
house = -0.65, fc_u_grp
house = -0.65, fc_x_grp
house = 0, gd_gm_grp
house = 0, fc_uk_grp
house = -0.65, fc_n_grp
house = -0.65, fc_ln_grp
house = -0.65, fc_kn_grp
house = -0.65, fc_rn_grp
house = 0, fc_ouk_grp
house = 0, fc_q_grp
house = 0, fc_f_grp
house = 0, gd_im_grp
house = 0, gd_z_grp
house = -0.3, gd_bh_grp
[StoryInfo]
Mission = Mission_01a
MissionNum = 1
delta_worth = -1
;; These gates will be locked in single player, but not necessarily multiplayer.
[mPlayer]
;M02
locked_gate = 2830511361 ;Li01_to_Li02
locked_gate = 2293643521 ;Li01_to_Li03
locked_gate = 2879482760 ;Li01_to_Li03_hole
locked_gate = 2830554369 ;Li01_to_Li04
locked_gate = 2881203077 ;Li01_to_Li04_hole
locked_gate = 2297057803 ;Li02_to_Li01
locked_gate = 2298368769 ;Li03_to_Li01
locked_gate = 2200697741 ;Li03_to_Li01_hole
locked_gate = 2284999691 ;Li04_to_Li01
locked_gate = 2934678413 ;Li04_to_Li01_hole
;M04
locked_gate = 2954500111 ;Li04_to_Iw01
locked_gate = 2417648655 ;Li04_to_Iw02
locked_gate = 2919472778 ;Li04_to_Iw02_hole
locked_gate = 2966851333 ;Li03_to_Iw05
locked_gate = 2212038279 ;Li03_to_Iw05_hole
locked_gate = 2430006021 ;Li03_to_Iw06
locked_gate = 2211890816 ;Li03_to_Iw06_hole
locked_gate = 2428672527 ;Li02_to_Iw04
locked_gate = 2543611525 ;Li02_to_Iw04_hole
locked_gate = 3073659015 ;Iw01_to_Li04
locked_gate = 3077067661 ;Iw02_to_Li04
locked_gate = 3156225933 ;Iw02_to_Li04_hole
locked_gate = 3081809293 ;Iw04_to_Li02
locked_gate = 2243944322 ;Iw04_to_Li02_hole
locked_gate = 2544154759 ;Iw05_to_Li03
locked_gate = 2449127296 ;Iw05_to_Li03_hole
locked_gate = 2549660557 ;Iw06_to_Li03
locked_gate = 2906296192 ;Iw06_to_Li03_hole
locked_gate = 3141298564 ;Br02_to_Iw03_hole
locked_gate = 2313479565 ;Iw03_to_Br02_hole
locked_gate = 3078400647 ;Iw03_to_Li02
locked_gate = 2965534223 ;Li02_to_Iw03
vnpc = 3101964420, 2234438605, 2, 0 ; Iw02_03_Base, iw0203_order_001_male
vnpc = 3101964420, 2233750472, 2, 0 ; Iw02_03_Base, iw0203_order_003_male
vnpc = 3101964420, 2916958218, 2, 0 ; Iw02_03_Base, iw0203_fix_bartender
vnpc = 3101964420, 2233537482, 2, 0 ; Iw02_03_Base, iw0203_order_002_male
vnpc = 3101964420, 3028667974, 2, 0 ; Iw02_03_Base, iw0203_fix_weaponsdealer
vnpc = 3101964420, 2336885255, 2, 0 ; Iw02_03_Base, iw0203_fix_ship
vnpc = 2813262602, 3084731407, 2, 0 ; Li04_06_Base, li0406_order_002_m
vnpc = 2813262602, 2866663561, 2, 0 ; Li04_06_Base, li0406_fix_weaponsdealer
vnpc = 2813262602, 2764885440, 2, 0 ; Li04_06_Base, li0406_fix_bartender
vnpc = 2813262602, 3151845903, 2, 0 ; Li04_06_Base, li0406_order_001_m
vnpc = 2813262602, 2883416591, 2, 0 ; Li04_06_Base, li0406_order_005_m
vnpc = 2813262602, 2950526991, 2, 0 ; Li04_06_Base, li0406_order_004_m
vnpc = 2813262602, 3017625103, 2, 0 ; Li04_06_Base, li0406_order_003_m
vnpc = 2813262602, 2627611470, 2, 0 ; Li04_06_Base, li0406_kpolice_001_m
vnpc = 2813262602, 2246192140, 2, 0 ; Li04_06_Base, li0406_xenos_001_m
vnpc = 2813262602, 3074729028, 2, 0 ; Li04_06_Base, li0406_lsf_002_m
vnpc = 2813262602, 2552785294, 2, 0 ; Li04_06_Base, li0406_bpolice_001_m
vnpc = 2813262602, 2670979790, 2, 0 ; Li04_06_Base, li0406_lpolice_001_m
vnpc = 2813262602, 2380699790, 2, 0 ; Li04_06_Base, li0406_lnavy_001_m
vnpc = 2813262602, 2605049412, 2, 0 ; Li04_06_Base, li0406_lsf_001_f
vnpc = 2813262602, 3048011723, 2, 0 ; Li04_06_Base, li0406_rogues_001_m
vnpc = 2793185930, 3202418821, 2, 0 ; Rh02_07_Base, rh0207_order_001_m
vnpc = 2793185930, 2933989509, 2, 0 ; Rh02_07_Base, rh0207_order_005_m
vnpc = 2793185930, 3001095813, 2, 0 ; Rh02_07_Base, rh0207_order_002_m
vnpc = 2793185930, 3068206213, 2, 0 ; Rh02_07_Base, rh0207_order_003_m
vnpc = 2793185930, 2496190668, 2, 0 ; Rh02_07_Base, rh0207_fix_bartender
vnpc = 2793185930, 2866883205, 2, 0 ; Rh02_07_Base, rh0207_order_004_m
vnpc = 2793185930, 2202783498, 2, 0 ; Rh02_07_Base, rh0207_fix_weaponsdealer
vnpc = 2793185930, 2977604995, 2, 0 ; Rh02_07_Base, rh0207_fix_ship
vnpc = 2793185930, 2821487746, 2, 0 ; Rh02_07_Base, rh0207_bpolice_001_m
vnpc = 2793185930, 2315054538, 2, 0 ; Rh02_07_Base, rh0207_rogues_001_m
vnpc = 2793185930, 2162065030, 2, 0 ; Rh02_07_Base, rh0207_xenos_001_m
vnpc = 2793185930, 2256899460, 2, 0 ; Rh02_07_Base, rh0207_lsf_001_f
vnpc = 2793185930, 2895789634, 2, 0 ; Rh02_07_Base, rh0207_kpolice_001_m
vnpc = 2793185930, 2296039940, 2, 0 ; Rh02_07_Base, rh0207_lnavy_001_m
vnpc = 2793185930, 2939682754, 2, 0 ; Rh02_07_Base, rh0207_lpolice_001_m
vnpc = 2793185930, 2860830596, 2, 0 ; Rh02_07_Base, rh0207_lsf_002_m
vnpc = 3149903104, 3074275781, 2, 0 ; St01_01_Base, st0101_order_002_m
vnpc = 3149903104, 3141380037, 2, 0 ; St01_01_Base, st0101_order_001_m
vnpc = 3149903104, 3007165381, 2, 0 ; St01_01_Base, st0101_order_003_m
vnpc = 3149903104, 2940044741, 2, 0 ; St01_01_Base, st0101_order_004_m
vnpc = 3149903104, 3111809472, 2, 0 ; St01_01_Base, st0101_fix_bartender
vnpc = 3149903104, 2657014084, 2, 0 ; St01_01_Base, st0101_fix_ship
vnpc = 3149903104, 2634988297, 2, 0 ; St01_01_Base, st0101_fix_weaponsdealer
vnpc = 3148903687, 2726386437, 2, 0 ; St01_02_Base, st0102_order_007_m
vnpc = 3148903687, 2860601093, 2, 0 ; St01_02_Base, st0102_order_005_m
vnpc = 3148903687, 2994828037, 2, 0 ; St01_02_Base, st0102_order_003_m
vnpc = 3148903687, 3129042693, 2, 0 ; St01_02_Base, st0102_order_001_m
vnpc = 3148903687, 3061938437, 2, 0 ; St01_02_Base, st0102_order_002_m
vnpc = 3148903687, 3196677380, 2, 0 ; St01_02_Base, st0102_order_010_m
vnpc = 3148903687, 2592619268, 2, 0 ; St01_02_Base, st0102_order_011_f
vnpc = 3148903687, 2572946828, 2, 0 ; St01_02_Base, st0102_fix_bartender
vnpc = 3148903687, 2232333509, 2, 0 ; St01_02_Base, st0102_fix_weaponsdealer
vnpc = 3148903687, 2724056900, 2, 0 ; St01_02_Base, st0102_fix_ship
vnpc = 3148903687, 2995352324, 2, 0 ; St01_02_Base, st0102_order_013_m
vnpc = 3148903687, 2659286277, 2, 0 ; St01_02_Base, st0102_order_008_m
vnpc = 3148903687, 3062462724, 2, 0 ; St01_02_Base, st0102_order_012_m
vnpc = 3148903687, 2592175877, 2, 0 ; St01_02_Base, st0102_order_009_m
vnpc = 3148903687, 2927707397, 2, 0 ; St01_02_Base, st0102_order_004_m
vnpc = 3148903687, 2256538885, 2, 0 ; St01_02_Base, st0102_order_006_f
vnpc = 3152262666, 3138553736, 2, 0 ; St02_01_Base, st0201_order_011_f
vnpc = 3152262666, 2535179657, 2, 0 ; St02_01_Base, st0201_order_002_m
vnpc = 3152262666, 3139160969, 2, 0 ; St02_01_Base, st0201_order_009_m
vnpc = 3152262666, 2400975241, 2, 0 ; St02_01_Base, st0201_order_004_m
vnpc = 3152262666, 3039137739, 2, 0 ; St02_01_Base, st0201_fix_bartender
vnpc = 3152262666, 2657054084, 2, 0 ; St02_01_Base, st0201_fix_ship
vnpc = 3152262666, 2663562377, 2, 0 ; St02_01_Base, st0201_fix_weaponsdealer
vnpc = 3152262666, 3206267273, 2, 0 ; St02_01_Base, st0201_order_008_m
vnpc = 3152262666, 2534655368, 2, 0 ; St02_01_Base, st0201_order_012_m
vnpc = 3152262666, 2668876168, 2, 0 ; St02_01_Base, st0201_order_010_m
vnpc = 3152262666, 2602294153, 2, 0 ; St02_01_Base, st0201_order_001_m
vnpc = 3152262666, 2199644041, 2, 0 ; St02_01_Base, st0201_order_007_m
vnpc = 3152262666, 2333864841, 2, 0 ; St02_01_Base, st0201_order_005_m
vnpc = 3152262666, 2468073353, 2, 0 ; St02_01_Base, st0201_order_003_m
vnpc = 3152262666, 2467549064, 2, 0 ; St02_01_Base, st0201_order_013_m
vnpc = 3152262666, 2803544457, 2, 0 ; St02_01_Base, st0201_order_006_f
vnpc = 3097634115, 2367730062, 1, 0 ; Bw01_05_Base, bw0105_fix_weaponsdealer
vnpc = 3128923145, 2652228930, 2, 0 ; Ku06_01_Base, ku0601_fix_trader
vnpc = 3128923145, 2345563982, 2, 0 ; Ku06_01_Base, ku0601_fix_ship
vnpc = 3128923145, 2312853709, 2, 0 ; Ku06_01_Base, ku0601_fix_weaponsdealer
vnpc = 3128923145, 2449740935, 2, 0 ; Ku06_01_Base, ku0601_blood_002_f
vnpc = 3128923145, 2516852359, 2, 0 ; Ku06_01_Base, ku0601_blood_003_f
vnpc = 3128923145, 3188020871, 2, 0 ; Ku06_01_Base, ku0601_blood_001_m
vnpc = 3128923145, 2907603661, 2, 0 ; Ku06_01_Base, ku0601_fix_bartender
vnpc = 3128923145, 2852484231, 2, 0 ; Ku06_01_Base, ku0601_blood_004_m
vnpc = 3128923145, 2382635655, 2, 0 ; Ku06_01_Base, ku0601_blood_005_f
vnpc = 3181324104, 2177220111, 2, 0 ; Br03_01_Base, br0301_fix_bartender
vnpc = 3176341570, 2635032582, 2, 0 ; Br04_01_Base, br0401_fix_bartender
vnpc = 3176341570, 2306961223, 2, 0 ; Br04_01_Base, br0401_bowex_001_m
vnpc = 3184993608, 2260645825, 2, 0 ; Br01_01_Base, br0101_fix_ship

BIN
EXE/numeric.dll Normal file

Binary file not shown.

BIN
EXE/offerbriberesources.dll Normal file

Binary file not shown.

BIN
EXE/ranks.dll Normal file

Binary file not shown.

BIN
EXE/readfile.dll Normal file

Binary file not shown.

BIN
EXE/remoteclient.dll Normal file

Binary file not shown.

BIN
EXE/remoteserver.dll Normal file

Binary file not shown.

BIN
EXE/rendcomp.dll Normal file

Binary file not shown.

View File

@@ -0,0 +1,182 @@
// LICENSE
// =======
// Copyright (c) 2017-2019 Advanced Micro Devices, Inc. All rights reserved.
// -------
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
// -------
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
// Software.
// -------
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
//Initial port to ReShade: SLSNe https://gist.github.com/SLSNe/bbaf2d77db0b2a2a0755df581b3cf00c
//Optimizations by Marty McFly:
// vectorized math, even with scalar gcn hardware this should work
// out the same, order of operations has not changed
// For some reason, it went from 64 to 48 instructions, a lot of MOV gone
// Also modified the way the final window is calculated
//
// reordered min() and max() operations, from 11 down to 9 registers
//
// restructured final weighting, 49 -> 48 instructions
//
// delayed RCP to replace SQRT with RSQRT
//
// removed the saturate() from the control var as it is clamped
// by UI manager already, 48 -> 47 instructions
//
// replaced tex2D with tex2Doffset intrinsic (address offset by immediate integer)
// 47 -> 43 instructions
// 9 -> 8 registers
//Further modified by OopyDoopy and Lord of Lunacy:
// Changed wording in the UI for the existing variable and added a new variable and relevant code to adjust sharpening strength.
//Fix by Lord of Lunacy:
// Made the shader use a linear colorspace rather than sRGB, as recommended by the original AMD documentation from FidelityFX.
//Modified by CeeJay.dk:
// Included a label and tooltip description. I followed AMDs official naming guidelines for FidelityFX.
//
// Used gather trick to reduce the number of texture operations by one (9 -> 8). It's now 42 -> 51 instructions but still faster
// because of the texture operation that was optimized away.
//Fix by CeeJay.dk
// Fixed precision issues with the gather at super high resolutions
// Also tried to refactor the samples so more work can be done while they are being sampled, but it's not so easy and the gains
// I'm seeing are so small they might be statistical noise. So it MIGHT be faster - no promises.
//Fix by BC46
// Removed the "0.5 * pixel" expressions in the DX10 or higher check.
// With the use of dgVoodoo at least, the previous code caused the entire image to be blurry and slightly mispositioned.
uniform float Contrast <
ui_type = "drag";
ui_label = "Contrast Adaptation";
ui_tooltip = "Adjusts the range the shader adapts to high contrast (0 is not all the way off). Higher values = more high contrast sharpening.";
ui_min = 0.0; ui_max = 1.0;
> = 0.0;
uniform float Sharpening <
ui_type = "drag";
ui_label = "Sharpening intensity";
ui_tooltip = "Adjusts sharpening intensity by averaging the original pixels to the sharpened result. 1.0 is the unmodified default.";
ui_min = 0.0; ui_max = 1.0;
> = 1.0;
#include "ReShade.fxh"
#define pixel float2(BUFFER_RCP_WIDTH, BUFFER_RCP_HEIGHT)
texture TexColor : COLOR;
sampler sTexColor {Texture = TexColor; SRGBTexture = true;};
float3 CASPass(float4 vpos : SV_Position, float2 texcoord : TexCoord) : SV_Target
{
// fetch a 3x3 neighborhood around the pixel 'e',
// a b c
// d(e)f
// g h i
float3 b = tex2Doffset(sTexColor, texcoord, int2(0, -1)).rgb;
float3 d = tex2Doffset(sTexColor, texcoord, int2(-1, 0)).rgb;
#if __RENDERER__ >= 0xa000 // If DX10 or higher
float4 red_efhi = tex2DgatherR(sTexColor, texcoord);
float3 e = float3( red_efhi.w, red_efhi.w, red_efhi.w);
float3 f = float3( red_efhi.z, red_efhi.z, red_efhi.z);
float3 h = float3( red_efhi.x, red_efhi.x, red_efhi.x);
float3 i = float3( red_efhi.y, red_efhi.y, red_efhi.y);
float4 green_efhi = tex2DgatherG(sTexColor, texcoord);
e.g = green_efhi.w;
f.g = green_efhi.z;
h.g = green_efhi.x;
i.g = green_efhi.y;
float4 blue_efhi = tex2DgatherB(sTexColor, texcoord);
e.b = blue_efhi.w;
f.b = blue_efhi.z;
h.b = blue_efhi.x;
i.b = blue_efhi.y;
#else // If DX9
float3 e = tex2D(sTexColor, texcoord).rgb;
float3 f = tex2Doffset(sTexColor, texcoord, int2(1, 0)).rgb;
float3 h = tex2Doffset(sTexColor, texcoord, int2(0, 1)).rgb;
float3 i = tex2Doffset(sTexColor, texcoord, int2(1, 1)).rgb;
#endif
float3 g = tex2Doffset(sTexColor, texcoord, int2(-1, 1)).rgb;
float3 a = tex2Doffset(sTexColor, texcoord, int2(-1, -1)).rgb;
float3 c = tex2Doffset(sTexColor, texcoord, int2(1, -1)).rgb;
// Soft min and max.
// a b c b
// d e f * 0.5 + d e f * 0.5
// g h i h
// These are 2.0x bigger (factored out the extra multiply).
float3 mnRGB = min(min(min(d, e), min(f, b)), h);
float3 mnRGB2 = min(mnRGB, min(min(a, c), min(g, i)));
mnRGB += mnRGB2;
float3 mxRGB = max(max(max(d, e), max(f, b)), h);
float3 mxRGB2 = max(mxRGB, max(max(a, c), max(g, i)));
mxRGB += mxRGB2;
// Smooth minimum distance to signal limit divided by smooth max.
float3 rcpMRGB = rcp(mxRGB);
float3 ampRGB = saturate(min(mnRGB, 2.0 - mxRGB) * rcpMRGB);
// Shaping amount of sharpening.
ampRGB = rsqrt(ampRGB);
float peak = -3.0 * Contrast + 8.0;
float3 wRGB = -rcp(ampRGB * peak);
float3 rcpWeightRGB = rcp(4.0 * wRGB + 1.0);
// 0 w 0
// Filter shape: w 1 w
// 0 w 0
float3 window = (b + d) + (f + h);
float3 outColor = saturate((window * wRGB + e) * rcpWeightRGB);
return lerp(e, outColor, Sharpening);
}
technique ContrastAdaptiveSharpen
<
ui_label = "AMD FidelityFX Contrast Adaptive Sharpening";
ui_tooltip =
"CAS is a low overhead adaptive sharpening algorithm that AMD includes with their drivers.\n"
"This port to ReShade works with all cards from all vendors,\n"
"but cannot do the optional scaling that CAS is normally also capable of when activated in the AMD drivers.\n"
"\n"
"The algorithm adjusts the amount of sharpening per pixel to target an even level of sharpness across the image.\n"
"Areas of the input image that are already sharp are sharpened less, while areas that lack detail are sharpened more.\n"
"This allows for higher overall natural visual sharpness with fewer artifacts.";
>
{
pass
{
VertexShader = PostProcessVS;
PixelShader = CASPass;
SRGBWriteEnable = true;
}
}

View File

@@ -0,0 +1,140 @@
// Copyright (c) 2016-2018, bacondither
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer
// in this position and unchanged.
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Colourfulness - version 2018-11-12
// EXPECTS FULL RANGE GAMMA LIGHT
#include "ReShadeUI.fxh"
uniform float colourfulness < __UNIFORM_SLIDER_FLOAT1
ui_min = -1.0; ui_max = 2.0;
ui_tooltip = "Degree of colourfulness, 0 = neutral";
ui_step = 0.01;
> = 0.4;
uniform float lim_luma < __UNIFORM_SLIDER_FLOAT1
ui_min = 0.1; ui_max = 1.0;
ui_tooltip = "Lower values allows for more change near clipping";
ui_step = 0.01;
> = 0.7;
uniform bool enable_dither <
ui_tooltip = "Enables dithering, avoids introducing banding in gradients";
ui_category = "Dither";
> = false;
uniform bool col_noise <
ui_tooltip = "Coloured dither noise, lower subjective noise level";
ui_category = "Dither";
> = true;
uniform float backbuffer_bits <
ui_min = 1.0; ui_max = 32.0;
ui_tooltip = "Backbuffer bith depth, most likely 8 or 10 bits";
ui_category = "Dither";
> = 8.0;
//-------------------------------------------------------------------------------------------------
#ifndef fast_luma
#define fast_luma 1 // Rapid approx of sRGB gamma, small difference in quality
#endif
#ifndef temporal_dither
#define temporal_dither 0 // Dither changes with every frame
#endif
//-------------------------------------------------------------------------------------------------
#include "ReShade.fxh"
#if (temporal_dither == 1)
uniform int rnd < source = "random"; min = 0; max = 1000; >;
#endif
// Sigmoid function, sign(v)*pow(pow(abs(v), -2) + pow(s, -2), 1.0/-2)
#define soft_lim(v,s) ( (v*s)*rcp(sqrt(s*s + v*v)) )
// Weighted power mean, p = 0.5
#define wpmean(a,b,w) ( pow(abs(w)*sqrt(abs(a)) + abs(1-w)*sqrt(abs(b)), 2) )
// Max/Min RGB components
#define maxRGB(c) ( max((c).r, max((c).g, (c).b)) )
#define minRGB(c) ( min((c).r, min((c).g, (c).b)) )
// Mean of Rec. 709 & 601 luma coefficients
#define lumacoeff float3(0.2558, 0.6511, 0.0931)
float3 Colourfulness(float4 vpos : SV_Position, float2 tex : TEXCOORD) : SV_Target
{
#if (fast_luma == 1)
float3 c0 = tex2D(ReShade::BackBuffer, tex).rgb;
float luma = sqrt(dot(saturate(c0*abs(c0)), lumacoeff));
c0 = saturate(c0);
#else // Better approx of sRGB gamma
float3 c0 = saturate(tex2D(ReShade::BackBuffer, tex).rgb);
float luma = pow(dot(pow(c0 + 0.06, 2.4), lumacoeff), 1.0/2.4) - 0.06;
#endif
// Calc colour saturation change
float3 diff_luma = c0 - luma;
float3 c_diff = diff_luma*(colourfulness + 1) - diff_luma;
if (colourfulness > 0.0)
{
// 120% of c_diff clamped to max visible range + overshoot
float3 rlc_diff = clamp((c_diff*1.2) + c0, -0.0001, 1.0001) - c0;
// Calc max saturation-increase without altering RGB ratios
float poslim = (1.0002 - luma)/(abs(maxRGB(diff_luma)) + 0.0001);
float neglim = (luma + 0.0002)/(abs(minRGB(diff_luma)) + 0.0001);
float3 diffmax = diff_luma*min(min(poslim, neglim), 32) - diff_luma;
// Soft limit diff
c_diff = soft_lim( c_diff, max(wpmean(diffmax, rlc_diff, lim_luma), 1e-7) );
}
if (enable_dither == true)
{
// Interleaved gradient noise by Jorge Jimenez
const float3 magic = float3(0.06711056, 0.00583715, 52.9829189);
#if (temporal_dither == 1)
float xy_magic = (vpos.x + rnd)*magic.x + (vpos.y + rnd)*magic.y;
#else
float xy_magic = vpos.x*magic.x + vpos.y*magic.y;
#endif
float noise = (frac(magic.z*frac(xy_magic)) - 0.5)/(exp2(backbuffer_bits) - 1);
c_diff += col_noise == true ? float3(-noise, noise, -noise) : noise;
}
return saturate(c0 + c_diff);
}
technique Colourfulness
{
pass
{
VertexShader = PostProcessVS;
PixelShader = Colourfulness;
}
}

View File

@@ -0,0 +1,67 @@
/**
* HDR
* by Christian Cann Schuldt Jensen ~ CeeJay.dk
*
* Not actual HDR - It just tries to mimic an HDR look (relatively high performance cost)
*/
#include "ReShadeUI.fxh"
uniform float HDRPower < __UNIFORM_SLIDER_FLOAT1
ui_min = 0.0; ui_max = 8.0;
ui_label = "Power";
> = 1.30;
uniform float radius1 < __UNIFORM_SLIDER_FLOAT1
ui_min = 0.0; ui_max = 8.0;
ui_label = "Radius 1";
> = 0.793;
uniform float radius2 < __UNIFORM_SLIDER_FLOAT1
ui_min = 0.0; ui_max = 8.0;
ui_label = "Radius 2";
ui_tooltip = "Raising this seems to make the effect stronger and also brighter.";
> = 0.87;
#include "ReShade.fxh"
float3 HDRPass(float4 vpos : SV_Position, float2 texcoord : TexCoord) : SV_Target
{
float3 color = tex2D(ReShade::BackBuffer, texcoord).rgb;
float3 bloom_sum1 = tex2D(ReShade::BackBuffer, texcoord + float2(1.5, -1.5) * radius1 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum1 += tex2D(ReShade::BackBuffer, texcoord + float2(-1.5, -1.5) * radius1 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum1 += tex2D(ReShade::BackBuffer, texcoord + float2( 1.5, 1.5) * radius1 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum1 += tex2D(ReShade::BackBuffer, texcoord + float2(-1.5, 1.5) * radius1 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum1 += tex2D(ReShade::BackBuffer, texcoord + float2( 0.0, -2.5) * radius1 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum1 += tex2D(ReShade::BackBuffer, texcoord + float2( 0.0, 2.5) * radius1 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum1 += tex2D(ReShade::BackBuffer, texcoord + float2(-2.5, 0.0) * radius1 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum1 += tex2D(ReShade::BackBuffer, texcoord + float2( 2.5, 0.0) * radius1 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum1 *= 0.005;
float3 bloom_sum2 = tex2D(ReShade::BackBuffer, texcoord + float2(1.5, -1.5) * radius2 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum2 += tex2D(ReShade::BackBuffer, texcoord + float2(-1.5, -1.5) * radius2 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum2 += tex2D(ReShade::BackBuffer, texcoord + float2( 1.5, 1.5) * radius2 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum2 += tex2D(ReShade::BackBuffer, texcoord + float2(-1.5, 1.5) * radius2 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum2 += tex2D(ReShade::BackBuffer, texcoord + float2( 0.0, -2.5) * radius2 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum2 += tex2D(ReShade::BackBuffer, texcoord + float2( 0.0, 2.5) * radius2 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum2 += tex2D(ReShade::BackBuffer, texcoord + float2(-2.5, 0.0) * radius2 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum2 += tex2D(ReShade::BackBuffer, texcoord + float2( 2.5, 0.0) * radius2 * BUFFER_PIXEL_SIZE).rgb;
bloom_sum2 *= 0.010;
float dist = radius2 - radius1;
float3 HDR = (color + (bloom_sum2 - bloom_sum1)) * dist;
float3 blend = HDR + color;
color = pow(abs(blend), abs(HDRPower)) + HDR; // pow - don't use fractions for HDRpower
return saturate(color);
}
technique HDR
{
pass
{
VertexShader = PostProcessVS;
PixelShader = HDRPass;
}
}

View File

@@ -0,0 +1,492 @@
/*
Magic Bloom by luluco250
Attempts to simulate a natural-looking bloom.
Features:
--Wide bloom blurring, derived from the gaussian function
defined here: https://en.wikipedia.org/wiki/Gaussian_blur#Mathematics
--Eye adaptation, decreases or increases the brightness
of bloom according to the overall image luminance.
--Lens dirt, as standard I suppose. Really not much here.
It uses an image named "MagicBloom_Dirt.png" so make
sure you have one in your textures directory.
--Unwanted features can be disabled through
preprocessor definitions, saving performance.
Preprocessor definitions:
--MAGICBLOOM_ADAPT_RESOLUTION:
Determines the width/height of the texture used for adaptation.
It is recommended to use 256, but you can use as far as 1024 without issues.
Too low resolutions will make adaptation seem "unstable".
Must be a power of two value: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 etc.
--MAGICBLOOM_BLUR_PRECALCULATED:
If set to 0 the gaussian blur will be calculated inside the shader.
Otherwise, it uses a pre-calculated kernel (array).
--MAGICBLOOM_NODIRT:
If set to 1 all lens dirt related features are disabled.
Beneficial for performance if you don't wish to use lens dirt.
--MAGICBLOOM_NOADAPT:
If set to 1 all adaptation related features are disabled.
Beneficial for performance if you don't wish to use adaptation.
MIT Licensed:
Copyright (c) 2017 luluco250
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#include "ReShade.fxh"
//Statics
#ifndef MAGICBLOOM_ADAPT_RESOLUTION
#define MAGICBLOOM_ADAPT_RESOLUTION 256
#endif
#ifndef MAGICBLOOM_BLUR_PRECALCULATED
#define MAGICBLOOM_BLUR_PRECALCULATED 1
#endif
#ifndef MAGICBLOOM_NODIRT
#define MAGICBLOOM_NODIRT 0
#endif
#ifndef MAGICBLOOM_NOADAPT
#define MAGICBLOOM_NOADAPT 0
#endif
static const int iBlurSamples = 4;
static const int iAdaptResolution = MAGICBLOOM_ADAPT_RESOLUTION;
#define CONST_LOG2(v) (((v) & 0xAAAAAAAA) != 0) | ((((v) & 0xFFFF0000) != 0) << 4) | ((((v) & 0xFF00FF00) != 0) << 3) | ((((v) & 0xF0F0F0F0) != 0) << 2) | ((((v) & 0xCCCCCCCC) != 0) << 1)
static const float sigma = float(iBlurSamples) / 2.0;
static const float double_pi = 6.283185307179586476925286766559;
static const int lowest_mip = CONST_LOG2(iAdaptResolution) + 1;
static const float3 luma_value = float3(0.2126, 0.7152, 0.0722);
//Uniforms
#include "ReShadeUI.fxh"
uniform float fBloom_Intensity < __UNIFORM_SLIDER_FLOAT1
ui_label = "Bloom Intensity";
ui_tooltip = "Amount of bloom applied to the image.";
ui_min = 0.0;
ui_max = 10.0;
ui_step = 0.001;
> = 1.0;
uniform float fBloom_Threshold <
ui_label = "Bloom Threshold";
ui_tooltip =
"Thresholds (limits) dark pixels from being accounted for bloom.\n"
"Essentially, it increases the contrast in bloom and blackens darker pixels.\n"
"At 1.0 all pixels are used in bloom.\n"
"This value is not normalized, it is exponential, therefore changes in lower values are more noticeable than at higher values.";
ui_type = "drag";
ui_min = 1.0;
ui_max = 10.0;
ui_step = 0.1;
> = 2.0;
#if !MAGICBLOOM_NODIRT
uniform float fDirt_Intensity < __UNIFORM_SLIDER_FLOAT1
ui_label = "Dirt Intensity";
ui_tooltip =
"Amount of lens dirt applied to bloom.\n"
"Uses a texture called \"MagicBloom_Dirt.png\" from your textures directory(ies).";
ui_min = 0.0;
ui_max = 1.0;
ui_step = 0.001;
> = 0.0;
#endif
#if !MAGICBLOOM_NOADAPT
uniform float fExposure < __UNIFORM_SLIDER_FLOAT1
ui_label = "Exposure";
ui_tooltip =
"The target exposure that bloom adapts to.\n"
"It is recommended to just leave it at 0.5, unless you wish for a brighter (1.0) or darker (0.0) image.";
ui_min = 0.0;
ui_max = 1.0;
ui_step = 0.001;
> = 0.5;
uniform float fAdapt_Speed <
ui_label = "Adaptation Speed";
ui_tooltip =
"How quick bloom adapts to changes in the image brightness.\n"
"At 1.0, changes are instantaneous.\n"
"It is recommended to use low values, between 0.01 and 0.1.\n"
"0.1 will provide a quick but natural adaptation.\n"
"0.01 will provide a slow form of adaptation.";
ui_type = "drag";
ui_min = 0.001;
ui_max = 1.0;
ui_step = 0.001;
> = 0.1;
uniform float fAdapt_Sensitivity < __UNIFORM_SLIDER_FLOAT1
ui_label = "Adapt Sensitivity";
ui_tooltip =
"How sensitive adaptation is towards brightness.\n"
"At higher values bloom can get darkened at the slightest amount of brightness.\n"
"At lower values bloom will require a lot of image brightness before it's fully darkened."
"1.0 will not modify the amount of brightness that is accounted for adaptation.\n"
"0.5 is a good value, but may miss certain bright spots.";
ui_min = 0.0;
ui_max = 3.0;
ui_step = 0.001;
> = 1.0;
uniform float2 f2Adapt_Clip < __UNIFORM_SLIDER_FLOAT2
ui_label = "Adaptation Min/Max";
ui_tooltip =
"Determines the minimum and maximum values that adaptation can determine to ajust bloom.\n"
"Reducing the maximum would cause bloom to be brighter (as it is less adapted).\n"
"Increasing the minimum would cause bloom to be darker (as it is more adapted).\n"
"Keep the maximum above or equal to the minium and vice-versa.";
ui_min = 0.0;
ui_max = 1.0;
ui_step = 0.001;
> = float2(0.0, 1.0);
uniform int iAdapt_Precision < __UNIFORM_SLIDER_INT1
ui_label = "Adaptation Precision";
ui_tooltip =
"Determins how accurately bloom adapts to the center of image.\n"
"At 0 the adaptation is calculated from the average of the whole image.\n"
"At the highest value (which may vary) adaptation focuses solely on the center pixel(s) of the screen.\n"
"Values closer to 0 are recommended.";
ui_min = 0;
ui_max = lowest_mip;
ui_step = 0.1;
> = lowest_mip * 0.3;
#endif
uniform uint iDebug <
ui_label = "Debug Options";
ui_tooltip = "Contains debugging options like displaying the bloom texture.";
ui_type = "combo";
ui_items = "None\0Display Bloom Texture\0";
> = 0;
//Textures
texture tMagicBloom_1 < pooled = true; > { Width = BUFFER_WIDTH / 2; Height = BUFFER_HEIGHT / 2; Format = RGBA16F; };
texture tMagicBloom_2 < pooled = true; > { Width = BUFFER_WIDTH / 4; Height = BUFFER_HEIGHT / 4; Format = RGBA16F; };
texture tMagicBloom_3 < pooled = true; > { Width = BUFFER_WIDTH / 8; Height = BUFFER_HEIGHT / 8; Format = RGBA16F; };
texture tMagicBloom_4 < pooled = true; > { Width = BUFFER_WIDTH / 16; Height = BUFFER_HEIGHT / 16; Format = RGBA16F; };
texture tMagicBloom_5 < pooled = true; > { Width = BUFFER_WIDTH / 32; Height = BUFFER_HEIGHT / 32; Format = RGBA16F; };
texture tMagicBloom_6 < pooled = true; > { Width = BUFFER_WIDTH / 64; Height = BUFFER_HEIGHT / 64; Format = RGBA16F; };
texture tMagicBloom_7 < pooled = true; > { Width = BUFFER_WIDTH / 128; Height = BUFFER_HEIGHT / 128; Format = RGBA16F; };
texture tMagicBloom_8 < pooled = true; > { Width = BUFFER_WIDTH / 256; Height = BUFFER_HEIGHT / 256; Format = RGBA16F; };
#if !MAGICBLOOM_NOADAPT
texture tMagicBloom_Small { Width = iAdaptResolution; Height = iAdaptResolution; Format = R32F; MipLevels = lowest_mip; };
texture tMagicBloom_Adapt { Format = R32F; };
texture tMagicBloom_LastAdapt { Format = R32F; };
#endif
#if !MAGICBLOOM_NODIRT
texture tMagicBloom_Dirt <source="MagicBloom_Dirt.png";> { Width = BUFFER_WIDTH; Height = BUFFER_HEIGHT; };
#endif
//Samplers
sampler sMagicBloom_1 { Texture = tMagicBloom_1; };
sampler sMagicBloom_2 { Texture = tMagicBloom_2; };
sampler sMagicBloom_3 { Texture = tMagicBloom_3; };
sampler sMagicBloom_4 { Texture = tMagicBloom_4; };
sampler sMagicBloom_5 { Texture = tMagicBloom_5; };
sampler sMagicBloom_6 { Texture = tMagicBloom_6; };
sampler sMagicBloom_7 { Texture = tMagicBloom_7; };
sampler sMagicBloom_8 { Texture = tMagicBloom_8; };
#if !MAGICBLOOM_NOADAPT
sampler sMagicBloom_Small { Texture = tMagicBloom_Small; };
sampler sMagicBloom_Adapt { Texture = tMagicBloom_Adapt; MinFilter = POINT; MagFilter = POINT; };
sampler sMagicBloom_LastAdapt { Texture = tMagicBloom_LastAdapt; MinFilter = POINT; MagFilter = POINT; };
#endif
#if !MAGICBLOOM_NODIRT
sampler sMagicBloom_Dirt { Texture = tMagicBloom_Dirt; };
#endif
//Functions
#if !MAGICBLOOM_BLUR_PRECALCULATED
float gaussian_function(float2 i) {
static const float first_part = 1.0 / (double_pi * pow(sigma, 2.0));
static const float second_part_a = 1.0 / (2.0 * pow(sigma, 2.0));
float second_part_b = (pow(i.x, 2.0) + pow(i.y, 2.0)) * second_part_a;
return first_part * exp(-second_part_b);
}
#endif
//Why use a single-pass blur? To reduce the amount of textures used in half.
//Scale should be the original resolution divided by target resolution.
float3 blur(sampler sp, float2 uv, float scale) {
float2 ps = BUFFER_PIXEL_SIZE * scale;
#if MAGICBLOOM_BLUR_PRECALCULATED
static const float kernel[9] = {
0.0269955, 0.0647588, 0.120985, 0.176033, 0.199471, 0.176033, 0.120985, 0.0647588, 0.0269955
};
static const float accum = 1.02352;
#else
float accum = 0.0;
#endif
float gaussian_weight = 0.0;
float3 col = 0.0;
[loop]
for (int x = -iBlurSamples; x <= iBlurSamples; ++x) {
for (int y = -iBlurSamples; y <= iBlurSamples; ++y) {
#if MAGICBLOOM_BLUR_PRECALCULATED
gaussian_weight = kernel[x + iBlurSamples] * kernel[y + iBlurSamples];
#else
gaussian_weight = gaussian_function(float2(x, y));
accum += gaussian_weight;
#endif
col += tex2D(sp, uv + ps * float2(x, y)).rgb * gaussian_weight;
}
}
#if MAGICBLOOM_BLUR_PRECALCULATED
return col * accum;
#else
return col / accum;
#endif
}
/*
Uncharted 2 Tonemapper
Thanks John Hable and Naughty Dog.
*/
float3 tonemap(float3 col, float exposure) {
static const float A = 0.15; //shoulder strength
static const float B = 0.50; //linear strength
static const float C = 0.10; //linear angle
static const float D = 0.20; //toe strength
static const float E = 0.02; //toe numerator
static const float F = 0.30; //toe denominator
static const float W = 11.2; //linear white point value
col *= exposure;
col = ((col * (A * col + C * B) + D * E) / (col * (A * col + B) + D * F)) - E / F;
static const float white = 1.0 / (((W * (A * W + C * B) + D * E) / (W * (A * W + B) + D * F)) - E / F);
col *= white;
return col;
}
float3 blend_screen(float3 a, float3 b) {
return 1.0 - (1.0 - a) * (1.0 - b);
}
/*
The function below is a leftover from debugging.
It just draws a line on the screen, it's horizontal position being
the value you specify (from 0.0-1.0, becoming left-right).
No use now but might be useful later on so I just left it here.
*/
/*void debug_value(inout float3 col, float2 uv, float value, float3 needle_color) {
static const float2 ps = BUFFER_PIXEL_SIZE;
col = (uv.x + ps.x > value && uv.x - ps.x < value) ? needle_color : col;
}*/
//Shaders
/*
Thresholding is performed on the first blur for two reasons:
--Save an entire texture from being used to threshold.
--Being the smallest blur it also results in the least amount of artifacts.
*/
float4 PS_Blur1(float4 pos : SV_Position, float2 uv : TEXCOORD) : SV_Target {
float3 col = blur(ReShade::BackBuffer, uv, 2.0);
col = pow(abs(col), fBloom_Threshold);
col *= fBloom_Intensity;
return float4(col, 1.0);
}
float4 PS_Blur2(float4 pos : SV_Position, float2 uv : TEXCOORD) : SV_Target {
return float4(blur(sMagicBloom_1, uv, 4.0), 1.0);
}
float4 PS_Blur3(float4 pos : SV_Position, float2 uv : TEXCOORD) : SV_Target {
return float4(blur(sMagicBloom_2, uv, 8.0), 1.0);
}
float4 PS_Blur4(float4 pos : SV_Position, float2 uv : TEXCOORD) : SV_Target {
return float4(blur(sMagicBloom_3, uv, 8.0), 1.0);
}
float4 PS_Blur5(float4 pos : SV_Position, float2 uv : TEXCOORD) : SV_Target {
return float4(blur(sMagicBloom_4, uv, 16.0), 1.0);
}
float4 PS_Blur6(float4 pos : SV_Position, float2 uv : TEXCOORD) : SV_Target {
return float4(blur(sMagicBloom_5, uv, 32.0), 1.0);
}
float4 PS_Blur7(float4 pos : SV_Position, float2 uv : TEXCOORD) : SV_Target {
return float4(blur(sMagicBloom_6, uv, 64.0), 1.0);
}
float4 PS_Blur8(float4 pos : SV_Position, float2 uv : TEXCOORD) : SV_Target {
return float4(blur(sMagicBloom_7, uv, 128.0), 1.0);
}
//Final blend shader
float4 PS_Blend(float4 pos : SV_Position, float2 uv : TEXCOORD) : SV_Target {
float3 col = tex2D(ReShade::BackBuffer, uv).rgb;
float3 bloom = tex2D(sMagicBloom_1, uv).rgb
+ tex2D(sMagicBloom_2, uv).rgb
+ tex2D(sMagicBloom_3, uv).rgb
+ tex2D(sMagicBloom_4, uv).rgb
+ tex2D(sMagicBloom_5, uv).rgb
+ tex2D(sMagicBloom_6, uv).rgb
+ tex2D(sMagicBloom_7, uv).rgb
+ tex2D(sMagicBloom_8, uv).rgb;
//Dunno if making the division by 8 a static multiplication helps, but whatever.
static const float bloom_accum = 1.0 / 8.0;
bloom *= bloom_accum;
#if !MAGICBLOOM_NOADAPT
float exposure = fExposure / max(tex2D(sMagicBloom_Adapt, 0.0).x, 0.00001);
bloom = tonemap(bloom, exposure);
#else
//Without adaptation it seems 100.0 exposure is needed for bloom to look bright enough.
bloom = tonemap(bloom, 100.0);
#endif
#if !MAGICBLOOM_NODIRT
float3 dirt = tex2D(sMagicBloom_Dirt, uv).rgb;
dirt *= fDirt_Intensity;
bloom = blend_screen(bloom, dirt * bloom);
#endif
col = blend_screen(col, bloom);
//If we're to display the bloom texture, we replace col with it.
col = iDebug == 1 ? bloom : col;
return float4(col, 1.0);
}
#if !MAGICBLOOM_NOADAPT
/*
How adaptation works:
--Calculate image luminance.
--Save it to a smaller, mipmapped texture.
--Mipmaps require a power of 2 texture.
--Fetch a mipmap level according to a specfied amount of precision.
--The lowest mipmap is simply an average of the entire image.
*/
float PS_GetSmall(float4 pos : SV_Position, float2 uv : TEXCOORD) : SV_Target {
return dot(tex2D(ReShade::BackBuffer, uv).rgb, luma_value);
}
float PS_GetAdapt(float4 pos : SV_Position, float2 uv : TEXCOORD) : SV_Target {
float curr = tex2Dlod(sMagicBloom_Small, float4(0.5, 0.5, 0, lowest_mip - iAdapt_Precision)).x;
curr *= fAdapt_Sensitivity;
curr = clamp(curr, f2Adapt_Clip.x, f2Adapt_Clip.y);
float last = tex2D(sMagicBloom_LastAdapt, 0.0).x;
//Using the frametime/delta here would actually scale adaptation with the framerate.
//We don't want that, so we don't even bother with it.
return lerp(last, curr, fAdapt_Speed);
}
float PS_SaveAdapt(float4 pos : SV_Position, float2 uv : TEXCOORD) : SV_Target {
return tex2D(sMagicBloom_Adapt, 0.0).x;
}
#endif
technique MagicBloom {
pass Blur1 {
VertexShader = PostProcessVS;
PixelShader = PS_Blur1;
RenderTarget = tMagicBloom_1;
}
pass Blur2 {
VertexShader = PostProcessVS;
PixelShader = PS_Blur2;
RenderTarget = tMagicBloom_2;
}
pass Blur3 {
VertexShader = PostProcessVS;
PixelShader = PS_Blur3;
RenderTarget = tMagicBloom_3;
}
pass Blur4 {
VertexShader = PostProcessVS;
PixelShader = PS_Blur4;
RenderTarget = tMagicBloom_4;
}
pass Blur5 {
VertexShader = PostProcessVS;
PixelShader = PS_Blur5;
RenderTarget = tMagicBloom_5;
}
pass Blur6 {
VertexShader = PostProcessVS;
PixelShader = PS_Blur6;
RenderTarget = tMagicBloom_6;
}
pass Blur7 {
VertexShader = PostProcessVS;
PixelShader = PS_Blur7;
RenderTarget = tMagicBloom_7;
}
pass Blur8 {
VertexShader = PostProcessVS;
PixelShader = PS_Blur8;
RenderTarget = tMagicBloom_8;
}
pass Blend {
VertexShader = PostProcessVS;
PixelShader = PS_Blend;
}
#if !MAGICBLOOM_NOADAPT
pass GetSmall {
VertexShader = PostProcessVS;
PixelShader = PS_GetSmall;
RenderTarget = tMagicBloom_Small;
}
pass GetAdapt {
VertexShader = PostProcessVS;
PixelShader = PS_GetAdapt;
RenderTarget = tMagicBloom_Adapt;
}
pass SaveAdapt {
VertexShader = PostProcessVS;
PixelShader = PS_SaveAdapt;
RenderTarget = tMagicBloom_LastAdapt;
}
#endif
}

View File

@@ -0,0 +1,113 @@
#pragma once
#if !defined(__RESHADE__) || __RESHADE__ < 30000
#error "ReShade 3.0+ is required to use this header file"
#endif
#ifndef RESHADE_DEPTH_INPUT_IS_UPSIDE_DOWN
#define RESHADE_DEPTH_INPUT_IS_UPSIDE_DOWN 0
#endif
#ifndef RESHADE_DEPTH_INPUT_IS_REVERSED
#define RESHADE_DEPTH_INPUT_IS_REVERSED 1
#endif
#ifndef RESHADE_DEPTH_INPUT_IS_LOGARITHMIC
#define RESHADE_DEPTH_INPUT_IS_LOGARITHMIC 0
#endif
#ifndef RESHADE_DEPTH_MULTIPLIER
#define RESHADE_DEPTH_MULTIPLIER 1
#endif
#ifndef RESHADE_DEPTH_LINEARIZATION_FAR_PLANE
#define RESHADE_DEPTH_LINEARIZATION_FAR_PLANE 1000.0
#endif
// Above 1 expands coordinates, below 1 contracts and 1 is equal to no scaling on any axis
#ifndef RESHADE_DEPTH_INPUT_Y_SCALE
#define RESHADE_DEPTH_INPUT_Y_SCALE 1
#endif
#ifndef RESHADE_DEPTH_INPUT_X_SCALE
#define RESHADE_DEPTH_INPUT_X_SCALE 1
#endif
// An offset to add to the Y coordinate, (+) = move up, (-) = move down
#ifndef RESHADE_DEPTH_INPUT_Y_OFFSET
#define RESHADE_DEPTH_INPUT_Y_OFFSET 0
#endif
#ifndef RESHADE_DEPTH_INPUT_Y_PIXEL_OFFSET
#define RESHADE_DEPTH_INPUT_Y_PIXEL_OFFSET 0
#endif
// An offset to add to the X coordinate, (+) = move right, (-) = move left
#ifndef RESHADE_DEPTH_INPUT_X_OFFSET
#define RESHADE_DEPTH_INPUT_X_OFFSET 0
#endif
#ifndef RESHADE_DEPTH_INPUT_X_PIXEL_OFFSET
#define RESHADE_DEPTH_INPUT_X_PIXEL_OFFSET 0
#endif
#define BUFFER_PIXEL_SIZE float2(BUFFER_RCP_WIDTH, BUFFER_RCP_HEIGHT)
#define BUFFER_SCREEN_SIZE float2(BUFFER_WIDTH, BUFFER_HEIGHT)
#define BUFFER_ASPECT_RATIO (BUFFER_WIDTH * BUFFER_RCP_HEIGHT)
namespace ReShade
{
#if defined(__RESHADE_FXC__)
float GetAspectRatio() { return BUFFER_WIDTH * BUFFER_RCP_HEIGHT; }
float2 GetPixelSize() { return float2(BUFFER_RCP_WIDTH, BUFFER_RCP_HEIGHT); }
float2 GetScreenSize() { return float2(BUFFER_WIDTH, BUFFER_HEIGHT); }
#define AspectRatio GetAspectRatio()
#define PixelSize GetPixelSize()
#define ScreenSize GetScreenSize()
#else
// These are deprecated and will be removed eventually.
static const float AspectRatio = BUFFER_WIDTH * BUFFER_RCP_HEIGHT;
static const float2 PixelSize = float2(BUFFER_RCP_WIDTH, BUFFER_RCP_HEIGHT);
static const float2 ScreenSize = float2(BUFFER_WIDTH, BUFFER_HEIGHT);
#endif
// Global textures and samplers
texture BackBufferTex : COLOR;
texture DepthBufferTex : DEPTH;
sampler BackBuffer { Texture = BackBufferTex; };
sampler DepthBuffer { Texture = DepthBufferTex; };
// Helper functions
float GetLinearizedDepth(float2 texcoord)
{
#if RESHADE_DEPTH_INPUT_IS_UPSIDE_DOWN
texcoord.y = 1.0 - texcoord.y;
#endif
texcoord.x /= RESHADE_DEPTH_INPUT_X_SCALE;
texcoord.y /= RESHADE_DEPTH_INPUT_Y_SCALE;
#if RESHADE_DEPTH_INPUT_X_PIXEL_OFFSET
texcoord.x -= RESHADE_DEPTH_INPUT_X_PIXEL_OFFSET * BUFFER_RCP_WIDTH;
#else // Do not check RESHADE_DEPTH_INPUT_X_OFFSET, since it may be a decimal number, which the preprocessor cannot handle
texcoord.x -= RESHADE_DEPTH_INPUT_X_OFFSET / 2.000000001;
#endif
#if RESHADE_DEPTH_INPUT_Y_PIXEL_OFFSET
texcoord.y += RESHADE_DEPTH_INPUT_Y_PIXEL_OFFSET * BUFFER_RCP_HEIGHT;
#else
texcoord.y += RESHADE_DEPTH_INPUT_Y_OFFSET / 2.000000001;
#endif
float depth = tex2Dlod(DepthBuffer, float4(texcoord, 0, 0)).x * RESHADE_DEPTH_MULTIPLIER;
#if RESHADE_DEPTH_INPUT_IS_LOGARITHMIC
const float C = 0.01;
depth = (exp(depth * log(C + 1.0)) - 1.0) / C;
#endif
#if RESHADE_DEPTH_INPUT_IS_REVERSED
depth = 1.0 - depth;
#endif
const float N = 1.0;
depth /= RESHADE_DEPTH_LINEARIZATION_FAR_PLANE - depth * (RESHADE_DEPTH_LINEARIZATION_FAR_PLANE - N);
return depth;
}
}
// Vertex shader generating a triangle covering the entire screen
void PostProcessVS(in uint id : SV_VertexID, out float4 position : SV_Position, out float2 texcoord : TEXCOORD)
{
texcoord.x = (id == 2) ? 2.0 : 0.0;
texcoord.y = (id == 1) ? 2.0 : 0.0;
position = float4(texcoord * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0);
}

View File

@@ -0,0 +1,216 @@
#pragma once
#if !defined(__RESHADE__) || __RESHADE__ < 30000
#error "ReShade 3.0+ is required to use this header file"
#endif
#define RESHADE_VERSION(major,minor,build) (10000 * (major) + 100 * (minor) + (build))
#define SUPPORTED_VERSION(major,minor,build) (__RESHADE__ >= RESHADE_VERSION(major,minor,build))
// Since 3.0.0
// Commit current in-game user interface status
// https://github.com/crosire/reshade/commit/302bacc49ae394faedc2e29a296c1cebf6da6bb2#diff-82cf230afdb2a0d5174111e6f17548a5R1183
// Added various GUI related uniform variable annotations
// https://reshade.me/forum/releases/2341-3-0
#define __UNIFORM_INPUT_ANY ui_type = "input";
#define __UNIFORM_INPUT_BOOL1 __UNIFORM_INPUT_ANY // It is unsupported on all version
#define __UNIFORM_INPUT_BOOL2 __UNIFORM_INPUT_ANY // It is unsupported on all version
#define __UNIFORM_INPUT_BOOL3 __UNIFORM_INPUT_ANY // It is unsupported on all version
#define __UNIFORM_INPUT_BOOL4 __UNIFORM_INPUT_ANY // It is unsupported on all version
#define __UNIFORM_INPUT_INT1 __UNIFORM_INPUT_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_INPUT_INT2 __UNIFORM_INPUT_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_INPUT_INT3 __UNIFORM_INPUT_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_INPUT_INT4 __UNIFORM_INPUT_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_INPUT_FLOAT1 __UNIFORM_INPUT_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_INPUT_FLOAT2 __UNIFORM_INPUT_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_INPUT_FLOAT3 __UNIFORM_INPUT_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_INPUT_FLOAT4 __UNIFORM_INPUT_ANY // If it was not supported in someday or now, please add information
// Since 4.0.1
// Change slider widget to be used with new "slider" instead of a "drag" type annotation
// https://github.com/crosire/reshade/commit/746229f31cd6f311a3e72a543e4f1f23faa23f11#diff-59405a313bd8cbfb0ca6dd633230e504R1701
// Changed slider widget to be used with < ui_type = "slider"; > instead of < ui_type = "drag"; >
// https://reshade.me/forum/releases/4772-4-0
#if SUPPORTED_VERSION(4,0,1)
#define __UNIFORM_DRAG_ANY ui_type = "drag";
// Since 4.0.0
// Rework statistics tab and add drag widgets back
// https://github.com/crosire/reshade/commit/1b2c38795f00efd66c007da1f483f1441b230309
// Changed drag widget to a slider widget (old one is still available via < ui_type = "drag2"; >)
// https://reshade.me/forum/releases/4772-4-0
#elif SUPPORTED_VERSION(4,0,0)
#define __UNIFORM_DRAG_ANY ui_type = "drag2";
// Since 3.0.0
// Commit current in-game user interface status
// https://github.com/crosire/reshade/commit/302bacc49ae394faedc2e29a296c1cebf6da6bb2#diff-82cf230afdb2a0d5174111e6f17548a5R1187
// Added various GUI related uniform variable annotations
// https://reshade.me/forum/releases/2341-3-0
#else
#define __UNIFORM_DRAG_ANY ui_type = "drag";
#endif
#define __UNIFORM_DRAG_BOOL1 __UNIFORM_DRAG_ANY // It is unsupported on all version
#define __UNIFORM_DRAG_BOOL2 __UNIFORM_DRAG_ANY // It is unsupported on all version
#define __UNIFORM_DRAG_BOOL3 __UNIFORM_DRAG_ANY // It is unsupported on all version
#define __UNIFORM_DRAG_BOOL4 __UNIFORM_DRAG_ANY // It is unsupported on all version
#define __UNIFORM_DRAG_INT1 __UNIFORM_DRAG_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_DRAG_INT2 __UNIFORM_DRAG_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_DRAG_INT3 __UNIFORM_DRAG_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_DRAG_INT4 __UNIFORM_DRAG_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_DRAG_FLOAT1 __UNIFORM_DRAG_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_DRAG_FLOAT2 __UNIFORM_DRAG_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_DRAG_FLOAT3 __UNIFORM_DRAG_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_DRAG_FLOAT4 __UNIFORM_DRAG_ANY // If it was not supported in someday or now, please add information
// Since 4.0.1
// Change slider widget to be used with new "slider" instead of a "drag" type annotation
// https://github.com/crosire/reshade/commit/746229f31cd6f311a3e72a543e4f1f23faa23f11#diff-59405a313bd8cbfb0ca6dd633230e504R1699
// Changed slider widget to be used with < ui_type = "slider"; > instead of < ui_type = "drag"; >
// https://reshade.me/forum/releases/4772-4-0
#if SUPPORTED_VERSION(4,0,1)
#define __UNIFORM_SLIDER_ANY ui_type = "slider";
// Since 4.0.0
// Rework statistics tab and add drag widgets back
// https://github.com/crosire/reshade/commit/1b2c38795f00efd66c007da1f483f1441b230309
// Changed drag widget to a slider widget (old one is still available via < ui_type = "drag2"; >)
// https://reshade.me/forum/releases/4772-4-0
#elif SUPPORTED_VERSION(4,0,0)
#define __UNIFORM_SLIDER_ANY ui_type = "drag";
#else
#define __UNIFORM_SLIDER_ANY __UNIFORM_DRAG_ANY
#endif
#define __UNIFORM_SLIDER_BOOL1 __UNIFORM_SLIDER_ANY // It is unsupported on all version
#define __UNIFORM_SLIDER_BOOL2 __UNIFORM_SLIDER_ANY // It is unsupported on all version
#define __UNIFORM_SLIDER_BOOL3 __UNIFORM_SLIDER_ANY // It is unsupported on all version
#define __UNIFORM_SLIDER_BOOL4 __UNIFORM_SLIDER_ANY // It is unsupported on all version
#define __UNIFORM_SLIDER_INT1 __UNIFORM_SLIDER_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_SLIDER_INT2 __UNIFORM_SLIDER_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_SLIDER_INT3 __UNIFORM_SLIDER_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_SLIDER_INT4 __UNIFORM_SLIDER_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_SLIDER_FLOAT1 __UNIFORM_SLIDER_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_SLIDER_FLOAT2 __UNIFORM_SLIDER_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_SLIDER_FLOAT3 __UNIFORM_SLIDER_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_SLIDER_FLOAT4 __UNIFORM_SLIDER_ANY // If it was not supported in someday or now, please add information
// Since 3.0.0
// Add combo box display type for uniform variables and fix displaying of integer variable under Direct3D 9
// https://github.com/crosire/reshade/commit/b025bfae5f7343509ec0cacf6df0cff537c499f2#diff-82cf230afdb2a0d5174111e6f17548a5R1631
// Added various GUI related uniform variable annotations
// https://reshade.me/forum/releases/2341-3-0
#define __UNIFORM_COMBO_ANY ui_type = "combo";
// __UNIFORM_COMBO_BOOL1
#define __UNIFORM_COMBO_BOOL2 __UNIFORM_COMBO_ANY // It is unsupported on all version
#define __UNIFORM_COMBO_BOOL3 __UNIFORM_COMBO_ANY // It is unsupported on all version
#define __UNIFORM_COMBO_BOOL4 __UNIFORM_COMBO_ANY // It is unsupported on all version
#define __UNIFORM_COMBO_INT1 __UNIFORM_COMBO_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_COMBO_INT2 __UNIFORM_COMBO_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_COMBO_INT3 __UNIFORM_COMBO_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_COMBO_INT4 __UNIFORM_COMBO_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_COMBO_FLOAT1 __UNIFORM_COMBO_ANY // It is unsupported on all version
#define __UNIFORM_COMBO_FLOAT2 __UNIFORM_COMBO_ANY // It is unsupported on all version
#define __UNIFORM_COMBO_FLOAT3 __UNIFORM_COMBO_ANY // It is unsupported on all version
#define __UNIFORM_COMBO_FLOAT4 __UNIFORM_COMBO_ANY // It is unsupported on all version
// Since 4.0.0 (but the ui_items force set "Off\0On\0"), and if less than it force converted to checkbox
// Add option to display boolean values as combo box instead of checkbox
// https://github.com/crosire/reshade/commit/aecb757c864c9679e77edd6f85a1521c49e489c1#diff-59405a313bd8cbfb0ca6dd633230e504R1147
// https://github.com/crosire/reshade/blob/v4.0.0/source/gui.cpp
// Added option to display boolean values as combo box instead of checkbox (via < ui_type = "combo"; >)
// https://reshade.me/forum/releases/4772-4-0
#define __UNIFORM_COMBO_BOOL1 __UNIFORM_COMBO_ANY
// Since 4.0.0
// Cleanup GUI code and rearrange some widgets
// https://github.com/crosire/reshade/commit/6751f7bd50ea7c0556cf0670f10a4b4ba912ee7d#diff-59405a313bd8cbfb0ca6dd633230e504R1711
// Added radio button widget (via < ui_type = "radio"; ui_items = "Button 1\0Button 2\0...\0"; >)
// https://reshade.me/forum/releases/4772-4-0
#if SUPPORTED_VERSION(4,0,0)
#define __UNIFORM_RADIO_ANY ui_type = "radio";
#else
#define __UNIFORM_RADIO_ANY __UNIFORM_COMBO_ANY
#endif
#define __UNIFORM_RADIO_BOOL1 __UNIFORM_RADIO_ANY // It is unsupported on all version
#define __UNIFORM_RADIO_BOOL2 __UNIFORM_RADIO_ANY // It is unsupported on all version
#define __UNIFORM_RADIO_BOOL3 __UNIFORM_RADIO_ANY // It is unsupported on all version
#define __UNIFORM_RADIO_BOOL4 __UNIFORM_RADIO_ANY // It is unsupported on all version
#define __UNIFORM_RADIO_INT1 __UNIFORM_RADIO_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_RADIO_INT2 __UNIFORM_RADIO_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_RADIO_INT3 __UNIFORM_RADIO_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_RADIO_INT4 __UNIFORM_RADIO_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_RADIO_FLOAT1 __UNIFORM_RADIO_ANY // It is unsupported on all version
#define __UNIFORM_RADIO_FLOAT2 __UNIFORM_RADIO_ANY // It is unsupported on all version
#define __UNIFORM_RADIO_FLOAT3 __UNIFORM_RADIO_ANY // It is unsupported on all version
#define __UNIFORM_RADIO_FLOAT4 __UNIFORM_RADIO_ANY // It is unsupported on all version
// Since 4.1.0
// Fix floating point uniforms with unknown "ui_type" not showing up in UI
// https://github.com/crosire/reshade/commit/50e5bf44dfc84bc4220c2b9f19d5f50c7a0fda66#diff-59405a313bd8cbfb0ca6dd633230e504R1788
// Fixed floating point uniforms with unknown "ui_type" not showing up in UI
// https://reshade.me/forum/releases/5021-4-1
#define __UNIFORM_COLOR_ANY ui_type = "color";
// Since 3.0.0
// Move technique list to preset configuration file
// https://github.com/crosire/reshade/blob/84bba3aa934c1ebe4c6419b69dfe1690d9ab9d34/source/runtime.cpp#L1328
// Added various GUI related uniform variable annotations
// https://reshade.me/forum/releases/2341-3-0
// If empty, these versions before 4.1.0 are decide that the type is color from the number of components
#define __UNIFORM_COLOR_BOOL1 __UNIFORM_COLOR_ANY // It is unsupported on all version
#define __UNIFORM_COLOR_BOOL2 __UNIFORM_COLOR_ANY // It is unsupported on all version
#define __UNIFORM_COLOR_BOOL3 __UNIFORM_COLOR_ANY // It is unsupported on all version
#define __UNIFORM_COLOR_BOOL4 __UNIFORM_COLOR_ANY // It is unsupported on all version
#define __UNIFORM_COLOR_INT1 __UNIFORM_COLOR_ANY // It is unsupported on all version
#define __UNIFORM_COLOR_INT2 __UNIFORM_COLOR_ANY // It is unsupported on all version
#define __UNIFORM_COLOR_INT3 __UNIFORM_COLOR_ANY // It is unsupported on all version
#define __UNIFORM_COLOR_INT4 __UNIFORM_COLOR_ANY // It is unsupported on all version
// __UNIFORM_COLOR_FLOAT1
#define __UNIFORM_COLOR_FLOAT2 __UNIFORM_COLOR_ANY // It is unsupported on all version
#define __UNIFORM_COLOR_FLOAT3 __UNIFORM_COLOR_ANY // If it was not supported in someday or now, please add information
#define __UNIFORM_COLOR_FLOAT4 __UNIFORM_COLOR_ANY // If it was not supported in someday or now, please add information
// Since 4.2.0
// Add alpha slider widget for single component uniform variables (#86)
// https://github.com/crosire/reshade/commit/87a740a8e3c4dcda1dd4eeec8d5cff7fa35fe829#diff-59405a313bd8cbfb0ca6dd633230e504R1820
// Added alpha slider widget for single component uniform variables
// https://reshade.me/forum/releases/5150-4-2
#if SUPPORTED_VERSION(4,2,0)
#define __UNIFORM_COLOR_FLOAT1 __UNIFORM_COLOR_ANY
#else
#define __UNIFORM_COLOR_FLOAT1 __UNIFORM_SLIDER_ANY
#endif
// Since 4.3.0
// Add new "list" GUI widget (#103)
// https://github.com/crosire/reshade/commit/515287d20ce615c19cf3d4c21b49f83896f04ddc#diff-59405a313bd8cbfb0ca6dd633230e504R1894
// Added new "list" GUI widget
// https://reshade.me/forum/releases/5417-4-3
#if SUPPORTED_VERSION(4,3,0)
#define __UNIFORM_LIST_ANY ui_type = "list";
#else
#define __UNIFORM_LIST_ANY __UNIFORM_COMBO_ANY
#endif
// __UNIFORM_LIST_BOOL1
#define __UNIFORM_LIST_BOOL2 __UNIFORM_LIST_ANY // Not supported in all versions
#define __UNIFORM_LIST_BOOL3 __UNIFORM_LIST_ANY // Not supported in all versions
#define __UNIFORM_LIST_BOOL4 __UNIFORM_LIST_ANY // Not supported in all versions
#define __UNIFORM_LIST_INT1 __UNIFORM_LIST_ANY // Supported in 4.3.0
#define __UNIFORM_LIST_INT2 __UNIFORM_LIST_ANY // Not supported in all versions
#define __UNIFORM_LIST_INT3 __UNIFORM_LIST_ANY // Not supported in all versions
#define __UNIFORM_LIST_INT4 __UNIFORM_LIST_ANY // Not supported in all versions
#define __UNIFORM_LIST_FLOAT1 __UNIFORM_LIST_ANY // Not supported in all versions
#define __UNIFORM_LIST_FLOAT2 __UNIFORM_LIST_ANY // Not supported in all versions
#define __UNIFORM_LIST_FLOAT3 __UNIFORM_LIST_ANY // Not supported in all versions
#define __UNIFORM_LIST_FLOAT4 __UNIFORM_LIST_ANY // Not supported in all versions
// For compatible with ComboBox
#define __UNIFORM_LIST_BOOL1 __UNIFORM_COMBO_ANY

View File

@@ -0,0 +1,72 @@
/**
* Tonemap version 1.1
* by Christian Cann Schuldt Jensen ~ CeeJay.dk
*/
#include "ReShadeUI.fxh"
uniform float Gamma < __UNIFORM_SLIDER_FLOAT1
ui_min = 0.0; ui_max = 2.0;
ui_tooltip = "Adjust midtones. 1.0 is neutral. This setting does exactly the same as the one in Lift Gamma Gain, only with less control.";
> = 1.0;
uniform float Exposure < __UNIFORM_SLIDER_FLOAT1
ui_min = -1.0; ui_max = 1.0;
ui_tooltip = "Adjust exposure";
> = 0.0;
uniform float Saturation < __UNIFORM_SLIDER_FLOAT1
ui_min = -1.0; ui_max = 1.0;
ui_tooltip = "Adjust saturation";
> = 0.0;
uniform float Bleach < __UNIFORM_SLIDER_FLOAT1
ui_min = 0.0; ui_max = 1.0;
ui_tooltip = "Brightens the shadows and fades the colors";
> = 0.0;
uniform float Defog < __UNIFORM_SLIDER_FLOAT1
ui_min = 0.0; ui_max = 1.0;
ui_tooltip = "How much of the color tint to remove";
> = 0.0;
uniform float3 FogColor < __UNIFORM_COLOR_FLOAT3
ui_label = "Defog Color";
ui_tooltip = "Which color tint to remove";
> = float3(0.0, 0.0, 1.0);
#include "ReShade.fxh"
float3 TonemapPass(float4 position : SV_Position, float2 texcoord : TexCoord) : SV_Target
{
float3 color = tex2D(ReShade::BackBuffer, texcoord).rgb;
color = saturate(color - Defog * FogColor * 2.55); // Defog
color *= pow(2.0f, Exposure); // Exposure
color = pow(color, Gamma); // Gamma
const float3 coefLuma = float3(0.2126, 0.7152, 0.0722);
float lum = dot(coefLuma, color);
float L = saturate(10.0 * (lum - 0.45));
float3 A2 = Bleach * color;
float3 result1 = 2.0f * color * lum;
float3 result2 = 1.0f - 2.0f * (1.0f - lum) * (1.0f - color);
float3 newColor = lerp(result1, result2, L);
float3 mixRGB = A2 * newColor;
color += ((1.0f - A2) * mixRGB);
float3 middlegray = dot(color, (1.0 / 3.0));
float3 diffcolor = color - middlegray;
color = (color + diffcolor * Saturation) / (1 + (diffcolor * Saturation)); // Saturation
return color;
}
technique Tonemap
{
pass
{
VertexShader = PostProcessVS;
PixelShader = TonemapPass;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 558 KiB

BIN
EXE/resources.dll Normal file

Binary file not shown.

BIN
EXE/rp8.dll Normal file

Binary file not shown.

BIN
EXE/rpclocal.dll Normal file

Binary file not shown.

BIN
EXE/server.dll Normal file

Binary file not shown.

BIN
EXE/serverresources.dll Normal file

Binary file not shown.

BIN
EXE/shading.dll Normal file

Binary file not shown.

BIN
EXE/soundmanager.dll Normal file

Binary file not shown.

BIN
EXE/soundstreamer.dll Normal file

Binary file not shown.

BIN
EXE/storyfactions.dll Normal file

Binary file not shown.

View File

@@ -0,0 +1,15 @@
Story Factions by Jason Hood
Version 1.00
Story Factions allows customization of the factions that are excluded from the
reputation list. Using this DLL defines all such factions, completely replacing
the defaults (provided the ini exists and actually contains factions). To use
it, copy STORYFACTIONS.DLL to the EXE directory and add it to the [Libraries]
section of EXE\dacom.ini. Then copy STORYFACTIONS.INI to the DATA directory and
edit it as required.
Jason Hood, 23 March, 2010.
http://freelancer.adoxa.cjb.net/

BIN
EXE/system.dll Normal file

Binary file not shown.

View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2021 C.S. Melis
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

BIN
EXE/thorn.dll Normal file

Binary file not shown.

BIN
EXE/unicows.dll Normal file

Binary file not shown.

BIN
EXE/x86math.dll Normal file

Binary file not shown.

BIN
EXE/ximage.dll Normal file

Binary file not shown.

BIN
EXE/zlib.dll Normal file

Binary file not shown.

20
EXE/zlib_license.txt Normal file
View File

@@ -0,0 +1,20 @@
Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Jean-loup Gailly Mark Adler
jloup@gzip.org madler@alumni.caltech.edu