Changes

Jump to navigation Jump to search
1,088 bytes added ,  20:48, 3 September 2021
m
Line 7: Line 7:  
The original emulator builds include support for all these three platforms, not specific to just the included ROM platform. However, releases intended for NES games have a red menu, optional switching between the two controllers, a different X button mapping (B instead of menu), optional [[Download Play]] support, and [http://s27.postimg.org/60v4yuw8z/IMG_20140921_001103.jpg a never used multi-rom support]; while Game Boy versions have a green theme and optional 3D border.
 
The original emulator builds include support for all these three platforms, not specific to just the included ROM platform. However, releases intended for NES games have a red menu, optional switching between the two controllers, a different X button mapping (B instead of menu), optional [[Download Play]] support, and [http://s27.postimg.org/60v4yuw8z/IMG_20140921_001103.jpg a never used multi-rom support]; while Game Boy versions have a green theme and optional 3D border.
   −
Early builds (Ambassador NES games at least) did not support savestates.
+
Early builds (of Ambassador NES games at least) did not support savestates.
    
The emulator officially used for Pokemon games removes savestate support in favor of a Link Cable "implementation" involving hooking the games' network functions according to the patch files. ([https://gbatemp.net/attachments/vc-wireless-link-patch-documentation-txt.72966/ Partial documentation of the patch format])
 
The emulator officially used for Pokemon games removes savestate support in favor of a Link Cable "implementation" involving hooking the games' network functions according to the patch files. ([https://gbatemp.net/attachments/vc-wireless-link-patch-documentation-txt.72966/ Partial documentation of the patch format])
Line 132: Line 132:  
| 0x3D
 
| 0x3D
 
| 0x2
 
| 0x2
| Game preset ID? (varies for each game). Incremental, started with 0x10XX values in old releases, newest ones have 0x11XX (with XX being back to low values).
+
| Preset ID (varies for each game). A full list of know Preset IDs (shared by WiiU/SNESC/Switch SNES emulators) can be found [https://docs.google.com/spreadsheets/d/1PbIPVA4NpFEXs1zk249aR3FSuBTY3r-ajpTq3dP3GnQ here]
 
|-
 
|-
 
| 0x3F
 
| 0x3F
Line 164: Line 164:     
The 0x60 header is followed by the SNES ROM, often altered to replace audio samples with pointers to external PCM audio files converted from the game, presumably to speed up emulation (these pointers can be found by looking for "PCMF" in the ROM, as seen on [https://github.com/Plombo/vcromclaim/blob/master/snesrestore.py Wii VC]).
 
The 0x60 header is followed by the SNES ROM, often altered to replace audio samples with pointers to external PCM audio files converted from the game, presumably to speed up emulation (these pointers can be found by looking for "PCMF" in the ROM, as seen on [https://github.com/Plombo/vcromclaim/blob/master/snesrestore.py Wii VC]).
The ROM is then optionally followed by the PCM audio files, by the SDD-1 decompressed graphics data (presumably the emulator doesn't properly emulate the chip because of hardware constraints) and by a footer which appears to be an index for the PCM audio data.
+
The ROM is then optionally followed by the PCM audio files, by the SDD-1 decompressed graphics data (the emulator doesn't properly emulate the chip, presumably because of hardware constraints) and by a footer which appears to be an index for the PCM audio data.
There are no setting fields for specific cart features, and it appears that the emulator has "game presets" stored in its own code, which determine the cart expansion chip and probably more game-specific settings. Each official VC release has a different preset ID in the header.
+
There are no separate setting fields for individual cart features, and it appears that the emulator has "game presets" stored in its own code, which determine the game-specific settings (such as the expansion chip, and presumably the presence of SRAM), selectable via the preset ID in the header. Each official VC release has [https://docs.google.com/spreadsheets/d/1PbIPVA4NpFEXs1zk249aR3FSuBTY3r-ajpTq3dP3GnQ/edit#gid=490971147 a different preset ID]. The supported SNES expansion chips are: DSP1, C4 and DSP2. 
 +
 
 +
A similar structure can be found on the Wii U, SNES Classic and Switch Mini emulator [https://gist.github.com/anpage/c1085055db0242ea3c7558dab56712a5]
    
==Savedata==
 
==Savedata==
Line 235: Line 237:  
!  SIZE
 
!  SIZE
 
!  DESCRIPTION
 
!  DESCRIPTION
 +
|-
 +
|  0x000
 +
|  0x4
 +
|  Padding
 
|-
 
|-
 
|  0x004
 
|  0x004
Line 242: Line 248:  
| 0x008
 
| 0x008
 
| 0x4
 
| 0x4
| Save type (see below)
+
| Save type (see below for supported values and [[ARM7_Registers#ARM7_SAVE_MODE|here]] for details)
 +
|-
 +
|  0x00C
 +
|  0x2
 +
|  Padding (set to FF FF usually?)
 +
|-
 +
| 0x00E
 +
| 0x2
 +
| Sleep mode button combo (utilizes the same bit masks as the [[HID_Registers#HID_PAD|HID_PAD register]], with flipped bits).<br/>If the GBA title supports a button-combo based sleep mode and it's set here, Agbbg spoofs this combo when closing the 3DS' lid to enter proper sleep mode.
 +
|-
 +
| 0x010
 +
| 0x10
 +
| Flash and EEPROM configuration (see the target registers [[ARM7_Registers|here]])
 
|-
 
|-
 
| 0x020
 
| 0x020
Line 254: Line 272:     
Save types:
 
Save types:
* 0x0: EEPROM 8k
+
* 0x0: EEPROM 8k for < 256 Mbit titles
* 0x1: EEPROM 8k (?)
+
* 0x1: EEPROM 8k for 256 Mbit titles
* 0x2: EEPROM 64k
+
* 0x2: EEPROM 64k for < 256 Mbit titles
* 0x3: EEPROM 64k (?)
+
* 0x3: EEPROM 64k for 256 Mbit titles
 
* 0x4: Flash 512k (Atmel, ID: 0x3D1F) + RTC
 
* 0x4: Flash 512k (Atmel, ID: 0x3D1F) + RTC
 
* 0x5: Flash 512k (Atmel, ID: 0x3D1F)
 
* 0x5: Flash 512k (Atmel, ID: 0x3D1F)
186

edits

Navigation menu