Commit Graph

390 Commits

Author SHA1 Message Date
Tyler Wilding 1b67d1dc77 Fix UTF-8 handling when running the game, env-vars, and setting the project path (#1632)
* fix utf-8 handling around env-vars

* fix file opening errors related to unicode

* add uncaught exception handler in `gk` to ensure something is logged

* gracefully fail if window icon cant be loaded and work with unicode

* linux fix and add changes to vendor file
2022-07-10 19:03:24 -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
water111 5e23057ed1 [goalc] compile/run code for jak2 ckernel, set up dummy KERNEL.CGO (#1625)
[goalc] start can compile and run code for jak2 ckernel, set up dummy KERNEL.CGO
2022-07-08 19:23:49 -04:00
water111 28a2ecdfd3 [jak2] goalc supports multiple projects (#1619)
* [jak2] goalc supports multiple projects

* disable deci2 server if not debugging
2022-07-06 21:18:08 -04:00
ManDude 9ede08977f add text messages for subtitle toggling + subtitle editor fixes (#1617)
* add final cutscene subtitle and fix some editor bugs

* `title` and `finalboss` hints

* messages and notices for subtitle toggling

* fix colors in currently selected cutscene menu

* subtitle positioning fixes

* Update game_subtitle_en.gd
2022-07-06 18:09:01 -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 cf35cac428 [ckernel] add remaining jak2 functions (#1611) 2022-07-05 13:58:09 -04:00
ManDude 9821304f44 add vibration option back in + make new aspect ratio menu (#1610)
* add vibration option back in + make new aspect ratio menu

* update this notice...

* add 900p resolution

* fix test

* typo
2022-07-05 13:49:37 -04:00
Hat Kid 4da1a81af8 glfw, game: add rumble support (#1605)
* glfw: add rumble support

* game: add rumble support

* oops
2022-07-05 12:14:57 -04:00
ManDude 9225514d97 fix upper 32 bits in certain format args being discarded (#1606) 2022-07-05 12:14:22 -04:00
ManDude 5de9547d07 fix wrong vag stream playing sometimes (#1608) 2022-07-05 12:14:05 -04:00
ManDude 8caa5bfa70 disable goal networking when not in debug mode (#1602) 2022-07-04 13:52:05 -04:00
Zedb0T 417d0951de Update sdl_controller_db.txt (#1598)
Brings sdl_controller_db up to date as the automatic workflow seems to have broken.
https://github.com/open-goal/jak-project/actions/workflows/update-controller-db.yaml
2022-07-03 18:57:45 -04:00
Tyler Wilding 8fefd298fd build: get rid of clang-cl in favor of actual clang among other things (#1589)
* git: ignore vs build dir

* cmake: ditch `clang-cl` on windows in favor of actual `clang`

* build: suppress a significant number of warnings

* build: adjust workflows and vendor nasm

* docs: update docs to remove `clang-cl` mentions

* build: fix some copy-paste mistakes in the linux build

* build: remove C++20 compat warnings as that is useful if we want to upgrade
2022-07-03 17:35:39 -04:00
ManDude 87d24dd291 add "disable autosave" option to menu and change memcard warning (#1592)
* add "disable autosave" option to menu and change memcard warning

* reduce duplication

* fix test
2022-07-03 17:27:55 -04:00
Hat Kid 1f695e144f game: read current date correctly for save data (#1590) 2022-07-03 17:27:23 -04:00
ManDude 9676100039 finish out english subtitles (#1586)
* put some duplicated code in a func

* make jak 2 text "work"

* group up all subtitles c++ code into one folder

* compact single-line subtitles

* fix a couple compiler crashes

* Update game_subtitle_en.gd

* `rolling` and `sunken`

* `swamp`

* `ogre`

* `village3`

* `maincave`

* `snow`

* `lavatube`

* `citadel`

* Update .gitignore

* clang

* fix encoding and decoding for quote

* properly fix quotes

* subtitle deserialize: sort by kind, ID and name

* sub editor: fix line speaker not being converted

* cleanup game text ids 1

* update text ids 2

* update source

* update refs
2022-07-03 17:25:28 -04:00
Tyler Wilding 34d93e59ed subtitles: Add more cutscenes to subtitle editor (#1588)
* fix repl-history saving

* subtitles: fix `\"` edge-case

* subtitles: add almost every remaining (current) cutscene

* merge: master

* subtitles: fix some crashes and disable `Remove Line` as it is broken
2022-07-02 15:32:52 -04:00
water111 f763eb6bf0 [jak2] support for multiple out/ directories (#1585)
* [jak2] support for multiple out/ directories

* windows
2022-06-30 21:11:58 -04:00
Tyler Wilding 0cefb366f6 config: change linux and windows config directories (#1582) 2022-06-30 18:05:26 -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
ManDude 2649fd17ec subtitle editor fixes + other smaller fixes (#1572)
* [extractor] validate files when extracted as folder

* jp text fixes

* move game text version to the text file and fix subtitle editor escape chars

* make bad subtitles not crash the game

* fix texscroll in lag

* fix mood, fix decomp of other versions, fix text decomp

* clang

* fix tests

* oops dammit

* new fixes

* shut up codacy

* fix nonexistant subtitles crashing the game

* fix text hacks and extractor re-use on folders
2022-06-29 19:43:23 -04:00
Tyler Wilding 870be7151a subtitles: add a bunch of new subtitle playing settings (#1571)
* subtitles: add `geologist` play settings

* subtitles: add `gambler` play settings

* subtitles: add `warrior` and `ogre-race` settings

* subtitles: hide empty groups

* subtitles: add miner cutscene settings
2022-06-28 21:15:08 -04:00
towai fa3f4b0a88 Improvements/fixes to the subtitle editor (#1516) 2022-06-27 19:44:57 -04:00
Ethan Lafrenais 944edd5938 Fix volume calculation when falloff curve is zero (#1562)
Return passed volume instead of zero when falloff curve is 0
2022-06-26 20:45:55 -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 892e5a6c49 fix fake vag clock and ocean with lag (#1558)
* fix the fake vag clock

* fix ocean in lag
2022-06-25 21:26:48 -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
ManDude 67c815bf18 expand symbol table (#1534)
* expand symbol table

* ah!

* fix minor errors

* fix kernel test

* fix another test
2022-06-24 18:27:00 -04:00
ManDude 6b6c937277 make 60FPS always the default and add frame rate option to settings (#1533)
* fix ogre joints

* "frame rate" menu in options

* dont start game at non-60fps

* clang

* make hint subtitles option do stuff
2022-06-24 00:43:57 -04:00
Hat Kid d76ba83747 discord-rpc: check for custom levels and add placeholder icon (#1531)
* check for custom levels

* fix formatting
2022-06-23 18:44:42 -04:00
Tyler Wilding 3d599ad79b game: use the tagged version number if available (#1526) 2022-06-23 18:44:27 -04:00
ManDude 85bef15364 full ntsc-j mode + greatest hits support (#1525)
* remove str files from inputs

* removed unused verbose flag

* allow some kind of conditional game building for JP extras

* make `PrintBankInfo` do nothing

* clang

* Update gltf_mesh_extract.cpp

* fix `*jak1-full-game*` in extractor

* use json library to build json file

* screw it red label support as well
2022-06-23 18:44:02 -04:00
Tyler Wilding 2d595c1ac0 lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
Tyler Wilding 56a84cd923 tools: only allow valid language-ids to be selected in the subtitle editor (#1523) 2022-06-22 22:43:36 -04:00
ManDude 7d5045ab3f PAL & NTSC-J support + updates (#1490)
* PAL dumps files

* alrighty then

* make PAL warning slightly more specific

* PAL patches for `title-obs`

* Update all-types.gc

* PAL patch `beach-obs`

* `process-taskable` PAL patch

* `ambient` PAL patch

* `yakow` PAL patch

* `village-obs` PAL patch

* `sparticle-launcher` patch

* `swamp-obs` PAL patch

* `sequence-a-village1` PAL patch

* typo

* errors

* `powerups` PAL patch

* `ogreboss` PAL patch

* jak 1 v2 encoding

* `load-boundary` PAL patch

* `flying-lurker` PAL patch

* `mayor` PAL patch

* update game encoding to PAL (v2) encoding

* `cam-debug` and `cam-update` PAL patch

* `fisher` PAL patch

* `target` PAL patch

* `target2` PAL patch and fix text compiling

* `target-death` PAL patch

* `target-racer-h` PAL patch

* `logic-target` PAL patch

* `main` PAL patch

* `snow-flutflut-obs` PAL patch

* `rolling-obs` PAL patch

* `gsound` PAL patch

* update refs

* `progress` and `progress-draw` PAL patches

* clang

* wrong.

* complain

* clang

* fix test

* fix blurry jp text

* fix weird interrupt lag from setting window size

* patch more text lines, special handling for credits

* Update FontUtils.cpp

* Add xdelta3 and file patching interface

* add window lock toggle and update settings ver

* better particle hacks

* add PAL support to extractor

* Fix credits

* also NTSC-J support

* make xdelta3 a separate library

* address feedback

Co-authored-by: water <awaterford111445@gmail.com>
2022-06-22 05:16:34 +01: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
ManDude 8d8c6ccf39 fix bad resolutions being picked in windowed mode (#1513)
fix bad resolutions being picked in windowed
2022-06-21 20:11:57 -04:00
ManDude 69a3007e9b windows graphics fixes (#1512)
* fix blurry jp text

* fix weird interrupt lag from setting window size

* add window lock toggle and update settings ver

* better particle hacks
2022-06-21 19:21:51 -04:00
Matthew Wells 3b2f9191ab Simplified time of day logic (#1487)
Slight optimizations by checking only the upper boundary as we check the lower boundary with the previous if statement(s).
2022-06-21 18:38:25 -04:00
Tyler Wilding 80f4b2d02e game: remove mystery windows chime sound when starting up (#1506) 2022-06-21 18:23:40 -04:00
Tyler Wilding 818485b501 paths: ensure imgui and game_config respects the project path (#1505)
* paths: ensure `imgui` respects the project path

* paths: remove extra creation of `game_config/` this is done when the settings are saved
2022-06-21 18:22:31 -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
water111 196c09a232 Clean up libstb_image (#1494) 2022-06-19 19:48:34 -04:00
Brent Hickey f48fda692e [game] 150fps support (and 100fps support) (#1264)
* docs for ee merc code

* 150fps support but it replaces 60fps

* oops switched wrong mode

* oops 50.0 not 50

* formatting

* fix cutscene speed

* oops

* Replace latest merc.md, not sure what happened

* Automatically switch between video modes (ntsc or 150fps) based on
refresh rate. Cleanup particle timing

* cleanup

* fix idle animation

* linter

* fix village2 crash

* can load all levels again

* update loader output and replace sparticle time with formula

* Add 100fps support, add some comments, fix build

* formatting

Co-authored-by: water <awaterford111445@gmail.com>
2022-06-19 17:01:51 -04:00
water111 3e7832e1a7 [custom levels] add 3rdparty library for gltf files (#1481) 2022-06-18 15:07:40 -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
SortAnon f212de86dc Add menu bar toggle (#1472)
* Add menu bar toggle

* Add menu bar toggle (fix)

* Add menu bar toggle (Alt+Tab fix)
2022-06-17 19:39:33 -04:00