diff --git a/CHANGE.txt b/CHANGE.txt index 9349abf..8f37f10 100644 --- a/CHANGE.txt +++ b/CHANGE.txt @@ -1,4 +1,8 @@ 更新履歴 +TAG062 2023/06/24 + Compiler:transposeの負数対応。(mc.asmの暫定対応に合わせたもの) + Compiler:psgprgの処理をオリジナルに合わせた。(出力されるデータに差異無し) + TAG061 2023/06/24 Console:コンパイルエラーが発生した場合はリターンコード1で終了するように修正 diff --git a/PMDDotNETCompiler/mc.cs b/PMDDotNETCompiler/mc.cs index 7a0c480..4d71b37 100644 --- a/PMDDotNETCompiler/mc.cs +++ b/PMDDotNETCompiler/mc.cs @@ -41,14 +41,14 @@ public class mc //;============================================================================== //; //; MML Compiler/Effect Compiler FOR PC-9801/88VA - //; ver 4.8r + //; ver 4.8s //; //;============================================================================== // .186 public static string ver = "4.8s";// version public static int vers = 0x48; - public static string date = "2020/01/22";// date + public static string date = "2023/09/23";// date #if !hyouka public int hyouka = 0;//1縺ァ隧穂セ。迚(save讖溯スcut) @@ -2638,14 +2638,17 @@ private void memo_set() //;============================================================================== private void transpose_set() { - int bx = 0; - byte al = 0; - if (lngset(out bx, out al)) - { - error('#', 7, work.si); - } + _ = getnum(out _, out byte dl);//230923 FIXED + mml_seg.transpose = dl;// + + //int bx = 0; + //byte al = 0; + //if (lngset(out bx, out al)) + //{ + // error('#', 7, work.si); + //} - mml_seg.transpose = al; + //mml_seg.transpose = al; } @@ -7711,19 +7714,21 @@ private enmPass2JumpTable neirochg() return enmPass2JumpTable.olc03; psgprg:; + work.bx = (byte)work.bx; + if (work.bx >= mml_seg.psgenvdat_max + 1) work.bx = 0; //work.bx *= 4; //work.bx = (byte)work.bx; work.bx += 0;//offset psgenvdat cmd = new MmlDatum((byte)0xf0, enmMMLType.Instrument, MakeLinePos(), new object[] { }); m_seg.m_buf.Set(work.di++, cmd); cx = 4; - if (work.bx > 9) - { - musicDriverInterface.Log.WriteLine(LogLevel.WARNING, - string.Format(msg.get("W0100"), work.bx) - ); - work.bx = 0; - } + //if (work.bx > 9) + //{ + // musicDriverInterface.Log.WriteLine(LogLevel.WARNING, + // string.Format(msg.get("W0100"), work.bx) + // ); + // work.bx = 0; + //} //pplop0:; for (int i = 0; i < 4; i++) { diff --git a/PMDDotNETCompiler/mml_seg.cs b/PMDDotNETCompiler/mml_seg.cs index 45d4120..6b8b593 100644 --- a/PMDDotNETCompiler/mml_seg.cs +++ b/PMDDotNETCompiler/mml_seg.cs @@ -186,8 +186,8 @@ public class mml_seg ,new byte[]{ 1,2,0,1 }// @8 Brass 1 ,new byte[]{ 1,2,24,1 }// @9 Brass 2 }; - - public int max_part = 11; + public int psgenvdat_max = 9; + public int max_part = 11; public int fm = 0; public int fm2 = 1; public int psg = 2; diff --git a/PMDDotNETConsole/Properties/launchSettings.json b/PMDDotNETConsole/Properties/launchSettings.json index 17fc356..dd9fbe2 100644 --- a/PMDDotNETConsole/Properties/launchSettings.json +++ b/PMDDotNETConsole/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "PMDDotNETConsole": { "commandName": "Project", - "commandLineArgs": "-LOGLEVEL=INFO /V /c C:\\Users\\kuma\\Downloads\\pmdtest.mml" + "commandLineArgs": "-LOGLEVEL=INFO /V /c D:\\bootcamp\\FM髻ウ貅申\data\\閾ェ菴彌\test\\testPMDTranspose.mml" } } } \ No newline at end of file diff --git a/PMDDotNETPlayer/lib/MDSound.dll b/PMDDotNETPlayer/lib/MDSound.dll index 08f2cff..0664364 100644 Binary files a/PMDDotNETPlayer/lib/MDSound.dll and b/PMDDotNETPlayer/lib/MDSound.dll differ diff --git a/lib/musicDriverInterface.dll b/lib/musicDriverInterface.dll index 5b96ef5..7429c3c 100644 Binary files a/lib/musicDriverInterface.dll and b/lib/musicDriverInterface.dll differ