Help with sprites
Posted: Tue Jun 03, 2014 1:31 pm
Hi,
I'm working on a project to add accessibility features to Chrono Trigger.
I'm primarily using this documentation:
http://emu-docs.org/Super%20NES/General ... ml#Reg2107
Essentially I have a hook in the Snes9X code each render loop that checks a non blocking TCP socket to see if my secondary app would like some more information.
If so, it sends VRAM and CGData along with variables pulled from SPPU.
Then my secondary app uses the information to make the game more accessible for blind and visually impaired players.
For example, I am currently able to detect normal dialog windows in Chrono Trigger and parse the text that is custom drawn in BG 3 on a tile character number range of 256 through 511.
Then I play the dialog through text to speech.
I am also able to detect letters, numbers, and icons that are drawn 1 per tile.
This then allows me to read the stats in the party menu, etc.
I'm now looking into sprites.
I see this on SPPU:
struct SOBJ OBJ[128];
So I can get the positions and other information about every sprite.
My question is: How do I know which of the 128 sprites are actually being drawn to the screen right now?
Also, am I referencing the best documentation, or is there a better link someone can point me to?
I really appreciate any help anyone can offer.
Thanks,
Ian Reed
I'm working on a project to add accessibility features to Chrono Trigger.
I'm primarily using this documentation:
http://emu-docs.org/Super%20NES/General ... ml#Reg2107
Essentially I have a hook in the Snes9X code each render loop that checks a non blocking TCP socket to see if my secondary app would like some more information.
If so, it sends VRAM and CGData along with variables pulled from SPPU.
Then my secondary app uses the information to make the game more accessible for blind and visually impaired players.
For example, I am currently able to detect normal dialog windows in Chrono Trigger and parse the text that is custom drawn in BG 3 on a tile character number range of 256 through 511.
Then I play the dialog through text to speech.
I am also able to detect letters, numbers, and icons that are drawn 1 per tile.
This then allows me to read the stats in the party menu, etc.
I'm now looking into sprites.
I see this on SPPU:
struct SOBJ OBJ[128];
So I can get the positions and other information about every sprite.
My question is: How do I know which of the 128 sprites are actually being drawn to the screen right now?
Also, am I referencing the best documentation, or is there a better link someone can point me to?
I really appreciate any help anyone can offer.
Thanks,
Ian Reed