動画読み込み(Load a video)

※ 読み込めない動画ファイルもあります。その場合は別の動画ファイルをお試しください。 Some video files cannot be loaded. In this case, try a different video file.

画像読み込み(Load an image) 減色設定(Color setting)
動画設定(Video settings)
画像揃え位置(Image align)
開始位置(Start position)
間隔(Interval)

※ MSX2ではコマ毎パレット指定したとき、 ON INTERVAL=1 GOSUBとなるような間隔(1/60秒)の指定は、(CPUの速度不足で)正しい速度で再生されません。

元画像
画像読み込み(Load an image)

ここが貼り付け、およびドロップエリアです。「ファイルを選択」の代わりに、このエリアに対してブラウザの貼り付け機能を使用、またはファイルをドロップすることによって画像を読み込ませることができます。 This is the paste and drop area. Instead of using the "Select File", you can paste or drop an image (file) here to load it.

変換画像
動画読み込み(Load a video) 減色設定(Color setting)
減色設定(Color setting)
((Times))
R 0
G 0
B 0
減色方法(Color reduction method)
変換色(Colors)
明るい緑 暗い青 明るい青 暗い赤 水色 明るい赤 黄色 明るい黄色 暗い緑 灰色
マゼンタ シアン 暗青 暗赤 暗マゼンタ 暗緑 暗シアン 暗黄 明灰
深緑 明るい青 暗い緑 水色 シアン マゼンタ 明るいマゼンタ ピンク
色比較方法(Color compare)
1
R 0
G 0
B 0
パレットファイル(Palette File)

SCREEN3 Animation Converter x2 for MSX2

Version 1.15.1.37

Powered by Myna

動画再生方法(How to play)

各種エミュレーター(動作条件:MSX2以降、VRAM 128KB搭載)でダウンロードしたディスクイメージファイルを読み込ませてください。 自動実行になっていますのでそのまま動画が再生されます。 動画はループ再生され、何かキーを押すと終了し、BASICプログラムが終了します。

今回はWebMSXエミュレーターを使用した動画再生手順を説明します。

  1. WebMSXを開きます。
  2. 歯車アイコンをクリックしてSelect Machineを選択し、機種一覧からMSX2以降を選択します。
  3. フロッピーアイコン(Drive A)をクリックしてLoad Disk Imagesを選択します。
  4. ファイル選択ダイアログからダウンロードしたディスクイメージファイルを選択します。
  5. 電源アイコンをクリックしてResetを選択します。
  6. 自動的に動画再生が始まります。

ディスクイメージファイル内のファイルにアクセスしたい場合は、 FAT16 Floppy Disks Maintenanceを使用するのが便利です。

皆さんの変換結果を見てみたい(Show me your converted animations)

変換結果を是非つぶやいてみてください。 その際にはハッシュタグ#16色グラフィック #MSX2動画を付けてくださると、ポストが探し易く(特に私が)なります。

The post hashtag is #16色グラフィック, #MSX2動画 or both.

資料(Data)

ファイルフォーマット(File format)

動画再生用パレット(.A3P)ファイル

再配置可能にするためRAM 0000Hから配置されるBSAVE形式のファイルになっています。 オフセットを指定して読み込むことで任意のアドレスに配置することができます。

ファイル構造 7E7H Bytes
0000H BSAVEヘッダ
BSAVE Header
7H Bytes = 1 + 2 + 2 + 2
FEH
0000H
07E0H
0000H
0007H 1コマ目パレットテーブル
1st Frame Palette Table
20H Bytes = 2 × 16 = 32
0027H 2コマ目パレットテーブル
2nd Frame Palette Table
20H Bytes = 2 × 16 = 32
:
:
:
:
:
:
07A7H 62コマ目パレットテーブル
62nd Frame Palette Table
20H Bytes = 2 × 16 = 32
07C7H 63コマ目パレットテーブル
63rd Frame Palette Table
20H Bytes = 2 × 16 = 32

動画再生用前半フレーム(.A3A)ファイル

VRAM 0000Hから配置されるBSAVE形式のファイルになっています。

ファイル構造 FFF7H Bytes
0000H BSAVEヘッダ
BSAVE Header
7H Bytes = 1 + 2 + 2 + 2
FEH
0000H
FFF0H
0000H
0007H パターンネームテーブル
Pattern Name Table
360H Bytes = 32 × (24 + 3) = 864
空き
Fill 00H
0807H 1コマ目
1st frame
パターンジェネレータテーブル
Pattern Generator Table
6A0H Bytes = 64 × 53 ÷ 2 = 1696
空き
Fill 00H
1007H 2コマ目
2nd frame
:
:
:
:
:
:
F007H 30コマ目
30th frame
F807H 31コマ目
31st frame
7F0H Bytes
※ BLOAD不具合回避のため
To avoid BLOAD Bug

動画再生用後半フレーム(.A3B)ファイル

VRAM 10000Hから配置されるBSAVE形式のファイルになっています。

ファイル構造 FFF7H Bytes
0000H BSAVEヘッダ
BSAVE Header
7H Bytes = 1 + 2 + 2 + 2
FEH
0000H
FFF0H
0000H
0007H 32コマ目
32nd frame
パターンジェネレータテーブル
Pattern Generator Table
6A0H Bytes = 64 × 53 ÷ 2 = 1696
空き
Fill 00H
0807H 33コマ目
33rd frame
:
:
:
:
:
:
F007H 62コマ目
62nd frame
F807H 63コマ目
63rd frame
7F0H Bytes
※ BLOAD不具合回避のため
To avoid BLOAD Bug

動画再生プログラム

動画再生用ファイルを用いた動画再生プログラム

更新履歴(History)

バージョン 更新日付 内容
1.15.1.37 2025/11/14
  • 内部処理を共通処理に変更
1.15.0.36 2025/06/30
  • 減色方法に誤差拡散 Atkinsonを追加
  • 減色方法にディザパターン 横縞を追加
  • 減色方法にディザパターン 縦縞を追加
  • 画像の読み込みをファイルのドロップに対応
  • 内部処理変更
  • レイアウト調整
1.14.3.35 2025/04/02
  • レイアウト調整
1.14.2.34 2025/02/13
  • 内部処理変更
  • レイアウト調整
1.14.1.33 2025/01/16
  • ディスクイメージの内部処理変更
1.14.0.32 2024/11/26
  • 開始位置に現在の再生位置取得ボタンを追加
  • レイアウト調整
1.13.1.31 2024/10/23
  • Twitter(現X)カードに画像を追加
1.13.0.30 2024/10/21
  • 減色設定の輪郭色を選択から設定可能に変更
  • 変換色にカスタムパレットカラーを追加
  • 内部処理変更
1.12.0.29 2024/06/14


10 CLEAR &H840,&HD000
20 DEFINT A-Y
30 DIM PA(63-1)
40 'GOSUB 2000:REM PALETTE ADDRESS
49 REM PALETTE ROUTINE
50 GOSUB 3000:DEF USR=&HD000
60 SCREEN 5
70 COLOR 15,0,0
80 CLS
90 BLOAD "SC3ANI.A3P",&HD040
100 SET PAGE 0,0:BLOAD "SC3ANI.A3A",S
110 SET PAGE 2,2:BLOAD "SC3ANI.A3B",S
120 SET PAGE 0,0
130 A=USR(&HD040):REM SET PALETTE
139 REM SCREEN3
140 VDP(0)=VDP(0) AND &HF1
150 VDP(1)=VDP(1) AND &HE7:VDP(1)=VDP(1) OR &H8
160 VDP(4)=0:VDP(2)=0
169 REM NO USE TRANSPARENT COLOR & SPRITE OFF
170 VDP(9)=VDP(9) OR &H22
179 REM MAIN
180 F=0
190 ON INTERVAL=60 GOSUB 1000
200 INTERVAL ON
210 IF INKEY$="" THEN 210
220 INTERVAL OFF
230 END
999 REM CHANGE PGT ADDRESS & PALETTE
1000 'INTERVAL OFF:REM NO NEED THIS LINE FOR turboR
1010 VDP(4)=F+1
1020 'A=USR(PA(F))
1030 F=(F+1) MOD 63
1040 'INTERVAL ON:REM NO NEED THIS LINE FOR turboR
1050 RETURN
1999 REM PALETTE ADDRESS
2000 FOR I=0 TO 63-1
2010 ZP=&HD040+&H20*I
2020 IF ZP>&H7FFF THEN ZP=ZP-65536
2030 PA(I)=ZP
2040 NEXT I
2050 RETURN
2999 REM PALETTE ROUTINE
3000 RESTORE 3100
3010 FOR I=&HD000 TO &HD021
3020 READ C$
3030 POKE I,VAL("&H"+C$)
3040 NEXT I
3050 RETURN
3100 DATA F3,2A,F8,F7,16,90,06,10
3110 DATA 3A,07,00,4F,0C,3E,10,90
3120 DATA ED,79,ED,51,0C,5E,23,7E
3130 DATA ED,59,ED,79,23,0D,10,ED
3140 DATA FB,C9