Commit graph

525 commits

Author SHA1 Message Date
water111 2342b6fb0f
[graphics] MERC (#1124)
* merc dma generation

* wip very early version of merc

* small fixes

* fix

* fix more merc bugs

* derp fixed min

* oops we did need something weird on max

* merc for everything

* program optimization 1

* more optimization

* windows

* windows 2

* clean up

* fix test

* BLERC
2022-02-03 22:45:41 -05:00
ManDude bd1718dc9c
A lot of fixes (game is 100%'able!) (#1118)
* a crapton of fixes

* Update cavecrystal-light.gc

* damn you

* fix bunnies

* change codegen for int -> float cast (just add sign extension now)

* fix test

* this file is tagged anyway

* fix some stack types

* remove bad camera debug funcs

* add more heap bars and entity pick menu

* finish entity menu and make `music-flava` enum

* fix some `process-taskable` fields

* citadel sage crash fix

* fix citadel drop plats

* fix tests

* fix some casts

* update refs

* finish `village3-obs` and `snow-ball`

* Update README.md

* fix sidekick too

* fix issue?

* more entity inspect hardcoded checks

* more

* use `*display-actor-anim*` for something!

* CRAP

* also clear actor anim when deselecting entity

* *display-actor-anim* already renders this!

* do not display `path` tag info

* entity debug inspect tool

* one more

* make debug string even larger

* missing res tag types

* more polish and more known tags

* last few
2022-01-31 20:44:54 -05:00
water111 57649d243f
[bones] Part 1: Joint (#1110)
* joints

* bones

* align spr to 16k

* fix bug

* lack of sound hack

* clean up
2022-01-28 21:32:03 -05:00
ManDude eb53f410e5
test game actors and fix up/disable broken ones (#1103)
* test village1, beach, jungle actors

* fix jungle actors

* more anims and fixes

* Update launch.vs.json

* fix bad `robotboss` decomp

* fix `robotboss`

* Update robotboss.gc

* fix `mother-spider-proj`

* fix detach (windows)

* update refs

* village2 spools

* type fixes + a few more spols + add append/not-append to goos

* fix beach, misty, village1, village3, lavatube

* fix snow entities

* fix `target-flut`

* update refs

* forgot one

* fail

* sound fixes

* fix test

* complain if `heap-base` is bad

* correct `add-spheres!` decomp errors

* fix citadel

* fix target `change-state` handler

* fix `final-door` state

* fix `target-flut-falling`

* fix deftypes

* oopsie

* move heap memory display behind a toggle and make it fancy

* Update gstate.gc
2022-01-27 19:33:34 -05:00
water111 35bdc9b1d3
add an optional, less-accurate-but-faster sprite render and fix silly math bug (#1102)
* also add a new sprite renderer

* claaaang

* goal build fix

* fix tests, add stack singleton option

* make all event-message-blocks the same

* diskboot
2022-01-21 21:11:57 -05:00
Tyler Wilding 142961a747
decomp: the majority of navigate and rolling-lightning-mole (#741)
* decomp: Add texture-upload to ref tests

* maybe 50% done?

* 5 functions to go!

* decomp: stuck in `navigate`

* work-around fp issue

* some cleanup and label casts

* working on supporting asm instructions -- this is currently WRONG

* support ASM operations

* fixes for asm op support

* decomp: finish the vast majority of `navigate`

* format

* update test though i think this suggests a regression!

* decomp: cleanup some more of navigate

* decomp: finish `rolling-lightning-mole`

* revert `r0` handling for `pcpyud` and `pextuw`

* update ref tests

* lint

* fix a failing test

* help

* navigate mostly works now, with some potential bugs

* remove my debugging logs

* update ref tests

* review feedback cleanup

* these are all likely fine

* can't get the crab to chase me anymore

* the crab is back
2022-01-18 01:14:47 -05:00
water111 dc663d8a1f
[game] edge grab, small fixes, add zoomer (#1083)
* fix a few small things

* fix tests

* another fix

* fix tests
2022-01-17 14:36:29 -05:00
Tyler Wilding e65c61f3e2
tests: add a bunch of missing ref tests (#1082)
* scripts: add a script to point out missing ref test files

* tests: add a bunch of files to ref tests we were missing
2022-01-17 11:51:26 -05:00
water111 54c6ddbab9
pass filename through (#1080) 2022-01-15 23:31:07 -05:00
water111 c043367094
[goalc] fix 0 in xmm128, be more strict with none in comparison (#1079)
* fix a few small bugs

* merge fixup

* 0 constant fix
2022-01-15 22:33:53 -05:00
Tyler Wilding b95be06fef
decomp: mostly finish ogreboss (#1024)
* decomp: partially done `ogreboss`

* decomp: finish `ogreboss`

* update

* fix `ogreboss` and `viewer`

* update ref tests

* update ogreboss
2022-01-15 20:33:11 -05:00
ManDude 27bb6c6384
[decompiler] decompile particle defs using specialized macros (#1077)
* [decompiler] `defpart` and `defpartgroup`

* support sounds in part defs natively

* make `meters_to_string`

* update refs

* clang

* make macros in pair only work inside `(unquote ...`

* update source

* update finish

* fix
2022-01-15 20:01:38 -05:00
water111 e84b5a2346
[collision] implement most of background collision, spawn target! (#1076)
* fill collide cache with bounding box working

* yprobe fully working for background at least

* target

* final cleanup, add a bit more foreground mesh stuff that is untested

* warnings, merge issues

* tests

* revert debug changes, format'

* rendering perf
2022-01-15 16:52:47 -05:00
water111 c3b6e7eb7e
some cleanup and docs on collide-touch and the tie extractor (#1074)
* some cleanup and docs on collide-touch and the tie extractor

* temp

* more updates

* update ref tests

* type fix

* rest of collide shape

* another set of updates
2022-01-12 10:47:17 -05:00
water111 f6f1cadb8e
collide probe works, amazingly (#1072)
* collide probe works, amazingly

* add ref test
2022-01-10 19:28:17 -05:00
water111 38c805ca7c
unused version of collide line sphere collide list (#1071) 2022-01-09 17:45:19 -05:00
Tyler Wilding f755596053
decomp: cleanup s6 casts that are no longer needed (#1061) 2022-01-09 11:43:01 -05:00
Tyler Wilding a2e6413b76
goalc: reduce cleverness of outer product (#1059)
* goalc: reduce cleverness of outer product

* decomp: update existing outer product usages

* let the tests still run the fancy one
2022-01-09 11:39:22 -05:00
water111 a96396e140
[collision] add notes on -h files, add some enums (#1068)
* temp

* add enums
2022-01-08 20:57:57 -05:00
Tyler Wilding 50197c0695
cleanup: cleanup all-types and all state definitions (#1062)
* cleanup: cleanup all-types and all state definitions

* these are fine

* these are fine

* these are fine

* everything is fine

* gsrc updated

* remove define-externs in gsrc
2022-01-08 18:23:30 -05:00
water111 691c33f8d9
[goos] fix pretty printer bugs, update ref after pretty printer changes (#1063)
* update ref after pretty printer changes

* another try
2022-01-08 15:09:00 -05:00
Tyler Wilding 64b79da923
decomp: "finish" depth-cue (#1038)
* decomp: "finish" `depth-cue`

* cleanup casts around dma-buffers
2022-01-07 08:49:18 -05:00
water111 474a8494d8
remove gd files, simplify fakeiso (#1053)
* remove gd files, simplify fakeiso

* fix bug in decompiler mistakenly marking functions as asm
2022-01-04 23:36:39 -05:00
Tyler Wilding 004ecd4fe3
decomp: finish target-racer | target-tube (#1042)
* decomp: finish `target-racer`

target-racing-turn-anim was the `cond` issue here

* decomp: finish `target-tube`

target-tube-turn-anim was the issue here
2022-01-04 23:16:29 -05:00
Tyler Wilding a75ecf176e
decomp: finish orbit-plat and sage-finalboss (#1039)
* decomp: finish `orbit-plat` and waiting on `sage-finalboss` inconsistency for gsrc

* decomp: finish `sage-finalboss` except the relocate method

* decomp: add fix to finish `sage-finalboss`

* update formatting in unrelated files
2022-01-04 23:10:53 -05:00
Tyler Wilding 823dc135bc
decomp: finish joint-exploder and balloonlurker (#1043)
* close on `joint-exploder`

* decomp: finish `joint-exploder`

* decomp: finish `balloonlurker`

* address issues

* update ref tests
2022-01-02 23:18:51 -05:00
ManDude c9204f2a9b
Fix Windows asserts (#1045)
* fix release mode asserts

* clang

* dummy
2022-01-02 18:02:10 -05:00
Tyler Wilding b13a0ee755
tests: add collectables to ref tests (#1030) 2021-12-30 21:36:07 -05:00
Tyler Wilding da0e9a3930
decomp: finish rolling-obs | hud | title-obs | maincave-obs | lavatube-energy (#1023)
* decomp: `(code caveelevator-one-way-idle-end)` problematic

* decomp: finish `rolling-obs`

* decomp: `snow-obs` finished, but needs s6-1 fix

* stuck: `(code target-title)`

* decomp: finish `hud`

* re-decompile

* decomp: finish `title-obs`

* decomp: finish `maincave-obs`

* decomp: finish `lavatube-energy`

* fixes
2021-12-30 21:27:35 -05:00
ManDude 9ff71412e5
[runtime] pckernel implementation (#1032)
* toggle for ripping level models

* Create pckernel.gc

* builds and works

* fix defs

* resolution info works

* native letterboxing

* menu

* Fullscreen buttons

* Update glfw

* fix fullscreen taking over everything for some reason

* fix screenshots and add more menu options

* Cleanup DMA mess in load boundary render code (first try!!)

* Update default-menu.gc

* clang

* fix accidental macros in pairs

* refs

* fix null reference bugs

* add lavatube

* custom aspect ratios work (3D only)

* custom aspect ratios work (3D only)

* fix aspect ratio and non-4x3 debug text

* change `sceOpen`

* deadzone setting

* merge fixes

* check out `debug-pad-display`

* update readme imgs

* settings save works

* oops

* settings read/load (incomplete)

* add `:stop` to debugger and fix detach on Windows

* settings load works

* fullscreen and aspect ratio setting fixes

* swap menu options for convenience

* settings loads automatically properly

* fix panic and font hack edge case

* add rolling, ogre, snow, swamp, sunken b, jungle b

* Fixed borderless on windows please work

* Update fake_iso.txt

* remove error from opengl debug filter

* update refs

* minor tfrag tod palette lookup change

* accidentally nuked all opengl errors
2021-12-30 18:48:37 -05:00
Tyler Wilding 3a5b4d664b
decomp: finish demo-obs | sequence-a-village1 | misty-obs (#1022)
* decomp: finish `demo-obs`

* decomp: finish `sequence-a-village1`

* decomp: finish `misty-obs`

* fix some mistakes
2021-12-29 20:02:50 -05:00
Tyler Wilding c6f0c5cd29
decomp: merge all s6-* remappings and finish training-obs | villagep-obs | lavatube-obs | rolling-robber | snow-obs (#1018)
* decompiler: merge all `s6-*` usages

* decomp: finish `training-obs`

* decomp: finish `rolling-robber`

* decomp: finish `villagep-obs`

* decomp: finish `lavatube-obs`

* skip function in `lavatube-obs` over #1029

* closes #1029

* kick nasm

* merge s6 and sp in variable naming pass

* revert my fix

* fix mistakes and a bad method signature

Co-authored-by: water111 <awaterford111445@gmail.com>
2021-12-28 23:16:42 -05:00
Tyler Wilding 221e33c5d1
decomp: finish pelican | double-lurker | rolling-race-ring (#1020)
* decomp: finish `pelican`

* decomp: finish `double-lurker`

* decomp: finish `rolling-race-ring`

* decomp: update draw-status related code

* fix mistakes
2021-12-28 19:14:50 -05:00
Tyler Wilding 99db6bb371
decomp: finish sunken-pipegame | sun-exit-chamber | beach-obs (#1021)
* decomp: finish `sunken-pipegame`

* decomp: finish `sun-exit-chamber`

* decomp: finish `beach-obs`

* fix mistakes

* make `collide-func` work in offline tests
2021-12-28 18:52:52 -05:00
water111 9b0ae373f0
[decomp] collide-func (#1034)
* add mips2c collide functions

* add ref test for collide-func

* fix test
2021-12-28 16:43:13 -05:00
water111 798356802b
[game] make visibility work (#1031)
* make vis work

* update comments
2021-12-28 15:13:46 -05:00
water111 a8342aef31
[graphics] TIE extractor (#1026)
* temp

* temp

* wip

* more progress on the instance asm

* first half of tie extraction, up to dma lists

* more tie extraction

* first part figured out maybe

* bp1 loop seems to work, bp2 loop does not

* bp1 and bp2 appear working. sadly ip is needed

* ip1 outline, not working ip2

* just kidding, ip2 seems to work

* extraction seems to work

* basic rendering working

* tie fixes

* performance optimization of tie renderer

* hook up tie to engine

* fix more bugs

* cleanup and perf improvements

* fix tests

* ref tests

* mm256i for gcc

* CLANG

* windows

* more compile fixes

* fix fast time of day

* small fixes

* fix after merge

* clang
2021-12-26 12:33:51 -05:00
ManDude c245f37feb
[decomp] joint and related (#1003)
* update jak 2 config and hack to make game text dumpable

* update stuff

* update src

* do `cspace<-parented-transformq-joint!`

* progress.... kind of...

* more drawable stuff

* clagng

* bones begin

* more bones

* even more bones

* everything builds

* touches

* errors

* ?

* fix `quicksandlurker`

* updates

* update refs

* more fixes

* update refs
2021-12-26 11:43:16 -05:00
Tyler Wilding 373e9059eb
decomp: add powerups to ref-tests and finish target-flut | target-death (#1017)
* decomp: add `powerups` to ref-tests

* decomp: finish `target-flut`

* decomp: finish `target-death`
2021-12-18 19:13:40 -05:00
Tyler Wilding 547e37d8f1
decomp: finish vol | helix-water | minecart (#1016)
* some fixes, but no file unblocked completely yet - `balloonlurker` is close

* decomp: finish `vol` - i did it!...i think

* decomp: finish `helix-water`

* decomp: finish `minecart`

* fix `define-perm`s
2021-12-18 17:15:11 -05:00
Tyler Wilding e8027eaeb8
decomp: finish cave-trap (#1015)
* decomp: finish `cave-trap`

* address feedback

* fix stack casts
2021-12-18 16:05:33 -05:00
Tyler Wilding 89980bd61d
decomp: finish mother-spider (#1014)
* decomp: finish `mother-spider`

* address feedback
2021-12-18 01:32:46 -05:00
Tyler Wilding e6d17eb78f
decomp: finish plant-boss and crates (#1012)
* stuck: `crates` has issues setting bitfield with `r0`

* decomp: finish `plant-boss` except for 1 function

* decomp: finish `crates`

* address feedback
2021-12-18 01:31:14 -05:00
Tyler Wilding 574a61e02a
decomp: finish mistycannon (#1009)
* stuck: a bit more progress in `snow-ball`

* decomp: finish `mistycannon`

* address feedback
2021-12-15 21:19:22 -05:00
Tyler Wilding 39f6575661
decomp: finish kermit (#1007)
* decomp: finish `kermit`

* fix function split
2021-12-14 23:49:20 -05:00
Tyler Wilding 83b88d74ff
decomp: finish target-ice (#1005) 2021-12-12 23:27:18 -05:00
Tyler Wilding 7edfc8bcec
decomp: Re-attempting previously blocked state decomp files (#907)
* blocked: `part-tester` - `code` handler thinks it returns nothing

* blocked: `crates` finished but `go` is returning none causing issues

* blocked: `(event ram-boss-idle)::snow-ram-boss` expression building fails due to delay slot issue

* decomp: finish `snow-ram` | `seagull` blocked, new static data issue

* decomp: finish `snow-bumper`

* stuck: `snow-ball` close, can't figure out a type made on the stack

* decomp: finish `spider-egg`

* decomp: finish `puffer`

* decomp: finish `driller-lurker`

* decomp: finish `dark-crystal`

* stuck: `kermit` - mostly done but stuck on a joint related callback arg

* decomp: finish `gnawer`

* decomp: finish `mother-spider-egg`

* decomp: finish `swamp-blimp`

* stuck: `mistycannon` prebind function signature

* decomp: finish `citb-plat`

* decomp: finish `darkvine`

* blocked: `jungle-mirrors` - issues with `link` macro

* decomp: finish `launcherdoor`

* decomp: finish `quicksandlurker` except for 1 unused function

* stuck: `balloonlurker` - `(code balloonlurker-mine-explode)` has some weird joint related code

* stuck: need to decompile an asm func in `orbit-plat`

* decomp: finish `voicebox`

* blocked: `mother-spider` has issues where `go` returns none

* decomp: finish `bully`

* decomp: finish `seagull`

* fixed up after merge conflicts

* decomp: finish `jungle-mirrors`

* update gsrc

* double checked files, fixed issues

* decomp: revert change to projectile methods

* decomp: some more fixes

* address feedback

* fix up remaining method calls in `cam-states`

* fix jungle-mirrors
2021-12-11 13:27:24 -05:00
water111 fe9c5c10d1
[goos] support improper lists in pretty printer (#1001) 2021-12-09 20:56:50 -05:00
ManDude 59a12029a0
[decomp] cleanup default-menu, fix dangerous IOP bug, autoconvert ints in pairs to/from bintegers (#997)
* fix a couple macros in ref tests

* `default-menu` cleanup

* add `find-instance-by-name` func

* improve debugger slightly hopefully

* fix IOP PLAY buffer overrun bug

* fix `default-menu` more

* automatically convert ints in static pairs to/from bintegers

* fix test

* clang

* fix a few more lambdas

* update refs

* add custom menu cuz cool

* oopsie! also make `default-level` and `halfpipe` go away

* add camera teleport menu

* update types in debug menu
2021-12-09 18:39:40 -05:00
water111 dbc266c00b
New Pretty Printer (#994)
* begin work on improved pretty printer

* update ref

* finish pretty printer

* force line break for defstate
2021-12-04 16:06:01 -05:00