Widescreen mode and kos ?

If you have any questions on programming, this is the place to ask them, whether you're a newbie or an experienced programmer. Discussion on programming in general is also welcome. We will help you with programming homework, but we will not do your work for you! Any porting requests must be made in Developmental Ideas.
User avatar
BlueCrab
The Crabby Overlord
The Crabby Overlord
Posts: 5666
https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
Joined: Mon May 27, 2002 11:31 am
Location: Sailing the Skies of Arcadia
Has thanked: 9 times
Been thanked: 69 times
Contact:

Re: Widescreen mode and kos ?

Post by BlueCrab »

Scanlines is the number of lines that are displayed on the screen, and clocks is the number of clock cycles per line (of the video encoder, I believe). Hence, with a display that is the same number of lines vertically, it would make sense that those numbers would not change. Those numbers control the number of vertical lines, and have nothing to do with horizontal.
patbier
DC Developer
DC Developer
Posts: 152
Joined: Fri Aug 29, 2003 1:25 am
Has thanked: 0
Been thanked: 0

Re: Widescreen mode and kos ?

Post by patbier »

I made tests yesterday and this is the results :

In VGA mode

First, I test the known resolution :
DM_320x240_VGA shows the exact 320x240 texture, and the monitor reports 640x480 60 Hz (31.4 Hz)
DM_640x480_VGA shows the exact 640x480 texture, and the monitor reports 640x480 60 Hz (31.4 Hz)

I played with settings and I see :
- a 768x480 texture, the monitor reports 720x576 50Hz (31.2Khz). I use the settings for the PAL 768x576. I try to have 720x480 60Hz but i didn't find a working setting.

- playing with the 640x480 settings and modifying the bitmapx and bitmapy settings, i achieved in seeing a 740x480 texture on my 16/10 monitor and a 680x480 on my 16/9 one. Both reports the 640x480 resolution but shows more. (or the dreamcast video card reduced the 740 to 640).

In NTSC mode

DM_320x240_NTSC_IL shows the exact 320x240 texture
DM_640x480_NTSC_IL shows 640x480 texture, but with a little part cut in top (y is from 10 to 480)
DM_768x480_NTSC_IL doesn't show 768x480 but like my tests in vga mode, we see horizontaly from 64 to 700.
Playing with settings, namely with borderx and bordery i can see horizontally from 0 to 650 but, this has no interest, because it gives the same as 640x480.

In PAL mode

DM_640x480_PAL_IL shows the exact 640x480 texture
DM_256x256_PAL_IL show the exact 256x256 texture but we can only see the half of the screen (like we have a 256*512 and we only have 256*256)
DM_768x576_PAL_IL doesn't work. I can only see garbage picture on top of the screen.
DM_768x480_PAL_IL gives the same as in VGA and NTSC : namely horizontaly from 64 to 700.

Conclusion
I'd like to find a software which can help to calculate scanline / clocks because these settings set up the resolution : use 524/857 and you'll have 640x480 60 Hz, use 624/863 and you'll have 720x576 50 Hz as my tests report in VGA mode. I tried to play with this settings and my 16/10 monitor shows something but says "unknows resolution" but it works. But 16/9 tv doesn't like and says 'not supported resolution'.

The bitmapx and bitmapy set at which point the display starts from the framebuffer.
The borderx and bordery hide some parts of the screen. That's why I can display more using the 640x480. But if you give a bad setting, the screen shows very bad things (waves and bad colors).

In vga mode, i tried to modify scanint1 and scanint2 to see the effect, but they don't change anything.

I'm sorry i didn't find great things but I'd like to sum up here. I hope someone can help with the scanlines / clocks settings. A 720x480 in 60Hz would be perfect.
ImageAlice Dreams Tournament Dreamcast fans : http://www.facebook.com/alicedreamst
In August 2015, we had to change "Dynamite Dreams" name to "Alice Dreams Tournament"
User avatar
BlueCrab
The Crabby Overlord
The Crabby Overlord
Posts: 5666
Joined: Mon May 27, 2002 11:31 am
Location: Sailing the Skies of Arcadia
Has thanked: 9 times
Been thanked: 69 times
Contact:

Re: Widescreen mode and kos ?

Post by BlueCrab »

patbier wrote:DM_320x240_VGA shows the exact 320x240 texture, and the monitor reports 640x480 60 Hz (31.4 Hz)
This makes sense, since internally each line and each horizontal pixel gets doubled in this mode (the flags VID_PIXELDOUBLE | VID_LINEDOUBLE are set).
The borderx and bordery hide some parts of the screen. That's why I can display more using the 640x480. But if you give a bad setting, the screen shows very bad things (waves and bad colors).
Those two probably also include the horizontal blanking and synchronization areas, which would explain the wavyness/color oddities when you mess with them.
In vga mode, i tried to modify scanint1 and scanint2 to see the effect, but they don't change anything.
These just change where interrupts happen on the scanline (something like the old hblank interrupts you could get on older consoles/computers to do neat effects where you'd change things based on the line you were on).
patbier
DC Developer
DC Developer
Posts: 152
Joined: Fri Aug 29, 2003 1:25 am
Has thanked: 0
Been thanked: 0

Re: Widescreen mode and kos ?

Post by patbier »

As I proposed to Ayla and DarkstackDev, here is the code I use to test the custom resolution settings :

EDIT : ONLY TO TEST ON VGA

Code: Select all

/*
   File : resolution.c
   Let's test the resolution !
*/

#include <stdio.h>
#include <stdlib.h>

#include <dc/pvr.h>
#include <dc/maple.h>
#include <dc/maple/controller.h>
#include <png/png.h>
#include <dc/video.h>

static pvr_ptr_t txr;

int loadImage(int *l, char *fichier,int taille,int transparence,int flou) {
  int tr;
  int im;
  if (transparence) tr=PNG_FULL_ALPHA; else tr=PNG_NO_ALPHA;
  *l= (int)((int *) (pvr_mem_malloc(taille * taille * 2)));
  im=png_to_texture(fichier,(int *) *l ,tr);
  return 1;
}

void Draw(
  pvr_ptr_t texture,
  int x1,
  int y1,
  int x2,
  int y2,
  int a,
  int r,
  int g,
  int b,
  int transparence,
  int taille,
  double z)
{
  pvr_poly_cxt_t cxt;
  pvr_poly_hdr_t hdr;
  pvr_vertex_t vert;

  int tr;
  int couleur;
  double m1=0,m2=1,min=0,max=1;

  if (transparence) {tr=PVR_LIST_TR_POLY; couleur=PVR_TXRFMT_ARGB4444;} else {tr=PVR_LIST_OP_POLY; couleur=PVR_TXRFMT_RGB565;}

  pvr_poly_cxt_txr(&cxt, tr, couleur, taille,taille, texture,0);
  cxt.txr.uv_clamp = PVR_UVCLAMP_NONE;
  cxt.gen.culling = PVR_CULLING_NONE;
  pvr_poly_compile(&hdr, &cxt);
  pvr_prim(&hdr, sizeof(hdr));

  vert.argb = PVR_PACK_COLOR (((double)a / 255),((double)r / 255),((double)g / 255),((double)b / 255));
  vert.oargb = 0;
  vert.flags = PVR_CMD_VERTEX;

  vert.x = x1;
  vert.y = y1;
  vert.z = z;
  vert.u = m1;
  vert.v = min;
  pvr_prim(&vert, sizeof(vert));

  vert.x = x2;
  vert.y = y1;
  vert.z = z;
  vert.u = m2;
  vert.v = min;
  pvr_prim(&vert, sizeof(vert));

  vert.x = x1;
  vert.y = y2;
  vert.z = z;
  vert.u = m1;
  vert.v = max;
  pvr_prim(&vert, sizeof(vert));

  vert.x = x2;
  vert.y = y2;
  vert.z = z;
  vert.u = m2;
  vert.v = max;
  vert.flags = PVR_CMD_VERTEX_EOL;
  pvr_prim(&vert, sizeof(vert));
}

int check_start() {
    maple_device_t *cont;
    cont_state_t *state;

    cont = maple_enum_type(0, MAPLE_FUNC_CONTROLLER);

    if (cont) {
        state = (cont_state_t *)maple_dev_status(cont);
        if (!state)
            return 0;

        if(state->buttons & CONT_START)
            return 1;
    }

    return 0;
}

void do_frame() {
    pvr_wait_ready();
    pvr_scene_begin();
    pvr_list_begin(PVR_LIST_OP_POLY);
    Draw(txr,0,0,1024,1024,255,255,255,255,0,1024,0.1f);
    pvr_list_finish();
    pvr_scene_finish();
}

static pvr_init_params_t pvr_params = {
    { PVR_BINSIZE_16, PVR_BINSIZE_0, PVR_BINSIZE_16, PVR_BINSIZE_0,
      PVR_BINSIZE_0 },
	1024* 1024
};

extern uint8 romdisk[];
KOS_INIT_ROMDISK(romdisk);

	//TEST 768x480 VGA 60Hz
	// DM_768x480_VGA
	// my monitor displays 720x576 50Hz
	// I can see 720x480;
	vid_mode_t vid_768 =
	{
		DM_768x480,
		736, 480,
		0,
		CT_VGA,
		0,
		624, 863,
		96, 18,
		0x18, 0x104,//24,260
		0x36, 0x34b,//54,843
		0x2c, 0x26c,//44,620
		0, 1,
		{ 0, 0, 0, 0 }
	};

int main(int argc, char *argv[]) {
    vid_mode_t vidMode;
    printf("---Testing resolution---\n");
    printf("Press Start to exit.\n");
    /* if you want to test a custom one */
    memset( &vidMode, 0, sizeof(vid_mode_t));
    memcpy( &vidMode, &vid_768, sizeof(vidMode));
    vidMode.pm = PM_RGB565;
    vidMode.cable_type = vid_check_cable();
    vid_set_mode_ex( &vidMode);
    pvr_init(&pvr_params);
    vid_set_mode_ex( &vidMode);
    

    /* if you want to test a KOS one */
    /*vid_set_mode(DM_768x480_PAL_IL,PM_RGB565);
    pvr_init(&pvr_params);
    vid_set_mode(DM_768x480_PAL_IL,PM_RGB565);*/

    loadImage((int *)((int)&(txr)),"/rd/resol.png",1024,0,0);

    /* Go as long as the user hasn't pressed start on controller 1. */
    while(!check_start())   {
        do_frame();
    }

    return 0;
}

As you can see I need to set up the resolution before pvr_init and after.

In case you need it, here is the makefile :

Code: Select all

#
# Basic KallistiOS skeleton / test program
# (c)2001 Dan Potter
#

# Put the filename of the output binary here
TARGET = resolution.elf

# List all of your C files here, but change the extension to ".o"
OBJS = resolution.o romdisk.o

all: rm-elf $(TARGET)

include $(KOS_BASE)/Makefile.rules

clean:
	-rm -f $(TARGET) $(OBJS) romdisk.*

rm-elf:
	-rm -f $(TARGET)

$(TARGET): $(OBJS)
	$(KOS_CC) $(KOS_CFLAGS) $(KOS_LDFLAGS) -o $(TARGET) $(KOS_START) \
		$(OBJS) $(OBJEXTRA) -lpng -lz -lm -lkosutils $(KOS_LIBS)

romdisk.img: romdisk/resol.png
	$(KOS_GENROMFS) -f romdisk.img -d romdisk -v

romdisk.o: romdisk.img
	$(KOS_BASE)/utils/bin2o/bin2o romdisk.img romdisk romdisk.o

run: $(TARGET)
	$(KOS_LOADER) $(TARGET) -n

dist:
	rm -f $(OBJS) romdisk.*
	$(KOS_STRIP) $(TARGET)

and you need to have the resol.png in a directory "romdisk"

Please post your tests !
Attachments
resol.png
resol.png (18.94 KiB) Viewed 3276 times
Last edited by patbier on Thu Jul 29, 2010 1:09 am, edited 1 time in total.
ImageAlice Dreams Tournament Dreamcast fans : http://www.facebook.com/alicedreamst
In August 2015, we had to change "Dynamite Dreams" name to "Alice Dreams Tournament"
User avatar
BB Hood
DC Developer
DC Developer
Posts: 189
Joined: Fri Mar 30, 2007 12:09 am
Has thanked: 41 times
Been thanked: 10 times

Re: Widescreen mode and kos ?

Post by BB Hood »

Code: Select all

--
KallistiOS ##version##: Sun Jul 18 03:15:42 PDT 2010
  THE HOODSTA@home-9jedm11dwa:/usr/local/dc/kos/kos
thd: pre-emption enabled, HZ=100
maple: active drivers:
    Dreameye (Camera): Camera
    Sound Input Peripheral: Microphone
    PuruPuru (Vibration) Pack: JumpPack
    VMU Driver: Clock, LCD, MemoryCard
    Mouse Driver: Mouse
    Keyboard Driver: Keyboard
    Controller Driver: Controller
  DMA Buffer at ac0a0680
vid_set_mode: 640x480IL NTSC
dc-load console support enabled
maple: attached devices:
  A0: Dreamcast Controller          (01000000: Controller)
  A1: Visual Memory                 (0e000000: Clock, LCD, MemoryCard)
---Testing resolution---
Press Start to exit.
vid_set_mode: 736x480 NTSC
pvr: enabling vertical scaling for non-VGA
vid_set_mode: 736x480 NTSC
png_to_texture: can't open /rd/resol.png
patbier
DC Developer
DC Developer
Posts: 152
Joined: Fri Aug 29, 2003 1:25 am
Has thanked: 0
Been thanked: 0

Re: Widescreen mode and kos ?

Post by patbier »

Have you create a directory "romdisk" and put the resol.png in ?
Do you use the makefile I posted ?

When you launch "make", does it create a "romdisk.img" ?
ImageAlice Dreams Tournament Dreamcast fans : http://www.facebook.com/alicedreamst
In August 2015, we had to change "Dynamite Dreams" name to "Alice Dreams Tournament"
Chilly Willy
DC Developer
DC Developer
Posts: 414
Joined: Thu Aug 20, 2009 11:00 am
Has thanked: 0
Been thanked: 2 times

Re: Widescreen mode and kos ?

Post by Chilly Willy »

I'd love an 800x600 VGA mode as that's the highest my TIMM hooked to the DC handles.
User avatar
BB Hood
DC Developer
DC Developer
Posts: 189
Joined: Fri Mar 30, 2007 12:09 am
Has thanked: 41 times
Been thanked: 10 times

Re: Widescreen mode and kos ?

Post by BB Hood »

patbier wrote:Have you create a directory "romdisk" and put the resol.png in ?
Do you use the makefile I posted ?

When you launch "make", does it create a "romdisk.img" ?
Yes, Yes, Yes

EDIT: Added #include <kos.h> to your headers and the makefile I used:

Code: Select all

TARGET = dcp.elf
OBJS = resolution.o 

all: rm-elf $(TARGET)

include $(KOS_BASE)/Makefile.rules

clean:
	-rm -f $(TARGET) $(OBJS) romdisk.*
rm-elf:
	-rm -f $(TARGET) romdisk.*

$(TARGET): $(OBJS) romdisk.o
	kos-c++ -o $(TARGET) $(OBJS)romdisk.o -lpng -lz -lkosutils -lm

romdisk.img:
	$(KOS_GENROMFS) -f romdisk.img -d romdisk -v

romdisk.o: romdisk.img
	$(KOS_BASE)/utils/bin2o/bin2o romdisk.img romdisk romdisk.o

run: $(TARGET)
	$(KOS_LOADER) $(TARGET)

dist:
	rm -f $(OBJS) romdisk.o romdisk.img
	$(KOS_STRIP) $(TARGET)

Tested it on my TV. Results:

Code: Select all

--
KallistiOS ##version##: Sun Jul 18 03:15:42 PDT 2010
  THE HOODSTA@home-9jedm11dwa:/usr/local/dc/kos/kos
thd: pre-emption enabled, HZ=100
maple: active drivers:
    Dreameye (Camera): Camera
    Sound Input Peripheral: Microphone
    PuruPuru (Vibration) Pack: JumpPack
    VMU Driver: Clock, LCD, MemoryCard
    Mouse Driver: Mouse
    Keyboard Driver: Keyboard
    Controller Driver: Controller
  DMA Buffer at ac0a1280
vid_set_mode: 640x480IL NTSC
fs_romdisk: mounting image at 0x8c05b884 at /rd
dc-load console support enabled
maple: attached devices:
  A0: Dreamcast Controller          (01000000: Controller)
  A1: Visual Memory                 (0e000000: Clock, LCD, MemoryCard)
---Testing resolution---
Press Start to exit.
vid_set_mode: 736x480 NTSC
pvr: enabling vertical scaling for non-VGA
vid_set_mode: 736x480 NTSC
but... the TV screen flickers. The width goes to about 700 and the height goes a little bit past 240.

However, for my computer screen (VGA). It displays 736x480.
User avatar
BlueCrab
The Crabby Overlord
The Crabby Overlord
Posts: 5666
Joined: Mon May 27, 2002 11:31 am
Location: Sailing the Skies of Arcadia
Has thanked: 9 times
Been thanked: 69 times
Contact:

Re: Widescreen mode and kos ?

Post by BlueCrab »

BB Hood wrote:but... the TV screen flickers. The width goes to about 700 and the height goes a little bit past 240.

However, for my computer screen (VGA). It displays 736x480.
That's pretty easy to explain. Your TV won't do more than ~240 lines due to the fact that the video mode you're setting doesn't have interlacing enabled. Enable interlacing, and you'll probably have 480.
User avatar
BB Hood
DC Developer
DC Developer
Posts: 189
Joined: Fri Mar 30, 2007 12:09 am
Has thanked: 41 times
Been thanked: 10 times

Re: Widescreen mode and kos ?

Post by BB Hood »

^ You're right but it still flickers. Is the main goal only to get this to work on computer screens or regular ntsc tv's as well?
patbier
DC Developer
DC Developer
Posts: 152
Joined: Fri Aug 29, 2003 1:25 am
Has thanked: 0
Been thanked: 0

Re: Widescreen mode and kos ?

Post by patbier »

Ok thanks for your tests ! It shows that my monitor and yours don't understand the resolution the same way... I'm sorry I should have told that it was for vga tests only, as my goal was to find a 720 * 480 resolution in vga, and these settings gave 720 x 576 50 Hz on my monitor.

Can you tell me which monitor / tv do you use ? (lcd, crt, plasma, led ?) and the model ?
Which vga box do you use ?

Thanks.
ImageAlice Dreams Tournament Dreamcast fans : http://www.facebook.com/alicedreamst
In August 2015, we had to change "Dynamite Dreams" name to "Alice Dreams Tournament"
User avatar
Christuserloeser
Moderator
Moderator
Posts: 5948
Joined: Thu Aug 28, 2003 12:16 am
Location: DCEvolution.net
Has thanked: 10 times
Been thanked: 0
Contact:

Re: Widescreen mode and kos ?

Post by Christuserloeser »

That is a problem with most HDTVs and monitors: They won't support anything other than the VGA standard's 640x480 at 60Hz. If you go above that (without meeting some higher standard like 800x600 at 60Hz) it won't work on the vaaaast majority of TVs and monitors out there.

The same goes for VGA at 50Hz. My CRT monitor supports 640x480 at 50Hz but no other HDTV, EDTV, or monitor I've had access to during the recent years does. (I tested it with Beats of Rage which got a 50Hz version)

The model of the VGA box isn't really important as they all work the same way anyway. It's the Dreamcast that does output the VGA, not the box.
Insane homebrew collector.
User avatar
BB Hood
DC Developer
DC Developer
Posts: 189
Joined: Fri Mar 30, 2007 12:09 am
Has thanked: 41 times
Been thanked: 10 times

Re: Widescreen mode and kos ?

Post by BB Hood »

Monitor: Samsung SyncMaster 712N 17 inch LCD
TV: Symphonic ST419E TV 27 inch (Not too sure about this one)
Chilly Willy
DC Developer
DC Developer
Posts: 414
Joined: Thu Aug 20, 2009 11:00 am
Has thanked: 0
Been thanked: 2 times

Re: Widescreen mode and kos ?

Post by Chilly Willy »

Christuserloeser wrote:That is a problem with most HDTVs and monitors: They won't support anything other than the VGA standard's 640x480 at 60Hz. If you go above that (without meeting some higher standard like 800x600 at 60Hz) it won't work on the vaaaast majority of TVs and monitors out there.
That depends on the TV. My $350 HDTV supports all VESA modes up to 1920x1200p. It's actually pretty rare (from what I've seen) that an HDTV wouldn't support the majority of VESA modes. Even my 15" SDTV supports most VESA modes (scaled to fit the small screen). For an LCD TV, it's merely a matter of scaling the input to the LCD resolution. Since LCDs are rarely the resolution of the the input, scaling is a natural part of the system... so it comes down to how flexible the scaler is. My HDTV is 1280x736, so it scales EVERYTHING but the computer, which I have set to its natural resolution.
patbier
DC Developer
DC Developer
Posts: 152
Joined: Fri Aug 29, 2003 1:25 am
Has thanked: 0
Been thanked: 0

Re: Widescreen mode and kos ?

Post by patbier »

Thanks for all your answers. Sadly it seems that it will be very very difficult to have a native widescreen resolution.
So, the only solution would be to stay in 640*480 and render the scene so that when the tv will stretch it, it will be fine.
Quzar wrote:The other way to do it that I've found (in 2D) is to have a separate set of textures for widescreen and have them be 'thinner'. By doing this you avoid some of the distortion of the original squashing before the TV expands it. The only issue to deal with is that many TVs that do a widescreen stretch do not do it evenly across the whole image (so the very edge pixels may still be 1:1 then the ones in the center of the screen may be 2:1, very annoying).
Can you tell me more Quzar ? Thanks.
ImageAlice Dreams Tournament Dreamcast fans : http://www.facebook.com/alicedreamst
In August 2015, we had to change "Dynamite Dreams" name to "Alice Dreams Tournament"
User avatar
Quzar
Dream Coder
Dream Coder
Posts: 7499
Joined: Wed Jul 31, 2002 12:14 am
Location: Miami, FL
Has thanked: 4 times
Been thanked: 10 times
Contact:

Re: Widescreen mode and kos ?

Post by Quzar »

patbier wrote:Thanks for all your answers. Sadly it seems that it will be very very difficult to have a native widescreen resolution.
So, the only solution would be to stay in 640*480 and render the scene so that when the tv will stretch it, it will be fine.
Quzar wrote:The other way to do it that I've found (in 2D) is to have a separate set of textures for widescreen and have them be 'thinner'. By doing this you avoid some of the distortion of the original squashing before the TV expands it. The only issue to deal with is that many TVs that do a widescreen stretch do not do it evenly across the whole image (so the very edge pixels may still be 1:1 then the ones in the center of the screen may be 2:1, very annoying).
Can you tell me more Quzar ? Thanks.
Previously what you were trying to do was expand the resolution, so that you could fit more content onto the screen and the tv would stretch it out properly. In my alternative method (which afaik is what the commercial widescreen games did) you instead shrink the content to fit more.

I don't have the proper ratios calculated, but for instance, if you were to make every sprite narrower by X% you could fit more on the screen width. When the widescreen TV stretches from 4:3 to 16:9 then the result is that the sprites end up being the aspect ratio you desire, but you were able to fit more on the screen.

This is the same (general) way that anamorphic video works. It is stored fullscreen in an incorrect aspect ratio, then stretched by the projector lens or tv/dvd player.
"When you post fewer lines of text than your signature, consider not posting at all." - A Wise Man
patbier
DC Developer
DC Developer
Posts: 152
Joined: Fri Aug 29, 2003 1:25 am
Has thanked: 0
Been thanked: 0

Re: Widescreen mode and kos ?

Post by patbier »

Thanks for the answer.
ImageAlice Dreams Tournament Dreamcast fans : http://www.facebook.com/alicedreamst
In August 2015, we had to change "Dynamite Dreams" name to "Alice Dreams Tournament"
User avatar
Christuserloeser
Moderator
Moderator
Posts: 5948
Joined: Thu Aug 28, 2003 12:16 am
Location: DCEvolution.net
Has thanked: 10 times
Been thanked: 0
Contact:

Re: Widescreen mode and kos ?

Post by Christuserloeser »

Does anyone know how Ikaruga does it ?

I know it's not widescreen but it seems to render the game in 480x640 but displays it vertically in a 640x480 window.

Couldn't this method be used to render a widescreen game in say: 768x480 and then display it squeezed in a 640x480 window ?
Insane homebrew collector.
BlackAura
DC Developer
DC Developer
Posts: 9951
Joined: Sun Dec 30, 2001 9:02 am
Has thanked: 0
Been thanked: 1 time

Re: Widescreen mode and kos ?

Post by BlackAura »

Quzar wrote:I don't have the proper ratios calculated, but for instance, if you were to make every sprite narrower by X% you could fit more on the screen width. When the widescreen TV stretches from 4:3 to 16:9 then the result is that the sprites end up being the aspect ratio you desire, but you were able to fit more on the screen.
Doing some rough math, 75% should work.
Christuserloeser wrote:I know it's not widescreen but it seems to render the game in 480x640 but displays it vertically in a 640x480 window.

Couldn't this method be used to render a widescreen game in say: 768x480 and then display it squeezed in a 640x480 window ?
Ikagura is done in 3D, so they probably just manipulate the projection / view matrix to squash the rendered image, and then use clipping to clip it into that window.
User avatar
Bouz
DCEmu Junior
DCEmu Junior
Posts: 46
Joined: Mon May 10, 2010 3:42 pm
Location: St. Bauzille de Putois (France)
Has thanked: 0
Been thanked: 0

Re: Widescreen mode and kos ?

Post by Bouz »

Rayman 2 also displays in 16/9 mode. But it is a 3D game, too, so probably using the projection matrix thing.
Post Reply