updated info from "bonus" material for the PCB I bought to decap/dump the MB8841 CPU

This commit is contained in:
Brian Troha 2008-08-02 17:18:47 +00:00
parent 14f225e1d3
commit 12b53262fc

View File

@ -1,6 +1,17 @@
/*************************************************************************** /***************************************************************************
Sun Electronics Kangaroo hardware Sun Electronics hardware:
TVG-1-CPU-B
2 x Z80
AY-3-9810
8-way DipSwitch
Service Switch
Program ROMS (both Main & Sound)
MB8841 (at least for Kangaroo)
TVG-1-VIDEO-B
10MHz OSC
Graphic ROMS
driver by Ville Laitinen driver by Ville Laitinen
@ -69,6 +80,65 @@
(CPU#0) standard IM 1 interrupt mode (rst #38 every vblank) (CPU#0) standard IM 1 interrupt mode (rst #38 every vblank)
(CPU#1) same here (CPU#1) same here
Kangaroo Memory Map
HEX R/W D7 D6 D5 D4 D3 D2 D2 D0 function
------------ Game Microprocessor Memory Space (Z80 - IC15) --------------
0000-5FFF R D D D D D D D D Z80 24K Program ROM
E000-E3FF R/W D D D D D D D D 1K Working RAM
E400-E400 R D D D D D D D D Option Switch (DSW0 8 way dipswitch)
E800 W D D D D D D D D Low Byte\ Start Address of Data in Pictures ROM for DMA
E801 W D D D D D D D D High Byte/
E802 W D D D D D D D D Low Byte\ Start Address in Bit Map RAM (where picture is to be written) During DMA
E803 W D D D D D D D D High Byte/
E804 W D D D D D D D D Low Byte\ Picture Size for DMA and DMA Start
E805 W D D D D D D D D High Byte/
E806 W D D D D D D D D Vertical Start Address in Bit Map
E807 W D D D D D D D D Horizontal Start Address in Bit Map
E808 W D D Bank Select Latch
E809 W D D D D D D A & B Bit Map Control Latch (A=playfield, B=motion)
E80A W D D D D D D Color Shading Latch
EC00 W D D D D D D D D Sound DATA to Sound Microprocessor
EC00 R D Utility Coin Switch
EC00 R D 1 Player Start
EC00 R D 2 Player Start
EC00 R D Left Coin Input
EC00 R D Right Coin Input
ED00 W D Coin Counter 1
ED00 W D Coin Counter 2 (European games)
ED00 R D Player 1 Right
ED00 R D Player 1 Left
ED00 R D Player 1 Up
ED00 R D Player 1 Down
ED00 R D Player 1 Punch
EE00 R D Player 2 Right
EE00 R D Player 2 Left
EE00 R D Player 2 Up
EE00 R D Player 2 Down
EE00 R D Player 2 Punch
EFxx-EFxx W D D D D Output to Custom MB8841 Microcomputer
EFxx-EFxx R D D D D Input from Custom MB8841 Microcomputer
------------ Sound Microprocessor Memory Space (Z80 - IC34) --------------
0000-0FFF R D D D D D D D D Z80 4K Program ROM
4000-43FF R/W D D D D D D D D 1K Working RAM
6000 R D D D D D D D D Read DATA from Game Microprocessor
7000 W D D D D D D D D Write to Sound Chip (GI-AY-3-9810 - IC50)
8000 W D D D D D D D D Read from Sound Chip
**************************************************************************** ****************************************************************************
In test mode, to test sound press 1 and 2 player start simultaneously. In test mode, to test sound press 1 and 2 player start simultaneously.
@ -78,8 +148,8 @@
resetting resetting
TODO: TODO:
- There is a custom microcontroller on the original Kangaroo board which is - There is a custom MB8841 microcontroller on the original Kangaroo board which
not emulated. This MIGHT cause some problems, but we don't know of any. is not emulated. This MIGHT cause some problems, but we don't know of any.
***************************************************************************/ ***************************************************************************/
@ -145,7 +215,7 @@ static MACHINE_RESET( kangaroo )
* *
*************************************/ *************************************/
/* I have no idea what the security chip is nor whether it really does, /* The security chip is a MB8841 with 2K internal rom. Currently it's unknown what it really does,
this just seems to do the trick -V- this just seems to do the trick -V-
*/ */
@ -436,28 +506,28 @@ ROM_END
ROM_START( kangaroo ) ROM_START( kangaroo )
ROM_REGION( 0x14000, "main", 0 ) ROM_REGION( 0x14000, "main", 0 ) /* On TVG-1-CPU-B board */
ROM_LOAD( "tvg_75.0", 0x0000, 0x1000, CRC(0d18c581) SHA1(0e0f89d644b79e887c53e5294783843ca7e875ba) ) ROM_LOAD( "tvg_75.0", 0x0000, 0x1000, CRC(0d18c581) SHA1(0e0f89d644b79e887c53e5294783843ca7e875ba) ) /* IC7 */
ROM_LOAD( "tvg_76.1", 0x1000, 0x1000, CRC(5978d37a) SHA1(684c1092de4a0927a03752903c86c3bbe99e868a) ) ROM_LOAD( "tvg_76.1", 0x1000, 0x1000, CRC(5978d37a) SHA1(684c1092de4a0927a03752903c86c3bbe99e868a) ) /* IC8 */
ROM_LOAD( "tvg_77.2", 0x2000, 0x1000, CRC(522d1097) SHA1(09fe627a46d32df2e098d9fad7757f9d61bef41f) ) ROM_LOAD( "tvg_77.2", 0x2000, 0x1000, CRC(522d1097) SHA1(09fe627a46d32df2e098d9fad7757f9d61bef41f) ) /* IC9 */
ROM_LOAD( "tvg_78.3", 0x3000, 0x1000, CRC(063da970) SHA1(582ff21dd46c651f07a4846e0f8a7544a5891988) ) ROM_LOAD( "tvg_78.3", 0x3000, 0x1000, CRC(063da970) SHA1(582ff21dd46c651f07a4846e0f8a7544a5891988) ) /* IC10 */
ROM_LOAD( "tvg_79.4", 0x4000, 0x1000, CRC(9e5cf8ca) SHA1(015387f038c5670f88c9b22453d074bd9b2a129d) ) ROM_LOAD( "tvg_79.4", 0x4000, 0x1000, CRC(9e5cf8ca) SHA1(015387f038c5670f88c9b22453d074bd9b2a129d) ) /* IC16 */
ROM_LOAD( "tvg_80.5", 0x5000, 0x1000, CRC(2fc18049) SHA1(31fcac8eb660739a1672346136a1581a5ef20325) ) ROM_LOAD( "tvg_80.5", 0x5000, 0x1000, CRC(2fc18049) SHA1(31fcac8eb660739a1672346136a1581a5ef20325) ) /* IC17 */
ROM_REGION( 0x10000, "audio", 0 ) ROM_REGION( 0x10000, "audio", 0 ) /* On TVG-1-CPU-B board */
ROM_LOAD( "tvg_81.8", 0x0000, 0x1000, CRC(fb449bfd) SHA1(f593a0339f47e121736a927587132aeb52704557) ) ROM_LOAD( "tvg_81.8", 0x0000, 0x1000, CRC(fb449bfd) SHA1(f593a0339f47e121736a927587132aeb52704557) ) /* IC24 */
ROM_REGION( 0x0800, "mcu", 0 ) /* code for the 8841 custom MCU */ ROM_REGION( 0x0800, "mcu", 0 ) /* internal ROM from the 8841 custom MCU */
ROM_LOAD( "8841.rom", 0x0000, 0x0800, NO_DUMP ) ROM_LOAD( "mb8841.ic29", 0x0000, 0x0800, NO_DUMP )
ROM_REGION( 0x0800, "user1", 0 ) /* data for the 8841 custom MCU */ ROM_REGION( 0x0800, "user1", 0 ) /* data for the 8841 custom MCU */
ROM_LOAD( "tvg_82.12", 0x0000, 0x0800, CRC(57766f69) SHA1(94a7a557d8325799523d5e1a88653a9a3fbe34f9) ) ROM_LOAD( "tvg_82.12", 0x0000, 0x0800, CRC(57766f69) SHA1(94a7a557d8325799523d5e1a88653a9a3fbe34f9) ) /* IC28 */
ROM_REGION( 0x4000, "gfx1", 0 ) ROM_REGION( 0x4000, "gfx1", 0 ) /* On TVG-1-VIDEO-B board */
ROM_LOAD( "tvg_83.v0", 0x0000, 0x1000, CRC(c0446ca6) SHA1(fca6ba565051337c0198c93b7b8477632e0dd0b6) ) ROM_LOAD( "tvg_83.v0", 0x0000, 0x1000, CRC(c0446ca6) SHA1(fca6ba565051337c0198c93b7b8477632e0dd0b6) ) /* IC76 */
ROM_LOAD( "tvg_85.v2", 0x1000, 0x1000, CRC(72c52695) SHA1(87f4715fbb7d509bd9cc4e71e2afb0d475bbac13) ) ROM_LOAD( "tvg_85.v2", 0x1000, 0x1000, CRC(72c52695) SHA1(87f4715fbb7d509bd9cc4e71e2afb0d475bbac13) ) /* IC77 */
ROM_LOAD( "tvg_84.v1", 0x2000, 0x1000, CRC(e4cb26c2) SHA1(5016db9d48fdcfb757618659d063b90862eb0e90) ) ROM_LOAD( "tvg_84.v1", 0x2000, 0x1000, CRC(e4cb26c2) SHA1(5016db9d48fdcfb757618659d063b90862eb0e90) ) /* IC52 */
ROM_LOAD( "tvg_86.v3", 0x3000, 0x1000, CRC(9e6a599f) SHA1(76b4eddb4efcd8189d8cc5962d8497e82885f212) ) ROM_LOAD( "tvg_86.v3", 0x3000, 0x1000, CRC(9e6a599f) SHA1(76b4eddb4efcd8189d8cc5962d8497e82885f212) ) /* IC53 */
ROM_END ROM_END
@ -473,8 +543,8 @@ ROM_START( kangaroa )
ROM_REGION( 0x10000, "audio", 0 ) ROM_REGION( 0x10000, "audio", 0 )
ROM_LOAD( "136008-107.ic24", 0x0000, 0x1000, CRC(fb449bfd) SHA1(f593a0339f47e121736a927587132aeb52704557) ) ROM_LOAD( "136008-107.ic24", 0x0000, 0x1000, CRC(fb449bfd) SHA1(f593a0339f47e121736a927587132aeb52704557) )
ROM_REGION( 0x0800, "mcu", 0 ) /* code for the 8841 custom MCU */ ROM_REGION( 0x0800, "mcu", 0 ) /* internal ROM from the 8841 custom MCU */
ROM_LOAD( "8841.rom", 0x0000, 0x0800, NO_DUMP ) ROM_LOAD( "mb8841.ic29", 0x0000, 0x0800, NO_DUMP )
ROM_REGION( 0x0800, "user1", 0 ) /* data for the 8841 custom MCU */ ROM_REGION( 0x0800, "user1", 0 ) /* data for the 8841 custom MCU */
ROM_LOAD( "136008-112.ic28", 0x0000, 0x0800, CRC(57766f69) SHA1(94a7a557d8325799523d5e1a88653a9a3fbe34f9) ) ROM_LOAD( "136008-112.ic28", 0x0000, 0x0800, CRC(57766f69) SHA1(94a7a557d8325799523d5e1a88653a9a3fbe34f9) )