カテゴリ 重要度 ステータス 解決状況 登録日時 最終更新
解決済み修正済み2018-09-05 07:572020-08-19 19:34
 
テスターnippur72担当者Robbbertソースvtech2.cpp
バージョン0.201発生バージョン修正バージョン0.224
フラグ
セット laser500
セット詳細
laser500 - Laser 500
 
概 要カセットのWAVファイルを実機でロード・セーブできない。
詳 細WAV files produced by the tape emulator are about 15% faster than they should be, and thus cannot be loaded onto a real machine.

At the same time a file from a real machine won't load in the emulator unless it's slowed down by 15% via some external audio tool.
再現手順0) unzip the attached file "bug07094.zip"
1) open laser500 emulator
2) at READY prompt type CRUN and press RETURN
3) "WAITING" in reverse is displayed one row below
4) open UI Panel -> File Manager -> cassette (cass) (might need pressing Scroll Lock to enable UI panel)
5) choose the file "from_real_hardware.wav" from unzipped folder
6) at this point you should be hearing the waveform playing but nothing happens, the program is not loaded
7) open UI Panel -> File Manager -> cassette (cass)
8) choose the file "from_real_hardware_speeded_15_percent.wav" or "from_emulator", and see how both load

This proves the emulator can load its own files or files from real hardware that are speeded up by ~ 15%
追加情報The attached file "bug07094.zip" contains:

from_emulator.wav: waveform generated in MESS
from_real_hardware: waveform generated on a real Laser 500 and sampled on a PC
from_real_hardware_speeded_15_percent: the real hardware waveform increased in speed by 15% with the audio tool "Audacity".

There is also the image "compared.png" which shows MESS vs REAL waveform side by side, where it can be seen that MESS is visibly shorter / faster.

One more info: I checked the file "src/lib/formats/vt_cas.cpp" and the numbers seem correct. According to the reference manual, the shortest HI or LO duration should be 277 microseconds, which indeed correspond to 3 samples at 10800 Hz in the source code.

I should mention also that vt1 (Laser110 family) and vt2 (Laser500 family) share the same numbers, and they could be reunited into one single common code in vt_cass.cpp. In VT1, the numbers are: 1 sample at 3600 Hz which is 277 microseconds as in VT2. The bit encoding is also the same.
 
添付ファイルzip filebug07094.zip (2018-09-06 01:03)