summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/acitya.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/acitya.cpp')
-rw-r--r--src/mame/machine/acitya.cpp204
1 files changed, 0 insertions, 204 deletions
diff --git a/src/mame/machine/acitya.cpp b/src/mame/machine/acitya.cpp
deleted file mode 100644
index 68b7aec03e8..00000000000
--- a/src/mame/machine/acitya.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Widel
-/***************************************************************************
-
- machine.c
-
-Same Epos board as usual(theglobp,beastf,street heat), see theglobp.c for hardware documentation. This is fairly easy to decrypt since it has consecutive bytes with the same algorithym. There are 4 different algorithyms. One consists almost entirely of text, one contains the majority of code and the remaining 2 are not used much and are therefore the most difficult. It is however difficult to decrypt to rom. The data for the coin sound is actually program code in a different phase. You need to move the sound tables and add a rom to get it to run without the daughterboard.
-
-acitya contains a bug with the insurance in blackjack. It's impossible to collect, so it's likely that acitya is earlier than bwcasino.
-
-I don't think this game is a gambling game. For one thing there's no real output hardware on a pacman board and the epos daughterboard doesn't contain any either.
-
-David Widel d_widel@hotmail.com
-
-***************************************************************************/
-
-#include "emu.h"
-#include "includes/pacman.h"
-
-
-void pacman_state::acitya_decrypt_rom_8()
-{
- int oldbyte,inverted_oldbyte,newbyte;
- int mem;
- uint8_t *RAM;
-
- RAM = memregion("maincpu")->base();
-
-
- for (mem=0;mem<0x4000;mem++)
- {
- oldbyte = RAM[mem];
- inverted_oldbyte = ~oldbyte;
-
- /* Note: D2 is inverted and connected to D1, D5 is inverted and
- connected to D0. The other six data bits are converted by a
- PAL10H8 driven by the counter. */
-
- /* Direct inversion */
- newbyte = (inverted_oldbyte & 0x80) >> 2;
- newbyte |= (oldbyte & 0x40) >> 0;
- newbyte |= (inverted_oldbyte & 0x20) >> 5;
- newbyte |= (inverted_oldbyte & 0x10) >> 1;
- newbyte |= (oldbyte & 0x08) << 1;
- newbyte |= (inverted_oldbyte & 0x04) >> 1;
- newbyte |= (oldbyte & 0x02) << 6;
- newbyte |= (inverted_oldbyte & 0x01) << 2;
-
- RAM[mem + 0x10000] = newbyte;
- }
-
- return;
-}
-
-
-void pacman_state::acitya_decrypt_rom_9()
-{
- int oldbyte,inverted_oldbyte,newbyte;
- int mem;
- uint8_t *RAM;
-
- RAM = memregion("maincpu")->base();
-
- for (mem=0;mem<0x4000;mem++)
- {
- oldbyte = RAM[mem];
- inverted_oldbyte = ~oldbyte;
-
- /* Note: D2 is inverted and connected to D1, D5 is inverted and
- connected to D0. The other six data bits are converted by a
- PAL10H8 driven by the counter. */
-
- /* Direct inversion */
- newbyte = (inverted_oldbyte & 0x80) >> 0;
- newbyte |= (oldbyte & 0x40) >> 0;
- newbyte |= (inverted_oldbyte & 0x20) >> 5;
- newbyte |= (oldbyte & 0x10) >> 1;
- newbyte |= (oldbyte & 0x08) << 1;
- newbyte |= (inverted_oldbyte & 0x04) >> 1;
- newbyte |= (inverted_oldbyte & 0x02) << 4;
- newbyte |= (inverted_oldbyte & 0x01) << 2;
- RAM[mem + 0x14000] = newbyte;
- }
-
- return;
-}
-
-void pacman_state::acitya_decrypt_rom_A()
-{
- int oldbyte,inverted_oldbyte,newbyte;
- int mem;
- uint8_t *RAM;
-
- RAM = memregion("maincpu")->base();
-
- for (mem=0;mem<0x4000;mem++)
- {
- oldbyte = RAM[mem];
- inverted_oldbyte = ~oldbyte;
-
- /* Note: D2 is inverted and connected to D1, D5 is inverted and
- connected to D0. The other six data bits are converted by a
- PAL10H8 driven by the counter. */
-
- newbyte = (inverted_oldbyte & 0x80) >> 2;
- newbyte |= (inverted_oldbyte & 0x40) >> 2;
- newbyte |= (inverted_oldbyte & 0x20) >> 5;
- newbyte |= (inverted_oldbyte & 0x10) >> 1;
-
- newbyte |= (inverted_oldbyte & 0x08) >> 1;
- newbyte |= (inverted_oldbyte & 0x04) >> 1;
- newbyte |= (oldbyte & 0x02) << 6;
- newbyte |= (oldbyte & 0x01) << 6;
- RAM[mem + 0x18000] = newbyte;
- }
-
- return;
-}
-
-void pacman_state::acitya_decrypt_rom_B()
-{
- int oldbyte,inverted_oldbyte,newbyte;
- int mem;
- uint8_t *RAM;
-
- RAM = memregion("maincpu")->base();
-
- for (mem=0;mem<0x4000;mem++)
- {
- oldbyte = RAM[mem];
- inverted_oldbyte = ~oldbyte;
-
- /* Note: D2 is inverted and connected to D1, D5 is inverted and
- connected to D0. The other six data bits are converted by a
- PAL10H8 driven by the counter. */
-
- /* Direct inversion */
- newbyte = (inverted_oldbyte & 0x80) >> 0;
- newbyte |= (inverted_oldbyte & 0x40) >> 2;
- newbyte |= (inverted_oldbyte & 0x20) >> 5;
- newbyte |= (oldbyte & 0x10) >> 1;
- newbyte |= (inverted_oldbyte & 0x08) >> 1;
- newbyte |= (inverted_oldbyte & 0x04) >> 1;
- newbyte |= (inverted_oldbyte & 0x02) << 4;
- newbyte |= (oldbyte & 0x01) << 6;
-
-
- RAM[mem + 0x1C000] = newbyte;
- }
-
- return;
-}
-
-
-READ8_MEMBER(pacman_state::acitya_decrypt_rom )
-{
- if (offset & 0x01)
- {
- m_counter = (m_counter - 1) & 0x0F;
- }
- else
- {
- m_counter = (m_counter + 1) & 0x0F;
- }
-
- switch(m_counter)
- {
- case 0x08: membank ("bank1")->set_entry (0); break;
- case 0x09: membank ("bank1")->set_entry (1); break;
- case 0x0A: membank ("bank1")->set_entry (2); break;
- case 0x0B: membank ("bank1")->set_entry (3); break;
- default:
- logerror("Invalid counter = %02X\n",m_counter);
- break;
- }
-
- return 0;
-}
-
-
-MACHINE_START_MEMBER(pacman_state,acitya)
-{
- uint8_t *RAM = memregion("maincpu")->base();
-
- /* While the PAL supports up to 16 decryption methods, only four
- are actually used in the PAL. Therefore, we'll take a little
- memory overhead and decrypt the ROMs using each method in advance. */
- acitya_decrypt_rom_8();
- acitya_decrypt_rom_9();
- acitya_decrypt_rom_A();
- acitya_decrypt_rom_B();
-
- membank("bank1")->configure_entries(0, 4, &RAM[0x10000], 0x4000);
-
- save_item(NAME(m_counter));
-}
-
-
-MACHINE_RESET_MEMBER(pacman_state,acitya)
-{
- /* The initial state of the counter is 0x0B */
- m_counter = 0x0B;
- membank("bank1")->set_entry(3);
-}