-
Notifications
You must be signed in to change notification settings - Fork 137
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vanilla merge (defmethod + sky fix) #45
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fixes #2825
This saved about 1.6 ms per frame in the city for me (~1.3 saved from not doing sky twice, 0.3 saved in format lookup tables). The big texture animator is about 1.0 ms. 
Co-authored-by: animalstyletaco <animalstyletaco95@gmail.com>
…827) I havn't tested it yet, but I can almost guarantee that atleast `goalc` will not work in the slightest! But the project is atleast fully compiling. My hope is to start translating some AVX to NEON next / get `goalc` working...eventually.
Added framework to do texture animations entirely in C++. Currently only works on relatively simple ones, and doesn't handle updating all parameters - only the speeds. Connected texture animations to merc and tfrag for skull gems, dark bomb, and scrolling conveyors. Cleaned up Tfragment/Tfrag3, which used to be two classes. This was one of the first C++ renderers, so it had a weird design.
Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
This fixes the crash reported in open-goal/jak-project#2833 There was a memory bug here for a long time where our array of `VagCmd` in `iso_queue.cpp` was too small. This caused GetVagCommand to return bogus pointers, and sound code would write over other parts of memory.
- Add security wall animation - Add waterfall animations - Add lava animations - Update layer values from the game to fix the security wall - Remove leftover debug in `level.gc` that would break level-specific animations on the second time you visited the level - Optionally load animated slot textures to the pool so generic can use them (fixes skull gems in UI)
The progress menu loads its icon textures from a .STR file that we were previously ignoring. This change: - updates the decompiler so it can process a .STR file containing a texture - adds a feature to force an entire page to always be loaded in the PC renderer by putting all textures in the GAME.FR3 file. - regenerates the texture offset map file for jak 2 with these new textures For now, I've just put the icon textures in GAME.FR3. The downside is that these will always stay on the GPU, using up VRAM even when they aren't needed. But the entire GAME.FR3 file is under 3 MB so I think it's ok. 
Fixes skull gems using a low resolution texture. Fixes issue where jak in cutscenes is dark after watching oracle-level-1 (and likely other bugs with texture animations getting stuck) --------- Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com>
…#2843) Lots of manual fixes to make the text and other UI elements in the progress fit within the small 4x3 view.         I've also changed the select start menus to not have that giant space in each option. It's behind a toggle in the code right now.  Additionally: - fixed city billboard particles - fix stadium crash from original game - fix an accidental regression
… to left-alt and make it customizable (#2848)
There was a single static path buffer being shared between multiple file i/o threads. So sometimes you would end up using the wrong path for the file, and getting size/data for the wrong file. I think the original reason to have this buffer was just me being lazy when we changed how project paths works a long time ago. It was a bad idea in the first place.
This should fix a crash and animation bug in snowy. The way to trigger the bug: - go on ice - move forward slowly - stop moving forward. Reach zero speed when the frame number isn't between 30 and 35 of the ice walking animation - Due to this bug, the animation gets stuck at frame 60 - Take damage (due to normal lurker or ice lurker) - Sidekick eye animation crashes because a frame number is NaN.
  (The "Custom" option does not do anything right now.)
supersedes #2839
The yakow texture is actually missing from the real game too. This adds a special case in the extractor to replace it with a similar-ish fur texture: 
 Should probably wait until the release just in case. But I'm 99% sure this line was just a mistake in the original implementation.
When drawing the spinning palace, there's a terrible hack that lets some stuff be drawn with different camera matrices. The ocean is drawn with camera-other (which spins), but was being culled with camera (doesn't spin). This changes ocean to use the right camera matrix. Note that the ocean is special when it comes to camera-other - it always uses camera-other if there is one. Other uses are set per-level and should already be handled correctly.
not sure how this passed tests....
This changes how `BlitDisplays.cpp` works so it looks at the current render buffer, rather than the back buffer. This approach is a bit faster because we avoid copying the back buffer on every single frame. It also removes the black frames when the transition starts/stops. The remaining issues are: - there's still a single frame of weirdness with the sprite glow renderer. - when changing resolutions, it doesn't work super well.
In jak 2, there's an option to disable envmap. It's used on krew holograms, hiphog trophies, and baron bosses in palace/tomb.
The way we got/stored background matrices is a bit weird and full of leftovers from the first attempts at porting renderers. This doesn't work well with the Jak 2 "other camera" system where some stuff is rendered with a different camera matrix. This cleans most of it up. The exception is that the collide mesh renderer and the additional sprite culling I added still need to peek at some cached camera matrices. This fixes the problem where etie uses the wrong matrices for "other camera" levels. Now the "hole covers" go in the holes in the background of the throne room. 
…s (#3088) This fix is for the following error when building with llvm on windows ``` [build] llvm-rc: Error in VERSIONINFO statement (ID 1): [proc] The command: "C:\Program Files\CMake\bin\cmake.exe" --build C:/.../git/jak-project-test/out/build/Release --parallel 8 exited with code: 1 [build] Non-ASCII 8-bit codepoint (´┐¢) can't be interpreted in the current codepage [build] ninja: build stopped: subcommand failed. ``` It's caused by llvm-rc not handling non 8-bit characters. The same issue is discussed in the curl project here curl/curl#7765 This commit copies the fix from curl, replacing '©' with '(C)'.
Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
…enting my work (#3096)
Co-authored-by: water <awaterford111445@gmail.com>
Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
Major change to how `deftype` shows up in our code: - the decompiler will no longer emit the `offset-assert`, `method-count-assert`, `size-assert` and `flag-assert` parameters. There are extremely few cases where having this in the decompiled code is helpful, as the types there come from `all-types` which already has those parameters. This also doesn't break type consistency because: - the asserts aren't compared. - the first step of the test uses `all-types`, which has the asserts, which will throw an error if they're bad. - the decompiler won't emit the `heap-base` parameter unless necessary now. - the decompiler will try its hardest to turn a fixed-offset field into an `overlay-at` field. It falls back to the old offset if all else fails. - `overlay-at` now supports field "dereferencing" to specify the offset that's within a field that's a structure, e.g.: ```lisp (deftype foobar (structure) ((vec vector :inline) (flags int32 :overlay-at (-> vec w)) ) ) ``` in this structure, the offset of `flags` will be 12 because that is the final offset of `vec`'s `w` field within this structure. - **removed ID from all method declarations.** IDs are only ever automatically assigned now. Fixes #3068. - added an `:overlay` parameter to method declarations, in order to declare a new method that goes on top of a previously-defined method. Syntax is `:overlay <method-name>`. Please do not ever use this. - added `state-methods` list parameter. This lets you quickly specify a list of states to be put in the method table. Same syntax as the `states` list parameter. The decompiler will try to put as many states in this as it can without messing with the method ID order. Also changes `defmethod` to make the first type definition (before the arguments) optional. The type can now be inferred from the first argument. Fixes #3093. --------- Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
…cts in CI (#3114)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.