Commit Graph

191 Commits

Author SHA1 Message Date
ManDude 9351bf782e [decomp2] game-info, game-task and task-control (#1884)
And everything else needed for them!

A couple functions are bad currently.

- fixes #1929 - untested on linux
- fixes #1924 - now you need to type `,` before a lambda you want to put
in a pair.
- fix debugger symbol table in jak 2
- made the decompiler output `(meters 2)` instead of `(meters 2.0)`
- fixed a bug with the bitfield enum special -1 case
- made bad game text decomp not exit the decompiler
- added `editable-player` and `script`
2022-09-27 19:44:20 -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
water111 2bead6db97 [decompile] Joint (#1813)
* temp

* decompile joints

* fix merge
2022-08-28 16:38:58 -04:00
water111 f8007cc84b [decomp] Jak 2 mips2c, collide-func (#1805) 2022-08-26 18:03:48 -04:00
Tyler Wilding 3dd10d0989 jak1: put the auto-splitting marker in C++ so it can be quickly found (#1791) 2022-08-23 19:14:15 -04:00
Tyler Wilding 346a258902 game/speedrunning: Add struct with relevant information to facilitate Auto Splitting (#1775)
* game: add auto-splitter structs

* game/jak1: wire up auto-splitter updating to game when in SR mode

* game/jak1: add info to split on picking up white eco

* game/jak1: add another two tasks for fish and finalboss

* game/jak1: autosplitting code entirely in GOAL
2022-08-22 18:55:08 -04:00
Tyler Wilding dec7da2110 game: windowed mode related fixes (#1778)
* game: restore windowed mode settings properly

* game: use the game version for saving settings/saves

* game: prevent windowed mode from being auto-centered on initial init

* game: save and restore window coordinates

* lint: formatting
2022-08-21 18:13:27 -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
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
Ethan Lafrenais 88856ba5e0 Add in-game option to switch fullscreen monitor (#1700)
* Add in-game option to switch fullscreen monitor

* mmm undefined memory :)

* Fix type consistency

* Optimize get_monitor and get_monitor_count since they're called often

* Address PR feedback

* Track fullscreen mode and minimized state to reduce GLFW calls per frame
2022-07-31 13:31:17 -04:00
ManDude 5d4ba62bdb fix controller vibration (#1685)
* fix vibration being wrong and untoggleable

* fix a battle hud crash
2022-07-19 19:06:05 -04:00
water111 e9567a6e4b Cleanup goalc tests, fix jak2 kernel bugs (#1669)
* Cleanup goalc tests, fix jak2 kernel bugs

* fix warnings on linux

* spelling is hard
2022-07-17 14:12:11 -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
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