ROM Hack Extracting SNES VC Rom & Restoring Audio

RichWeb

Active Member
OP
Newcomer
Joined
Aug 26, 2020
Messages
30
Trophies
0
XP
441
Country
United Kingdom
Hey folks. I'm trying to extract a usable ROM file from a 3DS SNES VC title installed on my system. I'm currently working with Super Mario World.

I've followed the guides as far as obtaining the "11data.bin" file for the game, and transferred it to me PC, which I've read contains both the ROM file and the PCM audio file.

After having success using the vcromclaim tools to extract usable Kirby ROMs from my copy of Kirby's Dream Collection, I'm using those guides/tools as a base. I'm also using a downloaded copy of the ROM to compare against mine.

I have removed what I believe to be the PCM data from the 11data.bin file, and using snesrestore I've actually managed to restore audio to the ROM. However, the sounds aren't quite right, pitch is off and some sounds are missing.

Is there a definitive guide to accomplish this? I'm just guessing and playing around with no real idea what I'm doing.
 
Last edited by RichWeb,

lone_wolf323

Well-Known Member
Member
Joined
May 27, 2011
Messages
5,495
Trophies
2
XP
4,942
Country
Canada
Hey folks. I'm trying to extract a usable ROM file from a 3DS SNES VC title installed on my system. I'm currently working with Super Mario World.

I've followed the guides as far as obtaining the "11data.bin" file for the game, and transferred it to me PC, which I've read contains both the ROM file and the PCM audio file.

After having success using the vcromclaim tools to extract usable Kirby ROMs from my copy of Kirby's Dream Collection, I'm using those guides/tools as a base. I'm also using a downloaded copy of the ROM to compare against mine.

I have removed what I believe to be the PCM data from the 11data.bin file, and using snesrestore I've actually managed to restore audio to the ROM. However, the sounds aren't quite right, pitch is off and some sounds are missing.

Is there a definitive guide to accomplish this? I'm just guessing and playing around with no real idea what I'm doing.
Seems like a nightmare for getting back nothing. Why not just use a downloaded rom and be done with it?
 

RichWeb

Active Member
OP
Newcomer
Joined
Aug 26, 2020
Messages
30
Trophies
0
XP
441
Country
United Kingdom
It is possible to simply copy over all of the non PCMF data from the USA ROM and paste it over the same area in the extracted ROM. Doing this, as well as chopping off all the extra PCM data from the bottom, results in a SHA-1 of 50A2312099AE7CDF7140E6E66AC0E0A44B9E4779, which is the same as no-intro Super Mario World (USA, Europe) (Virtual Console, Classic Mini, Switch Online). It would be nice for a tool to do this just from the data found in the ROM, without using the original ROM as a base though.
 
Last edited by RichWeb,

RichWeb

Active Member
OP
Newcomer
Joined
Aug 26, 2020
Messages
30
Trophies
0
XP
441
Country
United Kingdom
I've just followed the same method for Zelda Link to The Past, with the same success. Copied over the audio portions from the USA ROM, and the remaining differences correlate to the VC changes such as decreasing the flashing intensity.

So it seems so far this is a viable way to backup, and archive, legitimate VC SNES ROMs from the 3DS.
 

RichWeb

Active Member
OP
Newcomer
Joined
Aug 26, 2020
Messages
30
Trophies
0
XP
441
Country
United Kingdom
Last update on Super Mario World. Figured out where in the data (using HxD) the PCM file should start and end, and realised there was actually some junk at the bottom of it that needed to be deleted. Now using snesrestore I can merge the .rom and .pcm files together to produce a fully working ROM.

However, the hash data no longer matches the previous one above on no-intro, which makes sense since I think that dump uses the same method I did previously of pasting the audio from a different ROM.

Interestingly though, the new hash data matches the version of Super Mario World extracted from Super Smash Bros. Brawl (NTSC version at least). Following the extraction guide here: https://github.com/farmerbb/RED-Project/wiki/Super-Smash-Bros.-Brawl

Which means the version on the 3DS VC is identical to the one on SSBB.
 

RichWeb

Active Member
OP
Newcomer
Joined
Aug 26, 2020
Messages
30
Trophies
0
XP
441
Country
United Kingdom
I've had a play around more today and I think I've discovered something regarding Wii and 3DS VC titles. At least, I couldn't find anything about this from searching. Documenting here in case it's not known.

In my post above where I said "chopping off all the extra PCM data from the bottom" from the .bin file pulled from the 3DS VC? Well that extra data is practically identical to the .var file that is extracted from Wii WAD files. There are guides for extracting Wii WAD files using ShowMiiWads, where you first extract the files from the WAD, then unpack the 00000005.app file. The resulting extracted files are used to rebuild a rom from a .rom and .pcm file, using snesrestore. This I also explained above. However, inside this folder there's also a .var file. I couldn't find any information on what this file is for.

I discovered that the data inside the .var file matches the "junk" at the end of the .bin file in 3DS VC roms. Almost. There's some null values padding out the very end in the .bin file.

Here's a comparison screenshot. On the left is the "junk" I mentioned above, that is found at the bottom of the .bin file from the 3DS. This is Super Mario World. On the right is the .var file extracted from the Wii VC WAD file for Super Mario World (USA).

o9y1hTr.png


Like I said, I don't know if this is new information or not, but it might help with archiving and understanding the VC. I couldn't find any info on what this .var file is for. I don't necessarily think it's for implementing the VC changes Nintendo have been doing, because the generated ROM files, stripped of this extra data, include those changes, like less intense flashing images.

Anyone know what this means?

EDIT:

Here's an additional image, the contents of the 00000005.app file for Super Mario World (USA) (SNES) (Virtual Console).wad

5qhnjyW.png
 
Last edited by RichWeb,

SaulFabre

I like Yoshis and the Wii/Wii U scene.
Member
Joined
Feb 6, 2019
Messages
3,186
Trophies
2
Age
25
Location
Ecuador
Website
saulfabreg-wiivc.blogspot.com
XP
7,835
Country
Ecuador
Can you post screenshots or a tutorial or something I can’t figure out how to get the ROM in PCM data from a 3DS VC working on the sNESrestore.py
Look at this wiki with info about SNES VC on 3DS http://www.3dbrew.org/wiki/3DS_Virtual_Console#SNES_VC
Using Plombo's vcromclaim tools requires Python 2.7 (https://www.python.org/downloads/release/python-2718).
When you install Python, make sure to check the "Add to PATH variable" in the installer.
For use snesrestore.py, type in the cmd: python snesrestore.py game_rom.rom game_audio.pcm new_rom.smc
 

AleronIves

Well-Known Member
Member
Joined
Nov 17, 2016
Messages
460
Trophies
0
Age
36
Location
California
XP
2,255
Country
United States
Can you post screenshots or a tutorial or something
I'd like to second this. I also dumped and converted Kirby's Dream Collection with vcromclaim, and I considered buying SNES games on the 3DS eShop, but when I saw posts saying that vcromclaim didn't work with SNES VC games, I decided against it, as I'm not interested in buying SNES games that are locked to my 3DS. I'd totally buy some SNES games if it's possible to convert them for use in regular SNES emulators now.
 

AleronIves

Well-Known Member
Member
Joined
Nov 17, 2016
Messages
460
Trophies
0
Age
36
Location
California
XP
2,255
Country
United States
The method in that video is completely different from the tactics you posted earlier. The video says to just delete the 0x60 byte header, resave the file, and hope it works. Is there a list of which games this works with? He indicates that you can't get regular SNES emulators to play all 3DS VC games this way.
 
  • Like
Reactions: SaulFabre

RichWeb

Active Member
OP
Newcomer
Joined
Aug 26, 2020
Messages
30
Trophies
0
XP
441
Country
United Kingdom
The method in that video is completely different from the tactics you posted earlier. The video says to just delete the 0x60 byte header, resave the file, and hope it works. Is there a list of which games this works with? He indicates that you can't get regular SNES emulators to play all 3DS VC games this way.
The method I discuss in the OP is just following the info in my post and trying to find a way for it to work. I gave up in the end, other projects to sort :)
 
  • Like
Reactions: SaulFabre

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • SylverReZ @ SylverReZ:
    @Sonic Angel Knight, Is that SAK I see. :ninja:
  • BigOnYa @ BigOnYa:
    What a weird game
  • K3Nv2 @ K3Nv2:
    Yeah I wanted to see shards of the titanic
  • BigOnYa @ BigOnYa:
    I kept thinking jaws was gonna come up and attack
  • K3Nv2 @ K3Nv2:
    Jaws is on a diet
  • K3Nv2 @ K3Nv2:
    Damn power went out
  • BigOnYa @ BigOnYa:
    Ok xdqwerty, your little bro prob tripped On the cord and unplugged you
  • K3Nv2 @ K3Nv2:
    Ya I'm afraid of the dark hug me
  • BigOnYa @ BigOnYa:
    Grab and hold close your AncientBoi doll.
  • K3Nv2 @ K3Nv2:
    Damn didn't charge my external battery either
  • BigOnYa @ BigOnYa:
    Take the batteries out of your SuperStabber3000... Or is it gas powered?
  • K3Nv2 @ K3Nv2:
    I stole batteries from your black mamba
    +1
  • K3Nv2 @ K3Nv2:
    My frozen food better hold up for an hour I know that
  • BigOnYa @ BigOnYa:
    Or else gonna be a big lunch and dinner tomorrow.
  • BigOnYa @ BigOnYa:
    Did you pay your power bill? Or give all yo money to my wife, again.
  • K3Nv2 @ K3Nv2:
    Oh good the estimated time is the same exact time they just said
    +1
  • BigOnYa @ BigOnYa:
    Load up your pc and monitor, and head to a McDonalds dining room, they have free WiFi
  • K3Nv2 @ K3Nv2:
    Sir please watch your porn in the bathroom
    +1
  • BigOnYa @ BigOnYa:
    No sir we can not sell you anymore apple pies, after what you did with the last one.
  • K3Nv2 @ K3Nv2:
    We ran out
  • HiradeGirl @ HiradeGirl:
    for your life
    +1
  • K3Nv2 @ K3Nv2:
    My life has no value my fat ass is staying right here
    K3Nv2 @ K3Nv2: My life has no value my fat ass is staying right here