Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3.0 - Microcode overhaul #816

Open
wants to merge 78 commits into
base: develop/3.0.0
Choose a base branch
from

Conversation

mountainflaw
Copy link
Contributor

@mountainflaw mountainflaw commented Jul 3, 2024

The goal of this is to combine #789 and #764, while also moving microcode config from the makefile to config_graphics.h

@mountainflaw mountainflaw requested a review from gheskett as a code owner July 3, 2024 16:20
@gheskett gheskett added enhancement New feature or request monkaS monkaS cleanup Removal of useless or bloat code/features labels Jul 4, 2024
@gheskett gheskett added this to the 3.0 milestone Jul 4, 2024
@mountainflaw
Copy link
Contributor Author

Fully tested. Ready for review.

Copy link
Collaborator

@arthurtilly arthurtilly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice try idiot

actors/metal_box/model.inc.c Outdated Show resolved Hide resolved
include/config.h Outdated Show resolved Hide resolved
include/config/config_game.h Outdated Show resolved Hide resolved
include/config/config_graphics.h Outdated Show resolved Hide resolved
include/config/config_safeguards.h Outdated Show resolved Hide resolved
levels/intro/script.c Show resolved Hide resolved
@@ -33,7 +35,7 @@
#include "emutest.h"

// Emulators that the Instant Input patch should not be applied to
#define INSTANT_INPUT_BLACKLIST (EMU_CONSOLE | EMU_WIIVC | EMU_ARES | EMU_SIMPLE64 | EMU_CEN64)
#define INSTANT_INPUT_BLACKLIST (EMU_CONSOLE | EMU_WIIVC | EMU_ARES | EMU_SIMPLE64 | EMU_CEN64 | DISABLE_INSTANT_INPUT)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whats this

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a new config option that forces instant input to be off when defined. made testing a lot easier.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's not referenced anywhere except safeguards as far as i can tell, so it should be removed

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh im blind. still not sure abt it. would rather it was in this file than config

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ideally it would get added to something like disable_all in the future, instant input does pop up and cause problems frequently

src/game/rendering_graph_node.c Outdated Show resolved Hide resolved
src/game/screen_transition.c Outdated Show resolved Hide resolved
src/game/screen_transition.c Outdated Show resolved Hide resolved
src/game/screen_transition.c Outdated Show resolved Hide resolved
@mountainflaw
Copy link
Contributor Author

Total changelog with current state of this branch:

  • Removed all microcodes except F3DZEX2, F3DEX3, audio, and of course, boot.
    • All supporting code for removed microcodes has been removed as well.
  • Fixed Goddard framebuffer garbage being visible.
  • Reduced gSPLookAt to one command per frame.
  • Added specular lighting to Goddard screen, among other minor changes for F3DEX3.
  • Added F3DEX3 debug profiler.
  • Added instant input override.
  • Added F3DEX3 lighting engine (enabled by default with F3DEX3), removed mention of wiseguy's in the README.md as this runs faster and outdoes it in every category while remaining vanilla compatible.
  • Uses gSPMemSet on Z buffer for faster clear.

* Disables instant input.
* Mostly used for debugging purposes, or for future-proofing a release if concerned.
*/
// #define DISABLE_INSTANT_INPUT
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move this into game_init.c and reverse it so it is #define INSTANT_INPUT

{ (SCREEN_WIDTH * 2), (SCREEN_HEIGHT * 2), G_NEW_MAXZ / 2, 0 }
}
};
#else
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

was end cutscene viewport ever fixed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes

vp->vp.vtrans[2] = G_NEW_MAXZ / 2;
#else
vp->vp.vtrans[2] = 0x1FF;
#endif
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these ifdefs here are a bit ugly. if original maxz was 0x3FE then this could be handled above the function and be cleaner? but idk how it works

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah they can be combined i guess

Copy link
Collaborator

@arthurtilly arthurtilly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldve done this as one review but oh well

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cleanup Removal of useless or bloat code/features enhancement New feature or request monkaS monkaS
Projects
Status: In progress
Development

Successfully merging this pull request may close these issues.

5 participants