Difference between revisions of "3DS Virtual Console"

From 3dbrew
Jump to navigation Jump to search
(→‎GBA VC: added footer info)
Line 19: Line 19:
  
 
=GBA VC=
 
=GBA VC=
GBA VC is run by [[FIRM|AGB_FIRM]]. RomFS isn't used for GBA VC titles. The NCCH [[ExeFS]] contains the same files as a normal application. The [[ExeFS]]:/.code contains the GBA VC ROM.
+
GBA VC is run by [[FIRM|AGB_FIRM]]. RomFS isn't used for GBA VC titles, but can be found empty within GBA VC titles. The NCCH [[ExeFS]] contains the same files as a normal application. The [[ExeFS]]:/.code contains the GBA VC ROM followed by a 0x360 footer.
 +
 
 +
===Footer===
 +
All values in the GBA VC Footer are Little Endian.
 +
{| class="wikitable" border="1"
 +
|-
 +
!  START
 +
!  SIZE
 +
!  DESCRIPTION
 +
|-
 +
|  0x004
 +
|  0x4
 +
|  GBA ROM Filesize
 +
|-
 +
| 0x008
 +
| 0x2
 +
| Unknown
 +
|-
 +
| 0x02A
 +
| 0x2FA
 +
| Unknown
 +
|-
 +
| 0x338
 +
| 0x4
 +
| GBA ROM Filesize
 +
|-
 +
| 0x344
 +
| 0x4
 +
| GBA ROM Filesize
 +
|-
 +
| 0x35A
 +
| 0x2
 +
| GBA ROM Filesize per MB
 +
|}

Revision as of 04:34, 2 June 2015

There's two types of VC titles: regular VC titles, and dedicated GBA VC titles.

Regular VC

Regular VC titles: an emulator application + VC ROM in the NCCH RomFS(among other things in the RomFS). The emulator build includes support for all supported VC platforms, not specific to just the included ROM platform.

This emulator includes GBA support, however the GBA emulation for this this is somewhat slow. This was presumably implemented before AGB_FIRM was.

Unlike Wii VC, the 3DS VC ROMs for NES use the "TNES" header.

RomFS

  • "rom:/rom/" This directory contains the ROM file(s). Filenames used under here don't matter: the filename is determined by the emulator app by doing a directory read.
  • "rom:/shaders/" This directory contains GPU shaders used by the emulator app: .shbin, .csdr, and .obj.
  • "rom:/VCM/" This directory contains graphics, audio, and text used by the emulator app.
  • "rom:/agb.bin" GBA BIOS.
  • "rom:/buildtime.txt" Emulator app build timestamp.
  • "rom:/config.ini" Emulator configuration .ini, contains sections for all supported 3DS VC platforms.
  • "rom:/<rom_name>.patch" rom_name = filename from the rom directory. This .ini contains patches for the ROM.
  • "rom:/shader.shbin" GPU shader.

GBA VC

GBA VC is run by AGB_FIRM. RomFS isn't used for GBA VC titles, but can be found empty within GBA VC titles. The NCCH ExeFS contains the same files as a normal application. The ExeFS:/.code contains the GBA VC ROM followed by a 0x360 footer.

Footer

All values in the GBA VC Footer are Little Endian.

START SIZE DESCRIPTION
0x004 0x4 GBA ROM Filesize
0x008 0x2 Unknown
0x02A 0x2FA Unknown
0x338 0x4 GBA ROM Filesize
0x344 0x4 GBA ROM Filesize
0x35A 0x2 GBA ROM Filesize per MB