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
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
water111
f6b40637a3
add declare-file debug ( #1004 )
2021-12-12 12:52:23 -05:00
water111
083202929c
[graphics] tfrag3 renderer ( #978 )
...
* begin work
* work
* working objs
* exporting
* it works
* before some time of day fixes
* add time of day interp and also fix zbuffer
* some small blending fixes
* improve randomess
* clean up extraction and missing blend mode
* culling, time of day, more level fixes
* more cleanup
* cleanup memory usage
* windows fix
2021-12-04 12:33:18 -05:00
ManDude
59d071eccb
[goos/goal] user profiles ( #977 )
...
* implement user profiles
* example usage!
* typo
* use a cond
* fix errors
* fixes
* fix potential commandline args disaster
2021-11-24 00:44:04 -05:00
ManDude
25b0e1be7d
[decomp] collectables + works ingame! ( #971 )
...
* decomp: `collectables`
* fix types
* `powerups` and fixes
* fixes
* Merge branch 'pr/929' into d/temp/collectables
* fix collide stuff
* update things...
* update
* update
* temp bump global heap mem
* fix `defstate` hooks wrong/unnecessary sets & collide stuff for collectables
* dumb mistakes :)
* stub out broken process-drawable stuff
* update refs
* add `:no-inspect` key and save some memory & remove birth logs
* Update kmachine.h
* clang
* add citadel
* fix no-inspect key
* fix tests!!
* fix stupid mistake in `collide-shape-prim-sphere` alloc
* comment annoying print
* feedback
* fix edge-case probably
* remove `:no-inspect`s
2021-11-23 18:25:57 -05:00
water111
8846968963
[Debugger] windows debugger and process drawable ( #953 )
...
* Update assert.h
* stuff for `process-drawable` to work
* add windows code for debugger
* debugger attaches
* something works
* remove bad ideas
* `(:break)` works
* connection fixes
* fixes + update docs
* crates & `defskelgroup` macro
* clang
* update tests and a few types
* temp
* temp
* fix files
* game builds
* reverse TypeConsistency operation
* add eye stuff for merc art login
* add `(:sym-name)`
* oops
* add `--auto-dbg` option to gc args
* codacy
* improve robustness of dgo unpacker and objectfiledb reading
* `cavegeyserrock`
* hopefully fix linux
* windows FormatMessage weirdness?
* mutex fixes
* fix merge conflicts
Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com >
2021-10-31 11:01:15 -04:00
water111
24fe2c78c0
[goalc] Address-to-line ( #783 )
...
* refactor debug info stuff before adding form to emit
* source mapping working for non-macro sourced forms
* support macros
2021-08-26 20:33:00 -04:00
water111
7a5562106e
Compiler performance improvements and error clean-up ( #782 )
...
* compiler cleanup and error improvement
* fix test
2021-08-24 22:15:26 -04:00
water111
97ab6a4e12
add support for non virtual states ( #764 )
...
* add support for non virtual states
* typecheck go
* start on virtual states
* more support for virtual states
* offline passes
* fix tests
* use behavior shortcut instead of lambda
* final cleanup of virtual go
* unused var warnings and fix inconsistent enum decompile order on win vs linux
* fix thread safety bug with goal symbol table and vif1 interrupt handler
* fix type mistake
2021-08-17 20:54:03 -04:00
water111
4d76d2f11a
add get-enum-vals ( #737 )
2021-08-02 22:01:10 -04:00
water111
aa58d146c2
[goalc] register allocator v2 ( #731 )
...
* clean up allocator interface to be simpler
* working on functions without spills
* working for all
* fix missing includes for windows
* more windows includes
* initialize regs to zero so printing value unintiailized by game code is repeatable
2021-08-01 17:46:55 -04:00
Tyler Wilding
d317497c64
decomp: main-collide and support a bunch of new inline-asm operations ( #673 )
...
* decomp/goal-lib: Implement all fixed point macros
* decompiler/goalc: Support half-word and byte parallel extend ops
* decompiler/goalc: Support all parallel compare instructions
* decompiler/goalc: Wire up PPACH and parallel bitwise operations
* goalc: Add emitter tests
* decomp: finalize `main-collide`
* codacy lint
2021-07-27 19:57:14 -04:00
water111
2b6684aa5c
[decompiler] Working toward bsp ( #717 )
...
* clean up
* before int to float stuff
* before trying to eliminate the separate read and write maps
* partial fix for register issues
* add missing include
2021-07-25 15:30:37 -04:00
water111
ef011f4fe8
[goalc] add a build system ( #704 )
...
* add first attempt at build system
* fix stupid bug
* try again
2021-07-15 21:37:15 -04:00
water111
656489e942
[decomp] Clean up - part 2 ( #687 )
...
* temp
* temp2
* basic case support
* working for or without else
* support more cases
* clean up to drawable headers
* ocean
* format json
2021-07-11 16:35:25 -04:00
water111
322a4ed9b2
Fix compiler crashes and improve return statements. ( #652 )
...
* fix a few small bugs
* fi
* fix merge conflict
2021-06-30 00:11:46 -04:00
water111
bfc1173ed5
Clean up files in kernel ( #625 )
...
* clean up gcommon
* cleanup kernel
2021-06-25 17:55:50 -04:00
water111
5b24e43143
Change syntax for boxed array to support different length and allocated-length ( #568 )
...
* change syntax for boxed array
* fix test and make the flava thing kind of work
2021-06-07 20:22:06 -04:00
ManDude
63821755e6
[compiler] add psize-of ( #564 )
2021-06-06 23:02:00 -04:00
water111
a6258f3654
[compiler] support 128-bit bitfields ( #500 )
...
* support setting and accessing fields of a 128-bit bitfield
* remove print
* rework static constants
* support 128-bit bitfields as part of static structures
* dynamic construction
2021-05-18 21:25:29 -04:00
water111
433993074a
Clean up some errors/crashes in decompiler ( #452 )
...
* fix offline tests, clean up some warnings
* clean up warnings during decomp
* fix remaining crash issues
2021-05-11 16:43:13 -04:00
Tyler Wilding
7c182db7ea
Compiler: Auto-generate inspect methods for bitfields ( #407 )
...
* goalc: Auto-generate inspect methods for bitfields
* goalc: Don't generate inspect methods for 128-bit bitfields
2021-05-01 15:29:56 -04:00
Tyler Wilding
44fa183922
repl: Add auto-listening capabilities -auto-lt ( #405 )
...
Closes #403
2021-05-01 10:33:41 -04:00
water111
14028b90bc
[Decompile] vector.gc (finally) ( #394 )
...
* support psubw
* do half of vector
* rest of vector
* add test
* format
2021-04-28 17:14:54 -04:00
water111
3d2ca71fe3
[Decompile] pad and gs ( #389 )
...
* update stuff
* gs reference added
* update config
2021-04-26 21:40:08 -04:00
water111
2002db359a
[Decompiler] WIP: Stack Spills ( #382 )
...
* set up types
* cleaned up type analysis and got things working through atomic ops
* expression working, need types
* improved types and names
* getting close
* finish up dma-disasm
* fix
2021-04-25 14:48:54 -04:00
water111
060b125324
[Compiler/Decompiler] Better support for Bitfield and Enum types ( #374 )
...
* compiler fixes, a decent amount of decompiler stuff is working too
* more support in decompiler, fix some casts
* decompile static data too
2021-04-22 19:08:58 -04:00
ManDude
0560136f08
Allow enum names to serve as types (using the enum's type) ( #372 )
...
* Allow enum names to serve as types (using the enum's type)
* Formatting
* add doc to `get_enum_type_name`
* Ban enum forward-declaring, and remove unneeded checks
2021-04-19 20:29:38 -04:00
water111
c09e18f3a7
Fix stack new and add size-of to compiler ( #370 )
...
* make decompiler output stack-no-clear
* add size-of
2021-04-18 19:51:15 -04:00
water111
a863542fa3
[Compiler] Support dynamically constructed bitfields ( #354 )
...
* support dynamic bitfields
* update doc
2021-04-11 19:21:49 -04:00
water111
9969445cf7
[Decomp] Math library: transform and quaternion ( #344 )
...
* decompile transform
* types for quaternion
* part of quaternion
* finish quaternion
* fix offline test reference
* wip fix to let issue
* fix
2021-04-02 11:35:14 -04:00
water111
0a76e6e157
[Decompiler] Make matrix decompile ( #341 )
...
* small fixes
* update
* add instructions
* finish matrix
* add matrix test cases
2021-03-28 20:26:30 -04:00
water111
fe336b7b5f
[compiler] fix warnings in repl lib and add macros to autocomplete ( #317 )
...
* fix warnings in repl lib and add macros to autocomplete
* fix crash on ctrl-c, build runtime as static lib and make goos prompt look fancier
* some tweaks for linux build
2021-03-11 12:54:16 -05:00
Tyler Wilding
8bba3d7fd7
REPL: Add clear-screen / auto-complete / basic hints and syntax highlighting ( #316 )
...
* swap to replxx from linenoise
* repl: Implement form auto-tab-completion
* repl: color coordinate the prompts
* repl: Add some basic syntax highlighting, bracket pairs and forms (all one color)
* repl: A more consistent starting screen for the repl
* repl: bug fix for auto-complete
* debug linux
* linting
2021-03-07 23:41:21 -05:00
Tyler Wilding
f123bf368a
decomp - vector.gc - Decompile vector.gc ( #289 )
...
* temp: commit what i have so far
decomp: Fix nonempty_intersection impl for MSVC Debugging use-case
docs: Add info on getting ASan builds running on Visual Studio w/o exceptions
* decomp: initial rlet implementation
* decomp: cleanup pass of vector-rewrite stage
* decomp: Commit in-progress vector.gc, shortcomings are TODO commented
* decomp: More cleanup, rename from being `vector` instr specific
Fundamentally, this process can be used for re-writing ANY inline-asm instruction
* decomp: Support 4th arg ACC instructions
* decomp: Final pass of vector.gc before implementing last instructions
* decomp: Better warnings when hitting unimplemented instructs
* compiler: Implement inverse-sqrt and mov.vf
* decomp: Final manual pass over vector.gc, documented gaps
* decomp: Finish decompiling what currently is possible in vector.gc
* decomp: Fix Variable -> RegisterAccess conflict
* decomp: codacy lint
* Address review feedback
* Address feedback part 2
* Resolve build failures
2021-03-06 10:46:26 -05:00
water111
9168f03289
[Compiler] Add get-info ( #306 )
...
* wip symbol info
* finish implementation
2021-03-04 10:33:59 -05:00
water111
d9aa535dd0
[Decompiler] Fix issues in gcommon ( #305 )
...
* fix several issues
* small fixes
2021-03-03 20:52:25 -05:00
water111
413c1f5c74
[Decompiler] Add offline tests ( #303 )
...
* add offline test for gcommon as an example.
* fix test
* unused var
2021-03-03 15:42:55 -05:00
Tyler Wilding
3e0e370343
repl: Add a (repl-help) command for forgetful people like me ( #298 )
2021-03-02 13:16:47 -05:00
water111
cadd014add
[Compiler] Support array fields in static objects ( #284 )
...
* first part of static inline array fields
* level h
2021-02-25 22:49:46 -05:00
water111
8775840265
[Decomp] Decompile engine math library types ( #272 )
...
* decompile some stuff
* fix typo
* playing around with trigonometry
* more progress on trig
* more trig
* comments and small fixes
* finish trig
2021-02-20 11:42:46 -05:00
water111
1b5b9a2469
add sqrt ( #270 )
2021-02-17 00:57:21 -05:00
Tyler Wilding
cdce4d9612
compiler: Support the majority of the remaining VU VF instructions ( #258 )
...
* compiler: Support the majority of the remaining VU VF instructions
- VWAIT
- VMADD variants
- VMSUB variants
- VSQRT
- VDIV
- outer product (VOPMULA + VOPMSUB)
* compiler: Fix some bugs / optimize some instructions
* tests/compiler: Add test coverage for new instructions
* docs: Add documentation for new inline assembly functions
* lint: Formatting / fix failing test
* Remove my comment about ftf/fsf encoding, it's been fixed
* address review feedback
* correct VSQRTPS implementation
2021-02-16 21:41:33 -05:00
water111
126dfc1c45
[Decompiler] Misc fixes for gkernel/math ( #257 )
...
* more cases
* some work on math and floating point stuff
* some decompiling for fun
2021-02-13 11:32:52 -05:00
water111
e01e065170
[gcommon decomp] compiler and decompiler fixes ( #239 )
...
* wip
* decompile file-io
* a
* fix
2021-02-07 18:21:00 -05:00
water111
ddffda1e8c
[Decompilation] Fixes to compiler/decompiler for gcommon ( #227 )
...
* fix shift naming issue
* fix bad argument variable names
* fix missing variable issue
* small missing things
* wip
* cleanup
* wip
* fix conditions
* small bug fix in rewriter
* fix incredibly stupid printing bug
2021-02-05 19:41:09 -05:00
Tyler Wilding
65206823ef
Compiler - Implementing more VU Instructions (Part 1 of 2) ( #221 )
...
* A little project cleanup
* Script to grep decompiler results
* Compiler: Implement VNOP -> FNOP (.nop.vf)
temp: test new addition
* Compiler: Implement VMUL.xyzw (.mul.vf)
squash: cleaning up files i don't want to accidentally stage
* Compiler: Implement V[ADD|SUB|MUL].dest instructions
* Compiler: Implement V[ADD|SUB|MUL][x|y|w|z].dest instructions
* Compiler: Implement V[MIN|MAX]{[x|y|z|w]}.dest instructions
* Compiler: Implement V[ABS]{[x|y|z|w]}.dest instructions
* Cleanup review feedback before adding tests and docs
* Tests: Added missing emitter tests
* tests/compiler: Comprehensively test all new instructions
* docs: Add documentation for newly supported operations
* Remove unused vector-h function
* Address review feedback
2021-02-05 15:00:17 -05:00
water111
45f74f078a
[Compiler] Implement and/or in the compiler instead of a macro ( #231 )
...
* fix sc
* doc update
* another doc update
2021-02-03 16:12:51 -05:00
water111
425cc6794c
[Compiler] Bug fixes ( #230 )
...
* fix method name and use-after-free during compile error
* doc fix
2021-02-03 11:07:47 -05:00