Commit Graph

45 Commits

Author SHA1 Message Date
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
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 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 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 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 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
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
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
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
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
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
ManDude 67bb1193a8 [runtime] GPU sprite renderer (#1075)
* sprite_3d first attempt

* fixs

* fix Q usage

* ??

* attempt 2

* Update sprite_3d.vert

* works-ish

* works properly!

* scissor fix

* simplify shader

* texture support except everything is broken for some reason

* stuff

* Update SpriteRenderer.cpp

* meltdown

* Revert "simplify shader"

This reverts commit 97bd9b77be.

* Revert "Revert "simplify shader""

This reverts commit 32fb46ce90.

* fix blend

* fix blend and prim

* fix depth write and texture rendering

* fix bugs

* remove noperspective

* fix and finalize sprite 3D vert shader

* optimize 3D program

* 2D sprites! almost first try

* fixes + merge shader code

* HUD sprite support and clean up code

* oopsie

* fix 3d sprites

* minor cleanup and increase sprite buffer to 8k sprites

* clang

* replace some uses of `glBufferSubData` with `glBufferData`
2022-01-15 12:31:38 -05:00
water111 ab6f41d0c6 [gfx] sprite 3d hack and fix graphics dumps (#1057)
* add sprite 3d

* cleanup
2022-01-07 16:13:19 -05:00
ManDude 2e18cb605a [runtime] optimize DirectRenderer for multiple textures + optimize sprite renderer (#1054)
* optimize sprite texture flush + update shaders

* fix bugs

* change logic a bit

* crunch PNGs

* hud size fix

* clang

* remove shaders from list

* use really small alpha cut-off point for sprites

* ad `flat` to vertex shaders too

* increase cut-off very slightly

* take *2 into account

* ok for real this should be good enough
2022-01-06 18:47:20 -05:00
ManDude 62c14631af [files] merge fake duplicate files (#1048)
* merge `orb-cache-top`

* hopefully fix random TIE extractor crash

* merge `ecovalve-ag`

* expand debug gfx buckets

* merge `barrel-ag`, `sack-ag`, `sharkey-ag`

* merge `warp-gate-switch-ag`

* merge everything else

* Update extract_tie.cpp

* add misty level

* oops

* properly add it this time
2022-01-04 20:32:34 -05:00
water111 6e4b34be0b fix goal build error and a few c++ warnings (#1044) 2022-01-02 16:10:09 -05:00
water111 cd9e74819c improve performance on intel graphics (#1041)
* improve performance on intel graphics

* more tweaks, add a glfinish button

* remove divide in fragment shader

* temp

* add cpu sky blend

* use vao

* change format

* use floats in direct renderer

* format

* format again

* tfrag ice
2021-12-30 19:38:18 -05:00
water111 7292cb5765 tfrag improvements (#970)
* tfrag improvements

* cleanup

* one last fix

* clang
2021-11-15 20:07:10 -05:00
water111 3afd99a8e3 [graphics] partial tfrag implementation (#958)
* temp

* some decomp

* tfrag dma setup

* fix negative label bug

* tfrag dma setup

* tfrag, with pipeline tricks

* kinda works

* cleanup before trying some color stuff

* time of day works

* clean up

* temp before render changes

* a few more fixes

* fix up tests

* clean up

* fix

* fix alignment

* one more cleanup
2021-11-13 20:44:17 -05:00
water111 6a606d7222 Start a debug tool for looking through level data (#954)
* temp

* temp

* level inspection tool

* docs

* windows fix
2021-10-31 13:12:50 -04:00
water111 18714ba536 [decomp] load boundaries (#922)
* mostly working

* fixes

* very small fixes

* fix tests

* clang
2021-10-20 19:49:32 -04:00
water111 b2052016e2 [decomp] sky/time of day (#883)
* time of day

* goal code seems to work

* stars at wrong spot

* stars and sun work

* debugging clouds

* fix texture correction

* sky works

* cleanup, add profiler

* clean up

* final clean up

* offline tests

* missing include
2021-10-10 20:07:03 -04:00
ManDude 4665b5a246 change type of seconds and clean up opengl includes (#887)
* change type of `seconds`

* fixes to pc pad input (visual only)

* strip down openGL to the version we're actually using for now (4.3 no extensions)

* turn on this opengl message

* really minor inconsequential change
2021-10-06 19:32:58 -04:00
water111 f0ceea8b2e [sparticle] 2d hud particles (#849)
* wip, taking a break to work on asm stuff first

* the goal code for sparticle

* mips2c the first sparticle asm function

* temp

* particle processing no longer crashing

* temp

* working texture cache for vi1 and hud textures

* sprites

* cleanup 1

* temp

* temp

* add zstd library

* temp

* working

* tests

* include fix

* uncomment

* better decomp of sparticle stuff, part 1

* update references
2021-09-26 11:41:58 -04:00
water111 ccdfa01a88 Add the imgui library (#785)
* add the imgui library

* use third-party glfw include

* another try at includes

* again

* another try
2021-08-29 14:54:16 -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
water 23748dfeef start on debug graphics 2021-08-13 21:48:56 -04:00
water 3bba86ce18 support mt4hh texture for japanese fonts 2021-08-11 19:36:15 -04:00
ManDude c87b818d82 stuff 2021-08-11 04:48:56 +01:00
water b85ee3a3a5 fix possible bug in direct renderer 2021-08-10 22:13:34 -04:00
water df94e948bb more fixes 2021-08-10 21:31:15 -04:00
water f700438d01 fix merge issues 2021-08-09 21:42:05 -04:00
water ee6639b4f7 fix texture filter 2021-08-09 18:59:47 -04:00
water b4846f0491 hook up profiler 2021-08-08 21:50:34 -04:00
water 0dfe6a169d fonts and stuff work 2021-08-08 20:46:14 -04:00
water 66f95d3c8a text working with no textures 2021-08-07 21:16:44 -04:00
water ef6204e353 closer 2021-08-07 18:57:13 -04:00