SMODE1 question
Posted: Wed May 20, 2009 3:16 am
Has onyone had any success figuring out these SMODE1, SYNCH1, SYNCH2, SYNCV GS registers? At least some partial information regarding what parts of sync timings do these bits correspond to.
Homebrew PS2, PSP & PS3 Development Discussions
https://forums.ps2dev.org/
Code: Select all
#define GS_S_SMODE1_REG MIPS_PHYS_TO_KSEG1(0x12000010)
#define GS_S_SYNCH1_REG MIPS_PHYS_TO_KSEG1(0x12000040)
#define GS_S_SYNCH2_REG MIPS_PHYS_TO_KSEG1(0x12000050)
#define GS_S_SYNCV_REG MIPS_PHYS_TO_KSEG1(0x12000060)
#define SMODE1(vhp, vcksel, slck2, nvck, clksel, pevs, pehs, pvs, phs, \
gcont, spml, pck2, xpck, sint, prst, ex, cmod, slck, t1248, lc, rc) \
(((u_int64_t)(vhp) << 36) | \
((u_int64_t)(vcksel) << 34) | \
((u_int64_t)(slck2) << 33) | \
((u_int64_t)(nvck) << 32) | \
((u_int64_t)(clksel) << 30) | \
((u_int64_t)(pevs) << 29) | \
((u_int64_t)(pehs) << 28) | \
((u_int64_t)(pvs) << 27) | \
((u_int64_t)(phs) << 26) | \
((u_int64_t)(gcont) << 25) | \
((u_int64_t)(spml) << 21) | \
((u_int64_t)(pck2) << 19) | \
((u_int64_t)(xpck) << 18) | \
((u_int64_t)(sint) << 17) | \
((u_int64_t)(prst) << 16) | \
((u_int64_t)(ex) << 15) | \
((u_int64_t)(cmod) << 13) | \
((u_int64_t)(slck) << 12) | \
((u_int64_t)(t1248) << 10) | \
((u_int64_t)(lc) << 3) | \
((u_int64_t)(rc) << 0))
#define SYNCH1(hs, hsvs, hseq, hbp, hfp) \
(((u_int64_t)(hs) << 43) | \
((u_int64_t)(hsvs) << 32) | \
((u_int64_t)(hseq) << 22) | \
((u_int64_t)(hbp) << 11) | \
((u_int64_t)(hfp) << 0))
#define SYNCH2(hb, hf) \
(((u_int64_t)(hb) << 11) | \
((u_int64_t)(hf) << 0))
#define SYNCV(vs, vdp, vbpe, vbp, vfpe, vfp) \
(((u_int64_t)(vs) << 53) | \
((u_int64_t)(vdp) << 42) | \
((u_int64_t)(vbpe) << 32) | \
((u_int64_t)(vbp) << 20) | \
((u_int64_t)(vfpe) << 10) | \
((u_int64_t)(vfp) << 0))
I'm curious if any TVs would accept this, as far as I know the only "supported" 24fps mode is over HDMI. If you interlaced it at 48hz (24 frames) maybe some PAL TVs would accept it as "off standard" since it's quite close. Of course multiscan PC monitors might accept it if you enable the Sync-on-Green sync multiplexer. (although 48hz vertical might be too slow, maybe 72Hz if you're targeting these?)uufyugi wrote:However I'm just curious about finding a way to produce a 24/48Hz signal from GS. And that would be a cleanear solution than resampling the audio.
Yes I'm hoping for that.jbit wrote:If you interlaced it at 48hz (24 frames) maybe some PAL TVs would accept it as "off standard" since it's quite close.
I'd say that some are somehow decipherable.jbit wrote:Most of the registers should be pretty obvious if you know about video timing.
Sure. I'll upload some test program in a while.Maximus32 wrote:I can test it on 2 tv's if you like.
I have no idea. They do look somehow familiar like fpe = front porch end and the like but it's of no much use without knowing where these timings are calculated from.Maximus32 wrote:I'm sure more people will be interested in those registers, so if you decipher them, could you share the "human readable terms".