11月はじめの気になりとか

ポケモンGOプラス

第2出荷分が11/5より全国のポケモンセンターで販売開始するとのことで、
サンシャインはメガトーキョー店まで並んで来た。
無事にゲット出来たので早速ネットにあった改造を施す。

(シルク印刷されている型番は9月発売されたものと同じだし、
表面のパターンをざっと見る限り、初期ロットとの違いは多分無いんじゃないかと。)

・改
 自動操作用のジャンパを飛ばす。
 f:id:dumbo001:20161106231130j:plain:h480

・改二
 振動モーター除去による節電効果は如何に。
 f:id:dumbo001:20161106232339j:plain:h480

因みにBluetoothのペアリングをやたら繰り返していたら
ポケモンやポケスポットを発見しているにも関わらず
反応しない事態が発生し出し、仕舞いには一切反応しなくなった。

一旦 iOS 上から Bluetooth 項目よりデバイス削除して、
まっさらな状態から再度ペアリングしたら元通りの反応に戻ったけど。
てっきり改造対策始まったのかと思った。(杞憂)

●ゲームレジェンド25

開催回数1桁の頃以来の参加。
それなりに賑わっていると聞いていたけど、
まさか入場規制で中々入れない程とは露知らず。

写真はサークル「一人二人羽織」さんとこの展示(筐体プラモに液晶画面を載せた物とか)
f:id:dumbo001:20161106232936j:plain:w640

・買った、貰った、遊んだもの
 ・PONGはどうやって動く?(アーケード、PONG/同人誌/流線堂)
 ・くりいむレモン毒本・おかゆ(アニメ/同人誌/華ディスコ)
 ・ツクールエターナル 2号(Ver0.02)(ツクール/同人誌/ツクール同好会)
 ・超連打ボタン シリーズ 超連打えんどーさん(アーケード/同人ハード/いろいろや ひげねこ堂)
 ・にょきにょき(3DS/試遊台/コンパイルクラブちよだ)
  ぷよぷよの亜種かな?って遊び始めてみたけど違くて、けどこれはこれで面白いルールだし
  所見でもそこそこ遊ばせてくれるし、熟練者ともなればより凝ったプレイが生まれそうな、
  そんなゲーム性を伴ったタイトルだと感じた。

・売り切れ、気になり、見落としとか
 ・スーパーカセットビジョンHELLO WORLD(SCV/同人誌/流線堂)
  訪れたときには完売してた。ハンドアセンブルでプログラム作成とか、なんて稀有な…。
 ・スーパーリアル麻雀毒本・完全愛蔵版(アーケード/同人誌/華ディスコ)
  こちらも新刊しか残ってなかった…のかな?
  調べてみたらメロンブックスDLでPDF版売ってるようなのでそっちで済ますか。
 ・PS2専用ローリングスイッチ(PS2/同人ハード/呪術人形館)
  完全に見落としてた…。
 ・ローリングガンナーデモ
  攻略?委託?よく確認していなかった…。
   →デザイン担当の方のスペースで委託頒布していた模様
 ・うーぱーぐらふぃくす(PCE/同人ハード/UperGrafx DevTeam)
  PCエンジンの背面に接続してDVI出力を可能にするアダプタ。
 ・ピョコタンファミコン芸人フジタ、ジャンクハンター吉田からなる
  3名を被写体とした撮影会的な何か(という風に見えた)

▲趣味の開発とか

・EGマーカーWeb Ver0.07
 f:id:dumbo001:20161106234921p:plain:h640

 過去にも何度か日記に書いていた同人誌の蔵書管理なナンチャラ。
 Google の PaaS (Google App Engine) を利用して開発中。
 iOS の仕様上による制限か、iframe 内で position: fixed; が機能せず
 固定ナビゲーションが実現出来ない問題に頭を悩ませている。
 Android のブラウザだと普通に動くんだけどなぁ。

9月までの気になりとか。

デザエモン 隠しメッセージ (SFC/デザエモン)

http://415elm.blog50.fc2.com/blog-entry-2.html
https://tcrf.net/Kaite_Tsukutte_Asoberu_Dezaemon

コントローラポートを使ったセーブデータ通信機能が気になる。
つまり開発当時PCをターボファイルに見立ててデバッグとかしてたってことかな。
22年の時を経て世界同時多発発見された事にも驚き。

■misakiさんとこのファミコン関連 (FC/NES)

misakiさんいつの間にか 6502 たしなまれるようになっているんです?

■HVC-001 (FC/NESエミュ)
http://www.geocities.jp/g_lsluk/system_hvc-001.html

最近はアセンブラソースを直接実行出来るFCエミュレータなんてものがあるとは。

●C90お疲れ様でした(遅っ)

・Emu on PSP 不参加

冬を楽しみにしたい。

・CUBIC STYLE 新作無し

公表していないところで何やら面白げな事をされている様子。
つかそれをまとめて新刊出して欲しい。

・アケステ改造本 ~スティック取り外して取り回しをスッキリさせよう~ (アケコン/同人誌/半端工房)

公正中の版を頂いてしまった。ありがたや、ありがたや。

・いまいち萌えないプチコンプログラム6 (3DSプチコン/同人誌/まりも友の会)
プチコン3号 お絵かき入門 (3DSプチコン/同人誌/おちゃめくらぶ)
タコさん技術誌 第1号 ポケットプリンタArduino で扱えるようにしてみた。
 & 「PICO-8」でとりあえずゲーム(らしきもの)を数時間で作る話 (GB・ポケットプリンタ/同人誌/タコさん技術)

GBポケットプリンタからツイッターのTLが淡々と出力される様に感動した。

・ツクールエターナル No.1/2015.12 (ツクール/同人誌/ツクール同好会)
・DISK Sugar Candy Vol.12 (PC-88/同人CG集/なお・ぐらふぃっくす・らぼ’)
・まじゃべんちゃー・ねぎ麻雀 CALENDAR (PC-88/同人グッズ/なお・ぐらふぃっくす・らぼ’)
・ギアライブ! (GG/同人音楽/Magic Troffle)
・ギアライブ!3 (GG/同人音楽/Magic Troffle)
・ギアライブ!4 (GG/同人音楽/Magic Troffle)
・ギアライズ! (GG/同人音楽/Magic Troffle)

ゲームギア音源を使ったラブライブ!カバーCD

★買い物

・EVERDRIVE N8 (FC)
・キラキラスターナイトDX (FC)
大合奏!バンドブラザーズP (3DS)
新絵心教室 (3DS)
ポケモンアートアカデミー (3DS)

3DS本体はまだない。

▲趣味の開発とか

・Dir to HTML (VBScript, HTML, CSS, Javascript)
衝動的に先月後半から作り始めたファイル、フォルダ一覧出力ツール。
当初の想定から構想が膨らみ過ぎて、実装が終わらないというよくあるパターンに。
今月中にとりあえず使えるところまで目処立てたい。

・Todoist
https://ja.todoist.com/

タスク管理 Web サービス使い始め。
確かに使い易い!ってことで使い道の無かった Google Play 残高使ってプレミアム会員登録。
来年まで使い続けてるようなら延長も視野に入れる方向で。

ご無沙汰してました。

■ブログ再開

2年以上放置しといてなんですが。
どうぞよしなに。

はてなブログへ引越し

はてなダイアリーだと出来ることが限られてしまう、というのが理由。
もっと言えばAPI叩いて外部連携とか面白そうだったから。
…んで、軽く調べたらメール投稿もできるみたい。
トリガーでGASから記事生成してGmail経由で投稿とか夢が広がるなー。

因みに古い記事とかはそのまんま。
消そうかどうか迷ったが、気まぐれで見返すことも偶にあったので一応残した。

ノーホビー・ノーライフ


携わっている案件の担当分がようやく片付いた。これにてシステム開発部からシャバに戻れる。
得ることもままあったけど、ITブラックのこれは酷い!って片鱗を目の当たりにした感じ。
下の方にいるSIerの惨状って、脚色とかなかったんだなーと。


軽い気持ちで近づいたら痛い目見た典型。半年分の趣味リソース食い潰しやがって。
もう2度とシステム開発に関わろうなんて思わない。
俺はプログラミングという行為が好きなんじゃなくて、作りたいもの、欲しいものを作れるのが好きなんだと。
基幹システム作ってても、ちーっとも楽しくなかったし。


ただハンディターミナルのアプリケーション開発って部分はキツくはあったが新鮮だった。
縛り・制約・ブラックボックス・情報不足に加えトレードオフの嵐で、幾度となく心折れそうにはなったけど。


・気晴らしにライン関数で画像描画したり

今年入ってからのヲレ。


転属から4ヶ月で歌通りな有様ですよ。


「言わんこっちゃない。」
「奴等、加減ってものを知らないのか?」


進撃の社畜


それが仕事って言われたけど、ワーカーホリックな先輩方々と俺との価値観の相違なんだろう。
定時退社出来ないくらいのタスク割り当てられて、サービス残業はデフォだし、休みでも仕事の電話来たり、
休日出勤で予定潰されたりして、逆に家に持ち帰ってやらざるを得なかったりetc,etc…
それでいてオペレータ時代と同じ年俸で朝から終電前までこき使われるんじゃ、モチベなんて上がる訳がないと。


更に言えば、この業界知らない俺にOJTすら無い状態で中途採用と同じように仕事振られても、
ベテランIT戦士よろしくサクサクこなせるハズがないのに。
これはまあ、うちの会社の問題なのだが。


自由な時間が得られて趣味の研究に身を焦がせられるのなら、
食い扶持困らないくらいの賃金以上を求めていないのは今も変わらないし。
そろそろ潮時な感じ。

同人誌にバーコードを付ける。2


以前のエントリで書いた、フリーバーコードフォント用文字列書き出しプログラムの続きです。
JANコード標準13桁、短絡8桁とチェックディジット算出に対応まで。
まだExcelマクロの標準モジュールでしか動いていないので、次はVBSに対応させる予定です。


BarFont.bas

'
'   BarFont(JAN)補助モジュール
'
'   version 0.02
'   Jan 05, 2014
'
'   by REGEKATSU
'
'   release
'
'   version 0.02
'   JANコード標準なら12〜13桁、短絡なら7〜8桁での入力に対応しています
'   (チェックディジットの計算機能が備わっています。)。
'
'   version 0.01
'   JANコード13桁のみ対応しています。12桁での入力には対応していません
'   (チェックディジットの計算機能はありません。)。
'

'入力ボックスに指定されたJANコード標準13桁又は短絡8桁に対するバーコード表示用文字列を、
'同じく入力ボックスに出力します。
'入力無しかキャンセルボタンをクリックすることで、処理が終了します。
Public Sub JanCodeToFontChar()
    
    Const DEFAULT_PROMPT As String = "JANコード標準13桁又は短絡8桁を入力してください。"
    Dim prompt As String
    prompt = DEFAULT_PROMPT
    Dim promptNoUseLongBar As String
    Dim inputNoUseLongBar As Boolean
    Dim inputCode As String
    inputCode = ""
    
    Do
        inputCode = InputBox(prompt, "バーコードフォント、表示用変換マクロ", inputCode)
        If inputCode Like "############" Or inputCode Like "#############" Or _
            inputCode Like "#######" Or inputCode Like "########" Then
            prompt = DEFAULT_PROMPT & vbCrLf & vbCrLf & "前回入力JANコード: " & inputCode & vbCrLf
            If MsgBox("バーコードの高さを均一に揃えますか?" & vbCrLf & vbCrLf & _
                "はい(Y): 同サイズ, いいえ(N): ロング", vbYesNo Or vbQuestion, _
                "指定") = vbYes Then
                inputNoUseLongBar = True
                promptNoUseLongBar = "同サイズ"
            Else
                inputNoUseLongBar = False
                promptNoUseLongBar = "ロング"
            End If
            prompt = prompt & "前回バーコードサイズ: " & promptNoUseLongBar & vbCrLf
            inputCode = ConvertFontChar(inputCode, inputNoUseLongBar)
            prompt = prompt & "前回表示用文字列: " & inputCode
            MsgBox "変換が完了しました。", vbInformation, "完了"
        ElseIf inputCode <> "" Then
            MsgBox "入力に誤りがあります。", vbCritical, "エラー"
        End If
    Loop While inputCode <> ""
    
End Sub

'指定したJANコード標準13桁又は短絡8桁に対する、チェックディジットを返します。
'
'パラメータ janCode:        バーコードの文字列。
'                           標準なら12〜13桁、短絡なら7〜8桁で指定
'戻り値     チェックディジット1桁の文字列。
'           指定に誤りがあれば空白スペースを返す
'
Public Function CalcCheckDigit(janCode As String) As String
    Dim i, j As Integer
    Dim checkOdd As Integer
    Select Case Len(janCode)
        '短絡8桁の場合。
        Case 7, 8
            For i = 1 To 7
                '奇数桁が何文字目か調べる
                '(チェックデジットを除いた1番右側より奇数桁、右から2番目を偶数桁…と数える。)。
                If i Mod 2 = 1 Then
                    checkOdd = 1
                Else
                    checkOdd = 0
                End If
                '奇数桁の数を3倍に、偶数桁の数を1倍にして全てを合計する。
                j = j + (Asc(Mid(janCode, i, 1)) And &HF) * (1 + 2 * checkOdd)
            Next
            '合計の1の位を10から引いた数がチェックディジットなので、戻り値として返す。
            CalcCheckDigit = Chr$(48 + (10 - (j Mod 10)) Mod 10)
        '標準13桁の場合。
        Case 12, 13
            For i = 1 To 12
                '奇数桁が何文字目か調べる
                '(チェックデジットを除いた1番右側より奇数桁、右から2番目を偶数桁…と数える。)。
                If i Mod 2 = 0 Then
                    checkOdd = 1
                Else
                    checkOdd = 0
                End If
                '奇数桁の数を3倍に、偶数桁の数を1倍にして全てを合計する。
                j = j + (Asc(Mid(janCode, i, 1)) And &HF) * (1 + 2 * checkOdd)
            Next
            '合計の1の位を10から引いた数がチェックディジットなので、戻り値として返す。
            CalcCheckDigit = Chr$(48 + (10 - (j Mod 10)) Mod 10)
        '標準13桁又は短絡8桁以外の桁数だった場合。
        Case Else
            '指定に誤りがあるので空白スペースを、戻り値として返す。
            CalcCheckDigit = " "
    End Select
End Function

'BarFont(JAN)を利用した、バーコード描画関数です。
'指定したJANコード標準13桁又は短絡8桁、及びロングバーの有無に対する、
'バーコード表示用文字列を返します。
'
'JANコード標準なら12〜13桁、短絡なら7〜8桁での入力に対応しています
'(チェックディジットの計算機能が備わっています。)。
'
'パラメータ janCode:        バーコードの文字列。
'                           標準なら12〜13桁、短絡なら7〜8桁で指定
'           noUseLongBar:   ロングバーを使わない場合True
'戻り値     バーコードで表現される文字列
'           指定に誤りがあればNULL文字列を返す
'
Public Function ConvertFontChar(janCode As String, noUseLongBar As Boolean) As String
    
    '変換文字列用変数。
    Dim janConv As String
    janConv = ""
    
    'JANコード13桁用、パリティビット算出用テーブル。
    Dim combiTable(2 To 7) As Byte
    combiTable(2) = 32
    combiTable(3) = 16
    combiTable(4) = 8
    combiTable(5) = 4
    combiTable(6) = 2
    combiTable(7) = 1
    Dim prifixTable(9) As Byte
    prifixTable(0) = 0  '000000b
    prifixTable(1) = 11 '001011b
    prifixTable(2) = 13 '001101b
    prifixTable(3) = 14 '001110b
    prifixTable(4) = 19 '010011b
    prifixTable(5) = 25 '011001b
    prifixTable(6) = 28 '011100b
    prifixTable(7) = 21 '010101b
    prifixTable(8) = 22 '010110b
    prifixTable(9) = 26 '011010b
    
    '左ガイドバーをセットする。
    janConv = janConv & Chr$(&H29 - noUseLongBar - 1)
    Dim i As Integer
    Select Case Len(janCode)
    '短絡8桁の場合。
    Case 7, 8
        janCode = Mid(janCode, 1, 7) & CalcCheckDigit(janCode)
        '左側4桁に対する、キャラクタをセットしていく。
        For i = 1 To 4
            janConv = janConv + Chr$(Asc(Mid(janCode, i, 1)) + &H20)
        Next
        'センターバーをセットする。
        janConv = janConv & Chr$(&H2B - noUseLongBar - 1)
        '右側6桁に対するキャラクタをセットする。
        janConv = janConv & Mid(janCode, 5, 4)
    '標準13桁の場合。
    Case 12, 13
        janCode = Mid(janCode, 1, 12) & CalcCheckDigit(janCode)
        '左側7桁に対する、パリティビットに基づいたキャラクタをセットしていく。
        Dim parityCheck, x As Integer
        '左1文字目を取得して、使用するパリティテーブルを決定する。
        x = Asc(Mid(janCode, 1, 1)) And &HF
        '使用するパリティテーブルに基づいて2〜7文字目の、奇数または偶数パリティのキャラクタをセットしていく。
        For i = 2 To 7
            parityCheck = 0
            If (combiTable(i) And prifixTable(x)) = 0 Then parityCheck = 1
            janConv = janConv + Chr$(Asc(Mid(janCode, i, 1)) + &H10 + (&H10 * parityCheck))
        Next
        'センターバーをセットする。
        janConv = janConv & Chr$(&H2B - noUseLongBar - 1)
        '右側6桁に対するキャラクタをセットする。
        janConv = janConv & Mid(janCode, 8, 6)
    '指定に誤りがあった場合。
    Case Else
        janConv = ""
    End Select
    '右ガイドバーをセットする。
    If janConv <> "" Then janConv = janConv & Chr$(&H29 - noUseLongBar - 1)
    
    '変換文字列を返す。
    ConvertFontChar = janConv
    
End Function

今更ですが、あけましておめでとうございます。


とあるシリーズ観ていたらあっという間に休日消化の、とても素敵な正月を過ごしてしまいました。


つまりあれです、コミケ後のやる気出ない感は半端無いということです(?)。

同人誌にバーコードを付ける。


同人誌にISDNなるバーコードを付けてみた。


ISDN - 国際標準同人誌番号
http://isdn.jp/


ISBNをパロったインストアJANコード
「司書にゃん」なる蔵書管理アプリが同人誌DBとして使ってたり。


んで、このコードを書籍バーコード風にして貼り付けたいと思った訳だが、
・左右センターバー含め全て均一サイズ
・バーコードの下にOCR Bフォントで数字を表記
という書式で吐き出してくれる無料なWebサービスは無いっぽかった。


じゃあ別のアプローチってんで、ベクターにあったフリーのJANバーコードフォントを入手。


バーコードフォント(サンプル版)
http://www.vector.co.jp/soft/data/writing/se293727.html


このフォント、単純に整数13桁入れてもまともなバーコードは生成されないので、
付属のDelphiコードをExcelVBAに部分移植した。


マクロで出力した文字列を、上記バーコードフォントで表示することで
ようやく正しいバーコードが生成されるようになった。
が、今欲してた必要最小限でしか組んでないのでコミケが無事終わって落ち着いてきたら、
チェックディジット算出と短絡8桁も含めたVBSに手直しする予定。


BarFont.bas

'
'   BarFont(JAN)補助モジュール
'
'   version 0.01
'   Dec 23, 2013
'
'   by REGEKATSU
'
'   release
'
'   version 0.01
'   JANコード13桁のみ対応しています。12桁での入力には対応していません
'   (チェックディジットの計算機能はありません。)。
'

'入力ボックスに指定されたJANコード13桁に対するバーコード表示用文字列を、同じく入力ボックスに出力します。
'入力無しかキャンセルボタンをクリックすることで、処理が終了します。
Public Sub JanCodeToFontChar()
    
    Const DEFAULT_PROMPT As String = "JANコード13桁を入力してください。"
    Dim prompt As String
    prompt = DEFAULT_PROMPT
    Dim promptNoUseLongBar As String
    Dim inputNoUseLongBar As Boolean
    Dim inputCode As String
    inputCode = ""
    
    Do
        inputCode = InputBox(prompt, "バーコードフォント、表示用変換マクロ", inputCode)
        If inputCode Like "#############" Then
            prompt = DEFAULT_PROMPT & vbCrLf & vbCrLf & "前回JANコード13桁: " & inputCode & vbCrLf
            If MsgBox("バーコードの高さを均一に揃えますか?" & vbCrLf & vbCrLf & _
                "はい(Y): 同サイズ, いいえ(N): ロング", vbYesNo Or vbQuestion, _
                "指定") = vbYes Then
                inputNoUseLongBar = True
                promptNoUseLongBar = "同サイズ"
            Else
                inputNoUseLongBar = False
                promptNoUseLongBar = "ロング"
            End If
            prompt = prompt & "前回バーコードサイズ: " & promptNoUseLongBar & vbCrLf
            inputCode = ConvertFontChar(inputCode, inputNoUseLongBar)
            prompt = prompt & "前回表示用文字列: " & inputCode
            MsgBox "変換が完了しました。", vbInformation, "完了"
        ElseIf inputCode <> "" Then
            MsgBox "入力に誤りがあります。", vbCritical, "エラー"
        End If
    Loop While inputCode <> ""
    
End Sub

'BarFont(JAN)を利用した、バーコード描画関数です。
'指定したJANコード13桁及びロングバーの有無に対する、バーコード表示用文字列を返します。
'
'JANコード13桁のみ対応しています。12桁での入力には対応していません
'(チェックディジットの計算機能はありません。)。
'
'パラメータ janCode:        バーコードの文字列
'           noUseLongBar:   ロングバーを使わない場合True
'戻り値     バーコードで表現される文字列
'
Public Function ConvertFontChar(janCode As String, noUseLongBar As Boolean) As String
    
    '変換文字列用変数。
    Dim janConv As String
    janConv = ""
    
    'パリティビット算出用テーブル。
    Dim combiTable(2 To 7) As Byte
    combiTable(2) = 32
    combiTable(3) = 16
    combiTable(4) = 8
    combiTable(5) = 4
    combiTable(6) = 2
    combiTable(7) = 1
    Dim prifixTable(9) As Byte
    prifixTable(0) = 0  '000000b
    prifixTable(1) = 11 '001011b
    prifixTable(2) = 13 '001101b
    prifixTable(3) = 14 '001110b
    prifixTable(4) = 19 '010011b
    prifixTable(5) = 25 '011001b
    prifixTable(6) = 28 '011100b
    prifixTable(7) = 21 '010101b
    prifixTable(8) = 22 '010110b
    prifixTable(9) = 26 '011010b
    
    '左ガイドバーをセットする。
    janConv = janConv & Chr$(&H29 - noUseLongBar - 1)
    '左側7桁に対する、パリティビットに基づいたキャラクタをセットしていく。
    Dim parityCheck As Integer
    Dim i, x As Integer
    '左1文字目を取得して、使用するパリティテーブルを決定する。
    x = Asc(Mid(janCode, 1, 1)) And &HF
    '使用するパリティテーブルに基づいて2〜7文字目の、奇数または偶数パリティのキャラクタをセットしていく。
    For i = 2 To 7
        parityCheck = 0
        If (combiTable(i) And prifixTable(x)) = 0 Then parityCheck = 1
        janConv = janConv + Chr$(Asc(Mid(janCode, i, 1)) + &H10 + (&H10 * parityCheck))
    Next
    'センターバーをセットする。
    janConv = janConv & Chr$(&H2B - noUseLongBar - 1)
    '右側6桁に対するキャラクタをセットする。
    janConv = janConv & Mid(janCode, 8, 6)
    '右ガイドバーをセットする。
    janConv = janConv & Chr$(&H29 - noUseLongBar - 1)
    
    '変換文字列を返す。
    ConvertFontChar = janConv
    
End Function

コミックマーケット85


今年末、東京ビッグサイトにて行われるコミックマーケット85にサークル参加する事となりました。
頒布物は新刊と、夏に出した既刊になります。
今回も新刊で取り上げた製作例を展示してお待ちしておりますので、宜しければ是非お立ち寄りください。


コミックマーケット85



レトロゲーム活用研究同好会


日時: 2013/12/31(火)
場所: 東京ビッグサイト
スペース: 西地区“す”ブロック−27b


新刊:


誌名: レトロゲーム活用研究同好会会報 PART02 -GBAスロットはPIOの夢を見るか?-
表紙:


サイズ: B5
価格: 200円
内容:
ニンテンドーDSDS LiteにあるGBAスロットの制御方法について解説した本です。


既刊:


誌名: レトロゲーム活用研究同好会会報 PART01 -DSに自作ハードを繋ぐ試み-
表紙:


サイズ: B5 40p
価格: 300円
内容:
ニンテンドーDSに繋いだ自作ハードをプログラムから制御する方法について解説した本です。