ROM Hack Quest to hack parallax barrier to NES VC games

WiiUBricker

News Police
OP
Banned
Joined
Sep 19, 2009
Messages
7,828
Trophies
0
Location
Espresso
XP
7,411
Country
Argentina
Nintendo's VC emulator is an all-in-one emulator. It has one config.ini for settings of all emulators. For NES roms you can change the resolution by simply editing the width and height values. So since the parallax barrier (that thing that causes 'scanlines' when disabled) is disabled when running NES roms and enabled when running GBC roms, I attempted to enable it for NES roms.

First I compared the available settings for NES and GBC roms:

Code:
[NES]
Width = 284
Height = 240
ClipUp = 4        ;pixel unit
ClipDown = 4        ;pixel unit
ClipLeft = 4        ;pixel unit
ClipRight = 4        ;pixel unit
Code:
[CGB]
Width = 267
Height = 240
ColorDelay = 200    ;ms unit
SoundSwapLR = 0        ;ƒTƒEƒ“ƒhLR“ü‚ê‘Ö‚¦
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
SoundMultiSample = 0; 0~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

As you can see, for NES roms there aren't any screen settings except width, height and some padding. For GBC roms there is a setting for the parallax effect among other screen settings. I copied the whole block over to the [NES] section because why not? Then I did rebuild the CIA and installed it.

Result: No changes. It's as if all settings I copied over are ignored by the emulator.

Then I inspected the other files inside the RomFS folder. There is a folder for GPU shaders. Maybe the settings were ignored because the shaders of NES and GBC roms differ from each other. I extracted a GBC CIA and looked inside its shaders folder. Almost all of the shaders in there are name like the shaders in the NES rom. So I swapped the shadders of the NES rom with the shaders of the GBC rom.

Result: App crashes and kicks me back to the home menu.

My last attempt was to just replace the GBC rom from the GBC CIA with the NES rom from the NES CIA, renamed accordingly.

Result: App crashes and kicks me back to the home menu.

Any ideas?
 
Last edited by WiiUBricker,
  • Like
Reactions: Deleted User
D

Deleted User

Guest
Well, I'm no expert ROM Hacker (in fact, I'm barely a ROM Hacker at all), but try comparing the EXEFS of both CIAs.

Also, try searching the ROMFS for any other files that could be influencing this.

Later on, I'll open up one of my NES CIAs and see what this about.
 

LoganK93

Well-Known Member
Member
Joined
Dec 5, 2012
Messages
671
Trophies
0
Age
29
XP
1,622
Country
United States
It is likely enabled in GBC roms due to the fact that you can actually use "3d" While playing GB/GBC if you hold select(?) when launching it makes a gameboy show on the top screen, which also uses the 3d effect (which would mean it uses the parallax barrier and thus it is always able to be activated.) The NES has no comparable feature so the barrier and 3d in general are never enabled.
 

WiiUBricker

News Police
OP
Banned
Joined
Sep 19, 2009
Messages
7,828
Trophies
0
Location
Espresso
XP
7,411
Country
Argentina
Well, I'm no expert ROM Hacker (in fact, I'm barely a ROM Hacker at all), but try comparing the EXEFS of both CIAs.

Also, try searching the ROMFS for any other files that could be influencing this.

Later on, I'll open up one of my NES CIAs and see what this about.
The ExeFS contains only UI stuff like icon, logo etc. The rest is manual, download play and banner. So really there is only the RomFS left.

It is likely enabled in GBC roms due to the fact that you can actually use "3d" While playing GB/GBC if you hold select(?) when launching it makes a gameboy show on the top screen, which also uses the 3d effect (which would mean it uses the parallax barrier and thus it is always able to be activated.) The NES has no comparable feature so the barrier and 3d in general are never enabled.
I highly doubt it's enabled in roms themselves. Else how could you explain that this "3D" effect you are talking about is still there when you inject random roms off the internet? The emulator decides whether it activates the parallax barrier or not.
 

You may also like...

General chit-chat
Help Users
  • M4x1mumReZ @ M4x1mumReZ:
    Unless there are additions that need to be done.
    +1
  • M4x1mumReZ @ M4x1mumReZ:
    @K3N1,
    You're right.
    +1
  • K3N1 @ K3N1:
    Why it's better to buy directly from reputable sources
    +2
  • M4x1mumReZ @ M4x1mumReZ:
    Yes, and not from some shitty Chinese store.
    +1
  • M4x1mumReZ @ M4x1mumReZ:
    They are many repetable component stores to name such as RS Components.
    +1
  • M4x1mumReZ @ M4x1mumReZ:
    But then there's added tax to the mix.
    +1
  • M4x1mumReZ @ M4x1mumReZ:
    Makes them more expensive. :(
  • K3N1 @ K3N1:
    Rumors going around about USB4
  • M4x1mumReZ @ M4x1mumReZ:
    It has been discussed for quite a long time now.
    +1
  • K3N1 @ K3N1:
    It's about time for the upgrade
    +1
  • M4x1mumReZ @ M4x1mumReZ:
    I'm fine with everything USB wise.
    +1
  • Shape @ Shape:
    USB is fine, but shouldn't it be replaced with bulky, hard to use cables and all sorts of proprietary male-female connector port shapes?
    +1
  • Shape @ Shape:
    It's so frustrating to have one simple cable that you can plug in upside down for everything!!!
    +1
  • K3N1 @ K3N1:
    USB4 can do up to 40gbps I'd welcome it
    +1
  • K3N1 @ K3N1:
    From a Linus video it's essentially just a type c with an advanced chip
    +1
  • Shape @ Shape:
    40Gbps is just going to result in even more more lazy developers writing sub-optimal, lazy code.
    +2
  • K3N1 @ K3N1:
    How? That transfer speed is insane
    +1
  • K3N1 @ K3N1:
    That's like saying fast transfers is going to be the downfall of gaming
    +2
  • K3N1 @ K3N1:
    Then when devs that actually do take their time makes people cry over them taking their time and having to wait even longer
    +2
  • Shape @ Shape:
    Very astute observations, but you failed to take into account people like me who prefer devs to take their time despite longer waits and really, really dislike the suboptimal approaches many studios are taking with game development in this day and age. Catering to the customers with impatient impulses for instant-gratification is a super-profitable business strategy in the short term, sure, but it is an untenable business strategy in the longer term simply because you cannot guarantee you can produce a quality game in that timespan repeatedly. Therefore, you will have to abuse your workforce or partake in other inethical practices in order to compete in the marketplace and remain profitable.
    +1
  • K3N1 @ K3N1:
    Not really a fail the general public just doesn't know how to wait I don't see what faster transfer speeds have to do with that
    +2
  • K3N1 @ K3N1:
    That's why GTA games are so great because they have that 5-10 year wait and most new sports games are updated roasters they can't really do much improvement with them because not much their is to improve but on the other hand you get a new cod game every year and it makes millions per year so why stop the cash flow if people are dumb enough to buy every new game peryear
    +1
  • Shape @ Shape:
    Awh that's sad
    Shape @ Shape: Awh that's sad