Homebrew Youtube Channel for Wii (Fixing the SWF)

Joined
Sep 19, 2020
Messages
121
Trophies
0
XP
431
Flash decompilers aren't that good. Imma only try the last Flash decompiler, another decompiler made by Trillix.
However, you have to pay if you want to actually probably get the full version of the software.

Or just use the virtual machine to test the cracked decompiler on the Windows 7 in your virtual machine.

There aren't any much cracked version of that Flash decompiler but only just dead links and the ones that doesn't really work on later versions of Windows. I could've at least use the virtual machine to test the cracked version of Trillix's Flash decompiler, but I might for one day.

I'm just in time for developing my own YouTube API and I was also thinking of recreating the YouTube (Wii) application.

But until I read your post here. This has got to be a very great suggestion.

Post automatically merged:


I can help you.
Post automatically merged:

Here's the font that y'all should use and fit in for this YouTube (Wii) project:
First: Good going on making an API! Can't wait to inject.
Second: Okay.

Not responding much now due to personal projects, but I'm still helping!
Post automatically merged:

So reverse engineering the swf and learning how it works is already very difficult, but adding any additional code (not just modifying the existing code) requires outrageous amounts of time and knowledge to pull it off.

I'm no expert on this, but I've got a suggestion, that seems to be more realistic, than injecting code into swf to run html5 or making some YouTube mirror server, which nobody would want to pay for.

YouTube API usually, if not always, requires providing Youtube API keys, that everybody would have to create themselves and add their own key to the app.

There's already an amazing application called youtube-dl, which allows for command line use of API, without all the hassle and trouble. It allows everybody to make use of youtube API, without having to learn the api and re-engineer the wheel from nothing, which I think some of You might have tried already.

To make it even better, there's a fork which is updated more often and usually works better, called yt-dlp:

(Can't post links until 5 posts)
github yt-dlp/yt-dlp

I think using yt-dlp as the backend and writing a new wii channel app for watching YouTube on wii is far more realistic to actually happen.

It requires absolutely no reverse engineering to pull this off with yt-dlp.

If the goal is to bring back the ORIGINAL youtube channel, then I'd suggest to reuse the old wii youtube assets and write the layout code to be the same as the original.

I really hope this helps somebody, I personally have no idea how to write anything for the Wii.

I know that writing a new youtube app from scratch should be very doable with yt-dlp.

Making the swf work with modern youtube by creating a webserver imitating the original or injecting swf code with youtube API calls, if not outright impossible, then it's at least 10-100 times harder to do than just writing an alternative based on yt-dlp. If we find that special somebody with godlike reverse engineering skills, it would still take 100x+ more time, reversing and injecting code into reversed app, instead of writing one from scratch, which still isn't a walk in a park, but doesn't require such outrageous amounts of time as reversing and getting the swf to work.

I saw the wii sdk somewhere, so if somebody really wants to invest time into this. It would be the recommended way to go IMO. As a bonus, if YouTube api has some breaking changes, yt-dlp team is very quick to update their application/library, so if such Youtube dlp homebrew for wii ever sees the light of day and the author makes it open source - even if the author abandons the yt homebrew for wii, it should be pretty easy to just update yt-dlp source part, if not too much of hard coding for wii is done to get it running.

Keep in mind that if Youtube Api or yt-dl/yt-dlp is used, each user would need to generate their own api key on Google site and then provide the api key to watch YouTube videos.

This would only have to be done once per console. Set and forget basically, but if developer provides his own key, it will quickly run out of free quota if hundreds of people use the same key, going back to having to create Your own Youtube API key.

As a bonus, with youtube-dl/yt-dlp, there's absolutely NO ADS and buffering isn't as heavily limited as in the web youtube.

Few minutes video can be downloaded in just seconds in it's entirety, but doesn't have to be fully downloaded.



Good luck guys, I really hope this helps somebody one day and we see youtube working great on the wii again.


Disclaimer:
(Yes, I have multiple devices for Youtube and wii isn't really good for Youtube videos because of resolution and other limitations, but I think it would be just really cool to revive all of the original wiis functions, regardless how useless they could be these days)
You might've mentioned this or not because I'm a lazy reader but..
With the type of API yt-dlp uses, and that I read their bullet points near the end of the page, I'm a bit confused. Does it have ability to use YouTube accounts? Or is it just Sign-Out only?
 

olokos

New Member
Newbie
Joined
Jun 16, 2023
Messages
2
Trophies
0
Age
34
XP
25
Country
Poland
First: Good going on making an API! Can't wait to inject.
Second: Okay.

Not responding much now due to personal projects, but I'm still helping!
Post automatically merged:


You might've mentioned this or not because I'm a lazy reader but..
With the type of API yt-dlp uses, and that I read their bullet points near the end of the page, I'm a bit confused. Does it have ability to use YouTube accounts? Or is it just Sign-Out only?
I think that getting a list of links(video+metadata) from text search, might require using Youtube API key.
Watching/downloading the video with yt-dlp is done without API key AFAIK, but does require the link to a video.
 

redfire_mrt

Well-Known Member
Member
Joined
May 26, 2020
Messages
226
Trophies
0
XP
1,117
Country
United States
I’m planning on actually remaking the leanbacklite for Wii and its API player.
Which means, I’m planning on remaking the YouTube channel.
Post automatically merged:

I’m planning on actually remaking the leanbacklite for Wii and its API player.
Which means, I’m planning on remaking the YouTube channel.
+ I’m already developing this.
There’s an open source frontend for YouTube:
Invidious
 

redfire_mrt

Well-Known Member
Member
Joined
May 26, 2020
Messages
226
Trophies
0
XP
1,117
Country
United States
@gravitycoil828
I made my own YouTube preloader clone, however I get an internet connection error, I'm sure that my Wii is connected to the internet.

I'm trying to make the ShimBase class for the appUrl to load a SWF from this URL: https://cdn.discordapp.com/attachments/1003044574089990154/1130416320215793735/menu_wii.swf

Here are the ActionScript classes and one video of an error.

ShimBase:


class com.google.translate.wii.shim.ShimBase
{
static var DROID_SANS_FONT = "Droid Sans Japanese";
static var CJK_TEXT_FORMAT = com.google.translate.wii.shim.ShimBase.getCJKTextFormat();
static var EXIT_TEXT = {ja:"終了",en:"Exit",de:"Schließen",fr:"Quitter",es:"Salir",it:"Esci",nl:"Afsluiten"};
static var LABEL_ONCE = "label_once";
static var PRELOADER_ERROR_Y_OFFSET = 50;
static var TRUSTED = "file://trusted/remote/";

var appUrl:String;
var labelUrl:String;
var preloader:MovieClip;
var container:MovieClip;
var loader:MovieClipLoader;
var exitToMenuButtonText:String;
var shared:SharedObject;
var labelLoader:LoadVars;
var exitToMenuButton:MovieClip;
var errorMessage:TextField;
var notification:Object;

var defaults:Object;
function ShimBase(root) {
this.defaults = {vendor:"nintendo", model:"wii", sku:"", firmware:com.google.translate.wii.platform.Wii.getFirmwareVersion(), loader:"", lang:com.google.translate.wii.platform.Wii.getLanguage(), country:com.google.translate.wii.platform.Wii.getCountry(), v:"", label:""};
this.initNotification();
this.appUrl = "https://cdn.discordapp.com/attachments/1003044574089990154/1130416320215793735/menu_wii.swf";
this.labelUrl = "https://cdn.discordapp.com/attachments/1003044574089990154/1130497857913368646/labels.txt";
_root.shim = this;
Stage.align = "TL";
Stage.scaleMode = "noScale";
this.preloader = root.attachMovie("preloader", "preloader", root.getNextHighestDepth(), {_x:Stage.width / 2, _y:Stage.height / 2});
this.container = root.createEmptyMovieClip("mcApp", root.getNextHighestDepth(), {_visible:false});
this.loader = new MovieClipLoader();
this.loader.addListener(this);
this.exitToMenuButtonText = com.google.translate.wii.shim.ShimBase.EXIT_TEXT[com.google.translate.wii.platform.Wii.getLanguage()] || com.google.translate.wii.shim.ShimBase.EXIT_TEXT.en;
com.google.translate.wii.shim.ShimBase.initFont();
this.shared = SharedObject.getLocal("ShimStorage");
this.load(); // Add this line to load the content.
}
static function onExitToMenuButtonClick()
{
_global.my.extensions.WiiSystem.returnToMenu();
}
function createExitToMenuButton()
{
this.exitToMenuButton = _root.createEmptyMovieClip("exitToMenuButton", _root.getNextHighestDepth());

var _loc2_ = 300;
var _loc3_ = 50;
var _loc4_ = 30;
this.exitToMenuButton._x = Stage.width / 2;
this.exitToMenuButton._y = Stage.height - (_loc3_ + _loc4_);
this.exitToMenuButton.onRelease = com.google.translate.wii.shim.ShimBase.onExitToMenuButtonClick;
this.exitToMenuButton.beginFill(0x000000); // Set the button color to black
this.exitToMenuButton.moveTo((- _loc2_) / 2, 0);
this.exitToMenuButton.lineTo(_loc2_ / 2, 0);
this.exitToMenuButton.lineTo(_loc2_ / 2, _loc3_);
this.exitToMenuButton.lineTo((- _loc2_) / 2, _loc3_);
this.exitToMenuButton.endFill();
var _loc5_ = this.exitToMenuButton.createTextField("field", this.exitToMenuButton.getNextHighestDepth(), (- _loc2_) / 2, 5, _loc2_, _loc3_);
_loc5_.embedFonts = true;
var _loc6_ = com.google.translate.wii.shim.ShimBase.getCJKTextFormat();
_loc6_.size = 20;
_loc6_.color = 0xFFFFFF; // Set the font color of the button text to black
_loc6_.align = "center";
_loc5_.setNewTextFormat(_loc6_);
_loc5_.text = this.exitToMenuButtonText;
}

function hidePreloader()
{
this.releaseNotification();
this.container._visible = true;
this.exitToMenuButton.onRelease = null;
this.exitToMenuButton.removeMovieClip();
this.preloader.removeMovieClip();
}
function showError(opt_message)
{
this.preloader._y -= com.google.translate.wii.shim.ShimBase.PRELOADER_ERROR_Y_OFFSET;
if(opt_message)
{
if(!this.errorMessage)
{
this.errorMessage = this.preloader.createTextField("field",this.preloader.getNextHighestDepth(),-250,0,500,290);
this.errorMessage.embedFonts = true;
this.errorMessage.wordWrap = true;
this.errorMessage.multiline = true;
}
var _loc3_ = com.google.translate.wii.shim.ShimBase.getCJKTextFormat();
_loc3_.size = 20;
_loc3_.color = 0x000000; // Font color is set to black (0x000000) here
this.errorMessage.setNewTextFormat(_loc3_);
this.errorMessage.text = opt_message;
}
this.preloader.progress._visible = false;
this.preloader.progress.removeMovieClip();
this.createExitToMenuButton();
}

static function getCJKTextFormat()
{
var _loc2_ = new TextFormat();
_loc2_.font = com.google.translate.wii.shim.ShimBase.DROID_SANS_FONT;
return _loc2_;
}
static function setDSFont(t)
{
t.setTextFormat(com.google.translate.wii.shim.ShimBase.CJK_TEXT_FORMAT);
t.setNewTextFormat(com.google.translate.wii.shim.ShimBase.CJK_TEXT_FORMAT);
t.embedFonts = true;
t.textColor = 0x000000; // Set the font color to black
}

static function getCJKFontName()
{
return com.google.translate.wii.shim.ShimBase.DROID_SANS_FONT;
}
static function initFont()
{
_root.setDSFont = com.google.translate.wii.shim.ShimBase.setDSFont;
_root.getCJKFontName = com.google.translate.wii.shim.ShimBase.getCJKFontName;
}
function setLoadOnceLabel(label)
{
this.shared.data[com.google.translate.wii.shim.ShimBase.LABEL_ONCE] = label;
this.shared.flush();
}
function getStorage()
{
return this.shared;
}
function load()
{
this.labelLoader = new LoadVars();
var shim = this;
this.labelLoader.onData = function(label)
{
shim.defaults.label = label.split("\n")[0] || "";
shim.loadSwf();
};
if(this.labelLoader.load(this.getLabelUrl()) == false)
{
this.loadSwf();
}
}
function loadSwf() {
var _loc2_ = this.shared.data;
if (_loc2_[com.google.translate.wii.shim.ShimBase.LABEL_ONCE]) {
this.defaults.label = _loc2_[com.google.translate.wii.shim.ShimBase.LABEL_ONCE];
_loc2_[com.google.translate.wii.shim.ShimBase.LABEL_ONCE] = null;
this.shared.flush();
}
this.loader.loadClip(this.getAppUrl(), this.container);
com.google.translate.wii.platform.Wii.unload();
}
function getAppUrl()
{
var _loc2_ = [];
for(var key in this.defaults)
{
_root[key] = _root[key] || this.defaults[key];
if(_root[key].toString())
{
_loc2_.push(key + "=" + _global.escape(_root[key]));
}
}
return com.google.translate.wii.shim.ShimBase.TRUSTED + this.appUrl + "?" + _loc2_.join("&");
}
function getLabelUrl() {
return com.google.translate.wii.shim.ShimBase.TRUSTED + this.labelUrl + "?version=" + Math.random().toString().substring(2,9);
}
function onLoadError(target, errorCode, httpStatus)
{
this.showError();
}
function initNotification() {
this.notification = new _global.my.extensions.WiiNotification();
this.notification.start();
this.notification.addListener(this);
}
function releaseNotification() {
this.notification.removeListener(this);
this.notification.stop();
this.notification.destroy();
this.notification = null;
}
function onEvent(data)
{
if(data.url.indexOf(this.labelUrl) == 0)
{
return undefined;
}
var _loc3_ = data.message || "Loading error.\nError code: ";
var _loc4_ = data.code.toString() || "Unknown";
this.showError(_loc3_ + _loc4_);
}
}


Shim:


class com.google.translate.wii.shim.Shim extends com.google.translate.wii.shim.ShimBase
{
static var SHIM_VERSION = 6;
function Shim(root)
{
super(root);
this.defaults.loader = com.google.translate.wii.shim.Shim.SHIM_VERSION;
}
static function main(mc)
{
var _loc3_ = new com.google.translate.wii.shim.Shim(mc);
_loc3_.load();
}
}


Wii:


class com.google.translate.wii.platform.Wii
{
static var system = _global.my.extensions.WiiSystem;
static var network = _global.my.extensions.WiiNetwork;
static var LANGUAGES = ["ja","en","de","fr","es","it","nl","zh-Hans","zh-Hant","ko"];
static var COUNTRIES = com.google.translate.wii.platform.Wii.getCountries();
static var TV_FORMATS = ["NTSC","PAL","MPAL",null,null,"EURGB60"];
static var SETTINGS_CALENDAR = 1;
static var SETTINGS_DISPLAY = 2;
static var SETTINGS_SOUND = 3;
static var SETTINGS_PARENTAL = 4;
static var SETTINGS_INTERNET = 5;
static var SETTINGS_WC24 = 6;
static var SETTINGS_UPDATE = 7;
function Wii()
{
}
static function unload()
{
delete _global.com.google.translate.wii.platform.Wii;
}
static function isWii()
{
return com.google.translate.wii.platform.Wii.system.isWii();
}
static function getGameRegion()
{
var _loc2_ = com.google.translate.wii.platform.Wii.system.getGameRegion();
if(_loc2_)
{
return _loc2_;
}
var _loc3_ = com.google.translate.wii.platform.Wii.system.getGameVersion();
if(_loc3_ == "0.0")
{
return "US";
}
return com.google.translate.wii.platform.Wii.getLanguage() != "ja" ? "EU" : "JP";
}
static function getGameVersion()
{
return com.google.translate.wii.platform.Wii.system.getGameVersion();
}
static function getVodfVersion()
{
return com.google.translate.wii.platform.Wii.system.getVODFVersion() || "1.0";
}
static function getFirmwareVersion()
{
return com.google.translate.wii.platform.Wii.getVodfVersion() + "|" + com.google.translate.wii.platform.Wii.getGameRegion() + "-" + com.google.translate.wii.platform.Wii.getGameVersion();
}
static function getBuildTime()
{
return com.google.translate.wii.platform.Wii.system.getBuildTime();
}
static function getNickName()
{
return com.google.translate.wii.platform.Wii.system.getNickName();
}
static function getUID()
{
return com.google.translate.wii.platform.Wii.system.getUID();
}
static function isParentalControlEnabled()
{
return com.google.translate.wii.platform.Wii.system.isParentalControlEnabled();
}
static function isMessagingRestricted()
{
return com.google.translate.wii.platform.Wii.system.isMessagingRestricted();
}
static function checkParentalControlPin(pin)
{
return com.google.translate.wii.platform.Wii.system.checkParentalControlPin(pin);
}
static function promptParentalControlPin()
{
return com.google.translate.wii.platform.Wii.system.promptParentalControlPin();
}
static function setDimming(value)
{
com.google.translate.wii.platform.Wii.system.enableDimming(value);
}
static function setBackgroundColor(value)
{
return com.google.translate.wii.platform.Wii.system.setBackgroundColor((value & 16777215) << 8);
}
static function allowHomeButton(allowed)
{
com.google.translate.wii.platform.Wii.system.allowHomeButton(allowed);
}
static function forceGC()
{
com.google.translate.wii.platform.Wii.system.forceGC();
}
static function onExit(callback)
{
com.google.translate.wii.platform.Wii.system.onExit(callback);
}
static function quitToSettings(settingsDialog)
{
com.google.translate.wii.platform.Wii.system.quitToSettings(settingsDialog);
}
static function canQuitToEShop()
{
return com.google.translate.wii.platform.Wii.system.quitToEShop != null;
}
static function quitToEShop()
{
com.google.translate.wii.platform.Wii.system.quitToEShop();
}
static function returnToMenu()
{
com.google.translate.wii.platform.Wii.system.returnToMenu();
}
static function getFreeMemory1()
{
return com.google.translate.wii.platform.Wii.system.getFreeMemory1();
}
static function getFreeMemory2()
{
return com.google.translate.wii.platform.Wii.system.getFreeMemory2();
}
static function getFreeMemoryCXX()
{
return com.google.translate.wii.platform.Wii.system.getFreeMemoryCXX();
}
static function getFps()
{
return com.google.translate.wii.platform.Wii.system.getFps();
}
static function getWorstFps()
{
return com.google.translate.wii.platform.Wii.system.getWorstFps();
}
static function getBandwidth()
{
return com.google.translate.wii.platform.Wii.network.getBandwidth();
}
static function getLanguage()
{
return com.google.translate.wii.platform.Wii.LANGUAGES[com.google.translate.wii.platform.Wii.system.getLanguage()] || "";
}
static function getCountries()
{
var _loc2_ = [];
_loc2_[1] = "JP";
_loc2_[8] = "AI";
_loc2_[9] = "AG";
_loc2_[10] = "AR";
_loc2_[11] = "AW";
_loc2_[12] = "BS";
_loc2_[13] = "BB";
_loc2_[14] = "BZ";
_loc2_[15] = "BO";
_loc2_[16] = "BR";
_loc2_[17] = "VG";
_loc2_[18] = "CA";
_loc2_[19] = "KY";
_loc2_[20] = "CL";
_loc2_[21] = "CO";
_loc2_[22] = "CR";
_loc2_[23] = "DM";
_loc2_[24] = "DO";
_loc2_[25] = "EC";
_loc2_[26] = "SV";
_loc2_[27] = "GF";
_loc2_[28] = "GD";
_loc2_[29] = "GP";
_loc2_[30] = "GT";
_loc2_[31] = "GY";
_loc2_[32] = "HT";
_loc2_[33] = "HN";
_loc2_[34] = "JM";
_loc2_[35] = "MQ";
_loc2_[36] = "MX";
_loc2_[37] = "MS";
_loc2_[38] = "AN";
_loc2_[39] = "NI";
_loc2_[40] = "PA";
_loc2_[41] = "PY";
_loc2_[42] = "PE";
_loc2_[43] = "KN";
_loc2_[44] = "LC";
_loc2_[45] = "VC";
_loc2_[46] = "SR";
_loc2_[47] = "TT";
_loc2_[48] = "TC";
_loc2_[49] = "US";
_loc2_[50] = "UY";
_loc2_[51] = "VI";
_loc2_[52] = "VE";
_loc2_[64] = "AL";
_loc2_[65] = "AU";
_loc2_[66] = "AT";
_loc2_[67] = "BE";
_loc2_[68] = "BA";
_loc2_[69] = "BW";
_loc2_[70] = "BG";
_loc2_[71] = "HR";
_loc2_[72] = "CY";
_loc2_[73] = "CZ";
_loc2_[74] = "DK";
_loc2_[75] = "EE";
_loc2_[76] = "FI";
_loc2_[77] = "FR";
_loc2_[78] = "DE";
_loc2_[79] = "GR";
_loc2_[80] = "HU";
_loc2_[81] = "IS";
_loc2_[82] = "IE";
_loc2_[83] = "IT";
_loc2_[84] = "LV";
_loc2_[85] = "LS";
_loc2_[86] = "LI";
_loc2_[87] = "LT";
_loc2_[88] = "LU";
_loc2_[89] = "MK";
_loc2_[90] = "MT";
_loc2_[91] = "ME";
_loc2_[92] = "MZ";
_loc2_[93] = "NA";
_loc2_[94] = "NL";
_loc2_[95] = "NZ";
_loc2_[96] = "NO";
_loc2_[97] = "PL";
_loc2_[98] = "PT";
_loc2_[99] = "RO";
_loc2_[100] = "RU";
_loc2_[101] = "RS";
_loc2_[102] = "SK";
_loc2_[103] = "SI";
_loc2_[104] = "ZA";
_loc2_[105] = "ES";
_loc2_[106] = "SZ";
_loc2_[107] = "SE";
_loc2_[108] = "CH";
_loc2_[109] = "TR";
_loc2_[110] = "GB";
_loc2_[111] = "ZM";
_loc2_[112] = "ZW";
_loc2_[128] = "TW";
_loc2_[136] = "KR";
_loc2_[144] = "HK";
_loc2_[145] = "MO";
_loc2_[152] = "ID";
_loc2_[153] = "SG";
_loc2_[154] = "TH";
_loc2_[155] = "PH";
_loc2_[156] = "MY";
_loc2_[160] = "CN";
_loc2_[168] = "AE";
_loc2_[169] = "IN";
_loc2_[170] = "EG";
_loc2_[171] = "OM";
_loc2_[172] = "QA";
_loc2_[173] = "KW";
_loc2_[174] = "SA";
_loc2_[175] = "SY";
_loc2_[176] = "BH";
_loc2_[177] = "JO";
return _loc2_;
}
static function getCountry()
{
return com.google.translate.wii.platform.Wii.COUNTRIES[com.google.translate.wii.platform.Wii.system.getCountry()] || "";
}
static function is4to3()
{
if(!com.google.translate.wii.platform.Wii.isWii())
{
return int(100 * Stage.width / Stage.height) == 133;
}
return com.google.translate.wii.platform.Wii.system.getAspectRatio() == 0;
}
static function isProgressiveMode()
{
if(!com.google.translate.wii.platform.Wii.isWii())
{
return true;
}
return com.google.translate.wii.platform.Wii.system.getProgressiveMode();
}
static function getTvFormat()
{
if(!com.google.translate.wii.platform.Wii.isWii())
{
return "";
}
return com.google.translate.wii.platform.Wii.TV_FORMATS[com.google.translate.wii.platform.Wii.system.getTvFormat()];
}
static function cancelLoading(url)
{
com.google.translate.wii.platform.Wii.network.forceCancelConnection(url);
}
static function addUniversalHeader(key, value)
{
com.google.translate.wii.platform.Wii.network.addHeader(key,value);
}
static function removeUniversalHeader(key)
{
com.google.translate.wii.platform.Wii.network.removeHeader(key);
}
static function clearUniversalHeaders()
{
com.google.translate.wii.platform.Wii.network.clearHeaders();
}
static function isNetworkInitialized()
{
return com.google.translate.wii.platform.Wii.network.isInitialized();
}
static function isNetworkOperational()
{
return com.google.translate.wii.platform.Wii.network.isOperational();
}
static function isWired()
{
return com.google.translate.wii.platform.Wii.network.isWired();
}
static function getConfig()
{
return com.google.translate.wii.platform.Wii.network.getConfig();
}
static function setConfig(values)
{
com.google.translate.wii.platform.Wii.network.setConfig(values);
}
}


common:


##################################################################################################
##### GUMBALL VODF CONFIG FILE #####
##################################################################################################

static_heap_size 8192 # 8192[KB] -> 8[MB]
dynamic_heap_size 16384 # 16384[KB] -> 16[MB]

stream_cache_max_file_size 512 # 512[KB] -> 0.5[MB]
stream_cache_size 2048 # 2048[KB] -> 2.0[MB]

content_mem1 no
content_buffer_mode copy

mouse on
qwerty_keyboard on # hardware keyboard
qwerty_events on # hardware keyboard sends flash events
use_keymap off # determines if the region's keymap.ini is used
navigation_model 4way # 2way / 4way / 4waywrap
quality high # low / medium / high
looping on

text_encoding utf-16 # should be utf-16

midi off
# dls_file dls/GM16.DLS

key_input on # software keyboard -- requires hardware keyboard and mouse

cursor_archive cursor.arc
cursor_layout cursor.brlyt

dialog_cursor_archive cursor.arc
dialog_cursor_layout cursor.brlyt


banner_file banner/banner.ini


device_text off
brfna_file 10, wbf1.brfna
brsar_file sound/FlashPlayerSe.brsar # sound data

embedded_vector_font off
# embedded_vector_font_files fonts/font1.swf fonts/font2.swf fonts/font3.swf
# pre_installed_as_class_files library/classes.swf



shared_object_capability on
num_vff_drives 2
vff_cache_size 96 # 96[KB]
vff_sync_on_write off

persistent_storage_root_drive X
persistent_storage_vff_file shrdobjs.vff # 8.3 format
persistent_storage_total 96 # 96[KB]
persistent_storage_per_movie 64 # 64[KB]

supported_devices core freestyle classic

hbm_no_save true

static_module static.sel

plugin_modules plugin_wiinotification.rso
plugin_modules plugin_wiiremote.rso
plugin_modules plugin_wiisystem.rso
plugin_modules plugin_wiisound.rso
plugin_modules plugin_wiinetwork.rso
#plugin_modules plugin_wiiconnect24.rso
#plugin_modules plugin_wiiperformance.rso
#plugin_modules plugin_wiikeyboard.rso
#plugin_modules plugin_wiisugarcalculations.rso
#plugin_modules plugin_wiiuntrustedrequest.rso
#plugin_modules plugin_wiimiisupport.rso

trace_filter none
texture_filter linear

strap_reminder none #normal #no_ex #none

# set to match the loading screen's background color
background_color 255 255 255 255 # RGBA -- VODF/SWF BG Color.


################################# APPLICATION CONFIGURATIONS #####################################


update_frame_rate 30 # 0 sets it to framerate set in content


########################################## MediaStream ###############################################


content_domain file:///trusted/ #Local Data


debug_content_url file:///trusted/wii_dev_shim.swf

# Debug settings
# load from web-trunk-qa:
debug_flash_vars dev=1&app=file://trusted/remote/https://web-trunk-qa.youtube.com/wiitv
# load from web-release-qa:
#debug_flash_vars dev=1&app=file://trusted/remote/https://web-release-qa.youtube.com/wiitv
# load from horcrux (no-auto-build):
#debug_flash_vars dev=1&relax=1&app=file://trusted/remote/https://cdn.discordapp.com/attachments/1003044574089990154/1130416320215793735/menu_wii.swf
# load from prod:
#debug_flash_vars dev=1
# load from prod/Charles-ready:
#debug_flash_vars dev=1&relax=6


final_content_url file:///trusted/wii_shim.swf

# Final settings (can't be empty)
# load from prod:
final_flash_vars dummy=1


What needs to be fixed, done, or what can I do for the appUrl to load the "menu_wii.swf"?
 

Attachments

  • IMG_2110.png
    IMG_2110.png
    6.5 MB · Views: 37
  • Like
Reactions: olokos

SylverReZ

The planet is fine. The people are crazy.
Member
GBAtemp Patron
Joined
Sep 13, 2022
Messages
7,205
Trophies
3
Location
The Wired
Website
m4x1mumrez87.neocities.org
XP
22,061
Country
United Kingdom
@gravitycoil828
I made my own YouTube preloader clone, however I get an internet connection error, I'm sure that my Wii is connected to the internet.

I'm trying to make the ShimBase class for the appUrl to load a SWF from this URL: https://cdn.discordapp.com/attachments/1003044574089990154/1130416320215793735/menu_wii.swf

Here are the ActionScript classes and one video of an error.

ShimBase:


class com.google.translate.wii.shim.ShimBase
{
static var DROID_SANS_FONT = "Droid Sans Japanese";
static var CJK_TEXT_FORMAT = com.google.translate.wii.shim.ShimBase.getCJKTextFormat();
static var EXIT_TEXT = {ja:"終了",en:"Exit",de:"Schließen",fr:"Quitter",es:"Salir",it:"Esci",nl:"Afsluiten"};
static var LABEL_ONCE = "label_once";
static var PRELOADER_ERROR_Y_OFFSET = 50;
static var TRUSTED = "file://trusted/remote/";

var appUrl:String;
var labelUrl:String;
var preloader:MovieClip;
var container:MovieClip;
var loader:MovieClipLoader;
var exitToMenuButtonText:String;
var shared:SharedObject;
var labelLoader:LoadVars;
var exitToMenuButton:MovieClip;
var errorMessage:TextField;
var notification:Object;

var defaults:Object;
function ShimBase(root) {
this.defaults = {vendor:"nintendo", model:"wii", sku:"", firmware:com.google.translate.wii.platform.Wii.getFirmwareVersion(), loader:"", lang:com.google.translate.wii.platform.Wii.getLanguage(), country:com.google.translate.wii.platform.Wii.getCountry(), v:"", label:""};
this.initNotification();
this.appUrl = "https://cdn.discordapp.com/attachments/1003044574089990154/1130416320215793735/menu_wii.swf";
this.labelUrl = "https://cdn.discordapp.com/attachments/1003044574089990154/1130497857913368646/labels.txt";
_root.shim = this;
Stage.align = "TL";
Stage.scaleMode = "noScale";
this.preloader = root.attachMovie("preloader", "preloader", root.getNextHighestDepth(), {_x:Stage.width / 2, _y:Stage.height / 2});
this.container = root.createEmptyMovieClip("mcApp", root.getNextHighestDepth(), {_visible:false});
this.loader = new MovieClipLoader();
this.loader.addListener(this);
this.exitToMenuButtonText = com.google.translate.wii.shim.ShimBase.EXIT_TEXT[com.google.translate.wii.platform.Wii.getLanguage()] || com.google.translate.wii.shim.ShimBase.EXIT_TEXT.en;
com.google.translate.wii.shim.ShimBase.initFont();
this.shared = SharedObject.getLocal("ShimStorage");
this.load(); // Add this line to load the content.
}
static function onExitToMenuButtonClick()
{
_global.my.extensions.WiiSystem.returnToMenu();
}
function createExitToMenuButton()
{
this.exitToMenuButton = _root.createEmptyMovieClip("exitToMenuButton", _root.getNextHighestDepth());

var _loc2_ = 300;
var _loc3_ = 50;
var _loc4_ = 30;
this.exitToMenuButton._x = Stage.width / 2;
this.exitToMenuButton._y = Stage.height - (_loc3_ + _loc4_);
this.exitToMenuButton.onRelease = com.google.translate.wii.shim.ShimBase.onExitToMenuButtonClick;
this.exitToMenuButton.beginFill(0x000000); // Set the button color to black
this.exitToMenuButton.moveTo((- _loc2_) / 2, 0);
this.exitToMenuButton.lineTo(_loc2_ / 2, 0);
this.exitToMenuButton.lineTo(_loc2_ / 2, _loc3_);
this.exitToMenuButton.lineTo((- _loc2_) / 2, _loc3_);
this.exitToMenuButton.endFill();
var _loc5_ = this.exitToMenuButton.createTextField("field", this.exitToMenuButton.getNextHighestDepth(), (- _loc2_) / 2, 5, _loc2_, _loc3_);
_loc5_.embedFonts = true;
var _loc6_ = com.google.translate.wii.shim.ShimBase.getCJKTextFormat();
_loc6_.size = 20;
_loc6_.color = 0xFFFFFF; // Set the font color of the button text to black
_loc6_.align = "center";
_loc5_.setNewTextFormat(_loc6_);
_loc5_.text = this.exitToMenuButtonText;
}

function hidePreloader()
{
this.releaseNotification();
this.container._visible = true;
this.exitToMenuButton.onRelease = null;
this.exitToMenuButton.removeMovieClip();
this.preloader.removeMovieClip();
}
function showError(opt_message)
{
this.preloader._y -= com.google.translate.wii.shim.ShimBase.PRELOADER_ERROR_Y_OFFSET;
if(opt_message)
{
if(!this.errorMessage)
{
this.errorMessage = this.preloader.createTextField("field",this.preloader.getNextHighestDepth(),-250,0,500,290);
this.errorMessage.embedFonts = true;
this.errorMessage.wordWrap = true;
this.errorMessage.multiline = true;
}
var _loc3_ = com.google.translate.wii.shim.ShimBase.getCJKTextFormat();
_loc3_.size = 20;
_loc3_.color = 0x000000; // Font color is set to black (0x000000) here
this.errorMessage.setNewTextFormat(_loc3_);
this.errorMessage.text = opt_message;
}
this.preloader.progress._visible = false;
this.preloader.progress.removeMovieClip();
this.createExitToMenuButton();
}

static function getCJKTextFormat()
{
var _loc2_ = new TextFormat();
_loc2_.font = com.google.translate.wii.shim.ShimBase.DROID_SANS_FONT;
return _loc2_;
}
static function setDSFont(t)
{
t.setTextFormat(com.google.translate.wii.shim.ShimBase.CJK_TEXT_FORMAT);
t.setNewTextFormat(com.google.translate.wii.shim.ShimBase.CJK_TEXT_FORMAT);
t.embedFonts = true;
t.textColor = 0x000000; // Set the font color to black
}

static function getCJKFontName()
{
return com.google.translate.wii.shim.ShimBase.DROID_SANS_FONT;
}
static function initFont()
{
_root.setDSFont = com.google.translate.wii.shim.ShimBase.setDSFont;
_root.getCJKFontName = com.google.translate.wii.shim.ShimBase.getCJKFontName;
}
function setLoadOnceLabel(label)
{
this.shared.data[com.google.translate.wii.shim.ShimBase.LABEL_ONCE] = label;
this.shared.flush();
}
function getStorage()
{
return this.shared;
}
function load()
{
this.labelLoader = new LoadVars();
var shim = this;
this.labelLoader.onData = function(label)
{
shim.defaults.label = label.split("\n")[0] || "";
shim.loadSwf();
};
if(this.labelLoader.load(this.getLabelUrl()) == false)
{
this.loadSwf();
}
}
function loadSwf() {
var _loc2_ = this.shared.data;
if (_loc2_[com.google.translate.wii.shim.ShimBase.LABEL_ONCE]) {
this.defaults.label = _loc2_[com.google.translate.wii.shim.ShimBase.LABEL_ONCE];
_loc2_[com.google.translate.wii.shim.ShimBase.LABEL_ONCE] = null;
this.shared.flush();
}
this.loader.loadClip(this.getAppUrl(), this.container);
com.google.translate.wii.platform.Wii.unload();
}
function getAppUrl()
{
var _loc2_ = [];
for(var key in this.defaults)
{
_root[key] = _root[key] || this.defaults[key];
if(_root[key].toString())
{
_loc2_.push(key + "=" + _global.escape(_root[key]));
}
}
return com.google.translate.wii.shim.ShimBase.TRUSTED + this.appUrl + "?" + _loc2_.join("&");
}
function getLabelUrl() {
return com.google.translate.wii.shim.ShimBase.TRUSTED + this.labelUrl + "?version=" + Math.random().toString().substring(2,9);
}
function onLoadError(target, errorCode, httpStatus)
{
this.showError();
}
function initNotification() {
this.notification = new _global.my.extensions.WiiNotification();
this.notification.start();
this.notification.addListener(this);
}
function releaseNotification() {
this.notification.removeListener(this);
this.notification.stop();
this.notification.destroy();
this.notification = null;
}
function onEvent(data)
{
if(data.url.indexOf(this.labelUrl) == 0)
{
return undefined;
}
var _loc3_ = data.message || "Loading error.\nError code: ";
var _loc4_ = data.code.toString() || "Unknown";
this.showError(_loc3_ + _loc4_);
}
}


Shim:


class com.google.translate.wii.shim.Shim extends com.google.translate.wii.shim.ShimBase
{
static var SHIM_VERSION = 6;
function Shim(root)
{
super(root);
this.defaults.loader = com.google.translate.wii.shim.Shim.SHIM_VERSION;
}
static function main(mc)
{
var _loc3_ = new com.google.translate.wii.shim.Shim(mc);
_loc3_.load();
}
}


Wii:


class com.google.translate.wii.platform.Wii
{
static var system = _global.my.extensions.WiiSystem;
static var network = _global.my.extensions.WiiNetwork;
static var LANGUAGES = ["ja","en","de","fr","es","it","nl","zh-Hans","zh-Hant","ko"];
static var COUNTRIES = com.google.translate.wii.platform.Wii.getCountries();
static var TV_FORMATS = ["NTSC","PAL","MPAL",null,null,"EURGB60"];
static var SETTINGS_CALENDAR = 1;
static var SETTINGS_DISPLAY = 2;
static var SETTINGS_SOUND = 3;
static var SETTINGS_PARENTAL = 4;
static var SETTINGS_INTERNET = 5;
static var SETTINGS_WC24 = 6;
static var SETTINGS_UPDATE = 7;
function Wii()
{
}
static function unload()
{
delete _global.com.google.translate.wii.platform.Wii;
}
static function isWii()
{
return com.google.translate.wii.platform.Wii.system.isWii();
}
static function getGameRegion()
{
var _loc2_ = com.google.translate.wii.platform.Wii.system.getGameRegion();
if(_loc2_)
{
return _loc2_;
}
var _loc3_ = com.google.translate.wii.platform.Wii.system.getGameVersion();
if(_loc3_ == "0.0")
{
return "US";
}
return com.google.translate.wii.platform.Wii.getLanguage() != "ja" ? "EU" : "JP";
}
static function getGameVersion()
{
return com.google.translate.wii.platform.Wii.system.getGameVersion();
}
static function getVodfVersion()
{
return com.google.translate.wii.platform.Wii.system.getVODFVersion() || "1.0";
}
static function getFirmwareVersion()
{
return com.google.translate.wii.platform.Wii.getVodfVersion() + "|" + com.google.translate.wii.platform.Wii.getGameRegion() + "-" + com.google.translate.wii.platform.Wii.getGameVersion();
}
static function getBuildTime()
{
return com.google.translate.wii.platform.Wii.system.getBuildTime();
}
static function getNickName()
{
return com.google.translate.wii.platform.Wii.system.getNickName();
}
static function getUID()
{
return com.google.translate.wii.platform.Wii.system.getUID();
}
static function isParentalControlEnabled()
{
return com.google.translate.wii.platform.Wii.system.isParentalControlEnabled();
}
static function isMessagingRestricted()
{
return com.google.translate.wii.platform.Wii.system.isMessagingRestricted();
}
static function checkParentalControlPin(pin)
{
return com.google.translate.wii.platform.Wii.system.checkParentalControlPin(pin);
}
static function promptParentalControlPin()
{
return com.google.translate.wii.platform.Wii.system.promptParentalControlPin();
}
static function setDimming(value)
{
com.google.translate.wii.platform.Wii.system.enableDimming(value);
}
static function setBackgroundColor(value)
{
return com.google.translate.wii.platform.Wii.system.setBackgroundColor((value & 16777215) << 8);
}
static function allowHomeButton(allowed)
{
com.google.translate.wii.platform.Wii.system.allowHomeButton(allowed);
}
static function forceGC()
{
com.google.translate.wii.platform.Wii.system.forceGC();
}
static function onExit(callback)
{
com.google.translate.wii.platform.Wii.system.onExit(callback);
}
static function quitToSettings(settingsDialog)
{
com.google.translate.wii.platform.Wii.system.quitToSettings(settingsDialog);
}
static function canQuitToEShop()
{
return com.google.translate.wii.platform.Wii.system.quitToEShop != null;
}
static function quitToEShop()
{
com.google.translate.wii.platform.Wii.system.quitToEShop();
}
static function returnToMenu()
{
com.google.translate.wii.platform.Wii.system.returnToMenu();
}
static function getFreeMemory1()
{
return com.google.translate.wii.platform.Wii.system.getFreeMemory1();
}
static function getFreeMemory2()
{
return com.google.translate.wii.platform.Wii.system.getFreeMemory2();
}
static function getFreeMemoryCXX()
{
return com.google.translate.wii.platform.Wii.system.getFreeMemoryCXX();
}
static function getFps()
{
return com.google.translate.wii.platform.Wii.system.getFps();
}
static function getWorstFps()
{
return com.google.translate.wii.platform.Wii.system.getWorstFps();
}
static function getBandwidth()
{
return com.google.translate.wii.platform.Wii.network.getBandwidth();
}
static function getLanguage()
{
return com.google.translate.wii.platform.Wii.LANGUAGES[com.google.translate.wii.platform.Wii.system.getLanguage()] || "";
}
static function getCountries()
{
var _loc2_ = [];
_loc2_[1] = "JP";
_loc2_[8] = "AI";
_loc2_[9] = "AG";
_loc2_[10] = "AR";
_loc2_[11] = "AW";
_loc2_[12] = "BS";
_loc2_[13] = "BB";
_loc2_[14] = "BZ";
_loc2_[15] = "BO";
_loc2_[16] = "BR";
_loc2_[17] = "VG";
_loc2_[18] = "CA";
_loc2_[19] = "KY";
_loc2_[20] = "CL";
_loc2_[21] = "CO";
_loc2_[22] = "CR";
_loc2_[23] = "DM";
_loc2_[24] = "DO";
_loc2_[25] = "EC";
_loc2_[26] = "SV";
_loc2_[27] = "GF";
_loc2_[28] = "GD";
_loc2_[29] = "GP";
_loc2_[30] = "GT";
_loc2_[31] = "GY";
_loc2_[32] = "HT";
_loc2_[33] = "HN";
_loc2_[34] = "JM";
_loc2_[35] = "MQ";
_loc2_[36] = "MX";
_loc2_[37] = "MS";
_loc2_[38] = "AN";
_loc2_[39] = "NI";
_loc2_[40] = "PA";
_loc2_[41] = "PY";
_loc2_[42] = "PE";
_loc2_[43] = "KN";
_loc2_[44] = "LC";
_loc2_[45] = "VC";
_loc2_[46] = "SR";
_loc2_[47] = "TT";
_loc2_[48] = "TC";
_loc2_[49] = "US";
_loc2_[50] = "UY";
_loc2_[51] = "VI";
_loc2_[52] = "VE";
_loc2_[64] = "AL";
_loc2_[65] = "AU";
_loc2_[66] = "AT";
_loc2_[67] = "BE";
_loc2_[68] = "BA";
_loc2_[69] = "BW";
_loc2_[70] = "BG";
_loc2_[71] = "HR";
_loc2_[72] = "CY";
_loc2_[73] = "CZ";
_loc2_[74] = "DK";
_loc2_[75] = "EE";
_loc2_[76] = "FI";
_loc2_[77] = "FR";
_loc2_[78] = "DE";
_loc2_[79] = "GR";
_loc2_[80] = "HU";
_loc2_[81] = "IS";
_loc2_[82] = "IE";
_loc2_[83] = "IT";
_loc2_[84] = "LV";
_loc2_[85] = "LS";
_loc2_[86] = "LI";
_loc2_[87] = "LT";
_loc2_[88] = "LU";
_loc2_[89] = "MK";
_loc2_[90] = "MT";
_loc2_[91] = "ME";
_loc2_[92] = "MZ";
_loc2_[93] = "NA";
_loc2_[94] = "NL";
_loc2_[95] = "NZ";
_loc2_[96] = "NO";
_loc2_[97] = "PL";
_loc2_[98] = "PT";
_loc2_[99] = "RO";
_loc2_[100] = "RU";
_loc2_[101] = "RS";
_loc2_[102] = "SK";
_loc2_[103] = "SI";
_loc2_[104] = "ZA";
_loc2_[105] = "ES";
_loc2_[106] = "SZ";
_loc2_[107] = "SE";
_loc2_[108] = "CH";
_loc2_[109] = "TR";
_loc2_[110] = "GB";
_loc2_[111] = "ZM";
_loc2_[112] = "ZW";
_loc2_[128] = "TW";
_loc2_[136] = "KR";
_loc2_[144] = "HK";
_loc2_[145] = "MO";
_loc2_[152] = "ID";
_loc2_[153] = "SG";
_loc2_[154] = "TH";
_loc2_[155] = "PH";
_loc2_[156] = "MY";
_loc2_[160] = "CN";
_loc2_[168] = "AE";
_loc2_[169] = "IN";
_loc2_[170] = "EG";
_loc2_[171] = "OM";
_loc2_[172] = "QA";
_loc2_[173] = "KW";
_loc2_[174] = "SA";
_loc2_[175] = "SY";
_loc2_[176] = "BH";
_loc2_[177] = "JO";
return _loc2_;
}
static function getCountry()
{
return com.google.translate.wii.platform.Wii.COUNTRIES[com.google.translate.wii.platform.Wii.system.getCountry()] || "";
}
static function is4to3()
{
if(!com.google.translate.wii.platform.Wii.isWii())
{
return int(100 * Stage.width / Stage.height) == 133;
}
return com.google.translate.wii.platform.Wii.system.getAspectRatio() == 0;
}
static function isProgressiveMode()
{
if(!com.google.translate.wii.platform.Wii.isWii())
{
return true;
}
return com.google.translate.wii.platform.Wii.system.getProgressiveMode();
}
static function getTvFormat()
{
if(!com.google.translate.wii.platform.Wii.isWii())
{
return "";
}
return com.google.translate.wii.platform.Wii.TV_FORMATS[com.google.translate.wii.platform.Wii.system.getTvFormat()];
}
static function cancelLoading(url)
{
com.google.translate.wii.platform.Wii.network.forceCancelConnection(url);
}
static function addUniversalHeader(key, value)
{
com.google.translate.wii.platform.Wii.network.addHeader(key,value);
}
static function removeUniversalHeader(key)
{
com.google.translate.wii.platform.Wii.network.removeHeader(key);
}
static function clearUniversalHeaders()
{
com.google.translate.wii.platform.Wii.network.clearHeaders();
}
static function isNetworkInitialized()
{
return com.google.translate.wii.platform.Wii.network.isInitialized();
}
static function isNetworkOperational()
{
return com.google.translate.wii.platform.Wii.network.isOperational();
}
static function isWired()
{
return com.google.translate.wii.platform.Wii.network.isWired();
}
static function getConfig()
{
return com.google.translate.wii.platform.Wii.network.getConfig();
}
static function setConfig(values)
{
com.google.translate.wii.platform.Wii.network.setConfig(values);
}
}


common:


##################################################################################################
##### GUMBALL VODF CONFIG FILE #####
##################################################################################################

static_heap_size 8192 # 8192[KB] -> 8[MB]
dynamic_heap_size 16384 # 16384[KB] -> 16[MB]

stream_cache_max_file_size 512 # 512[KB] -> 0.5[MB]
stream_cache_size 2048 # 2048[KB] -> 2.0[MB]

content_mem1 no
content_buffer_mode copy

mouse on
qwerty_keyboard on # hardware keyboard
qwerty_events on # hardware keyboard sends flash events
use_keymap off # determines if the region's keymap.ini is used
navigation_model 4way # 2way / 4way / 4waywrap
quality high # low / medium / high
looping on

text_encoding utf-16 # should be utf-16

midi off
# dls_file dls/GM16.DLS

key_input on # software keyboard -- requires hardware keyboard and mouse

cursor_archive cursor.arc
cursor_layout cursor.brlyt

dialog_cursor_archive cursor.arc
dialog_cursor_layout cursor.brlyt


banner_file banner/banner.ini


device_text off
brfna_file 10, wbf1.brfna
brsar_file sound/FlashPlayerSe.brsar # sound data

embedded_vector_font off
# embedded_vector_font_files fonts/font1.swf fonts/font2.swf fonts/font3.swf
# pre_installed_as_class_files library/classes.swf



shared_object_capability on
num_vff_drives 2
vff_cache_size 96 # 96[KB]
vff_sync_on_write off

persistent_storage_root_drive X
persistent_storage_vff_file shrdobjs.vff # 8.3 format
persistent_storage_total 96 # 96[KB]
persistent_storage_per_movie 64 # 64[KB]

supported_devices core freestyle classic

hbm_no_save true

static_module static.sel

plugin_modules plugin_wiinotification.rso
plugin_modules plugin_wiiremote.rso
plugin_modules plugin_wiisystem.rso
plugin_modules plugin_wiisound.rso
plugin_modules plugin_wiinetwork.rso
#plugin_modules plugin_wiiconnect24.rso
#plugin_modules plugin_wiiperformance.rso
#plugin_modules plugin_wiikeyboard.rso
#plugin_modules plugin_wiisugarcalculations.rso
#plugin_modules plugin_wiiuntrustedrequest.rso
#plugin_modules plugin_wiimiisupport.rso

trace_filter none
texture_filter linear

strap_reminder none #normal #no_ex #none

# set to match the loading screen's background color
background_color 255 255 255 255 # RGBA -- VODF/SWF BG Color.


################################# APPLICATION CONFIGURATIONS #####################################


update_frame_rate 30 # 0 sets it to framerate set in content


########################################## MediaStream ###############################################


content_domain file:///trusted/ #Local Data


debug_content_url file:///trusted/wii_dev_shim.swf

# Debug settings
# load from web-trunk-qa:
debug_flash_vars dev=1&app=file://trusted/remote/https://web-trunk-qa.youtube.com/wiitv
# load from web-release-qa:
#debug_flash_vars dev=1&app=file://trusted/remote/https://web-release-qa.youtube.com/wiitv
# load from horcrux (no-auto-build):
#debug_flash_vars dev=1&relax=1&app=file://trusted/remote/https://cdn.discordapp.com/attachments/1003044574089990154/1130416320215793735/menu_wii.swf
# load from prod:
#debug_flash_vars dev=1
# load from prod/Charles-ready:
#debug_flash_vars dev=1&relax=6


final_content_url file:///trusted/wii_shim.swf

# Final settings (can't be empty)
# load from prod:
final_flash_vars dummy=1


What needs to be fixed, done, or what can I do for the appUrl to load the "menu_wii.swf"?
Does it communicate with the YouTube servers?
 
Last edited by SylverReZ,

redfire_mrt

Well-Known Member
Member
Joined
May 26, 2020
Messages
226
Trophies
0
XP
1,117
Country
United States

lwiz

Well-Known Member
Member
Joined
Sep 23, 2012
Messages
364
Trophies
2
XP
1,045
Country
Finland
...as there is no more Flash content on the Youtube - and haven't been in a good while. It's all HTML5 now as Flash/SWF are dead and buried.
 
Joined
Sep 19, 2020
Messages
121
Trophies
0
XP
431
@gravitycoil828
I made my own YouTube preloader clone, however I get an internet connection error, I'm sure that my Wii is connected to the internet.

I'm trying to make the ShimBase class for the appUrl to load a SWF from this URL: https://cdn.discordapp.com/attachments/1003044574089990154/1130416320215793735/menu_wii.swf

Here are the ActionScript classes and one video of an error.

ShimBase:


class com.google.translate.wii.shim.ShimBase
{
static var DROID_SANS_FONT = "Droid Sans Japanese";
static var CJK_TEXT_FORMAT = com.google.translate.wii.shim.ShimBase.getCJKTextFormat();
static var EXIT_TEXT = {ja:"終了",en:"Exit",de:"Schließen",fr:"Quitter",es:"Salir",it:"Esci",nl:"Afsluiten"};
static var LABEL_ONCE = "label_once";
static var PRELOADER_ERROR_Y_OFFSET = 50;
static var TRUSTED = "file://trusted/remote/";

var appUrl:String;
var labelUrl:String;
var preloader:MovieClip;
var container:MovieClip;
var loader:MovieClipLoader;
var exitToMenuButtonText:String;
var shared:SharedObject;
var labelLoader:LoadVars;
var exitToMenuButton:MovieClip;
var errorMessage:TextField;
var notification:Object;

var defaults:Object;
function ShimBase(root) {
this.defaults = {vendor:"nintendo", model:"wii", sku:"", firmware:com.google.translate.wii.platform.Wii.getFirmwareVersion(), loader:"", lang:com.google.translate.wii.platform.Wii.getLanguage(), country:com.google.translate.wii.platform.Wii.getCountry(), v:"", label:""};
this.initNotification();
this.appUrl = "https://cdn.discordapp.com/attachments/1003044574089990154/1130416320215793735/menu_wii.swf";
this.labelUrl = "https://cdn.discordapp.com/attachments/1003044574089990154/1130497857913368646/labels.txt";
_root.shim = this;
Stage.align = "TL";
Stage.scaleMode = "noScale";
this.preloader = root.attachMovie("preloader", "preloader", root.getNextHighestDepth(), {_x:Stage.width / 2, _y:Stage.height / 2});
this.container = root.createEmptyMovieClip("mcApp", root.getNextHighestDepth(), {_visible:false});
this.loader = new MovieClipLoader();
this.loader.addListener(this);
this.exitToMenuButtonText = com.google.translate.wii.shim.ShimBase.EXIT_TEXT[com.google.translate.wii.platform.Wii.getLanguage()] || com.google.translate.wii.shim.ShimBase.EXIT_TEXT.en;
com.google.translate.wii.shim.ShimBase.initFont();
this.shared = SharedObject.getLocal("ShimStorage");
this.load(); // Add this line to load the content.
}
static function onExitToMenuButtonClick()
{
_global.my.extensions.WiiSystem.returnToMenu();
}
function createExitToMenuButton()
{
this.exitToMenuButton = _root.createEmptyMovieClip("exitToMenuButton", _root.getNextHighestDepth());

var _loc2_ = 300;
var _loc3_ = 50;
var _loc4_ = 30;
this.exitToMenuButton._x = Stage.width / 2;
this.exitToMenuButton._y = Stage.height - (_loc3_ + _loc4_);
this.exitToMenuButton.onRelease = com.google.translate.wii.shim.ShimBase.onExitToMenuButtonClick;
this.exitToMenuButton.beginFill(0x000000); // Set the button color to black
this.exitToMenuButton.moveTo((- _loc2_) / 2, 0);
this.exitToMenuButton.lineTo(_loc2_ / 2, 0);
this.exitToMenuButton.lineTo(_loc2_ / 2, _loc3_);
this.exitToMenuButton.lineTo((- _loc2_) / 2, _loc3_);
this.exitToMenuButton.endFill();
var _loc5_ = this.exitToMenuButton.createTextField("field", this.exitToMenuButton.getNextHighestDepth(), (- _loc2_) / 2, 5, _loc2_, _loc3_);
_loc5_.embedFonts = true;
var _loc6_ = com.google.translate.wii.shim.ShimBase.getCJKTextFormat();
_loc6_.size = 20;
_loc6_.color = 0xFFFFFF; // Set the font color of the button text to black
_loc6_.align = "center";
_loc5_.setNewTextFormat(_loc6_);
_loc5_.text = this.exitToMenuButtonText;
}

function hidePreloader()
{
this.releaseNotification();
this.container._visible = true;
this.exitToMenuButton.onRelease = null;
this.exitToMenuButton.removeMovieClip();
this.preloader.removeMovieClip();
}
function showError(opt_message)
{
this.preloader._y -= com.google.translate.wii.shim.ShimBase.PRELOADER_ERROR_Y_OFFSET;
if(opt_message)
{
if(!this.errorMessage)
{
this.errorMessage = this.preloader.createTextField("field",this.preloader.getNextHighestDepth(),-250,0,500,290);
this.errorMessage.embedFonts = true;
this.errorMessage.wordWrap = true;
this.errorMessage.multiline = true;
}
var _loc3_ = com.google.translate.wii.shim.ShimBase.getCJKTextFormat();
_loc3_.size = 20;
_loc3_.color = 0x000000; // Font color is set to black (0x000000) here
this.errorMessage.setNewTextFormat(_loc3_);
this.errorMessage.text = opt_message;
}
this.preloader.progress._visible = false;
this.preloader.progress.removeMovieClip();
this.createExitToMenuButton();
}

static function getCJKTextFormat()
{
var _loc2_ = new TextFormat();
_loc2_.font = com.google.translate.wii.shim.ShimBase.DROID_SANS_FONT;
return _loc2_;
}
static function setDSFont(t)
{
t.setTextFormat(com.google.translate.wii.shim.ShimBase.CJK_TEXT_FORMAT);
t.setNewTextFormat(com.google.translate.wii.shim.ShimBase.CJK_TEXT_FORMAT);
t.embedFonts = true;
t.textColor = 0x000000; // Set the font color to black
}

static function getCJKFontName()
{
return com.google.translate.wii.shim.ShimBase.DROID_SANS_FONT;
}
static function initFont()
{
_root.setDSFont = com.google.translate.wii.shim.ShimBase.setDSFont;
_root.getCJKFontName = com.google.translate.wii.shim.ShimBase.getCJKFontName;
}
function setLoadOnceLabel(label)
{
this.shared.data[com.google.translate.wii.shim.ShimBase.LABEL_ONCE] = label;
this.shared.flush();
}
function getStorage()
{
return this.shared;
}
function load()
{
this.labelLoader = new LoadVars();
var shim = this;
this.labelLoader.onData = function(label)
{
shim.defaults.label = label.split("\n")[0] || "";
shim.loadSwf();
};
if(this.labelLoader.load(this.getLabelUrl()) == false)
{
this.loadSwf();
}
}
function loadSwf() {
var _loc2_ = this.shared.data;
if (_loc2_[com.google.translate.wii.shim.ShimBase.LABEL_ONCE]) {
this.defaults.label = _loc2_[com.google.translate.wii.shim.ShimBase.LABEL_ONCE];
_loc2_[com.google.translate.wii.shim.ShimBase.LABEL_ONCE] = null;
this.shared.flush();
}
this.loader.loadClip(this.getAppUrl(), this.container);
com.google.translate.wii.platform.Wii.unload();
}
function getAppUrl()
{
var _loc2_ = [];
for(var key in this.defaults)
{
_root[key] = _root[key] || this.defaults[key];
if(_root[key].toString())
{
_loc2_.push(key + "=" + _global.escape(_root[key]));
}
}
return com.google.translate.wii.shim.ShimBase.TRUSTED + this.appUrl + "?" + _loc2_.join("&");
}
function getLabelUrl() {
return com.google.translate.wii.shim.ShimBase.TRUSTED + this.labelUrl + "?version=" + Math.random().toString().substring(2,9);
}
function onLoadError(target, errorCode, httpStatus)
{
this.showError();
}
function initNotification() {
this.notification = new _global.my.extensions.WiiNotification();
this.notification.start();
this.notification.addListener(this);
}
function releaseNotification() {
this.notification.removeListener(this);
this.notification.stop();
this.notification.destroy();
this.notification = null;
}
function onEvent(data)
{
if(data.url.indexOf(this.labelUrl) == 0)
{
return undefined;
}
var _loc3_ = data.message || "Loading error.\nError code: ";
var _loc4_ = data.code.toString() || "Unknown";
this.showError(_loc3_ + _loc4_);
}
}


Shim:


class com.google.translate.wii.shim.Shim extends com.google.translate.wii.shim.ShimBase
{
static var SHIM_VERSION = 6;
function Shim(root)
{
super(root);
this.defaults.loader = com.google.translate.wii.shim.Shim.SHIM_VERSION;
}
static function main(mc)
{
var _loc3_ = new com.google.translate.wii.shim.Shim(mc);
_loc3_.load();
}
}


Wii:


class com.google.translate.wii.platform.Wii
{
static var system = _global.my.extensions.WiiSystem;
static var network = _global.my.extensions.WiiNetwork;
static var LANGUAGES = ["ja","en","de","fr","es","it","nl","zh-Hans","zh-Hant","ko"];
static var COUNTRIES = com.google.translate.wii.platform.Wii.getCountries();
static var TV_FORMATS = ["NTSC","PAL","MPAL",null,null,"EURGB60"];
static var SETTINGS_CALENDAR = 1;
static var SETTINGS_DISPLAY = 2;
static var SETTINGS_SOUND = 3;
static var SETTINGS_PARENTAL = 4;
static var SETTINGS_INTERNET = 5;
static var SETTINGS_WC24 = 6;
static var SETTINGS_UPDATE = 7;
function Wii()
{
}
static function unload()
{
delete _global.com.google.translate.wii.platform.Wii;
}
static function isWii()
{
return com.google.translate.wii.platform.Wii.system.isWii();
}
static function getGameRegion()
{
var _loc2_ = com.google.translate.wii.platform.Wii.system.getGameRegion();
if(_loc2_)
{
return _loc2_;
}
var _loc3_ = com.google.translate.wii.platform.Wii.system.getGameVersion();
if(_loc3_ == "0.0")
{
return "US";
}
return com.google.translate.wii.platform.Wii.getLanguage() != "ja" ? "EU" : "JP";
}
static function getGameVersion()
{
return com.google.translate.wii.platform.Wii.system.getGameVersion();
}
static function getVodfVersion()
{
return com.google.translate.wii.platform.Wii.system.getVODFVersion() || "1.0";
}
static function getFirmwareVersion()
{
return com.google.translate.wii.platform.Wii.getVodfVersion() + "|" + com.google.translate.wii.platform.Wii.getGameRegion() + "-" + com.google.translate.wii.platform.Wii.getGameVersion();
}
static function getBuildTime()
{
return com.google.translate.wii.platform.Wii.system.getBuildTime();
}
static function getNickName()
{
return com.google.translate.wii.platform.Wii.system.getNickName();
}
static function getUID()
{
return com.google.translate.wii.platform.Wii.system.getUID();
}
static function isParentalControlEnabled()
{
return com.google.translate.wii.platform.Wii.system.isParentalControlEnabled();
}
static function isMessagingRestricted()
{
return com.google.translate.wii.platform.Wii.system.isMessagingRestricted();
}
static function checkParentalControlPin(pin)
{
return com.google.translate.wii.platform.Wii.system.checkParentalControlPin(pin);
}
static function promptParentalControlPin()
{
return com.google.translate.wii.platform.Wii.system.promptParentalControlPin();
}
static function setDimming(value)
{
com.google.translate.wii.platform.Wii.system.enableDimming(value);
}
static function setBackgroundColor(value)
{
return com.google.translate.wii.platform.Wii.system.setBackgroundColor((value & 16777215) << 8);
}
static function allowHomeButton(allowed)
{
com.google.translate.wii.platform.Wii.system.allowHomeButton(allowed);
}
static function forceGC()
{
com.google.translate.wii.platform.Wii.system.forceGC();
}
static function onExit(callback)
{
com.google.translate.wii.platform.Wii.system.onExit(callback);
}
static function quitToSettings(settingsDialog)
{
com.google.translate.wii.platform.Wii.system.quitToSettings(settingsDialog);
}
static function canQuitToEShop()
{
return com.google.translate.wii.platform.Wii.system.quitToEShop != null;
}
static function quitToEShop()
{
com.google.translate.wii.platform.Wii.system.quitToEShop();
}
static function returnToMenu()
{
com.google.translate.wii.platform.Wii.system.returnToMenu();
}
static function getFreeMemory1()
{
return com.google.translate.wii.platform.Wii.system.getFreeMemory1();
}
static function getFreeMemory2()
{
return com.google.translate.wii.platform.Wii.system.getFreeMemory2();
}
static function getFreeMemoryCXX()
{
return com.google.translate.wii.platform.Wii.system.getFreeMemoryCXX();
}
static function getFps()
{
return com.google.translate.wii.platform.Wii.system.getFps();
}
static function getWorstFps()
{
return com.google.translate.wii.platform.Wii.system.getWorstFps();
}
static function getBandwidth()
{
return com.google.translate.wii.platform.Wii.network.getBandwidth();
}
static function getLanguage()
{
return com.google.translate.wii.platform.Wii.LANGUAGES[com.google.translate.wii.platform.Wii.system.getLanguage()] || "";
}
static function getCountries()
{
var _loc2_ = [];
_loc2_[1] = "JP";
_loc2_[8] = "AI";
_loc2_[9] = "AG";
_loc2_[10] = "AR";
_loc2_[11] = "AW";
_loc2_[12] = "BS";
_loc2_[13] = "BB";
_loc2_[14] = "BZ";
_loc2_[15] = "BO";
_loc2_[16] = "BR";
_loc2_[17] = "VG";
_loc2_[18] = "CA";
_loc2_[19] = "KY";
_loc2_[20] = "CL";
_loc2_[21] = "CO";
_loc2_[22] = "CR";
_loc2_[23] = "DM";
_loc2_[24] = "DO";
_loc2_[25] = "EC";
_loc2_[26] = "SV";
_loc2_[27] = "GF";
_loc2_[28] = "GD";
_loc2_[29] = "GP";
_loc2_[30] = "GT";
_loc2_[31] = "GY";
_loc2_[32] = "HT";
_loc2_[33] = "HN";
_loc2_[34] = "JM";
_loc2_[35] = "MQ";
_loc2_[36] = "MX";
_loc2_[37] = "MS";
_loc2_[38] = "AN";
_loc2_[39] = "NI";
_loc2_[40] = "PA";
_loc2_[41] = "PY";
_loc2_[42] = "PE";
_loc2_[43] = "KN";
_loc2_[44] = "LC";
_loc2_[45] = "VC";
_loc2_[46] = "SR";
_loc2_[47] = "TT";
_loc2_[48] = "TC";
_loc2_[49] = "US";
_loc2_[50] = "UY";
_loc2_[51] = "VI";
_loc2_[52] = "VE";
_loc2_[64] = "AL";
_loc2_[65] = "AU";
_loc2_[66] = "AT";
_loc2_[67] = "BE";
_loc2_[68] = "BA";
_loc2_[69] = "BW";
_loc2_[70] = "BG";
_loc2_[71] = "HR";
_loc2_[72] = "CY";
_loc2_[73] = "CZ";
_loc2_[74] = "DK";
_loc2_[75] = "EE";
_loc2_[76] = "FI";
_loc2_[77] = "FR";
_loc2_[78] = "DE";
_loc2_[79] = "GR";
_loc2_[80] = "HU";
_loc2_[81] = "IS";
_loc2_[82] = "IE";
_loc2_[83] = "IT";
_loc2_[84] = "LV";
_loc2_[85] = "LS";
_loc2_[86] = "LI";
_loc2_[87] = "LT";
_loc2_[88] = "LU";
_loc2_[89] = "MK";
_loc2_[90] = "MT";
_loc2_[91] = "ME";
_loc2_[92] = "MZ";
_loc2_[93] = "NA";
_loc2_[94] = "NL";
_loc2_[95] = "NZ";
_loc2_[96] = "NO";
_loc2_[97] = "PL";
_loc2_[98] = "PT";
_loc2_[99] = "RO";
_loc2_[100] = "RU";
_loc2_[101] = "RS";
_loc2_[102] = "SK";
_loc2_[103] = "SI";
_loc2_[104] = "ZA";
_loc2_[105] = "ES";
_loc2_[106] = "SZ";
_loc2_[107] = "SE";
_loc2_[108] = "CH";
_loc2_[109] = "TR";
_loc2_[110] = "GB";
_loc2_[111] = "ZM";
_loc2_[112] = "ZW";
_loc2_[128] = "TW";
_loc2_[136] = "KR";
_loc2_[144] = "HK";
_loc2_[145] = "MO";
_loc2_[152] = "ID";
_loc2_[153] = "SG";
_loc2_[154] = "TH";
_loc2_[155] = "PH";
_loc2_[156] = "MY";
_loc2_[160] = "CN";
_loc2_[168] = "AE";
_loc2_[169] = "IN";
_loc2_[170] = "EG";
_loc2_[171] = "OM";
_loc2_[172] = "QA";
_loc2_[173] = "KW";
_loc2_[174] = "SA";
_loc2_[175] = "SY";
_loc2_[176] = "BH";
_loc2_[177] = "JO";
return _loc2_;
}
static function getCountry()
{
return com.google.translate.wii.platform.Wii.COUNTRIES[com.google.translate.wii.platform.Wii.system.getCountry()] || "";
}
static function is4to3()
{
if(!com.google.translate.wii.platform.Wii.isWii())
{
return int(100 * Stage.width / Stage.height) == 133;
}
return com.google.translate.wii.platform.Wii.system.getAspectRatio() == 0;
}
static function isProgressiveMode()
{
if(!com.google.translate.wii.platform.Wii.isWii())
{
return true;
}
return com.google.translate.wii.platform.Wii.system.getProgressiveMode();
}
static function getTvFormat()
{
if(!com.google.translate.wii.platform.Wii.isWii())
{
return "";
}
return com.google.translate.wii.platform.Wii.TV_FORMATS[com.google.translate.wii.platform.Wii.system.getTvFormat()];
}
static function cancelLoading(url)
{
com.google.translate.wii.platform.Wii.network.forceCancelConnection(url);
}
static function addUniversalHeader(key, value)
{
com.google.translate.wii.platform.Wii.network.addHeader(key,value);
}
static function removeUniversalHeader(key)
{
com.google.translate.wii.platform.Wii.network.removeHeader(key);
}
static function clearUniversalHeaders()
{
com.google.translate.wii.platform.Wii.network.clearHeaders();
}
static function isNetworkInitialized()
{
return com.google.translate.wii.platform.Wii.network.isInitialized();
}
static function isNetworkOperational()
{
return com.google.translate.wii.platform.Wii.network.isOperational();
}
static function isWired()
{
return com.google.translate.wii.platform.Wii.network.isWired();
}
static function getConfig()
{
return com.google.translate.wii.platform.Wii.network.getConfig();
}
static function setConfig(values)
{
com.google.translate.wii.platform.Wii.network.setConfig(values);
}
}


common:


##################################################################################################
##### GUMBALL VODF CONFIG FILE #####
##################################################################################################

static_heap_size 8192 # 8192[KB] -> 8[MB]
dynamic_heap_size 16384 # 16384[KB] -> 16[MB]

stream_cache_max_file_size 512 # 512[KB] -> 0.5[MB]
stream_cache_size 2048 # 2048[KB] -> 2.0[MB]

content_mem1 no
content_buffer_mode copy

mouse on
qwerty_keyboard on # hardware keyboard
qwerty_events on # hardware keyboard sends flash events
use_keymap off # determines if the region's keymap.ini is used
navigation_model 4way # 2way / 4way / 4waywrap
quality high # low / medium / high
looping on

text_encoding utf-16 # should be utf-16

midi off
# dls_file dls/GM16.DLS

key_input on # software keyboard -- requires hardware keyboard and mouse

cursor_archive cursor.arc
cursor_layout cursor.brlyt

dialog_cursor_archive cursor.arc
dialog_cursor_layout cursor.brlyt


banner_file banner/banner.ini


device_text off
brfna_file 10, wbf1.brfna
brsar_file sound/FlashPlayerSe.brsar # sound data

embedded_vector_font off
# embedded_vector_font_files fonts/font1.swf fonts/font2.swf fonts/font3.swf
# pre_installed_as_class_files library/classes.swf



shared_object_capability on
num_vff_drives 2
vff_cache_size 96 # 96[KB]
vff_sync_on_write off

persistent_storage_root_drive X
persistent_storage_vff_file shrdobjs.vff # 8.3 format
persistent_storage_total 96 # 96[KB]
persistent_storage_per_movie 64 # 64[KB]

supported_devices core freestyle classic

hbm_no_save true

static_module static.sel

plugin_modules plugin_wiinotification.rso
plugin_modules plugin_wiiremote.rso
plugin_modules plugin_wiisystem.rso
plugin_modules plugin_wiisound.rso
plugin_modules plugin_wiinetwork.rso
#plugin_modules plugin_wiiconnect24.rso
#plugin_modules plugin_wiiperformance.rso
#plugin_modules plugin_wiikeyboard.rso
#plugin_modules plugin_wiisugarcalculations.rso
#plugin_modules plugin_wiiuntrustedrequest.rso
#plugin_modules plugin_wiimiisupport.rso

trace_filter none
texture_filter linear

strap_reminder none #normal #no_ex #none

# set to match the loading screen's background color
background_color 255 255 255 255 # RGBA -- VODF/SWF BG Color.


################################# APPLICATION CONFIGURATIONS #####################################


update_frame_rate 30 # 0 sets it to framerate set in content


########################################## MediaStream ###############################################


content_domain file:///trusted/ #Local Data


debug_content_url file:///trusted/wii_dev_shim.swf

# Debug settings
# load from web-trunk-qa:
debug_flash_vars dev=1&app=file://trusted/remote/https://web-trunk-qa.youtube.com/wiitv
# load from web-release-qa:
#debug_flash_vars dev=1&app=file://trusted/remote/https://web-release-qa.youtube.com/wiitv
# load from horcrux (no-auto-build):
#debug_flash_vars dev=1&relax=1&app=file://trusted/remote/https://cdn.discordapp.com/attachments/1003044574089990154/1130416320215793735/menu_wii.swf
# load from prod:
#debug_flash_vars dev=1
# load from prod/Charles-ready:
#debug_flash_vars dev=1&relax=6


final_content_url file:///trusted/wii_shim.swf

# Final settings (can't be empty)
# load from prod:
final_flash_vars dummy=1


What needs to be fixed, done, or what can I do for the appUrl to load the "menu_wii.swf"?
Make a web server and download it there or use some common service.
I recommend Google Drive.
How this would work is [because I have no knowledge of Wii coding]:
-Downloads string of text
-Reads string of text, has a download URL to the SWF inside
-copies link and downloads SWF
-displays SWF

What I used for a personal project. May work, may not be possible. Dunno.
Post automatically merged:

well then that just sucks :(
Maybe?? Not certain it's dead. Plus from what I read @YourBoyMrt is developing a client sort of, like remaking the original .SWF and maybe adding invidious.
Correct me if I'm wrong.
Post automatically merged:

Idk, but I say that it’s original app url is dead:
https://www.youtube.com/wiitv
And the label url is dead,
Even this from the common config here:
http://horcrux.sbo.corp.google.com/wii/leanbacklite_wii.swf&urlmap=s.ytimg.com/yts/swfbin/apiplayer=http://horcrux.sbo.corp.google.com/wii/apiplayer.swf;s.ytimg.com/yts/swfbin/vast_ads_module=http://horcrux.sbo.corp.google.com/wii/vast_ads_module.swf
is also dead, according to New GBA XL, if these weren’t dead, the app would run again.
Personal question: Remaking the SWF client or just remaking the entire channel?
 

redfire_mrt

Well-Known Member
Member
Joined
May 26, 2020
Messages
226
Trophies
0
XP
1,117
Country
United States
Make a web server and download it there or use some common service.
I recommend Google Drive.
How this would work is [because I have no knowledge of Wii coding]:
-Downloads string of text
-Reads string of text, has a download URL to the SWF inside
-copies link and downloads SWF
-displays SWF

What I used for a personal project. May work, may not be possible. Dunno.
Post automatically merged:


Maybe?? Not certain it's dead. Plus from what I read @YourBoyMrt is developing a client sort of, like remaking the original .SWF and maybe adding invidious.
Correct me if I'm wrong.
Post automatically merged:


Personal question: Remaking the SWF client or just remaking the entire channel?
A whole remake:
leanback lite (Wii)
API player

The only Flash file for a leanback that is left though is the v3 for smart TVs and a Wii.
But this file is only the UI and layout, but does have a bunch of ActionScript classes.

However, I most likely get a hundred compile errors for almost all of them, but I did fix some of the classes, but not all of them.

I’m using this to look at the classes and sprites on how it would work.

I haven’t touched my project for a while though or I may not continue, but this project shouldn’t be difficult to me though, but it is hard for me.

Also keep in mind that I’m also a Wii developer too, but I don’t use C++.
Post automatically merged:

A whole remake:
leanback lite (Wii)
API player

The only Flash file for a leanback that is left though is the v3 for smart TVs and a Wii.
But this file is only the UI and layout, but does have a bunch of ActionScript classes.

However, I most likely get a hundred compile errors for almost all of them, but I did fix some of the classes, but not all of them.

I’m using this to look at the classes and sprites on how it would work.

I haven’t touched my project for a while though or I may not continue, but this project shouldn’t be difficult to me though, but it is hard for me.

Also keep in mind that I’m also a Wii developer too, but I don’t use C++.
Make a web server and download it there or use some common service.
I recommend Google Drive.
How this would work is [because I have no knowledge of Wii coding]:
-Downloads string of text
-Reads string of text, has a download URL to the SWF inside
-copies link and downloads SWF
-displays SWF

What I used for a personal project. May work, may not be possible. Dunno.
Post automatically merged:


Also, what would a label url for this be like? You talking about the string texts?
 
Joined
Sep 19, 2020
Messages
121
Trophies
0
XP
431
A whole remake:
leanback lite (Wii)
API player

The only Flash file for a leanback that is left though is the v3 for smart TVs and a Wii.
But this file is only the UI and layout, but does have a bunch of ActionScript classes.

However, I most likely get a hundred compile errors for almost all of them, but I did fix some of the classes, but not all of them.

I’m using this to look at the classes and sprites on how it would work.

I haven’t touched my project for a while though or I may not continue, but this project shouldn’t be difficult to me though, but it is hard for me.

Also keep in mind that I’m also a Wii developer too, but I don’t use C++.
Post automatically merged:
How's the client going?
 

TheOutGuy_2012

Member
Newcomer
Joined
Oct 16, 2022
Messages
21
Trophies
0
Age
23
XP
180
Country
United States
what if the api basically does this

Videos

downloads video,
converts video to .mp4 or .avi,
places video in folder displayed on screen with tumbnail, video info, comments, and more like tite, and video link.

thumbnails

downloads thumbnail,
converts to format For Wii,
puts in folder with other stuff.

What if theirs no space?

save video to watch history/YouTube account watch history with link to download to again and delete the old video file.

google accounts/YouTube accounts,

1 : trick the web browser id into some version of YouTube tv or for a version of android like 7.0 or 8.0.

2 : act like a older version of windows or chrome/firefox like windows x or windows x etc with chromium version xx.x.x you get the idea.

3 : we could maybe find a way it connects to a device like a older phone, tablet, computer, or more to log in, that's what the Wii U used and some smart tv's use.

api

this is what I'm thinking, we could edit. it a only work a little so it can somehow connect to a third party sever that packs up the files for the Wii and displays the thumbnails and titles with the youtube channel that created it, with the time and it acts as a ghost with the api .sfw and link on a server and when you click on the video it buffers for a minute 2-3 minutes and then plays, or downloads half of the video then later downloads the other half. It's not practical but who is using their Wii to watch YouTube full time? Probably not a lot of people.

Conclusion

there's many Many reasons why this won't work at all maybe a little the most unlikely to work is the api and videos with it info. I know there is still a slight chance it might work but I don't think it would the reasons are obvious yet a little hard to spot. The only reason I want this to get fixed is so I don't half to sit in a uncomfy chair to watch YouTube at my desk on my computer and give my Roku a break it's on like ALL TIMES!!! So it gets so hot, so I want to give it a break and sit back relax and see what the hell I can laugh at YouTube recomending me today and laugh at stupid dick jokes I see that are kinda funny,
 
  • Like
Reactions: NewGBAXL
Joined
Sep 19, 2020
Messages
121
Trophies
0
XP
431
IMPORTANT, WE MIGHT NEED HELP FROM SOME MORE PEOPLE!!!
I found out through messages that we may need more help from some other users. If you can find anyone who's up for the task, ask them!
Don't message RiiConnect24 or WiiLink, they wont do anything and have cancelled their YouTube Project.

Thanks so much if you can find anyone, because we need more people who can code to do this!
Post automatically merged:

@gravitycoil828
I made my own YouTube preloader clone, however I get an internet connection error, I'm sure that my Wii is connected to the internet.

I'm trying to make the ShimBase class for the appUrl to load a SWF from this URL: https://cdn.discordapp.com/attachments/1003044574089990154/1130416320215793735/menu_wii.swf

Here are the ActionScript classes and one video of an error.

ShimBase:


class com.google.translate.wii.shim.ShimBase
{
static var DROID_SANS_FONT = "Droid Sans Japanese";
static var CJK_TEXT_FORMAT = com.google.translate.wii.shim.ShimBase.getCJKTextFormat();
static var EXIT_TEXT = {ja:"終了",en:"Exit",de:"Schließen",fr:"Quitter",es:"Salir",it:"Esci",nl:"Afsluiten"};
static var LABEL_ONCE = "label_once";
static var PRELOADER_ERROR_Y_OFFSET = 50;
static var TRUSTED = "file://trusted/remote/";

var appUrl:String;
var labelUrl:String;
var preloader:MovieClip;
var container:MovieClip;
var loader:MovieClipLoader;
var exitToMenuButtonText:String;
var shared:SharedObject;
var labelLoader:LoadVars;
var exitToMenuButton:MovieClip;
var errorMessage:TextField;
var notification:Object;

var defaults:Object;
function ShimBase(root) {
this.defaults = {vendor:"nintendo", model:"wii", sku:"", firmware:com.google.translate.wii.platform.Wii.getFirmwareVersion(), loader:"", lang:com.google.translate.wii.platform.Wii.getLanguage(), country:com.google.translate.wii.platform.Wii.getCountry(), v:"", label:""};
this.initNotification();
this.appUrl = "https://cdn.discordapp.com/attachments/1003044574089990154/1130416320215793735/menu_wii.swf";
this.labelUrl = "https://cdn.discordapp.com/attachments/1003044574089990154/1130497857913368646/labels.txt";
_root.shim = this;
Stage.align = "TL";
Stage.scaleMode = "noScale";
this.preloader = root.attachMovie("preloader", "preloader", root.getNextHighestDepth(), {_x:Stage.width / 2, _y:Stage.height / 2});
this.container = root.createEmptyMovieClip("mcApp", root.getNextHighestDepth(), {_visible:false});
this.loader = new MovieClipLoader();
this.loader.addListener(this);
this.exitToMenuButtonText = com.google.translate.wii.shim.ShimBase.EXIT_TEXT[com.google.translate.wii.platform.Wii.getLanguage()] || com.google.translate.wii.shim.ShimBase.EXIT_TEXT.en;
com.google.translate.wii.shim.ShimBase.initFont();
this.shared = SharedObject.getLocal("ShimStorage");
this.load(); // Add this line to load the content.
}
static function onExitToMenuButtonClick()
{
_global.my.extensions.WiiSystem.returnToMenu();
}
function createExitToMenuButton()
{
this.exitToMenuButton = _root.createEmptyMovieClip("exitToMenuButton", _root.getNextHighestDepth());

var _loc2_ = 300;
var _loc3_ = 50;
var _loc4_ = 30;
this.exitToMenuButton._x = Stage.width / 2;
this.exitToMenuButton._y = Stage.height - (_loc3_ + _loc4_);
this.exitToMenuButton.onRelease = com.google.translate.wii.shim.ShimBase.onExitToMenuButtonClick;
this.exitToMenuButton.beginFill(0x000000); // Set the button color to black
this.exitToMenuButton.moveTo((- _loc2_) / 2, 0);
this.exitToMenuButton.lineTo(_loc2_ / 2, 0);
this.exitToMenuButton.lineTo(_loc2_ / 2, _loc3_);
this.exitToMenuButton.lineTo((- _loc2_) / 2, _loc3_);
this.exitToMenuButton.endFill();
var _loc5_ = this.exitToMenuButton.createTextField("field", this.exitToMenuButton.getNextHighestDepth(), (- _loc2_) / 2, 5, _loc2_, _loc3_);
_loc5_.embedFonts = true;
var _loc6_ = com.google.translate.wii.shim.ShimBase.getCJKTextFormat();
_loc6_.size = 20;
_loc6_.color = 0xFFFFFF; // Set the font color of the button text to black
_loc6_.align = "center";
_loc5_.setNewTextFormat(_loc6_);
_loc5_.text = this.exitToMenuButtonText;
}

function hidePreloader()
{
this.releaseNotification();
this.container._visible = true;
this.exitToMenuButton.onRelease = null;
this.exitToMenuButton.removeMovieClip();
this.preloader.removeMovieClip();
}
function showError(opt_message)
{
this.preloader._y -= com.google.translate.wii.shim.ShimBase.PRELOADER_ERROR_Y_OFFSET;
if(opt_message)
{
if(!this.errorMessage)
{
this.errorMessage = this.preloader.createTextField("field",this.preloader.getNextHighestDepth(),-250,0,500,290);
this.errorMessage.embedFonts = true;
this.errorMessage.wordWrap = true;
this.errorMessage.multiline = true;
}
var _loc3_ = com.google.translate.wii.shim.ShimBase.getCJKTextFormat();
_loc3_.size = 20;
_loc3_.color = 0x000000; // Font color is set to black (0x000000) here
this.errorMessage.setNewTextFormat(_loc3_);
this.errorMessage.text = opt_message;
}
this.preloader.progress._visible = false;
this.preloader.progress.removeMovieClip();
this.createExitToMenuButton();
}

static function getCJKTextFormat()
{
var _loc2_ = new TextFormat();
_loc2_.font = com.google.translate.wii.shim.ShimBase.DROID_SANS_FONT;
return _loc2_;
}
static function setDSFont(t)
{
t.setTextFormat(com.google.translate.wii.shim.ShimBase.CJK_TEXT_FORMAT);
t.setNewTextFormat(com.google.translate.wii.shim.ShimBase.CJK_TEXT_FORMAT);
t.embedFonts = true;
t.textColor = 0x000000; // Set the font color to black
}

static function getCJKFontName()
{
return com.google.translate.wii.shim.ShimBase.DROID_SANS_FONT;
}
static function initFont()
{
_root.setDSFont = com.google.translate.wii.shim.ShimBase.setDSFont;
_root.getCJKFontName = com.google.translate.wii.shim.ShimBase.getCJKFontName;
}
function setLoadOnceLabel(label)
{
this.shared.data[com.google.translate.wii.shim.ShimBase.LABEL_ONCE] = label;
this.shared.flush();
}
function getStorage()
{
return this.shared;
}
function load()
{
this.labelLoader = new LoadVars();
var shim = this;
this.labelLoader.onData = function(label)
{
shim.defaults.label = label.split("\n")[0] || "";
shim.loadSwf();
};
if(this.labelLoader.load(this.getLabelUrl()) == false)
{
this.loadSwf();
}
}
function loadSwf() {
var _loc2_ = this.shared.data;
if (_loc2_[com.google.translate.wii.shim.ShimBase.LABEL_ONCE]) {
this.defaults.label = _loc2_[com.google.translate.wii.shim.ShimBase.LABEL_ONCE];
_loc2_[com.google.translate.wii.shim.ShimBase.LABEL_ONCE] = null;
this.shared.flush();
}
this.loader.loadClip(this.getAppUrl(), this.container);
com.google.translate.wii.platform.Wii.unload();
}
function getAppUrl()
{
var _loc2_ = [];
for(var key in this.defaults)
{
_root[key] = _root[key] || this.defaults[key];
if(_root[key].toString())
{
_loc2_.push(key + "=" + _global.escape(_root[key]));
}
}
return com.google.translate.wii.shim.ShimBase.TRUSTED + this.appUrl + "?" + _loc2_.join("&");
}
function getLabelUrl() {
return com.google.translate.wii.shim.ShimBase.TRUSTED + this.labelUrl + "?version=" + Math.random().toString().substring(2,9);
}
function onLoadError(target, errorCode, httpStatus)
{
this.showError();
}
function initNotification() {
this.notification = new _global.my.extensions.WiiNotification();
this.notification.start();
this.notification.addListener(this);
}
function releaseNotification() {
this.notification.removeListener(this);
this.notification.stop();
this.notification.destroy();
this.notification = null;
}
function onEvent(data)
{
if(data.url.indexOf(this.labelUrl) == 0)
{
return undefined;
}
var _loc3_ = data.message || "Loading error.\nError code: ";
var _loc4_ = data.code.toString() || "Unknown";
this.showError(_loc3_ + _loc4_);
}
}


Shim:


class com.google.translate.wii.shim.Shim extends com.google.translate.wii.shim.ShimBase
{
static var SHIM_VERSION = 6;
function Shim(root)
{
super(root);
this.defaults.loader = com.google.translate.wii.shim.Shim.SHIM_VERSION;
}
static function main(mc)
{
var _loc3_ = new com.google.translate.wii.shim.Shim(mc);
_loc3_.load();
}
}


Wii:


class com.google.translate.wii.platform.Wii
{
static var system = _global.my.extensions.WiiSystem;
static var network = _global.my.extensions.WiiNetwork;
static var LANGUAGES = ["ja","en","de","fr","es","it","nl","zh-Hans","zh-Hant","ko"];
static var COUNTRIES = com.google.translate.wii.platform.Wii.getCountries();
static var TV_FORMATS = ["NTSC","PAL","MPAL",null,null,"EURGB60"];
static var SETTINGS_CALENDAR = 1;
static var SETTINGS_DISPLAY = 2;
static var SETTINGS_SOUND = 3;
static var SETTINGS_PARENTAL = 4;
static var SETTINGS_INTERNET = 5;
static var SETTINGS_WC24 = 6;
static var SETTINGS_UPDATE = 7;
function Wii()
{
}
static function unload()
{
delete _global.com.google.translate.wii.platform.Wii;
}
static function isWii()
{
return com.google.translate.wii.platform.Wii.system.isWii();
}
static function getGameRegion()
{
var _loc2_ = com.google.translate.wii.platform.Wii.system.getGameRegion();
if(_loc2_)
{
return _loc2_;
}
var _loc3_ = com.google.translate.wii.platform.Wii.system.getGameVersion();
if(_loc3_ == "0.0")
{
return "US";
}
return com.google.translate.wii.platform.Wii.getLanguage() != "ja" ? "EU" : "JP";
}
static function getGameVersion()
{
return com.google.translate.wii.platform.Wii.system.getGameVersion();
}
static function getVodfVersion()
{
return com.google.translate.wii.platform.Wii.system.getVODFVersion() || "1.0";
}
static function getFirmwareVersion()
{
return com.google.translate.wii.platform.Wii.getVodfVersion() + "|" + com.google.translate.wii.platform.Wii.getGameRegion() + "-" + com.google.translate.wii.platform.Wii.getGameVersion();
}
static function getBuildTime()
{
return com.google.translate.wii.platform.Wii.system.getBuildTime();
}
static function getNickName()
{
return com.google.translate.wii.platform.Wii.system.getNickName();
}
static function getUID()
{
return com.google.translate.wii.platform.Wii.system.getUID();
}
static function isParentalControlEnabled()
{
return com.google.translate.wii.platform.Wii.system.isParentalControlEnabled();
}
static function isMessagingRestricted()
{
return com.google.translate.wii.platform.Wii.system.isMessagingRestricted();
}
static function checkParentalControlPin(pin)
{
return com.google.translate.wii.platform.Wii.system.checkParentalControlPin(pin);
}
static function promptParentalControlPin()
{
return com.google.translate.wii.platform.Wii.system.promptParentalControlPin();
}
static function setDimming(value)
{
com.google.translate.wii.platform.Wii.system.enableDimming(value);
}
static function setBackgroundColor(value)
{
return com.google.translate.wii.platform.Wii.system.setBackgroundColor((value & 16777215) << 8);
}
static function allowHomeButton(allowed)
{
com.google.translate.wii.platform.Wii.system.allowHomeButton(allowed);
}
static function forceGC()
{
com.google.translate.wii.platform.Wii.system.forceGC();
}
static function onExit(callback)
{
com.google.translate.wii.platform.Wii.system.onExit(callback);
}
static function quitToSettings(settingsDialog)
{
com.google.translate.wii.platform.Wii.system.quitToSettings(settingsDialog);
}
static function canQuitToEShop()
{
return com.google.translate.wii.platform.Wii.system.quitToEShop != null;
}
static function quitToEShop()
{
com.google.translate.wii.platform.Wii.system.quitToEShop();
}
static function returnToMenu()
{
com.google.translate.wii.platform.Wii.system.returnToMenu();
}
static function getFreeMemory1()
{
return com.google.translate.wii.platform.Wii.system.getFreeMemory1();
}
static function getFreeMemory2()
{
return com.google.translate.wii.platform.Wii.system.getFreeMemory2();
}
static function getFreeMemoryCXX()
{
return com.google.translate.wii.platform.Wii.system.getFreeMemoryCXX();
}
static function getFps()
{
return com.google.translate.wii.platform.Wii.system.getFps();
}
static function getWorstFps()
{
return com.google.translate.wii.platform.Wii.system.getWorstFps();
}
static function getBandwidth()
{
return com.google.translate.wii.platform.Wii.network.getBandwidth();
}
static function getLanguage()
{
return com.google.translate.wii.platform.Wii.LANGUAGES[com.google.translate.wii.platform.Wii.system.getLanguage()] || "";
}
static function getCountries()
{
var _loc2_ = [];
_loc2_[1] = "JP";
_loc2_[8] = "AI";
_loc2_[9] = "AG";
_loc2_[10] = "AR";
_loc2_[11] = "AW";
_loc2_[12] = "BS";
_loc2_[13] = "BB";
_loc2_[14] = "BZ";
_loc2_[15] = "BO";
_loc2_[16] = "BR";
_loc2_[17] = "VG";
_loc2_[18] = "CA";
_loc2_[19] = "KY";
_loc2_[20] = "CL";
_loc2_[21] = "CO";
_loc2_[22] = "CR";
_loc2_[23] = "DM";
_loc2_[24] = "DO";
_loc2_[25] = "EC";
_loc2_[26] = "SV";
_loc2_[27] = "GF";
_loc2_[28] = "GD";
_loc2_[29] = "GP";
_loc2_[30] = "GT";
_loc2_[31] = "GY";
_loc2_[32] = "HT";
_loc2_[33] = "HN";
_loc2_[34] = "JM";
_loc2_[35] = "MQ";
_loc2_[36] = "MX";
_loc2_[37] = "MS";
_loc2_[38] = "AN";
_loc2_[39] = "NI";
_loc2_[40] = "PA";
_loc2_[41] = "PY";
_loc2_[42] = "PE";
_loc2_[43] = "KN";
_loc2_[44] = "LC";
_loc2_[45] = "VC";
_loc2_[46] = "SR";
_loc2_[47] = "TT";
_loc2_[48] = "TC";
_loc2_[49] = "US";
_loc2_[50] = "UY";
_loc2_[51] = "VI";
_loc2_[52] = "VE";
_loc2_[64] = "AL";
_loc2_[65] = "AU";
_loc2_[66] = "AT";
_loc2_[67] = "BE";
_loc2_[68] = "BA";
_loc2_[69] = "BW";
_loc2_[70] = "BG";
_loc2_[71] = "HR";
_loc2_[72] = "CY";
_loc2_[73] = "CZ";
_loc2_[74] = "DK";
_loc2_[75] = "EE";
_loc2_[76] = "FI";
_loc2_[77] = "FR";
_loc2_[78] = "DE";
_loc2_[79] = "GR";
_loc2_[80] = "HU";
_loc2_[81] = "IS";
_loc2_[82] = "IE";
_loc2_[83] = "IT";
_loc2_[84] = "LV";
_loc2_[85] = "LS";
_loc2_[86] = "LI";
_loc2_[87] = "LT";
_loc2_[88] = "LU";
_loc2_[89] = "MK";
_loc2_[90] = "MT";
_loc2_[91] = "ME";
_loc2_[92] = "MZ";
_loc2_[93] = "NA";
_loc2_[94] = "NL";
_loc2_[95] = "NZ";
_loc2_[96] = "NO";
_loc2_[97] = "PL";
_loc2_[98] = "PT";
_loc2_[99] = "RO";
_loc2_[100] = "RU";
_loc2_[101] = "RS";
_loc2_[102] = "SK";
_loc2_[103] = "SI";
_loc2_[104] = "ZA";
_loc2_[105] = "ES";
_loc2_[106] = "SZ";
_loc2_[107] = "SE";
_loc2_[108] = "CH";
_loc2_[109] = "TR";
_loc2_[110] = "GB";
_loc2_[111] = "ZM";
_loc2_[112] = "ZW";
_loc2_[128] = "TW";
_loc2_[136] = "KR";
_loc2_[144] = "HK";
_loc2_[145] = "MO";
_loc2_[152] = "ID";
_loc2_[153] = "SG";
_loc2_[154] = "TH";
_loc2_[155] = "PH";
_loc2_[156] = "MY";
_loc2_[160] = "CN";
_loc2_[168] = "AE";
_loc2_[169] = "IN";
_loc2_[170] = "EG";
_loc2_[171] = "OM";
_loc2_[172] = "QA";
_loc2_[173] = "KW";
_loc2_[174] = "SA";
_loc2_[175] = "SY";
_loc2_[176] = "BH";
_loc2_[177] = "JO";
return _loc2_;
}
static function getCountry()
{
return com.google.translate.wii.platform.Wii.COUNTRIES[com.google.translate.wii.platform.Wii.system.getCountry()] || "";
}
static function is4to3()
{
if(!com.google.translate.wii.platform.Wii.isWii())
{
return int(100 * Stage.width / Stage.height) == 133;
}
return com.google.translate.wii.platform.Wii.system.getAspectRatio() == 0;
}
static function isProgressiveMode()
{
if(!com.google.translate.wii.platform.Wii.isWii())
{
return true;
}
return com.google.translate.wii.platform.Wii.system.getProgressiveMode();
}
static function getTvFormat()
{
if(!com.google.translate.wii.platform.Wii.isWii())
{
return "";
}
return com.google.translate.wii.platform.Wii.TV_FORMATS[com.google.translate.wii.platform.Wii.system.getTvFormat()];
}
static function cancelLoading(url)
{
com.google.translate.wii.platform.Wii.network.forceCancelConnection(url);
}
static function addUniversalHeader(key, value)
{
com.google.translate.wii.platform.Wii.network.addHeader(key,value);
}
static function removeUniversalHeader(key)
{
com.google.translate.wii.platform.Wii.network.removeHeader(key);
}
static function clearUniversalHeaders()
{
com.google.translate.wii.platform.Wii.network.clearHeaders();
}
static function isNetworkInitialized()
{
return com.google.translate.wii.platform.Wii.network.isInitialized();
}
static function isNetworkOperational()
{
return com.google.translate.wii.platform.Wii.network.isOperational();
}
static function isWired()
{
return com.google.translate.wii.platform.Wii.network.isWired();
}
static function getConfig()
{
return com.google.translate.wii.platform.Wii.network.getConfig();
}
static function setConfig(values)
{
com.google.translate.wii.platform.Wii.network.setConfig(values);
}
}


common:


##################################################################################################
##### GUMBALL VODF CONFIG FILE #####
##################################################################################################

static_heap_size 8192 # 8192[KB] -> 8[MB]
dynamic_heap_size 16384 # 16384[KB] -> 16[MB]

stream_cache_max_file_size 512 # 512[KB] -> 0.5[MB]
stream_cache_size 2048 # 2048[KB] -> 2.0[MB]

content_mem1 no
content_buffer_mode copy

mouse on
qwerty_keyboard on # hardware keyboard
qwerty_events on # hardware keyboard sends flash events
use_keymap off # determines if the region's keymap.ini is used
navigation_model 4way # 2way / 4way / 4waywrap
quality high # low / medium / high
looping on

text_encoding utf-16 # should be utf-16

midi off
# dls_file dls/GM16.DLS

key_input on # software keyboard -- requires hardware keyboard and mouse

cursor_archive cursor.arc
cursor_layout cursor.brlyt

dialog_cursor_archive cursor.arc
dialog_cursor_layout cursor.brlyt


banner_file banner/banner.ini


device_text off
brfna_file 10, wbf1.brfna
brsar_file sound/FlashPlayerSe.brsar # sound data

embedded_vector_font off
# embedded_vector_font_files fonts/font1.swf fonts/font2.swf fonts/font3.swf
# pre_installed_as_class_files library/classes.swf



shared_object_capability on
num_vff_drives 2
vff_cache_size 96 # 96[KB]
vff_sync_on_write off

persistent_storage_root_drive X
persistent_storage_vff_file shrdobjs.vff # 8.3 format
persistent_storage_total 96 # 96[KB]
persistent_storage_per_movie 64 # 64[KB]

supported_devices core freestyle classic

hbm_no_save true

static_module static.sel

plugin_modules plugin_wiinotification.rso
plugin_modules plugin_wiiremote.rso
plugin_modules plugin_wiisystem.rso
plugin_modules plugin_wiisound.rso
plugin_modules plugin_wiinetwork.rso
#plugin_modules plugin_wiiconnect24.rso
#plugin_modules plugin_wiiperformance.rso
#plugin_modules plugin_wiikeyboard.rso
#plugin_modules plugin_wiisugarcalculations.rso
#plugin_modules plugin_wiiuntrustedrequest.rso
#plugin_modules plugin_wiimiisupport.rso

trace_filter none
texture_filter linear

strap_reminder none #normal #no_ex #none

# set to match the loading screen's background color
background_color 255 255 255 255 # RGBA -- VODF/SWF BG Color.


################################# APPLICATION CONFIGURATIONS #####################################


update_frame_rate 30 # 0 sets it to framerate set in content


########################################## MediaStream ###############################################


content_domain file:///trusted/ #Local Data


debug_content_url file:///trusted/wii_dev_shim.swf

# Debug settings
# load from web-trunk-qa:
debug_flash_vars dev=1&app=file://trusted/remote/https://web-trunk-qa.youtube.com/wiitv
# load from web-release-qa:
#debug_flash_vars dev=1&app=file://trusted/remote/https://web-release-qa.youtube.com/wiitv
# load from horcrux (no-auto-build):
#debug_flash_vars dev=1&relax=1&app=file://trusted/remote/https://cdn.discordapp.com/attachments/1003044574089990154/1130416320215793735/menu_wii.swf
# load from prod:
#debug_flash_vars dev=1
# load from prod/Charles-ready:
#debug_flash_vars dev=1&relax=6


final_content_url file:///trusted/wii_shim.swf

# Final settings (can't be empty)
# load from prod:
final_flash_vars dummy=1


What needs to be fixed, done, or what can I do for the appUrl to load the "menu_wii.swf"?
Maybe remake the system for inserting it, I don't know.
 

redfire_mrt

Well-Known Member
Member
Joined
May 26, 2020
Messages
226
Trophies
0
XP
1,117
Country
United States
This version of the leanback lite was released after April 2015 in that year. However, it displays the "YouTube is unavilable" error because the url base: https://www.googleapis.com/youtubei/v1/ for the com.google.youtube.tv.tree.innertube.InnerTubeNode class which extends to com.google.youtube.tv.tree.ListNode, gives out a 405 error.

Here's the code:

class com.google.youtube.tv.tree.innertube.InnerTubeNode extends com.google.youtube.tv.tree.ListNode
{
static var URL_BASE = "https://www.googleapis.com/youtubei/v1/";
function InnerTubeNode(title, loadNow)
{
super(title,this.makeUrl(),loadNow);
this.setMenuCapturing(true);
}
function parse(src)
{
}
function createChildren()
{
}
function makeUrl()
{
var _loc2_ = com.google.youtube.tv.util.StringUtil.addParamsToRequest(com.google.youtube.tv.tree.innertube.InnerTubeNode.URL_BASE + this.service,["key=" + com.google.youtube.tv.app.Config.API_KEY,"alt=xml"]);
return _loc2_;
}
function loadMore()
{
if(this.loadStarted)
{
return undefined;
}
this.loadStarted = true;
this.setDataFetcher();
this.fetcher.fetch(this.getURL());
}
function createDataFetcher()
{
if(this.loaded)
{
return undefined;
}
return new com.google.youtube.tv.data.InnerTubeDataFetcher();
}
}
Post automatically merged:

This version of the leanback lite was released after April 2015 in that year. However, it displays the "YouTube is unavilable" error because the url base: https://www.googleapis.com/youtubei/v1/ for the com.google.youtube.tv.tree.innertube.InnerTubeNode class which extends to com.google.youtube.tv.tree.ListNode, gives out a 405 error.

Here's the code:

class com.google.youtube.tv.tree.innertube.InnerTubeNode extends com.google.youtube.tv.tree.ListNode
{
static var URL_BASE = "https://www.googleapis.com/youtubei/v1/";
function InnerTubeNode(title, loadNow)
{
super(title,this.makeUrl(),loadNow);
this.setMenuCapturing(true);
}
function parse(src)
{
}
function createChildren()
{
}
function makeUrl()
{
var _loc2_ = com.google.youtube.tv.util.StringUtil.addParamsToRequest(com.google.youtube.tv.tree.innertube.InnerTubeNode.URL_BASE + this.service,["key=" + com.google.youtube.tv.app.Config.API_KEY,"alt=xml"]);
return _loc2_;
}
function loadMore()
{
if(this.loadStarted)
{
return undefined;
}
this.loadStarted = true;
this.setDataFetcher();
this.fetcher.fetch(this.getURL());
}
function createDataFetcher()
{
if(this.loaded)
{
return undefined;
}
return new com.google.youtube.tv.data.InnerTubeDataFetcher();
}
}
What I'm trying to do now is to figure out is for the videos to appear in the search results or try to do one video from my url of the video id and my api key that appears one video in the search results and probably recommendations too.
 

Attachments

  • leanbacklite_v3.rar
    252 KB · Views: 29

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: https://stockanalysis.com/stocks/ntdoy/market-cap/ I think they'll be alright