mirror of
https://github.com/rvtr/debug-dsi-shop.git
synced 2025-10-31 06:01:07 -04:00
New layout
This commit is contained in:
parent
55c494b460
commit
c6adcd0e9c
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
*.DS_[Ss]tore
|
||||
*._*
|
||||
.jekyll-metadata
|
||||
.jekyll-cache
|
||||
_site
|
||||
6
Gemfile
Normal file
6
Gemfile
Normal file
@ -0,0 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
source "https://rubygems.org"
|
||||
|
||||
# gem "rails"
|
||||
gem "jekyll"
|
||||
70
Gemfile.lock
Normal file
70
Gemfile.lock
Normal file
@ -0,0 +1,70 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.5)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
colorator (1.1.0)
|
||||
concurrent-ruby (1.2.2)
|
||||
em-websocket (0.5.3)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0)
|
||||
eventmachine (1.2.7)
|
||||
ffi (1.16.3)
|
||||
forwardable-extended (2.6.0)
|
||||
google-protobuf (3.25.1-x86_64-darwin)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (1.14.1)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.3.2)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 1.0)
|
||||
jekyll-sass-converter (>= 2.0, < 4.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (~> 2.3, >= 2.3.1)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
liquid (~> 4.0)
|
||||
mercenary (>= 0.3.6, < 0.5)
|
||||
pathutil (~> 0.9)
|
||||
rouge (>= 3.0, < 5.0)
|
||||
safe_yaml (~> 1.0)
|
||||
terminal-table (>= 1.8, < 4.0)
|
||||
webrick (~> 1.7)
|
||||
jekyll-sass-converter (3.0.0)
|
||||
sass-embedded (~> 1.54)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
kramdown (2.4.0)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.4)
|
||||
listen (3.8.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.4.0)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (5.0.3)
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.6)
|
||||
rouge (4.2.0)
|
||||
safe_yaml (1.0.5)
|
||||
sass-embedded (1.69.5-x86_64-darwin)
|
||||
google-protobuf (~> 3.23)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
unicode-display_width (2.5.0)
|
||||
webrick (1.8.1)
|
||||
|
||||
PLATFORMS
|
||||
x86_64-darwin-21
|
||||
|
||||
DEPENDENCIES
|
||||
jekyll
|
||||
|
||||
BUNDLED WITH
|
||||
2.4.17
|
||||
@ -1,11 +1,6 @@
|
||||
---
|
||||
title: DSi Shop
|
||||
title: ec deviceinfo
|
||||
layout: dsiware
|
||||
---
|
||||
<center>
|
||||
<iframe src="ec_deviceInfo_u.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
<br>
|
||||
<iframe src="ec_deviceInfo_d.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
</center>
|
||||
<object data="ec_deviceInfo_u.html"></object>
|
||||
<object data="ec_deviceInfo_d.html"></object>
|
||||
|
||||
@ -1,374 +1,6 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title></title>
|
||||
<link rel="stylesheet" type="text/css" href="../../common/css/default.css">
|
||||
<style>
|
||||
body
|
||||
{
|
||||
font-size: 10px;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
#output
|
||||
{
|
||||
background-color: #CCFFCC;
|
||||
}
|
||||
#progress
|
||||
{
|
||||
background-image: url("progress_bar.gif");
|
||||
background-repeat: no-repeat;
|
||||
background-position: -216px 0px;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" src="../common/js/default.js"></script>
|
||||
<script type="text/javascript" src="ec.js"></script>
|
||||
<script type="text/javascript" src="syncEc.js"></script>
|
||||
<script>
|
||||
<!--
|
||||
/*---------- グローバル変数 ----------*/
|
||||
var ec = new ECommerceInterface();
|
||||
var gStartDate = 0;
|
||||
var gShowProgerss = true; //プログレスバーを表示するかのフラグ
|
||||
var gTitleId = 0;
|
||||
|
||||
/*---------- デバッグ出力 ----------*/
|
||||
function Print( mes )
|
||||
{
|
||||
output.innerHTML += mes + "<br>";
|
||||
}
|
||||
function PrintError( progress )
|
||||
{
|
||||
Print( "status : " + progress.status );
|
||||
Print( "operation : " + progress.operation );
|
||||
Print( "totalSize : " + progress.totalSize );
|
||||
Print( "downloadedSize : " + progress.downloadedSize );
|
||||
Print( "errCode : " + progress.errCode );
|
||||
Print( "errInfo : " + progress.errInfo );
|
||||
Print( "phase : " + progress.phase );
|
||||
Print( "isCancelRequested : " + progress.isCancelRequested );
|
||||
Print( "description : " + progress.description );
|
||||
}
|
||||
function ClearDebugMessages( first_mes )
|
||||
{
|
||||
output.innerHTML = first_mes + "<br>";
|
||||
}
|
||||
/*
|
||||
最初のオペレーションのエラーチェック
|
||||
*/
|
||||
function CheckStartOperation( progress )
|
||||
{
|
||||
if ( progress == null )
|
||||
{
|
||||
Print("ASSERT progress == null : " + progress);
|
||||
return ( false );
|
||||
}
|
||||
else if ( progress.status < 0 && progress.status != EC_ERROR_NOT_DONE )
|
||||
{
|
||||
Print("Error StartOperation!");
|
||||
PrintError( progress );
|
||||
return ( false );
|
||||
}
|
||||
else
|
||||
{
|
||||
return ( true );
|
||||
}
|
||||
}
|
||||
/*
|
||||
ec.getProgress() のエラーチェック
|
||||
*/
|
||||
function CheckProgress( progress )
|
||||
{
|
||||
if ( progress == null )
|
||||
{
|
||||
Print("ASSERT progress == null : " + progress);
|
||||
return ( false );
|
||||
}
|
||||
else if ( progress.status < 0 )
|
||||
{
|
||||
Print("Error Progress!");
|
||||
PrintError( progress );
|
||||
return ( false );
|
||||
}
|
||||
else
|
||||
{
|
||||
return ( true );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
プログレスバーを更新
|
||||
*/
|
||||
var PROGRESS_BAR_WIDTH = 216;
|
||||
function UpdateProgressBar( downloaded, total )
|
||||
{
|
||||
var pos = -1 * PROGRESS_BAR_WIDTH;
|
||||
if ( total != 0 )
|
||||
pos = PROGRESS_BAR_WIDTH * downloaded / total - PROGRESS_BAR_WIDTH;
|
||||
if ( pos > 0 )
|
||||
pos = 0;
|
||||
progress.style.backgroundPosition = pos + "px 0px";
|
||||
}
|
||||
|
||||
/*---------- 初期化処理 ----------*/
|
||||
function InitEc()
|
||||
{
|
||||
/*
|
||||
var ecsUrl = "https://ecs.shop.wii.com/ecs/services/ECommerceSOAP";
|
||||
var iasUrl = "https://ias.shop.wii.com/ias/services/IdentityAuthenticationSOAP";
|
||||
var casUrl = "https://cas.shop.wii.com/cas/services/CatalogingSOAP";
|
||||
var ccsUrl = "http://ccs.shop.wii.com/ccs/download";
|
||||
var ucsUrl = "http://ccs.shop.wii.com/ccs/download";
|
||||
*/
|
||||
var ecsUrl = "https://ecs.t.shop.nintendowifi.net/ecs/services/ECommerceSOAP";
|
||||
var iasUrl = "https://ias.t.shop.nintendowifi.net/ias/services/IdentityAuthenticationSOAP";
|
||||
var casUrl = "https://cas.t.shop.nintendowifi.net/cas/services/CatalogingSOAP";
|
||||
var ccsUrl = "http://ccs.t.shop.nintendowifi.net/ccs/download";
|
||||
var ucsUrl = "http://ccs.t.shop.nintendowifi.net/ccs/download";
|
||||
|
||||
ec.setWebSvcUrls (ecsUrl, iasUrl, casUrl);
|
||||
ec.setContentUrls (ccsUrl, ucsUrl);
|
||||
}
|
||||
|
||||
/*----------------------------------------
|
||||
■ メモ
|
||||
[ 基本的な流れ ]
|
||||
ec.purchaseTitle などの処理をしたい関数を一度呼び、
|
||||
ec.getProgress を EC_ERROR_NOT_DONE 以外になるまで定期的に呼びます。
|
||||
|
||||
[ 便利関数 ]
|
||||
上記の基本的な流れを3つの便利関数で行っています
|
||||
▽ CheckStartOperation
|
||||
ec.purchaseTitle などの処理をしたい関数のエラーチェック関数
|
||||
エラー時は自動的にログ出力
|
||||
▽ SyncEc( "ec.getProgress()" )
|
||||
ec.getProgress を同期処理で EC_ERROR_NOT_DONE 以外になるまで呼び続けます
|
||||
▽ CheckProgress
|
||||
上記の SyncEc のエラーチェック関数。
|
||||
エラー時は自動的にログ出力
|
||||
----------------------------------------*/
|
||||
|
||||
/*---------- 各ボタンの処理 ----------*/
|
||||
/*
|
||||
タイトル(アプリ)の購入
|
||||
amount(金額)も含めて全て文字列で
|
||||
*/
|
||||
function PurchaseTitle( titleId, itemId, amount )
|
||||
{
|
||||
var kong_ = new Kong();
|
||||
//kong_.ShowLoadingIcon();
|
||||
|
||||
ClearDebugMessages("PurchaseTitle");
|
||||
|
||||
var price = new ECPrice( amount, "POINTS");
|
||||
var payment = new ECAccountPayment(); // default is vcid account
|
||||
var limits = new ECTitleLimits(); // default is no limits
|
||||
|
||||
var downloadContent = true;
|
||||
var taxes = null;
|
||||
var purchaseInfo = null;
|
||||
var discount = null;
|
||||
|
||||
var progress = ec.purchaseTitle (titleId, itemId,
|
||||
price, payment,
|
||||
limits,
|
||||
downloadContent, // optional
|
||||
taxes, // optional
|
||||
purchaseInfo, // optional
|
||||
discount); // optional
|
||||
if ( ! CheckStartOperation( progress ) )
|
||||
return(0);
|
||||
/*
|
||||
if ( ! CheckProgress( SyncEc( "ec.getProgress()" ) ) )
|
||||
return(0);
|
||||
*/
|
||||
|
||||
if ( gShowProgerss ) kong_.ShowProgressBar();
|
||||
|
||||
gTitleId = titleId;
|
||||
|
||||
gStartDate = new Date();
|
||||
DownloadStatusUpdate();
|
||||
|
||||
Print("Success." );
|
||||
}
|
||||
|
||||
/*
|
||||
フォームの内容で PurchaseTitle
|
||||
*/
|
||||
function PurchaseTitleFromForm()
|
||||
{
|
||||
var titleId = app.titleId.value;
|
||||
var itemId = app.itemId.value;
|
||||
var amount = app.amount.value;
|
||||
PurchaseTitle( titleId, itemId, amount );
|
||||
}
|
||||
|
||||
/*
|
||||
ダウンロード状況を更新
|
||||
*/
|
||||
function DownloadStatusUpdate()
|
||||
{
|
||||
var progress = ec.getProgress();
|
||||
var kong_ = new Kong();
|
||||
if ( progress.status == EC_ERROR_NOT_DONE )
|
||||
{
|
||||
//ダウンロード中
|
||||
ClearDebugMessages("Downloading...");
|
||||
|
||||
var nowDate = new Date();
|
||||
var time = nowDate.getTime() - gStartDate.getTime();
|
||||
Print("Time : " + time + "[ms]");
|
||||
|
||||
if ( progress.totalSize != 0 )
|
||||
Print( progress.downloadedSize + "/" + progress.totalSize + "[bytes]");
|
||||
if ( gShowProgerss ) kong_.UpdateProgressBar( progress.downloadedSize, progress.totalSize );
|
||||
UpdateProgressBar( progress.downloadedSize, progress.totalSize );
|
||||
setTimeout( "DownloadStatusUpdate()", 1 ); //todo interval
|
||||
}
|
||||
else if ( progress.status < 0 )
|
||||
{
|
||||
//ダウンロード失敗
|
||||
ClearDebugMessages("Download Failed.");
|
||||
PrintError( progress );
|
||||
if ( gShowProgerss ) kong_.HideProgressBar();
|
||||
//kong_.HideLoadingIcon();
|
||||
}
|
||||
else
|
||||
{
|
||||
//ダウンロード成功
|
||||
ClearDebugMessages("Download Succeed.");
|
||||
|
||||
var nowDate = new Date();
|
||||
var time = nowDate.getTime() - gStartDate.getTime();
|
||||
Print("Time : " + time + "[ms]");
|
||||
|
||||
Print( progress.totalSize + "[bytes]");
|
||||
|
||||
if ( gShowProgerss ) kong_.UpdateProgressBar( progress.downloadedSize, progress.totalSize );
|
||||
UpdateProgressBar( progress.downloadedSize, progress.totalSize );
|
||||
|
||||
kong_.FinishDownload( String( gTitleId ) );
|
||||
|
||||
if ( gShowProgerss )
|
||||
{
|
||||
setTimeout( WaitProgressBarAnimFinished, 500 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
プログレスバーのアニメ終了待ち
|
||||
*/
|
||||
function WaitProgressBarAnimFinished()
|
||||
{
|
||||
var kong_ = new Kong();
|
||||
if ( kong_.IsProgressBarAnimFinished() == false )
|
||||
{
|
||||
setTimeout( WaitProgressBarAnimFinished, 500 );
|
||||
}
|
||||
else
|
||||
{
|
||||
kong_.HideProgressBar();
|
||||
//kong_.HideLoadingIcon();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
アプリのダウンロード
|
||||
ダウンロードするには先に購入(PurchaseTitle)する必要があります
|
||||
*/
|
||||
function Download( titleId )
|
||||
{
|
||||
gTitleId = titleId;
|
||||
|
||||
var kong_ = new Kong();
|
||||
//kong_.ShowLoadingIcon();
|
||||
|
||||
ClearDebugMessages("Download");
|
||||
|
||||
gStartDate = new Date();
|
||||
|
||||
if ( ! CheckStartOperation( ec.downloadTitle (titleId) ) )
|
||||
return(0);
|
||||
|
||||
if ( gShowProgerss ) kong_.ShowProgressBar();
|
||||
|
||||
DownloadStatusUpdate();
|
||||
}
|
||||
|
||||
/*
|
||||
フォームの内容で Download
|
||||
*/
|
||||
function DownloadFromForm()
|
||||
{
|
||||
var titleId = app.titleId.value;
|
||||
Download( titleId );
|
||||
}
|
||||
|
||||
/*
|
||||
フォームに option タグの内容を反映
|
||||
*/
|
||||
function SetFormValue()
|
||||
{
|
||||
var id = new Array();
|
||||
id = app.idset.value.split(",");
|
||||
app.titleId.value = id[0];
|
||||
app.itemId.value = id[1];
|
||||
app.amount.value = id[2];
|
||||
}
|
||||
|
||||
-->
|
||||
</script>
|
||||
</head>
|
||||
<body onload="InitEc();">
|
||||
<form id="app">
|
||||
<table border="1">
|
||||
<tr>
|
||||
<td>titleId</td>
|
||||
<td><input type="text" maxlength="16" size="22" id="titleId" onMouseDown="ActiveKeyboard(1, 'titleId', 1);" value="00030004444D3030"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>itemId</td>
|
||||
<td><input type="text" maxlength="6" size="7" id="itemId" onMouseDown="ActiveKeyboard(0, 'itemId');" value="101488"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>amount</td>
|
||||
<td><input type="text" maxlength="8" size="11" id="amount" onMouseDown="ActiveKeyboard(0, 'amount(金額)');" value="0"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<select onChange="SetFormValue()" id="idset" size="2">
|
||||
<option value='0003000022A733A2,101486,0'>test_twl_game</option>
|
||||
<option value='00030004444D3030,101488,0'>twl-dm00</option>
|
||||
<option value='00030004444D3032,101487,0'>twl-dm02</option>
|
||||
<option value='00030004444D3033,101489,0'>twl-dm03</option>
|
||||
<option value='00030004444D3034,,'>twl-dm04</option>
|
||||
<option value='00030004444D3130,101489,0'>twl-dm10</option>
|
||||
<option value='00030004444D3131,101490,0'>twl-dm11</option>
|
||||
<option value='00030004444D3330,101491,0'>twl-dm30</option>
|
||||
<option value='000300044B5A3241,101493,0'>kz2a</option>
|
||||
<option value='0003000434617841,101499,0'>4axA(18MB)</option>
|
||||
<option value='0003000434617941,101500,0'>4ayA(18MB)</option>
|
||||
<option value='0003000434617A41,101501,0'>4azA(18MB)</option>
|
||||
<option value='0003000434564341,101688,0'>4vcA(SAVE)</option>
|
||||
<option value='0003000434564441,101689,0'>4vdA(SAVE)</option>
|
||||
<option value='0003000434564541,101690,0'>4veA(SAVE)</option>
|
||||
</select>
|
||||
</form>
|
||||
<div>
|
||||
<button onClick="PurchaseTitleFromForm();">PurchaseTitle</button>
|
||||
<button onClick="DownloadFromForm();">Download</button>
|
||||
</div>
|
||||
<!--
|
||||
省スペースな a タグ版
|
||||
<div>
|
||||
<a href="javascript:void(0);" onClick="PurchaseTitleFromForm();">PurchaseTitle</a>
|
||||
<a href="javascript:void(0);" onClick="DownloadFromForm();">Download</a>
|
||||
</div>
|
||||
-->
|
||||
<div id="progress">
|
||||
<img src="progress_bar_border.gif">
|
||||
</div>
|
||||
<div id="output"></div>
|
||||
</body>
|
||||
</html>
|
||||
---
|
||||
title: ec download
|
||||
layout: dsiware
|
||||
---
|
||||
<object data="../index_u.html"></object>
|
||||
<object data="ec_download_d.html"></object>
|
||||
374
NCL/ec/ec_download_d.html
Normal file
374
NCL/ec/ec_download_d.html
Normal file
@ -0,0 +1,374 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title></title>
|
||||
<link rel="stylesheet" type="text/css" href="../../common/css/default.css">
|
||||
<style>
|
||||
body
|
||||
{
|
||||
font-size: 10px;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
#output
|
||||
{
|
||||
background-color: #CCFFCC;
|
||||
}
|
||||
#progress
|
||||
{
|
||||
background-image: url("progress_bar.gif");
|
||||
background-repeat: no-repeat;
|
||||
background-position: -216px 0px;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" src="../common/js/default.js"></script>
|
||||
<script type="text/javascript" src="ec.js"></script>
|
||||
<script type="text/javascript" src="syncEc.js"></script>
|
||||
<script>
|
||||
<!--
|
||||
/*---------- グローバル変数 ----------*/
|
||||
var ec = new ECommerceInterface();
|
||||
var gStartDate = 0;
|
||||
var gShowProgerss = true; //プログレスバーを表示するかのフラグ
|
||||
var gTitleId = 0;
|
||||
|
||||
/*---------- デバッグ出力 ----------*/
|
||||
function Print( mes )
|
||||
{
|
||||
output.innerHTML += mes + "<br>";
|
||||
}
|
||||
function PrintError( progress )
|
||||
{
|
||||
Print( "status : " + progress.status );
|
||||
Print( "operation : " + progress.operation );
|
||||
Print( "totalSize : " + progress.totalSize );
|
||||
Print( "downloadedSize : " + progress.downloadedSize );
|
||||
Print( "errCode : " + progress.errCode );
|
||||
Print( "errInfo : " + progress.errInfo );
|
||||
Print( "phase : " + progress.phase );
|
||||
Print( "isCancelRequested : " + progress.isCancelRequested );
|
||||
Print( "description : " + progress.description );
|
||||
}
|
||||
function ClearDebugMessages( first_mes )
|
||||
{
|
||||
output.innerHTML = first_mes + "<br>";
|
||||
}
|
||||
/*
|
||||
最初のオペレーションのエラーチェック
|
||||
*/
|
||||
function CheckStartOperation( progress )
|
||||
{
|
||||
if ( progress == null )
|
||||
{
|
||||
Print("ASSERT progress == null : " + progress);
|
||||
return ( false );
|
||||
}
|
||||
else if ( progress.status < 0 && progress.status != EC_ERROR_NOT_DONE )
|
||||
{
|
||||
Print("Error StartOperation!");
|
||||
PrintError( progress );
|
||||
return ( false );
|
||||
}
|
||||
else
|
||||
{
|
||||
return ( true );
|
||||
}
|
||||
}
|
||||
/*
|
||||
ec.getProgress() のエラーチェック
|
||||
*/
|
||||
function CheckProgress( progress )
|
||||
{
|
||||
if ( progress == null )
|
||||
{
|
||||
Print("ASSERT progress == null : " + progress);
|
||||
return ( false );
|
||||
}
|
||||
else if ( progress.status < 0 )
|
||||
{
|
||||
Print("Error Progress!");
|
||||
PrintError( progress );
|
||||
return ( false );
|
||||
}
|
||||
else
|
||||
{
|
||||
return ( true );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
プログレスバーを更新
|
||||
*/
|
||||
var PROGRESS_BAR_WIDTH = 216;
|
||||
function UpdateProgressBar( downloaded, total )
|
||||
{
|
||||
var pos = -1 * PROGRESS_BAR_WIDTH;
|
||||
if ( total != 0 )
|
||||
pos = PROGRESS_BAR_WIDTH * downloaded / total - PROGRESS_BAR_WIDTH;
|
||||
if ( pos > 0 )
|
||||
pos = 0;
|
||||
progress.style.backgroundPosition = pos + "px 0px";
|
||||
}
|
||||
|
||||
/*---------- 初期化処理 ----------*/
|
||||
function InitEc()
|
||||
{
|
||||
/*
|
||||
var ecsUrl = "https://ecs.shop.wii.com/ecs/services/ECommerceSOAP";
|
||||
var iasUrl = "https://ias.shop.wii.com/ias/services/IdentityAuthenticationSOAP";
|
||||
var casUrl = "https://cas.shop.wii.com/cas/services/CatalogingSOAP";
|
||||
var ccsUrl = "http://ccs.shop.wii.com/ccs/download";
|
||||
var ucsUrl = "http://ccs.shop.wii.com/ccs/download";
|
||||
*/
|
||||
var ecsUrl = "https://ecs.t.shop.nintendowifi.net/ecs/services/ECommerceSOAP";
|
||||
var iasUrl = "https://ias.t.shop.nintendowifi.net/ias/services/IdentityAuthenticationSOAP";
|
||||
var casUrl = "https://cas.t.shop.nintendowifi.net/cas/services/CatalogingSOAP";
|
||||
var ccsUrl = "http://ccs.t.shop.nintendowifi.net/ccs/download";
|
||||
var ucsUrl = "http://ccs.t.shop.nintendowifi.net/ccs/download";
|
||||
|
||||
ec.setWebSvcUrls (ecsUrl, iasUrl, casUrl);
|
||||
ec.setContentUrls (ccsUrl, ucsUrl);
|
||||
}
|
||||
|
||||
/*----------------------------------------
|
||||
■ メモ
|
||||
[ 基本的な流れ ]
|
||||
ec.purchaseTitle などの処理をしたい関数を一度呼び、
|
||||
ec.getProgress を EC_ERROR_NOT_DONE 以外になるまで定期的に呼びます。
|
||||
|
||||
[ 便利関数 ]
|
||||
上記の基本的な流れを3つの便利関数で行っています
|
||||
▽ CheckStartOperation
|
||||
ec.purchaseTitle などの処理をしたい関数のエラーチェック関数
|
||||
エラー時は自動的にログ出力
|
||||
▽ SyncEc( "ec.getProgress()" )
|
||||
ec.getProgress を同期処理で EC_ERROR_NOT_DONE 以外になるまで呼び続けます
|
||||
▽ CheckProgress
|
||||
上記の SyncEc のエラーチェック関数。
|
||||
エラー時は自動的にログ出力
|
||||
----------------------------------------*/
|
||||
|
||||
/*---------- 各ボタンの処理 ----------*/
|
||||
/*
|
||||
タイトル(アプリ)の購入
|
||||
amount(金額)も含めて全て文字列で
|
||||
*/
|
||||
function PurchaseTitle( titleId, itemId, amount )
|
||||
{
|
||||
var kong_ = new Kong();
|
||||
//kong_.ShowLoadingIcon();
|
||||
|
||||
ClearDebugMessages("PurchaseTitle");
|
||||
|
||||
var price = new ECPrice( amount, "POINTS");
|
||||
var payment = new ECAccountPayment(); // default is vcid account
|
||||
var limits = new ECTitleLimits(); // default is no limits
|
||||
|
||||
var downloadContent = true;
|
||||
var taxes = null;
|
||||
var purchaseInfo = null;
|
||||
var discount = null;
|
||||
|
||||
var progress = ec.purchaseTitle (titleId, itemId,
|
||||
price, payment,
|
||||
limits,
|
||||
downloadContent, // optional
|
||||
taxes, // optional
|
||||
purchaseInfo, // optional
|
||||
discount); // optional
|
||||
if ( ! CheckStartOperation( progress ) )
|
||||
return(0);
|
||||
/*
|
||||
if ( ! CheckProgress( SyncEc( "ec.getProgress()" ) ) )
|
||||
return(0);
|
||||
*/
|
||||
|
||||
if ( gShowProgerss ) kong_.ShowProgressBar();
|
||||
|
||||
gTitleId = titleId;
|
||||
|
||||
gStartDate = new Date();
|
||||
DownloadStatusUpdate();
|
||||
|
||||
Print("Success." );
|
||||
}
|
||||
|
||||
/*
|
||||
フォームの内容で PurchaseTitle
|
||||
*/
|
||||
function PurchaseTitleFromForm()
|
||||
{
|
||||
var titleId = app.titleId.value;
|
||||
var itemId = app.itemId.value;
|
||||
var amount = app.amount.value;
|
||||
PurchaseTitle( titleId, itemId, amount );
|
||||
}
|
||||
|
||||
/*
|
||||
ダウンロード状況を更新
|
||||
*/
|
||||
function DownloadStatusUpdate()
|
||||
{
|
||||
var progress = ec.getProgress();
|
||||
var kong_ = new Kong();
|
||||
if ( progress.status == EC_ERROR_NOT_DONE )
|
||||
{
|
||||
//ダウンロード中
|
||||
ClearDebugMessages("Downloading...");
|
||||
|
||||
var nowDate = new Date();
|
||||
var time = nowDate.getTime() - gStartDate.getTime();
|
||||
Print("Time : " + time + "[ms]");
|
||||
|
||||
if ( progress.totalSize != 0 )
|
||||
Print( progress.downloadedSize + "/" + progress.totalSize + "[bytes]");
|
||||
if ( gShowProgerss ) kong_.UpdateProgressBar( progress.downloadedSize, progress.totalSize );
|
||||
UpdateProgressBar( progress.downloadedSize, progress.totalSize );
|
||||
setTimeout( "DownloadStatusUpdate()", 1 ); //todo interval
|
||||
}
|
||||
else if ( progress.status < 0 )
|
||||
{
|
||||
//ダウンロード失敗
|
||||
ClearDebugMessages("Download Failed.");
|
||||
PrintError( progress );
|
||||
if ( gShowProgerss ) kong_.HideProgressBar();
|
||||
//kong_.HideLoadingIcon();
|
||||
}
|
||||
else
|
||||
{
|
||||
//ダウンロード成功
|
||||
ClearDebugMessages("Download Succeed.");
|
||||
|
||||
var nowDate = new Date();
|
||||
var time = nowDate.getTime() - gStartDate.getTime();
|
||||
Print("Time : " + time + "[ms]");
|
||||
|
||||
Print( progress.totalSize + "[bytes]");
|
||||
|
||||
if ( gShowProgerss ) kong_.UpdateProgressBar( progress.downloadedSize, progress.totalSize );
|
||||
UpdateProgressBar( progress.downloadedSize, progress.totalSize );
|
||||
|
||||
kong_.FinishDownload( String( gTitleId ) );
|
||||
|
||||
if ( gShowProgerss )
|
||||
{
|
||||
setTimeout( WaitProgressBarAnimFinished, 500 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
プログレスバーのアニメ終了待ち
|
||||
*/
|
||||
function WaitProgressBarAnimFinished()
|
||||
{
|
||||
var kong_ = new Kong();
|
||||
if ( kong_.IsProgressBarAnimFinished() == false )
|
||||
{
|
||||
setTimeout( WaitProgressBarAnimFinished, 500 );
|
||||
}
|
||||
else
|
||||
{
|
||||
kong_.HideProgressBar();
|
||||
//kong_.HideLoadingIcon();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
アプリのダウンロード
|
||||
ダウンロードするには先に購入(PurchaseTitle)する必要があります
|
||||
*/
|
||||
function Download( titleId )
|
||||
{
|
||||
gTitleId = titleId;
|
||||
|
||||
var kong_ = new Kong();
|
||||
//kong_.ShowLoadingIcon();
|
||||
|
||||
ClearDebugMessages("Download");
|
||||
|
||||
gStartDate = new Date();
|
||||
|
||||
if ( ! CheckStartOperation( ec.downloadTitle (titleId) ) )
|
||||
return(0);
|
||||
|
||||
if ( gShowProgerss ) kong_.ShowProgressBar();
|
||||
|
||||
DownloadStatusUpdate();
|
||||
}
|
||||
|
||||
/*
|
||||
フォームの内容で Download
|
||||
*/
|
||||
function DownloadFromForm()
|
||||
{
|
||||
var titleId = app.titleId.value;
|
||||
Download( titleId );
|
||||
}
|
||||
|
||||
/*
|
||||
フォームに option タグの内容を反映
|
||||
*/
|
||||
function SetFormValue()
|
||||
{
|
||||
var id = new Array();
|
||||
id = app.idset.value.split(",");
|
||||
app.titleId.value = id[0];
|
||||
app.itemId.value = id[1];
|
||||
app.amount.value = id[2];
|
||||
}
|
||||
|
||||
-->
|
||||
</script>
|
||||
</head>
|
||||
<body onload="InitEc();">
|
||||
<form id="app">
|
||||
<table border="1">
|
||||
<tr>
|
||||
<td>titleId</td>
|
||||
<td><input type="text" maxlength="16" size="22" id="titleId" onMouseDown="ActiveKeyboard(1, 'titleId', 1);" value="00030004444D3030"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>itemId</td>
|
||||
<td><input type="text" maxlength="6" size="7" id="itemId" onMouseDown="ActiveKeyboard(0, 'itemId');" value="101488"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>amount</td>
|
||||
<td><input type="text" maxlength="8" size="11" id="amount" onMouseDown="ActiveKeyboard(0, 'amount(金額)');" value="0"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<select onChange="SetFormValue()" id="idset" size="2">
|
||||
<option value='0003000022A733A2,101486,0'>test_twl_game</option>
|
||||
<option value='00030004444D3030,101488,0'>twl-dm00</option>
|
||||
<option value='00030004444D3032,101487,0'>twl-dm02</option>
|
||||
<option value='00030004444D3033,101489,0'>twl-dm03</option>
|
||||
<option value='00030004444D3034,,'>twl-dm04</option>
|
||||
<option value='00030004444D3130,101489,0'>twl-dm10</option>
|
||||
<option value='00030004444D3131,101490,0'>twl-dm11</option>
|
||||
<option value='00030004444D3330,101491,0'>twl-dm30</option>
|
||||
<option value='000300044B5A3241,101493,0'>kz2a</option>
|
||||
<option value='0003000434617841,101499,0'>4axA(18MB)</option>
|
||||
<option value='0003000434617941,101500,0'>4ayA(18MB)</option>
|
||||
<option value='0003000434617A41,101501,0'>4azA(18MB)</option>
|
||||
<option value='0003000434564341,101688,0'>4vcA(SAVE)</option>
|
||||
<option value='0003000434564441,101689,0'>4vdA(SAVE)</option>
|
||||
<option value='0003000434564541,101690,0'>4veA(SAVE)</option>
|
||||
</select>
|
||||
</form>
|
||||
<div>
|
||||
<button onClick="PurchaseTitleFromForm();">PurchaseTitle</button>
|
||||
<button onClick="DownloadFromForm();">Download</button>
|
||||
</div>
|
||||
<!--
|
||||
省スペースな a タグ版
|
||||
<div>
|
||||
<a href="javascript:void(0);" onClick="PurchaseTitleFromForm();">PurchaseTitle</a>
|
||||
<a href="javascript:void(0);" onClick="DownloadFromForm();">Download</a>
|
||||
</div>
|
||||
-->
|
||||
<div id="progress">
|
||||
<img src="progress_bar_border.gif">
|
||||
</div>
|
||||
<div id="output"></div>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,11 +1,6 @@
|
||||
---
|
||||
title: DSi Shop
|
||||
title: ec
|
||||
layout: dsiware
|
||||
---
|
||||
<center>
|
||||
<iframe src="ec_u.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
<br>
|
||||
<iframe src="ec_example.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
</center>
|
||||
<object data="ec_u.html"></object>
|
||||
<object data="ec_example.html"></object>
|
||||
@ -1,11 +1,6 @@
|
||||
---
|
||||
title: DSi Shop
|
||||
title: NCL
|
||||
layout: dsiware
|
||||
---
|
||||
<center>
|
||||
<iframe src="index_u.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
<br>
|
||||
<iframe src="index_d.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
</center>
|
||||
<object data="index_u.html"></object>
|
||||
<object data="index_d.html"></object>
|
||||
|
||||
@ -70,7 +70,7 @@ body {
|
||||
<li><a href="ec/ec_example_index.html" target="_top">
|
||||
ec/ec_example.html
|
||||
</a></li>
|
||||
<li><a href="ec/ec_download.html">ec/ec_download.html</a></li>
|
||||
<li><a href="ec/ec_download.html" target="_top">ec/ec_download.html</a></li>
|
||||
<li><a href="ec/ec_deviceInfo.html" target="_top">
|
||||
ec/ec_deviceInfo.html
|
||||
</a></li>
|
||||
|
||||
@ -1,25 +1,6 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>GetMessage</title>
|
||||
<link rel="stylesheet" type="text/css" href="default.css">
|
||||
<script type="text/javascript" src="default.js"></script>
|
||||
<script>
|
||||
<!--
|
||||
function ShowErrorPage()
|
||||
{
|
||||
var id = document.getElementById("err_code").value;
|
||||
var kong_ = new Kong();
|
||||
kong_.ShowErrorPage( id );
|
||||
}
|
||||
|
||||
-->
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>ShowErrorPage</h1>
|
||||
<input id="err_code" type="text" size="6" maxlength="6" onClick="ActiveKeyboard(0, 'Error Code')" value="0"><br>
|
||||
<button onClick="ShowErrorPage()">ShowErrorPage</button><br>
|
||||
</body>
|
||||
</html>
|
||||
---
|
||||
title: ShowErrorPage
|
||||
layout: dsiware
|
||||
---
|
||||
<object data="../index_u.html"></object>
|
||||
<object data="ShowErrorPage_d.html"></object>
|
||||
25
NCL/tools/ShowErrorPage_d.html
Normal file
25
NCL/tools/ShowErrorPage_d.html
Normal file
@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>GetMessage</title>
|
||||
<link rel="stylesheet" type="text/css" href="default.css">
|
||||
<script type="text/javascript" src="default.js"></script>
|
||||
<script>
|
||||
<!--
|
||||
function ShowErrorPage()
|
||||
{
|
||||
var id = document.getElementById("err_code").value;
|
||||
var kong_ = new Kong();
|
||||
kong_.ShowErrorPage( id );
|
||||
}
|
||||
|
||||
-->
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>ShowErrorPage</h1>
|
||||
<input id="err_code" type="text" size="6" maxlength="6" onClick="ActiveKeyboard(0, 'Error Code')" value="0"><br>
|
||||
<button onClick="ShowErrorPage()">ShowErrorPage</button><br>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,11 +1,6 @@
|
||||
---
|
||||
title: DSi Shop
|
||||
title: ec deviceinfo
|
||||
layout: dsiware
|
||||
---
|
||||
<center>
|
||||
<iframe src="ec_deviceInfo_u.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
<br>
|
||||
<iframe src="ec_deviceInfo_d.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
</center>
|
||||
<object data="ec_deviceInfo_u.html"></object>
|
||||
<object data="ec_deviceInfo_d.html"></object>
|
||||
|
||||
@ -1,11 +1,7 @@
|
||||
---
|
||||
title: DSi Shop
|
||||
title: ec
|
||||
layout: dsiware
|
||||
---
|
||||
<center>
|
||||
<iframe src="ec_u.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
<br>
|
||||
<iframe src="ec_example.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
</center>
|
||||
<object data="ec_u.html"></object>
|
||||
<object data="ec_example.html"></object>
|
||||
|
||||
|
||||
@ -2,10 +2,5 @@
|
||||
title: DSi Shop
|
||||
layout: dsiware
|
||||
---
|
||||
<center>
|
||||
<iframe src="fontlist_01_u.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
<br>
|
||||
<iframe src="fontlist_01_d.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
</center>
|
||||
<object data="fontlist_01_u.html"></object>
|
||||
<object data="fontlist_01_d.html"></object>
|
||||
|
||||
@ -2,10 +2,5 @@
|
||||
title: DSi Shop
|
||||
layout: dsiware
|
||||
---
|
||||
<center>
|
||||
<iframe src="fontlist_02_u.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
<br>
|
||||
<iframe src="fontlist_02_d.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
</center>
|
||||
<object data="fontlist_02_u.html"></object>
|
||||
<object data="fontlist_02_d.html"></object>
|
||||
@ -2,10 +2,5 @@
|
||||
title: DSi Shop
|
||||
layout: dsiware
|
||||
---
|
||||
<center>
|
||||
<iframe src="fontlist_03_u.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
<br>
|
||||
<iframe src="fontlist_03_d.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
</center>
|
||||
<object data="fontlist_03_u.html"></object>
|
||||
<object data="fontlist_03_d.html"></object>
|
||||
@ -2,10 +2,5 @@
|
||||
title: DSi Shop
|
||||
layout: dsiware
|
||||
---
|
||||
<center>
|
||||
<iframe src="fontlist_04_u.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
<br>
|
||||
<iframe src="fontlist_04_d.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
</center>
|
||||
<object data="fontlist_04_u.html"></object>
|
||||
<object data="fontlist_04_d.html"></object>
|
||||
@ -1,11 +1,6 @@
|
||||
---
|
||||
title: DSi Shop
|
||||
title: Shopmock
|
||||
layout: dsiware
|
||||
---
|
||||
<center>
|
||||
<iframe src="index_u.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
<br>
|
||||
<iframe src="index_d.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
</center>
|
||||
<object data="index_u.html"></object>
|
||||
<object data="index_d.html"></object>
|
||||
|
||||
@ -1,11 +1,6 @@
|
||||
---
|
||||
title: DSi Shop
|
||||
title: SMC
|
||||
layout: dsiware
|
||||
---
|
||||
<center>
|
||||
<iframe src="index_u.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
<br>
|
||||
<iframe src="index_d.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
</center>
|
||||
<object data="index_u.html"></object>
|
||||
<object data="index_d.html"></object>
|
||||
|
||||
@ -55,7 +55,7 @@ function GoWeb()
|
||||
</a>
|
||||
|
||||
<h1>エラーシミュレータ</h1>
|
||||
<a href="tools/ShowErrorPage.html">tools/ShowErrorPage.html</a>
|
||||
<a href="tools/ShowErrorPage.html" target="_top">tools/ShowErrorPage.html</a>
|
||||
|
||||
<h1>フォントチェック</h1>
|
||||
<a href="font_check/shopmock/fontlist_01_index.html" target="_top">
|
||||
|
||||
@ -1,25 +1,6 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>GetMessage</title>
|
||||
<link rel="stylesheet" type="text/css" href="default.css">
|
||||
<script type="text/javascript" src="default.js"></script>
|
||||
<!--<script>
|
||||
|
||||
function ShowErrorPage()
|
||||
{
|
||||
var id = document.getElementById("err_code").value;
|
||||
var kong_ = new Kong();
|
||||
kong_.ShowErrorPage( id );
|
||||
}
|
||||
|
||||
|
||||
</script>-->
|
||||
</head>
|
||||
<body>
|
||||
<h1>ShowErrorPage</h1>
|
||||
<input id="err_code" type="text" size="6" maxlength="6" onClick="ActiveKeyboard(0, 'Error Code')" value="0"><br>
|
||||
<button onClick="ShowErrorPage()">ShowErrorPage</button><br>
|
||||
</body>
|
||||
</html>
|
||||
---
|
||||
title: ShowErrorPage
|
||||
layout: dsiware
|
||||
---
|
||||
<object data="../index_u.html"></object>
|
||||
<object data="ShowErrorPage_d.html"></object>
|
||||
25
SMC/tools/ShowErrorPage_d.html
Normal file
25
SMC/tools/ShowErrorPage_d.html
Normal file
@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>GetMessage</title>
|
||||
<link rel="stylesheet" type="text/css" href="default.css">
|
||||
<script type="text/javascript" src="default.js"></script>
|
||||
<!--<script>
|
||||
|
||||
function ShowErrorPage()
|
||||
{
|
||||
var id = document.getElementById("err_code").value;
|
||||
var kong_ = new Kong();
|
||||
kong_.ShowErrorPage( id );
|
||||
}
|
||||
|
||||
|
||||
</script>-->
|
||||
</head>
|
||||
<body>
|
||||
<h1>ShowErrorPage</h1>
|
||||
<input id="err_code" type="text" size="6" maxlength="6" onClick="ActiveKeyboard(0, 'Error Code')" value="0"><br>
|
||||
<button onClick="ShowErrorPage()">ShowErrorPage</button><br>
|
||||
</body>
|
||||
</html>
|
||||
60
_layouts/dsiware.html
Normal file
60
_layouts/dsiware.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta property="og:url" content="{{ site.url }}{{ page.url }}">
|
||||
<meta property="og:site_name" content="Random Meaningless Characters (rmc)">
|
||||
<title>DSi Debug Shop | {{ page.title }}</title>
|
||||
<meta property="og:title" content="{{ page.title }}">
|
||||
<meta property="og:image" content="{{ site.url }}/icon.png">
|
||||
<meta name="description" content="DS(i) development software documentation and preservation.">
|
||||
<meta property="og:description" content="DS(i) development software documentation and preservation.">
|
||||
<meta name="keywords" content="dsi, ds, nintendo, dev" />
|
||||
|
||||
<link rel="icon" type="image/png" href="/icon.png"/>
|
||||
<link rel="stylesheet" type="text/css" href="/style.css">
|
||||
|
||||
<link rel="canonical" href="{{ site.url }}{{ page.url }}">
|
||||
<!-- GRRRR I HATE GOOGLE SAYING MY CANONICALS ARE DUPLICATES!! Please someone smart help me... -->
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<style>
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="content-wrap">
|
||||
<div class="screenlabels">
|
||||
<a href="https://randomeaninglesscharacters.com/"><-- Main site</a> | <a href="/">Shop start page</a> | <a href="https://github.com/rvtr/debug-dsi-shop" target="_blank"> GitHub </a>
|
||||
</div><hr>
|
||||
<h1 style="text-align:center;">DSi Debug Shop</h1><hr>
|
||||
<div class="screenlabels">
|
||||
<div><h2><u>Top screen:</u></h2></div><div><h2><u>Bottom screen:</u></h2></div>
|
||||
</div>
|
||||
{{ content }}
|
||||
<br>
|
||||
<div style="text-align: right;margin-right: 35px;">↑ I'm an interactive window! Try me!</div>
|
||||
{% if page.title == "Startup" -%}
|
||||
{%- else -%}
|
||||
<i><a href="javascript:window.history.back()"><-- previous</a></i>
|
||||
{%- endif %}
|
||||
<br><br>
|
||||
<div style="text-align:left;">
|
||||
<hr>
|
||||
<h2>This is an interactive demo of the DSi Debug Shop.</h2>The developer DSi shop uses a modified version of the DSi Browser, and most of its content is local HTML/JS. Because the app is almost entirely HTML/JS, I was able to take the HTML pages from NitroFS and edit them to work in any browser.<br><br>Many of the pages are missing- locked behind Nintendo's development servers or just straight up gone. I patched things up wherever possible, killing any dead links and linking to otherwise unlinked pages.<br>Features such as the console information and DSi specific operations are also missing/broken (as is to be expected when running a DSi app on a modern browser). I tried filling in the blanks where I could, but it's not perfect.<br>If you want to help polish up the code, feel free to submit a PR <a href="https://github.com/rvtr/debug-dsi-shop">here.</a><br>
|
||||
<h2>Download original app:</h2>
|
||||
I have found 3 different versions of this app. I am not sure what the specific differences between the apps are.<br>
|
||||
I used the files from <i><b>shop.HNFC.Release.v1536</b></i> for my demo.
|
||||
<br><br>
|
||||
shop.HNFC.Release.v1536: <a href="https://archive.org/download/rmc-dsi/shop.HNFC.Release.v1536.srl">srl</a> | <a href="https://archive.org/download/rmc-dsi/shop.HNFC.Release.v1536.tad">tad</a><br>
|
||||
|
||||
shop.HNFC.Release.14231: <a href="https://archive.org/download/rmc-dsi/shop.HNFC.Release.14231.srl">srl</a> | <a href="https://archive.org/download/rmc-dsi/shop.HNFC.Release.14231.tad">tad</a><br>
|
||||
|
||||
shop.HNFC.Release.thumb: <a href="https://archive.org/download/rmc-dsi/shop.HNFC.Release.thumb.srl">srl</a> | <a href="https://archive.org/download/rmc-dsi/shop.HNFC.Release.thumb.tad">tad</a><br>
|
||||
|
||||
<br><br><span style="color:orange;">
|
||||
<i><b>shop.HNFC.Release.v1536.tad</b></i> is the only working version of the debug shop. It will only run if installed to NAND and booted via the home menu.<br>Using nds-bootstrap, unlaunch, or any similar apps will introduce problems like dead touch controls, a <b>293003</b> error, or cause the shop to whitescreen.</span>
|
||||
<br><br>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
BIN
font/nintendo-DS-BIOS.ttf
Normal file
BIN
font/nintendo-DS-BIOS.ttf
Normal file
Binary file not shown.
BIN
font/nintendo_NTLGDB_001.ttf
Normal file
BIN
font/nintendo_NTLGDB_001.ttf
Normal file
Binary file not shown.
BIN
font/nintendo_NTLGDB_002.ttf
Normal file
BIN
font/nintendo_NTLGDB_002.ttf
Normal file
Binary file not shown.
27
startup.html
27
startup.html
@ -1,27 +1,6 @@
|
||||
---
|
||||
title: DSi Shop
|
||||
title: Startup
|
||||
layout: dsiware
|
||||
---
|
||||
<center>
|
||||
<iframe src="startup_u.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
<br>
|
||||
<iframe src="startup_d.html" width="256" height="192" style="border:0px solid black;">
|
||||
</iframe>
|
||||
</center>
|
||||
<div style="text-align:left;">
|
||||
<h2>This is an interactive demo of the developer DSi Shop.</h2>The developer DSi shop uses a modified version of the DSi Browser, and most of its content is local HTML/JS. Because the app is almost entirely HTML/JS, I was able to take the HTML pages from romfs and format them to work on your browser.<br><br>Sadly, many of the pages are missing- locked behind Nintendo's development servers or just straight up gone. I patched things up wherever possible, killing any dead links and linking to otherwise unlinked pages.<br>Features such as the console information and DSi specific operations are also missing/broken (as is to be expected when running a DSi app on a modern browser). I tried filling in the blanks where I could, but it still has a way to go.<br>If you want to help polish up the code, feel free to submit a PR <a href="https://github.com/IanSkinner1982/ianskinner1982.github.io/tree/master/dsidev/dsishop">here.</a><br>
|
||||
<h2>Download original app:</h2>
|
||||
I have found 3 different versions of this app. I am not sure what the specific differences between the apps are, though I will look into that.<br>
|
||||
I used the files from <i><b>shop.HNFC.Release.v1536</b></i> for my demo.
|
||||
<br><br>
|
||||
shop.HNFC.Release.v1536: <a href="https://archive.org/download/rmc-dsi/shop.HNFC.Release.v1536.srl">srl</a> | <a href="https://archive.org/download/rmc-dsi/shop.HNFC.Release.v1536.tad">tad</a><br>
|
||||
|
||||
shop.HNFC.Release.14231: <a href="https://archive.org/download/rmc-dsi/shop.HNFC.Release.14231.srl">srl</a> | <a href="https://archive.org/download/rmc-dsi/shop.HNFC.Release.14231.tad">tad</a><br>
|
||||
|
||||
shop.HNFC.Release.thumb: <a href="https://archive.org/download/rmc-dsi/shop.HNFC.Release.thumb.srl">srl</a> | <a href="https://archive.org/download/rmc-dsi/shop.HNFC.Release.thumb.tad">tad</a><br>
|
||||
|
||||
<br><br><span style="color:orange;">
|
||||
<i><b>shop.HNFC.Release.v1536.tad</b></i> is the only working version of the debug shop. It will only run if installed to NAND and booted via the home menu.<br>Using nds-bootstrap, unlaunch, or any similar apps will introduce problems like dead touch controls, a <b>293003</b> error, or cause the shop to whitescreen.</span>
|
||||
<br><br>
|
||||
</div>
|
||||
<object data="startup_u.html"></object>
|
||||
<object data="startup_d.html"></object>
|
||||
|
||||
18
style.css
Normal file
18
style.css
Normal file
@ -0,0 +1,18 @@
|
||||
body {
|
||||
width: 550px;
|
||||
margin: 0 auto;
|
||||
margin-top: 10px;
|
||||
}
|
||||
object {
|
||||
width: 256px;
|
||||
height: 192px;
|
||||
border: 2px solid black;
|
||||
}
|
||||
.screenlabels {
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
flex-direction: row;
|
||||
}
|
||||
.screenlabels div {
|
||||
margin-bottom: -20px;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user