Commit graph

497 commits

Author SHA1 Message Date
water111 19b8bb81c9
Add the STR RPC to overlord and game code (#134)
* work in progress streaming rpc, simple test is working

* actually add the test

* debug windows failure

* windows fix maybe

* windows 2

* use str-load-status

* update types
2020-11-22 12:59:55 -05:00
water111 460ec874bb
Add support for stack integers (#135)
* add support for stack integers

* update documentation

* revise value type stack variables
2020-11-22 12:22:19 -05:00
water111 66c9f40e13
Merge pull request #130 from water111/w/str-data-in-decompiler
Support loading streaming data in decompiler
2020-11-21 16:16:52 -05:00
water 4cafe04af3 support loading streaming data in decompiler 2020-11-21 15:58:51 -05:00
water111 660ef41136
Update documentation and clean up (#129)
* cleanup

* clean up file layout
2020-11-21 12:52:38 -05:00
water111 55c2330e02
Merge pull request #128 from Nexushunter/add_sym_link_dir
Add a default symlink for the Offline test
2020-11-21 11:43:34 -05:00
Hunter Breathat 2827ca8d52 Add a default for the symlink 2020-11-21 10:30:19 -05:00
water111 29e4ff9e51
remove match param (#127) 2020-11-20 20:17:37 -05:00
water111 953c1512db
Process Text Files in Decompiler (#122)
* begin support for v2

* export game text

* generate text files

* working text load

* fix windows

* add test and clean up game tests a bit

* load the right file

* add separate program to launch the data compiler

* add offline test script
2020-11-19 21:22:16 -05:00
water111 ae053870c3
support escaping any character (#125) 2020-11-17 15:25:48 -05:00
water111 0767321934
Extract Textures (#119)
* temp

* cleanup

* documentation, enable alpha

* add subfolder

* support all textures
2020-11-16 19:57:45 -05:00
water111 951f31878e
[Source Line Debugger] Tracking objects and IR (#115)
* track where segments are when debugging

* missing windows include

* figure out what function we're in

* addr to IR is working
2020-11-13 22:33:57 -05:00
water111 71a894c393
move GOAL stack to GOAL memory (#114)
* move GOAL code stack to GOAL memory

* fix win arg reg and check rsp in debugger

* fix windows maybe and fix some incorrect logging formatters
2020-11-06 21:42:05 -05:00
water111 c09541fa98
Add some debugger memory utilities (#109)
* add some memory utilities

* run waitpid in a separate thread and support very simple breakpoints

* fix breakpoints

* add missing windows stub function

* fix error message on exit
2020-11-06 13:59:39 -05:00
water111 f5ed2e6ad7
Merge pull request #111 from Nexushunter/fix_runtime_err
Added missing import causing runtime_error to not be found.
2020-11-05 18:10:43 -05:00
Hunter Breathat 1ff2031e75 Added missing import causing runtime_error to not be found. 2020-11-05 17:43:47 -05:00
water111 27c60a47fe
try to fix zydis build issue (#110) 2020-11-01 12:57:06 -05:00
water111 566dc6070f
add zydis library and a simple test (#108) 2020-10-31 14:31:13 -04:00
water111 0451a06d76
Set up the compiler to ptrace the runtime (#107)
* set up the compiler to ptrace the runtime

* clang format

* move debugger state to a separate Debugger class

* support registers and break and continue

* documentation and fix windows

* make listener part of compiler, not a separate library

* implement memory read and write

* fix for windows
2020-10-31 14:07:43 -04:00
water111 a45d180f2c
Try to speed up the build (#106)
* first attempt

* attempt 2

* windows and formatting fix
2020-10-29 21:27:52 -04:00
doctashay 985549f27c
Compiler logging (#92)
* Begin spdlog integration for decompiler

* Replace old prints with spdlog equivalents

* clang-format

* Fixes

* Log output to /logs/decompiler.log.

The console now prints that the disassembly has begun and it may take a few minutes to complete. This will reduce the amount of verbose logging output directly to a console stream.

* Update .gitignore

Ignore decompiler output for now

* Resolve more issues

Fixed percentage printing and various other issues

* Fixed stuff I broke (sorry)

* Fix more broke stuff

* Implement basic compiler logging

* clang-format

Still working on finding a solution to the spdlog shared library issue.

* clang-format

Yup, I literally have nothing else atm
2020-10-29 19:03:44 -04:00
water111 461aeadad5
Merge pull request #105 from water111/w/cmake-spdlog-shared-lib-fix
Fix cmake setting for spdlog
2020-10-28 20:22:43 -04:00
water 3d7ca5fb50 fix cmake setting for spdlog 2020-10-28 20:15:31 -04:00
water111 3a13333c9d
Merge pull request #103 from xTVaser/fix-headers
Update all lisp headers to reduce size of formatting PR
2020-10-28 18:57:23 -04:00
Tyler Wilding bb9fb3b2cd Update all lisp headers to reduce size of formatting PR 2020-10-26 21:08:24 -04:00
water111 dfe129373a
fix float loads, add dgo loading to game test (#101)
* fix float loads, add dgo loading to game test

* build and load dgos in order
2020-10-25 20:30:25 -04:00
water111 fd8a0a5cf1
Merge pull request #97 from water111/w/add-types-to-all-types
Add some types
2020-10-25 18:08:11 -04:00
water acb91dbf48 some work on vector types 2020-10-25 18:02:03 -04:00
water 710f6be13b Merge branch 'master' of https://github.com/water111/jak-project into w/add-types-to-all-types 2020-10-25 13:21:34 -04:00
water a198196842 more types 2020-10-25 13:21:27 -04:00
water111 5985eaa7ac
Merge pull request #96 from xTVaser/file-io
Amalgamate FileIO and remove duplicate Timer header
2020-10-25 12:10:20 -04:00
water 15a66d9c62 add types 2020-10-25 12:07:10 -04:00
Tyler Wilding 5a5d88eb17 Amalgamate FileIO and remove duplicate Timer header
Closes #8
2020-10-25 02:27:48 -04:00
water111 b56025412b
Recognize auto-generated inspect methods and create deftypes from them (#95)
- Recognize new type definitions/parents/type flags in the decompiler
- Analyze autogenerated inspect methods and dump guesses at fields to a file
- Utility functions for accessing static data by label
- Better ordering in the decompiler to go through functions in the order they appeared in the source
- Added a decent number of types to `all-types.gc` based on the new field analyzer
- Correct a few `int`/`integer` mistakes in `gcommon.gc` (this should really be a warning)
- Correct a few type issues in `gcommon` and `gkernel-h`
- Option in the decompiler to be strict about `define-extern` redefining a type of a symbol
- Add a test to check consistency in types between `all-types.gc` (used by decompiler) and `goal_src` (used by the compiler)
2020-10-24 22:51:40 -04:00
water111 b561cdfade
Make decompiler naming consistent (#94)
* use a fixed object file naming by default, option to allow new map file creation

* fix prints

* fixing up edge cases

* update json config
2020-10-24 14:27:50 -04:00
water111 0bc2466f86
Add prototype decompiler GUI (#93)
* json output for basic ops

* add prototype gui

* add some more fields and layout the gui a little bit nicer
2020-10-23 17:20:04 -04:00
water111 fc1a8f37c6
Partially Implement Decompiler Type Analysis (#90)
* implement basic framework for decompiler type analysis

* before type system changes

* add some decompiler stuff to the type system

* try algorithm on a few functions
2020-10-18 15:44:19 -04:00
water111 3e798cd3aa
Add features for gkernel 2 (#89)
* in progress

* format
2020-10-17 11:18:58 -04:00
water111 d5d0d7f924
Add compiler features for gkernel (#83)
* add some type stuff for gkernel

* more tweaks

* blah

* more little tweaks and more of gkernel

* add static structures with integer fields but not basics

* static structures

* update gkernel
2020-10-16 17:08:26 -04:00
water111 118a1b29e3
Merge pull request #84 from xTVaser/goalc/auto-inspect
Add auto-generated `inspect` methods to `deftypes`
2020-10-15 22:07:53 -04:00
Tyler Wilding b8a4a4e7fb Correct compiler error 2020-10-15 21:58:15 -04:00
Tyler Wilding 28d732737f More customized format depending on the field type 2020-10-15 21:25:35 -04:00
doctashay 9410e01aaf
Implement logging features for decompiler (#78)
* Begin spdlog integration for decompiler

* Replace old prints with spdlog equivalents

* clang-format

* Fixes

* Log output to /logs/decompiler.log.

The console now prints that the disassembly has begun and it may take a few minutes to complete. This will reduce the amount of verbose logging output directly to a console stream.

* Update .gitignore

Ignore decompiler output for now

* Resolve more issues

Fixed percentage printing and various other issues

* Fixed stuff I broke (sorry)

* Fix more broke stuff
2020-10-15 20:59:30 -04:00
Tyler Wilding c72ca18f00 Add auto-generated inspect methods to deftypes 2020-10-15 00:39:27 -04:00
water111 8d91b47d00
Print strings in assembly (#81)
* print strings in disasm

* format
2020-10-14 14:21:47 -04:00
water111 3616b790bd
Add more array stuff and clean up field access (#80)
* implement some array stuff and clean up field access

* update goal change log
2020-10-14 13:42:14 -04:00
water111 ef1e8b9072
Tweak logger settings to make logging happen in order (#73)
* tweak logger settings to make logging happen in order

* clang format
2020-10-11 19:55:29 -04:00
water b1759dbd13 Merge branch 'doctashay-logging2' 2020-10-11 19:12:14 -04:00
water 651579c4bb Merge branch 'logging' of https://github.com/doctashay/jak-project into doctashay-logging2 2020-10-11 19:07:50 -04:00
water111 1e1b5e7c00
Make decompiler more successful (#66)
* w/early-return-and-break

* more edge cases

* all instructions in non asm functions now convert to ir

* cleanup

* implement rarely used control flow in IR

* clang format
2020-10-11 18:27:44 -04:00