Commit Graph

1667 Commits

Author SHA1 Message Date
water e4a740c346 fixes for decompiler, still need compiler fixes 2022-10-10 20:18:20 -04:00
Tyler Wilding a409f9064e d/jak2: update related gsrc code as well 2022-10-09 23:13:34 -04:00
Tyler Wilding 5df3eaa18a Merge remote-tracking branch 'origin/master' into j2/progress 2022-10-09 21:45:00 -04:00
Tyler Wilding fffd7657c6 d/jak2: address almost all feedback, blocked on progress-static issue for now 2022-10-09 21:43:26 -04:00
Tyler Wilding ffafbee94a scripts: revive the gsrc linter script, missing too many mistakes 2022-10-09 21:41:55 -04:00
water111 9a04c7e311 [decomp] sparticle, sparticle-launcher, set up sprite (#1949)
- fix crash with unhandled sparticle definition (happens with the weird
array int32s that I don't understand yet)
- update mips2c stuff
- add part-tester
- fix some issues around texture uploads
 

![image](https://user-images.githubusercontent.com/48171810/194784675-54e3dc58-7846-450d-a1e9-cefd841dda94.png)
2022-10-09 19:56:07 -04:00
ManDude af5009a29e [decomp] make defpart and defpartgroup work in jak 2 (#1947) 2022-10-09 12:53:44 -04:00
Tyler Wilding 27bd7371f3 d/jak2: initialize the camera 2022-10-08 22:37:33 -04:00
Tyler Wilding 1d1ea907c9 scripts: prevent infinite loop when preserved block can't be found (#1946) 2022-10-08 21:53:23 -04:00
Tyler Wilding 3567c5ef7a tests: update ref tests 2022-10-08 21:16:19 -04:00
Tyler Wilding 121e4e4883 scripts: ensure task extract runs on all files 2022-10-08 21:14:33 -04:00
Tyler Wilding 3f7df80a1c Merge remote-tracking branch 'origin/master' into j2/progress 2022-10-08 21:09:35 -04:00
Tyler Wilding eee41d1400 lint: formatting 2022-10-08 21:07:37 -04:00
Tyler Wilding 1f3df0e69f d/jak2: fix issues associated with loading text 2022-10-08 21:04:21 -04:00
water111 405a144815 [decomp] finish up debug.gc, get boundary rendering working (#1944)
![image](https://user-images.githubusercontent.com/48171810/194726152-74167185-0297-4982-8ed9-42936ad80fe7.png)
2022-10-08 17:02:40 -04:00
water111 3d4dfb2077 [decomp] Decompile some time-of-day stuff, support new style Jak 2 time of day (#1943)
- Add "tfrag-water" tfrag tree support (may just be the same as Jak 1's
'dirt' for the settings)
- Add "tfrag-trans" tfrag tree support, reusing "trans-tfrag" from jak
1.
- Add a hack to `LinkedObjectFileCreation` to handle `oracle`, which is
accidentally multiply defined as a type leftover from jak 1 (an entity
in village1), and level info for jak 2.
- Add `VI1.DGO`
- add `time-of-day.gc`, and a few other stub functions so it works
- Set up some time of day stuff in GOAL for jak 2/PC renderers
- Clean up time of day in c++ renderers, support the more complicated
weight system used by jak 2 (backward compatible with jak 1, thankfully)

The mood functions now run, so this could cause problems if they rely on
stuff we don't have yet. But it seems fine for ctysluma and prison for
now.


![image](https://user-images.githubusercontent.com/48171810/194719441-d185f59c-19dc-4cd3-a5c4-00b0cfe1d6c3.png)


![image](https://user-images.githubusercontent.com/48171810/194719449-6e051bf3-0750-42e5-a654-901313dbe479.png)


![image](https://user-images.githubusercontent.com/48171810/194719455-3ca6793e-873a-449a-8e85-9c20ffeb4da3.png)


![image](https://user-images.githubusercontent.com/48171810/194719461-8f27af17-4434-4492-96cd-8c5eec6eafdf.png)


![image](https://user-images.githubusercontent.com/48171810/194719468-720715b9-985a-4acf-928c-eab948cfcb03.png)


![image](https://user-images.githubusercontent.com/48171810/194719486-bfb91e83-f6ca-4585-80ad-3b2c0cbbd5af.png)


![image](https://user-images.githubusercontent.com/48171810/194719492-df065d2f-cb5a-47e3-a248-f5317c42082f.png)


![image](https://user-images.githubusercontent.com/48171810/194719507-91e1f477-ecfe-4d6c-b744-5f24646255ca.png)
2022-10-08 13:33:03 -04:00
Tyler Wilding be1e40a041 d/jak2: decompile conveyor | elevator | plat | bouncer | basebutton | base-plat | most of sampler | simple-nav-sphere | simple-focus | elec-gate and blocking-plane (#1942)
Most of these have been atleast partially documented / named / cleaned
up as well.

Co-authored-by: water <awaterford111445@gmail.com>
2022-10-08 12:42:52 -04:00
Tyler Wilding 2d1b5fa57c d/jak2: finish region as well as some typedef files - ctywide-obs-h | vehicle-h | rigid-body-h (#1935) 2022-10-08 11:45:41 -04:00
Tyler Wilding b2c9bb4881 d/jak2: fighting with the linker 2022-10-07 20:55:32 -04:00
Tyler Wilding f5d8fa2adb overlord: implement the branch needed to load text files 2022-10-06 23:13:43 -04:00
Tyler Wilding 2e45e11f41 d/jak2: finish more of cam-master which allows the game to start it's settings routine 2022-10-06 23:12:34 -04:00
water111 f1682867af [graphics] hook up visibility data for jak 2 (#1938)
It works!

Visibility off:

![image](https://user-images.githubusercontent.com/48171810/193422627-c5560519-6d20-4645-baa5-5236c7969d6e.png)

On:

![image](https://user-images.githubusercontent.com/48171810/193422631-716fff10-9ad7-486f-ad35-9ddcddf2c4eb.png)

Overall the visibility data looks a lot better than in jak 1.
2022-10-01 17:12:12 -04:00
water111 d52739226c [decomp] decompile decomp.gc (#1936)
A few issues:
- lwidea's fr3 is getting loaded and unloaded all the time
- the debug line drawing clipping is wrong (doesn't seem wrong in pcsx2,
so I think this is on us)
- nothing actually using vis data yet
- at a large distance, our view frustum culling seems slightly too
aggressive (might be that viewport scissoring is wrong)
- in the city, things seem darker as you move away. unclear how this is
happening (fog?)
2022-10-01 13:39:56 -04:00
water111 6bd4649fd0 fix deadlock on shutdown (#1937) 2022-10-01 12:29:08 -04:00
Tyler Wilding 4d751af38e logs: replace every fmt::print with a lg call instead (#1368)
Favors the `lg` namespace over `fmt` directly, as this will output the
logs to a file / has log levels.

I also made assertion errors go to a file, this unfortunately means
importing `lg` and hence `fmt` which was attempted to be avoided before.
But I'm not sure how else to do this aspect without re-inventing the
file logging.

We have a lot of commented out prints as well that we should probably
cleanup at some point / switch them to trace level and default to `info`
level.

I noticed the pattern of disabling debug logs behind some boolean,
something to consider cleaning up in the future -- if our logs were more
structured (knowing where they are coming from) then a lot this
boilerplate could be eliminated.

Closes #1358
2022-10-01 11:58:36 -04:00
ManDude 4e48ba21c1 [decompiler] make (not (logtest? work (#1934) 2022-09-30 18:26:52 -04:00
ManDude 11ec9d5d14 write a function that outputs a dot graph of the jak 2 tasks (#1932) 2022-09-29 19:10:58 +01:00
Tyler Wilding 362e6b69b4 d/jak2: attempting to fix text symbol issue 2022-09-28 19:13:13 -04:00
Tyler Wilding 10627fdf20 Merge remote-tracking branch 'origin/master' into j2/progress 2022-09-27 23:12:43 -04:00
Tyler Wilding 930d56deb0 d/jak2: progress updated 2022-09-27 22:42:49 -04:00
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
Tyler Wilding 593b35c6ab temp: help 2022-09-27 19:43:48 -04:00
Tyler Wilding 8dbf3db15d d/jak2: first pass of jak 2's font (no japanese or korean support yet) 2022-09-27 19:17:12 -04:00
Tyler Wilding 28344c06b0 d/jak2: finish progress-draw 2022-09-26 23:20:53 -04:00
water111 e3a4627eeb [decompiler] recognize jak 2 vector-float*!, fix some vector inline casting bugs (#1926) 2022-09-26 20:57:44 -04:00
Tyler Wilding 6085894ea7 Merge remote-tracking branch 'origin/master' into j2/progress 2022-09-26 20:08:06 -04:00
Tyler Wilding 9535cd6360 d/jak2: almost finished progress-draw 2022-09-26 20:07:35 -04:00
water111 bdf63b9048 [decomp] sync-info, fix some looping type pass bugs (#1925) 2022-09-26 19:40:46 -04:00
water111 a22d49ab11 [decompiler] fix rare bug with casts (#1920) 2022-09-26 18:14:54 -04:00
Tyler Wilding 77adbc580f d/jak2: add progress to gsrc 2022-09-26 00:15:47 -04:00
Tyler Wilding 5e9e3b2134 d/jak2: finish progress 2022-09-26 00:15:35 -04:00
Tyler Wilding a2d6518bb0 d/jak2: finish progress-static 2022-09-25 21:20:30 -04:00
Tyler Wilding a41f616ff8 decomp/goalc: support object references in static data 2022-09-25 21:20:13 -04:00
water111 5c7a3384e5 [jak2] static sound macro (#1919)
eg
```
(set! (-> obj sound-pre-open) (static-sound-spec "airlock-slider"))
```
it is the same as jak 1, but the `fo-curve` option is set to 1
sometimes.
2022-09-25 16:19:06 -04:00
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
Hat Kid a53c06fe2b decomp: target, target-board, board-states (#1915)
Just missing `target-board-handler` because it errored with `Bad delay
slot in clean_up_cond_no_else_final` and I wasn't able to figure out
where the asm branch was.

Commented out `target-board-clone-anim` because it crashes even after
adding `clone-anim` and `clone-anim-once`.
2022-09-25 12:07:37 -04:00
Hat Kid e8b1aee24d decomp: majority of progress (#1904)
Gets through ~90% of `progress`, wasn't able to figure out some stuff.
2022-09-25 10:15:32 -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 6227c6d6a8 More array special cases (#1913)
also make jak 1 and jak 2 behave the same way, to reduce confusion. It
wasn't too bad to update jak 1.
2022-09-24 16:10:13 -04:00
Tyler Wilding 332f0b2f2b tools: add a tool to search for types based on size / type chain / fields (#1906)
Just a small simple tool that can search through `all-types` for a type
based on a bunch of criteria.

For example:

![image](https://user-images.githubusercontent.com/13153231/192043561-181e5c5d-d5b1-41a9-8891-5cc3ed1a0efa.png)

The results are printed to stdout, as well as output to a json file so
they can be consumed by another tool (in my plans, the VSCode extension)
2022-09-24 16:04:52 -04:00