OCM-PLD Pack v3.2 by KdL released

OCM-PLD Pack v3.2 by KdL released

by KdL on 21-12-2013, 17:23
Topic: MSX Revival
Languages:

1chipMSX hacker KdL has been updating the OCM's software quite a bit in the past few years. And now, after 2 years of development, he gives us as an early christmas gift and just released version 3.2 of the firmware. The updated firmware can be used for the the original 1chipMSX and the Korean Zemmix Neo. The OCM-EXTRA Pack and the OCM-SDBIOS Pack also have been updated to the latest and greatest version.

Here's an overview of the changes:

  • Updated Switched I/O ports ($40-$4F) module to Revision 004.
  • Updated documentation and DIP-SW User Manual in the [docs\] folder.
  • Updated the [msxtools\] folder.
  • New Hex-files 320kB from OCM-SDBIOS Pack v1.4 with MSX3 and Zemmix Neo logos.
  • New IPL-ROM Revision 1.01(K) that loads fast the 320kB BIOS.
  • New LFSR counter for RTC module and speed limiter for logo animation.
  • New external clock rule, the toggles are limited to 5.37MHz for async mode.
  • New ID "Machine Type" (0-15) for OCM, Zemmix Neo, Altera DE0/DE1, etc.
  • New rules for LEDs and VGA luminance by machine type.
  • Added port F4 support, also for Warm Reset function.
  • Added PAL 50Hz support for VGA modes, by caro.
  • Added RWIN and LWIN as alternatives to the space-bar, useful for the players.
  • Added CPI(R)CPD(R) undocumented flags at T80 Core, by TobiFlex.
  • Fixed the black screen event with MegaSD Off, by caro.
  • Fixed various bug on H-Sync and V-Sync of VDP TH9958.
  • Increased VRAM to 1024kB, a full control of 16 pages by 64kB is permitted.
  • Increased the boot speed with CPU clock at 3.58MHz.
  • Improved the hard reset rules and increased the stability of system.
  • Restored SHIFT+UP/DOWN toggles to the original master volume.
  • Replaced Pause key with Lights On/Off control to prevent any data corruption.
  • Enabled the AUTO_RESOURCE_SHARING of Quartus II to get more LEs.
  • Many PLDs in this package, choose your preferred from the [firmware\] folder.

Instructions on how to flash your 1chipMSX or Zemmix Neo can be found in the howto.txt in the download, along with recovery instructions in case something goes wrong and a short list of interesting notes and known issues.

Happy 1chipMSXing!

Relevant link: OCM-PLD Pack v3.2 by KdL

Comments (89)

By KdL

Paragon (1212)

KdL's picture

21-12-2013, 22:29

An hacker? What is it an hacker? I'm sure that I'm not.
I love if you call me 'Wingman' of master Masakazu!
I do not do damage and I do not steal anything.
I write MSX like a real developper (for fun if you like)
and this is a new improved firmware for OCM.

Am I the last dreamer in the MSX World??? Someone else?
Running Naked in a Field of Flowers Running Naked in a Field of Flowers Running Naked in a Field of Flowers

By WORP3

Paladin (804)

WORP3's picture

21-12-2013, 22:36

Nope, off-coarse you're not the last dreamer in the MSX world Wink
Great going you FPGA designer, you did it again. Will definitively update my OCM with the new version when i'm using it the next time !

By Jorito

Mr. Ambassadors (1761)

Jorito's picture

21-12-2013, 22:57

You definately are a hacker Smile

wikipedia wrote:

In home and hobby circles, a hacker is a person who enjoys exploring the limits of what is possible, in a spirit of playful cleverness. They may also heavily modify software or hardware of their own computer system. It includes building, rebuilding, modifying, and creating software (software cracking, demo scene), electronic hardware (hardware hacking, modding), or anything else, either to make it better or faster or to give it added features or to make it do something it was never intended to do.

Just look at http://en.wikipedia.org/wiki/Hacker_(hobbyist) if you don't believe me ;)

On another note, you're doing a great job with the OCM firmware, installed the pre release last week and it had some very nice improvements over the last release! Keep it up, /me likes++.

By KdL

Paragon (1212)

KdL's picture

22-12-2013, 00:14

..uoops! no no no, only the sexy women may call me ''hacker''.
Wikipidia have not a complete and updated idea of the hacker term. I'm NOT a hacker definately! Tongue

With the next OCM-PLD v3.3 will come a better VDP and a bit improved VGA upscaler.

By Jorito

Mr. Ambassadors (1761)

Jorito's picture

22-12-2013, 00:31

...and a better term than 'hacker' to describe its creator Smile

By AxelStone

Prophet (2662)

AxelStone's picture

22-12-2013, 11:32

Thanks to you mi OCM is a great machine. The factory configuration for OCM is simply a mess. Wink

By MsxKun

Paladin (901)

MsxKun's picture

22-12-2013, 14:32

KdL wrote:

With the next OCM-PLD v3.3 will come a better VDP and a bit improved VGA upscaler.

What about youknowwhat? Should I test or will it be the same? Smile No hurries tho.

By KdL

Paragon (1212)

KdL's picture

22-12-2013, 17:10

MsxKun wrote:
KdL wrote:

With the next OCM-PLD v3.3 will come a better VDP and a bit improved VGA upscaler.

What about youknowwhat? Should I test or will it be the same? Smile No hurries tho.

a parallel beta version has showed me a perfect resolution by 640x480 @60Hz on wide lcd screen
with a perfect pixel ratio with NTSC mode (not with PAL mode for the moment)

By WORP3

Paladin (804)

WORP3's picture

22-12-2013, 21:28

New version seems to be working just great, thanks KdL !

By spl

Paragon (1461)

spl's picture

24-12-2013, 15:27

Thanks very much ^_^. I'll test it soon in my Zemmix Neo Smile

By Grauw

Enlighted (8191)

Grauw's picture

05-01-2014, 18:10

Thanks KdL! Much appreciated! Can’t wait for that v3.3 Smile.

By Grauw

Enlighted (8191)

Grauw's picture

05-01-2014, 20:09

Hi KdL, I just installed it on my OCM (my first ever update Smile) and it works well!

I have one bug report though, the ESE-SCC doesn’t reset the phase of the wave that is played when the frequency is changed, which the original SCC does do. This was already the case with the original OCM firmware.

You can test this by playing a note on channel 1 (e.g. C3 saw wave), and then binding a key to play the same note on channel 2 while it’s pressed (set the frequency each time). On a real SCC or SCC-I, if you press the key, it sounds a little different every time because the phases of the two notes aren’t aligned. If you only set the frequency once and just toggle the volume, you’ll notice it always sounds the same.

I guess it can be argued which behaviour is better musically, personally I think it would’ve been better if the phase reset was tied to the volume going from 0 to nonzero. But if correct emulation of the SCC is the goal, it should reset the phase when the frequency LSB or MSB is written.

By Grauw

Enlighted (8191)

Grauw's picture

05-01-2014, 20:35

Here’s a test case, it expects the SCC to be in slot 1:

http://www.grauw.nl/etc/msx/sccphase.asm
http://www.grauw.nl/etc/msx/sccphase.rom

Actually, now that I listen to it more closely, it sounds like it doesn’t actually reset the phase, but rather shifts it by 0 or 1 sample every time.

Edit: A-ha, the answer is here:

NYYRIKKI wrote:

One important thing to know is that change of volume is not implemented
immediately in SCC. Normally it is changed when next byte from sample memory
is played, but writing value to frequency causes current byte to be started
again.

Reading openMSX source code is always educational :).

By KdL

Paragon (1212)

KdL's picture

06-01-2014, 01:19

Added at todo list! I will check it as soon as possible. Many thanks!!! Big smile

By Grauw

Enlighted (8191)

Grauw's picture

06-01-2014, 01:21

Smile

When I compared openMSX with my real SCC and SCC-I, the effect sounded pretty much identical (a shift in phase about every odd time I pressed a key). They do this: http://openmsx.sourceforge.net/doxygen/SCC_8cc_source.html#l...

By max_iwamoto

Champion (456)

max_iwamoto's picture

06-01-2014, 04:44

Looks like an epic update! Is it possible to flash my original OCM with it?

By KdL

Paragon (1212)

KdL's picture

06-01-2014, 06:37

Yes you can! Previously all the 1chipMSX were originals. Wink

By Grauw

Enlighted (8191)

Grauw's picture

06-01-2014, 12:22

That Zemmix Neo looks sexy! I want one Smile.

By KdL

Paragon (1212)

KdL's picture

08-01-2014, 18:40

pantsu... pantsuuu! Hannibal

By msd

Paragon (1372)

msd's picture

26-01-2014, 10:09

Another great update.. one tip, could you not use 7z as format.. nobody uses that .

By msd

Paragon (1372)

msd's picture

26-01-2014, 10:20

Why is 2MB advised as default?

By KdL

Paragon (1212)

KdL's picture

29-05-2014, 17:27

Hi msd. The 2MB RAM is more compatible than 4MB on games.
The 7z is the best free zipper. I suggest HaoZip_v4.0.1.9380 ru-board edition for Windows, not all!

By KdL

Paragon (1212)

KdL's picture

29-05-2014, 17:37

2014.05.29 OCM-PLD v3.2.1 is out! --> OPLL+OPL4 I/O fix for 1chipMSX

Thanks to ''Retro fan'' for asking the correction with tenacity! ;-)

By mars2000you

Enlighted (5479)

mars2000you's picture

29-05-2014, 18:41

KdL wrote:

Hi msd. The 2MB RAM is more compatible than 4MB on games.
The 7z is the best free zipper. I suggest HaoZip_v4.0.1.9380 ru-board edition for Windows, not all!

You should try Bandizip : http://www.bandisoft.com/bandizip/en/

Even PMA files can be unzipped !

By Grauw

Enlighted (8191)

Grauw's picture

29-05-2014, 19:57

@KdL Cool! By the way, do you consider to keep your source files on Bitbucket or Github? It’d be interesting to be able to keep an eye on the changes, and maybe learn something about VHDL Smile.

On OS X I use Keka to extract 7Z, RAR and LZH files.

By msd

Paragon (1372)

msd's picture

30-05-2014, 17:35

@KDL: Did you ever try the opl4 and v9990 at the same time in the ocm. It can't read the registers of the v9990 if both attached. Opl4 and v9990 severalty connected works fine. (I didn't try with your latest update yet), however both in a slotexander connected to the ocm does work.

By KdL

Paragon (1212)

KdL's picture

01-06-2014, 00:22

little to time we'll get! Big smile

By KdL

Paragon (1212)

KdL's picture

05-06-2014, 11:03

2014.06.05 OCM-PLD v3.2.1 for 1chipMSX and Zemmix Neo is out!

By Retrofan

Paragon (1214)

Retrofan's picture

05-06-2014, 12:13

@KdL: what's the difference with firmware 3.2.1 from 2014.05.29?

By KdL

Paragon (1212)

KdL's picture

05-06-2014, 12:51

none diff... added a precompiled Zemmix Neo firmware! Smile

By luppie

Paladin (854)

luppie's picture

05-06-2014, 13:10

What keyboard layout is compiled in it ?

By Meits

Scribe (5439)

Meits's picture

05-06-2014, 13:23

I went back to 3.2... My keyboard layout became a bit weird...

By KdL

Paragon (1212)

KdL's picture

05-06-2014, 15:12

uk layout ... the full packages will be in future with v3.3

By KdL

Paragon (1212)

KdL's picture

01-07-2014, 13:08

@mars2000you: thank you for suggestion on Bandizip, it's not bad! Big smile

By msd

Paragon (1372)

msd's picture

23-07-2014, 20:21

@KDL: I'm currently investigating a problem with interrupts from the opl4, using mbwave you can get interrupts upto 100hz, however the interrupts don't seem to go any faster than about 50Hz. I didn't try the latest update yet but I think this will have no effect.

By msd

Paragon (1372)

msd's picture

23-07-2014, 22:46

@KDL, the latest fix also doesn't help. There is something strange with interrupts from cartridges.

By Grauw

Enlighted (8191)

Grauw's picture

23-07-2014, 23:17

Hmm, I just tried Synthesix with the (interrupt-based) Music Module MIDI in my Zemmix Neo and it crashes when I press a key… indeed as if the interrupt isn’t being handled. Works fine in my CX5MII, as well as without MIDI. I had this set-up running (in an OCM) at the Nijmegen fair earlier this year but I don’t think I was on the KdL firmware yet back then. So, I haven’t investigated thoroughly, but consider this circumstantial evidence supporting msd’s findings Smile.

By msd

Paragon (1372)

msd's picture

24-07-2014, 08:12

I think I now understand what is happening. In mbwave the vdp interrupt is also so running. So atleast 60 times per second it is checked if the intterupt came from the opl4 or the vdp. In many interrupts from the vdp the opl4 will have it's status set that the interrupt is active. The music never goes faster when I increase the opl4 interrupt speed because it is not checked faster. When I go slower than 60Hz it does go a little slower because the opl4 will not have set the interrupt active status bit. So my conclusion is that the interrupt line from cartridge slots is not handled at all anymore. Probably broken in the update 3.2 of the ocm.

@Grauw: you also running the ocm with this version?

By Grauw

Enlighted (8191)

Grauw's picture

24-07-2014, 12:47

Version 3.2.1.

By KdL

Paragon (1212)

KdL's picture

24-07-2014, 13:09

Hi all.
Unfortunately the bug of interrupt is familiar to me from the previous version of TH9958 that broke the Music Module MIDI part.
I hope to have time to rewrite this module for the next months. Smile

For now you can try with MSX2 firmware of OCM-PLD PACK v3.2

By Grauw

Enlighted (8191)

Grauw's picture

24-07-2014, 13:47

Thanks KdL.

Now that I have your attention, there’s another problem I noticed with my Zemmix Neo: there’s a fairly loud hum on the external sound output plug. The internal sound output plug is noise-free, and when I plug into my Music Module there’s also no noise. Any idea what that is about?

By KdL

Paragon (1212)

KdL's picture

24-07-2014, 14:00

@Grauw:

1st test:
Try turning off the lights (press the PAUSE on keyboard) and reply if this is a interference of red LEDs.

2nd test:
Try the STEREO mode of SMART COMMANDS and reply me with the results (solved or not). Wink

By Grauw

Enlighted (8191)

Grauw's picture

24-07-2014, 14:41

1. Turning off lights: no effect.

2. Whether I set the smart command 03DH or 03EH, I hear a click but the situation doesn’t change, the white plug has a hum and the red plug doesn’t.

I noticed the hum timbre changes slightly depending on what’s shown on the screen. Also the pitch becomes lower when I switch to 50Hz, and higher when I switch to 60Hz. So it seems to be getting interference from the video output?

Thanks for your help.

[Edit: I mixed up red/white in the text above, updated it now; the white one is the one with the hum.]

By KdL

Paragon (1212)

KdL's picture

24-07-2014, 20:07

The white channel is mixed to external sound cartridges while the red is internal audio only:
there are cartridges connected to the ext slots ?

By msd

Paragon (1372)

msd's picture

24-07-2014, 20:43

the ints work correctly with the msx2 firmware

By KdL

Paragon (1212)

KdL's picture

24-07-2014, 21:20

yep I know Smile HRA had introduced this bug with his VDP TH9958 but the changes were too many in a short time and a diff comparison of V9938 was not possible for me in past

By msd

Paragon (1372)

msd's picture

24-07-2014, 21:19

so actually the msx2+ version is bugged

By KdL

Paragon (1212)

KdL's picture

24-07-2014, 21:25

yes on history.txt is reported the Music Module MIDI bug for MSX2+ firmware:

- MIDI-IN of Music Module do not work properly with VDP TH9958.

By KdL

Paragon (1212)

KdL's picture

24-07-2014, 21:30

in top of tread...

KdL wrote:
With the next OCM-PLD v3.3 will come a better VDP and a bit improved VGA upscaler.

By msd

Paragon (1372)

msd's picture

24-07-2014, 21:50

I'm looking forward to that update Wink

By Grauw

Enlighted (8191)

Grauw's picture

24-07-2014, 23:15

KdL wrote:

The white channel is mixed to external sound cartridges while the red is internal audio only:
there are cartridges connected to the ext slots ?

The hum occurs regardless of whether a cartridge is plugged in or not…

By KdL

Paragon (1212)

KdL's picture

25-07-2014, 14:17

have you tried with the original firmware of ocm or another one?

can you recording the hum from red line?

By Grauw

Enlighted (8191)

Grauw's picture

25-07-2014, 15:34

KdL wrote:

have you tried with the original firmware of ocm or another one?

can you recording the hum from red line?

I tried on the OCM as well (firmware 3.2, MSX2), the hum’s there as well, in fact it seems louder than the Zemmix Neo sound output. I flashed the original OCM firmware and it has the hum as well.

Here’s a recording on the OCM with firmware 3.2, MSX2 (volume of the recording is low so you may want to amp it up): hum.wav. At 4 seconds in it starts to display the MSX logo, tonal changes are in sync with what happens on the screen. At 11 seconds it boots into Multi Mente. I quit to Basic, and at 34 seconds I change to 50Hz, then back to 60Hz at 45 seconds.

By Grauw

Enlighted (8191)

Grauw's picture

25-07-2014, 15:52

Correction: the hum is on both lines. The preamplification for the left channel on my mixer was accidentally set lower.

When I play an external SCC on the white channel, I can also hear it softly on the red channel if I turn down the volume of the white one.

Maybe it’s just unavoidable interference from the hardware, and it’s not horrible (like the Zemmix Neo’s high pitched beep on its original firmware which you so nicely fixed ;p), and I’m pretty sure my old Philips NMS8245 also does some humming… But at default PSG volume in Basic (V8?) it is definitely audible when nothing’s playing… So it would be nice if something could be done about it.

By KdL

Paragon (1212)

KdL's picture

25-07-2014, 16:43

unfortunately this hum is normal: I thought that a solution could be to implement the S/PDIF digital output over a RCA line

By Grauw

Enlighted (8191)

Grauw's picture

25-07-2014, 17:05

Ok, thanks Smile. Would it be possible for the OCM to have a balanced output? That would fit better in my analog mixing set-up :).

By KdL

Paragon (1212)

KdL's picture

25-07-2014, 17:04

    pDac_SL   <=  "ZZZZZZ"      when( pseudoStereo = '1' and CmtScro = '0' )else
                  DACout & DACout & "ZZZZ";

    -- Cassette Magnetic Tape (CMT) interface
    process( clk21m )
    begin
      if( clk21m'event and clk21m = '1' )then
        if( CmtScro = '1' )then                 -- When Scroll Lock is ON
            pDac_SR(5 downto 4) <= "ZZ";
            pDac_SR(3 downto 1) <= CmtIn & (not CmtIn) & '0';
            pDac_SR(0)          <= CmtOut;
            CmtIn               <= pDac_SR(5);
        else                                    -- When Scroll Lock is OFF (default)
            pDac_SR             <= DACout & DACout & "ZZZZ";
            CmtIn               <= '0';         -- CMT data input : always '0' on MSX turboR
        end if;
      end if;
    end process;

Honestly I don't know to reply for the balance output
but you can modify the impedance on Signal Left or Right separately.

Example to have impedance at minimum:
pDac_SL <= DACout & DACout & DACout & DACout & DACout & DACout;
pDac_SR <= DACout & DACout & DACout & DACout & DACout & DACout;
The external audio input will be a low volume from cartridges.

By Grauw

Enlighted (8191)

Grauw's picture

25-07-2014, 18:20

The basic idea of balanced audio output is that there’s a third output line which contains the exact inverse of the audio line. The mixer / amplifier then uses this to cancel out the noise. Think it should be possible by outputting the balanced line on the second plug, and then make an adaptor cable from two RCA to one balanced three-pin XLR or TRS plug.

http://en.wikipedia.org/wiki/Balanced_audio

Quote:

A typical balanced cable contains two identical wires, which are twisted together and then wrapped with a third conductor (foil or braid) that acts as a shield. The two wires form a circuit carrying the audio signal; one wire is in phase with respect to the source signal, the other wire is reversed in polarity. The in-phase wire is called non-inverting, positive or "hot" while the out-of-phase wire is called inverting, phase-inverted, anti-phase, negative or "cold". The hot and cold connections are often shown as In+ and In− ("in plus" and "in minus") on circuit diagrams.

The term "balanced" comes from the method of connecting each wire to identical impedances at source and load. This means that much of the electromagnetic interference will induce an equal noise voltage in each wire. Since the amplifier at the far end measures the difference in voltage between the two signal lines, noise that is identical on both wires is rejected. The noise received in the second, inverted line is applied against the first, upright signal, and cancels it out when the two signals are subtracted.

Also see this article and this article.

By KdL

Paragon (1212)

KdL's picture

26-07-2014, 11:04

Ok Grauw, grabs this mod:
pDac_SR <= not DACout & not DACout & "ZZZZ";

PLD 3.2.1 Right Inverse ** TEST **

If it works well I could add a new smart command.

By msd

Paragon (1372)

msd's picture

26-07-2014, 11:18

@KDL: Do you know something about a fix in the status register. Something that does work with the v9958 firmware but not with the v9938. I've a program that fails on checking some status registers.

By KdL

Paragon (1212)

KdL's picture

26-07-2014, 12:14

V9938 is the module that HRA had used to get TH9958: there are not HRA improvements in it.

You can check the TH9958 docs here (in japanese):
http://www5d.biglobe.ne.jp/~hra/note/onechipmsx/research/v99...

The mixing of these two VDP could remove the bugs and integrate the improvements.

By Grauw

Enlighted (8191)

Grauw's picture

26-07-2014, 12:23

@KdL Very cool! Smile

I will test it but I need to make a custom cable first, will take me a bit of time (don’t have the components).

By KdL

Paragon (1212)

KdL's picture

26-07-2014, 12:27

@Grauw: note that a lot of hum is from VGA cable.

By msd

Paragon (1372)

msd's picture

26-07-2014, 22:02

@KDL: I am investigating some potential bug of the ese v99x8 vdp. When you read status register 0 the Vertical scan interrupt flag is reset, but other bits of this status register is also reset, this should not happen.

in a,(99)
; result = 0x86
in a,(99)
; Result = 0x0 and should be 0x06

By KdL

Paragon (1212)

KdL's picture

27-07-2014, 20:24

@msd: I post here the new fix of INT_n for th9958, today tested by you! Many thanks. :-)

vdp_register.vhd

IF( VDPREGPTR = "010011" OR (VDPREGPTR = "000000" AND VDPP1DATA(4) = '1') )THEN

vdp.vhd

INT_N       <=  '0' WHEN( (VSYNCINT_N = '0') OR (HSYNCINT_N = '0') )ELSE
                'Z';

By Grauw

Enlighted (8191)

Grauw's picture

27-07-2014, 20:30

Sweet!

Does this also fix the interrupts from Music Module MIDI?

p.s. I should receive parts to make a balanced cable for testing tomorrow.

By KdL

Paragon (1212)

KdL's picture

27-07-2014, 21:24

2014.07.27 OCM-PLD v3.2.2 for 1chipMSX and Zemmix Neo is out!

By KdL

Paragon (1212)

KdL's picture

27-07-2014, 21:44

@Grauw: I think yes, tested by msd.
The Midi part of my Music Module is broken and it's not possible for me to test it. sob! sob!! Crying

A new package is here for you: PLD 3.2.2 Right Inverse ** TEST **

By Grauw

Enlighted (8191)

Grauw's picture

27-07-2014, 22:14

KdL wrote:

The Midi part of my Music Module is broken and it's not possible for me to test it. sob! sob!! Crying

That’s a shame!

I just checked it with my Music Module, looks like the MIDI interrupts are working now. Nice Smile.

By KdL

Paragon (1212)

KdL's picture

27-07-2014, 22:22

Grauw wrote:

That’s a shame!

yep, you are damn right! Also I will fix it Nishi Nishi Nishi

By KdL

Paragon (1212)

KdL's picture

27-07-2014, 22:51

I show the signal Right Inverse recorded from OCM:

By Grauw

Enlighted (8191)

Grauw's picture

28-07-2014, 20:56

@KdL It works marvellously!

When I play some PSG notes, I hear them very clearly and nary a hum to be heard. Whereas if I use a normal mono connection, the hum returns. (And when I mix both channels in mono, as I increase the volume they cancel each other out and only the hum remains Smile. Kind of the opposite effect hehe.)

However when I plug in the SCC the hum appears on the balanced connection, and when I play it it sounds distorted. I guess you didn’t invert the signal for the external cartridge output and it’s still using the old signal path?

By Grauw

Enlighted (8191)

Grauw's picture

28-07-2014, 21:07

Also I noted that the shielding of the balanced cable does not need to be connected to the OCM’s ground for it to work. At least with my mixer. I already speculated that this might be the case. (Also btw, it’s really shielding and does not double as signal return path like is the case of unbalanced audio, whatever that means.)

This is interesting because even though it’s probably a “poor man’s balanced audio cable”, it could be used to output stereo balanced audio by putting the inverted signal on the RCA’s ring… This could also be compatible with existing audio output, eliminating the need for a separate “balanced” mode switch.

I read that home theatre systems often use this trick (called “"Hidden" Balanced I/O Solution” in that article). However, it says “Also crucial for this solution is the need to have either cross-coupled output stages or an output that does not mind a grounded negative output, since the negative output may connect to signal ground.”. I don’t really know what this means but maybe you do. Would the Zemmix Neo mind it? :)

By Grauw

Enlighted (8191)

Grauw's picture

28-07-2014, 21:51

Grauw wrote:

This is interesting because even though it’s probably a “poor man’s balanced audio cable”, it could be used to output stereo balanced audio by putting the inverted signal on the RCA’s ring… This could also be compatible with existing audio output, eliminating the need for a separate “balanced” mode switch.

Well, I guess that won’t work; looking at the OCM schematics and board, the RCA ring is hard-wired to the ground and not through the FPGA. Too bad.

Advantage of the current solution is that one can buy a simple stock 2x RCA to ¼" stereo TRS lead (e.g. 1 or 2) and plug it into a balanced mixer input… It won’t be perfect cause the signal wires aren’t twisted, which prevents external magnetic field interference, but it’s still shielded and the biggest problem is internal interference anyway.

Using those cables, the hot signal of a balanced audio jack is carried on the tip of the TRS connector, which is connected to the left channel (white), so probably best to put the inverted signal on the right channel (red), so that people won’t connect it the wrong way.

By Grauw

Enlighted (8191)

Grauw's picture

29-07-2014, 01:05

Ok, looking at the OCM schematic, I see the cartridge sound output is directly connected to the left sound output… I had hoped it passed through the FPGA via an ADC but it seems it’s not, so there’s no control over what is output. Without this, if it’s just for internal sound sources and breaks down when external sound appears, I think the balanced output is of limited use.

Thanks for giving it a try KdL Smile, it was interesting to experiment with it and see those pretty good initial results.

By KdL

Paragon (1212)

KdL's picture

29-07-2014, 13:37

Grauw wrote:

Ok, looking at the OCM schematic, I see the cartridge sound output is directly connected to the left sound output…

yes, unfortunately it is so!
would you like a new smart command or I leave a "rem" line inside the source code simply?

By Grauw

Enlighted (8191)

Grauw's picture

29-07-2014, 15:53

Well, it wouldn’t hurt to provide a smart command for it if the cost is acceptable to you… There are situations where it’s useful, recording music without any sound-producing cartridges connected, or sound cartridges which only provide external output like OPL4 or modified Music Module, so it could be handy to have it readily available in those cases.

By Grauw

Enlighted (8191)

Grauw's picture

02-08-2014, 22:12

KdL wrote:

@Grauw: note that a lot of hum is from VGA cable.

Another idea for a smart command: given that most of the interference on the audio seems to be generated by the video circuitry (right?), commands to switch video output off and on again.

In Synthesix I plan to have a “recording mode” which disables the UI and processes the MIDI events on the main loop to minimise latency. This mode could then also provide an option to disable the video output if it’s running on an OCM.

(On other MSX computers, I guess I’ll see if black screen in blanking mode reduces the interference.)

By Grauw

Enlighted (8191)

Grauw's picture

02-08-2014, 22:32

Ok, no need! I just confirmed that this eliminates nearly all of the hum:

COLOR 0,0,0

Even with the gain on my amplifier turned up, there’s hardly any hum remaining. Making the foreground colour barely visible (e.g. COLOR 15,0,0:COLOR=(15,0,1,0)) also gives good results. Should hopefully also work on most other MSX computers.

By KdL

Paragon (1212)

KdL's picture

03-08-2014, 00:40

oO ouch!! a blind MSX !!

By KdL

Paragon (1212)

KdL's picture

03-08-2014, 18:09

NEW "KdL Index!" Website Mirror at gnogni.altervista.org

By raymond

Champion (371)

raymond's picture

21-12-2015, 22:54

Any idea when the "official" 3.3 version will be released for the OCM and Zemmix Neo?

By KdL

Paragon (1212)

KdL's picture

27-12-2015, 04:15

I'm very sorry for the big delay. The OCM-PLD PACK V3.3 will be out soon. Anyway the V3.3 RC3 is a stable release.

By raymond

Champion (371)

raymond's picture

27-12-2015, 11:06

Good to hear! As it was an RC I didn't want to put it on my Zemmix Neo. Keep up the good work!

By Grauw

Enlighted (8191)

Grauw's picture

08-01-2016, 01:05

Hey KdL,

I found a bug in the OCM line interrupts. Its VDP doesn’t generate line interrupts beyond line 192 / 212 (depending on the LN setting), whereas a real V99x8 does.

What I’m doing to encounter the issue is explained here.

By Grauw

Enlighted (8191)

Grauw's picture

09-01-2016, 21:43

I think I found the origin of the behaviour, posted about it here.

By KdL

Paragon (1212)

KdL's picture

10-01-2016, 01:17

Ok. Thank you! Smile

By KdL

Paragon (1212)

KdL's picture

05-09-2017, 10:39

Hi Grauw, with the next OCM-PLD v3.4 you will benefit from this feature.

-------------------------------------------------------------------------------
      Smart Commands Table  Revision 005  by KdL 2011-2017     Page 5 of 8
-------------------------------------------------------------------------------
      ...
35 -> Lock   Hard Reset Key
36 -> Unlock Hard Reset Key
37 -> Lock   Mapper Toggle
38 -> Unlock Mapper Toggle
39 -> Lock   MegaSD Toggle
3A -> Unlock MegaSD Toggle
3B -> Lock   All Toggles
3C -> Unlock All Toggles (default)
3D -> Set Pseudo-Stereo OFF (default)
3E -> Set Pseudo-Stereo ON (external sound cartridge required)
3F -> Sync External Bus Clock to CPU Speed (default)
40 -> Set External Bus Clock 3.58MHz
41 -> Set Turbo Pana 5.37MHz
42 -> Set Right Inverse Audio OFF (default)
43 -> Set Right Inverse Audio ON
80 -> Null Command (useful for programming)

-------------------------------------------------------------------------------

By Grauw

Enlighted (8191)

Grauw's picture

05-09-2017, 10:55

Nice stuff Smile.

Good for recording really clean balanced audio.