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

FriishProduce Wii

From GameBrew
Revision as of 02:14, 3 Mayıs 2023 by HydeWing (talk | contribs)
FriishProduce
Friishproducewii.png
General
AuthorCatmanFan
TypePC Utilities
Version0.11-beta
LicenseGPL-3.0
Last Updated2023/05/02
Links
Download
Website
Source

FriishProduce is a tool that injects WADs into Wii/vWii to replace ROMs and SWFs in Wii channels. Its purpose is to simplify the process and minimize the use of third-party programs. What sets it apart from other injectors is its ability to handle many steps directly from its code, bypassing the need for external assets and applications like Wii Common Key and HowardC's tools.

Features

Here are a few instances of its features:

  • WAD/U8 handling using libWiiSharp
  • VC ROM injection through hex writing and/or file replacement - bye-bye AutoInjectuwad
  • Automatic banner/icon editing using VCBrlyt
  • Generates custom savedata image using original WAD's source TPL/WTE(s) - good riddance VCIconGen
  • Automatically edits savedata text where available using hex writing - Sayonara VCSaveInject
  • Additional content/emulator options for each platform where supported

Usage

Make sure you have a (v)Wii NAND backup in case anything goes wrong!

Requirements

For this application and its third-party components to work correctly, you must need the following minimum requirements:

  • OS: Windows 7 or newer
  • Redistributables:
    • .NET Framework 2.0 (needed for libWiiSharp)
    • .NET Framework 4.7.2 and Microsoft Visual C++ Redistributable for Visual Studio 2019 (needed for ccf-tools)
  • Required by HowardC Tools:
    • ActiveX Control Pad
      • Setup: run in Windows XP (SP3) compatibility mode
    • comdlg32.ocx, comctl32.ocx and mscomctl.ocx
      • Download these files, then register them using regsvr32.

Additionally, you will also need to supply WAD files that can be stored within the applications's bases folder. Once you have installed the relevant frameworks and components listed, open FriishProduce and select a platform. On the next page, click the "+" button and search for a WAD. If it is supported by the current version of the database (check Injection > Supported bases for what is currently available), then the WAD file will be copied to the bases folder.

Note that some antivirus programs may detect this application as a false-positive (among them, Microsoft Defender may prompt to auto-scan it before opening). See here for a full list of security vendors' analysis.

Injection

Platforms

Currently supported:

  • Nintendo Entertainment System (NES) / Famicom (Virtual Console)
  • Super Nintendo Entertainment System (SNES) / Super Famicom (Virtual Console)
  • Nintendo 64 (Virtual Console)
  • Shockwave/Adobe Flash

Supported bases

Due to variance between emulator revisions used in original titles, this application only supports certain selected bases. On PAL Wii systems, bases which only support 50Hz may not run at the same frame rate and/or may be region-locked to support only PAL ROMs.

The following channels are allowed as of the current release:

NES:

  • Kirby's Adventure (USA; EUR; JPN; KOR) - ROM CHR size: 32 x ​8 KB; ROM PRG size: 32 x 16 KB
  • Ninja Gaiden (EUR/PAL60) - ROM CHR size: 16 x ​8 KB; ROM PRG size: 8 x 16 KB
  • Super Mario Bros. 3 (USA; EUR; JPN; KOR) - ROM CHR size: 16 x ​8 KB; ROM PRG size: 16 x 16 KB

Your ROM size must not exceed the total of the base ROM embedded within the WAD.

SNES:

  • Donkey Kong Country 2/Super Donkey Kong 2 (USA; EUR; JPN; KOR) - original ROM size: 4 MB
  • Mario's Super Picross (EUR/PAL60) - original ROM size: 1 MB; can support ROMs at least 4 MB

N64:

  • Bomberman Hero (USA; EUR)
  • Custom Robo V2 (JPN) - dark filter by default
  • Mario Golf (USA; EUR)
  • Mario Kart 64 (USA; EUR; JPN; KOR)
  • Ogre Battle 64: Person of Lordly Caliber (USA; EUR/PAL60)
  • Sin and Punishment (USA; EUR/PAL60; JPN)
  • Star Fox 64/Lylat Wars (USA; EUR) - dark filter by default
  • Super Mario 64 (USA; EUR)
  • The Legend of Zelda: Ocarina of Time (USA; EUR; JPN)

Your ROM size must not exceed the total of the base ROM embedded within the WAD.

Adobe Flash:

  • Flash Placeholder (USA; EUR) / Back to Nature (EUR)

If you are using the Flash Placeholder, search for it at the MarioCube website > WADs > Flash Injects, then download the WAD corresponding to your Wii's region. Check Creating a WAD section.

How To

NES/Famicom

Coming soon.

SNES/Super Famicom

Most WADs store the ROM directly within the WAD, although some others, such as Super Mario RPG, use a compressed format such as LZSS/LZ77 for the ROM file. In these cases, an application to compress the ROM needs to be provided (gbalzss or WWCXTool for example).

Any games using the Super FX chip (view list) will not work when injected into the official SNES VC emulator. This includes the following titles:

  • Dirt Racer
  • Dirt Trax FX
  • Doom
  • Star Fox/Starwing
  • Star Fox 2 (unreleased)
  • Stunt Race FX/Wild Trax
  • Super Mario World 2: Yoshi's Island
  • Vortex
  • Winter Gold
Nintendo 64

In the case of Nintendo 64 VC, most titles released on Wii appear to use game-specific emulators tailored for compatibility. As such, they tend to have varying results when replacing the original ROM files. Additionally, general compatibility with other ROMs is poor (particularly Rareware games), with most simply crashing when the ROM is loaded, and others usually having audiovisual issues or random glitches.

The ROM will be byteswapped via UCON64 to .z64 format first, to avoid any problems that may be encountered otherwise, and is moved to the location of the emulator ROM within the WAD (usually simply named "rom"), overwriting it.

Savedata is only generated if the ROM uses a cartridge saving method (EEPROM (4K or 16K) / SRAM / FlashRAM) which matches that of the base WAD. Likewise, Controller Pak support is missing by default.

If you are using this injection method, you can additionally set some options used by the emulator:

  • Fix brightness: Removes any function which enables a dark/epilepsy filter.
  • Extended RAM (8MB): Enables Expansion Pak emulation where it is supported.
  • Allocate 32MB for ROM: Will not work for all bases, and throws an error if the byte pattern to set it is not found.

If your injected ROM encounters a region-lock error, try again using a different region revision for the ROM.

ROMC

The following rereleases use a special form of ROM compression, known as "ROMC":

  • Mario Golf
  • Bomberman Hero
  • The Legend of Zelda: Majora's Mask

For these titles, a third-party ROMC compressor program is used to compress the original ROM. The emulator ROM, within the WAD, is stored as "romc" (not "rom") within the contents of the base WAD.

SMS & GEN/MD

Coming soon.

Creating a WAD

In certain cases, when selecting a ROM, you have the option to choose a patch file (.ips/.bps) as well. To apply a patch file to the ROM during injection, you need to check the "Patch" checkbox located under the "Open ROM" button. This will open a browse file dialog where you can locate your desired patch file.

If you want to create a customized banner, you need to enable the "Customize" checkbox and fill in the relevant text fields. Additionally, you may choose an image, preferably the title screen of the software. The title screen image can usually be obtained from TCRF.net, the LibRetro database, or Romhacking.net for most ROMs.

On the content options page, you also have the option to make your generated channel region-free. This ensures that the channel can be launched from the Wii Menu on any console, regardless of its region, without any issues. For instance, it resolves the message "This channel cannot be used".

Screenshots

Friishproducewii.png

Changelog

v0.11-beta

  • Added
    • New language: Korean (credits to DDinghoya)
  • Other changes
    • Removed "injection done" message prompt as it occassionally caused the application to stop responding even after a WAD has been generated. A simple "ding" sound is now played instead.
    • Updated database.json
      • Add support for certain Japanese/Korean versions of existing WADs
  • Fixes
    • Issues affecting compatibility with Japanese/Korean WADs
      • Fixed method of NES savedata title generation in non-Latin writing systems
      • Fixed Opera.arc manual file deletion causing Korean NES title(s) to fail
    • Language selection may not work correctly if list is not alphabetically ordered
    • Changed bitmap generation of TPL savedata to using new bitmap instead of loading from the original imagefile directly.
    • General system stability improvements to enhance the user's experience

v0.10-beta

  • Added
    • New platform: Shockwave/Adobe Flash
      • Content options:
        • Enable "Unsaved data" message in HOME Menu
        • Change SWF update rate (FPS?)
        • Enable save data; change total savedata size in KB
        • Strap reminder setting
        • Controller mapping to keyboard values
      • Custom VC-style icon generator for Flash
    • Light theme
    • Ahora en Español
  • Other changes
    • Updated interface
    • Switched database format to JSON.
    • Updated language strings handling to JSON format based off of Eldemarkki's SimpleTranslationSystem.
      • This means that anyone can now provide their own translations of the application without having to deal with .resx files.
    • Supplying a title screen image is now optional. This can be useful for certain ROM hacks such as randomizers, cheatcode patches, ..
      • You can now right/middle click to remove your image if one was already selected.
    • Optimized "retain aspect ratio" function for saveicon image
  • Fixes
    • Incorrect Ninja Gaiden (EUR) title ID in database
    • NES palettes not working correctly
    • Saveicon image may fail on non-Flash platforms due to indexed format
    • General system stability improvements to enhance the user's experience

v0.0.2.0-alpha

  • Added
    • Banner/icon/saveicon customization
    • New bases supported
      • NES: Ninja Gaiden (EUR)
      • N64: Custom Robo V2 (JPN), Mario Kart 64 (USA)
    • N64 content options
      • Fix brightness (removes dark/epilepsy filter in some bases)
      • 8MB extended RAM
      • Allocate 32MB to ROM (not supported in some bases)
    • More NES palettes!
  • Other changes
    • French translation updated
    • "System Default" added to language settings
    • Application icon
    • Some bugfixes & under-the-hood failsafes added
      • Fixed exception when deleting WAD from bases list
    • Removed HBC transmitter

v0.0.1.0-alpha

  • Pre-release alpha build, only includes NES, SNES and N64 injection (rom/romc). No banner customization, and there are still a lot of additional missing features and stuff that needs to be fixed.

Credits

This program uses the following third-party components and apps:

  • libWiiSharp (orig. author: Leathl), forked by WiiDatabase.
  • Floating IPS (Flips) by Alcaro.
  • ccf-tools (orig. author: paulguy) and BrawlLib (orig. author: soopercool101), both forked by libertyernie.
  • ROMC compressor by Jurai, with additional LZSS code by Haruhiko Okumura.
  • gbalzss by Andre Perrot, with additional LZSS code by Haruhiko Okumura.
  • WWCXTool by alpha-0.
  • HowardC's Tools (particularly, VCbrlyt).

I would also like to thank the following people:

  • SuperrSonic for reverse-engineering much of Wii software and official emulator code, and in particular, his RA-Hexaeco Wii.
  • SaulFabre for archiving several tools and aiding in research & documentation.
  • Larsenv for his astounding work in the Wii homebrew community, and for originally disclosing a method for Flash WAD injection (GBAtemp thread).
  • And of course, the team at the 0RANGECHiCKEN release group, including lolsjoel, and the late G0dLiKe, without whose work this project would not have been possible.

This application is distributed and licensed under the GNU General Public License v3.0 (view in full).

External Links

Advertising: