neophob / wpc-emu

Williams Pinball machine emulator, Play it @
https://playfield.dev
Apache License 2.0
70 stars 12 forks source link

Implement Bootup Soundboard communication #32

Open neophob opened 5 years ago

neophob commented 5 years ago

During bootup (at least WPC-95 boards) the CPU board and the audio board communicate. One easy way to see if the communication works is when you start Monster Bash, when in attraction mode open cabinet door. then the DMD display will show different message, among others the sound board version.

Pinmame implement this properly (because Pinmame implement the sound board on CPU level)

Start Pinmame using ./mame64 -window -c -debug mb_10. Data dumps until "Credits" screen is visible.

WPC_SOUND_CONTROL_STATUS / 0x3FDD

READ

Enable debug mode using wp 16349,1,r:

MAME debugger version 0.202 (unknown)
Currently targeting mb_10 (Monster Bash (1.0))
>wp 16349,1,r
Watchpoint 1 set
Stopped at watchpoint 1 reading 00 from 00006349 (PC=6347)
Stopped at watchpoint 1 reading B6 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 01 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 00 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 54 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 07 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading C2 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading BD from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 54 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 4A from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 21 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading CC from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 4A from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 05 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 86 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 02 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 96 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading BD from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 30 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 00 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 50 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 4D from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 45 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 53 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 0D from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 78 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 39 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 00 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 0B from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 00 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 00 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 2E from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading F8 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading EA from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 96 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FB from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading DE from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FC from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 02 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading F1 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 06 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading C2 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 80 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 0B from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 0F from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 04 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 06 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 03 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading BE from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006349 (PC=8F5A)

WRITE

-> No write command

WPC_SOUND_DATA / 0x3FDC

READ

Enable debug mode using wp 16348,1,r:

MAME debugger version 0.202 (unknown)
Currently targeting mb_10 (Monster Bash (1.0))
>wp 16348,1,r
Watchpoint 1 set
Stopped at watchpoint 1 reading 25 from 00006348 (PC=6347)
Stopped at watchpoint 1 reading 12 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 00 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 25 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 45 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 11 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading BD from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading A4 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 20 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 00 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading BA from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 40 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 0C from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 2B from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 66 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading DC from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading E6 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 36 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading C0 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FE from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 20 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 20 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 47 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 52 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading A0 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 00 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 39 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 10 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 15 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 03 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 7C from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 87 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading E5 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading D5 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FB from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 2F from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 00 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 01 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading E9 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 0A from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 8E from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading CF from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 15 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 03 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 8A from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 04 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 07 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading 41 from 00006348 (PC=8F56)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)

WRITE

-> No write command

neophob commented 5 years ago

Combined READ:


>wp 16348,1,r       WPC_SOUND_DATA
Watchpoint 1 set
>wp 16349,1,r       WPC_SOUND_CONTROL_STATUS
Watchpoint 2 set
Stopped at watchpoint 1 reading 25 from 00006348 (PC=6347)
Stopped at watchpoint 2 reading 00 from 00006349 (PC=6347)
Stopped at watchpoint 1 reading 12 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading B6 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 00 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 01 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 25 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 00 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 45 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 54 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 11 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 07 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading BD from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading C2 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading A4 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading BD from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 20 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 54 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 00 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 4A from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading BA from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 21 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 40 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading CC from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 0C from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 4A from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 2B from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 05 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 66 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 86 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading DC from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 02 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading E6 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 96 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 36 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading BD from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading C0 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 30 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FE from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 00 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 20 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 50 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 20 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 4D from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 47 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 45 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 52 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 53 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading A0 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 0D from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 00 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 78 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 39 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 39 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 10 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 00 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 15 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 0B from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 00 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 03 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 00 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 7C from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 2E from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 87 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading F8 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading E5 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading EA from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading D5 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 96 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FB from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FB from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 2F from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading DE from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 00 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FC from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 01 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 02 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading E9 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading F1 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 0A from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 06 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 8E from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading C2 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading CF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 80 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 15 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 0B from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 03 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 0F from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 8A from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 04 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 04 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 06 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 07 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading 03 from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading 41 from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading BE from 00006349 (PC=8F5A)
Stopped at watchpoint 1 reading FF from 00006348 (PC=8F56)
Stopped at watchpoint 2 reading FF from 00006349 (PC=8F5A)
neophob commented 3 years ago

image mame does not support this either, pinmame?