Commit Graph

134 Commits

Author SHA1 Message Date
water111 789c57916e Add timeline style profiler (#1312)
* small speedups to extractor

* faster extraction

* add profiler

* spellin

* guess at windows includes

* windows nominmax garbage
2022-04-17 21:12:24 -04:00
Ziemas 9168e20e18 Overlord fixes (#1301)
* srpc: Implement part of VBlank_Handler

And call it on RPC message for lack of better ways

* ssound: Fix distance calculation

avoids negative array index

* srpc: fix sound id assignment

* srpc: bail out on missing sound id

* ssound: Fixes for angle and volume calculation

* srpc: Fix VAG filename stuff

* ssound: Fix CalculateAngle

* ssound: UpdateAutoVol fixes

* srpc: Fix up SET_PARAM command
2022-04-13 18:50:35 -04:00
Tyler Wilding c4a92571b2 Improve ASSERT macro, fix linux file paths in Taskfile and hopefully fix the windows release (#1295)
* ci: fix windows releases (hopefully)

* scripts: fix Taskfile file references for linux

* asserts: add `ASSERT_MSG` macro and ensure `stdout` is flushed before `abort`ing

* asserts: refactor all `assert(false);` with a preceeding message instances

* lint: format

* temp...

* fix compiler errors

* assert: allow for string literals in `ASSERT_MSG`

* lint: formatting

* revert temp change for testing
2022-04-12 18:48:27 -04:00
ManDude a7eee4fdc9 [game] pc port progress menu (#1281)
* fix typo

* more typo

* shorten discord rpc text

* allow expanding enums after the fact (untested)

* make `game_text` work similar to subtitles

* update progress decomp

* update some types + `do-not-decompile` in bitfield

* fixes and fall back to original progress code

* update `progress` decomp with new enums

* update config files

* fix enums and debug menu

* always allocate (but not use) a lot of particles

* small rework to display mode options

* revert resolution/aspect-ratio symbol mess

* begin the override stuff

* make `progress-draw` more readable

* more fixes

* codacy good boy points

* first step overriding code

* finish progress overrides, game options menu fully functional!

* minor fixes

* Update game.gp

* Update sparticle-launcher.gc

* clang

* change camera controls text

* oops

* some cleanup

* derp

* nice job

* implement menu scrolling lol

* make scrollable menus less cramped, fix arrows

* make some carousell things i guess

* add msaa carousell to test

* oops

* Update progress-pc.gc

* make `pc-get-screen-size` (untested)

* resolution menu

* input fixes

* return when selecting resolution

* scroll fixes

* Update progress-pc.gc

* add "fit to screen" button

* bug

* complete resolutions menu

* aspect ratio menu

* subtitles language

* subtitle speaker

* final adjustments

* ref test

* fix tests

* fix ref!

* reduce redundancy a bit

* fix mem leaks?

* save settings on progress exit

* fix init reorder

* remove unused code

* rename goal project-like files to the project extension

* sha display toggle

* aspect ratio settings fixes

* dont store text db's in compiler

* properly save+load native aspect stuff
2022-04-11 18:38:54 -04:00
water111 b408c78698 skip creating trees that are never setup (#1294) 2022-04-10 21:57:00 -04:00
water111 e0be847b8a fix (#1291) 2022-04-10 12:25:35 -04:00
water111 1db96c72ab [goalc] macro expansion in integer constants (#1282)
* [goalc] macro expansion in integer constants

* working

* didn't break it yet

* support conditional compilation

* fix up some more small bugs

* fix duplicate evaluation of bitfield definitions

* paranoid
2022-04-07 19:13:22 -04:00
water111 5bd0b735a5 Add extractor tool (#1276)
* first attempt

* fix

* zip to tar

* windows

* try again, std::filesystem sucks

* std::filesystem is still garbage

* std::filesystem is terrible

* std::filesystem continues to waste my time

* again

* neadsflaldksal;df
2022-04-03 19:17:03 -04:00
water 2e31c9f09b toggle for old format 2022-04-03 13:56:45 -04:00
water111 f8b00ea358 [graphics] use multidraws in tie/tfrag/shrub (#1269) 2022-04-01 19:35:23 -04:00
water111 79683a44b1 [graphics] shrub (#1261)
* update

* renderer appears to work
2022-03-29 21:38:48 -04:00
water111 b2ed9313bd [graphics] First part of shrub extraction (#1258)
* decompile 90% of shrubbery

* some more progress

* some more

* big function decompiled

* went through `draw-prototype-inline-array-shrub` and made more notes

* shrub: start implementing extract_shrub

* read through current notes and add the info to current decomp

* decomp: allow skipping inline-asm from output

* add code to BspHeader to get GOAL types for shrubs

* add doc

* wip

* fix bad merge

Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
Co-authored-by: Tyler Wilding <xTVaser@users.noreply.github.com>
2022-03-28 18:14:25 -04:00
water111 4ea8c01e02 small fixes (#1256) 2022-03-26 21:23:20 -04:00
water111 8d9b0b493b [graphics] shadow volumes (#1247)
* shadow volumes drawing

* fix bugs in clipping case

* add shadow

* fix Q register bugs

* fix bugs
2022-03-26 19:56:54 -04:00
water111 e38832365c Loader improvements and blackout (#1254)
* temp

* also tfrag

* fix order
2022-03-26 15:53:44 -04:00
water111 4a0ac6c155 [graphics] first half of shadow renderer (#1246)
* start on dma stuff

* temp

* temp

* add shadow cpu
2022-03-22 21:42:37 -04:00
water111 299b0c22bc [graphics] Fix memory bug in ocean (#1245) 2022-03-22 21:15:03 -04:00
water111 44459757b5 use common ocean renderer for mid too (#1241) 2022-03-18 20:58:53 -04:00
water111 da00b1ff13 optimize ocean renderer (#1240) 2022-03-17 21:59:10 -04:00
water111 d136aec00f [graphics] fix ocean alpha and ocean near depth (#1236)
* fix up some graphics bugs

* less of a hack fix
2022-03-16 21:28:02 -04:00
water111 c80147119d [graphics] ocean near (#1234)
* dma for ocean near

* add first attempt at ocean near
2022-03-15 23:12:40 -04:00
water111 ef0f7635d3 [graphics] Ocean Mid (in progress) (#1232)
* first pass at ocean mid

* fix some bugs

* fix seams

* cleanup

* temp

* fix mipmap
2022-03-14 19:47:29 -04:00
water111 b2131d43e3 decompile goal code for ocean mid (#1231) 2022-03-12 12:58:04 -05:00
water111 bb85eaf167 add ocean-vu0 mips2c and decomp ocean-texture (#1230)
* add ocean-vu0 mips2c and decomp ocean-texture

* vu1 texture setup

* temp

* unoptimized version working

* optimized version by default

* update ref test
2022-03-11 22:27:11 -05:00
water111 2a78d0a190 [graphics] revert bad change to sprite shader (#1225)
* revert bad change to sprite shader

* only revert half the change

* fix order
2022-03-08 19:39:48 -05:00
water111 e6023e69b7 fix envmap bugs in generic2 (#1229) 2022-03-08 19:28:54 -05:00
water111 43612b0750 add ocean far big triangle stuff (#1224) 2022-03-07 20:28:53 -05:00
water111 a6fa04a83d [graphics] port generic VU1 to OpenGL (#1221)
* temp

* name the obvious ones

* un-pipelined the fast case in generic vu1

* generic2 dma

* pass2

* first pass at opengl

* many fixes

* fix hud, strip

* windows fix

* final tweaks

* memcard folder

* add missing include
2022-03-06 19:56:43 -05:00
water111 7c3ab1f468 do eye rendering on the GPU (#1219) 2022-03-04 18:22:01 -05:00
water111 251ee98d96 add back direct in sprite (#1215) 2022-03-02 22:37:11 -05:00
water111 67946a4274 enable filter by default and fix up bucket hacks (#1214) 2022-03-02 21:40:52 -05:00
water111 a5b383c78a [graphics] Rewrite of texture system (#1212)
* loading cleanup

* temp

* add texture replacement

* fix windows

* oops

* fix windows

* final cleanup
2022-03-02 20:01:37 -05:00
ManDude 3a54a521e3 [runtime] bug & crash fixes (#1211)
* bug & crash fixes

* relax fog hack slightly

* buff particles more

* borderless hack

* tone down sprite hack

* int consts in `deftype` + increase sparticle queue

* move a menu button around

* clang + test fixes

* less confusing image

* add test for new deftype feature
2022-03-01 20:15:15 -05:00
water111 68a1f2d012 [graphics] Add a specialized renderer for handling merc/generic output data (#1207)
* second try at writing the direct renderer

* finish direct2

* more optimization
2022-02-27 17:23:12 -05:00
ManDude 42806d504f [game] HUD/sprite fixes for widescreen + a few other things (#1203)
* mood palette debugging

* fix HUD sprites (most of them)

* racer hud fixes

* automtic widescreen adjust for racer and power hud (crappy)

* add money starburst toggle!

* cheat codes (SECRET!!!)

* fix tests

* fix error

* fix tests

* always for 16x9 for cutscenes

* better lod hacks

* full alphabet

* fog hack for less ugliness + particle density hack
2022-02-27 16:44:43 -05:00
water111 382ec1d1c5 add fog (#1204) 2022-02-25 23:25:49 -05:00
water111 b55de36b27 fix texturing settings (#1201) 2022-02-25 16:53:39 -05:00
water111 2c37ba1fb3 [graphics] Fix texture selection in Direct (#1199)
* temp

* cleanup2

* clang

* fix warnings
2022-02-25 14:44:31 -05:00
water111 9c00b0c135 [graphics] generic merc (#1192)
* begin generic merc

* more generic stuff

* generic dma generation not crashing, at least until high-speed-reject

* c

* unpacker for generic

* starting to work

* small fixes

* more fixes

* more progress

* cleanup

* fix tests

* no custom imgui assert on windows
2022-02-24 22:33:10 -05:00
water111 bbb7213281 various sprite fixes (#1185) 2022-02-19 20:43:03 -05:00
ManDude af447aeab7 [game] subtitles support (tools + goal + text file). (#1174)
* add subtitles support (tools + goal + text file).

* add to build system proper

* better handling of line speakers

* billy test subtitles

* adjust timings

* better handling of subtitle timing + citadel subs

* press square to toggle cutscene subtitles

* improve DirectRenderer performance

* clang

* dont error out if there's no user files

* make system supports multiple inputs for subtitles

* clang

* oh no typo!!

* avoid future issues

* fix warp gate crash

* remove no longer necessary code in DirectRenderer

* remove temp prints

* delete triplicate code

* i found a better way

* fix make issues with subtitles

* force avx compilation
2022-02-19 13:10:10 -05:00
water111 5135ea9659 [graphics] reduce the size of fr3 files (#1175)
* first pass

* first pass at shrinking fr3s

* only need to load vertices once

* avx2 detect and switch

* fix build

* another ifx'

* one more

* fix the sky and stupid math bug in size check
2022-02-16 22:13:18 -05:00
water111 c9fc4f0bf9 [graphics] eyes (#1169)
* first draft eye renderer

* working

* working
2022-02-15 19:37:51 -05:00
ManDude b36199f4f8 add MSAA 4x + lod picking for TIE & tfrag (#1167)
* MSAA

* support different TIE lods

* tfrag lod picking

* always compress screenshots

* mute annoying nvidia opengl message

* use a string here instead

* oops

* more mistakes...
2022-02-15 18:42:48 -05:00
ManDude ae05fde45a cleanup code, fix some bugs (and potential bugs), add actor LOD modifiers (#1163) 2022-02-13 19:19:56 -05:00
Tyler Wilding ffb04ddd10 Documentation cleanup and some feature improvements (#1155)
* ci: switch to codacy for coverage

* docs: update badges

* decomp: allow overriding config flags via CLI

* cleanup: top level file cleanup

* docs: big README overhaul

Attempt to close #1128 and #1086

* decomp: attempt to detect if `iso_data` is missing or wrongly extracted

* game: switch to `fpng` for screenshots, allow for compression

closes #1035

* game: switch vsync control to a checkbox

* lint: format cpp files

* lint: format json files

* docs/scripts: organize taskfile
2022-02-12 17:48:50 -05:00
water111 78cde74d5a update readme and fix always playing str (#1139)
* update readme deps

* replace assert

* bump timeout

* fix memory corruption in kernel

* use unknown if level name is invalid
2022-02-08 19:02:47 -05:00
ManDude 5b44aece75 random fixes + support clang-cl on visual studio (#1129)
* delete unused shaders

* hide some options in debug menu

* change fullscreen logic a bit

* add "all actors" toggle

* borderless fix and fix alpha in direct renderer untextured (do we need a separate shader for that?)

* fix fuel cell orbit icons in widescreen

* fix `curve` types

* refs

* fix levitator task...

* fix some task stuff

* update font code a bit (temp)

* cmake, third-party and visual studio overhaul

* Update .gitmodules

* update modules

* clone repos

* fix encoding in zydis

* where did these come from

* try again

* add submodule

* Update 11zip

* Update 11zip

* Update 11zip

* delete

* try again

* clang

* update compiler flags

* delete 11zip. go away.

* Create memory-dump-p2s.py

* properly

* fix minimum architecture c++ compiler flags

* fix zydis

* oops

* Update all-types.gc

* fix clang-cl tests

* make "all actors" work better, entity debug qol

* update game-text conversion code to be more modularized

* Create vendor.txt

* fix typos and minor things

* update refs

* clang

* Attempt to add clang-cl support to vs2019 and CI

* vs2022 + clang-cl

* srsly? fix clang build

* Update launch.vs.json

* extend windows CI timer
2022-02-07 19:15:37 -05:00
water111 f142f46045 add more comments/docstrings on first 58 files, try new windows-specific framelimiting (#1134)
* cleanup

* type

* link against a library
2022-02-05 16:30:50 -05:00
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