Commit Graph

174 Commits

Author SHA1 Message Date
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
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
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 8caa5bfa70 disable goal networking when not in debug mode (#1602) 2022-07-04 13:52:05 -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
Tyler Wilding 0cefb366f6 config: change linux and windows config directories (#1582) 2022-06-30 18:05:26 -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
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
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
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
ManDude 714ddf1d6f a bunch of PC/GFX system fixes (#1465)
* rework fullscreen code a bit

* Virtualization!

* Fix resolution stuff not working properly!

* yeah yeah whatever
2022-06-16 22:46:12 -04:00
ManDude 3ce301ad0d some static-screen decomp fixes (#1435)
* some decomp fixes

* memcard robustness

* fix wrong bank in savefile being picked

* wtf???

* remove deleted memcard code
2022-06-10 18:20:00 +01:00
ManDude 7ce58f709f process-spawn + pretty printer improvements (#1428)
* some jp support to fix some errors in the original game

* music fade toggle

* recognize `process-new` macros!!

* strip casts in this macro

* rename macro

* fix cast typecheck

* update source 1

* detect kernel stack case

* less boilerplate

* `manipy-spawn` special case

* pretty printer improvements

* revert dumb thing from earlier

* use shell detection on `send-event`

* fix some events

* remove unused argument

* detect `static-attack-info` and add `CondNoElse` to shell detect

* better `attack-info` detect

* support `process-spawn` in multi-lets

* detect `rand-float-gen` pt 1

* detect as return value

* detect in `countdown` and  `dotimes`

* oops this wasnt working

* fancier `send-event`s

* clang

* update source!!

* fix tests

* fine jeez

* uh okay

* fix some accidental regressions

* fix more regressions

* regression fixes

* fix big bug...

* extra safety!
2022-06-10 02:18:08 +01:00
water111 ecb2781a89 [decompiler] cleanup to get atomic ops working on jak2 inputs (#1426)
* [decompiler] cleanup to get atomic ops working on jak2 inputs

* clang format
2022-06-08 18:34:52 -04:00
water111 aff2f2e10c [decompiler] setup before making IR2 type inspector (#1423) 2022-06-06 17:58:49 -04:00
Hat Kid 4a298fbe7b [discord-rpc] fix status not being updated while indoors (#1421)
fix time of day display not being updated if indoors
2022-06-05 18:40:31 -04:00
Hat Kid d7b307144c [discord-rpc] Add time of day (#1418)
* add time of day field

* add time of day functions

* add time of day check
2022-06-05 11:45:07 -04: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
Hat Kid 750255e5b2 Discord RPC enhancements/additions (#1162)
* various discord rpc additions

* fix formatting

* revert changes in game-task-h and task-control-h

* discord-rpc: refactor boss and racer/flut checks

now works via checking process states

* fix codacy
2022-05-29 15:06:39 -04:00
water111 e56b2e8d56 [graphics] merc2 renderer (#1374)
* 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
2022-05-28 19:28:19 -04:00
water111 13c4da7ff8 make linux tests pass again (#1371)
* make linux tests pass again

* format
2022-05-21 20:55:29 -04:00
ManDude 19944ebe10 anim-tester-x + cam flip fixes + logxor! decomp (#1359)
* `anim-tester-x` + cam flip fixes + `logxor!` decomp

* Update anim-tester-x.gc
2022-05-21 15:47:41 -04:00
water111 be976d2e69 [merc] Add merc extraction (#1356)
* docs for ee merc code

* wip

* more extraction stuff

* partial mat1 working

* mat1

* cleanup

* partial mat2 and mat3 support

* merc extraction seems to work
2022-05-11 22:53:53 -04:00
Tyler Wilding 7b6d732a77 goalc: Add TCP server socket in REPL process (#1335)
* goalc: cleanup goalc's main method and add nrepl listener socket

* deps: add standalone ASIO for sockets

* lint: formatting

* common: make a common interface for creating a server socket

* goalc: setup new repl server

* deps: remove asio

* goalc: debug issues, nrepl is working again

* git: rename files

* attempt to fix linux function call

* test

* scripts: make the error message even more obvious....

* goalc: make suggested changes, still can't reconnect properly

* game: pull out single-client logic from XSocketServer

* nrepl: supports multiple clients and disconnection/reconnects

* goalc: some minor fixes for tests

* goalc: save repl history when the compiler reloads

* common: add include for linux networking

* a few small changes to fix tests

* is it the assert?

* change thread start order and add a print to an assert

Co-authored-by: water <awaterford111445@gmail.com>
2022-05-06 18:19:37 -04:00
water111 e8911758f0 [graphics] small improvements (#1351)
* faster texture upload lookup

* fix debug menu

* cleanup

* one more
2022-05-02 21:26:17 -04:00
water111 347572d9df support non-debug-mode (#1347) 2022-04-30 14:55:13 -04:00
ManDude 3ed009924f collision renderer v2 (#1344)
* collision renderer v2

* update code

* update again!

* Update collision.vert

* Update collide-target-h.gc

* fix code

* bleh

* gah

* minor fixes

* fix stupidity

* skip filters

* fix subtitle that i missed

* remove assert that doesn't work!

* Update hint-control.gc
2022-04-30 14:48:24 -04:00
water111 a51536de8d [graphics] tie generic (#1341)
* [gtie] tie inst and proto functions

* first chain input to generic ee looks good

* m

* works

* ugh

* add tie generic

* rm debug print

* rm generic ties from fr3
2022-04-29 23:44:53 -04:00
ManDude 08d701bb26 overlapping memcpy -> memmove (#1342) 2022-04-29 20:07:58 -04:00
water111 789c57916e Add timeline style profiler (#1312)
* small speedups to extractor

* faster extraction

* add profiler

* spellin

* guess at windows includes

* windows nominmax garbage
2022-04-17 21:12:24 -04:00
ManDude 0cdeed9be7 minor windows fixes (#1311)
* [pp2] put `define` dest on a single line

* update source!

* Update type_analysis.cpp

* update old credits & racer code

* change clang-cl args (REALLY force avx)

* Update credits_REF.gc

* comment small unused code

* add timer to decompiler

* fix unnecessary copy-constructors (no speed increase)

* fixes

* Update expression_build.cpp

* wtf is this thing anyway

* im bored.

* clang

* fix!

* Revert "fix!"

This reverts commit 5b1ce6c718.

* Revert "clang"

This reverts commit 5e67d9ccd1.

* Revert "im bored."

This reverts commit 070e957ce8.

* Revert "Update expression_build.cpp"

This reverts commit b94d092fc5.

* Revert "fixes"

This reverts commit f3d871f60a.

* Revert "fix unnecessary copy-constructors (no speed increase)"

This reverts commit 9100725802.

* Keep the random inoffensive changes

* Revert "Update type_analysis.cpp"

This reverts commit d2456a5c75.

* Update type_analysis.cpp
2022-04-17 21:11:09 -04:00
Tyler Wilding c4a92571b2 Improve ASSERT macro, fix linux file paths in Taskfile and hopefully fix the windows release (#1295)
* ci: fix windows releases (hopefully)

* scripts: fix Taskfile file references for linux

* asserts: add `ASSERT_MSG` macro and ensure `stdout` is flushed before `abort`ing

* asserts: refactor all `assert(false);` with a preceeding message instances

* lint: format

* temp...

* fix compiler errors

* assert: allow for string literals in `ASSERT_MSG`

* lint: formatting

* revert temp change for testing
2022-04-12 18:48:27 -04:00
ManDude a7eee4fdc9 [game] pc port progress menu (#1281)
* fix typo

* more typo

* shorten discord rpc text

* allow expanding enums after the fact (untested)

* make `game_text` work similar to subtitles

* update progress decomp

* update some types + `do-not-decompile` in bitfield

* fixes and fall back to original progress code

* update `progress` decomp with new enums

* update config files

* fix enums and debug menu

* always allocate (but not use) a lot of particles

* small rework to display mode options

* revert resolution/aspect-ratio symbol mess

* begin the override stuff

* make `progress-draw` more readable

* more fixes

* codacy good boy points

* first step overriding code

* finish progress overrides, game options menu fully functional!

* minor fixes

* Update game.gp

* Update sparticle-launcher.gc

* clang

* change camera controls text

* oops

* some cleanup

* derp

* nice job

* implement menu scrolling lol

* make scrollable menus less cramped, fix arrows

* make some carousell things i guess

* add msaa carousell to test

* oops

* Update progress-pc.gc

* make `pc-get-screen-size` (untested)

* resolution menu

* input fixes

* return when selecting resolution

* scroll fixes

* Update progress-pc.gc

* add "fit to screen" button

* bug

* complete resolutions menu

* aspect ratio menu

* subtitles language

* subtitle speaker

* final adjustments

* ref test

* fix tests

* fix ref!

* reduce redundancy a bit

* fix mem leaks?

* save settings on progress exit

* fix init reorder

* remove unused code

* rename goal project-like files to the project extension

* sha display toggle

* aspect ratio settings fixes

* dont store text db's in compiler

* properly save+load native aspect stuff
2022-04-11 18:38:54 -04:00
water111 5bd0b735a5 Add extractor tool (#1276)
* first attempt

* fix

* zip to tar

* windows

* try again, std::filesystem sucks

* std::filesystem is still garbage

* std::filesystem is terrible

* std::filesystem continues to waste my time

* again

* neadsflaldksal;df
2022-04-03 19:17:03 -04:00
Tyler Wilding 67b4afc506 Display the currently built commit sha when debugging the game (#1266)
* generate a string constant with the currently built commit sha

* draw the commit sha on the top left
2022-03-31 19:29:48 -04:00
water111 e38832365c Loader improvements and blackout (#1254)
* temp

* also tfrag

* fix order
2022-03-26 15:53:44 -04:00
Tyler Wilding 014da6f59d game: auto-save pc-settings to user's home directory as well as memcard files (#1233)
* cmake: reduce warning spam especially from libs

* runtime: add FS helper functions

* game: save/restore pc-settings | add original aspect option

* game: overwrite unloadable settings with defaults

* temp: unable to set the games aspect-ratio in the boot else crash?

* runtime: save memcard files to user directory as well

* runtime: fix `pckernel` load order which resolves setting the orig aspect ratio

* lint: format

* cmake: revert warning suppression, it's just causing problems it seems

* fix the order of the rest of `pckernel` and creation of obj file paths

* lint: formatting

* game: don't save settings on startup even if they are corrupted
2022-03-20 20:29:44 -04:00
water111 bb85eaf167 add ocean-vu0 mips2c and decomp ocean-texture (#1230)
* add ocean-vu0 mips2c and decomp ocean-texture

* vu1 texture setup

* temp

* unoptimized version working

* optimized version by default

* update ref test
2022-03-11 22:27:11 -05:00
water111 a6fa04a83d [graphics] port generic VU1 to OpenGL (#1221)
* temp

* name the obvious ones

* un-pipelined the fast case in generic vu1

* generic2 dma

* pass2

* first pass at opengl

* many fixes

* fix hud, strip

* windows fix

* final tweaks

* memcard folder

* add missing include
2022-03-06 19:56:43 -05:00
ManDude 968531ee51 [game] rewrite memcard and game-save code (#1222)
* rewrite memcard and game-save code

* fix memcard status and bank check

* more robustness

* fix bank pick on card update

* fix load file bugs

* bug fixes and final touches

* add timers and turn off prints

* optimization?

* update pics

* make money starburst slightly easier to see

* fix first time save bug

* reduce filesystem load a bit

* too bright

* Optimize `file_is_present`
2022-03-06 18:58:22 -05:00
water111 a5b383c78a [graphics] Rewrite of texture system (#1212)
* loading cleanup

* temp

* add texture replacement

* fix windows

* oops

* fix windows

* final cleanup
2022-03-02 20:01:37 -05:00