Commit Graph

162 Commits

Author SHA1 Message Date
water111 b5705bde96 [decomp] Partial implementation of tie (#1916)
Some stuff isn't working fully yet:
- fog color
- time of day
- draw order for multiple passes (currently all draws in the default tie
bucket)
- possibly settings for transparent stuff (untested, but might work)
- the "vanish" effect (we might not want this anyway?)
- environment mapping/etie completely not implemented.


![image](https://user-images.githubusercontent.com/48171810/192154314-2cc8ac51-9dad-474f-a84b-3a1d98973215.png)

![image](https://user-images.githubusercontent.com/48171810/192154316-457a7ee0-b5a4-4a40-b48e-8863114da735.png)
2022-09-25 12:50:51 -04:00
water111 edecac9f09 [decomp] add shrubbery renderer (#1914)
as with last time, fog and time of day are still garbage, but it still
works:


![image](https://user-images.githubusercontent.com/48171810/192119423-91b80500-a161-42ce-b734-0c528cc721cf.png)

The shrub near render is just falling back to generic again.
2022-09-24 17:46:13 -04:00
water111 80cefb9575 [decomp] background and tfrag (#1909) 2022-09-24 14:30:44 -04:00
water111 6a1bde4168 [decomp] fix up debug menu rendering, add a few others (#1892)
![image](https://user-images.githubusercontent.com/48171810/190832869-e609d346-9c4a-43fb-ad94-2a9690521adc.png)
actor vis boxes for PRI.DGO
2022-09-16 20:42:33 -04:00
water111 4eea31c3e9 [jak 2] texture (#1866)
- Decompile and patch `texture.gc` for PC
- Improve decompiler when offset doesn't fit in immediate (for types
larger than 8k and some scratchpad accesses)
- Fix symbol->string issues in both jak 1 and 2
- Fix bug with VIF interrupt used to profile VU code (hooked up to
OpenGLRenderer BucketRenderers in PC port)
- Support `~o` in `format`.
- Uncomment stuff in `merc.gc` that now works!

![image](https://user-images.githubusercontent.com/48171810/189505469-941b4a3e-23c7-4740-aa1b-2e461ed19fa9.png)

fixes https://github.com/open-goal/jak-project/issues/1850
2022-09-11 14:17:55 -04:00
water111 b5d21be9c5 W/misc fixes (#1838)
* temp

* temp

* before cleaning up

* cleanup merge

* fix warnings

* merge fix

* clang format
2022-09-05 20:29:12 -04:00
ManDude 0d16a52854 fix some pc settings not being saved/loaded correctly (#1815)
* Update default-menu.gc

* make fog hack slightly less aggressive

* add `reload-text` back but kinda fixed

* more unlocks for non-guaranteed musics

* smarter language save & load

* also save pc settings on autosave

* more special music log cases

* one more
2022-08-29 19:05:36 -04:00
water111 d7af0f0d30 fix opengl error when screenshotting with msaa off (#1795) 2022-08-23 20:37:59 -04:00
water111 be654b9398 fix tie lod and intro cutscene linux crash (#1794) 2022-08-23 19:14:21 -04:00
sardap 5777b6e058 Added screenshot hotkey (#1776)
* Added screenshot hotkey and added a toggle to debug GUI to disable screenshot hotkey (#1765)

* Renamed gfx_dumps folder to screenshots and screenshots taken with hotkey now use game render options not debug gui screenshot render options (#1765)

* Updated get current timestamp to use strftime

* fixed clang formating errors for screenshot hotkey

Co-authored-by: sardap <sardap@users.noreply.github.com>
2022-08-23 19:13:26 -04:00
water111 3c89cd08be Improvements for stuttering (#1768)
* tie changes

* other changes

* cleanpu

* remove silly profiling

* loader frames bug fix

* fix merge issue
2022-08-20 10:32:00 -04:00
ManDude 7b25afa697 add a bunch of new cheat codes & re-do all pc cheat codes (#1770)
* redo cheat encodings

* fix error

* add no texture cheat

* tiny cleanup + add sidekick stats button

* crappy implementation of big/small head mode

* more correct bone scaling

* redo bone manip code a bit

* jp text fixes

* improved matrix math!

* add big fist cheat, minor type cleanup, add some debug toggles

* move all this mess to a new file

* slightly rework joint scaling function

* add big head npc cheat

* subtitles typo

* WIP mirror mode

* fix mirrored hud sprites

* fix mirror mode sound pan

* add cheats to menu!

* split some subtitles
2022-08-20 10:30:37 -04:00
ManDude 26f19e8b14 cleanup cheats menu + change game territory logic + some subtitles (#1733)
* use `game-text-id->string` function here

* small cleanup to pc progress code

* better way to handle "locked" texts

* this is better

* fix potential incompatibilities with merc & ocean renderers

* show cheat requirements in menu + change requirements

* increase size of money starburst

* split some more subtitles

* potentially fix a vsync bug?

* change territory encoding logic

* pass game territory to compiler

* ugh LOL
2022-08-06 11:57:19 -04:00
water111 da4ec008c3 Add a gltf level exporter (#1719)
* Add a gltf level exporter

* more fixes

* disable by default

* compile fixes for windows

* improve collide packer

* bug fix

* clang format

* fix texture bug
2022-08-05 12:25:35 -04:00
Tyler Wilding dc6589cef5 game/imgui: remove V-Sync checkbox as it can't be interacted with (#1726) 2022-08-05 12:12:55 -04:00
ManDude 9f6c4bd409 [game] improved subtitle debugging & make subtitles larger (#1704)
* improved subtitle debugging and interface

* increase subtitle font size

* fix a ton of subtitles

* dont toggle subtitles in scenes with no subtitles
2022-07-27 21:38:52 +01:00
ManDude a8653f7595 fix borderless on Windows, resolution when letterboxes and envmap setting (#1683)
* fix Windows borderless and letterboxing resolutions

* oops fix envmap setting

* unused

* fix msaa not using a resolve buffer

* remove unnecessary resolve buffers(?)

* fix sprite distort
2022-07-19 18:41:48 -04:00
Ethan Lafrenais bb323c2ebe Depth Cue (#1676)
* Initial depth-cue implementation

* Oops

* Finish merge + fix issues with letterboxing

* Fix alpha blending

* Add some debug options + profiler stats

* More debug options + respect xyoffset GS register

* Clean up GOAL code

* Disable depth-cue by default

* typo

* very important typo

* depth-cue disable, but better
2022-07-19 18:34:30 -04:00
water111 6e77b1154d [graphics] switch to depth-pass shadows (#1681) 2022-07-18 20:43:07 -04:00
ManDude d2f104cd43 implement a cheats menu + a few bug fixes (#1677)
* raise particles cap to 10x

* change a text line

* allow sound bank load during vag

* fix default settings and fps setting

* keep "auto save disabled" option in menu

* cheats menu!

* Update game_text_ja.gs

* fix battle hud crash

* add cheats menu to title

* update settings version

* Update all-types.gc

* disable envmap fade out with hires actor lod setting

* disable merc fadeout if not using ps2 actor lods

* dont update aspect ratio if game size is bad

* set vsync later

* increase memory for generic, sprite and dma.

* fix issues with aspect ratio not saving

* split forcing envmap to a separate toggle

* too slow, dont expose to users yet
2022-07-18 19:54:38 -04:00
water111 1602b05a2e [graphics] some blit optimizations (#1667)
* [graphics] a few optimizations

* fullscreen crap

* working, other than aspect ratio thing

* same behavior as before

* fix blackout bug, add more error messages

* fix error when 0 size buffer

* rm warning

* one last 0 size issue
2022-07-17 14:45:00 -04:00
ManDude afd7ee4504 change default window settings (#1656)
* consistent texture unit binding for screen

* change default pc settings for window size & display mode
2022-07-15 20:28:08 -04:00
water111 193712a236 [gfx] add more annoying opengl texture initialization (#1654)
* [gfx] add more annoying opengl texture initialization

* fix catastrophic typo
2022-07-15 19:16:36 -04:00
water111 9bdb6d11d1 [graphics] Another possible way to handle windowed (#1653)
* [gfx] fixes for when the window is force to weird size

* a better way

* Another way to handle windowed mode
2022-07-15 18:59:13 -04:00
Ethan Lafrenais 3b558e093e Fix instanced sprite distort renderer not always using the most recent sine table (#1646)
* Fix instanced sprite distort renderer not always using the most recent sine table

Sometimes the game won't update the sine table on the same frame the aspect ratio changes (for example if the player is in a cutscene), but the renderer assumed that it was always up-to-date on the next frame. This caused it to occasionally use outdated vertex/tex coord data that usually made the distort sprites a little too small/big.

* Same fix, but better
2022-07-15 18:16:46 -04:00
ManDude 20ab48796d split game framebuffers to allow custom resolutions/shaders (#1641)
* split rendering framebuffer

* fix blackout

* unhardcode c++ stuff

* optimization

* implement goal side of all this

* fix msaa

* sprite distort fixes

* fix resolution menu options

* save & load msaa

* linear filtering on the game screen

* fix bad texture units

* fun!

* unused

* make screenshot button capture the framebuffer and not the window buffer

* panik

* screenshot settings

* fix black screen on first frame of new framebuffer

* default fullscreen resolution to the screen size

* hide funny resolutions in windowed since it makes no sense
2022-07-14 21:37:03 -04:00
Ethan Lafrenais d66af4f4c7 Reduce overall draw count for multidraw (#1639)
Reduce overall draw count for multidraw by creating runs similar to singledraw
2022-07-12 18:50:12 -04:00
Ethan Lafrenais 63ac19440c Sprite Distort Instancing (#1630)
* Implement instanced renderer for sprite distort

* Clean up + formatting
2022-07-10 19:01:02 -04:00
Ethan Lafrenais 8ba010ca97 Sprite Distort (#1626)
* [WIP] initial sprite distort implementation

* Clean up

* More clean up + document sprite distort VU program

* Format code

* Address CI issues

* Adjust hacks in distort fragment shader

* oops

* Optimize sprite distort rendering down to one draw call

~2x speed up

* Format file

* Clean up distort rendering and add separate profile scopes

* Fix glVertexAttribPointer

* Fix sprite distort getting messed up when the viewable area doesn't fit the window perfectly

* Add debug option to disable sprite distort

* One evil space to fail CI...

* oops

* Increase sprite-aux-list size when PC_BIG_MEMORY is true

* Address lints
2022-07-08 21:56:38 -04:00
Tyler Wilding 6446389263 extractor: cleanup, support unicode properly, and add multi-game support (#1609)
* extractor: refactor and cleanup for multi-game support

* deps: switch to `ghc::filesystem` as it is utf-8 everywhere by default

* extractor: finally working with unicode

* unicode: fix unicode cli args on windows in all `main` functions
2022-07-05 20:38:13 -04:00
water111 1e33dcda4b Remove assets folder, use more std::filesystem (#1575)
* Remove assets folder, use more std::filesystem

* windows fix

* another one for windows

* another one

* better system for different folders

* rm debugging stuff

* let extractor override everything

* dont revert jak1 change
2022-06-29 23:32:46 -04:00
water111 e630b50690 [ckernel] split by game version (#1559)
* temp

* split up kprint, other than format

* start kmachine

* split kmachine

* split kscheme

* split klink

* split klisten

* split remaining

* jak2 ckernel gets to nokernel loop
2022-06-26 18:17:11 -04:00
ManDude c9de15ba64 framerate and vsync menus and fixes (#1552)
* in-game vsync option, automatically framelimit correctly, fix minimize/alttab bugs

* fix jp text errors

* bump version number as panic

* this makes more sense i think

* clang

* oops delete debug print
2022-06-25 11:05:20 -04:00
water111 85c3d76878 [merc2] guard against nans in bones (#1549)
* [merc2] guard against bones in nans

* zero out bone buffer, just to be safe
2022-06-24 18:39:26 -04:00
Tyler Wilding 3d599ad79b game: use the tagged version number if available (#1526) 2022-06-23 18:44:27 -04:00
Tyler Wilding 2d595c1ac0 lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
water111 90a049dcc5 [cleanup] memory bugs, memory usage reduction, delete merc1 (#1515)
* [cleanup] remove merc1, fix memory bugs, reduce memory usage

* change compiler log to see actual info from build_level

* save file

* editing text is hard
2022-06-21 21:26:11 -04:00
water111 c13934708a Initial implementation of custom level tool (#1482)
* wip

* learning about colors

* gltf node stuff working

* cleanup

* support textures

* bvh generation seems reasonable

* tree layout

* frag packer, untested and doesnt do real stripping yet

* temp

* working collide frags

* handle bad inputs better

* clean up

* format

* include

* another include

* reorganize for release build use
2022-06-19 20:44:07 -04:00
ManDude e72f6e0cb4 small fixes (#1470)
* fix default window size

* add notice to imgui bar

* fix accidental commands in extractor

* super extremely important missing newline!
2022-06-17 19:47:51 -04:00
Tyler Wilding d73336bbf3 game: automatically apply framelimiter on high refresh rate monitors (#1452)
game: automatically apply framelimiter on high refresh rate monitor
2022-06-13 18:28:25 -04:00
Tyler Wilding 9fdf0bbc2f tools: Add cutscene player / subtitle editor window (#1429)
* stash

* temp

* tools: subtitle tool works! just gotta fill out the db / polish UX

* tools: added configuration for every subtitle we have so far

* tools: add some colors to the editor, time for repl controls and make it run the code!

* tools: continuing polish of tool, getting very close

* tools: finished UX polish, just need to write deserializers

* tools: added deserializer for subtitle data

* tools: exported subtitle files, all data appears intact

* tools: more UX polish and test all the cutscenes, majority work

* assets: update subtitle files

* lint: formatting and cleanup

* lint: codacy lints
2022-06-11 16:32:27 +01:00
ManDude d01c16f451 [game] music player (#1416)
* music flava hack toggle

* fix hint subtitles not being considered offscreen

* music player works

* fixes + citadel, maincave, lavatube music

* add remaining tracks

* fix test

* fixes

* fix lib
2022-06-04 14:53:49 -04:00
ManDude b173734e1b "quit game" option in title + reduce particle cap (30720 2D -> 15360 2D) (#1410)
* add "quit game" option to title

* reduce amount of particles in particle system

* increase merc2 memory

* enable extra particles by default

* fix tests
2022-06-02 21:40:37 -04:00
water111 f89054baad [graphics] add missing blend used in final boss fight (#1406) 2022-06-01 21:00:47 -04:00
water111 5165a7c185 [graphics] fix edges of small eyes (#1405) 2022-06-01 20:20:14 -04:00
water111 ec9c7a55ce hook up merc2 to fog intensity, flip some min/max fogs (#1403)
* hook up merc2 to fog intensity, flip some min/max fogs

* zero initialize let stats
2022-06-01 19:07:28 -04:00
ManDude e3051f90ae small shader optimizations (#1402)
* small shader optimizations

* revert camera invert
2022-06-01 18:34:19 -04:00
water111 7fc0a07c88 [graphics] improve blending when depth write is disabled (#1386) 2022-05-30 13:05:49 -04:00
water111 dad84ec249 [graphics] merc2 fix, texture crash bug fix (#1385)
* [graphics] merc2 fix, texture crash bug fix

* still boot if deci2 fails to init
2022-05-30 11:06:11 -04:00
water111 2e31d82fb2 Loader improvements (#1378)
* tfrag3 data for merc2

* dma hooks for merc2

* start designing merc2 opengl, seems like the simple approach will be the best here

* before bone packing experiment

* fix up bones.gc

* use uniform buffer

* speedup, fix faces and eyes

* final fixes

* first pass at loader updates, tie is still bad

* temp

* improved loader

* run iop less often
2022-05-28 20:12:33 -04:00