Home Page
Posted By: Golden Child apple2 willy byte voice - 05/07/22 04:10 PM
I got interested in playing some Willy Byte, and was wondering about the voice.





You can hear the first voice phrase at the 3:30 mark of the video, and at the 3:59 mark for the second phrase.

If I do a "wp c440,8,rw" in the debugger, I can see it writing a few values to the SC-01 on the mockingboard.


Code
 786A  sta $c48c                                           8D 8C C4
 786D  lda #$80                                            A9 80
 786F  sta $c443                                           8D 43 C4
 7872  lda #$c0                                            A9 C0
 7874  sta $c440                                           8D 40 C4
 7877  lda #$70                                            A9 70
 7879  sta $c443                                           8D 43 C4
 787C  lda #$ff                                            A9 FF



>wp c440,8,rw
Watchpoint 1 set
>g
Stopped at watchpoint 1 writing 80 to C443 (PC=0000B913)
>g
Stopped at watchpoint 1 writing C0 to C440 (PC=00007872)
>g
Stopped at watchpoint 1 writing 70 to C443 (PC=00007877)
>g




It's not a big deal, just curious.

As far as I know, it just says "Willy Byte in the Digital Dimension" and "Prepare to enter the digital dimension".

I like the mockingboard sound, the opening screen music and the map screen music reminds me of Wendy Carlos Switched-on Bach.


Anyway, I made a couple of little discoveries, CTRL+D and CTRL+F in the CPU screen will clear the last entry and take it out of PROG mode.


==============================


The Power and Clock minigames from Willy Byte in the Digital Dimension are quite challenging.

The Power minigame is a qbert like game, it's pretty hard but the little electric bolts will always appear from the other half of the screen so they have some predictability. You can also wrap around the screen horizontally, and 8 directional jumping is allowed, but you're also allowed to jump off into space.

The goal of the clock minigame (as far as I can tell) is to climb up to the top of the screen and press the button, which presumably resets the clock.

From the manual:

SPECIAL FEATURES OF THE POWER ROOM
CTRL P (Program) - Allows you to construct your own pattern using hexadecimal code.
Here’s a brief description of how this works:

For each group of 4 power pads, 0 0 0 0, one value is given to denote which of
those pads are present and which are not. In hexadecimal, we count from 0-15.
using the standard decimals 0-9 followed by the six (hex) alpha characters, A-F.

The row of numbers that appears across the top of the screen in Program mode
shows the binary value for each vertical column of pads. Hexadecimal is just a
faster, simpler way to represent binary patterns in two places, with the “1's” place
representing the 8-4-2-1 pattern and the “10's” place representing the 80-40-20-10
pattern. Thus, by using both places together, you are able to control two
congruous patterns of 4 at once, which is actually just one larger pattern of 8. This
pattern of eight “on” or “off” pads symbolizes the same kind of organization as
one byte (eight bits) of information inside the computer.

PRESSING CTRL P AGAIN RETURNS YOU TO GAME PLAY.

NOTE: IT IS POSSIBLE TO CONSTRUCT SITUATIONS WHICH ARE IMPOSSIBLE TO PLAY
THROUGH. IF THIS OCCURS, PRESS CONTROL P AGAIN AND ENTER A MORE FEASIBLE
PATTERN.

CTRL N - Allows you to move forward and backward (using the left and right arrow keys)
to view and play higher (or lower) levels.

(The levels go from 000 to 029 and the level number is shown in the upper right of the screen.)

PRESSING CTRL N AGAIN RETURNS YOU TO GAME PLAY.

TO EXIT POWER ROOM AT WILL: Press CONTROL X
TO LEAVE DEMO: Press the JOYSTICK BUTTON or the SPACE BAR
TO SWITCH TO KEYBOARD CONTROL: Press CONTROL K
TO SWITCH TO JOYSTICK CONTROL: Press CONTROL J
TO RESTART GAME: Press CONTROL R
TO TURN SOUND ON/OFF: Press CONTROL S

Not listed in manual:

On CPU screen, CTRL+D will clear the last program entry. So if you hit a button by mistake, CTRL+D will clear it.

Also on CPU screen CTRL+F makes a musical sound in alternating left and right channels and takes you out of PROG mode.
Posted By: R. Belmont Re: apple2 willy byte voice - 05/07/22 07:06 PM
As per the video you posted, Willy Byte wants the SSI-263 (SC-02), not the SC-01.
Posted By: Golden Child Re: apple2 willy byte voice - 05/08/22 05:35 PM
That explains it, and the SC-01 and the SC-02 are similar but not compatible.

I was able to find a video that has the mockingboard speech, and Willy will say "Oh wow" "Alright" and "Help".

Hex Luthor will say "Greetings computer nerds". (at the 18:15 mark) I thought this was pretty funny.

"prepare to enter keyboard, ram, power disk drive"
"prepare to enter the digital dimension"
"willy byte in the digital dimension"

(playthrough starts at 10:56)

Posted By: peter ferrie Re: apple2 willy byte voice - 05/09/22 05:28 PM
The AppleWin emulator supports both speech chips, and I verified in Total Replay that the speech works.
I'm intending to add cheats because the game is just too hard.
Posted By: R. Belmont Re: apple2 willy byte voice - 05/09/22 05:39 PM
For a very loose definition of "supports", but yes smile
Posted By: Golden Child Re: apple2 willy byte voice - 05/10/22 06:25 AM
I thought I'd fire up Apple Cider Spider for a spin and read somewhere that it supports the mockingboard. I was able to find a manual on archive and you have to type CTRL+B on the title screen where it'll ask you for the mockingboard slot #.
Posted By: R. Belmont Re: apple2 willy byte voice - 05/10/22 02:49 PM
That's why Total Replay is nice - it auto-patches games to enable Mockingboard support if you have one.
Posted By: Golden Child Re: apple2 willy byte voice - 05/10/22 03:29 PM
Total Replay is one of the greatest things since sliced bread. (next to Mame of course 8-)

You still have to hit CTRL+B for Apple Cider Spider Mockingboard sound. In some ways, I prefer the apple speaker sound effects of Apple Cider Spider.

[Linked Image from i.imgur.com]
[Linked Image from i.imgur.com]


Total Replay/Battle Cruiser hangs on launch if mockingboard present. Battle Cruiser runs fine without mockingboard.

I think Battle Cruiser was also known as Night Flight.

[Linked Image from i.imgur.com]

0860 sta $f9
0862 jsr $b000
0865 lda $ff
0867 bne $0865 << hangs up here
0869 jmp $8d70
086C lda #$02


MAME debugger version 0.240 (mame0240-126-g38c1791d77
Currently targeting apple2e (Apple //e)
>g
>b@ff=0

Once it hangs up, if you set memory location FF to zero, it will be able to go in game, but it seems like a lot of the sounds are missing.


Interestingly, if you try to run Night Flight, it seems to run just fine, with more sound effects.

[Linked Image from i.imgur.com]


I was trying to decipher how the mockingboard works and it's made a bit more complicated by the fact that there's a bunch of different versions.
Posted By: peter ferrie Re: apple2 willy byte voice - 05/15/22 11:36 PM
Apple Cider Spider should play through the Mockinbgoard without Ctrl-B. It definitely does in the current builds. Maybe I fixed something since v4.
Battle Cruiser requires a speech chip, the same as Rescue Raiders. The TR version of both will disable the Mockingboard if the speech chip isn't found.
If your version hangs then I must have fixed it in the meantime. I just checked the latest build and both run as expected.
Posted By: peter ferrie Re: apple2 willy byte voice - 05/15/22 11:44 PM
Night Flight is the game that became Battle Cruiser after adding Mockingboard support, and maybe some other features.
Posted By: Golden Child Re: apple2 willy byte voice - 05/19/22 12:57 AM
Cool, I'm going to have to figure out how to build total replay on linux so I can try the latest.


One weird thing, I was trying Gumball (having watched a video on youtube) and when playing with a joystick I can speed up production with joystick up but can't slow down production with joystick down.

If I hit CTRL+K I can do up/down with (E and C) left/right (S and F) D to center, Return to toggle crosshair, Space to flip valves.
CTRL+J for joystick.


Running applewin under linux with wine, the joystick can do up/down, but under mame only up seems to work with gumball.
Posted By: Golden Child Re: apple2 willy byte voice - 05/19/22 01:09 PM
[Linked Image from i.imgur.com]

Finally figured out how to zap the gumball bombs.

I can't find any manual on the net, but this is what I figured out:

CTRL+K for keyboard, S/F for left right, D for stop, E/C for factory speed up/down, Return for crosshairs, Space for flip valves
CTRL+J for joystick, button 2 for crosshairs, button 1 to flip valves.

When an exploding gumball shows up there's a warning sound, locate the bomb, bring up the crosshairs and put the crosshairs in contact with the bomb and it will be zapped.

The exploding gumballs don't show up until Thursday.

The crosshairs initially appear over the corkscrew so if you can make the bomb go up the corkscrew you can just activate the crosshairs.
There's also a flashing countdown timer for the bomb in the upper left and you may be able to wait for it to go up the corkscrew.

A pretty good strategy is to use the left chutes as much as possible early on as you can clear the gumball out quickly. If you let it take the long path you have to keep an eye on it and it gets hard to track it with the incoming gumballs. You have to ramp up the speed to keep up with the quota, but don't set it too high that you make mistakes and see the quota get bigger.



edit: I thought I was doing pretty good to get to thursday, check out this longplay

Posted By: Golden Child Re: apple2 willy byte voice - 05/19/22 07:49 PM
Looking at the joystick reading code in Gumball,

finding it by watching reads from c065 (paddle1)

wp c065,1,r

This leads to the reading routine at 69d8:
Code
 69D8  lda #$00                                            A9 00
 69DA  sta $e5                                             85 E5
 69DC  sta <HGR.PAGE                                       85 E6
 69DE  lda PTRIG                                           AD 70 C0
 69E1  ldx #$01                                            A2 01
 69E3  lda $c064, x                                        BD 64 C0
 69E6  bpl $69fb                                           10 13
 69E8  inc $e5, x                                          F6 E5
 69EA  dex                                                 CA
 69EB  bpl $69e3                                           10 F6
 69ED  lda PADDL0                                          AD 64 C0
 69F0  ora PADDL1                                          0D 65 C0
 69F3  bpl $69fe                                           10 09
 69F5  lda $e5                                             A5 E5
 69F7  ora $e6                                             05 E6
 69F9  bpl $69e1                                           10 E6
 69FB  nop                                                 EA
 69FC  bpl $69ea                                           10 EC
 69FE  lda $e8                                             A5 E8
 6A00  bpl $6a0d                                           10 0B
 6A02  lda #$3f                                            A9 3F
 6A04  sec                                                 38
 6A05  sbc $e5                                             E5 E5
 6A07  bpl $6a0b                                           10 02
 6A09  lda #$00                                            A9 00
 6A0B  sta $e5                                             85 E5
 6A0D  lda $e9                                             A5 E9
 6A0F  bpl $6a1c                                           10 0B
 6A11  lda #$46                                            A9 46
 6A13  sec                                                 38
 6A14  sbc $e6                                             E5 E6
 6A16  bpl $6a1a                                           10 02
 6A18  lda #$00                                            A9 00
 6A1A  sta <HGR.PAGE                                       85 E6
 6A1C  rts                                                 60

Code
 6EC4  jsr $69d8                                           20 D8 69
 6EC7  lda <HGR.PAGE                                       A5 E6
 6EC9  cmp #$0c                                            C9 0C
 6ECB  bcc $6ed4                                           90 07
 6ECD  cmp #$38                                            C9 38              <<< compares to 38
 6ECF  bcc $6f17                                           90 46


So if I put a breakpoint to show the values being returned:

bp 6a1c,1,{printf "e5=%x e6=%x",b@e5,b@e6;g}


maximum e5 value is 34 (joystick x)

x max, y centered
e5=34 e6=1B
e5=34 e6=1B


maximum e6 value is 35 (joystick y)

x centered, y max
e5=1A e6=35
e5=1A e6=35


Now If I patch the comparison to 35 then the joystick down works

6ECD cmp #$38 C9 38 <<< compares to 38


6ECD cmp #$35 C9 38 <<< compares to 35 now the joystick y down works
Posted By: Golden Child Re: apple2 willy byte voice - 05/21/22 04:50 PM
Got past friday... and wanted to see the Z0DWARE message:

© Forums