2 Incheckningar 8306fb1199 ... d2476bdc98

Upphovsman SHA1 Meddelande Datum
  UvHCxXJp d2476bdc98 preserve padding after decoding 8 månader sedan
  UvHCxXJp 9735507e90 add more passwords for invalid titles 8 månader sedan
3 ändrade filer med 238 tillägg och 37 borttagningar
  1. 194 16
      bokgen.txt
  2. 29 16
      bokpass.js
  3. 15 5
      bokpass.tcl

+ 194 - 16
bokgen.txt

@@ -35,6 +35,55 @@ Moves Title     Name                          Password
   7    14   "ぅほソヲぞ" いううううう うううううう うううえけせ せつつつつつ
   7    14   "タをぉあア" いいいううう うううううう ううくうふふ ええええええ
   7    15   "ボけぁムざ" いうううああ ああああああ ああはははひ いいいいいい
+  9    16   "ココづつツ" いいいにぬぬ ぬぬぬぬぬぬ ぬぬにちちち なははははは
+  9    16   "ケるシへツ" はははへへへ へへへへへへ へぬぬななは はははははは
+  9    16   "デづあおポ" いひひにぬぬ ぬぬぬぬぬぬ ぬぬぬふうう ういかかかか
+  9    16   "ヅはぜけニ" いひにににに にににににに にねねねねと そこここここ
+  9    16    "ヅは~ぷよ" ははひへねね ねねねねねね ねねねねねな ななたたたた
+  9    16   "ヅはぺばぉ" いひへへねね ねねねねねね ねねねねねね すすせせせせ
+  9    16    "ク~ぜけニ" いひひにぬぬ ぬぬぬぬぬぬ ぬぬねのとと そこここここ
+  9    16   "エデヌガぷ" いふふへへへ へへへへへへ へぬふへへへ へふふふふふ
+  9    16   "ウデヌギツ" はひへへねね ねねねねねね ねねへへへへ ふふはははは
+  9    16   "カみワパベ" いいおみみみ みみみみみみ みみみみむゆ ゆゆゆゆゆゆ
+  9    16   "のびラぃせ" いおおままま まままままま ままやららら ららまままま
+  9    16   "ぅキざホけ" はごごごろろ ろろろろろろ ろをろろれれ れりりりりり
+  7    17   "ごクけょょ" ははなななな なななななな ななあはああ びびびびびび
+  7    17    "コる~ぴパ" いににににに にににににに にににななな にちにににに
+  8    18   "みムタべざ" いくくくくく くくくくくく くふふひひふ ふふひひひひ
+  8    18   "イィとァめ" はははぬふふ ふふふふふふ ふふふふふう くすすすすす
+  8    19   "ソコづつず" いひひにちち ちちちちちち ちちちちちち なはひひひひ
+  9    20   "イをろせニ" いいうおまま まままままま ままほおおこ ここここここ
+  9    20   "ヘこョでリ" ははれれわわ わわわわわわ わよむみみみ みみみみみみ
+  9    20   "ざヌやふ・" いいうえほほ ほほほほほほ ほだだままみ みみまままま
+  9    20   "ざヌやふ・" いいうふほほ ほほほほほほ ほだだままみ みみまままま
+  8    21   "ヒをねのイ" いえへへへへ へへへへへへ へへえおおお ほほのののの
+  8    21    "ク~ぜりげ" はははへへへ へへへへへへ へへねのとと がががががが
+  8    22    "エ らぼキ" ははなににに にににににに にふふけけけ けけけけけけ
+  8    23   "ナラぅほぞ" いううぬつつ つつつつつつ つつたたささ ささささささ
+  6    24   "ナやーうミ" はははたたた たたたたたた たたたたちつ ぬぬぬぬぬぬ
+  8    25   "ハをらばや" いおおおおお おおおおおお おおおおおけ すすすすすす
+  8    25   "ょごふミだ" ははあかべべ べべべべべべ べかかかかか かたささささ
+  8    25   "ょごふミだ" ははあびべべ べべべべべべ べかかかかか かたささささ
+  8    25   "ポだえつラ" はひひききき きききききき きすすすきき きききききき
+  8    25   "まぁシぅヴ" いいああかか かかかかかか かべべぶばも ももどどどど
+  8    26   "ぁゼぎはえ" いいききしし しししししし しししきけけ そそそそそそ
+  8    26   "ぁゥぅほぞ" いききききき きききききき きさしきしさ ささささささ
+  8    26   "ぁリぅほぞ" ははあたたた たたたたたた たししさささ ささささささ
+  8    26   "チリくバれ" いいいきしし しししししし ししししさか ぶををををを
+  8    26   "チリぅほぞ" いになたしし しししししし ししししささ ささささささ
+  8    27   "タぺぎグダ" いいきくけけ けけけけけけ けけけくくけ けおおおおお
+  7    28   "ヘえてにッ" いひいきくく くくくくくく くくくくうう ううくくくく
+  7    28   "トぺぎグェ" いいいくくく くくくくくく くくすくくけ けけくくくく
+  8    29   "ぎニくほぞ" ははべべべべ べべべべべべ べかかさかか ささささささ
+  8    29   "ホリぅへぞ" いいいきかか かかかかかか かかきしささ しさささささ
+  8    29   "パにしンダ" いいききかか かかかかかか かかけけえお おおおおおお
+  8    30   "がェタムジ" いくくくうう うううううう ううううふふ ぬななななな
+  8    30   "ハィタにラ" いいきききき きききききき きううふふふ うききききき
+  8    30   "ポフびばや" はははななな なななななな なささたつつ すすすすすす
+  8    30   "ツブゅばや" いいはなにに にににににに にしすすすす すすすすすす
+  8    30   "ベアざごふ" はははははは はははははは はごげげれれ れぞぞぞぞぞ
+  8    31   "ゃぜくほぞ" いくききいい いいいいいい いいいききか ささささささ
+
 
                                   Boktai 1 (NA)      [bokgen -1e7]
 Moves Title      Name                 Password
@@ -70,6 +119,72 @@ Moves Title      Name                 Password
  15    15    "R65DX '-p" DMLKBBBB BBBBBBlt tllkbTTT TTTTTTTT
  15    15    "n6GxO '-p" Dwwnnnnn nnnnnFvv ttvvdTTT TTTTTTTT
  15    15    "n6utlYy95" Dvtwwwww wwwwwDvv t___9993 33333333
+ 14    16    "eToLH6hQ." DCCCTTTT TTTTTTbb bSSBSSSb bccccccc
+ 14    16    "eTolO6hI." DCCBKKKK KKKKKTbb bSS^SSSb cccccccc
+ 14    16    "eTolO6hI." DCCLKKKK KKKKKTbb bSS^SSSb cccccccc
+ 15    17    " gUslYv95" DvDK==== =======5 439_9933 33333333
+ 15    17    " gUslYv95" DvD5==== =======5 439_9933 33333333
+ 15    17    " oQwY '-p" DBSS==== =======5 55/bbTTT TTTTTTTT
+ 15    17    " oQtlYV17" DMNK==== =======5 55__9932 22333333
+ 15    17    " oQtlYy95" DCLK++++ +++++>=5 55__9993 33333333
+ 15    17    " oy7MIv95" DL=+==== =======5 5//##/33 33333333
+ 15    17    " outlYv17" DK++==== =======5 5___9933 22333333
+ 15    17    " outlYY15" DFCK==== =======5 5___9992 23333333
+ 15    17    " outlYY15" DFC5==== =======5 5___9992 23333333
+ 15    17    " ossnev95" DNLK==== =======5 5+939333 33333333
+ 16    18    "mfk-Z2Ib6" NNWWWWWW WWWWWHHH YQQYQQQQ Yhhhhhhh
+ 16    18    "IdUf4iUMo" DFHyHHHH HHHHHHRZ YYhqqq?? @@@@@@@@
+ 16    18    "eToLy4'A." DvMLKKKK KKKKKKbb bSSLLTVd dccccccc
+ 16    18    "eTYlO6hI," DDCCTTTT TTTTTKbb bbS^SSSb cdVVVVVV
+ 16    18    "eTYlO4dI." DMTLKKKK KKKKKKbb bbS^STcb cccccccc
+ 16    18    "AhsX,KWmB" Dttlkkkk kkkkk--/ //##//71 11111111
+ 16    19    "eTsKH6hQ." DvvCCCCC CCCCCCbb bBBBSSSb bccccccc
+ 16    19    "eLcOq8'A," DFFCCCCC CCCCCCbb cLLLMMVd ddVVVVVV
+ 16    19    "eLmoq8'A," DLLCCCCC CCCCCCbb cTLMMMVd ddffffff
+ 16    19    "JOepESv95" D444++++ +++++822 1!!!@@33 33333333
+ 16    19    "JOepESv95" D44+++++ +++++822 1!!!@@33 33333333
+ 16    19    "Jwy1-ev95" DCB55555 55555922 2/##/333 33333333
+ 16    19    "JwutA '-p" DMKKKKKK KKKKK922 2__bcTTT TTTTTTTT
+ 16    19    "EwWpmev95" DL=+++++ +++++882 22!!9333 33333333
+ 16    19    "UX0zuytUo" DDBBBBBB BBBBBB!? ?qrzzz@! !@@@@@@@
+ 16    19    "4 7z-CUMo" DCBCBBBB BBBBBB## jrrzr??? @@@@@@@@
+ 16    19    "0 EzuGtUk" DDCBBBBB BBBBBB:# jjrzz@@! !???????
+ 14    20    "eToLy4'A," DCCCCCCC CCCCClbb bSSLLTVd ddffffff
+ 14    20    "eTYlG4'I." DDDCtttt tttttkbb bbS^TTVd cccccccc
+ 14    20    "eLmCr8'A." DCBBkkkk kkkkkkbb cTVVMMVd dccccccc
+ 14    20    "aMSCB4hI." DMMVmmmm mmmmmmll cVVVTTSb cccccccc
+ 14    20    "JwutlYv9E" >4442222 22222222 2___9933 3bbbbbbb
+ 14    20    " outlev95" D5B55555 555555=5 5___9333 33999999
+ 14    21    " uSCr8'A," DDDVffff ffffffnn WVVVMMVd ddffffff
+ 14    21    " uSCr8'A," DDDfffff ffffffnn WVVVMMVd ddffffff
+ 13    22    ",.A8A '-p" Dwwxxxxx xxxxxxpx xxvdcTTT TTTTTTTT
+ 13    22    ",.A9GUz95" DFwwwwww wwwwwwpx xxxx@!!3 33333333
+ 14    23    "rd2.TkZmB" DFHHyyyy yyyyyyhh hjj??111 11111111
+ 13    24    "S6ItlYv95" DDmmnnnn nnnnnnmt ts__9933 33333333
+ 13    24    "N65DX '-r" Dvmmmmmm mmmmmmtt tllkbTTT TSTTTTTT
+ 13    24    "n65DXdv95" Dvmmllll lllllltv tllkb333 33333333
+ 13    24    "O6Itlev95" DFwnnnnn nnnnnnwt ts__9333 33333333
+ 15    25    "rdjXLKUmB" DQQQYYYY YYYYYYhh h####/!1 11111111
+ 15    25    "Rl2.PjZmB" DGQQYYYY YYYYYYhj jjjZZ111 11!!!!!!
+ 15    25    "Rl2NLSbtD" DFHQYYYY YYYYYYhj jjj###jr yyqqqqqq
+ 15    25    "Rl2NLKR'P" DQQQYYYY YYYYYYhj jjj##/// rrzzzzzz
+ 15    25    "Rl2NLKRoB" NNPQYYYY YYYYYYhj jjj##/// 11777777
+ 13    26    "7k.-B '-p" Dddddddd ddddddcT TVTTcTTT TTWWWWWW
+ 14    27    "Rl2NLkZmB" DFFHhhhh hhhhhhhj jjj##111 11111111
+ 14    27    "RljxDQZmB" NNNQhhhh hhhhhhhj j##@@@11 11111111
+ 14    28    "j2QwDiZmB" DDGHHHHH HHHHHH00 60z@@011 11111111
+ 15    29    "4k.mYdv95" DCTTMMMM MMMMMMVT TVTbb333 33333333
+ 15    29    " oQp-ev95" DVVTLLLL LLLLLL=5 55!!/333 33333333
+ 14    30    "rd0nDQZmB" DPPQQQQQ QQQQQQhh hhj@@@11 11111111
+ 14    30    "RyisnYv95" DBKKKKKK KKKKKKkk 39939933 33333333
+ 15    31    "3t4HH.ka7" DvmvNNNN NNNNNNff ffdddMMN NWWWWWWW
+ 15    31    "N6GxOtrxk" DDFwFFFF FFFFFFtt ttvvdvvv vDFFFFFF
+ 15    31    "N6ExOtrxS" DC55BBBB BBBBBBtt tvvvdvvv vmnnnnnn
+ 15    31    "N6uTlYy95" DDDmDDDD DDDDDDtt t__-9993 33333333
+ 15    31    "N6uTlYy95" DDDwDDDD DDDDDDtt t__-9993 33333333
+ 15    31    "N6utlev95" DVLKCCCC CCCCCCtt t___9333 33333333
+ 15    31    "N6utlev95" DVLTCCCC CCCCCCtt t___9333 33333333
+ 15    31    "mZHxOEQf7" Dttsssss ssssss32 888----3 3_------
 
                                   Boktai 1 (EU)      [bokgen -1e7]
 Moves Title      Name                 Password
@@ -118,24 +233,87 @@ Moves Title      Name                 Password
  15    15    "N6utlev95" ssk5BBBB BBBBBBvt t___9333 33333333
  15    15    "n6GxO '-p" Fwwnnnnn nnnnnFvv ttvvdTTT TTTTTTTT
  15    15    "HhoyDQZmB" slltLLLL LLLLLL5/ /!!@@@11 11111111
+ 12    16    "Dhs9TUZmB" /!!!!!!! !!!!!!@/ //!???11 11111111
+ 13    17    " oQvlYv95" s5++==== =======5 55^_9933 33333333
+ 14    18    "eToOA4'A." sBLLKKKK KKKKKKbb bSLLTTVd dccccccc
+ 14    18    "eLYlO6hQ." skkBKKKK KKKKKKbb cbS^SSSb bccccccc
+ 14    18    "Bhs8TkZmB" sssbbbbb bbbbb_>/ //#??111 11!!!!!!
+ 14    19    "eToOq8'I." ssBCBBBB BBBBBBbb bSLLMMVd cccccccc
+ 14    19    "EOepESv95" sB54++++ +++++882 1!!!@@33 33333333
+ 14    19    "EOepESv95" sB5+++++ +++++882 1!!!@@33 33333333
+ 14    19    "EwutlYV17" s_++++++ +++++882 2___9932 22111111
+ 13    20    "IjoyDQZmB" sstttttt tttttt21 /!!@@@11 11111111
+ 13    20    "JwWsnYy95" s=444444 44444422 22939993 33333333
+ 13    20    "JwWtlYv1E" sBB55555 55555522 22__9933 2bbbbbbb
+ 13    20    "kwksnYy95" s3355555 55555543 28939993 33333333
+ 13    20    " oQslYv95" sB554444 444444=5 559_9933 33333333
+ 13    21    "QhsXTkZmB" skskssss ssssssk/ //##?111 11111111
+ 13    21    "QhsXTkZmB" skstssss ssssssk/ //##?111 11111111
+ 13    21    "Nl2X,kZmB" ss!!rrrr rrrrrrrj jj##/111 11777777
+ 13    21    "NljxDQZmB" ///!@@@@ @@@@@rrj j##@@@11 11111111
+ 13    22    ",.A8A '-p" Fwwxxxxx xxxxxxpx xxvdcTTT TTTTTTTT
+ 13    22    ",.A9GUz95" FFwwwwww wwwwwwpx xxxx@!!3 33333333
+ 13    22    "N6GdHtrxm" svwwwwww wwwwwwtt ttlldvvv vCCCCCCC
+ 13    22    "N6EdH '-p" skkmvvvv vvvvvvtt tvlldTTT TTTTTTTT
+ 13    22    "N6EXw '-p" sccctttt tttttttt tvvtVTTT TTTTTTTT
+ 13    22    "/.A9GUz95" snwwwwww wwwwwwwx xxxx@!!3 33333333
+ 14    23    "rd2.TkZmB" FFHHyyyy yyyyyyhh hjj??111 11111111
+ 14    23    "nk2XLS4nB" /!!?zzzz zzzzzzrr jj#####6 11111111
+ 14    23    "N6GdnYy95" skbKKKKK KKKKKstt ttl39993 33333333
+ 13    24    "s65DXdv95" stlcllll llllllmv tllkb333 33333333
+ 13    24    "s65DXdv95" stlmllll llllllmv tllkb333 33333333
+ 13    24    "O6Itlev95" FFwnnnnn nnnnnnwt ts__9333 33333333
+ 15    25    "7u4Hp.ka7" stllffff fffffVVV ffddVMMN NWWWWWWW
+ 15    25    "7k.-B '-L" skbcffff ffffffcT TVTTcTTT TWWWWWWW
+ 15    25    "08E8A '-p" sktcffff fffffffd vvvdcTTT TTTTTTTT
+ 15    25    "08E8A '-p" sktmffff fffffffd vvvdcTTT TTTTTTTT
+ 15    25    "08E8A '-p" sktwffff fffffffd vvvdcTTT TTTTTTTT
+ 15    25    "3t4HHt/0K" stttCCCC CCCCCWff ffdddtCB B5555555
+ 15    25    "rd0XLSTWL" jZZZYYYY YYYYYYhh hh#####/ 22333333
+ 15    25    "rdjXLKUmB" FQQQYYYY YYYYYYhh h####/!1 11111111
+ 15    25    "rl2XLWZmB" /##ZYYYY YYYYYYhh jj###!11 11111111
+ 15    25    "rljXDkZmB" /ZZZYYYY YYYYYYhh j###@111 11!!!!!!
+ 15    25    "Rl2.PjZmB" FGQQYYYY YYYYYYhj jjjZZ111 11!!!!!!
+ 15    25    "Rl2NLSbtD" FFHQYYYY YYYYYYhj jjj###jr yyqqqqqq
+ 15    25    "Rl2NLKR'P" FQQQYYYY YYYYYYhj jjj##/// rrzzzzzz
+ 15    25    "Bdk-Z2izc" s/@zzzzz zzzzzzjZ YQQYQQQR 66666666
+ 15    25    "BZHxOEQyP" s_99++++ +++++>93 888----b SSSSSSSS
+ 15    25    "E HxOEQyP" s5=>++++ +++++>__ _88----b SSSSSSSS
+ 13    26    "8k.-B '-r" sstccccc ccccccLT TVTTcTTT TS^^^^^^
+ 13    26    "7k.-q '-p" sCCccccc cccccccT TVTdVTTT TTTTTTTT
+ 13    26    "W6Gtlev95" ssBKSSSS SSSSScct tt__9333 33333333
+ 13    26    "N65dA '-p" sllddddd ddddddtt tllbcTTT TTTTTTTT
+ 13    26    "N6G-r '-r" stcccccc cccccctt ttTTVTTT TSTTTTTT
+ 13    26    "N6Gwnev95" sscccccc cccccctt tt/39333 33333333
+ 13    26    "N6EJG '-p" sskccccc cccccctt tvCtcTTT TTTTTTTT
+ 13    27    "rl2NtkZmB" ssskjjjj jjjjjjhh jjj#6111 11111111
+ 13    27    "mZHxOEQyP" sss88888 88888832 888----b SSSSSSSS
+ 13    28    "7k4dA '-p" scTTTTTT TTTTTTcT TllbcTTT TTTTTTTT
+ 13    28    "mZHxOEqnA" ////3333 33333332 888----2 2JJJJJJJ
+ 13    28    " oQtlYY17" sKKSSSSS SSSSSS=5 55__9992 22111111
+ 13    29    "4 7z-oUMo" sssB//// //////## jrrzrr?? @@000000
+ 13    29    " oQtlYy95" sK=KLLLL LLLLLL=5 55__9993 33333333
+ 12    30    "RyUtlYv95" sssKKKKK KKKKKKkk 33__9933 33333333
+ 14    31    "N6utlev95" skbSBBBB BBBBBBtt t___9333 33999999
+ 14    31    "MRHxOI2zP" sBksssss ssssss33 988-->>S SSSSSSSS
 
 Titles:
-  0 Trigger of Sol  Start with Stats +1, a Healer, and a Magic Potion
-  1 Gun Master      Start with Stats +1, a Healer, and a Magic Potion
-  2 Gladiator       Start with Stats +1, and 2 Healers
-  3 Bishop          Start with Vitl +2, Strg +2, an Antidote, and an Elixer
-  4 Queen           Start with Sprt +2, Agil +2, a Speed, and Tiptoe Nut
-  5 Berserker       Start with Strg +2, a Tasty, and Rotten Meat
-  6 Death           Start with Vitl +2, a Solar, and Rotten Nut
-  7 Solar Boy       Start with Vitl +2, Sprt +2, a Solar Nut, and a Drop of Sun
-  8 Dark Boy        Start with Strg +2, Agil +2, a Power Nut, and a Bearnut
-  9 Solar Merchant  Start with Sprt +2, Strg +2, a Redshroom, and a Blueshroom
- 10 Running Boy     Start with Vitl +2, Agil +2, and 2 Magic Potions
- 11 King            Start with Stats +1, an Elixer, and a Healer
- 12 Rook            Start with Vitl +1, Sprt +1, a Healer, and an Antidote
- 13 Knight          Start with Strg +1, Agil +1, an Earthly, and Solar Nut
- 14 Pawn            Start with an Earthly and Solar Nut
- 15 Invalid         Start with 2 Earthly Nuts
+  0  Trigger of Sol  Start with Stats +1, a Healer, and a Magic Potion
+  1  Gun Master      Start with Stats +1, a Healer, and a Magic Potion
+  2  Gladiator       Start with Stats +1, and 2 Healers
+  3  Bishop          Start with Vitl +2, Strg +2, an Antidote, and an Elixer
+  4  Queen           Start with Sprt +2, Agil +2, a Speed, and Tiptoe Nut
+  5  Berserker       Start with Strg +2, a Tasty, and Rotten Meat
+  6  Death           Start with Vitl +2, a Solar, and Rotten Nut
+  7  Solar Boy       Start with Vitl +2, Sprt +2, a Solar Nut, and a Drop of Sun
+  8  Dark Boy        Start with Strg +2, Agil +2, a Power Nut, and a Bearnut
+  9  Solar Merchant  Start with Sprt +2, Strg +2, a Redshroom, and a Blueshroom
+ 10  Running Boy     Start with Vitl +2, Agil +2, and 2 Magic Potions
+ 11  King            Start with Stats +1, an Elixer, and a Healer
+ 12  Rook            Start with Vitl +1, Sprt +1, a Healer, and an Antidote
+ 13  Knight          Start with Strg +1, Agil +1, an Earthly, and Solar Nut
+ 14  Pawn            Start with an Earthly and Solar Nut
+ 15+ Invalid         Start with 2 Earthly Nuts
 
 
                                   Boktai 2 (JP)      [bokgen -2j5]

+ 29 - 16
bokpass.js

@@ -1469,7 +1469,8 @@ var bokpass = (function () {
         },
         { name: "link-battles", type: "int", min: 0, max: 63 },
         { name: "link-trades", type: "int", min: 0, max: 63 },
-        { name: "loan", type: "int", min: 0, max: 255 }
+        { name: "loan", type: "int", min: 0, max: 255 },
+        { name: "padding", type: "hidden", default: 0 }
       ];
     case 2:
       return uiinfo[locale][region][game] = [
@@ -1497,7 +1498,9 @@ var bokpass = (function () {
         },
         { name: "titles", type: "bits",
           values: strings[locale].titles[2], default: 0x40
-        }
+        },
+        { name: "header-padding", type: "hidden", default: 0 },
+        { name: "padding", type: "hidden", default: 0 }
       ];
     case 3:
       return uiinfo[locale][region][game] = [
@@ -1523,7 +1526,9 @@ var bokpass = (function () {
         },
         { name: "endings",
           type: "bits", values: strings[locale].endings, default: 1 },
-        { name: "titles", type: "bits", values: strings[locale].titles[3] }
+        { name: "titles", type: "bits", values: strings[locale].titles[3] },
+        { name: "header-padding", type: "hidden", default: 0 },
+        { name: "padding", type: "hidden", default: 0 }
       ];
     case 4:
       return uiinfo[locale][region][game] = [
@@ -1554,7 +1559,9 @@ var bokpass = (function () {
           "max-bytes": { jp: 10, na: 10, eu: 10 },
           default: { jp: "ジャンゴ", na: "Aaron", eu: "Aaron" }
         },
-        { name: "titles", type: "bits", values: strings[locale].titles[4] }
+        { name: "titles", type: "bits", values: strings[locale].titles[4] },
+        { name: "header-padding", type: "hidden", default: 0 },
+        { name: "padding", type: "hidden", default: 0 }
       ];
     default:
       throw new Error("Unknown game: " + game);
@@ -1748,10 +1755,7 @@ var bokpass = (function () {
           cur.innerText = "⚠ " + strings[locale].labels.name + " should be set";
         break;
       case 3:
-        if (dict.endings == 0)
-          cur.innerText =
-              "⚠ " + strings[locale].labels["ending-list"] + " should be set";
-        else if (dict["name"] == "")
+        if (dict["name"] == "")
           cur.innerText = "⚠ " + strings[locale].labels.name + " should be set";
         break;
       case 4:
@@ -2005,16 +2009,18 @@ var bokpass = (function () {
         clear = true;
         continue;
       }
-      container.appendChild(label = document.createElement("label"));
-      if (clear || info[i].type == "bits") {
-        label.className = prefix + "-clear";
+      if (info[i].type != "hidden") {
+        container.appendChild(label = document.createElement("label"));
+        if (clear || info[i].type == "bits") {
+          label.className = prefix + "-clear";
+          if (!("nostyle" in options && options.nostyle))
+            label.style.gridColumnStart = 1;
+          clear = false;
+        }
+        label.append(strings[locale].labels[info[i].name] + ":");
         if (!("nostyle" in options && options.nostyle))
-          label.style.gridColumnStart = 1;
-        clear = false;
+          label.style.textAlign = "right";
       }
-      label.append(strings[locale].labels[info[i].name] + ":");
-      if (!("nostyle" in options && options.nostyle))
-        label.style.textAlign = "right";
       def = "default" in info[i] ? info[i].default : undefined;
       def = typeof(def) == "object" && region in def ? def[region] : def;
       switch (info[i].type) { 
@@ -2103,6 +2109,13 @@ var bokpass = (function () {
           }
         }
         break;
+      case "hidden":
+        container.appendChild(cur = document.createElement("input"));
+        cur.className = prefix + "-hidden " + prefix + "-" + info[i].name;
+        cur.type = "hidden";
+        cur.name = info[i].name;
+        cur.value = typeof(def) == "undefined" ? 0 : def;
+        break;
       }
     }
     root.appendChild(cur = document.createElement("p"));

+ 15 - 5
bokpass.tcl

@@ -1339,6 +1339,7 @@ proc bok::ui::info {game {region na} {locale en}} {
         name {string {jp 5 na 9 eu 9} {jp ジャンゴ na Django eu Django} 1} \
         link-battles {int {0 63}} link-trades {int {0 63}} \
         loan {int {0 255}} \
+        padding hidden \
     ]
   } 2 {
     return [dict create \
@@ -1354,6 +1355,7 @@ proc bok::ui::info {game {region na} {locale en}} {
         hours {int {0 63}} \
         name {string {jp 5 na 9 eu 9} {jp ジャンゴ na Django eu Django} 1} \
         title-list [list bits [@ $locale titles 2] 0x40] \
+        header-padding hidden padding hidden \
     ]
   } 3 {
     return [dict create \
@@ -1367,6 +1369,7 @@ proc bok::ui::info {game {region na} {locale en}} {
         name {string {jp 5 na 9 eu 9} {jp ジャンゴ na Django eu Django} 1} \
         ending-list [list bits [@ $locale endings] 1] \
         title-list [list bits [@ $locale titles 3]] \
+        header-padding hidden padding hidden \
     ]
   } 4 {
     return [dict create \
@@ -1385,6 +1388,7 @@ proc bok::ui::info {game {region na} {locale en}} {
         name-solar {string {jp {5 10} na 10 eu 10}
           {jp ジャンゴ na Aaron eu Aaron}} \
         title-list [list bits [@ $locale titles 4]] \
+        header-padding hidden padding hidden \
     ]
   }
 }
@@ -1482,6 +1486,13 @@ proc bok::ui::init {window region game args} {
       set col $columns
       continue
     }
+    if {[lindex $list 0] == "hidden"} {
+      if {[llength $list] < 2} {set list {hidden 0}}
+      set default [lindex $list 1]
+      if {[llength $default] > 1} {set default [dict get $defalut $region]}
+      set ::$window.$key $default
+      continue
+    }
     if {[lindex $list 0] == "bits"} {
       set col $columns
     }
@@ -1765,6 +1776,8 @@ proc bok::ui::encode {window game {locale en}} {
           dict lappend dict $key [lindex $list 1 $i]
         }
       }
+    } hidden {
+      dict set dict $key [set ::$window.$key]
     }}
   }
   $window.error configure -text ✓
@@ -1772,7 +1785,6 @@ proc bok::ui::encode {window game {locale en}} {
     $window.error configure -text "⚠ $error"
   }
   set dict [normalize $dict $locale 1]
-  set pass [encpass $dict]
   if {[catch {set pass [encpass $dict]} error]} {
     $window.error configure -text "⚠ $error"
     return
@@ -1795,10 +1807,6 @@ proc bok::ui::encode {window game {locale en}} {
           -text "⚠ [@ $locale titles 2 \#6] should be set"
     }
   } 3 {
-    if {[dict get $dict endings] == 0} {
-      $window.error configure \
-          -text "⚠ [@ $locale labels ending-list] should be set"
-    }
   } 4 {
     if {[dict get $dict name-solar] == ""} {
       $window.error configure \
@@ -1849,6 +1857,8 @@ proc bok::ui::decode {window game {locale en}} {
           [lindex $list 1 $i] in [dict get $dict $key] ? "" : "!"
         }]selected"
       }
+    } hidden {
+      set ::$window.$key [dict get $dict $key]
     }
   }
 }