Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Vcromclaim Wii: Difference between revisions

From GameBrew
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox Wii Homebrews
{{Infobox Wii Homebrews
|title=Vcromclaim
|title=Vcromclaim
|image=vcromclaimwii.png
|image=vcromclaimwii02.png
|description=Extract ROMs, manuals, and saves from Wii Virtual Console games in a NAND dump.
|description=Extract ROMs, manuals, and saves from Wii Virtual Console games in a NAND dump.
|author=JanErikGunnar, Plombo
|author=Plombo, JanErikGunnar
|lastupdated=2023/02/05
|lastupdated=2023/02/05
|type=PC Utilities
|type=PC Utilities
Line 12: Line 12:
|source=https://github.com/JanErikGunnar/vcromclaim
|source=https://github.com/JanErikGunnar/vcromclaim
}}
}}
{{#seo:
Vcromclaim is a program originally developed by Plombo that extracts game ROMs from Wii Virtual Console games. It searches an extracted Wii NAND filesystem for the ROMs and extracts them, detecting and decompressing compressed ROMs. It also extracts game manuals and save files for each Virtual Console game.
|title=Wii Homebrew PC Tools (PC Utilities) - GameBrew
|title_mode=append
|image=vcromclaimwii.png
|image_alt=Vcromclaim
}}
 
Vcromclaim is a program that extracts game ROMs from Wii Virtual Console games. It searches an extracted Wii NAND filesystem for the ROMs and extracts them, detecting and decompressing compressed ROMs. It also extracts game manuals and save files for each Virtual Console game.


The program can extract NES/Famicom/Disk System, SNES, PC Engine/TurboGrafx16/TurboGrafx CD, Mega Drive/Genesis, Master System, and Nintendo 64 games, as well as some Neo Geo games, and Space Harrier (Arcade). It automatically extracts built-in manuals and saves for most formats.
The program can extract NES/Famicom/Disk System, SNES, PC Engine/TurboGrafx16/TurboGrafx CD, Mega Drive/Genesis, Master System, and Nintendo 64 games, as well as some Neo Geo games, and Space Harrier (Arcade). It automatically extracts built-in manuals and saves for most formats.
Line 26: Line 19:


==Features==
==Features==
*Extracts virtually all NES/Famicom/Disk System, SNES, PC Engine / TurboGrafx16 / TurboGrafx CD, Mega Drive/Genesis, Master System, and Nintendo 64 games without fail!
* Extracts virtually all NES/Famicom/Disk System, SNES, PC Engine / TurboGrafx16 / TurboGrafx CD, Mega Drive/Genesis, Master System, and Nintendo 64 games without fail!
*Extracts several Neo Geo games, along with the AES/MVS BIOS, so that they are playable in MAME (note - extra steps may be required, see below)
* Extracts several Neo Geo games, including encrypted games, along with the AES/MVS BIOS, so that they are playable in MAME
**NAM-1975
** NAM-1975
**Magician Lord
** Magician Lord
**King of the Monsters
** King of the Monsters
**Spinmaster
** Spinmaster
**Neo Turf Masters
** Neo Turf Masters
**Metal Slug
** Metal Slug
**Real Bout Fatal Fury Special
** Real Bout Fatal Fury Special
**Magical Drop 3
** Magical Drop 3
**Shock Troopers
** Shock Troopers
**Metal Slug 2
** Metal Slug 2
**The King of Fighters '98
** The King of Fighters '98
**The Last Blade 2
** The Last Blade 2
**Shock Troopers 2
** Shock Troopers 2
**Metal Slug X
** Metal Slug X
**...and support for many other Neo Geo games can be added relatively easily. Lots of caveats though - see below!
** Metal Slug 3
*Can extract Space Harrier (Arcade).
** Metal Slug 4
*Automatically extracts the built-in manuals in VC games.
** ...and support for many other Neo Geo games can be added relatively easily. Lots of caveats though - see below.
*Automatically extracts saves for most formats.
* Can extract the arcade games Ghosts'N Goblins and Space Harrier.
*Cross-platform - compatible with Linux, Windows, Mac OS X, and any other platform supported by Python. Some games may require additional libraries to extract.
* Automatically extracts the built-in manuals in VC games.
* Automatically extracts saves for most formats.
* Cross-platform - compatible with Linux, Windows, Mac OS X, and any other platform supported by Python. Some games may require additional libraries to extract.
* If the game/platform you want to extract is missing - please submit a bug to let me know there is demand for it.


==Requirements ==
==User guide==
* [http://python.org Python] 3.x (tested with 3.8.5)
Requirements:
* A NAND dump dumped by [http://bootmii.org BootMii] and extracted by [http://code.google.com/p/showmiiwads ShowMiiWads] or [http://github.com/Plombo/showmiiwads nandextract]
* [http://python.org Python] 3.x (tested with 3.8.5).
* Additional requirements applies for some Neo Geo games, see [[JanErikGunnar/vcromclaim/blob/master/neogeo_readme.txt|neogeo_reame.txt]]
* A NAND dump dumped by [http://bootmii.org BootMii] and extracted by [http://code.google.com/p/showmiiwads ShowMiiWads] or [http://github.com/Plombo/showmiiwads nandextract].
* Additional requirements applies for some Neo Geo games, see [https://github.com/JanErikGunnar/vcromclaim/blob/master/neogeo_readme.txt neogeo_reame.txt].


== Usage ==
The program is run by executing wiimetadata.py:
The program is run by executing wiimetadata.py:
<pre>python wiimetadata.py nand_directory</pre>
<pre>python wiimetadata.py nand_directory</pre>


==Media==
==Media==
'''Extracting N64 ROMs from Official Copies of the Game - Part 2 - Wii Virtual Console - ([https://www.youtube.com/watch?v=y4HMAfRN1No Rylie])'''<br>
'''Extracting N64 ROMs from Official Copies of the Game - Part 2 - Wii Virtual Console ([https://www.youtube.com/watch?v=y4HMAfRN1No Rylie])'''<br>
<youtube>y4HMAfRN1No</youtube>
<youtube>y4HMAfRN1No</youtube>


== Known Issues/Caveats ==
== Known issues==
* ALL SYSTEMS: A lot of games have been modified for VC for various reasons. Same games may simply just behave differently from the original games, some games may not work properly in accurate emulators or on real hardware due. Very often checksums will not be accurate. Known instances:
* ALL SYSTEMS: A lot of games have been modified for VC for various reasons. Same games may simply just behave differently from the original games, some games may not work properly in accurate emulators or on real hardware. Very often checksums will not be accurate. Known instances:
** Removal of flashing graphics:
** Removal of flashing graphics:
*** In Magical Drop 3, Tower character's flashing animation has been removed.
*** In Magical Drop 3, Tower character's flashing animation has been removed.
Line 70: Line 66:
** Shadow of the Ninja (NES) - 2 bytes are different, causing the intro to glitch and freeze in accurate emulators.
** Shadow of the Ninja (NES) - 2 bytes are different, causing the intro to glitch and freeze in accurate emulators.
** Content changes:
** Content changes:
*** &quot;Ogra Battle 64&quot;: &quot;JIHAD&quot; was renamed &quot;LASER&quot; for obvious reasons
*** Ogre Battle 64: &quot;JIHAD&quot; was renamed &quot;LASER&quot; for obvious reasons
* TURBOGRAFX CD: CD audio is extracted in the wrong speed, because the quality is higher than required (48 kZz in 44.1kHz). Music in all games will play too slow in Mednafen, and a few games (like Super Air Zonk) are completely broken. Manually reencodeing the OGG files to 44.1kHz WAVE with e.g. Audacity everything play correctly.
* TURBOGRAFX CD: CD audio is extracted in the wrong speed, because the quality is higher than required (48 kHz instead of 44.1kHz). Music in all games will play too slow in Mednafen, and a few games (like Super Air Zonk) are completely broken. Manually reencodeing the OGG files to 44.1kHz WAVE with e.g. Audacity should fix all this.
 
* COMMODORE 64 games and most ARCADE games cannot be extracted at this time.
* COMMODORE 64 games and most ARCADE games cannot be extracted at this time.
* NEO GEO: Because of the way Neo Geo ROMs are made, part of the extraction process has to be hardcoded separately for each game. If your game is not supported, it might be trivial to expand neogeo_convert.py to include support for your game.
 
* NEO GEO: Many Neo Geo games are encrypted on VC. These can be decrypted, but requires a lot of advanced extra manual steps. See [[JanErikGunnar/vcromclaim/blob/master/neogeo_readme.txt|neogeo_reame.txt]]
* NEO GEO: Because of the way Neo Geo ROMs are made, part of the extraction process has to be hardcoded separately for each game. If your game is not supported, it might be trivial to expand neogeo_convert.py to include support for your game - please create a bug and I can try to implement it.
* NEO GEO: Games that had encryption on the original hardware, like Metal Slug 3 and Metal Slug 4, cannot currently be exported correctly. This is because MAME expects the original, encrypted ROMs while the VC ROMs come decrypted. (Not the same encryption as the previous point.) To solve we must apply encryption to the extracted ROMs.
 
* NEO GEO: NG games play differently depending on if they are ran on an MVS (arcade machine) or an AES (home console.) They also change content depending on the region of the hardware. This is all determined by the emulator (e.g. MAME) and the system ROM. The Wii NG games comes bundled with the main system ROM. Some games comes with an AES system ROM, other comes with an MVS system ROM. All games comes with a japanese system ROM. The ROM is patched to make the game think it's an american or european system, and the MVS ROM is patched so that the game thinks it is an AES system.
* NEO GEO: For AES encrypted games, you will need to install PyCryptodome (or PyCrypto). Install it by typing in terminal: pip install pycryptodome
** If you want the game to run in English and have the same experience as on a US/EU Wii, use &quot;XXX-patched-to-us-XXX&quot; or &quot;XXX-patched-to-eu-XXX&quot;.
 
** If you want the game to give an arcade experience (&quot;insert coin&quot; etc) use &quot;jp-mvs&quot; or &quot;XXX-patched-to-XX-mvs&quot; ROMs.
* NEO GEO: About the system ROMs... NEO GEO games always require a set of them. Either the MVS (arcade) or AES (home) ROMs, each available in many different versions, and regional variations (jap/us/eu). Depending on what ROM is used, the game will automatically display different language, and different content. The MVS ROM will enable system menu, some generic &quot;how to play&quot; screens, &quot;winners don't do drugs&quot;, etc. The AES ROMs are lighter and does not provide any of that. Also games ran with MVS ROMs will typically show &quot;insert coin&quot;, but not when ran with AES ROMs. The Wii games comes bundled with weird system ROMs. Some games randomly comes shippd with MVS ROMs, others with AES ROMs. All are shipped with the Japanese ROMs. The system ROMs contain a few flags that tell the game what region/system it is in. Annoyingly, instead of shipping the correct system ROMs, all of them are instead patched to tell the game it is e.g. US AES. Also the MVS ROM sets are incomplete. They are missing the SFIX ROM, which contains all of the graphics used in system menu and how-to-play screens. (To allow the games to run, this tool creates a dummy SFIX file, but system menu etc is basically unusable.) This tool will extract whatever ROM was included. It will export an original version that is as close to original as possible, AND it will also create a number of different patches to simulate different Wii behaviours. You may have to experiment and try different ROM versions, to get the experience you want. Some combinations of games+system ROM may not work, or have audio problems.
** If you want the game to give a home console experience (insert coin etc) use &quot;jp-aes&quot; or &quot;XXX-patched-to-XX-aes&quot; ROMs.
** If you want to have an US/EU Wii-like experience, use &quot;XXX-patched-to-aes-us&quot; or &quot;XXX-patched-to-aes-eu&quot;
** If you want to be able to set DIP switches, or to be able to access the sytem menu, use &quot;jp-mvs&quot; or &quot;jp-mvs-patched-to-XX-mvs&quot; ROMs.
** If you want ARCADE-like experience, use &quot;jp-mvs&quot; or &quot;XXX-patched-to-mvs-XX&quot;
** If you want to have an experience as accurate as possible, use the &quot;jp-mvs&quot; or &quot;jp-aes&quot;.
** If you want the game to give a HOME CONSOLE experience, use &quot;aes-jp&quot; or &quot;XXX-patched-to-aes-XX&quot;
** As of now, there are audio issues, and the system menu is completely black (because SFIX is empty), if using an &quot;XX-mvs&quot;, &quot;XX-mvs-patched-to-XXX&quot; or &quot;XXX-patched-to-XX-mvs&quot;.
** If you want to have an experience as ACCURATE as possible, use the &quot;mvs-jp&quot; or &quot;aes-jp&quot;
** The system ROMs are not bound to a game, so you can use system ROMs exported from one game to any other NG game.
** If you want the game to be in ENGLISH, use &quot;XXX-patched-to-XX-us&quot; or &quot;XXX-patched-to-XX-eu&quot;
** If you want the game to be in JAPANESE, use &quot;mvs-jp&quot;, &quot;aes-jp&quot; or &quot;XXX-patched-to-XX-jp&quot;


== Credits ==
== Credits ==
* [https://github.com/Plombo Bryan Cain] - author of vcromclaim
* [https://github.com/Plombo Bryan Cain] - author of vcromclaim.
* [https://github.com/JanErikGunnar JanErikGunnar] - added extraction of Famicom FDS, TurboGrafx CD, Neo Geo and Space Harrier.
* [https://github.com/JanErikGunnar JanErikGunnar] - added extraction of Famicom FDS, TurboGrafx CD, Neo Geo and arcade games.
* [https://github.com/euan-forrester Euan Forrester] - TurboGrafx save file exporting
* [https://github.com/euan-forrester Euan Forrester] - TurboGrafx save file exporting.
* [http://hcs64.com hcs] - author of C decompression code for Huf8, LZH8, and romchu, all of which I (Bryan) ported to Python for vcromextract.
* [http://hcs64.com/ hcs] - author of C decompression code for Huf8, LZH8, and romchu, all of which I (Bryan) ported to Python for vcromextract.
* [http://marcansoft.com/blog Hector Martin (marcan)] - original author of the Python LZ77 decompression code, which I (Plombo) heavily modified and expanded for vcromextract.
* [http://marcansoft.com/blog Hector Martin (marcan)] - original author of the Python LZ77 decompression code, which I (Plombo) heavily modified and expanded for vcromextract.
* [https://github.com/sepalani/librso/blob/master/rvl/rso.py sepalani] - author of librso, with some reverse engineering done for RSO file format
* [https://github.com/sepalani/librso/blob/master/rvl/rso.py sepalani] - author of librso, with some reverse engineering done for RSO file format.
* [http://www.romhacking.net/community/1067 Bregalad] - author of BRRTools, a Java program on which the BRR encoder in vcromclaim was based.
* [http://www.romhacking.net/community/1067 Bregalad] - author of BRRTools, a Java program on which the BRR encoder in vcromclaim was based.
* qwikrazor87 - author of PCE CD Tools, of which the TG CD data decompression was based.
* qwikrazor87 - author of PCE CD Tools, of which the TG CD data decompression was based.
* [http://www.yaronet.com/topics/185388-ngfx-neogeoneogeocd-graphicseditor blastar] - author of NGFX, a very good Neo Geo graphics editor that was useful in creating the open SFIX substitute.
* [http://www.yaronet.com/topics/185388-ngfx-neogeoneogeocd-graphicseditor blastar] - author of NGFX, a very good Neo Geo graphics editor that was useful in creating the open SFIX substitute.
* [https://pastebin.com/hcRjjTWg ZOINKITY] - author of N64.py, containing the cart CRC code
* [https://pastebin.com/hcRjjTWg ZOINKITY] - author of N64.py, containing the cart CRC code.
* [https://wiki.neogeodev.org The Neo Geo Development Wiki] - very useful for extracting Neo Geo roms
* [https://wiki.neogeodev.org/ The Neo Geo Development Wiki] - very useful for extracting Neo Geo roms.
* [https://www.mamedev.org/ MAME] - the source code was very useful in extracting arcade and Neo Geo roms
* [https://www.mamedev.org/ MAME] - the source code was very useful in extracting arcade and Neo Geo roms.
* [https://mh-nexus.de/en/hxd/ HxD] - great, free hex editor
* [https://mh-nexus.de/en/hxd/ HxD] - great, free hex editor.
* [https://wiibrew.org WiiBrew] - invaluable for any Wii development
* [https://wiibrew.org/ WiiBrew] - invaluable for any Wii development.


==External Links==
==External links==
* Github (JanErikGunnar) - https://github.com/JanErikGunnar/vcromclaim
* GitHub (JanErikGunnar) - https://github.com/JanErikGunnar/vcromclaim
* Github (Plombo) - https://github.com/Plombo/vcromclaim
* GitHub (Plombo) - https://github.com/Plombo/vcromclaim
* Gbatemp - https://gbatemp.net/threads/vcromclaim-extracts-roms-and-manuals-from-nand-dumps.276517/
* GBAtemp - https://gbatemp.net/threads/vcromclaim-extracts-roms-and-manuals-from-nand-dumps.276517/

Latest revision as of 12:01, 29 Ocak 2024

Vcromclaim
Vcromclaimwii02.png
General
AuthorPlombo, JanErikGunnar
TypePC Utilities
Version2023
LicenseMixed
Last Updated2023/02/05
Links
Download
Website
Source

Vcromclaim is a program originally developed by Plombo that extracts game ROMs from Wii Virtual Console games. It searches an extracted Wii NAND filesystem for the ROMs and extracts them, detecting and decompressing compressed ROMs. It also extracts game manuals and save files for each Virtual Console game.

The program can extract NES/Famicom/Disk System, SNES, PC Engine/TurboGrafx16/TurboGrafx CD, Mega Drive/Genesis, Master System, and Nintendo 64 games, as well as some Neo Geo games, and Space Harrier (Arcade). It automatically extracts built-in manuals and saves for most formats.

Vcromclaim is cross-platform and compatible with Linux, Windows, Mac OS X, and other platforms supported by Python, but some games may require additional libraries to extract.

Features

  • Extracts virtually all NES/Famicom/Disk System, SNES, PC Engine / TurboGrafx16 / TurboGrafx CD, Mega Drive/Genesis, Master System, and Nintendo 64 games without fail!
  • Extracts several Neo Geo games, including encrypted games, along with the AES/MVS BIOS, so that they are playable in MAME
    • NAM-1975
    • Magician Lord
    • King of the Monsters
    • Spinmaster
    • Neo Turf Masters
    • Metal Slug
    • Real Bout Fatal Fury Special
    • Magical Drop 3
    • Shock Troopers
    • Metal Slug 2
    • The King of Fighters '98
    • The Last Blade 2
    • Shock Troopers 2
    • Metal Slug X
    • Metal Slug 3
    • Metal Slug 4
    • ...and support for many other Neo Geo games can be added relatively easily. Lots of caveats though - see below.
  • Can extract the arcade games Ghosts'N Goblins and Space Harrier.
  • Automatically extracts the built-in manuals in VC games.
  • Automatically extracts saves for most formats.
  • Cross-platform - compatible with Linux, Windows, Mac OS X, and any other platform supported by Python. Some games may require additional libraries to extract.
  • If the game/platform you want to extract is missing - please submit a bug to let me know there is demand for it.

User guide

Requirements:

The program is run by executing wiimetadata.py:

python wiimetadata.py nand_directory

Media

Extracting N64 ROMs from Official Copies of the Game - Part 2 - Wii Virtual Console (Rylie)

Known issues

  • ALL SYSTEMS: A lot of games have been modified for VC for various reasons. Same games may simply just behave differently from the original games, some games may not work properly in accurate emulators or on real hardware. Very often checksums will not be accurate. Known instances:
    • Removal of flashing graphics:
      • In Magical Drop 3, Tower character's flashing animation has been removed.
    • FDS games have been customized to let the VC emulator automatically switch disk side. You might get strange behaviour when the game normally would ask you to change the disk. Depending on emulator, just changing disk may work as usual.
      • Bio Miracle Bokutte Upa: Flashing "wait" screen
      • Zelda no Densetsu: "Press start" is shown, nothing happens if you do
    • Shadow of the Ninja (NES) - 2 bytes are different, causing the intro to glitch and freeze in accurate emulators.
    • Content changes:
      • Ogre Battle 64: "JIHAD" was renamed "LASER" for obvious reasons
  • TURBOGRAFX CD: CD audio is extracted in the wrong speed, because the quality is higher than required (48 kHz instead of 44.1kHz). Music in all games will play too slow in Mednafen, and a few games (like Super Air Zonk) are completely broken. Manually reencodeing the OGG files to 44.1kHz WAVE with e.g. Audacity should fix all this.
  • COMMODORE 64 games and most ARCADE games cannot be extracted at this time.
  • NEO GEO: Because of the way Neo Geo ROMs are made, part of the extraction process has to be hardcoded separately for each game. If your game is not supported, it might be trivial to expand neogeo_convert.py to include support for your game - please create a bug and I can try to implement it.
  • NEO GEO: For AES encrypted games, you will need to install PyCryptodome (or PyCrypto). Install it by typing in terminal: pip install pycryptodome
  • NEO GEO: About the system ROMs... NEO GEO games always require a set of them. Either the MVS (arcade) or AES (home) ROMs, each available in many different versions, and regional variations (jap/us/eu). Depending on what ROM is used, the game will automatically display different language, and different content. The MVS ROM will enable system menu, some generic "how to play" screens, "winners don't do drugs", etc. The AES ROMs are lighter and does not provide any of that. Also games ran with MVS ROMs will typically show "insert coin", but not when ran with AES ROMs. The Wii games comes bundled with weird system ROMs. Some games randomly comes shippd with MVS ROMs, others with AES ROMs. All are shipped with the Japanese ROMs. The system ROMs contain a few flags that tell the game what region/system it is in. Annoyingly, instead of shipping the correct system ROMs, all of them are instead patched to tell the game it is e.g. US AES. Also the MVS ROM sets are incomplete. They are missing the SFIX ROM, which contains all of the graphics used in system menu and how-to-play screens. (To allow the games to run, this tool creates a dummy SFIX file, but system menu etc is basically unusable.) This tool will extract whatever ROM was included. It will export an original version that is as close to original as possible, AND it will also create a number of different patches to simulate different Wii behaviours. You may have to experiment and try different ROM versions, to get the experience you want. Some combinations of games+system ROM may not work, or have audio problems.
    • If you want to have an US/EU Wii-like experience, use "XXX-patched-to-aes-us" or "XXX-patched-to-aes-eu"
    • If you want ARCADE-like experience, use "jp-mvs" or "XXX-patched-to-mvs-XX"
    • If you want the game to give a HOME CONSOLE experience, use "aes-jp" or "XXX-patched-to-aes-XX"
    • If you want to have an experience as ACCURATE as possible, use the "mvs-jp" or "aes-jp"
    • If you want the game to be in ENGLISH, use "XXX-patched-to-XX-us" or "XXX-patched-to-XX-eu"
    • If you want the game to be in JAPANESE, use "mvs-jp", "aes-jp" or "XXX-patched-to-XX-jp"

Credits

  • Bryan Cain - author of vcromclaim.
  • JanErikGunnar - added extraction of Famicom FDS, TurboGrafx CD, Neo Geo and arcade games.
  • Euan Forrester - TurboGrafx save file exporting.
  • hcs - author of C decompression code for Huf8, LZH8, and romchu, all of which I (Bryan) ported to Python for vcromextract.
  • Hector Martin (marcan) - original author of the Python LZ77 decompression code, which I (Plombo) heavily modified and expanded for vcromextract.
  • sepalani - author of librso, with some reverse engineering done for RSO file format.
  • Bregalad - author of BRRTools, a Java program on which the BRR encoder in vcromclaim was based.
  • qwikrazor87 - author of PCE CD Tools, of which the TG CD data decompression was based.
  • blastar - author of NGFX, a very good Neo Geo graphics editor that was useful in creating the open SFIX substitute.
  • ZOINKITY - author of N64.py, containing the cart CRC code.
  • The Neo Geo Development Wiki - very useful for extracting Neo Geo roms.
  • MAME - the source code was very useful in extracting arcade and Neo Geo roms.
  • HxD - great, free hex editor.
  • WiiBrew - invaluable for any Wii development.

External links

Advertising: