Commit graph

115 commits

Author SHA1 Message Date
Ethan Lafrenais 88856ba5e0
Add in-game option to switch fullscreen monitor (#1700)
* Add in-game option to switch fullscreen monitor

* mmm undefined memory :)

* Fix type consistency

* Optimize get_monitor and get_monitor_count since they're called often

* Address PR feedback

* Track fullscreen mode and minimized state to reduce GLFW calls per frame
2022-07-31 13:31:17 -04:00
ManDude a8653f7595
fix borderless on Windows, resolution when letterboxes and envmap setting (#1683)
* fix Windows borderless and letterboxing resolutions

* oops fix envmap setting

* unused

* fix msaa not using a resolve buffer

* remove unnecessary resolve buffers(?)

* fix sprite distort
2022-07-19 18:41:48 -04:00
ManDude d2f104cd43
implement a cheats menu + a few bug fixes (#1677)
* raise particles cap to 10x

* change a text line

* allow sound bank load during vag

* fix default settings and fps setting

* keep "auto save disabled" option in menu

* cheats menu!

* Update game_text_ja.gs

* fix battle hud crash

* add cheats menu to title

* update settings version

* Update all-types.gc

* disable envmap fade out with hires actor lod setting

* disable merc fadeout if not using ps2 actor lods

* dont update aspect ratio if game size is bad

* set vsync later

* increase memory for generic, sprite and dma.

* fix issues with aspect ratio not saving

* split forcing envmap to a separate toggle

* too slow, dont expose to users yet
2022-07-18 19:54:38 -04:00
water111 1602b05a2e
[graphics] some blit optimizations (#1667)
* [graphics] a few optimizations

* fullscreen crap

* working, other than aspect ratio thing

* same behavior as before

* fix blackout bug, add more error messages

* fix error when 0 size buffer

* rm warning

* one last 0 size issue
2022-07-17 14:45:00 -04:00
water111 e9567a6e4b
Cleanup goalc tests, fix jak2 kernel bugs (#1669)
* Cleanup goalc tests, fix jak2 kernel bugs

* fix warnings on linux

* spelling is hard
2022-07-17 14:12:11 -04:00
water111 9bdb6d11d1
[graphics] Another possible way to handle windowed (#1653)
* [gfx] fixes for when the window is force to weird size

* a better way

* Another way to handle windowed mode
2022-07-15 18:59:13 -04:00
Ethan Lafrenais 16d8f6b59d
Fix exclusive fullscreen refresh rate (#1643) 2022-07-15 10:01:54 -04:00
ManDude 20ab48796d
split game framebuffers to allow custom resolutions/shaders (#1641)
* split rendering framebuffer

* fix blackout

* unhardcode c++ stuff

* optimization

* implement goal side of all this

* fix msaa

* sprite distort fixes

* fix resolution menu options

* save & load msaa

* linear filtering on the game screen

* fix bad texture units

* fun!

* unused

* make screenshot button capture the framebuffer and not the window buffer

* panik

* screenshot settings

* fix black screen on first frame of new framebuffer

* default fullscreen resolution to the screen size

* hide funny resolutions in windowed since it makes no sense
2022-07-14 21:37:03 -04:00
Tyler Wilding 1b67d1dc77
Fix UTF-8 handling when running the game, env-vars, and setting the project path (#1632)
* fix utf-8 handling around env-vars

* fix file opening errors related to unicode

* add uncaught exception handler in `gk` to ensure something is logged

* gracefully fail if window icon cant be loaded and work with unicode

* linux fix and add changes to vendor file
2022-07-10 19:03:24 -04:00
water111 f763eb6bf0
[jak2] support for multiple out/ directories (#1585)
* [jak2] support for multiple out/ directories

* windows
2022-06-30 21:11:58 -04:00
water111 1e33dcda4b
Remove assets folder, use more std::filesystem (#1575)
* Remove assets folder, use more std::filesystem

* windows fix

* another one for windows

* another one

* better system for different folders

* rm debugging stuff

* let extractor override everything

* dont revert jak1 change
2022-06-29 23:32:46 -04:00
ManDude 2649fd17ec
subtitle editor fixes + other smaller fixes (#1572)
* [extractor] validate files when extracted as folder

* jp text fixes

* move game text version to the text file and fix subtitle editor escape chars

* make bad subtitles not crash the game

* fix texscroll in lag

* fix mood, fix decomp of other versions, fix text decomp

* clang

* fix tests

* oops dammit

* new fixes

* shut up codacy

* fix nonexistant subtitles crashing the game

* fix text hacks and extractor re-use on folders
2022-06-29 19:43:23 -04:00
ManDude c9de15ba64
framerate and vsync menus and fixes (#1552)
* in-game vsync option, automatically framelimit correctly, fix minimize/alttab bugs

* fix jp text errors

* bump version number as panic

* this makes more sense i think

* clang

* oops delete debug print
2022-06-25 11:05:20 -04:00
Tyler Wilding 2d595c1ac0
lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
water111 90a049dcc5
[cleanup] memory bugs, memory usage reduction, delete merc1 (#1515)
* [cleanup] remove merc1, fix memory bugs, reduce memory usage

* change compiler log to see actual info from build_level

* save file

* editing text is hard
2022-06-21 21:26:11 -04:00
ManDude 8d8c6ccf39
fix bad resolutions being picked in windowed mode (#1513)
fix bad resolutions being picked in windowed
2022-06-21 20:11:57 -04:00
ManDude 69a3007e9b
windows graphics fixes (#1512)
* fix blurry jp text

* fix weird interrupt lag from setting window size

* add window lock toggle and update settings ver

* better particle hacks
2022-06-21 19:21:51 -04:00
Tyler Wilding 818485b501
paths: ensure imgui and game_config respects the project path (#1505)
* paths: ensure `imgui` respects the project path

* paths: remove extra creation of `game_config/` this is done when the settings are saved
2022-06-21 18:22:31 -04:00
water111 196c09a232
Clean up libstb_image (#1494) 2022-06-19 19:48:34 -04:00
Brent Hickey f48fda692e
[game] 150fps support (and 100fps support) (#1264)
* docs for ee merc code

* 150fps support but it replaces 60fps

* oops switched wrong mode

* oops 50.0 not 50

* formatting

* fix cutscene speed

* oops

* Replace latest merc.md, not sure what happened

* Automatically switch between video modes (ntsc or 150fps) based on
refresh rate. Cleanup particle timing

* cleanup

* fix idle animation

* linter

* fix village2 crash

* can load all levels again

* update loader output and replace sparticle time with formula

* Add 100fps support, add some comments, fix build

* formatting

Co-authored-by: water <awaterford111445@gmail.com>
2022-06-19 17:01:51 -04:00
SortAnon f212de86dc
Add menu bar toggle (#1472)
* Add menu bar toggle

* Add menu bar toggle (fix)

* Add menu bar toggle (Alt+Tab fix)
2022-06-17 19:39:33 -04:00
ManDude 714ddf1d6f
a bunch of PC/GFX system fixes (#1465)
* rework fullscreen code a bit

* Virtualization!

* Fix resolution stuff not working properly!

* yeah yeah whatever
2022-06-16 22:46:12 -04:00
Tyler Wilding d73336bbf3
game: automatically apply framelimiter on high refresh rate monitors (#1452)
game: automatically apply framelimiter on high refresh rate monitor
2022-06-13 18:28:25 -04:00
water111 7bf19759d3
fix goalc crash and clang warnings (#1441) 2022-06-11 16:52:27 -04:00
Tyler Wilding 9fdf0bbc2f
tools: Add cutscene player / subtitle editor window (#1429)
* stash

* temp

* tools: subtitle tool works! just gotta fill out the db / polish UX

* tools: added configuration for every subtitle we have so far

* tools: add some colors to the editor, time for repl controls and make it run the code!

* tools: continuing polish of tool, getting very close

* tools: finished UX polish, just need to write deserializers

* tools: added deserializer for subtitle data

* tools: exported subtitle files, all data appears intact

* tools: more UX polish and test all the cutscenes, majority work

* assets: update subtitle files

* lint: formatting and cleanup

* lint: codacy lints
2022-06-11 16:32:27 +01:00
water111 347572d9df
support non-debug-mode (#1347) 2022-04-30 14:55:13 -04:00
water111 caf4aed127
[gfx] remove the generic v1 renderer, cleanup (#1345)
* remove the generic v1 renderer, cleanup

* rm the toggle too
2022-04-30 13:10:33 -04:00
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
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 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
water111 e38832365c
Loader improvements and blackout (#1254)
* temp

* also tfrag

* fix order
2022-03-26 15:53:44 -04: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 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 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
water111 382ec1d1c5
add fog (#1204) 2022-02-25 23:25:49 -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 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
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 4648f78733
add vis data to tie/tfrag and better framelimiting/lag (#1100)
* add vis data to tie/tfrag and better fps stuff

* better default
2022-01-20 00:22:03 -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
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
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 7292cb5765
tfrag improvements (#970)
* tfrag improvements

* cleanup

* one last fix

* clang
2021-11-15 20:07:10 -05:00
Tyler Wilding 44c43610ce
game: Get camera code working (#965)
* cmake: disable edit&continue flags

* goos: make the build system work for alternate file paths nicely

* vs: update vs config

* vscode: extend terminal buffer!

* vs: fix presets

* debugger: fix exception handler

* game: add logo to application

* decomp: get `cam-master` to "work" -- manually changed return type

* debugger: fix printing issue

* game: get the camera actually working

* game: neutralize the analog sticks

* game: support analog sticks

* tests: update ref tests

* temp commit - inprogress stuff

* fix `send-macro`

* turn camera stuff back on, seems to work.  Still kernel-dispatch problem though

* address feedback

* formatting
2021-11-13 22:41:15 -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 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
ManDude 67f236d32b Update opengl.cpp 2021-08-17 08:05:18 +01:00
ManDude b18af4efae fix typo in comment while we're at it 2021-08-17 08:05:01 +01:00
ManDude ff3174f292 more cpad stuff + make font-flags 2021-08-16 03:50:36 +01:00
ManDude af823cdb82 implement cpad stuff 2021-08-14 21:00:50 +01:00
ManDude af5a9f0951 minor gfx updates 2021-08-14 01:06:16 +01:00
water a65357642d fix debugger 2021-08-11 20:21:58 -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 df94e948bb more fixes 2021-08-10 21:31:15 -04:00
water f700438d01 fix merge issues 2021-08-09 21:42:05 -04:00
ManDude a850b5d5cb
revamp the gfx+display systems a bit (#739)
* revamp gfx and display systems a bit

* Use some fancy c++ pointers instead of just raw pointers

* Tidy some things up.

* clang

* clang 2

* fixes

* fixesss

* error detection when making display
2021-08-09 19:16:39 -04:00