異常な時刻の処理

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

異常な時刻の定義

ここでは、30時や62分など一般的な時計には存在しないものを「異常な時刻」とします。一般的な時計に存在するもは「正常な時刻」とします。

時刻の値域

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

です。

「時」が 5bit (2進数で 0b00000 ~ 0b11111)、「分」と「秒」が 6bit (2進数で 0b000000 ~ 0b111111) です。したがって、 40時のような値にはできません。

「時」は、慣例的に24時や25時などを深夜を表すために利用することもありますが、24, 25, 26, 27, 28, 29, 30, 31時が異常な時刻に相当します。

「分」は、60, 61, 62, 63分が異常な時刻に相当します。

「秒」は、現実世界では、うるう秒の概念があるため60秒は許容され得るものですが、NOëL の世界では、うるう日も用意されていないのでうるう秒も用意されてと考えるのが自然であるため、60, 61, 62, 63秒が異常な時刻に相当します。

ホームでの表示状況

異常な値がセーブデータから読み込まれても、ホームの日付表示にはそのまま表示されます。

時は24時、25時、…、31時まで PM 表記で計算され、そのまま表示されます。

分も60分、61分、62分、63分もそもまま表示されます。

ビジュアルフォンでの表示状況

ビジュアルフォンでもホームと同じ時計を使っているため、ホームと同様の挙動です。

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

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

現在時刻の異常な時は次の日として24を減じた値が表示されます。

現在時刻の異常な分も次の時として60を減じた値が表示されます。

異常な「時」の例

ここでは例として25時の場合を説明しますが他の時刻も同様です。

ホームでは PM13:00 になります。

ビジュアルフォンでは PM13:00 になります。

コントロールパネルでは、桁上りをして次の日の AM01:00 になります。

異常な「時」の表示一覧

異常な「分」の例

ここでは例として21時60分の場合を説明しますが他の時刻も同様です。

ホームでは PM09:60 になります。

ビジュアルフォンでは PM09:60 になります。

コントロールパネルでは PM10:00 になります。

異常な「分」の表示一覧

異常な「秒」の桁上り

異常な時刻の1秒後
元時刻1秒後
00分60秒01分00秒
00分61秒01分00秒
00分62秒01分00秒
00分63秒00分00秒

00分60秒、00分61秒、00分62秒、の1秒後は01分00秒になりますが、00分63秒の1秒後は00分になります。この挙動は 63秒 (0b111111) に1加算するとオーバーフローして0秒 (0b000000) になってしまい、その後、桁上り判定が実行されたときに 0秒なので桁上りせず、00分のままになってしまうためです。

ただし、「秒」は画面上に表示されません。

異常な「分」の桁上り

異常な時刻の1分後
元時刻1分後
20時60分21時00分
20時61分21時00分
20時62分21時00分
20時63分20時00分

20時60分、20時61分、20時62分の1分後は21時00分になりますが、20時63分の1分後は20時00分になります。この挙動は 63分 (0b111111) に1加算するとオーバーフローして0分 (0b000000) になってしまい、その後、桁上り判定が実行されたときに 0分なので桁上りせず、20時のままになってしまうためです。

異常な「時」の桁上り

異常な時刻の1分後
元時刻1分後
01日24時59分02日00時00分
01日25時59分02日00時00分
01日26時59分02日00時00分
01日27時59分02日00時00分
01日28時59分02日00時00分
01日29時59分02日00時00分
01日30時59分02日00時00分
01日31時59分01日00時00分

12月25日以外の場合、24時59分、25時59分、26時59分、27時59分、28時59分、29時59分、30時59分の1分後は翌日の00時00分になりますが、31時59分の1分後は同日の00時00分になります。この挙動は 31時 (0b11111) に1加算するとオーバーフローして0時 (0b00000) になってしまい、その後、桁上り判定が実行されたときに 0時なので桁上りせず、日付は変わらないためです。

12月25日は時間経過で次の日にはならずに12月25日00時00分に戻るため、異常な時刻の 24, 25, 26, 27, 28, 29, 30, 31時でも同様に12月25日00時00分に戻ります。

異常な時刻のビジュアルフォンの挙動

ビジュアルフォンでは、19:60 や 19:63 には通話できませんが、 21:60 や 21:63 には通話可能です。つまり、通話可能かどうかのチェックには「分」は用いずに、20時、21時であるかどうかだけで判断しています。0時や23時などの留守電の種類の判定も同様です。

24, 25, 26, 27, 28, 29, 30, 31時に電話した場合には、翌日扱いではなく、同日の深夜という扱いになります。

異常な時刻のビジュアルメールの挙動

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

異常な時刻のネットワークエージェントの挙動

ネットワークエージェントでは、タイムコントロールに表示されている日時として検索にヒットします。例えば、[40] NEWS TERROR は 10/2 〜 10/3 に検索にヒットしますが、 10月1日25時は10月2日扱いになるので検索にヒットしますが、10月3日25時は10月4日扱いになるので検索にはヒットしません。既読データは閲覧可能です。

異常な時刻のコマンドパネルの挙動

タイムコントロールでは、正常な日時に計算されて表示されます。ジャンプするとホームやビジュアルフォンの時刻も正しい時刻に上書きされます。

アカウントメーターの次のアカウント追加日の計算に使われる日付はホーム画面の日付が使われます。10月30日30時62分だと、残り1日となりますが、タイムコントロール上では同値のはずの10月31日7時2分では残り0日と表示されます。

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

シャットダウンでは、ホームやビジュアルフォンの時刻も正常な値に上書きされます。タイムコントロールに表示される日付を基準に 22:00 ~ 23:59 だけ加算されます。

inserted by FC2 system