Weird discoloration in screenshots (both Luma3DS and Loopy capture card)

Dionicio3

goat
OP
Member
Joined
Feb 26, 2017
Messages
4,046
Trophies
2
Age
20
Location
Hollister, CA
Website
dionicio3.com
XP
7,178
Country
United States
I just noticed some weird discoloration/artifacts on my 3DS. I posted a video showing off some of it with a VC tnject of the 240p Test Suite.



The magic wand should select a perfect rectangle everytime if the capture was perfect, but it doesn't.
This is super obvious in Gameboy VC titles

00001.png
1709096245281.png

I generated a test pattern and loaded them via GodMode9, and I don't seem to see the same discoloration anywhere.

1709097677307.png
1709097690535.png

Anyone have some other, non-VC software with a non-3DS counterpart I can test, and does anyone else have any idea what's going on?

EDIT: Seems like the issue exists in the browser too, leading me to believe it's some sort of issue with the 3DS OS. If anyone has a Loopy capture card modded system WITHOUT CFW, please DM me.

1709098499933.png
 
Last edited by Dionicio3,

ThaddeusShaw

Active Member
Newcomer
Joined
Feb 15, 2024
Messages
25
Trophies
0
Age
28
XP
31
Country
United States
From what you've noticed and tried out, it looks like the problem might be with the 3DS's system software or the way it shows graphics for some apps. It would be a good idea to find out if other people have had the same problem, or to try different 3DS systems to better figure out what's causing it.
 

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,821
Trophies
2
Location
home
XP
9,322
Country
Hungary
Oh oops, I should probably mirror what we have discussed in profile posts.

So, my theory is that a lot of Nintendo's programs (browser and Virtual Console included) draw CPU-rendered framebuffers at .0 subpixel instead of .5 subpixel, meaning it will always blend and be blurry.
A weirdness of the PICA200 is that it needs the image corners to be at .5 subpixel instead of .0 (like other normal GPUs do) to draw the image as-is, otherwise it will blend.
 

TheStonedModder

Well-Known Member
Member
Joined
Dec 25, 2022
Messages
824
Trophies
0
Age
27
XP
1,628
Country
United States
From the pics i don't quite understand what you mean. All of the pics seem fine to me.
I can't really notice anything either.


From owning multiple Katukity and Loopy cards I know they can get a bit weird with their outputs sometimes. But that can usually be solved by adjusting the RGB values(I dont recall the exact wording) in each of their respective programs since they should have a setting.

A new cable can help too, or in worst case scenarios a minor repair of the capture card PCB itself. Especially the katsukity ones. Those damn things have the most fragile and sensitive USB ports
 

ThaddeusShaw

Active Member
Newcomer
Joined
Feb 15, 2024
Messages
25
Trophies
0
Age
28
XP
31
Country
United States
The fact that the PICA200 prefers half-point positioning to prevent blurry images is not something you see often with other graphics processors. Well, it means that game developers and app makers need to remember this detail to make sure their visuals look as sharp as possible on Nintendo devices.
 

Dionicio3

goat
OP
Member
Joined
Feb 26, 2017
Messages
4,046
Trophies
2
Age
20
Location
Hollister, CA
Website
dionicio3.com
XP
7,178
Country
United States
I was looking into editing my VCs to try to get it to render at .5 pixels, but I don't see any obvious way to actually edit the screen position of the emulator, only the resolution
Post automatically merged:

rather annoyingly, mGBA for the 3DS doesn't have the issue, though I'd still prefer to use the official emulator
1709359464949.png
 
Last edited by Dionicio3,

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,821
Trophies
2
Location
home
XP
9,322
Country
Hungary
I was looking into editing my VCs to try to get it to render at .5 pixels, but I don't see any obvious way to actually edit the screen position of the emulator, only the resolution
Post automatically merged:

rather annoyingly, mGBA for the 3DS doesn't have the issue, though I'd still prefer to use the official emulator

The VC emulator is full of bugs and stuff. You'd need to patch the code, just like I mentioned in the profile posts.
 

ghjfdtg

Well-Known Member
Member
Joined
Jul 13, 2014
Messages
1,360
Trophies
1
XP
3,282
Country
I still don't get what you mean. Post an actual comparison maybe mGBA vs VC (preferably with the same color pallet).
 

Dionicio3

goat
OP
Member
Joined
Feb 26, 2017
Messages
4,046
Trophies
2
Age
20
Location
Hollister, CA
Website
dionicio3.com
XP
7,178
Country
United States
I still don't get what you mean. Post an actual comparison maybe mGBA vs VC (preferably with the same color pallet).
sorry for them not being the same color pallet (too lazy to edit configs rn), but look at the weird off "white" pixels in the VC image vs the sharp look of the mGBA image
1709428224474.png
1709428241450.png


Somewhat related possibly, I noticed this weird dithering pattern in NDS/DSi games that I don't see on emulator or with my OG DS capture card (ignore the dithering that's supposed to be there).
1709428499638.png
1709428558063.png
 

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,821
Trophies
2
Location
home
XP
9,322
Country
Hungary
sorry for them not being the same color pallet (too lazy to edit configs rn), but look at the weird off "white" pixels in the VC image vs the sharp look of the mGBA image


Somewhat related possibly, I noticed this weird dithering pattern in NDS/DSi games that I don't see on emulator or with my OG DS capture card (ignore the dithering that's supposed to be there).

The dithering pattern created by MTX (DS/GBA --> 3DS capture card), and as far as we know, there is hardware malfunction which makes it impossible to turn dithering off.
 
  • Like
Reactions: Dionicio3

ghjfdtg

Well-Known Member
Member
Joined
Jul 13, 2014
Messages
1,360
Trophies
1
XP
3,282
Country
Ah, you mean the weird shadows around the letters. That could be due to inaccurate texture coordinates. Or they do this on purpose for whatever reason. As for the dithering what Sono said. Dithering can be turned off but due to a hardware bug it still dithers in the least significant bit of each channel.
 

Attachments

  • scaled.png
    scaled.png
    1.3 KB · Views: 12

Dionicio3

goat
OP
Member
Joined
Feb 26, 2017
Messages
4,046
Trophies
2
Age
20
Location
Hollister, CA
Website
dionicio3.com
XP
7,178
Country
United States
So interesting development, I took a look at another GB VC title and found it doesn't have the issue.
1709513266426.png
The screen is nice and crisp, which is now even more annoying how Nintendo seemingly knew of this issue but just forgot when they updated the VC for link connectivity
 

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,821
Trophies
2
Location
home
XP
9,322
Country
Hungary
So interesting development, I took a look at another GB VC title and found it doesn't have the issue.
The screen is nice and crisp, which is now even more annoying how Nintendo seemingly knew of this issue but just forgot when they updated the VC for link connectivity

Can you please dump the ROMFS of both? They should have a config.ini or something for config, and a version.txt file or so with the build date in Japanese notation in MM/dd/yy format if I remember correctly. Just to rule out if it's a config issue or an actual bugfix (or even a regression!).
 

Dionicio3

goat
OP
Member
Joined
Feb 26, 2017
Messages
4,046
Trophies
2
Age
20
Location
Hollister, CA
Website
dionicio3.com
XP
7,178
Country
United States
Can you please dump the ROMFS of both? They should have a config.ini or something for config, and a version.txt file or so with the build date in Japanese notation in MM/dd/yy format if I remember correctly. Just to rule out if it's a config issue or an actual bugfix (or even a regression!).
Code:
2月 02 2016  10:52:30
Code:
;DMG実機再現カラーパレット
[DMG_COLOR]
Color0 = c23,31,4    ;R,G,B (0~31)
Color1 = c19,29,5
Color2 = c11,17,8
Color3 = c9,9,9
ColorLCD = c20,27,7    ;LCD

;DMGグレーカラー再現カラーパレット
[DMG_COLOR_GRAY]
Color0 = c25,25,21
Color1 = c20,20,17
Color2 = c13,13,10
Color3 = c5,5,3
ColorLCD = c25,25,21    ;LCD

;グラフィック関連設定
[Mask]
; Normal Mode
DarkEnable0 = 1
ReduceEnable0 = 0
MotionBEnable0 = 0
Dark0 = 7        ;0~10
ReduceColorR0 = 0    ;0~31
ReduceColorG0 = 0    ;0~31
ReduceColorB0 = 0    ;0~31
MotionBlur0 = 31    ;0~31

; DMG Green Mode
DarkEnable1 = 1
ReduceEnable1 = 0
MotionBEnable1 = 1
Dark1 = 7        ;0~10
ReduceColorR1 = 0    ;0~31
ReduceColorG1 = 0    ;0~31
ReduceColorB1 = 0    ;0~31
MotionBlur1 = 8        ;0~31

; Dotbydot DMG Green Mode
DarkEnable2 = 1
ReduceEnable2 = 0
MotionBEnable2 = 1
Dark2 = 7        ;0~10
ReduceColorR2 = 0    ;0~31
ReduceColorG2 = 0    ;0~31
ReduceColorB2 = 0    ;0~31
MotionBlur2 = 10    ;0~31

[AGB]
Width = 360
Height = 240

[CGB]
Width = 267
Height = 240
ColorDelay = 200    ;ms unit
SoundSwapLR = 0        ;サウンドLR入れ替え
Dotbydot = 1        ;0: Disable, 1: Enable
Parallax = 300        ;1/1000 mm unit
RenderTime = 0        ;0: Begin of Mode3(Default), 1: End of Mode3
Logo = 0        ;Show Nintendo(R) Logo
ObjLineLimit = 1    ;0: Max, 1: Limit
LCDOnDelay = 1        ;LCD On Delay Frame Count(Only for DMG)
LCDIntOnce = 0        ;1: LCD's interrupt active once in one scanline
VBlankDelay = 1        ;VBlankDelay Ticks (1~113) (Default: 1)
SoundCH1Sweep = 1    ;0:Old Sweep Mode 1: New Sweep Mode
SoundNoiseTable = 1     ;0: old noise 1:use noise table
SoundMultiSample = 3; 1~4 bigger, sound better, but slower
SoundCH1Reset = 0; 0: when channel initial, don't reset the  channel index 1: reset channel index
SoundCH2Reset = 0; 0: when channel initial, don't reset the  channel index 1: reset channel index
SoundCH1SweepLimit = 2047 ;0~2047, default is 2047
ColorLCD = c31,31,31
SDataInitValue = 0 ;0~255, default is 0

[NES]
Width = 284
Height = 240
ClipUp = 4        ;pixel unit
ClipDown = 4        ;pixel unit
ClipLeft = 4        ;pixel unit
ClipRight = 4        ;pixel unit

[Sound]
Volume = 88        ;0~...
CutRate = 10000        ;Hz unit

[Input]
AutoFireHold = 0    ;Frame Count, 0:Disable Auto Fire
AutoFireRelease = 1    ;Frame Count

[Save]
Interval0 = 60        ;seconds (Size<32KB)
Interval1 = 240        ;seconds (Size>=32KB)

[Menu]
MenuDark = 4        ;0~10
MenuDelay = 200        ;ms unit
MenuFade = 200        ;ms unit
SaveAnim = 1        ;1:On 0:0ff
LoadAnim = 1        ;1:On 0:0ff
ResetAnim = 1        ;1:On 0:0ff
FadeInTime1 = 200    ;ms unit
FadeInTime2 = 200    ;ms unit
FadeWaitTime = 2000    ;ms unit
FadeOutTime = 200    ;ms unit

[Demo]
DemoTime = 180        ;seconds
DemoResetTime = 1000    ;ms
Code:
Jun 15 2011  18:38:09
Code:
;DMG実機再現カラーパレット
[DMG_COLOR]
Color0 = c23,31,4    ;R,G,B (0~31)
Color1 = c19,29,5
Color2 = c11,17,8
Color3 = c9,9,9
ColorLCD = c20,27,7    ;LCD

;DMGグレーカラー再現カラーパレット
[DMG_COLOR_GRAY]
Color0 = c25,25,21
Color1 = c20,20,17
Color2 = c13,13,10
Color3 = c5,5,3
ColorLCD = c25,25,21    ;LCD

;グラフィック関連設定
[Mask]
; Normal Mode
DarkEnable0 = 0
ReduceEnable0 = 0
MotionBEnable0 = 0
Dark0 = 10        ;0~10
ReduceColorR0 = 0    ;0~31
ReduceColorG0 = 0    ;0~31
ReduceColorB0 = 0    ;0~31
MotionBlur0 = 31    ;0~31

; DMG Green Mode
DarkEnable1 = 1
ReduceEnable1 = 0
MotionBEnable1 = 1
Dark1 = 7        ;0~10
ReduceColorR1 = 0    ;0~31
ReduceColorG1 = 0    ;0~31
ReduceColorB1 = 0    ;0~31
MotionBlur1 = 8        ;0~31

; Dotbydot DMG Green Mode
DarkEnable2 = 1
ReduceEnable2 = 0
MotionBEnable2 = 1
Dark2 = 7        ;0~10
ReduceColorR2 = 0    ;0~31
ReduceColorG2 = 0    ;0~31
ReduceColorB2 = 0    ;0~31
MotionBlur2 = 10    ;0~31

[AGB]
Width = 360
Height = 240

[CGB]
Width = 267
Height = 240
ColorDelay = 200    ;ms unit
SoundSwapLR = 0        ;サウンドLR入れ替え
Dotbydot = 1        ;0: Disable, 1: Enable
Parallax = 300        ;1/1000 mm unit
RenderTime = 0        ;0: Begin of Mode3(Default), 1: End of Mode3
Logo = 0        ;Show Nintendo(R) Logo
ObjLineLimit = 1    ;0: Max, 1: Limit
LCDOnDelay = 1        ;LCD On Delay Frame Count(Only for DMG)
LCDIntOnce = 0        ;1: LCD's interrupt active once in one scanline
VBlankDelay = 1        ;VBlankDelay Ticks (1~113) (Default: 1)
SoundCH1Sweep = 1    ;0:Old Sweep Mode 1: New Sweep Mode
SoundNoiseTable = 1     ;0: old noise 1:use noise table
SoundReplace = 1    ;0: normal 1: replace some sound to fit the real
[NES]
Width = 284
Height = 240
ClipUp = 4        ;pixel unit
ClipDown = 4        ;pixel unit
ClipLeft = 4        ;pixel unit
ClipRight = 4        ;pixel unit

[Sound]
Volume = 88        ;0~...
CutRate = 10000        ;Hz unit

[Save]
Interval0 = 60        ;seconds (Size<32KB)
Interval1 = 240        ;seconds (Size>=32KB)

[Menu]
MenuDark = 4        ;0~10
MenuDelay = 200        ;ms unit
MenuFade = 200        ;ms unit
SaveAnim = 1        ;1:On 0:0ff
LoadAnim = 1        ;1:On 0:0ff
ResetAnim = 1        ;1:On 0:0ff
FadeInTime1 = 200    ;ms unit
FadeInTime2 = 200    ;ms unit
FadeWaitTime = 2000    ;ms unit
FadeOutTime = 200    ;ms unit

[Demo]
DemoTime = 180        ;seconds
DemoResetTime = 1000    ;ms
Would not doubt it's a regression as the SNES VC has the issue and is seperate from the other VCs
Post automatically merged:

Looks like it's not a regression, I used LayeredFS to load the G&W config in Pokemon Red, and the issue is gone. Good idea to check that @Sono
I'll investigate exactly which option is causing the issue then make config.inis for all affected titles

EDIT: Simply disabling the dark filter (DarkEnable0) fixes the issue, awesome. I'm gonna make LayeredFS patches for all my Pokémon VCs now
 
Last edited by Dionicio3,
  • Love
Reactions: Sono

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Lol rappers still promoting crypto