diff options
Diffstat (limited to 'src/mame/drivers/dkmb.cpp')
-rw-r--r-- | src/mame/drivers/dkmb.cpp | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/src/mame/drivers/dkmb.cpp b/src/mame/drivers/dkmb.cpp deleted file mode 100644 index 02684188d89..00000000000 --- a/src/mame/drivers/dkmb.cpp +++ /dev/null @@ -1,158 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:David Haywood - -/* -Donkey Kong / Donkey Kong Jr / Mario Bros -Namco / Nintendo / Cosmodog 2003 - -PCB LUNA REV. 1.0 (C) 2003 COSMODOG, LTD. - -Maincpu: Motorola MPC603RRX266LC -XTAL: SG-8002CA @ 75 MHz (not clearly readable) -Video: Xilinx Spartan XC2S200 FPGA -Memory: 2 x 48LC2M32B2 SDR SDRAM -PIC12C508 Microcontroller - -Some interesting notes from the dumper: -* Donkey Kong and Donkey Kong Jr are vertical games, while Mario Bros is originally Horizontal. - This is achieved on this board by cropping Mario Bros slightly on the sides, while the life bar BG area is compressed slightly. -* It appears that the program ROM is responsible for programming the FPGA bitstream. - Sound effects are supported as samples and triggers are caught by the emulator. -* The continue features are not implemented through modifications of the game, but rather through hacks applied with the emulator. - I've had it glitch out and give me a 'Continue?' screen while I still had remaining lives in Donkey Kong. -*/ - - - -#include "emu.h" -#include "cpu/pic16c5x/pic16c5x.h" -#include "cpu/powerpc/ppc.h" -#include "emupal.h" -#include "screen.h" -#include "speaker.h" - -class dkmb_state : public driver_device -{ -public: - dkmb_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_framebuffer(*this, "framebuffer") - { } - - void dkmb(machine_config &config); - - DECLARE_READ64_MEMBER(unk_2060000_r); - DECLARE_READ64_MEMBER(unk_20c0010_r); - -protected: - virtual void machine_start() override; - -private: - required_device<cpu_device> m_maincpu; - required_shared_ptr<uint64_t> m_framebuffer; - - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - - void main_map(address_map &map); -}; - - -void dkmb_state::machine_start() -{ -} - -uint32_t dkmb_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) -{ - int count = 0; - for (int y = 0; y < 256; y++) - { - uint32_t* dst = &bitmap.pix32(y); - - for (int x = 0; x < 1024 / 2; x++) - { - uint64_t val = m_framebuffer[count]; - - dst[(x * 2) + 0] = (val >> 32) & 0x00ffffff; - dst[(x * 2) + 1] = (val >> 0) & 0x00ffffff; - - count++; - } - } - - return 0; -} - - -READ64_MEMBER(dkmb_state::unk_2060000_r) -{ - return ((u64)machine().rand()) << 56; -} - -READ64_MEMBER(dkmb_state::unk_20c0010_r) -{ - return ((u64)machine().rand()) << 56; -} - -void dkmb_state::main_map(address_map &map) -{ - map(0x00000000, 0x000fffff).ram(); // copies code to RAM and runs it from here - map(0x00100000, 0x001fffff).ram().share("framebuffer"); // seems to be a 1024x256 ARGB bitmap, with 320 entries used for each line and 224 lines, so framebuffer? (but then gets overwritten with data not of that format?) - - map(0x00e00000, 0x00ffffff).ram(); // size uncertain - - map(0x02080000, 0x02080007).ram(); // write - map(0x02060000, 0x02060007).r(FUNC(dkmb_state::unk_2060000_r)); // read - map(0x020c0000, 0x020c0007).ram(); // write - map(0x020c0010, 0x020c0017).r(FUNC(dkmb_state::unk_20c0010_r)); // read - - map(0x04090000, 0x0409ffff).ram(); // size uncertain - - // map(0xff000000, 0xff0fffff) // looks like flash ROM access, mirror of main ROM or just checking if extra exist? - // map(0xff800000, 0xff8fffff) // looks like flash ROM access, mirror of main ROM or just checking if extra exist? - - map(0xffe00000, 0xffffffff).rom().region("maincpu", 0); -} - - -static INPUT_PORTS_START( dkmb ) - -INPUT_PORTS_END - -void dkmb_state::dkmb(machine_config &config) -{ - PPC603R(config, m_maincpu, 75'000'000); // Actually MPC603RRX266LC - m_maincpu->set_addrmap(AS_PROGRAM, &dkmb_state::main_map); - - PIC16C56(config, "pic", 4'000'000); // Actually PIC12C508, clock not verified - - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); // wrong - screen.set_refresh_hz(60); - screen.set_screen_update(FUNC(dkmb_state::screen_update)); - screen.set_size(1024, 256); - screen.set_visarea_full(); - - PALETTE(config, "palette").set_entries(65536); - - SPEAKER(config, "lspeaker").front_left(); - SPEAKER(config, "rspeaker").front_right(); -} - - -ROM_START( dkmb ) - ROM_REGION64_BE(0x200000, "maincpu", 0) - ROM_LOAD("donkeykong.u14", 0x00000, 0x200000, CRC(7895fe2d) SHA1(134174c02ce3c5d28a890ca57dc36677873b1dc8) ) // what type of ROM is this? - - ROM_REGION( 0x1000, "pic", 0 ) - /* - Intel HEX format dump. When converted to binary using - "srec_cat.exe 12c508.u12 -intel -o 12c508.bin -binary" - this contains only the string - "Copyright 2001 Core Technologies why are you looking in here?" - in the first 0x80 bytes, which is the unprotected area of the PIC. - the rest is blank, therefore protected and a bad dump - */ - ROM_LOAD("12c508.u12", 0x000, 0x09db, BAD_DUMP CRC(3adb3e33) SHA1(36a96886d83b64633eea83e57bdfa8a20c6d4f6a) ) -ROM_END - -GAME( 2003, dkmb, 0, dkmb, dkmb, dkmb_state, empty_init, ROT270, "Namco / Nintendo / Cosmodog", "Donkey Kong / Donkey Kong Jr / Mario Bros", MACHINE_IS_SKELETON ) |