Previous Thread
Next Thread
Print Thread
Page 2 of 2 1 2
Joined: Jan 2021
Posts: 220
Likes: 10
=
Senior Member
Senior Member
= Offline
Joined: Jan 2021
Posts: 220
Likes: 10
The PCS-30 sound IC YM2142 is likely very similar like the documented YM2163, beside an additional analogue input for tempo potentiometer.

http://weltenschule.de/TableHooters/VTech_Rhythmic8.html#pinout%20YM2163

Here is the datasheet:
https://gist.github.com/bryc/e85315f758ff3eced19d2d4fdeef01c5
https://drive.google.com/file/d/1nSV_5RaPNTOIUPEQA4mzcMPI03CDmU7d/view?usp=drive_link


MAY THE SOFTWARE BE WITH YOU!

{weltenschule.de}
Joined: Apr 2010
Posts: 62
H
Member
Member
H Offline
Joined: Apr 2010
Posts: 62
Found my service manual for the MR-1 (Music Reading Keyboard). I don't have a good way to scan the pages, but I can list the following data.

First page states MR-1 is the model name only for USA, CN-1000 model name except for USA.

Keyboard 49 Keys C1-C5, 12 Solo Tones, 12 Orchestra Tones, 16 Rhythm, Auto Bass Chord (ABC) with Arpeggio
Stereo Symphonic Tremolo/Chorus/Delay effect
Solo Effects : Sustain, Celeste
Orchestra Effect : Sustain

Main uCOM is a OKI MSM80C85A , Yamaha number iG099200
Key Code and Assigner for PS (KAP3), Yamaha number YM2021 or YM2191 also iT219100
Rhythm for PS (RYP2), Yamaha number YM2023 or YM2193 also iT219300
Generator for Orchestra voice (GE5), Yamaha number YM2022 or YM2192 also iT219200
Generator for Solo voice (GE6), Yamaha number iG095100
Intelligence Electone (IE2) playcard controller, Yamaha number iG095200

uCOM ROM iG099620 HN613128P 128K
SOLO ROM iG102000 HN61364P 64K
ORC ROM iG099310 TC5332P 32K
RHY ROM iG099800 TMM23256P 256K

ORC DAC iG095600 or iG095610 MZ109

uCOM has two 4K RAMs
IE2 has two 4K RAMs

Panel LCD uPD7501G iG102100

Also has a page of KAP3 Serial Data bit assignments for 144 bit packets for each of Orchestra Out, Solo Out, Rhythm Out, Playcard Out and Playcard In channels.

Joined: Aug 2013
Posts: 45
Likes: 4
J
Member
Member
J Offline
Joined: Aug 2013
Posts: 45
Likes: 4
I know I'm probably wanting a pie in the sky but…my decoding project started by disassembling, then running, the UPA-01 ROM on an emulated CX5M (MSX) computer. Over time I've come to discover that either the UPA-01 cartridge, the CX5M computer, the SFG01, or a combination of the three, have some serious bugs when it comes to accompaniment, drum fills, etc. Several nights ago I gave Claude the PCS-30 ROM. This gave it another window into the data format by looking at a second, entirely different implementation of the same thing. There are some odd chord chart entries on a few Playcards that neither Claude nor I have been able to descramble. They use as their keycode one of the four unused YM2151 keycodes, and seem to be intended to either modify a root chord (make it minor, 7th, or minor 7th) or restate the same chord outright. At first we thought they were mutes since the UPA-01 treats them as such, but they are not. No one uses two different ways of expressing the same thing for no reason, so these odd chart entries have to have some purpose. I don't assume anyone has dumped the ROMs from another Playcard-capable keyboard for comparison? The project is pretty much complete, and for now, these odd chord chart entries decode to the chords they would have expressed anyway, but it'd be nice to know what their purpose is, since again, you don't have two ways of doing the same thing for no reason.

Joined: Jan 2021
Posts: 72
Likes: 71
R
Member
Member
R Offline
Joined: Jan 2021
Posts: 72
Likes: 71
Well, without any publicly viewable information about the format, nobody here is going to be able to answer those questions either...

Joined: Apr 2010
Posts: 62
H
Member
Member
H Offline
Joined: Apr 2010
Posts: 62
In the possibility that this helps, the Playcard IN serial packet data (from IE2 to KAP3) given in service manual is as follows:

0 : IE
1 : TL
2 : SL
3 : SET
4 : RUN
5 : MUTE
6 : ST
7 : unmarked
8 : FC ON
9 : SF ON
10: M OFF
11: ABC-V
12: RUB
13: SUS
14: NO Rhy
15: FREE
16-23: Tempo Counter
24-29: Chord
30: unmarked
31: Chord Change
32-39: Obligato
40-47: Melody
48-52: Tempo
53: SET
54: RESET
55: unmarked
56-59: Orch-Voice
60-63: Solo-Voice
64-67: Fill--IN
68-71: Rhythm
72-143: unmarked

Also the MR-1 has the following Playcard controls : Free Tempo, Auto Play, Sing Along, Melody Cancel, Chord Lesson, Chord Cancel, Stop, Phrase Repeat, Instrumental Sequencer, Preset Balance Cancel, Melody Lamps and Chord Lamps.
The Phrase Repeat allows playback to repeat a phrase (marked on the cards by sequential numbers above the first bar of the phrase).
Instrumental Sequencer allows selecting and storing which instrument to play the melody and the obligato parts for each phrase.
Preset Balance Cancel allows for the programmed volume settings to be changed.

Joined: Jan 2021
Posts: 220
Likes: 10
=
Senior Member
Senior Member
= Offline
Joined: Jan 2021
Posts: 220
Likes: 10
Originally Posted by Jayson Smith
There are some odd chord chart entries on a few Playcards that neither Claude nor I have been able to descramble. They use as their keycode one of the four unused YM2151 keycodes, and seem to be intended to either modify a root chord (make it minor, 7th, or minor 7th) or restate the same chord outright. At first we thought they were mutes since the UPA-01 treats them as such, but they are not. No one uses two different ways of expressing the same thing for no reason, so these odd chart entries have to have some purpose.

Some PlayCard keyboards have arpeggio, so may this select a different arpeggio variation? It also might be chord inversion (swapping high and low octave in a chord) or selecting a different preset sound for chord or bass (on instruments those support it).

I read that for longer songs dual-sided PlayCards exist (or at least were planned) those need to be inserted from both sides to load the song. So there have to be additional codes to mark that the keyboard has to wait for loading the 2nd side instead of starting to play.

Last edited by =CO=Windler; 08/29/26 02:52 AM.

MAY THE SOFTWARE BE WITH YOU!

{weltenschule.de}
Joined: Aug 2013
Posts: 45
Likes: 4
J
Member
Member
J Offline
Joined: Aug 2013
Posts: 45
Likes: 4
Double-sided cards do exist. Of the 267 binaries extracted through the executable found as a zip on the dtech.lv site, six represent two sides of three Japanese playcards. The two-sided format is specific, there is no choice of where to cut. Side A contains the header and both duration streams (melody and obbligato) while side B contains the chord chart and melody and obbligato opcode streams. Opcodes don't compress as well as durations, so side B is always the larger side. Each card has a two-bit block type field in the header. Type 0 means end of data, and in fact every Playcard ends with a stream of 0 bits so the keyboard knows it's reached the end. Type 1 is a normal Playcard, and type 2 is side B of a two-sided Playcard. I can only presume, then, that type 3 is for MSX graphics cards.

Here's some info from the soon-to-be-released format spec about two-sided cards. The ROM locations, etc. refer to the UPA-01 cartridge for MSX.

Two-sided cards

Nothing in the header says "there is a side B". The signal is structural: a side-A card is a type-1 card that carries no section at all — header and both duration tracks, then the two-bit terminator, with no opcode streams. Every other type-1 card in the corpus has exactly one section; the three side-A cards have zero. The durations are on side A and the pitches on side B.
The cartridge turns that into an explicit state. At ROM 0x6668, a type-1 card that ends with tag 0 and no section sets a flag at 0xE48B; every other successful path clears it. At 0x6608 a type-2 card is rejected outright (error 0x80) unless that flag is set. So the reader is a two-state machine: after side A it is armed for side B and will accept nothing else, which is the state a keyboard's "swipe the other side" indicator reflects.
The parser says which it just read, in A. Running the cartridge's own parse over a card image returns a code rather than a yes or no, and the two-sided codes are how a keyboard knows to ask for the other side:

A
meaning
0x00
a complete one-sided card
0x01
a side A — a type-1 card with no section; the reader is now armed
0x02
a side B, completing the card and clearing the flag
0x80
refused

A side B decodes its section on top of what its side A left in the buffer, taking the buffer pointer from 0xE47B, so the two swipes are one operation and a side B cannot be read or checked on its own.

Joined: Aug 2013
Posts: 45
Likes: 4
J
Member
Member
J Offline
Joined: Aug 2013
Posts: 45
Likes: 4
At long last, my GitHub repo is published! https://github.com/jaybird110127/playcards

1 member likes this: robcfg
Joined: Mar 2001
Posts: 17,387
Likes: 414
R
Very Senior Member
Very Senior Member
R Online: Content
Joined: Mar 2001
Posts: 17,387
Likes: 414
Thanks Jayson!

Page 2 of 2 1 2

Link Copied to Clipboard
Who's Online Now
4 members (Hydreigon, rfka01, AJR, Kale), 177 guests, and 8 robots.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,458
Posts123,520
Members5,130
Most Online4,093
Jan 28th, 2026
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Powered by UBB.threads™ PHP Forum Software 8.0.0