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
|
layout: dsiware
|
||||||
---
|
---
|
||||||
<center>
|
<object data="ec_deviceInfo_u.html"></object>
|
||||||
<iframe src="ec_deviceInfo_u.html" width="256" height="192" style="border:0px solid black;">
|
<object data="ec_deviceInfo_d.html"></object>
|
||||||
</iframe>
|
|
||||||
<br>
|
|
||||||
<iframe src="ec_deviceInfo_d.html" width="256" height="192" style="border:0px solid black;">
|
|
||||||
</iframe>
|
|
||||||
</center>
|
|
||||||
|
|||||||
@ -1,374 +1,6 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
---
|
||||||
<html>
|
title: ec download
|
||||||
<head>
|
layout: dsiware
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
---
|
||||||
<title></title>
|
<object data="../index_u.html"></object>
|
||||||
<link rel="stylesheet" type="text/css" href="../../common/css/default.css">
|
<object data="ec_download_d.html"></object>
|
||||||
<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>
|
|
||||||
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
|
layout: dsiware
|
||||||
---
|
---
|
||||||
<center>
|
<object data="ec_u.html"></object>
|
||||||
<iframe src="ec_u.html" width="256" height="192" style="border:0px solid black;">
|
<object data="ec_example.html"></object>
|
||||||
</iframe>
|
|
||||||
<br>
|
|
||||||
<iframe src="ec_example.html" width="256" height="192" style="border:0px solid black;">
|
|
||||||
</iframe>
|
|
||||||
</center>
|
|
||||||
@ -1,11 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: DSi Shop
|
title: NCL
|
||||||
layout: dsiware
|
layout: dsiware
|
||||||
---
|
---
|
||||||
<center>
|
<object data="index_u.html"></object>
|
||||||
<iframe src="index_u.html" width="256" height="192" style="border:0px solid black;">
|
<object data="index_d.html"></object>
|
||||||
</iframe>
|
|
||||||
<br>
|
|
||||||
<iframe src="index_d.html" width="256" height="192" style="border:0px solid black;">
|
|
||||||
</iframe>
|
|
||||||
</center>
|
|
||||||
|
|||||||
@ -70,7 +70,7 @@ body {
|
|||||||
<li><a href="ec/ec_example_index.html" target="_top">
|
<li><a href="ec/ec_example_index.html" target="_top">
|
||||||
ec/ec_example.html
|
ec/ec_example.html
|
||||||
</a></li>
|
</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">
|
<li><a href="ec/ec_deviceInfo.html" target="_top">
|
||||||
ec/ec_deviceInfo.html
|
ec/ec_deviceInfo.html
|
||||||
</a></li>
|
</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>
|
title: ShowErrorPage
|
||||||
<head>
|
layout: dsiware
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
---
|
||||||
<title>GetMessage</title>
|
<object data="../index_u.html"></object>
|
||||||
<link rel="stylesheet" type="text/css" href="default.css">
|
<object data="ShowErrorPage_d.html"></object>
|
||||||
<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>
|
|
||||||
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
|
layout: dsiware
|
||||||
---
|
---
|
||||||
<center>
|
<object data="ec_deviceInfo_u.html"></object>
|
||||||
<iframe src="ec_deviceInfo_u.html" width="256" height="192" style="border:0px solid black;">
|
<object data="ec_deviceInfo_d.html"></object>
|
||||||
</iframe>
|
|
||||||
<br>
|
|
||||||
<iframe src="ec_deviceInfo_d.html" width="256" height="192" style="border:0px solid black;">
|
|
||||||
</iframe>
|
|
||||||
</center>
|
|
||||||
|
|||||||
@ -1,11 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: DSi Shop
|
title: ec
|
||||||
layout: dsiware
|
layout: dsiware
|
||||||
---
|
---
|
||||||
<center>
|
<object data="ec_u.html"></object>
|
||||||
<iframe src="ec_u.html" width="256" height="192" style="border:0px solid black;">
|
<object data="ec_example.html"></object>
|
||||||
</iframe>
|
|
||||||
<br>
|
|
||||||
<iframe src="ec_example.html" width="256" height="192" style="border:0px solid black;">
|
|
||||||
</iframe>
|
|
||||||
</center>
|
|
||||||
|
|||||||
@ -2,10 +2,5 @@
|
|||||||
title: DSi Shop
|
title: DSi Shop
|
||||||
layout: dsiware
|
layout: dsiware
|
||||||
---
|
---
|
||||||
<center>
|
<object data="fontlist_01_u.html"></object>
|
||||||
<iframe src="fontlist_01_u.html" width="256" height="192" style="border:0px solid black;">
|
<object data="fontlist_01_d.html"></object>
|
||||||
</iframe>
|
|
||||||
<br>
|
|
||||||
<iframe src="fontlist_01_d.html" width="256" height="192" style="border:0px solid black;">
|
|
||||||
</iframe>
|
|
||||||
</center>
|
|
||||||
|
|||||||
@ -2,10 +2,5 @@
|
|||||||
title: DSi Shop
|
title: DSi Shop
|
||||||
layout: dsiware
|
layout: dsiware
|
||||||
---
|
---
|
||||||
<center>
|
<object data="fontlist_02_u.html"></object>
|
||||||
<iframe src="fontlist_02_u.html" width="256" height="192" style="border:0px solid black;">
|
<object data="fontlist_02_d.html"></object>
|
||||||
</iframe>
|
|
||||||
<br>
|
|
||||||
<iframe src="fontlist_02_d.html" width="256" height="192" style="border:0px solid black;">
|
|
||||||
</iframe>
|
|
||||||
</center>
|
|
||||||
@ -2,10 +2,5 @@
|
|||||||
title: DSi Shop
|
title: DSi Shop
|
||||||
layout: dsiware
|
layout: dsiware
|
||||||
---
|
---
|
||||||
<center>
|
<object data="fontlist_03_u.html"></object>
|
||||||
<iframe src="fontlist_03_u.html" width="256" height="192" style="border:0px solid black;">
|
<object data="fontlist_03_d.html"></object>
|
||||||
</iframe>
|
|
||||||
<br>
|
|
||||||
<iframe src="fontlist_03_d.html" width="256" height="192" style="border:0px solid black;">
|
|
||||||
</iframe>
|
|
||||||
</center>
|
|
||||||
@ -2,10 +2,5 @@
|
|||||||
title: DSi Shop
|
title: DSi Shop
|
||||||
layout: dsiware
|
layout: dsiware
|
||||||
---
|
---
|
||||||
<center>
|
<object data="fontlist_04_u.html"></object>
|
||||||
<iframe src="fontlist_04_u.html" width="256" height="192" style="border:0px solid black;">
|
<object data="fontlist_04_d.html"></object>
|
||||||
</iframe>
|
|
||||||
<br>
|
|
||||||
<iframe src="fontlist_04_d.html" width="256" height="192" style="border:0px solid black;">
|
|
||||||
</iframe>
|
|
||||||
</center>
|
|
||||||
@ -1,11 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: DSi Shop
|
title: Shopmock
|
||||||
layout: dsiware
|
layout: dsiware
|
||||||
---
|
---
|
||||||
<center>
|
<object data="index_u.html"></object>
|
||||||
<iframe src="index_u.html" width="256" height="192" style="border:0px solid black;">
|
<object data="index_d.html"></object>
|
||||||
</iframe>
|
|
||||||
<br>
|
|
||||||
<iframe src="index_d.html" width="256" height="192" style="border:0px solid black;">
|
|
||||||
</iframe>
|
|
||||||
</center>
|
|
||||||
|
|||||||
@ -1,11 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: DSi Shop
|
title: SMC
|
||||||
layout: dsiware
|
layout: dsiware
|
||||||
---
|
---
|
||||||
<center>
|
<object data="index_u.html"></object>
|
||||||
<iframe src="index_u.html" width="256" height="192" style="border:0px solid black;">
|
<object data="index_d.html"></object>
|
||||||
</iframe>
|
|
||||||
<br>
|
|
||||||
<iframe src="index_d.html" width="256" height="192" style="border:0px solid black;">
|
|
||||||
</iframe>
|
|
||||||
</center>
|
|
||||||
|
|||||||
@ -55,7 +55,7 @@ function GoWeb()
|
|||||||
</a>
|
</a>
|
||||||
|
|
||||||
<h1>エラーシミュレータ</h1>
|
<h1>エラーシミュレータ</h1>
|
||||||
<a href="tools/ShowErrorPage.html">tools/ShowErrorPage.html</a>
|
<a href="tools/ShowErrorPage.html" target="_top">tools/ShowErrorPage.html</a>
|
||||||
|
|
||||||
<h1>フォントチェック</h1>
|
<h1>フォントチェック</h1>
|
||||||
<a href="font_check/shopmock/fontlist_01_index.html" target="_top">
|
<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>
|
title: ShowErrorPage
|
||||||
<head>
|
layout: dsiware
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
---
|
||||||
<title>GetMessage</title>
|
<object data="../index_u.html"></object>
|
||||||
<link rel="stylesheet" type="text/css" href="default.css">
|
<object data="ShowErrorPage_d.html"></object>
|
||||||
<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>
|
|
||||||
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
|
layout: dsiware
|
||||||
---
|
---
|
||||||
<center>
|
<object data="startup_u.html"></object>
|
||||||
<iframe src="startup_u.html" width="256" height="192" style="border:0px solid black;">
|
<object data="startup_d.html"></object>
|
||||||
</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>
|
|
||||||
|
|||||||
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