-
-
Notifications
You must be signed in to change notification settings - Fork 102
exception : made some major improvements #234
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
base: master
Are you sure you want to change the base?
Conversation
1 - It's now possible to see the last frame rendered by the software. 2 - The way the exception details are displayed was changed, it's more tight now (as per blackb0x's request). 3 - Changed control mapping (as per blackb0x's request as well). 4 - Fixed a bug with the GameCube controller not working if PAD_Init() wasn't called by the software (thanks to DacoTaco who pointed the potential issue).
|
I feel like you could set the framebuffer address when the framebuffer is set |
What do you mean? |
VIDEO_SetNextFramebuffer() could probably include the call to set the framebuffer address the exception handler uses |
|
Well i want the dev to decide whether or not they want to set it. |
Maybe keep the function you made, but have it so you can set it to |
|
@DacoTaco 😴😴 |
DacoTaco
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i get the idea, but the code needs a lot of changes and re-evaluations
| VIDEO_SetFramebuffer(exception_xfb); | ||
| __VIClearFramebuffer(exception_xfb, console_height * console_width * VI_DISPLAY_PIX_SZ, COLOR_BLACK); | ||
| __console_init(exception_xfb, 20, 20, console_height-40, console_width-40, 1280); | ||
| __console_init(exception_xfb, 16, 32, console_height-16, console_width-32, 1280); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why the change in console size? also, it should be twice the offset to both sides. the 20 was to offset overscan on some screens (meaning its 40 for both sides of the screen)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since the characters are 16 pixels high it makes more sense to use a multiple of that instead of 20.
| SYS_ResetSystem(SYS_HOTRESET,0,FALSE); | ||
| #else | ||
| __reload (); | ||
| SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this makes it not reload to HBC?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's for reset, not reload.
libogc/exception.c
Outdated
| } | ||
|
|
||
| static void __toggleframebuffer() { | ||
| static bool currfb = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does this work? why keep the variable in the function and not just have it as a global? this looks like a recipe for disaster incase the variable's scope turns into the function, and not outside of it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Of course, I tested it several times before creating the PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After reconsideration I think it would be better if we compare the XFB pointer with the exception_xfb instead.
1 - It's now possible to see the last frame rendered by the software.
2 - The way the exception details are displayed was changed, it's more tight now.
3 - Changed control mapping.
4 - Changed how the controls are shown to the user.
5 - Fixed a bug with the GameCube controller not working if PAD_Init() wasn't called by the software (thanks to DacoTaco who pointed the potential issue).