異常な日付の処理

チートにより、一般的な時刻表示では存在し得ない日付に設定したときの挙動を検証します。

異常な日付の定義

ここでは、13月や00日など一般的なカレンダーに存在しないものを「異常な日付」とします。一般的なカレンダーに存在するもは「正常な日付」とします。

日付の値域

セーブデータを書き換えて異常な日付をするとはいえ、あらゆる異常な日付にできるわけではありません。セーブデータのアドレス2200 〜 2203で表現できる範囲が値域となります。 NOëL の世界の年月日の値域は以下の通りです。

です。

「年」が 6bit (2進数で 0b000000 ~ 0b111111)、「月」が 4bit (2進数で 0b0000 ~ 0b1111)、「日」が 5bit (2進数で 0b00000 ~ 0b11111) です。したがって、 20月のような値にはできません。

「年」は、00年でも63年でも西暦下二桁であると仮定すればおかしくありませんので、異常な日付には相当しません。

「月」は、00月、13月、14月、15月が異常な日付に相当します。

「日」は、00日が異常な日時に相当します。また「月」との組み合わせにより、2月30日、2月31日、4月31日、6月31日、9月31日、11月31日が異常な日付に相当します。また、うるう日は用意されていないので、年に関わらず2月29日も異常な日時に相当します。

ホームでの表示状況

異常な日付のセーブデータを読み込んでも、ホームの日付表示はそのまま表示します。

月は00月、13月、14月、15月もそのまま表示します。

日もそのまま表示するため、31日が存在しない月も31日と表示します。00日もそのまま表示します。2月30日や2月31日も同様です。

タイムコントロールでの表示状況

タイムコントロールのジャンプ先は異常な値は取りません。

現在時刻の異常な月は1月扱いになります。

現在時刻の異常な日は前後の月相当に読み替えます。具体的には00日は前月末、2月以外の31日が存在しない月の31日は次の1日、2月29日は3月1日、2月30日は3月2日、2月31日は3月3日になります。

アカウントメーターでの表示状況

アカウントメーターは異常な値をそのまま次回アカウント追加日の計算に利用します。

例えば、9月であれば、00日でも31日でも NEXT は10/1、次回アカウント追加日の計算は00日や31日でもそのまま9月末日である30日から減算して表示します。ただし、マイナスの画像は用意されていないので、31日は表示部分がノイズになります。

NOëL NOT DiGITAL の通常プレイ可能な範囲は9月25日から12月25日なので、その範囲にない1月から8月は正常な日付であっても表示部分がバグります。 NEXT の N/1 の N(月)が用意されていません。

00月、13月、14月、15月は末日が未確定なのか、 NEXT 計算が正しく行われないため表示がノイズになります。

アカウントメーターには、現在のアカウント残量と過去の各月のアカウント消費の履歴が表示されますが、0月も含め8月になるまでは現在のアカウント残量は表示されません。8月になるとアカウント残量が表示され、9月以降はアカウント残量と各月の消費の履歴が表示されます。13月以降はアカウント残量と12月までの履歴が表示されます。

異常な日付一覧

異常な月も含めて各月の00日、01日、30日、31日のホーム、タイムコントロール、アカウントメーターのスクリーンショットを以下に掲載します。

異常な日付の次の日

時間経過で次の日になったときのホームの挙動を以下にまとめます。

初回版では月末日の前日から時間経過で日付をまたぐと翌月1日なるというバグがあります。

初回版では月末が31日の月(1月、3月、5月、7月、8月、10月、12月)の31日から時間経過で日付をまたぐと同月00日になるというバグがあります。厳密には13月と14月以外の何月でも31日から時間経過で日付をまたぐと00日になります。

これらのバグのため、初回版の2月の挙動は、02月26日の次の日は02月27日ですが、02月27日、02月28日、02月29日、02月30日の次の日は03月01日、02月31日の次の日は02月00日 です。

バグではなく仕様ですが、12月25日を時間経過でまたぐと、再び12月25日になります。

00月00日から00月31日は時間経過では無限ループしています。

15月00日から15月31日は時間経過では無限ループしています。

以下の場合に、画面には表示されませんが内部的に翌年になります。

ビジュアルフォンの挙動

ビジュアルフォンでは、タイムコントロールに表示されている日時として通話可能です。例えば 9/31 に、由香に電話をかけると 10/1 扱いで通話可能です。 10/00 に、代歩に電話をかけると 9/30 扱いで通話可能です。

ビジュアルメールの挙動

ビジュアルメールでは、入手済みのものは普段通り閲覧できます。

ネットワークエージェントの挙動

ネットワークエージェントでは、タイムコントロールに表示されている日時として検索にヒットします。例えば、[0F] YUKA'S COMPUTER は 10/1 〜 12/24 に検索にヒットしますが、 9/31 の場合は、 10/1 扱いになるためヒットします。 10/00 の場合には、 9/30 扱いになるためヒットしません。また、日付に関係なく既読データは閲覧可能です。

コマンドパネルの挙動

コマンドパネルのタイムコントロールでは異常な日時は入力できません。そのため、ジャンプすると正常な時刻に上書きされます。

コマンドパネルのアカウントメーターには操作可能な要素がありません。

コマンドパネルのサウンドには影響がありません。普段通り VOICE, SE, MOVIE の音量を増減できます。

コマンドパネルのシャットダウンでは、正常な値に上書きされます。タイムコントロールに表示される日付を基準に 22:00 ~ 23:59 だけ加算されます。

余談

初回版のバグで作り出せる 10/00 も、ここまで述べてきた内容と同様の挙動となります。

inserted by FC2 system