Jump to content
IGNORED

Screen Resolution of Jaguar Games


Jagosaurus

Recommended Posts

What screen horizontal screen resolution do Jag games run at? 480i in NTSC & 576i in PAL? Or is that max and some games were programmed to display different resolutions? I could see the 16 bit ports keeping their 224i resolution.

 

Someone recently mentioned Doom only runs at 200x160 versus 640x480 which surprised me. Is this correct?

 

This is listed on the specs page for the Jag on the VG Museum website:

Programmable screen resolution. Horizontal resolution is dependent on the amount of scanline buffer space given to the "Tom" graphics processor. Maximum vertical resolution varies according to the refresh rate (NTSC or PAL). Reportedly, a stock Jaguar (without additional memory) running NTSC can display up to 576 rows of pixels.

I think that last sentence is misleading considering the PAL equivalent of 480 is 576.

 

Where all Genesis & SNES games 224i or was that the max (and standard) & some displayed less?

 

If all this adds up, I'd be interested to see a list jag games showing what resolution they run at.

Edited by Jagosaurus
Link to comment
Share on other sites

Actually the 480i/p, 576i/p, 720p, 1080i/p, etc. is the vertical resolution. It can be confusing because Horizontal resolution is how many vertical columns there are side by side across the screen. Vertical r
Edited by Gunstar
  • Like 1
Link to comment
Share on other sites

Someone recently mentioned Doom only runs at 200x160 versus 640x480 which surprised me. Is this correct?

...

 

If all this adds up, I'd be interested to see a list jag games showing what resolution they run at.

 

 

I can't give you the official word on the technical details of the Protector series, as I simply don't know. But here's what I can deduce, for whatever that's worth:

The attached PNG is conversion of one of the original Protector backgrounds. It's 512 x 200, but of course is longer for the scrolling effect. All editions of Protector use this size.

 

NTSC 4:3 is 150 x 200

PAL 5:4 is 160 x 200

 

I don't know if there's any actual programming difference, of if some games just fill in the blank space with more graphics or even just leave an empty border.

post-39941-0-41724600-1432220949_thumb.png

Edited by PlaysWithWolves
Link to comment
Share on other sites

240p was a standard vertical resolution of almost all 8-bit,16-bit and 32-bit consoles, and wasn't increased to 480i/p until the Dreamcast (possibly N64?). One exception was the 3DO that displayed a 320x240 resolution picture in 640x480i CRT TV/monitor. The others all skipped every other scan line of a 480i TV.

 

Doom (on the Jag) runs in 160x200, not 200x160, and it's refering to the actual game window, subtracting 40 vertically for the panel at the bottom showing health and ammo,etc. Including that area the screen resolution is 160x240p.

 

 

Gunstar replied while I was typing and clearly has a firmer grasp on the technical details than I do. Thanks!

Link to comment
Share on other sites

Interesting... didn't realize the PAL sets where 5:4 versus 4:3. I never crunched the aspect ratio numbers. 1.33 vs 1.25.

 

Makes sense on Doom if you're referring to game play window.

 

Yeah Gunstar, I always get the terminology mixed up although I understand the tech... 480 lines >>>, 640 ^^^^:P the verbiage is opposite of how it registers for me.

 

4/3 = 1.3333

480 x 1.3333 = 640 is how I remember it :)

 

Is there any way to see, perhaps in an emulator, the true aspect ratio for each game?

Edited by Jagosaurus
Link to comment
Share on other sites

 

Actually the 480i/p, 576i/p, 720p, 1080i/p, etc. is the vertical resolution. It can be confusing because Horizontal resolution is many vertical columns there are side by side across the screen. Vertical resolution is how many horizontal lines or rows there are top to bottom of the screen. These (above) are some set standards for Vertical resolution. Horizontal resolution often varies regardless of the vertical standards, with overscan and bandwidth.
240p was a standard vertical resolution of almost all 8-bit,16-bit and 32-bit consoles, and wasn't increased to 480i/p until the Dreamcast (possibly N64?). One exception was the 3DO that displayed a 320x240 resolution picture in 640x480i CRT TV/monitor. The others all skipped every other scan line of a 480i TV.
Doom (on the Jag) runs in 160x200, not 200x160, and it's refering to the actual game window, subtracting 40 vertically for the panel at the bottom showing health and ammo,etc. Including that area the screen resolution is 160x240p.
I'm pretty sure other console ports also used this resolution since most were ported from the Jaguar version.
There are plenty of games on plenty of 32/64-bit era consoles that display in less than 320 horizontal pixels and almost all displayed in 240p vertically.
No 32-bit era console version of Doom is 640x480 for sure, and I'm not sure if the original PC version was even that resolution, 640x480 was the VGA screen resolution of most PCs of the same era, but there were plenty of PC games that actually ran in 320x240 actual pixel resolution.

Some how my original post got cut off, so here is the entire original post with slight editing.

Link to comment
Share on other sites

If we want to get really technical about resolutions, most consoles weren't even exactly 240p, for example, IIRC, the Jaguar's "standard" resolution is 320x224 for NTSC. And other consoles use a similar "letterboxing." Of course the Jaguar is actually capable, within it's hardware, for much higher than even 640x480, but 320x224 on the Jag, and similar on other consoles was used mainly due to memory constraints. A full 240p can still be achieved using over-scan in the display, and better than 320 horizontally as well with overscan.

 

Many Jaguar games actually have over-scanning. I noticed it while using a wide screen LCD monitor with my rgb-to-vga box on the Jag. Normally the Jaguar's picture is stretched horizontally due to the 4:3 ratio displayed on 16:9 ration monitor, but using my monitor's clock adjust, I can reduce the screen back to a 4:3 image with side bars on the monitor screen. I noticed that many Jaguar games still fill up the entire screen horizontally because of the over-scanning they use!

Edited by Gunstar
Link to comment
Share on other sites

Awesome info Gunstar! You're right, you can really get deep into this topic technically :)

 

I guess my main curiosity was to know as an example only (only using these titles hypothetically):

Pitfall & Zool 2 run at 224i on NTSC

while...

Rayman & AvP run at 480i on NTSC

so on & so forth. Just thought it'd be an interesting comparison.

Link to comment
Share on other sites

The Jaguar doesn't have any kind of frame buffer - the display is composed of lines of objects defined in a list. There is a maximum and minimum position for these vertically, however there is no 'set resolution'. Also, the horizontal resolution can be selected by video clock cycles, and the display can be optionally interlaced.

 

In short, there is no answer to this question, just a maximum and minimum in both x and y.

  • Like 3
Link to comment
Share on other sites

Supported horizontal resolutions are:

- 1400 pixels (NTSC) /1382 pixels (PAL) [*]

- 700 pixels (NTSC) / 691 pixels (PAL)

- 466 pixels (NTSC) / 460 pixels (PAL)

- 350 pixels (NTSC) / 345 pixels (PAL)

- 280 pixels (NTSC) / 276 pixels (PAL)

- 233 pixels (NTSC) / 230 pixels (PAL)

- 200 pixels (NTSC) / 197 pixels (PAL)

- 175 pixels (NTSC) / 172 pixels (PAL)

 

Supported vertical resolutions are:

- 240p (NTSC) / 288p (PAL)

- 480i (NTSC) / 576i (PAL) [*]

 

[*] means that, AFAIK, no commercial game uses it.

 

This doesn't mean games have to us the full width and height of each resolution; they can have borders on each side (and most do), so they can display fewer "useful" pixels.

  • Like 5
Link to comment
Share on other sites

I don't think there is any game on the Jaguar that uses 480i, even if it is possible (and I believe you, in fact isn't there a demo for the Jag in 480i?).

And few or no 480i games on any 32-bit console of the era with the exception of the 3DO, which as stated before, only displays a 240p image in 480i, the pixels are still 240p res.

 

And, of course, keep in mind that the 3DO's display tech is only important on old CRT 480i screens, modern LCD, plasma, LED, DLP, etc. don't have CRT scan-lines that can be interlaced or skipped so any console with 240p vertical resolution looks identical, including the 3DO.

 

If 480i resolution is used in a Jag game, on modern screens it would display as 480p. All 480i sources are displayed at 480p.

Edited by Gunstar
Link to comment
Share on other sites

In short, there is no answer to this question, just a maximum and minimum in both x and y.

 

The question was what resolution do Jag games run at, and for 99% of them, the answer "320x240" is close enough. There's no need to derp on about overscan and frequencies and resolutions the Jag could use but didn't outside of third-party demos.

  • Like 2
Link to comment
Share on other sites

most game use the 350 pixels (NTSC) / 345 pixels (PAL) mode.

 

Doom use the 175 pixels (NTSC) / 172 pixels (PAL) mode for the first 200 line then switch to 350 pixels (NTSC) / 345 pixels (PAL) mode for the last 40 lines.

This give a free 2x horizontal zoom for the first 200 lines.

  • Like 5
Link to comment
Share on other sites

the Object list is defined as this (dumped in runtime so some parametres are not the initial one like Y, H and D )

L00021DC0:    00000043F4008FDB                                   ; branch   507  < VC, $00021FA0                                                                                                                                                                                                                                   
L00021DC8:    00000043F40040CB                                   ; branch   25  > VC, $00021FA0                                                                                                                                                                                                                                    
L00021DD0:    00000043BE384CD3                                   ; branch   410  > VC, $00021DF0                                                                                                                                                                                                                                   
L00021DD8:    00000043BE388CD3                                   ; branch   410  < VC, $00021DF0                                                                                                                                                                                                                                   
L00021DE0:    0000000000000CD2                                   ; gpuobj   410, #0000000000000000                                                                                                                                                                                                                                 
L00021DE8:    00000043F4008FDB                                   ; branch   507  < VC, $00021FA0                                                                                                                                                                                                                                   
L00021DF0:    1EA28043C20C8180 0000000280A0C007                  ; bitmap   X:7, Y:48, H:50, IW:160pix, D:$001EA280, L:$00021E10, BPP:16, DW:160pix, IDX:0, FP:0, PITCH1                                                                                                                                                           
L00021E10:    1C801043C40A0CD0 0000000280A0B00E                  ; bitmap   X:14, Y:410, H:40, IW:320pix, D:$001C8010, L:$00021E20, BPP:8, DW:320pix, IDX:0, FP:0, PITCH1                                                                                                                                                          
L00021E20:    1CB21043F40A0CD0 0000800280A0B00E                  ; bitmap   X:14, Y:410, H:40, IW:320pix, D:$001CB210, L:$00021FA0, BPP:8, DW:320pix, IDX:0, FP:0, PITCH1 | TRANS                                                                                                                                                  
L00021FA0:    0000000000000004                                   ; stop     #$0000000000000000                                                         

The GPU object interrupt the GPU and it do this :

L00F03030:    load    (r1), r29                       ; A43D                     r1 = $F02100
L00F03032:    move    r0, r30                         ; 881E                     r0 = $F00028
L00F03034:    storew  r3, (r30)                       ; BBC3                     r3 = $0006C1
L00F03036:    subq    #2, r30                         ; 185E                     
L00F03038:    storew  r28, (r30)                      ; BBDC                     
L00F0303A:    bclr    #3, r29                         ; 3C7D                     
L00F0303C:    bset    #12, r29                        ; 399D                     
L00F0303E:    load    (r31), r28                      ; A7FC                     
L00F03040:    move    r2, r31                         ; 885F                     
L00F03042:    addq    #2, r28                         ; 085C                     
L00F03044:    jump    T, (r28)                        ; D380                     
L00F03046:    store   r29, (r1)                       ; BC3D                     

on GPU object interrupts, the GPU write the $6C1 value in the vmode register wich is : VIDEN | MODE_16CRY | CSYNC | BGEN | PWIDTH_332

 

on VBL interrupts, the 68k do :

L000041A6:    link      a6, #$0000                    ; 4E56 0000                NV..
L000041AA:    movem.l   d0-d5/a0-a5, -(a7)            ; 48E7 FCFC                H...
L000041AE:    jsr       L000040F0.l                   ; 4EB9 000040F0            N...@.        ; write OP list
L000041B4:    move.l    L00021FC4.l, d0               ; 2039 00021FC4             9....        ; $000EC1
L000041BA:    move.w    d0, L00F00028.l               ; 33C0 00F00028            3....(

and $00EC1 is : VIDEN | MODE_16CRY | CSYNC | BGEN | PWIDTH_166

 

That's why the first part of the screen seems low res when the bottom is sharpen. :)

Edited by SCPCD
  • Like 6
Link to comment
Share on other sites

in fact it's a very good idea since OP scaled bitmap is slower than standard bitmap object :

- scaled object write 1 pixel by cycle to the line buffer

- unscaled object write 2 pixels by cycles.

 

A 2x scaled imply 4x more time than an unscaled object to write the object to the line buffer and during all this time the main ram is locked by the OP.

 

Using the technic above, makes a 2x scaled without extra time and give many more times to the system.

:)

  • Like 7
Link to comment
Share on other sites

in fact it's a very good idea since OP scaled bitmap is slower than standard bitmap object :

- scaled object write 1 pixel by cycle to the line buffer

- unscaled object write 2 pixels by cycles.

 

A 2x scaled imply 4x more time than an unscaled object to write the object to the line buffer and during all this time the main ram is locked by the OP.

 

Using the technic above, makes a 2x scaled without extra time and give many more times to the system.

:)

 

I know that but I thought that since the write is into the line buffer and you are reading the same number of pixels you don't have a penalty in main bus usage.

Link to comment
Share on other sites

Interesting... I thought that my solution was simpler and better but they must have a reason to do it in this way.

 

How is it better to waste bandwidth and processing resources stretching an image when you can have the video chip "stretch" it directly by generating wider pixels?

  • Like 2
Link to comment
Share on other sites

1 The bandwidth with main memory it's the same (in theory), it takes more time to render into the line buffer but you don't have a big OP list. Maybe the main memory read cycles are closer and it's better.

 

2 With GPU interrupts you can have some problems with MMULT operations, but maybe they don't need it.

 

3 I thought that the code to change the screen resolution was more complex, but as SCPCD showed it's very simple.

Edited by swapd0
Link to comment
Share on other sites

 

The question was what resolution do Jag games run at, and for 99% of them, the answer "320x240" is close enough. There's no need to derp on about overscan and frequencies and resolutions the Jag could use but didn't outside of third-party demos.

Thanks :) exactly what I was hunting although the technical discussion has been interesting.

 

Looks like we had to wait a few more years before retail console software was 480i.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...