News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Devilmarkus

Amstrad SSA-1 Speech Synthesizer ROM needed

Started by Devilmarkus, 22:50, 04 January 10

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

nocash

> Using the OUT &FBFE,&04:PRINT INP (&FBFE) i get 127 again
> (didnt hear a "OY" sound tho?).
Maybe... didn't you mention you had no speakers? :-)
The status should toggle though, or did I make a mistake in the example?

> i recall seeing a different dktronics speech cart that said
> "dk'tronics speech rom" on top. So perhaps there are several
> versions, with and without rom software?
Yes, yes, that's already described in the article,
  http://cpcwiki.eu/index.php/Dk'tronics_Speech_Synthesizer

> While it's speaking &FBFE is toggling between 255 and 127
Good to know, then the Dk'tronics version seems to have only one status bit. Probably /LRQ, since the other one, SBY is less useful.

> according to the SPO256 datasheet, the chip won't run with anything
> other than a 3.12MHz crystal
Yeah, that's the "official" recommended value. But I guess one could overclock or underclock it a little.

Some of the SP0256 interfaces for the ZX Spectrum have an "intonation" feature. I think nobody actually knows yet how that feature works. The SP0256 chip itself doesn't seem to have that feature built-in; at least neither the datasheet nor the people who rev-engineered the sp0265 opcodes do mention such a feature.

So, I could imagine only two ways how to change the intonation: Externally modify the clock input, or pass the sound output through an external low-pass/high-pass filter. And since the Dk'tronics has the "|SPED" command to change the "speed", I thought that it supports variable clock input?

To know that things, it'd be great if somebody could add a picture of the Dk'tronics mainboard here,
  http://cpcwiki.eu/index.php/Dk'tronics_Speech_Synthesizer
And a better resolution picture of the SSA-1 mainboard here,
  http://cpcwiki.eu/index.php/Amstrad_SSA-1_Speech_Synthesizer

Devilmarkus

#26
The DK'Tronics speech works fine now...
Also games like "Jump Jet" from Anirog Software give out speech now.

The SSA-1 Seems to be a bit harder!
I added 3 different Port states but it still denies it's work sometimes...
(The 4th port state 0xC0 is useless: It denies writing and is not playing, this makes no sense)
You can hear SSA-1 in games like "3d Stuntrider" or "Glen Hoddle Soccer".
You can also hear the SSA-1 software starting up...
But basic interpreter input it still denies :( (Or is there a trick?)
Also the game "Roland in Space" (Which also checks DK'Tronics port) still denies it's speech output :(

Please don't forget: it's a VERY simple emulation

Here you can see the available options:
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

nocash

> The DK'Tronics speech works fine now...
> Also games like "Jump Jet" from Anirog Software give out speech now.
Oops, that means that there are more than one game supporting the Dk'tronics hardware?

I've disassembled the |SPED command, I should probably have done that yesterday. It doesn't seem to use any hardware I/O (so apparently there's no variable clock, and it probably really uses a 3.12MHz oscillator?).

Instead, the |SPED,n command causes a simple software delay (of n/50 seconds) between each allophone. So the speech chip should repeat the end of the last allophone, ie. "OY" would be become "OYYYYYYY" when using a large delay value.

Not to sure what that feature is good for.

Anyways, as far as I understand, the software seems to be intended to add that delay at the END of the last allophone. Which means that, in order to determine to END of it, it would need to read SBY.

If that's true, and if there's really only one status bit supported by the Dk'tronics, then it seems as if it doesn't support the /LRQ signal.

Strange, the /LRQ seems to be the more important bit to me, as it allows to send new data while the chip still processes the old allophone, and so, to avoid unwanted delays between the separate allophones. But, now it seems as if Dk'tronics WANTED to have delays between them.

Devilmarkus

Here's a quote of the french cpcrulez.forum:
Quotebon alors la liste des jeux utilisant le SSA-1 et son port &FBEE (01 ee fb ed 78)

3D BOXING
3D STUNT RIDER
ALEX HIGGIN'S WORLD POOL
ALEX HIGGIN'S WORLD SNOOKER
DRAGON GOLD
ROLAND IN SPACE
GLEN HODDLE SOCCER
TUBARUBA
GREMLINS
SEABLOOD
ROBIN OF SHERWOOD
DARKWURLDE

Original thread: http://cpcrulez.fr/forum/viewtopic.php?f=5&t=3810

Sad: The adventure games like "Gremlins" do not react to port &FBEE - Is it for sure, this game provides SSA-1 speech output? If yes, do I need to enable it with a command?
No port reaction in JavaCPC here....

Maybe also some memory addresses are different when the SSA-1 rom is connected? Or maybe it has a ROM inside?
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

nocash

>> are more than one game supporting the Dk'tronics hardware?
> Here's a quote of the french cpcrulez.forum:
> bon alors la liste des jeux utilisant le SSA-1 et son port &FBEE

Even with my VERY limited french skills, I can tell that that is NOT about Dk'tronics.
And aside, the list is incorrect.
Dragon Gold doesn't seem to use an speech at all. Unless there are different versions of that game, one with, another without speech.
Gremlins, Seablood, Robon of Sherwood are using Port FBEC,FBEE,FBEF for network transmission or so, not for speech.
The correct list of (known) SSA-1 games is here,
  http://cpcwiki.eu/index.php/Amstrad_SSA-1_Speech_Synthesizer
And for Dk'tronics, it seems that only the Jumpjet game exists?

Devilmarkus

#30
Example for "Tubaruba":
When you start or loose a live, it sends these phonemes:
input:0C,
Saying:|IH|
input:0B,
Saying:|NN1|
input:0D,
Saying:|TT2|
input:27,
Saying:|RR2|
input:1F,
Saying:|UW2|
input:21,
Saying:|DD2|
input:33,
Saying:|ER1|
input:18,
Saying:|AA|
input:2D,
Saying:|LL|
input:34,
Saying:|ER2|
input:11,
Saying:|TT1|
input:02,
Saying:|50ms|

(I don't understand this :D But should mean "Intruder alert" )

When you have died, it plays this sequence:

input:09,
Saying:|PP|
input:0E,
Saying:|RR1|
input:07,
Saying:|EH|
input:09,
Saying:|PP|
input:2F,
Saying:|XR|
input:03,
Saying:|100ms|
input:0D,
Saying:|TT2|
input:16,
Saying:|UW1|
input:03,
Saying:|100ms|
input:21,
Saying:|DD2|
input:06,
Saying:|AY|
input:02,
Saying:|50ms|


This means "Prepare to die"

Watch a little video here: http://cpc.devilmarkus.de/tubaruba
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Bryce

Morning,
          my interface is the DKTronics ROM version, I'll open it up an take a few hi-res photos of it tonight for the wiki page. If I have time, I might even scribble down the circuit diagram (if it's not too much work).

Bryce.

Cpcmaniaco


Bryce

Well that's saved me the bother, the ROM version seems to be more or less identical to mine. And by the way, you don't need to cover the EPROM when taking a picture with the flash, the light produced by the flash definitely hasn't enough UV to have any effect on its content. Or was it just reflecting the light too much?

Bryce.

Devilmarkus

Does somebody also have the user's guide or a service manual for the DK'Tronics?
Would be cool to scan it and to upload it, too...

Here I played around with the RSX command from DK'Tronics rom:
http://cpc.devilmarkus.de/dktronics/
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Bryce

Yeah, I have. I'll see if I can upload it later.

Bryce.

nocash

> Now I put some photos I make this morning of the 2 models I have
Great, thanks!

Confirms that it has the -AL2 version of the SP0256 chip.

And, look, it doesn't have a 3.12MHz oscillator. In fact, there's no oscillator at all.
Very important to know that detail. So I'd guess it's driven by the 4MHz signal on the expansion port (?) The picture resolution is too low (and the romless-board too dirty) to say that for sure.

> take a few hi-res photos of it tonight for the wiki page.
> If I have time, I might even scribble down the circuit diagram
Would be cool!

On the SP0256 chip, it'd be interesting where the two OSC pins are connected to.

The other two important pins on that chip would be SBY and /LRQ. Looking at the rom-less photos, I'd say it's safe to say that SBY (Pin8) is not connected, so only /LRQ seems to be supported.

On the expansion port side, it would be interesting which address lines are decoded, ie. to figure out if Port FBFE is mirrored to other addresses, just for curiosity, not soo important.

Devilmarkus

When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Devilmarkus

When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Devilmarkus

Another small test program:
10 synth=0:IF INP(&FBFE)<>127 THEN synth=1
20 RESTORE 160:GOSUB 50
30 IF dk=1 THEN PRINT"Spoken with DK'Tronics speech":END ELSE PRINT"Spoken with Amstrad SSA-1 speech":END
40 '
50 READ a:WHILE a<>999
60 IF synth<>1 THEN 90
70 IF INP(&FBEE)<64 THEN 70:'ssa1 speech
80 GOTO 100
90 :'dktronic speech
100 IF synth<>1 THEN 130
110 OUT &FBEE,a:dk=0:'ssa1 speech
120 GOTO 140
130 OUT &FBFE,a:dk=1:'dktronic speech
140 READ a:WEND:RETURN
150 '
160 DATA 6,3,26,16,3,26,11,3,26,16,55,17,39,26,21,3,42,23,16,9,49,31,17,51,0,999
200 DATA 55,55,3,17,24,24,3,9,0,999


Taken from amstradeus.com and modified slightly to detect speech
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Devilmarkus

#40
Maybe it would help me when I knew, what is done in this piece of disassembly from "Roland in Space":


                ld      A,(HL)                  ;1038:   ~       7E
                ld      BC,&FBEE                ;1039:   ...     01 EE FB
                out     (C),A                   ;103C:   .y      ED 79
                or      A                       ;103E:   .       B7
                ret     Z                       ;103F:   .       C8

                in      A,(C)                   ;1040:   .x      ED 78
                bit     6,A                     ;1042:   .w      CB 77
                jr      NZ,&1040                ;1044:    .      20 FA
                inc     HL                      ;1046:   #       23
                jr      &1038                   ;1047:   ..      18 EF
                ld      HL,&004A                ;1049:   !J.     21 4A 00
                ld      (&1C79),HL              ;104C:   "y.     22 79 1C
                ld      (&1C75),HL              ;104F:   "u.     22 75 1C
                ex      DE,HL                   ;1052:   .       EB
                ld      HL,&0067                ;1053:   !g.     21 67 00
                ld      (&1C7B),HL              ;1056:   "{.     22 7B 1C
                ld      (&1C77),HL              ;1059:   "w.     22 77 1C
                call    &BC1D                   ;105C:   ...     CD 1D BC
                ld      (&1C7F),HL              ;105F:   "..     22 7F 1C
                ld      HL,&1DBB                ;1062:   !..     21 BB 1D
                ld      (&1C7D),HL              ;1065:   "}.     22 7D 1C
                ld      A,&4C                   ;1068:   >L      3E 4C
                ld      (&1C73),A               ;106A:   2s.     32 73 1C
                ld      (&1C74),A               ;106D:   2t.     32 74 1C
                xor     A                       ;1070:   .       AF
                ld      (&1CD2),A               ;1071:   2..     32 D2 1C
                jp      &1808                   ;1074:   ...     C3 08 18
                ld      DE,(&1C75)              ;1077:   .[u.    ED 5B 75 1C
                ld      HL,(&1C77)              ;107B:   *w.     2A 77 1C
                call    &BC1D                   ;107E:   ...     CD 1D BC
                ld      (&1C81),HL              ;1081:   "..     22 81 1C
                ld      DE,(&1C79)              ;1084:   .[y.    ED 5B 79 1C
                ld      HL,(&1C7B)              ;1088:   *{.     2A 7B 1C
                call    &BC1D                   ;108B:   ...     CD 1D BC
                ld      (&1C7F),HL              ;108E:   "..     22 7F 1C
                ld      HL,(&1C79)              ;1091:   *y.     2A 79 1C
                ld      BC,(&1C75)              ;1094:   .Ku.    ED 4B 75 1C
                xor     A                       ;1098:   .       AF
                sbc     HL,BC                   ;1099:   .B      ED 42
                jr      NZ,&10A8                ;109B:    .      20 0B
                ld      A,(&1CD2)               ;109D:   :..     3A D2 1C
                or      A                       ;10A0:   .       B7
                jr      NZ,&10A8                ;10A1:    .      20 05
                ld      A,&53                   ;10A3:   >S      3E 53
                ld      (&1C74),A               ;10A5:   2t.     32 74 1C
                ld      HL,(&1C81)              ;10A8:   *..     2A 81 1C
                ld      DE,&1C83                ;10AB:   ...     11 83 1C
                ld      B,&10                   ;10AE:   ..      06 10
                call    &18A8                   ;10B0:   ...     CD A8 18
                push    BC                      ;10B3:   .       C5
                push    HL                      ;10B4:   .       E5
                ld      B,&04                   ;10B5:   ..      06 04
                ld      A,(DE)                  ;10B7:   .       1A
                ld      (HL),A                  ;10B8:   w       77
                inc     HL                      ;10B9:   #       23
                inc     DE                      ;10BA:   .       13
                call    &189C                   ;10BB:   ...     CD 9C 18
                djnz    &10B7                   ;10BE:   ..      10 F7
                pop     HL                      ;10C0:   .       E1
                ld      A,&08                   ;10C1:   >.      3E 08
                add     H                       ;10C3:   .       84
                ld      H,A                     ;10C4:   g       67
                jr      NC,&10CF                ;10C5:   0.      30 08
                ld      BC,&C050                ;10C7:   .P.     01 50 C0
                add     HL,BC                   ;10CA:   .       09
                ld      A,&C7                   ;10CB:   >.      3E C7
                and     H                       ;10CD:   .       A4
                ld      H,A                     ;10CE:   g       67
                pop     BC                      ;10CF:   .       C1
                djnz    &10B3                   ;10D0:   ..      10 E1
                ld      A,(&1C61)               ;10D2:   :a.     3A 61 1C
                or      A                       ;10D5:   .       B7
                jr      Z,&10E8                 ;10D6:   (.      28 10
                ld      DE,(&1C62)              ;10D8:   .[b.    ED 5B 62 1C
                ld      HL,(&1C60)              ;10DC:   *`.     2A 60 1C
                call    &06E6                   ;10DF:   ...     CD E6 06
                ld      HL,&0000                ;10E2:   !..     21 00 00
                ld      (&1C60),HL              ;10E5:   "`.     22 60 1C
                ld      HL,(&1C7F)              ;10E8:   *..     2A 7F 1C
                ld      DE,(&1C7D)              ;10EB:   .[}.    ED 5B 7D 1C
                ld      IX,&1C83                ;10EF:   .!..    DD 21 83 1C
                ld      B,&10                   ;10F3:   ..      06 10
                push    BC                      ;10F5:   .       C5
                push    HL                      ;10F6:   .       E5
                ld      B,&04                   ;10F7:   ..      06 04
                ld      A,(HL)                  ;10F9:   ~       7E
                ld      (IX+&00),A              ;10FA:   .w.     DD 77 00
                and     &AA                     ;10FD:   ..      E6 AA
                ld      C,A                     ;10FF:   O       4F
                cp      &80                     ;1100:   ..      FE 80
                jr      Z,&110E                 ;1102:   (.      28 0A
                cp      &A0                     ;1104:   ..      FE A0
                jr      Z,&110E                 ;1106:   (.      28 06
                ld      A,(DE)                  ;1108:   .       1A
                and     &AA                     ;1109:   ..      E6 AA
                jr      Z,&110E                 ;110B:   (.      28 01
                ld      C,A                     ;110D:   O       4F
                ld      A,(HL)                  ;110E:   ~       7E
                and     &55                     ;110F:   .U      E6 55
                cp      &40                     ;1111:   .@      FE 40
                jr      Z,&1121                 ;1113:   (.      28 0C
                cp      &50                     ;1115:   .P      FE 50
                jr      Z,&1121                 ;1117:   (.      28 08
                ld      A,(DE)                  ;1119:   .       1A
                and     &55                     ;111A:   .U      E6 55
                jr      NZ,&1121                ;111C:    .      20 03
                ld      A,(HL)                  ;111E:   ~       7E
                and     &55                     ;111F:   .U      E6 55
                or      C                       ;1121:   .       B1
                ld      (HL),A                  ;1122:   w       77
                inc     DE                      ;1123:   .       13
                inc     HL                      ;1124:   #       23
                inc     IX                      ;1125:   .#      DD 23
                call    &189C                   ;1127:   ...     CD 9C 18
                djnz    &10F9                   ;112A:   ..      10 CD
                pop     HL                      ;112C:   .       E1
                ld      A,&08                   ;112D:   >.      3E 08
                add     H                       ;112F:   .       84
                ld      H,A                     ;1130:   g       67
                jr      NC,&113B                ;1131:   0.      30 08
                ld      BC,&C050                ;1133:   .P.     01 50 C0
                add     HL,BC                   ;1136:   .       09
                ld      A,&C7                   ;1137:   >.      3E C7
                and     H                       ;1139:   .       A4
                ld      H,A                     ;113A:   g       67
                pop     BC                      ;113B:   .       C1
                djnz    &10F5                   ;113C:   ..      10 B7
                ld      HL,(&1C79)              ;113E:   *y.     2A 79 1C
                ld      (&1C75),HL              ;1141:   "u.     22 75 1C
                ld      HL,(&1C7B)              ;1144:   *{.     2A 7B 1C
                ld      (&1C77),HL              ;1147:   "w.     22 77 1C
                ret                             ;114A:   .       C9

                ld      DE,&8DB1                ;114B:   ...     11 B1 8D
                ld      BC,&0009                ;114E:   ...     01 09 00
                ldir                            ;1151:   ..      ED B0
                ld      HL,&8DB1                ;1153:   !..     21 B1 8D
                jp      &BCAA                   ;1156:   ...     C3 AA BC
                ld      A,&12                   ;1159:   >.      3E 12
                call    &BB1E                   ;115B:   ...     CD 1E BB
                jr      NZ,&1165                ;115E:    .      20 05
                xor     A                       ;1160:   .       AF
                ld      (&1FBC),A               ;1161:   2..     32 BC 1F
                ret                             ;1164:   .       C9

                ld      A,(&1FBC)               ;1165:   :..     3A BC 1F
                or      A                       ;1168:   .       B7
                ret     NZ                      ;1169:   .       C0

                inc     A                       ;116A:   <       3C
                ld      (&1FBC),A               ;116B:   2..     32 BC 1F
                ld      A,(&1FBD)               ;116E:   :..     3A BD 1F
                xor     &01                     ;1171:   ..      EE 01
                ld      (&1FBD),A               ;1173:   2..     32 BD 1F
                jp      Z,&BCA7                 ;1176:   ...     CA A7 BC
                jp      &1699                   ;1179:   ...     C3 99 16
                ld      A,L                     ;117C:   }       7D
                or      A                       ;117D:   .       B7
                ret     NZ                      ;117E:   .       C0

                ld      A,H                     ;117F:   |       7C
                and     &07                     ;1180:   ..      E6 07
                ret     NZ                      ;1182:   .       C0

                ld      A,H                     ;1183:   |       7C
                sub     &08                     ;1184:   ..      D6 08
                ld      H,A                     ;1186:   g       67
                ret                             ;1187:   .       C9

                push    AF                      ;1188:   .       F5
                push    DE                      ;1189:   .       D5
                push    HL                      ;118A:   .       E5
                call    &BD0D                   ;118B:   ...     CD 0D BD
                ld      A,&04                   ;118E:   >.      3E 04
                cp      L                       ;1190:   .       BD
                jr      NZ,&118B                ;1191:    .      20 F8
                call    &BD0D                   ;1193:   ...     CD 0D BD
                ld      A,&05                   ;1196:   >.      3E 05
                cp      L                       ;1198:   .       BD
                jr      NZ,&1193                ;1199:    .      20 F8
                pop     HL                      ;119B:   .       E1
                pop     DE                      ;119C:   .       D1
                pop     AF                      ;119D:   .       F1
                ret                             ;119E:   .       C9

                push    AF                      ;119F:   .       F5
                push    BC                      ;11A0:   .       C5
                push    DE                      ;11A1:   .       D5
                push    HL                      ;11A2:   .       E5
                ld      DE,&0000                ;11A3:   ...     11 00 00
                ld      HL,&0000                ;11A6:   !..     21 00 00
                call    &BD10                   ;11A9:   ...     CD 10 BD
                ld      HL,(&1DAF)              ;11AC:   *..     2A AF 1D
                ld      A,H                     ;11AF:   |       7C
                or      A                       ;11B0:   .       B7
                jr      Z,&11C7                 ;11B1:   (.      28 14
                ld      BC,&FBEE                ;11B3:   ...     01 EE FB
                in      A,(C)                   ;11B6:   .x      ED 78
                bit     6,A                     ;11B8:   .w      CB 77
                jr      NZ,&11C7                ;11BA:    .      20 0B
                ld      A,(HL)                  ;11BC:   ~       7E
                out     (C),A                   ;11BD:   .y      ED 79
                or      A                       ;11BF:   .       B7
                inc     HL                      ;11C0:   #       23
                jr      NZ,&11C4                ;11C1:    .      20 01
                ld      H,A                     ;11C3:   g       67
                ld      (&1DAF),HL              ;11C4:   "..     22 AF 1D
                pop     HL                      ;11C7:   .       E1
                pop     DE                      ;11C8:   .       D1
                pop     BC                      ;11C9:   .       C1
                pop     AF                      ;11CA:   .       F1
                ret                             ;11CB:   .       C9

                nop                             ;11CC:   .       00
                dec     C                       ;11CD:   .       0D
                dec     C                       ;11CE:   .       0D
                nop                             ;11CF:   .       00
                nop                             ;11D0:   .       00
                ld      B,&06                   ;11D1:   ..      06 06
                ex      AF,AF'                  ;11D3:   .       08
                ex      AF,AF'                  ;11D4:   .       08
                inc     D                       ;11D5:   .       14
                inc     D                       ;11D6:   .       14
                jr      &11F1                   ;11D7:   ..      18 18
                ld      A,(DE)                  ;11D9:   .       1A
                ld      A,(DE)                  ;11DA:   .       1A
                ld      (DE),A                  ;11DB:   .       12
                ld      (DE),A                  ;11DC:   .       12
                nop                             ;11DD:   .       00
                ld      (DE),A                  ;11DE:   .       12
                ld      (DE),A                  ;11DF:   .       12
                nop                             ;11E0:   .       00
                inc     D                       ;11E1:   .       14
                ld      (BC),A                  ;11E2:   .       02
                ld      (BC),A                  ;11E3:   .       02
                inc     D                       ;11E4:   .       14
                rlca                            ;11E5:   .       07
                rlca                            ;11E6:   .       07
                ld      A,(BC)                  ;11E7:   .       0A
                ld      A,(BC)                  ;11E8:   .       0A
                rrca                            ;11E9:   .       0F
                rrca                            ;11EA:   .       0F
                ld      A,(DE)                  ;11EB:   .       1A
                ld      A,(DE)                  ;11EC:   .       1A
                ld      B,&06                   ;11ED:   ..      06 06
                ld      BC,&0403                ;11EF:   ...     01 03 04
                ld      (BC),A                  ;11F2:   .       02
                rrca                            ;11F3:   .       0F
                ld      D,D                     ;11F4:   R       52
                ld      C,A                     ;11F5:   O       4F
                ld      C,H                     ;11F6:   L       4C
                ld      B,C                     ;11F7:   A       41
                ld      C,(HL)                  ;11F8:   N       4E
                ld      B,H                     ;11F9:   D       44
                jr      NZ,&1245                ;11FA:    I      20 49
                ld      C,(HL)                  ;11FC:   N       4E
                jr      NZ,&1252                ;11FD:    S      20 53
                ld      D,B                     ;11FF:   P       50
                ld      B,C                     ;1200:   A       41
                ld      B,E                     ;1201:   C       43
                ld      B,L                     ;1202:   E       45
                ld      BC,&1601                ;1203:   ...     01 01 16
                ld      (BC),A                  ;1206:   .       02
                inc     B                       ;1207:   .       04
                and     H                       ;1208:   .       A4
                jr      NZ,&123C                ;1209:    1      20 31
                add     HL,SP                   ;120B:   9       39
                jr      C,&1243                 ;120C:   85      38 35
                jr      NZ,&1257                ;120E:    G      20 47
                ld      B,L                     ;1210:   E       45
                ld      C,L                     ;1211:   M       4D
                jr      NZ,&1267                ;1212:    S      20 53
                ld      C,A                     ;1214:   O       4F
                ld      B,(HL)                  ;1215:   F       46
                ld      D,H                     ;1216:   T       54
                ld      D,A                     ;1217:   W       57
                ld      B,C                     ;1218:   A       41
                ld      D,D                     ;1219:   R       52
                ld      B,L                     ;121A:   E       45
                ld      BC,&1801                ;121B:   ...     01 01 18
                ld      (BC),A                  ;121E:   .       02
                dec     B                       ;121F:   .       05
                ld      D,B                     ;1220:   P       50
                ld      (HL),D                  ;1221:   r       72
                ld      H,L                     ;1222:   e       65
                ld      (HL),E                  ;1223:   s       73
                ld      (HL),E                  ;1224:   s       73
                jr      NZ,&127A                ;1225:    S      20 53
                ld      D,B                     ;1227:   P       50
                ld      B,C                     ;1228:   A       41
                ld      B,E                     ;1229:   C       43
                ld      B,L                     ;122A:   E       45


I need to know what happens on port &FBEE here (Sorry, I'm an absolute Assembler-noob)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Bryce

Hi All,
          just opened up my DKTronics unit. It looks slightly different to the pictures submitted by CPCManiaco, but it's probably just a slightly different revision (I don't have the two Electrolytic capacitors seen above the TTL chips in the picture, the rest seems to be the same. Pin 27 of the SPO256 is indeed going to pin 50 of the expansion port (Clock Signal). SBY doesn't seem to be connected to anything. LRQ is connected to Pin 9 of the 74LS32, the lower of the two chips on the right hand side in picture 30-08.2009 001.jpg (Pin 9 of a 74LS32 is one of the two inputs on a dual OR gate) I then lost interest and didn't follow the track further :) Due to it being a double-sided overcrowded board, doing the entire circuit diagram seems like way too much work to me.

Also - a word of warning to anyone else who decides to dis-assemble their unit. In mine, the chip socket of the SPO256 is soldered in the wrong direction, I doubt this is the case on all units, but be careful of the orientation of the chip (and ROM) if you remove them, because the socket orientation can't be trusted. I assume (and they look like) they were hand soldered.

Bryce.

Cholo

Quote from: nocash on 23:56, 05 January 10
> Using the OUT &FBFE,&04:PRINT INP (&FBFE) i get 127 again
> (didnt hear a "OY" sound tho?).
Maybe... didn't you mention you had no speakers? :-)
Indeed no speakers at all, but i was messing around with the normal "sound" command (that the manual refers to for adjusting the left/right speakers) and i also got sound from the internal speaker like normal. So i kinda assumed that i should hear a noise when using the cart even without the external speakers. Of cause i dont really know  :)

Looks like there is a rom version of DK'tronics speech for sale here:
http://www.retrogames.co.uk/more/on/details/015737

Feels a bit expensive for an unboxed and untested set tho.

Bryce

Without the external speakers you definitely won't hear any speech. The cable which goes from the interface to Audio Output socket is to route the normal sound through it's internal amplifier so that the stereo sound the CPC offers can actually be heard in stereo for a change (internally there's only one speaker as I am sure you all know), but there is no possible way for it to send it's output back into the CPC and through the AY-8912, so the internal speaker could never possibly speak.

Bryce.

Devilmarkus

This SSA-1 let's me go mad!!!

http://cpc.devilmarkus.de/roinspace/

It's a really hard nut to find the correct timings... But it works better now...
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Bryce

#45
I thought that sounded quite good.

I've scanned in the DK'Tronics user manual and uploaded it as a pdf to the page. It's actually just a section of the DK'Tronics "all in one" Manual which covers every interface DK'Tronics produced (with the exception of the RTC) and was supplied no matter which one you had actually bought.

http://www.cpcwiki.eu/index.php/Dk%27tronics_Speech_Synthesizer#Downloads

And apologies for the quality, it's not great, but neither is the original. They went for the 8 Pin Dot Matrix look.

Bryce.

nocash

Hi Bryce! Supercool, fantastic. Thanks! Great to know about the Dk'tronics OSC, SBY, LRQ pins. The LRQ goes to an OR-gate? How strange is that? I would have assumed it'd go to something with tristate output and /OE. Anyways, doesn't seem to be an important feature. And, yeah, drawing an entire schematic would be a pain.

I've also had a closer look at the photos of the TMPI thing,
http://cpcwiki.eu/index.php/TMPI_speech_synthesizer
which uses a MEA8000 speech synthesizer chip, which contains an internal 3.84MHz oscillator. But it doesn't use that oscillator, instead, its CLK IN pin connects to Pin50 of the expansion port. So, like the Dk'tronics, it's driven at 4MHz.

Hey, only for the Amstrad SSA-1 it's still unknown if it's using 3.12MHz, 4MHz, or something different. Can't somebody open it and make a hires-picture? Or just write down the part-number printed on the oscillator (the big orange rectangular thing, close to the middle of the mainboard).

nocash

> I've scanned in the DK'Tronics user manual and uploaded it
Cool. I like this sentence best,
  "Also the program must find out when the speech chip has finished
  saying each allophone by reading from I/O locations &FBFE and
  waiting until its value is less than 128."
Sounds as if Dk'tronics guys didn't realize the difference between LRQ and SBY at all :-) Or they just didn't wanted to confuse the users about too many details :-)

Devilmarkus

Is here really nobody who owns an Amstrad SSA-1 speech?
I need the read port values before, during and after talking.
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Gryzor

I do. Tomorrow morning I'll go to my mother's and try to locate it...

Powered by SMFPacks Menu Editor Mod