03-22-2014, 08:18 PM
And I'm willing to help when I have free time. But I have some questions first. Anyway:
I believe it is high time that we had message output rendered to the GS output screen in game. E.g. "Save state successfully saved to slot 1" in the actual graphical window, not the console. Console is nice, but I know many of us play full screen and this is something I think the emulator really needs.
Now, in my own admittedly far less complicated programs, I do a similar thing this way: I have a variable for screen output. If my program needs to write a message to the graphical display, it puts it in that variable. If that variable is not 0 length, it is rendered to the display. A counter ticks down while there is data in the variable, and once it hits 0, the variable is blanked. It might be easier to explain in pseudocode
Since we already have the console.writeLn command writing the commands to the console, there is really only three parts to implement this:
1. Determine which messages need to be OSD and locate them
2. make those write to the variable and set it's counter in addition to writing to the console
3. Write a function or code in GSdx to write that variable to the screen
1 and 2 I should be able to manage, even with my limited C++ skills
3 I can't do
So in summary, does everyone agree this is a feature we need, and is there anyone who can do #3?
Notes: I realize I oversimplified the variable itself, It most likely might work best as a 2d array, where the first index is the line number and the second the counter, that way we can have more than a single line. I explained it as I did for simplicity sake.
I believe it is high time that we had message output rendered to the GS output screen in game. E.g. "Save state successfully saved to slot 1" in the actual graphical window, not the console. Console is nice, but I know many of us play full screen and this is something I think the emulator really needs.
Now, in my own admittedly far less complicated programs, I do a similar thing this way: I have a variable for screen output. If my program needs to write a message to the graphical display, it puts it in that variable. If that variable is not 0 length, it is rendered to the display. A counter ticks down while there is data in the variable, and once it hits 0, the variable is blanked. It might be easier to explain in pseudocode
Code:
//this is a program
function SomeFunctionThatDoesStuff
//do stuff
//do stuff
//do stuff that needs message passed
notificationvar="This is a message for the screen"
notificationdelay = 300 //this is in frames
// do more stuff
// do more stuff
// do more stuff
end function
function renderingFunction
//draw pretty pixels
// make shapes
//render crap
//etc
if notificationvar != "" then
render notificationvar to the screen
notificationdelay--
if notificationdelay <= 0 then
notificationdelay = 0
notificationvar = ""
end if
end if
end function
Since we already have the console.writeLn command writing the commands to the console, there is really only three parts to implement this:
1. Determine which messages need to be OSD and locate them
2. make those write to the variable and set it's counter in addition to writing to the console
3. Write a function or code in GSdx to write that variable to the screen
1 and 2 I should be able to manage, even with my limited C++ skills
3 I can't do
So in summary, does everyone agree this is a feature we need, and is there anyone who can do #3?
Notes: I realize I oversimplified the variable itself, It most likely might work best as a 2d array, where the first index is the line number and the second the counter, that way we can have more than a single line. I explained it as I did for simplicity sake.
![[Image: XTe1j6J.png]](https://i.imgur.com/XTe1j6J.png)
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD