Git Product home page Git Product logo

opensauce's Introduction

OPENSAUCE

This repository serves as a Git mirror to the original OpenSauce Release repository, which is currently found here:

https://bitbucket.org/KornnerStudios/opensauce-release

https://github.com/HaloMods/OpenSauce

BRANCHES

  • The master branch is used for active development. It is based on the original master branch from the aforementioned OpenSauce Release repository.

  • The upstream branch is a read-only copy of the OpenSauce Release repository's master branch.

  • Forks are stored in dedicated branches, all prefixed with "fork/".

  • When multiple forks were authored by the same person, they are grouped under "fork//"

  • Branches from the HaloMods repository are located under the "hm/" prefix.

  • The wiki branch was previously used to contain the OpenSauce documentation; however, the docs are now publicly located here:

    https://github.com/yumiris/OpenSauce/wiki

HALOMODS

A sister-repo to the BitBucket repo. This repository was developed parallel to the BitBucket repo and consequently has a similar, but different subversion history and set of branches. Read-only copies of the branches in the original HaloMods repository are located in the "hm/" namespace:

  • hm/Automated_Testing
  • hm/CheApe_Settings_(Mostly)
  • hm/Cleanup
  • hm/GBuffer_Rework
  • hm/OS_for_1.10
  • hm/Object_Shadows
  • hm/OpenSauceUI
  • hm/Property_Tree_Configuration
  • hm/Soft_Particles
  • hm/Specular_Directional_Lightmaps
  • hm/Unit_Boarding_and_Transforms
  • hm/master

FORKS

Mirrors of relevant forks are also available as branches in this repository:

Branch Description
blamsauce Dwood's archived, interim fork. Used to separate Open Sauce's YeloLib into a more manageable project.
experimental guardian2433's fork of Open Sauce V4.0 containing experimental code they implement.
experimental_cleaned_git Identical to the previous fork, but the git log is easier to read.
opensauce_v5 BipolarAurora's fork of CorpenEldorito's version of Open-Sauce V5 for personal use and potential fixes. All fixes are limited to GameSpyOpen. No OpenSauce code was touched.
sprinkle Fork by sprinkle131313 which focuses on refactoring, improvements, and documentation.

FORK/TEMPERA

Read-only copy of Dwood's Tempera repository, a project based from Open Sauce with a focus on Forge and local co-op. Branches are stored under "fork/tempera":

  • fork/tempera/master
  • fork/tempera/first-rewrite

FORK/OS_UPGRADE

Read-only copy of Dwood's interim fork used as a base for porting some functions to Tempera. Branches are found under "fork/os_upgrade":

  • fork/os_upgrade/Bare_Minimum
  • fork/os_upgrade/Halo_1_10
  • fork/os_upgrade/master

COPYRIGHT

Review the license directory for copyright information on the respective sections of this repository.

opensauce's People

Contributors

bintoss avatar kornman00 avatar miriswisdom avatar mksbamford avatar thefieryscythe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

opensauce's Issues

Update header includes to be compatible with 7-zip 19.00

The 7-zip source code releases contain four root folders. Asm, C, CPP, and DOC.

Almost all includes are resolved when linking to the C source files, but those files are lacking 7zIn.h.
That file is located in the CPP directory structure at ./CPP/7zip/Archive/7z/7zIn.h

TODO: try portable D3DX9_43.dll

When installed/registered and then copied into SPV3's game directory, OpenSauce will prefer loading ./D3DX9_43.dll over %WINDOWS%/SysWow6432/D3DX9_43.dll.

What if we don't install and register the module?

This will require setting up a clean VM that does not have D3DX 9 (nor the entire DirectX eXtensions package) installed and registered.
If Windows Sandbox is used, verify it does not copy the host system directories.

Merge "fork/experimental" into "origin/master"

Note to self: Remember to use Pull Requests for formality's sake and to automate project tasks.

Small problem with this fork. One of the files is huge and takes a long time to upload/download over my 0.1mbps internet.

Improve identification of OS-modified tags

As implied in an Invader discussion.

Ideas:

  • new file extension (.YTag? e.g. ".gbxmodel.ytag")
  • move OS-specific data outside the stock structs wherever possible. Pointers may be useful in this endeavor.
  • Split a tag into two parts/files:
    1. Standard HEK structs
    2. Yelo structs
    • The Standard tag could be used alone, but the Yelo tag-part will be automatically loaded into the scenario if it is found in the tags directory. Add a way to block/remove the Yelo tag from the scenario before compiling.

Remember to support legacy-OS tag structs as well.

Detect game resolution and aspect ratio, then initialize post-processing surface to those values

I noticed a snippet of the post-processing backend initializing first to 4:3 ratio and then to 16:9.

  1. This may be the cause of the resolution-switching crashes
  2. dgVoodoo and Chimera HATE this. It breaks their resolution overrides and crashes the Halo CE.
  3. 21:9 monitors are more common than they used to be. Initializing to a 16:9 ratio could cause issues.
  4. I wonder if this is what screws up the mouse cursor bound in the main menu...

Drop support for XP in favor of various C++ features.

The current Build Solution includes v120_xp. This allows support for XP at the cost of C++ improvements. Don't need XP support when Vista and 7 are no longer officially supported by Microsoft.
Source: https://stackoverflow.com/a/32580205

"...improvements in the platform that are not available on XP"

  1. Building HLSL
  2. Debugging DirectX
  3. Static analysis
  4. Remote debugging
  5. Process status API

Official support for Windows XP ended several years ago. We should move on.
It is generally recommended to not use Windows XP due to its numerous(1) security(2) flaws(3).

Make CE Shader file paths relative and/or prefer local over global

image

    Directory: C:\ProgramData\Kornner Studios

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2020-01-16  8:31 AM                Halo CE

    Directory: C:\ProgramData\Kornner Studios\Halo CE

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2019-03-02  5:14 PM                shaders
-a---          2015-02-03  2:32 PM        1450428 OpenSauceUI.pak

    Directory: C:\ProgramData\Kornner Studios\Halo CE\shaders

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          2013-01-22  9:55 PM          40588 gbuffer_shaders.shd
-a---          2013-01-22  9:55 PM          37557 pp_shaders.shd

Tweak OS-Tool Lightmap-Ex pipeline

As suggested by Guardian2433

os_tool lightmaps-ex levels\test\bloodgulch\bloodgulch bloodgulch 0 1 0.0000001
that will render and unwrap the BSP.
0 0 0.0000001 willl render but not unwrap the BSP.
Or should it be 1 0 0.0000001 and 0 0 0.0000001
Unwrap first, then quality, then threshhold?

Merge "hm/Cleanup" into "orgin/master"

Due to this branch's widespread changes, this should be the last of the HaloMods repository's branches to be merged into master.
It will require a TON of manual merging.

Prefer Chimera FOV Settings

Disable Open Sauce FOV Adjustment if Chimera is loaded. Alternatively, pass FOV adjustment via OS overlay to Chimera.
Beware of breaking Chimera's FOV formula fix!

Add toggle for HCE FOV slider snapping

Snapping to multiples of 5 normally wouldn't be an issue, but the default/optimal 16:9 HCE FOV is not a multiple of 5.

Alternatively, cycle snapping between (no snap), (integers), and (multiples of 5).

feat(opensauce, halo1, rasterizer): utilize ReShade API for new post-processing API

ReShade Official Homepage
ReShade API Reference

Currently, this is more of a nice-to-have idea than a solid plan. I talked to Jazz about this a few times in the past. Nothing in-depth.

Caveats

Licensing and Redistribution

ReShade is "BSD 3-Clause" licensed. This license states the binaries can be redistributed so long as certain conditions are met.

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.

However, the homepage has a conflicting statement.

Do NOT share the binaries or shader files. Link users to this website instead.

Related Issues

Update ReadMe with a list of dependencies and shared code

Related Issues

zlib - 1.2.5 Copyright 1995-2010 Jean-loup Gailly and Mark Adler

https://zlib.net/

code based on "xma_parse" code written by HCS

https://hcs64.com/contact.html
Used with permission.

GameSpy Open SDK

DISCONTINUED http://www.poweredbygamespy.com 404
http://developer.poweredbygamespy.com/forum/sdk-usage-open-source-environment 404
Register with GS to gain access to their SDK for free.

Alternatives

Name Type/Equivalent
GameProgressive/UniSpySDK GameSpy SDK
Nitrocaster/GameSpy GameSpy SDK
Nitrocaster/GameSpy/network GameSpy SDK

binary references to SevenZipSharp

DirectX SDK (Deprecated in 2010)

See #42

'slist'

  • Copyright (c) 1997 Silicon Graphics Computer Systems, Inc.

TinyXML

Mongoose

7-zip

GWEN-UI

Visual Leak Detector

Change Halo CE hook method to be more compatible with other mods

Add Open Sauce to Halo CE's import table? This method was once proposed for use in the Vulpes mod by Mia (Donut) and Shelly (SBB Michelle) to load before Open Sauce.
...There may be a better alternative at this point.
May solve some module (DLL) loading conflicts.

Update licenses

licenses
7-zip: last updated 2010
BlamLib: 2012 - website link is no longer valid.
Mongoose: 2010
Open Sauce: 2012
Xbox: 2012
GPL3: 2007
zlib: 2010

Preprocess maps' embedded effects to temporarily disable unused framebuffers

Pros

  • Only the necessary post-processing framebuffers will be enabled as part of the Geometry framebuffer. If none are needed, disable G-Buffer until needed by another map.

Cons

  • This may increase the initial loading time of a map.
  • If the user forces a new effect to load, they will either need to manually enable the relevant framebuffers (OS4.0) or indicate them in the effect's header (OS4.1+)

How

  • Using/Include lines in header of effects scripts? 4.1+ planned support
  • Pre-process the entirety of each and every effect for relevant buffers? OS 4.0 compatibility

Prefer Chimera Widescreen Fix

Disable Open Sauce widescreen fix when Chimera is detected. Alternatively, allow OS WS Fix to be configured when chimera_widescreen_fix == 0

Allow creation of map files >384MiB

I need to figure out how to do this again; I used to have this memorized, but I forgot it and I don't have a backup in my HCE chats folder.

Note 1: There are a few pre-patched OS_Tools floating around that do this. It would be best to have some sort of source control.

Note 2: It might be best to make an Open Sauce fork of Invader for use in the present rather waiting for something better to come along.

Note 3: OS_Tool should be kept as simple as possible. It should not compete with Invader Tool. Competition in the HCE modding community is historically bad for the community (aside from competitions hosted by Open Carnage).

Implement file compression in Halo Custom Edition map files (.map, .yelo)

Preferable use the same compression format implemented in Invader-compress (zstandard, alternatively zlib/deflate)

Pros:

  • Save space on storage drives.
  • Less time to download.
  • If many map files are compressed in an archive, they won't need as much C:\ drive space to be extracted.

Cons:

  • Longer time to load (decompress before loading in game-engine, editor, or tag extractor).
  • This feature may take significant amount of time to be supported by other community software (MEK, for instance) and gain traction in usage.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.