Previous Thread
Next Thread
Print Thread
Page 21 of 120 1 2 19 20 21 22 23 119 120
Re: The SNES WIP topic [Re: Kale] #52772 08/16/09 05:31 PM
Joined: Jun 2008
Posts: 205
B
byuu Offline
Senior Member
Offline
Senior Member
B
Joined: Jun 2008
Posts: 205
Quote:
Most wind up doubling everything up to that point, and from then on as well. No idea what byuu does, so he might have a better way than what the old emulators did.


What I do is render each line at whatever the current resolution is, and store its width into a buffer: unsigned lineWidth[480];
I also keep a flag: bool frameHasHires |= (thisLineWidth == 512);

In that way, my filters have the choice of either up-sampling each 256-width line to 512-width, or rendering each different section of the screen in different blocks.

The main problem is handling software filters like HQ2x. If you up-sample a 256-width screen to 512-width, you won't be able to properly HQ2x filter the screen. Games like Secret of Mana 2 will act screwy when your filtering drops every time a text box appears. The lineWidth buffer will allow you to work around that, but will require heroic efforts in writing said filters. For bsnes, only the NTSC filter supports it fully.

Quote:
(ie, as well as you'll get without a dot-based PPU)


If you're really ready to cry, I suspect that it's possible to change between lores and hires in the middle of a scanline. So any width between 256 and 512 should be theoretically possible.

I plan to forcefully always render at 512-width for my dot-based PPU. Indeed, the two modes are very similar on the SNES. It just changes how the main and sub screens blend together.

Re: The SNES WIP topic [Re: Kale] #52773 08/16/09 05:47 PM
Joined: Dec 2005
Posts: 330
A
AWJ Offline
Senior Member
Offline
Senior Member
A
Joined: Dec 2005
Posts: 330
Wouldn't it be simpler just to render 512 horizontal pixels all the time? It's not like MESS cares about supporting kiddie filters. How big a speed penalty for non-hires games would this entail?

Re: The SNES WIP topic [Re: AWJ] #52774 08/16/09 05:49 PM
Joined: Mar 2001
Posts: 16,575
R
R. Belmont Online Content
Very Senior Member
Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,575
That's pretty much what MESS already does for a lot of systems. On the Apple IIgs I always render 640+border and pixel-double 320 mode, for instance, and it's fine.

Re: The SNES WIP topic [Re: R. Belmont] #52775 08/16/09 05:52 PM
Joined: Jun 2008
Posts: 205
B
byuu Offline
Senior Member
Offline
Senior Member
B
Joined: Jun 2008
Posts: 205
The speed penalty depends upon how fast MESS already is, or will be. For bsnes, it wouldn't even be noticeable because everything else is so slow already :P

It's just that SNES users are quite picky about having their NTSC or HQ2x filters. It's easy to say you don't care, but you can't very well test every last game ever made yourself. You'll need to get some hardcore fans to help you with that.

Re: The SNES WIP topic [Re: byuu] #52777 08/16/09 06:57 PM
Joined: May 2009
Posts: 1,871
J
Just Desserts Offline
Very Senior Member
Offline
Very Senior Member
J
Joined: May 2009
Posts: 1,871
Originally Posted By byuu
It's just that SNES users are quite picky about having their NTSC or HQ2x filters. It's easy to say you don't care, but you can't very well test every last game ever made yourself. You'll need to get some hardcore fans to help you with that.


I guess it sucks to be us, then. smile

MESS and MAME ostensibly use an "If you build it, they will come" mentality - once a driver is considered relatively complete, eventually someone will wander by and try his or her favorite obscure game. And since that person will be trying MAME or MESS, that person is typically smart enough to track down the right forums and report the bug. It's slower, and more appealing to the lazy.

Re: The SNES WIP topic [Re: Kale] #52778 08/16/09 06:59 PM
Joined: Dec 2005
Posts: 330
A
AWJ Offline
Senior Member
Offline
Senior Member
A
Joined: Dec 2005
Posts: 330
The NTSC filter would apply just fine to a doubled 512-wide image, wouldn't it? It'd just be (considerably) slower.

Re: The SNES WIP topic [Re: AWJ] #52779 08/16/09 07:25 PM
Joined: Jan 2006
Posts: 3,687
etabeta78 Offline
Very Senior Member
Offline
Very Senior Member
Joined: Jan 2006
Posts: 3,687
filters (except Blargg's NTSC one) suck because they make the result different from what I was able to see on the real thing.

if I want super-smooth edges and blurs, I'd play a PC first person shooter, not an old SNES game with any HQnx filter wink

that said, it would be great to try to create a generic NTSC filter which could be overlayed to MESS systems supposed to be connected to a TV

Re: The SNES WIP topic [Re: etabeta78] #52780 08/16/09 08:41 PM
Joined: Aug 2009
Posts: 1,140
Kale Offline OP
Very Senior Member
OP Offline
Very Senior Member
Joined: Aug 2009
Posts: 1,140
I don't like the "double everything to 512" approach...unless proven otherwise, in the end Seiken Densetsu 3 is running with HRES=256 and the other test cases runs at HRES=512, so the CRTC is presumably doing some post-processing with the internal framebuffer and trigger the internal 256/512 switch caused by modes 5/6 at vblank time. It works for now for either MESS and for BSNES, but imho it's definitely something that requires tests on real HW if possible (for example by quickly switching between mode 1/5 on a single screen and see if there's or not a noticeable flicker on the resulting screen).

Re: The SNES WIP topic [Re: Kale] #52781 08/16/09 08:53 PM
Joined: Mar 2001
Posts: 16,575
R
R. Belmont Online Content
Very Senior Member
Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,575
Also there's a difference between having users help test and deciding to become a slower version of zsnes. You can have users without letting them dictate your design. (I'm still somewhat horrified that bsnes has add-on chips now given how much byuu used to argue against them).

Re: The SNES WIP topic [Re: Kale] #52782 08/16/09 08:55 PM
Joined: Jun 2008
Posts: 205
B
byuu Offline
Senior Member
Offline
Senior Member
B
Joined: Jun 2008
Posts: 205
Not sure what you mean. Hires can definitely be toggled mid-frame with no flickering. It just varies how long each color is fed to the display.

Same for pseudo-hires. It's quite possible to use two BG layers in mode 0 to make a 512x480 screen =)

Interlace on the other hand, while it can be toggled at any time and takes immediate effect on PPU addressing, obviously cannot take effect immediately on the TV. It caches the interlace setting somewhere and will apply it consistently to the entire screen. Not sure if it does it every single frame or every other frame, though. Too hard to tell.

Page 21 of 120 1 2 19 20 21 22 23 119 120

Who's Online Now
1 registered members (Fake Shemp), 46 guests, and 0 spiders.
Key: Admin, Global Mod, Mod
ShoutChat Box
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics8,811
Posts115,965
Members4,914
Most Online890
Jan 17th, 2020
Powered by UBB.threads™ PHP Forum Software 7.7.3