Tutorial  Updated

Restoring original colors to GBA VC

This is a followup on my footers thread, I have succeeded in getting back the original colors instead of the washed out/dark/mute colors every GBA VC has.

It's actually quite simple; every string of numbers that go like this: 00 00 00 00 00 00 in blocks of six are now changed to blocks of three until you reach FF FF FF.

I have already gone through the trouble of writing all the values out in a separate file ORIGINAL.bin
Simply go through the process of making a footer, open it in a hex editor and open original.bin as well, select everything in it and copy it to the footer starting at offset 0x24.

Should look like this:
hM80pLk.png

Ideally the GBA footer generator should get updated with this option to avoid hex editing and name the other settings something more accurate than "Memory Config".

Comparison shots
wg7cCfG.png
5rJUCVA.png

diclpff.png
cgqneOc.png

OXI6TIz.png
38Fihuj.png


Bonus: Remove or add more ghosting/blur
Edit byte at offset 0x20

0xFF/255 = No blurring/ghosting
0xF0/240 = Very little ghosting
0xC0/192 = Official value, standard ghosting
0x80/128 = Official value, more ghosting, highly noticeable
0x20/32 = Insane ghosting
0x01 = MAX
 
Last edited by SuperrSonic, , Reason: 0x00 is an invalid value, fixed.

The Super Other

Member
Newcomer
Joined
Feb 15, 2016
Messages
5
Trophies
0
Age
29
XP
62
Country
United States
Had a a ROM sitting around in a ready to build state so I went ahead and tested with the byte at offset 0x20 set to 0x00. The screen was just black. It ran, but there was nothing visible. I used the same ROM and footer with only the ghosting value changed to build 2 other cias and they turned out fine.
 

sieroi

Well-Known Member
Member
Joined
Apr 29, 2015
Messages
147
Trophies
0
Age
37
XP
845
Country
Ghosting is simply a side-effect from the IPS panel used on some on the n3DS'. Because this is a flaw in the 3DS' screen you cannot turn it off.

Just for reference, in case anyone stumbles across this comment down the line - I just tested this on my IPS N3DSXL. The screen might well have greater ghosting issues than TN panels, but it's not enough to make a difference where this case is concerned- rebuilding a VC title with the ghosting flag turned off results in a massive difference. It's shocking just how great the difference is, even.

This definitely works. Remarkable, really- a lot of titles were almost unplayable on this system thanks to the excessive motion blur before.
 
Last edited by sieroi,

MegaV2

Well-Known Member
Newcomer
Joined
Sep 12, 2009
Messages
62
Trophies
1
XP
1,022
Country
Portugal
Just tried it with Metroid Fusion and it's actually fucking playable now without the goddamn awful ghosting effect. Thanks man
 

DocKlokMan

Plugin Dev
Member
Joined
Apr 20, 2007
Messages
3,009
Trophies
2
Age
36
XP
4,571
Country
United States
Had a a ROM sitting around in a ready to build state so I went ahead and tested with the byte at offset 0x20 set to 0x00. The screen was just black. It ran, but there was nothing visible. I used the same ROM and footer with only the ghosting value changed to build 2 other cias and they turned out fine.
0x00 is an invalid value. The lower the number the more ghosting. If that value existed it would make the game unplayable (which it technically did). Try 0xFF instead.
 

Eduardolicious

Active Member
Newcomer
Joined
Oct 15, 2015
Messages
34
Trophies
0
Age
42
XP
91
Country
United States
this is amazing, and will probably be the last straw that pushes me fully to injected cias instead of retroarch for gba at least

(can't wait to see this rolled into some sorta one-click gba->cia solution someday to really make it all sing)
 

The Super Other

Member
Newcomer
Joined
Feb 15, 2016
Messages
5
Trophies
0
Age
29
XP
62
Country
United States
0x00 is an invalid value. The lower the number the more ghosting. If that value existed it would make the game unplayable (which it technically did). Try 0xFF instead.
Ah good point. I knew it would be unplayable considering 0x20 is. I've already remade all my cias with the blur turned off. :P When OP updated his post to include the ghosting value offset, he said he didn't bother testing 0x00. So I figured I'd see what would happen. Might be useful to play a forced-blind speedrun of the Gen 3 Pokemon games.
 

DocKlokMan

Plugin Dev
Member
Joined
Apr 20, 2007
Messages
3,009
Trophies
2
Age
36
XP
4,571
Country
United States
What about editing (via hex, decompiling, etc) already compiled CIAs to change it?
I was able to use Asia81's PackHack to extract a CIA (option CIAE, no to decrypting the code.bin), then opened code.bin in a hex editor, went 360 values from the bottom (the footer) and then made the changes to the x20 byte (FF to remove ghosting) and then overwrote values x24-x324 with ORIGINAL.BIN to restore the colors. Saved the code.bin file and then used the still open PackHack window to rebuild the CIA (option CIAR). Installed that CIA and it works like a charm. Maybe someone can write a small patcher to auto patch the code.bin.

The reason I did this was that I have a lot of GBA VC CIA files already stored and I don't have the graphics to rebuild them, so it was easier for me to do this then get the ROM files, graphic files and remember the title ID's and Serial codes to rebuild them all over again.
 

DocKlokMan

Plugin Dev
Member
Joined
Apr 20, 2007
Messages
3,009
Trophies
2
Age
36
XP
4,571
Country
United States
Alright, so I made a little something. It's an EXE to patch your code.bin to restore colors and remove ghosting for CIA files you may already have.

Tutorial:
  1. Download and install @Asia81's PackHack
  2. Run PackHack and type: CIAE to extract your CIA. Choose NO to decrypting code.bin
  3. Open Command Prompt and run linked file GBA_ColorGhost_Fix.exe
    • Usage: GBA_ColorGhost_Fix /path/to/your/code.bin
  4. After it's patched, go back to the PackHack (which should still be running) and type: CIAR to repack your CIA.
  5. Copy Edited CIA to 3DS and install! WARNING: Backup your save and then restore it after re-installing. I will not go over how to do that.
Link to GitHub: https://github.com/AnalogMan151/GBA_ColorGhost_Fix

Click on the ZIP file then click on 'View Raw' to download.
 

Asia81

Yuri Lover ~
Member
Joined
Nov 15, 2014
Messages
6,656
Trophies
3
Age
29
XP
3,495
Country
France
Alright, so I made a little something. It's an EXE to patch your code.bin to restore colors and remove ghosting for CIA files you may already have.

Tutorial:
  1. Download and install @Asia81's PackHack
  2. Run PackHack and type: CIAE to extract your CIA. Choose NO to decrypting code.bin
  3. Open Command Prompt and run linked file GBA_ColorGhost_Fix.exe
    • Usage: GBA_ColorGhost_Fix /path/to/your/code.bin
  4. After it's patched, go back to the PackHack (which should still be running) and type: CIAR to repack your CIA.
  5. Copy Edited CIA to 3DS and install! WARNING: Backup your save and then restore it after re-installing. I will not go over how to do that.
Link to GitHub: https://github.com/AnalogMan151/GBA_ColorGhost_Fix

Click on the ZIP file then click on 'View Raw' to download.
IT seems like it work also with a drag'n'drop of the code.bin file on the py script
 

piratesephiroth

I wish I could read
Member
Joined
Sep 5, 2013
Messages
3,453
Trophies
2
Age
103
XP
3,233
Country
Brazil
Alright, I made a quick solution to fix your old GBA Virtual Console CIAs.
Just extract DRAG_AGB_CIA.bat and the "progfiles" subfolder then drag and drop you CIAs onto the bat file.
You can drag and drop multiple CIA files (just don 't abuse it, I'm pretty sure there's a limit for command line length)

The new ones will be placed inside the FIXED_CIA folder.

https://files.catbox.moe/n2gr4m.zip
 
Last edited by piratesephiroth,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Well start walking towards them +1