|
  |
True Low-res Video Output On Xbox, force the Xbox to display correct old-school video modes |
|
|
| Tom M. |
Sep 29 2008, 07:38 AM
|
X-S Senior Member
 
Group: Members
Posts: 173
Joined: 10-July 02
Member No.: 1410

|
Hi,
I have been playing with this idea for a long time. As you know, Xbox is using a special video encoder chip that creates the signal for the TV. Unfotunately, if I understand, there is no choice in SDK to output anything like 320x224, 256x224 @ 60 Hz, simply nothing that would exactly match good NON-INTERLACED video modes. Obviously I am talking about 15 kHz non-interlaced CRT display, since this is the technology that video games were written for. Forget about fuzzy blurred plazmas, slow LCDs etc.
Just imagina how good the emulators would like providing them with correct, sharp, fullscreen video output of SNES, Mega Drive, Spectrum etc.
Looking at the documentation around the encoders, specifically the good old Conexant CX25871, IT IS apparently possible to PROGRAM the chip for specific video output, assuming the chip can handle such a resolution and refresh rate. Conexant even state that the chip supports any input starting from 320x200.
Apparently, Linux on Xbox is using that.
Also, there is a project called Advance MAME, now not being updated, that is using standard VGA cards to produce 15 kHz video modes on the VGA port. Obviously Xbox is not using VGA output but I believe the encoders, as shown in Linux, can be forced to specific display timings.
Another problem, Xbox SDK. This is what the emulators use, and there is no low res 15 kHz output in SDK. So, somebody would have to add it somehow.
And then, Xcalibur encoder in the latest series of the machine. Nobody knows the documentation.
Anyway, I DO believe, we CAN somehow, assuming there is a huge amount of work to be done, force the good old Xbox to become a true non-interlaced emulation beast.
This post has been edited by Tom M.: Sep 29 2008, 07:43 AM
|
|
|
|
| |
| Tom M. |
Oct 3 2008, 07:53 AM
|
X-S Senior Member
 
Group: Members
Posts: 173
Joined: 10-July 02
Member No.: 1410

|
QUOTE(_zlinky @ Sep 30 2008, 05:45 AM)  Wouldn't it be better to just render to a surface/texture of the same size, then stretch it to fill the screen?
Stretching is involved in todays games. You see it on DVDs as well. That is because the resolution of TV screens has increased several times, whereas the resolution of the entertainment video signal has not. Stretching looks awful compared to pixel perfect graphical presentation. It is like painting a precise portrait and then sweeping it with a wet cloth, turning off the fine details. Another problem is flickering on the Xbox standard signal. Remember that the lowest factory resolution Xbox can use is 640x480 INTERLACED. In fact Xbox cannot do NON-INTERLACED low resolution video modes at all, unlike the PS2, which has, due to BC with PSX, low res capabilities. Take any old school game, for instance, Miner 2049 on C64, and send it to the 480i screen. If you set the flicker filter to let's say "3" it is acceptable, but the flickering is still noticable, since the lines are "too thick" for the 480i modes. If you turn the flicker filter off completely, you cannot watch it since it flickers all over the screen. Obviously by turning the FF on, you introduce blurr to the graphics, it is far from crisp and clear, just plain ugly, washed out edges, like the portrait swept with the cloth, details lost. These games were programmed for the progressive 240 lines and similar resolutions. Another problem is correct aspcet ration, 4:3. Take a SNES emulator on Xbox. If you want the display to be pixel perfect, you can achieve this by calibrating the texture around the screen, but still 256x224 (the SNES video resolution) is not the same aspect ration as the 640x480 of the Xbox, meaning you will not end up with correct aspect ration of the SNES, unless you want to stretch it, which is bad again. At least you will introduce artefacts to the graphics presentation, some pixels will be displayed twie, when you scroll such an image, you will introduce shivering, pixels will start to alternate between their 1 and 2-pixel stretched variations. Again, you can only hide this by adding blurr, again, pretty bad, quality degrading solution. A good example is teletext built in in most modern CRTs. Teletext runs at low-res we are talking about. There you can see the huge difference in quality. Apparently the video encoders in Xbox are capable of sending out true 15 kHz low resolution TV video modes, by programming their registers. The only thing I am a bit aware of if the XGPU is capable of sending lets say a 320x200 screen for instance, as you may know, the newer the graphics HW is, the less it likes old school stuff. But you an still increase the pclock by doubling the horizontal resolution (on behalf of performace unfortunately).
|
|
|
|
| |
| openxdkman |
Oct 3 2008, 01:41 PM
|
X-S Genius
   
Group: Moderator
Posts: 822
Joined: 2-August 06
Member No.: 292548
Xbox Version: unk
360 version: unknown

|
You can try openxdk. We put only common resolution support, but you can dig in the big table of supported resolutions to pick up the resolution you want to try. Some are really silly resolutions, so I bet you will like them! first value has many flags (50/60hz, region, adapter type, etc...) second value is height and width third value is what is to write in one of the chipset register to trigger that resolution at hw level we converted a more friendly subpart of this table in openxdk source in home\OpenXDK\src\hal\video.c I don't think you can play freely and directly with chipset under ms xdk. CODE 0x00400105,0x01e00280,0x88070701, 0x00400105,0x01e002d0,0x88080801, 0x00400105,0x02d00500,0x880b0a02, 0x00400105,0x04380780,0x880e0c03, 0x00480104,0x01e00280,0x88070701, 0x00490104,0x01e00280,0x88070701, 0x00480104,0x01e002d0,0x88080801, 0x00490104,0x01e002d0,0x88080801, 0x02480104,0x01e00280,0x88110f01, 0x02490104,0x01e00280,0x88110f01, 0x00430104,0x02d00500,0x880b0a02, 0x00600104,0x01e00280,0x0801010d, 0x00610104,0x01e00280,0x1801010d, 0x00600104,0x01e002d0,0x0802020e, 0x00610104,0x01e002d0,0x1802020e, 0x01400104,0x00f00280,0x0801010d, 0x01410104,0x00f00280,0x1801010d, 0x01400104,0x00f002d0,0x0802020e, 0x01410104,0x00f002d0,0x1802020e, 0x02600104,0x01e00280,0x080f0d12, 0x02610104,0x01e00280,0x180f0d12, 0x03400104,0x00f00280,0x080f0d12, 0x03410104,0x00f00280,0x180f0d12, 0x00650104,0x04380780,0x880e0c03, 0x01450104,0x021c0780,0x880e0c03, 0x00600103,0x01e00280,0x20010101, 0x00610103,0x01e00280,0x30010101, 0x00600103,0x01e002d0,0x20020202, 0x00610103,0x01e002d0,0x30020202, 0x01400103,0x00f00280,0x20010101, 0x01410103,0x00f00280,0x30010101, 0x01400103,0x00f002d0,0x20020202, 0x01410103,0x00f002d0,0x30020202, 0x02600103,0x01e00280,0x200f0d0f, 0x02610103,0x01e00280,0x300f0d0f, 0x03400103,0x00f00280,0x200f0d0f, 0x03410103,0x00f00280,0x300f0d0f, 0x00600100,0x01e00280,0x04010101, 0x00610100,0x01e00280,0x14010101, 0x00600100,0x01e002d0,0x04020202, 0x00610100,0x01e002d0,0x14020202, 0x01400100,0x00f00280,0x04010101, 0x01410100,0x00f00280,0x14010101, 0x01400100,0x00f002d0,0x04020202, 0x01410100,0x00f002d0,0x14020202, 0x02600100,0x01e00280,0x040f0d0f, 0x02610100,0x01e00280,0x140f0d0f, 0x03400100,0x00f00280,0x040f0d0f, 0x03410100,0x00f00280,0x140f0d0f, 0x00400205,0x01e00280,0x88070701, 0x00400205,0x01e002d0,0x88080801, 0x00400205,0x02d00500,0x880b0a02, 0x00400205,0x04380780,0x880e0c03, 0x00480204,0x01e00280,0x88070701, 0x00490204,0x01e00280,0x88070701, 0x00480204,0x01e002d0,0x88080801, 0x00490204,0x01e002d0,0x88080801, 0x00430204,0x02d00500,0x880b0a02, 0x00600204,0x01e00280,0x0801010d, 0x00610204,0x01e00280,0x1801010d, 0x00600204,0x01e002d0,0x0802020e, 0x00610204,0x01e002d0,0x1802020e, 0x01400204,0x00f00280,0x0801010d, 0x01410204,0x00f00280,0x1801010d, 0x01400204,0x00f002d0,0x0802020e, 0x01410204,0x00f002d0,0x1802020e, 0x02600204,0x01e00280,0x080f0d12, 0x02610204,0x01e00280,0x180f0d12, 0x03400204,0x00f00280,0x080f0d12, 0x03410204,0x00f00280,0x180f0d12, 0x00650204,0x04380780,0x880e0c03, 0x01450204,0x021c0780,0x880e0c03, 0x00600203,0x01e00280,0x20010103, 0x00610203,0x01e00280,0x30010103, 0x00600203,0x01e002d0,0x20020204, 0x00610203,0x01e002d0,0x30020204, 0x01400203,0x00f00280,0x20010103, 0x01410203,0x00f00280,0x30010103, 0x01400203,0x00f002d0,0x20020204, 0x01410203,0x00f002d0,0x30020204, 0x02600203,0x01e00280,0x200f0d10, 0x02610203,0x01e00280,0x300f0d10, 0x03400203,0x00f00280,0x200f0d10, 0x03410203,0x00f00280,0x300f0d10, 0x00600200,0x01e00280,0x04010103, 0x00610200,0x01e00280,0x14010103, 0x00600200,0x01e002d0,0x04020204, 0x00610200,0x01e002d0,0x14020204, 0x01400200,0x00f00280,0x04010103, 0x01410200,0x00f00280,0x14010103, 0x01400200,0x00f002d0,0x04020204, 0x01410200,0x00f002d0,0x14020204, 0x02600200,0x01e00280,0x040f0d10, 0x02610200,0x01e00280,0x140f0d10, 0x03400200,0x00f00280,0x040f0d10, 0x03410200,0x00f00280,0x140f0d10, 0x00400305,0x01e00280,0x88070701, 0x00400305,0x01e002d0,0x88080801, 0x00400305,0x02d00500,0x880b0a02, 0x00400305,0x04380780,0x880e0c03, 0x00a00304,0x01e00280,0x48030314, 0x00a10304,0x01e00280,0x58030314, 0x00a00304,0x01e002d0,0x48040415, 0x00a10304,0x01e002d0,0x58040415, 0x00a00304,0x02400280,0x48050516, 0x00a10304,0x02400280,0x58050516, 0x00a00304,0x024002d0,0x48060617, 0x00a10304,0x024002d0,0x58060617, 0x01800304,0x01200280,0x48050516, 0x01810304,0x01200280,0x58050516, 0x01800304,0x012002d0,0x48060617, 0x01810304,0x012002d0,0x58060617, 0x02a00304,0x01e00280,0x48100e18, 0x02a10304,0x01e00280,0x58100e18, 0x02a00304,0x02400280,0x4812101d, 0x02a10304,0x02400280,0x5812101d, 0x03800304,0x01200280,0x4812101d, 0x03810304,0x01200280,0x5812101d, 0x00600304,0x01e00280,0x08010119, 0x00610304,0x01e00280,0x18010119, 0x00600304,0x01e002d0,0x0802021a, 0x00610304,0x01e002d0,0x1802021a, 0x01400304,0x00f00280,0x08010119, 0x01410304,0x00f00280,0x18010119, 0x01400304,0x00f002d0,0x0802021a, 0x01410304,0x00f002d0,0x1802021a, 0x02600304,0x01e00280,0x080f0d1b, 0x02610304,0x01e00280,0x180f0d1b, 0x03400304,0x00f00280,0x080f0d1b, 0x03410304,0x00f00280,0x180f0d1b, 0x00a00303,0x01e00280,0x60030307, 0x00a10303,0x01e00280,0x70030307, 0x00a00303,0x01e002d0,0x60040408, 0x00a10303,0x01e002d0,0x70040408, 0x00a00303,0x02400280,0x60050509, 0x00a10303,0x02400280,0x70050509, 0x00a00303,0x024002d0,0x6006060a, 0x00a10303,0x024002d0,0x7006060a, 0x01800303,0x01200280,0x60050509, 0x01810303,0x01200280,0x70050509, 0x01800303,0x012002d0,0x6006060a, 0x01810303,0x012002d0,0x7006060a, 0x02a00303,0x01e00280,0x60100e13, 0x02a10303,0x01e00280,0x70100e13, 0x02a00303,0x02400280,0x6012101c, 0x02a10303,0x02400280,0x7012101c, 0x03800303,0x01200280,0x6012101c, 0x03810303,0x01200280,0x7012101c, 0x00600303,0x01e00280,0x2001010b, 0x00610303,0x01e00280,0x3001010b, 0x00600303,0x01e002d0,0x2002020c, 0x00610303,0x01e002d0,0x3002020c, 0x01400303,0x00f00280,0x2001010b, 0x01410303,0x00f00280,0x3001010b, 0x01400303,0x00f002d0,0x2002020c, 0x01410303,0x00f002d0,0x3002020c, 0x02600303,0x01e00280,0x200f0d11, 0x02610303,0x01e00280,0x300f0d11, 0x03400303,0x00f00280,0x200f0d11, 0x03410303,0x00f00280,0x300f0d11, 0x00a00300,0x01e00280,0x44030307, 0x00a10300,0x01e00280,0x54030307, 0x00a00300,0x01e002d0,0x44040408, 0x00a10300,0x01e002d0,0x54040408, 0x00a00300,0x02400280,0x44050509, 0x00a10300,0x02400280,0x54050509, 0x00a00300,0x024002d0,0x4406060a, 0x00a10300,0x024002d0,0x5406060a, 0x01800300,0x01200280,0x44050509, 0x01810300,0x01200280,0x54050509, 0x01800300,0x012002d0,0x4406060a, 0x01810300,0x012002d0,0x5406060a, 0x02a00300,0x01e00280,0x44100e13, 0x02a10300,0x01e00280,0x54100e13, 0x02a00300,0x02400280,0x4412101c, 0x02a10300,0x02400280,0x5412101c, 0x03800300,0x01200280,0x4412101c, 0x03810300,0x01200280,0x5412101c, 0x00600300,0x01e00280,0x0401010b, 0x00610300,0x01e00280,0x1401010b, 0x00600300,0x01e002d0,0x0402020c, 0x00610300,0x01e002d0,0x1402020c, 0x01400300,0x00f00280,0x0401010b, 0x01410300,0x00f00280,0x1401010b, 0x01400300,0x00f002d0,0x0402020c, 0x01410300,0x00f002d0,0x1402020c, 0x02600300,0x01e00280,0x040f0d11, 0x02610300,0x01e00280,0x140f0d11, 0x03400300,0x00f00280,0x040f0d11, 0x03410300,0x00f00280,0x140f0d11,
|
|
|
|
| |
| xenepp |
Apr 27 2009, 10:48 AM
|
X-S Enthusiast
Group: Members
Posts: 16
Joined: 5-February 07
Member No.: 327882

|
I really think someone clever needs to take a good look at this, as amazing as these emulators are, it's a shame they can't look like the real consoles do, especially considering they are emulated on a console!
I tried Neogenesis on my old 4:3 CRT yesterday and the flickering gave me a headache which is a shame since I was looking forward to playing it as it was intended!
|
|
|
|
| |
| DarthMingus |
Mar 8 2010, 07:53 PM
|
X-S Senior Member
 
Group: Members
Posts: 257
Joined: 1-January 07
Member No.: 321514

|
Since it doesn't look like we'll be getting 240p output from the emulators in question anytime soon, I figured I would post this article: http://scanlines.hazard-city.de/The article explains that you can get an Extron Emotia scan converter to force the Xbox to output 240p. 1. You do need to either convert the Xbox's component signal to VGA or just get the Frosty VGA cables. 2. You then output the Xbox using VGA to the Emotia and select 480p output. 3. Flip a switch on the Emotia to "non-interlaced" and, boom, the flickering is gone and you now have scanlines, 240p. This works great and Emotias are generally cheap, ranging from $50-$60 for the basic model and $120 for the new, "Super" version. Each does the same thing though, so try to get the cheaper one if you can. Many thanks to Tobias!!!
|
|
|
|
| |
|
  |
|