diff --git a/README.md b/README.md
index 3c57dd7782062..d7784d1f6108a 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-MAmidiMEmo 3.7.5.0/ Itoken (c)2019, 2020, 2021 / GPL-2.0
+MAmidiMEmo 3.8.0.0/ Itoken (c)2019, 2020, 2021 / GPL-2.0
*** What is the MAmidiMEmo? ***
@@ -269,6 +269,7 @@ e.g.) YM2151 has 8ch FM sounds, so you can play 8 chords on MIDI 1ch or sharing
*** Changes ***
3.8.0.0 Added Velocity Mapping feature.
+ Supported VSIF for MSX. You can drive PSG, OPLL, SCC, OPL3 sound chip on the real MSX.
3.7.5.0 Supported Scale Tuning. You can set it on ScaleTuning property to the MIDI(Dedicated) category.
Supported Channel After Touch MIDI event. You can set the effect on the SCCS property on a Timbre property.
3.7.4.0 Fixed Master Clock prop crashing when resetting the value to default.
diff --git a/docs/MAmidiMEmo/Manual.pdf b/docs/MAmidiMEmo/Manual.pdf
index 6b7ba2a7c4211..4a7b681765ca0 100644
Binary files a/docs/MAmidiMEmo/Manual.pdf and b/docs/MAmidiMEmo/Manual.pdf differ
diff --git a/docs/MAmidiMEmo/Manual.pptx b/docs/MAmidiMEmo/Manual.pptx
index 467d7f1603961..5d8e15396042c 100644
Binary files a/docs/MAmidiMEmo/Manual.pptx and b/docs/MAmidiMEmo/Manual.pptx differ
diff --git a/src/VSIF/VGMPlay_MSX/VGMPlay_msx.bin b/src/VSIF/VGMPlay_MSX/VGMPlay_msx.bin
index cedec1204e018..72ee5291cbce7 100644
Binary files a/src/VSIF/VGMPlay_MSX/VGMPlay_msx.bin and b/src/VSIF/VGMPlay_MSX/VGMPlay_msx.bin differ
diff --git a/src/VSIF/VGMPlay_MSX/VGMPlay_msx.rom b/src/VSIF/VGMPlay_MSX/VGMPlay_msx.rom
index 0624fd3dd1ed8..0e36a8e5ecf16 100644
Binary files a/src/VSIF/VGMPlay_MSX/VGMPlay_msx.rom and b/src/VSIF/VGMPlay_MSX/VGMPlay_msx.rom differ
diff --git a/src/VSIF/VGMPlay_MSX/uart-4800.asm b/src/VSIF/VGMPlay_MSX/uart-4800.asm
index e64b592f76e3d..497f08806b4c7 100644
--- a/src/VSIF/VGMPlay_MSX/uart-4800.asm
+++ b/src/VSIF/VGMPlay_MSX/uart-4800.asm
@@ -51,7 +51,7 @@ CHPUT = #0xA2
AND #0xf ; 7 47
OR E ; 4 51
- ;WRITE BOTH BYTE AND NEXT BYTE
+ ;WRITE BOTH 1st BYTE AND 2nd BYTE
LD (HL), D ; 7 58
INC L ; 4 62
LD (HL), A ; 7 69
@@ -197,7 +197,6 @@ __WRITE_OPLL_ENA:
LD A,D ; SLOT #
LD HL,#0x7FF6 ; Address for EXT OPLL ENA FLAG
CALL WRSLT
-
INIT_CONST
JP __VGM_LOOP
@@ -220,7 +219,7 @@ __WRITE_SCC_SLOT:
CP #0x03
JP Z,__ENA_SCC
- JP __WRITE_SCC_SLOT_END
+ JP __VGM_LOOP
__ENA_SCC1:
LD HL,#0xBFFE
@@ -230,25 +229,17 @@ __ENA_SCC1:
LD HL,#0xB000
LD A,#0x80
LD (HL),A
- JP __WRITE_SCC_SLOT_END
+ INIT_CONST
+ JP __VGM_LOOP
__ENA_SCC1_COMPAT:
LD HL,#0xBFFE
LD A,#0x00
LD (HL),A
-
- LD HL,#0x9000
- LD A,#0x3F
- LD (HL),A
- JP __WRITE_SCC_SLOT_END
-
__ENA_SCC:
LD HL,#0x9000
LD A,#0x3F
LD (HL),A
- JP __WRITE_SCC_SLOT_END
-
-__WRITE_SCC_SLOT_END:
INIT_CONST
JP __VGM_LOOP
diff --git a/src/mamidimemo/Program.cs b/src/mamidimemo/Program.cs
index 6d0b8ea47f737..88d865332d968 100644
--- a/src/mamidimemo/Program.cs
+++ b/src/mamidimemo/Program.cs
@@ -34,7 +34,7 @@ public static class Program
///
///
///
- public const string FILE_VERSION = "3.7.5.0";
+ public const string FILE_VERSION = "3.8.0.0";
public const string FILE_COPYRIGHT = @"Virtual chiptune sound MIDI module ""MAmidiMEmo"" Version {0}
Copyright(C) 2019, 2021 Itoken.All rights reserved.";
diff --git a/src/mamidimemo/instruments/Chips/YM2413.cs b/src/mamidimemo/instruments/Chips/YM2413.cs
index 3944cff36bce1..f30523b48baee 100644
--- a/src/mamidimemo/instruments/Chips/YM2413.cs
+++ b/src/mamidimemo/instruments/Chips/YM2413.cs
@@ -251,7 +251,7 @@ private void enableOpll(OPLLSlotNo slot)
/// Rhythm mode
///
[DataMember]
- [Category("Chip")]
+ [Category("Chip(Global)")]
[Description("Rhythm mode (0:Off(9ch) 1:On(6ch))\r\n" +
"Set DrumSet to ToneType in Timbre to output drum sound")]
[SlideParametersAttribute(0, 1)]
@@ -295,7 +295,7 @@ private void updateRhyRegisters()
/// FrequencyCalculationMode
///
[DataMember]
- [Category("Chip")]
+ [Category("Chip(Global)")]
[Description("Select Frequency Accuracy Mode (False:3.6MHz mode(Not accurate) True:3.579545MHz mode(Accurate)")]
[DefaultValue(false)]
public bool FrequencyAccuracyMode
diff --git a/src/mamidimemo/instruments/Chips/YM2612.cs b/src/mamidimemo/instruments/Chips/YM2612.cs
index dddbc5c0ddc1d..b57af446235c3 100644
--- a/src/mamidimemo/instruments/Chips/YM2612.cs
+++ b/src/mamidimemo/instruments/Chips/YM2612.cs
@@ -226,7 +226,7 @@ public enum MasterClockType : uint
///
///
[DataMember]
- [Category("Chip")]
+ [Category("Chip(Global)")]
[Description("Set Master Clock of this chip.")]
[TypeConverter(typeof(EnumConverter))]
public uint MasterClock
@@ -262,7 +262,7 @@ public void ResetMasterClock()
/// LFRQ (0-255)
///
[DataMember]
- [Category("Chip")]
+ [Category("Chip(Global)")]
[Description("LFO Enable (0:Off 1:Enable)")]
[SlideParametersAttribute(0, 1)]
[EditorAttribute(typeof(SlideEditor), typeof(System.Drawing.Design.UITypeEditor))]
@@ -290,7 +290,7 @@ public byte LFOEN
/// LFRQ (0-7)
///
[DataMember]
- [Category("Chip")]
+ [Category("Chip(Global)")]
[Description("LFO Freq (0-7)\r\n" +
"0: 3.82 Hz\r\n" +
"1: 5.33 Hz\r\n" +
diff --git a/src/mamidimemo/instruments/Chips/YM3812.cs b/src/mamidimemo/instruments/Chips/YM3812.cs
index b760f51daac27..52b15a9bb7918 100644
--- a/src/mamidimemo/instruments/Chips/YM3812.cs
+++ b/src/mamidimemo/instruments/Chips/YM3812.cs
@@ -72,7 +72,7 @@ public override uint DeviceID
/// AM Depth (0-1)
///
[DataMember]
- [Category("Chip")]
+ [Category("Chip(Global)")]
[Description("AM depth (0:1dB 1:4.8dB)")]
[SlideParametersAttribute(0, 1)]
[EditorAttribute(typeof(SlideEditor), typeof(System.Drawing.Design.UITypeEditor))]
@@ -100,7 +100,7 @@ public byte AMD
/// Vibrato depth (0:7 cent 1:14 cent)
///
[DataMember]
- [Category("Chip")]
+ [Category("Chip(Global)")]
[Description("Vibrato depth (0:7 cent 1:14 cent)")]
[SlideParametersAttribute(0, 1)]
[EditorAttribute(typeof(SlideEditor), typeof(System.Drawing.Design.UITypeEditor))]
diff --git a/src/mamidimemo/instruments/Chips/YMF262.cs b/src/mamidimemo/instruments/Chips/YMF262.cs
index ef6760b22e611..28ffa1dcaea16 100644
--- a/src/mamidimemo/instruments/Chips/YMF262.cs
+++ b/src/mamidimemo/instruments/Chips/YMF262.cs
@@ -209,7 +209,7 @@ public int FtdiClkWidth
///
///
[DataMember]
- [Category("Chip")]
+ [Category("Chip(Global)")]
[Description("Max number of 4 op mode sound")]
[SlideParametersAttribute(0, 6)]
[EditorAttribute(typeof(SlideEditor), typeof(System.Drawing.Design.UITypeEditor))]
@@ -239,7 +239,7 @@ public byte CONSEL
/// AM Depth (0-1)
///
[DataMember]
- [Category("Chip")]
+ [Category("Chip(Global)")]
[Description("AM depth (0:1dB 1:4.8dB)")]
[SlideParametersAttribute(0, 1)]
[EditorAttribute(typeof(SlideEditor), typeof(System.Drawing.Design.UITypeEditor))]
@@ -267,7 +267,7 @@ public byte AMD
/// Vibrato depth (0:7 cent 1:14 cent)
///
[DataMember]
- [Category("Chip")]
+ [Category("Chip(Global)")]
[Description("Vibrato depth (0:7 cent 1:14 cent)")]
[SlideParametersAttribute(0, 1)]
[EditorAttribute(typeof(SlideEditor), typeof(System.Drawing.Design.UITypeEditor))]
@@ -443,6 +443,7 @@ private void YMF262WriteData(uint unitNumber, uint address, int op, int slot, by
case SoundEngineType.VSIF_MSX_FTDI:
switch (adrH)
{
+ //https://w.atwiki.jp/msx-sdcc/pages/65.html
case 0:
vsifClient.WriteData(10, adr, data, f_ftdiClkWidth);
break;