FriishProduce Wii: Difference between revisions

From GameBrew
(Created page with "{{Infobox Wii Homebrews |title=FriishProduce |image=friishproducewii.png |description=Wii/vWii VC WAD injector. |author=CatmanFan |lastupdated=2023/05/02 |type=PC Utilities |version=0.11-beta |license=GPL-3.0 |download=https://dlhb.gamebrew.org/wiihomebrews/friishproducewii.7z |website=https://gbatemp.net/threads/friishproduce-multiplatform-wad-injector.632028/ |source=https://github.com/CatmanFan/FriishProduce }} {{#seo: |title=Wii Homebrew Apps (PC Utilities) - GameBre...")
 
 
(12 intermediate revisions by 2 users not shown)
Line 4: Line 4:
|description=Wii/vWii VC WAD injector.
|description=Wii/vWii VC WAD injector.
|author=CatmanFan
|author=CatmanFan
|lastupdated=2023/05/02
|lastupdated=2024/06/03
|type=PC Utilities
|type=PC Utilities
|version=0.11-beta
|version=1.2
|license=GPL-3.0
|license=GPL-3.0
|download=https://dlhb.gamebrew.org/wiihomebrews/friishproducewii.7z
|download=https://dlhb.gamebrew.org/wiihomebrews/friishproducewii.7z
Line 18: Line 18:
|image_alt=FriishProduce
|image_alt=FriishProduce
}}
}}
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.  
FriishProduce is a WAD injector for Wii/vWii, which allows for automated ROM replacement in Wii channels. This application is designed to streamline the process to as few third-party programs as possible.


==Features==
This injector bypasses other third-party assets (such as Common-Key.bin, most of HowardC's tools, and Autoinjectuwad/Devilken's VC) by handling many steps directly from the program's code. Some examples include:
Here are a few instances of its features:
* WAD/U8 handling using libWiiSharp.
* WAD/U8 handling using libWiiSharp
* VC ROM injection through hex writing and/or file replacement - bye-bye AutoInjectuwad.
* VC ROM injection through hex writing and/or file replacement - bye-bye AutoInjectuwad
* Automatic banner/icon editing using VCBrlyt.
* Automatic banner/icon editing using VCBrlyt
* Generates custom savedata image using original WAD's source TPL/WTE(s) - good riddance VCIconGen.
* 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.
* Automatically edits savedata text where available using hex writing - Sayonara VCSaveInject
* Additional content/emulator options for each platform where supported.
* Additional content/emulator options for each platform where supported
* Replace WAD contents with forwarder to auto-load specific emulator core and ROM.


==Usage==
==User guide==
'''Make sure you have a (v)Wii NAND backup in case anything goes wrong!'''
===Supported systems===
* Virtual Console:
** Nintendo Entertainment System (NES) / Famicom
** Super Nintendo Entertainment System (SNES) / Super Famicom
** Nintendo 64
** Sega Master System
** Sega Mega Drive/Genesis
** NEC PC Engine/TurboGrafx-16
** SNK NEO-GEO AES
** Microsoft MSX/MSX2 (Japan only)
* Emulator forwarders:
** [[FCE_Ultra_GX_Wii|FCE Ultra GX]] | [https://github.com/dborth/fceugx GitHub] (dborth et al.)
** [[FCE_Ultra_RX_Wii|FCE Ultra RX]] | [https://github.com/niuus/FCEUltraRX GitHub] (NiuuS et al.)
** [https://gbatemp.net/threads/fceugx-1up.558023/ FCEUX TX / FCEUGX-1UP] (Tanooki16)
** [[Snes9x_GX_Wii|Snes9x GX]] | [https://github.com/dborth/snes9xgx GitHub] (dborth et al.)
** [[Snes9x_RX_Wii|Snes9x RX]] | [https://github.com/niuus/Snes9xRX GitHub] (NiuuS et al.)
** [[Snes9x_TX_Wii|Snes9x TX]] | [https://gbatemp.net/threads/snes9xgx-mushroom.558500/ GBAtemp thread] (Tanooki16)
** [https://github.com/saulfabregwiivc/Wii64/tree/wii64-wiiflow Wii64 1.3 MOD] forked by saulfabreg (original author: Wii64 Team)
** [[Not64_Wii|Not64]] | [https://github.com/extremscorner/not64 GitHub] (Extrems)
** [https://github.com/FIX94/mupen64gc-fix94 Mupen64GC-FIX94] (Wii64 Team, forked by FIX94)
** [[Genesis_Plus_GX_Wii|Genesis Plus GX]] | [https://github.com/ekeeke/Genesis-Plus-GX GitHub] (eke-eke et al.)
** [[WiiSX]] | [https://github.com/emukidid/pcsxgc GitHub] (Wii64 Team)
** [https://github.com/xjsxjs197/WiiSXRX_2022 WiiStation / WiiSXRX_2022] (xjsxjs197, forked from [[WiiSXRX|NiuuS' WiiSX RX]])
* Other:
** Shockwave/Adobe Flash
** Sony PlayStation (forwarder; experimental)


===Requirements===
===Additional content options===
For this application and its third-party components to work correctly, you must need the following minimum requirements:
* NES/Famicom:
** Set custom palette.
* Nintendo 64:
** Clear all preinstalled VC textures (*.T64).
** Fix brightness (remove dark/epilepsy filter).
** 8 MB extended memory (Expansion Pak detection).
** Auto-allocation of ROM size (supports up to 56 MB; not available in later revisions).
** Fix crashes (not available in later revisions).
* Master System & Mega Drive/Genesis:
** Emulator configuration editor.
** Controller mapping.
* PC Engine/TurboGrafx-16:
** Emulator configuration editor.
* NEO-GEO:
** Custom BIOS (*.zip/*.rom).
* Shockwave/Adobe Flash:
** 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.
* Forwarders:
** Use Comex or Waninkoko NAND loader/WAD contents order.
** Use v12 or v14 forwarder.dol.
** Use vWii (Wii U) NAND loader.
** Load from USB instead of SD card.
** Show BIOS startup screen (PSX only).


* OS: '''Windows 7 or newer'''
===How to use===
* Redistributables:
Please refer to the [https://github.com/CatmanFan/FriishProduce/wiki wiki] and [https://gbatemp.net/threads/release-friishproduce-multiplatform-wad-injector.632028/ support thread].
** '''.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'''
*** [http://download.microsoft.com/download/activexcontrolpad/install/4.0.0.950/win98mexp/en-us/setuppad.exe 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.
'''Note:''' Make sure you have a (v)Wii NAND backup in case anything goes wrong.
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 [https://www.virustotal.com/gui/file/c699f2bca6eb8a7ab49cf2eccb6eedadbd7de7ca55ca053b3819ce44af85ba36?nocache=1 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.
 
===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 ([https://en.wikipedia.org/wiki/Super_FX#List_of_games 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 [https://github.com/libretro/libretro-thumbnails 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==
==Screenshots==
[[image:friishproducewii.png]]
https://dlhb.gamebrew.org/wiihomebrews/friishproducewii.png


==Changelog==
'''v1.2'''
* Added
** New platforms: '''Sony PlayStation''', '''RPG Maker 2000 / 2003'''
*** Content options (RPG Maker 2000 / 2003):
**** Import RTP (real-time package)
** New forwarder emulators: '''WiiStation''', '''EasyRPG Player'''
** Option to toggle Wii Menu-esque icon animation for banner preview.
** BIOS option for forwarders.
** ''Adobe Flash'': MIDI + DLS soundfont option.
*Bugfixes 
** Attempts to reduce memory leaking due to bitmap generations.
** The King of Fighters '94 (J) was incorrectly set as not a ZLIB WAD and would fail to work if injected into.
*Other changes 
** More updates to the interface.
** General system stability improvements to (hopefully) enhance the user's experience.
'''v1.1'''
*Added:
**You can now create FriishProduce project files to use for injections/games, similar to NSUI for 3DS.
**BPS patch support.
**Custom VC manual support.
*Bugfixes:
**Fixed bug in which savedata generation for forwarders failed because the relevant saves folder was not present in SD/USB. It is now created as a new folder in the generated ZIP.
*Other changes:
**Database & language files converted back to JSON format.
'''v1.0'''
* Almost completely recoded from scratch.
* More options to configure, and a more advanced design.
* CCF archive management is now handled within the code.
* Customizing banner details is now obligatory.
* Sony PlayStation and some other features have been temporarily removed for this version until they can be recoded and ported over.
* As this is the first release of the MDI interface and there are still plans for more updates in the making, the next release (v1.1) may see substantial changes in the code to fix bugs or change how internal files are handled.
'''v0.26-beta'''
*Added:
**New platform: Sony PlayStation (EXPERIMENTAL).
**New forwarder emulators: WiiSX, WiiStation.
*Other changes:
**Interface & localisation script changes.
*Pull requests:
**Grammar & Capitalization Changes to en.json.
**Additional Title Compatibility Update to database.json.
**Korean translation updates by DDinghoya (Jul 21, Aug 3, Aug 14, Sep 9).


'''v0.25-beta'''
*Added:
**New platforms: TurboGrafx-16/PC Engine, SNK NEO-GEO, Microsoft MSX/MSX2 (Japan only).
***Content options (TG16/PCE):
****Simple configuration editor.
***Content options (NEO-GEO):
****Custom BIOS (.zip/.rom).
**New forwarder emulators: Genesis Plus GX, FCEUX TX, Snes9x TX, FCE Ultra RX, Snes9x RX, Wii64 (WiiFlow mod by saulfabreg), Not64.
*Other changes.
**Switch to Wii.cs for WAD management in all natively-supported consoles/platforms except Adobe Flash. Flash & forwarders still using libWiiSharp.
*Fixes:
**General system stability improvements to enhance the user's experience.
'''v0.20-beta'''
*Added:
**New platforms: Sega Master System, Sega Mega Drive/Genesis.
***Content options:
****Includes configuration editor (mostly uniform for both platforms, since the emulator backend is almost identical).
****Controller mapping.
**New bases supported:
***N64: Bomberman Hero (JPN), F-Zero X (USA; EUR; JPN), Mario Golf (JPN), Mario Party 2 (USA; EUR), Star Fox 64 (JPN; KOR), Yoshi's Story (USA; EUR; JPN).
***SMS: Phantasy Star (USA; EUR) - emulator revision: v3, Sonic the Hedgehog (USA; EUR; JPN) - emulator revision: v2.
***GEN/MD: Comix Zone (USA; EUR; JPN) - emulator revision: v1, Pulseman (USA; EUR) - emulator revision: v3, Sonic the Hedgehog 3 (USA; EUR; JPN) - emulator revision: v2.
**Injection method:
***Can select either the native Virtual Console emulator where supported, or a selection of emulator cores (forwarder mode).
***Not supported in Adobe Flash mode.
**Added option to retrieve image, full name & players data from Libretro database.
**Added force video mode selection:
***NTSC (sets all available video modes to NTSC 480i/p).
***PAL50 (sets all available video modes to PAL50 576i/p).
***PAL60 (sets all available video modes to PAL60 480i/p).
***NTSC+PAL60 (sets all available video modes to either NTSC or PAL60 480i/p, depending on region).
***NTSC/MPAL (sets all 480i/p video modes to NTSC and all 576i/p video modes to MPAL).
***PAL50/PAL60 (sets all 480i/p video modes to PAL60 and all 576i/p video modes to PAL50).
***Warning: May cause slow framerate or crash if the output WAD's set video mode does not match that of the console (e.g. NTSC <=/=> PAL50 Wii)..
***Not supported in forwarder mode.
**"Browse WAD" dialog now supports multiselect, so more than one WAD file can be added to the application's bases list at once.
**Option to generate random title ID.
*Other changes:
**New logo.
**Major interface updates.
**Changes implemented based off the source code for Patcher64+ Tool:.
***Added option to remove *.T64 texture files from N64 WAD content.
***Simplified N64 main.dol modification mechanism using self-coded bytes search function.
***Switched main.dol compression method from WWCXTool to LZSS (by CUE).
**Fixed some quirks in FR/ES translation strings.
*Fixes:
**Fixed "Delete WAD" function mechanism (e.g. application would delete the wrong WAD file).
**General system stability improvements to enhance the user's experience.
*Known bugs:
**On certain SEGA WADs (e.g. Comix Zone), the CCF auto-compression method can potentially cause a black screen on load (i.e. Wii console can be turned off gracefully, so it doesn't count as a "crash") . This happens to be an issue with how CCFarc.exe handles compression, as compressing the CCF using HowardC's tools seems to work either way. This bug has been all but fixed during development but nonetheless still has a very rare chance of occurring. In the event that it does, try injecting using another base or different content options/title IDs.
'''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 ==
== Credits ==
This program uses the following third-party components and apps:
This program uses the following third-party components and apps:
* libWiiSharp (orig. author: Leathl), [https://github.com/WiiDatabase/libWiiSharp/ forked] by [https://github.com/WiiDatabase WiiDatabase].
* [https://github.com/dnasdw/showmiiwads/blob/Wii.cs_Tools/U8Mii/Wii.cs Wii.cs] library (part of Leathl's [https://code.google.com/archive/p/showmiiwads/source ShowMiiWads]).
* [https://github.com/Alcaro/Flips Floating IPS] (Flips) by [https://github.com/Alcaro Alcaro].
* [https://github.com/jmacd/xdelta Xdelta] by [https://github.com/jmacd jmacd].
* [https://github.com/libertyernie/ccf-tools ccf-tools] (orig. author: paulguy) and [https://github.com/libertyernie/brawllib-wit BrawlLib] (orig. author: soopercool101), both forked by [https://github.com/libertyernie libertyernie].
* ROMC compressor by Jurai, with additional LZSS code by Haruhiko Okumura.
* [https://gbadev.org/tools.php?showinfo=56 gbalzss] by Andre Perrot, with additional LZSS code by Haruhiko Okumura.
* WWCXTool by alpha-0.
* [https://www.hcs64.com/vgm_ripping.html lzh8_cmpdec] by [http://hcs64.com/ hcs].
* [https://gbatemp.net/threads/vcfe-wip.100556/ HowardC's Tools] (particularly, VCbrlyt).
* [https://github.com/queueRAM/sm64tools sm64tools] by [https://github.com/queueRAM queueRAM].
* [https://github.com/z64tools/z64compress z64compress] by [https://github.com/z64tools z64tools].
* For homebrew emulators compatiblity:
** comex's NAND loader. ''(file renamed as &quot;nandloader_wii_comex.app&quot;)''
** Waninkoko's NAND loader, retrieved from ShowMiiWads repo. ''(file renamed as &quot;nandloader_wii.app&quot;)''
** FIX94's [https://github.com/FIX94/tiny-vwii-nand-loader tiny-vwii-nand-loader]. ''(file renamed as &quot;nandloader_vwii.app&quot;)''
** Forwarder DOLs generated from [https://modmii.github.io/ ModMii Classic] (application author: XFlak) ''(files renamed as &quot;forwarder_v[XX].dol&quot;)''


* '''libWiiSharp''' (orig. author: Leathl), [https://github.com/WiiDatabase/libWiiSharp/ forked] by '''[https://github.com/WiiDatabase WiiDatabase]'''.
Thanks to:
* '''[https://github.com/Alcaro/Flips Floating IPS]''' (Flips) by [https://github.com/Alcaro Alcaro].
* [https://github.com/SuperrSonic SuperrSonic] for reverse-engineering much of Wii software and official emulator code, and in particular, his [https://github.com/SuperrSonic/RA-SS fork of RetroArch Wii].
* '''[https://github.com/libertyernie/ccf-tools ccf-tools]''' (orig. author: paulguy) and '''[https://github.com/libertyernie/brawllib-wit BrawlLib]''' (orig. author: soopercool101), both forked by '''[https://github.com/libertyernie libertyernie]'''.
* [https://github.com/saulfabregwiivc saulfabreg] for archiving several tools and aiding in research &amp; documentation.
* '''ROMC compressor''' by Jurai, with additional LZSS code by Haruhiko Okumura.
* [https://gbatemp.net/members/sr_corsario.128473/ sr_corsario] for his work in disclosing NEO-GEO ROM injection methods.
* '''gbalzss''' by Andre Perrot, with additional LZSS code by Haruhiko Okumura.
* [https://github.com/Larsenv Larsenv] for his astounding work in the Wii homebrew community, and for originally disclosing a method for Flash WAD injection ([https://gbatemp.net/threads/how-to-make-flash-game-wad-injects.561406/ GBAtemp thread]).
* '''WWCXTool''' by alpha-0.
* And of course, the team at the 0RANGECHiCKEN release group, including [https://gbatemp.net/members/lolsjoel.18721/ lolsjoel], and the late [https://gbatemp.net/members/g0dlike.190457/ G0dLiKe], without whose work this project would not have been possible.
* '''HowardC's Tools''' (particularly, VCbrlyt).
 
I would also like to thank the following people:
 
* '''[https://github.com/SuperrSonic SuperrSonic]''' for reverse-engineering much of Wii software and official emulator code, and in particular, his [[RA-Hexaeco Wii]].
* '''[https://github.com/saulfabregwiivc SaulFabre]''' for archiving several tools and aiding in research &amp; documentation.
* '''[https://github.com/Larsenv Larsenv]''' for his astounding work in the Wii homebrew community, and for originally disclosing a method for Flash WAD injection ([https://gbatemp.net/threads/how-to-make-flash-game-wad-injects.561406/ GBAtemp thread]).
* And of course, the team at the 0RANGECHiCKEN release group, including [https://gbatemp.net/members/lolsjoel.18721/ lolsjoel], and the late [https://gbatemp.net/members/g0dlike.190457/ 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''' ([https://github.com/CatmanFan/FriishProduce/blob/main/LICENSE view in full]).


==External Links==
==External links==
* Gbatemp - https://gbatemp.net/threads/release-friishproduce-multiplatform-wad-injector.632028/
* GitHub - https://github.com/CatmanFan/FriishProduce
* Github - https://github.com/CatmanFan/FriishProduce
* GBAtemp - https://gbatemp.net/threads/release-friishproduce-multiplatform-wad-injector.632028/

Latest revision as of 10:00, 9 June 2024

FriishProduce
Friishproducewii.png
General
AuthorCatmanFan
TypePC Utilities
Version1.2
LicenseGPL-3.0
Last Updated2024/06/03
Links
Download
Website
Source

FriishProduce is a WAD injector for Wii/vWii, which allows for automated ROM replacement in Wii channels. This application is designed to streamline the process to as few third-party programs as possible.

This injector bypasses other third-party assets (such as Common-Key.bin, most of HowardC's tools, and Autoinjectuwad/Devilken's VC) by handling many steps directly from the program's code. Some examples include:

  • 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.
  • Replace WAD contents with forwarder to auto-load specific emulator core and ROM.

User guide

Supported systems

Additional content options

  • NES/Famicom:
    • Set custom palette.
  • Nintendo 64:
    • Clear all preinstalled VC textures (*.T64).
    • Fix brightness (remove dark/epilepsy filter).
    • 8 MB extended memory (Expansion Pak detection).
    • Auto-allocation of ROM size (supports up to 56 MB; not available in later revisions).
    • Fix crashes (not available in later revisions).
  • Master System & Mega Drive/Genesis:
    • Emulator configuration editor.
    • Controller mapping.
  • PC Engine/TurboGrafx-16:
    • Emulator configuration editor.
  • NEO-GEO:
    • Custom BIOS (*.zip/*.rom).
  • Shockwave/Adobe Flash:
    • 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.
  • Forwarders:
    • Use Comex or Waninkoko NAND loader/WAD contents order.
    • Use v12 or v14 forwarder.dol.
    • Use vWii (Wii U) NAND loader.
    • Load from USB instead of SD card.
    • Show BIOS startup screen (PSX only).

How to use

Please refer to the wiki and support thread.

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

Screenshots

friishproducewii.png

Changelog

v1.2

  • Added
    • New platforms: Sony PlayStationRPG Maker 2000 / 2003
      • Content options (RPG Maker 2000 / 2003):
        • Import RTP (real-time package)
    • New forwarder emulators: WiiStationEasyRPG Player
    • Option to toggle Wii Menu-esque icon animation for banner preview.
    • BIOS option for forwarders.
    • Adobe Flash: MIDI + DLS soundfont option.
  • Bugfixes
    • Attempts to reduce memory leaking due to bitmap generations.
    • The King of Fighters '94 (J) was incorrectly set as not a ZLIB WAD and would fail to work if injected into.
  • Other changes
    • More updates to the interface.
    • General system stability improvements to (hopefully) enhance the user's experience.

v1.1

  • Added:
    • You can now create FriishProduce project files to use for injections/games, similar to NSUI for 3DS.
    • BPS patch support.
    • Custom VC manual support.
  • Bugfixes:
    • Fixed bug in which savedata generation for forwarders failed because the relevant saves folder was not present in SD/USB. It is now created as a new folder in the generated ZIP.
  • Other changes:
    • Database & language files converted back to JSON format.

v1.0

  • Almost completely recoded from scratch.
  • More options to configure, and a more advanced design.
  • CCF archive management is now handled within the code.
  • Customizing banner details is now obligatory.
  • Sony PlayStation and some other features have been temporarily removed for this version until they can be recoded and ported over.
  • As this is the first release of the MDI interface and there are still plans for more updates in the making, the next release (v1.1) may see substantial changes in the code to fix bugs or change how internal files are handled.

v0.26-beta

  • Added:
    • New platform: Sony PlayStation (EXPERIMENTAL).
    • New forwarder emulators: WiiSX, WiiStation.
  • Other changes:
    • Interface & localisation script changes.
  • Pull requests:
    • Grammar & Capitalization Changes to en.json.
    • Additional Title Compatibility Update to database.json.
    • Korean translation updates by DDinghoya (Jul 21, Aug 3, Aug 14, Sep 9).

v0.25-beta

  • Added:
    • New platforms: TurboGrafx-16/PC Engine, SNK NEO-GEO, Microsoft MSX/MSX2 (Japan only).
      • Content options (TG16/PCE):
        • Simple configuration editor.
      • Content options (NEO-GEO):
        • Custom BIOS (.zip/.rom).
    • New forwarder emulators: Genesis Plus GX, FCEUX TX, Snes9x TX, FCE Ultra RX, Snes9x RX, Wii64 (WiiFlow mod by saulfabreg), Not64.
  • Other changes.
    • Switch to Wii.cs for WAD management in all natively-supported consoles/platforms except Adobe Flash. Flash & forwarders still using libWiiSharp.
  • Fixes:
    • General system stability improvements to enhance the user's experience.

v0.20-beta

  • Added:
    • New platforms: Sega Master System, Sega Mega Drive/Genesis.
      • Content options:
        • Includes configuration editor (mostly uniform for both platforms, since the emulator backend is almost identical).
        • Controller mapping.
    • New bases supported:
      • N64: Bomberman Hero (JPN), F-Zero X (USA; EUR; JPN), Mario Golf (JPN), Mario Party 2 (USA; EUR), Star Fox 64 (JPN; KOR), Yoshi's Story (USA; EUR; JPN).
      • SMS: Phantasy Star (USA; EUR) - emulator revision: v3, Sonic the Hedgehog (USA; EUR; JPN) - emulator revision: v2.
      • GEN/MD: Comix Zone (USA; EUR; JPN) - emulator revision: v1, Pulseman (USA; EUR) - emulator revision: v3, Sonic the Hedgehog 3 (USA; EUR; JPN) - emulator revision: v2.
    • Injection method:
      • Can select either the native Virtual Console emulator where supported, or a selection of emulator cores (forwarder mode).
      • Not supported in Adobe Flash mode.
    • Added option to retrieve image, full name & players data from Libretro database.
    • Added force video mode selection:
      • NTSC (sets all available video modes to NTSC 480i/p).
      • PAL50 (sets all available video modes to PAL50 576i/p).
      • PAL60 (sets all available video modes to PAL60 480i/p).
      • NTSC+PAL60 (sets all available video modes to either NTSC or PAL60 480i/p, depending on region).
      • NTSC/MPAL (sets all 480i/p video modes to NTSC and all 576i/p video modes to MPAL).
      • PAL50/PAL60 (sets all 480i/p video modes to PAL60 and all 576i/p video modes to PAL50).
      • Warning: May cause slow framerate or crash if the output WAD's set video mode does not match that of the console (e.g. NTSC <=/=> PAL50 Wii)..
      • Not supported in forwarder mode.
    • "Browse WAD" dialog now supports multiselect, so more than one WAD file can be added to the application's bases list at once.
    • Option to generate random title ID.
  • Other changes:
    • New logo.
    • Major interface updates.
    • Changes implemented based off the source code for Patcher64+ Tool:.
      • Added option to remove *.T64 texture files from N64 WAD content.
      • Simplified N64 main.dol modification mechanism using self-coded bytes search function.
      • Switched main.dol compression method from WWCXTool to LZSS (by CUE).
    • Fixed some quirks in FR/ES translation strings.
  • Fixes:
    • Fixed "Delete WAD" function mechanism (e.g. application would delete the wrong WAD file).
    • General system stability improvements to enhance the user's experience.
  • Known bugs:
    • On certain SEGA WADs (e.g. Comix Zone), the CCF auto-compression method can potentially cause a black screen on load (i.e. Wii console can be turned off gracefully, so it doesn't count as a "crash") . This happens to be an issue with how CCFarc.exe handles compression, as compressing the CCF using HowardC's tools seems to work either way. This bug has been all but fixed during development but nonetheless still has a very rare chance of occurring. In the event that it does, try injecting using another base or different content options/title IDs.

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:

Thanks to:

  • SuperrSonic for reverse-engineering much of Wii software and official emulator code, and in particular, his fork of RetroArch Wii.
  • saulfabreg for archiving several tools and aiding in research & documentation.
  • sr_corsario for his work in disclosing NEO-GEO ROM injection methods.
  • 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.

External links

Advertising: