byuu's message board

For discussion of projects related to www.byuu.org/


Previous  1 ... 4, 5, 6, 7, 8, 9, 10 ... 12  Next
Desmume X432R with option to increase internal resolution 
Author Message
Screw y'all
User avatar

Joined: Tue 28 Dec 2010, 08:27:37

Posts: 1147
Post Re: Desmume X432R with option to increase internal resolution
I was playing Mario 64 today with some "enhancements", including rendering at 1080p with AA and AF.

Image

If that isn't obvious proof that enhancements affect accuracy, I don't know what is.

_________________
CaptainJistuce wrote:
Well, the world used to run at 30 FPS until YouTube got 60 FPS support.
It's only recently that we've been able to see 60 FPS at all, and we should thank the Google for it.

Sun 04 May 2014, 18:06:49
User avatar

Joined: Thu 22 Mar 2012, 04:37:56

Posts: 502
Post Re: Desmume X432R with option to increase internal resolution
Actually, it looks like your plugin or drivers are at least having serious trouble with alpha transparency sorting.

Sun 04 May 2014, 18:23:05
User avatar

Joined: Wed 26 May 2010, 19:48:00

Posts: 708
Post Re: Desmume X432R with option to increase internal resolution
The question is, what does accuracy even mean in the context of HLE?

Sun 04 May 2014, 18:30:46
User avatar

Joined: Fri 25 Nov 2011, 21:23:17

Posts: 175
Location: San Diego, California, USA
Post Re: Desmume X432R with option to increase internal resolution
I think we can at least settle on the baseline of "doesn't look completely fucked".

_________________
Twitter | Daifukkat.su
<S.Yagawa> I like the challenge of "doing the impossible" with older hardware, and pushing it as far as it can go
<T.Fuzisawa> [How does one become a game designer?] Play every game ever made. Then think of something that has never been done and make it a reality.

Sun 04 May 2014, 18:38:39

Joined: Sat 18 Apr 2009, 16:06:52

Posts: 2208
Post Re: Desmume X432R with option to increase internal resolution
wareya wrote:
Actually, it looks like your plugin or drivers are at least having serious trouble with alpha transparency sorting.


Drivers don't sort polygons, at least not in a way that changes the way the scene looks. You're referring to the blocky black edges around the glyphs at the top of the screen right? What's probably happening here is that those polygons are rendered w/o alpha blending (that's probably the setting the game intended) and only show transparent pixels if alpha = 0. Those edges would contain a gradient where alpha transitions from 0 to 1, but are only a hard 0 outside of the edge.

It's hard to tell for sure but I think you may actually see a little bit of these artifacts in the original game. That or they deliberately did weird outlines. I looked at this video here: https://www.youtube.com/watch?v=X7rmHeZ4zPE and in particular the area on the bottom left of the coin icon looks suspect. If these really are artifacts they're minimized because the texture resolution and alignment fits closely to the screen resolution. On the other hand, if it is supposed to look this way, either the image is perfectly aligned or bilinear filtering is turned off for it (in which case the emulator probably shouldn't be applying it either)

Having some kind of option to change the alpha test threshold may help...

Sun 04 May 2014, 19:04:57
User avatar

Joined: Thu 22 Mar 2012, 04:37:56

Posts: 502
Post Re: Desmume X432R with option to increase internal resolution
No, I was referring to the skybox rendering on top of the level on the edge of the fence texture.

I know all about the "black alpha" problem. The problem there is that when you interpolate an alpha channel that was originally (effectively) point sampled, you can show data that wasn't originally meant to be shown. You can avoid this somewhat by somehow blending opaque pixels into fully transparent ones, but it's a huge hack -- another form of enhancement error.

Sun 04 May 2014, 19:14:48

Joined: Sat 18 Apr 2009, 16:06:52

Posts: 2208
Post Re: Desmume X432R with option to increase internal resolution
Sintendo wrote:
The question is, what does accuracy even mean in the context of HLE?


I wish people wouldn't call resolution and other enhancements like this HLE. That really gets confusing. HLE is where you capture software routines and emulate them based on what the functionality is supposed to be instead of emulating the instructions that make up that that code. The naming parallels low level vs high level in programming languages.

If the 3D rendering was being done by some software routine on a processor and you intercepted that it'd be HLE (regardless of whether or not you then rendered it with a GPU or changed the resolution or filtered the textures or whatever). But this is almost never the case, or at least we don't have evidence of cases where there's secretly some processor embedded on the console generating 3D. In the cases where software rendering really is used in console games (like SuperFX, 32X, those 3D games on GBA, etc) I don't know of any attempts by emulators to change the way the rendering looks.

What you have is something where you're emulating something at the level of "draw this polygon" no matter how you do it. With these enhancements you're choosing to draw that polygon in a way where you know the end result isn't like what the console would have done. If you just try to draw it w/o enhancements but without extensively studying the console it'll probably still look slightly wrong, and most emulators of 3D hardware do. But here's the thing, even if you draw it so it looks exactly like the original the way the emulator accomplishes it is still probably going to be very different from what the embedded logic in the hardware does. And you're probably not going to know how the hardware does it precisely outside of some educated guesses. Unless you somehow got a transistor diagram of the GPU and emulate it at that level, the terms high level vs low level don't really apply to it.

I get what you're saying though, the whole point of these enhancements is to make it look wrong. It's not supposed to be accurate. I guess the criteria for best possible accuracy would then be:

1) Can the game code tell it's wrong, and to what extent? On N64, the game can read the framebuffer, so are you generating the framebuffer correctly in addition to outputting something else for the user?
2) How much does it fall in line with what the original developers intended? This can be kind of subjective, but there are still artifacts that are pretty easy to classify as unintended.. pretty much any kind of introduced visual discontinuities...

Sun 04 May 2014, 19:19:07

Joined: Sat 18 Apr 2009, 16:06:52

Posts: 2208
Post Re: Desmume X432R with option to increase internal resolution
wareya wrote:
No, I was referring to the skybox rendering on top of the level on the edge of the fence texture.


I didn't notice that, but I'm sure that's something else than being sorted out of existence...

wareya wrote:
I know all about the "black alpha" problem. The problem there is that when you interpolate an alpha channel that was originally (effectively) point sampled, you can show data that wasn't originally meant to be shown. You can avoid this somewhat by somehow blending opaque pixels into fully transparent ones, but it's a huge hack -- another form of enhancement error.


Yeah, isn't that what I said? :P

The big question is still this: did the game enable filtering on those polygons to begin with? You're assuming it didn't, but I think it did. If it didn't then the emulator shouldn't.

Sun 04 May 2014, 19:22:45
User avatar

Joined: Thu 22 Mar 2012, 04:37:56

Posts: 502
Post Re: Desmume X432R with option to increase internal resolution
Looks like it asks the ucode to filter both the alpha and the texture.
http://i.imgur.com/bLTdTaP.png
At least glide64 thinks so. Not sure what an LLE graphics plugin would do.

Sun 04 May 2014, 19:32:50

Joined: Fri 10 Apr 2009, 15:00:08

Posts: 13668
Post Re: Desmume X432R with option to increase internal resolution
> HLE is where you capture software routines and emulate them based on what the functionality is supposed to be instead of emulating the instructions that make up that that code.

I was never sure why the ZSNES/SNES9x emulation of the DSP-(1,2,3,4), ST-01(0,1) and Cx4 weren't called HLE. But that's exactly what that was.

> What you have is something where you're emulating something at the level of "draw this polygon" no matter how you do it.

Now that's interesting to me. I obviously haven't written an N64 emulator, but I have always assumed that knowing you were executing a function that was "render a polygon here" (HLE) would be easier to scale to 1080p with new textures than if you were executing "add 1 to this register" (LLE). So for that reason, I've considered upscaling to be something that benefited from HLE, and thus usually (but certainly not always) went hand in hand.

But if in the end the output of the LLE is to a queue that gives you the same render commands, then yeah. You could easily do upscaling with LLE. Which is great news, because I really have a hard time enjoying N64 games at 320x240.

Do you know how the frame buffer aspect works on the system? My understanding was that Mario Kart 64 would render the screen to a texture, and then put that texture onto a "monitor" that you could see on the track. Seems like you'd have to emulate writing out the proper image at 320x240 for that to look right, but then you could take the final image and scale that up.

> I guess the criteria for best possible accuracy would then be

I think it would be fair to say that if you could get raw digital RGB output from the N64 ... that accuracy would mean it not being possible to tell the difference between emulator output and N64 output to that same TV. But being able to compare it at a superhuman level, down to each pixel, detecting the most infinitesimal timing differences, etc.

But it's also very fair to categorize hardware emulation accuracy and output display accuracy separately. In theory, the latter should be 100% undetectable to the game, and never interfere with its operation. It just may look like crap in some cases like some of the pictures above.

Display accuracy also pushes you too much toward emulating a specific display, eg CRT+NTSC artifacts. Yet if you capture raw RGB and output it to an LCD, you're bypassing most if not all of those artifacts.

In a way, the idea of having the final output from the emulated processors being a display list, feels a lot like emulating a Vectrex display. And would seem to be the one thing that probably should exist as a plugin, or at least be entirely modular from the emulator core.

Sun 04 May 2014, 21:10:26
User avatar

Joined: Fri 10 Apr 2009, 18:17:56

Posts: 3308
Location: Germany
Post Re: Desmume X432R with option to increase internal resolution
byuu wrote:
I was never sure why the ZSNES/SNES9x emulation of the DSP-(1,2,3,4), ST-01(0,1) and Cx4 weren't called HLE.

I (and most other people, I guess) only heard of the term HLE when UltraHLE appeared.

_________________
"The first time I watched [FLCL] I was like 12 or 13 and I was scared and confused." - isthisagoodusername
"I think it's more natural for human beings to be anxious. I think happiness is nothing but an illusion." - Hideaki Anno
"If you can't joke about incest in anime then what kind of world are we living in?!" - gothicmaster

Sun 04 May 2014, 21:40:27
User avatar

Joined: Sun 05 Sep 2010, 15:42:48

Posts: 1344
Post Re: Desmume X432R with option to increase internal resolution
creaothceann wrote:
I only heard of the term HLE when UltraHLE appeared.
Because there's low-level emulation, high-level emulation, and then there's ultra-high-level emulation :)

_________________
http://helmet.kafuka.org

Sun 04 May 2014, 21:53:30
User avatar

Joined: Thu 22 Mar 2012, 04:37:56

Posts: 502
Post Re: Desmume X432R with option to increase internal resolution
There are degrees of HLE and LLE. HLE is how much you emulate something by its interfaces and outside behavior, rather than its internal mechanisms.

I think BSNES counts as LLE if you want to dichotomize it, but it's still HLE in a very pedantic sense where you apply HLE to emulating the behavior of the low level systems that make up the console rather than emulating said systems' transistors and shit.

Sun 04 May 2014, 21:54:56
User avatar

Joined: Sun 05 Sep 2010, 15:42:48

Posts: 1344
Post Re: Desmume X432R with option to increase internal resolution
wareya wrote:
I think BSNES counts as LLE if you want to dichotomize it
At any rate, it's lower than most other SNES emulators. That you cannot deny.

_________________
http://helmet.kafuka.org

Sun 04 May 2014, 22:04:42
User avatar

Joined: Thu 22 Mar 2012, 04:37:56

Posts: 502
Post Re: Desmume X432R with option to increase internal resolution
Yes, very true. It emulates the SNES instead of emulating the games.

Sun 04 May 2014, 23:06:39
Previous  1 ... 4, 5, 6, 7, 8, 9, 10 ... 12  Next

Who is online

Users browsing this forum: No registered users and 0 guests

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum