summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2021-01-25 18:29:50 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2021-01-25 18:29:50 +0100
commitf0da5c4dd6a493d9c7015aa276a8ab0eb6617e87 (patch)
tree44a09d31fee35f1d532799097437ef49e2a6cb6f
parentb4993412b912b6e2cc80026a91be61cacfca7ac8 (diff)
jungleyo.cpp: minor notes update
-rw-r--r--src/mame/drivers/jungleyo.cpp47
1 files changed, 46 insertions, 1 deletions
diff --git a/src/mame/drivers/jungleyo.cpp b/src/mame/drivers/jungleyo.cpp
index 5fbc5cd4600..eb87dc8cd84 100644
--- a/src/mame/drivers/jungleyo.cpp
+++ b/src/mame/drivers/jungleyo.cpp
@@ -54,6 +54,14 @@ TODO:
#include "speaker.h"
#include "tilemap.h"
+// configurable logging
+#define LOG_OUTPUTS (1U << 1)
+
+// #define VERBOSE (2)
+
+#include "logmacro.h"
+
+#define LOGOUTPUTS(...) LOGMASKED(LOG_OUTPUTS, __VA_ARGS__)
namespace {
@@ -76,6 +84,8 @@ protected:
virtual void video_start() override;
private:
+ void output_w(uint16_t data);
+
// video-related
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
@@ -95,6 +105,32 @@ private:
};
+void jungleyo_state::output_w(uint16_t data)
+{
+ // bit 15 ?
+ // bit 14 coin counter?
+ // bit 13 ?
+ // bit 12 ?
+ // bit 11 ?
+ // bit 10 ?
+ // bit 09 ?
+ // bit 08 ?
+ // bit 07 ?
+ // bit 06 ?
+ // bit 05 ?
+ // bit 04 ?
+ // bit 03 ?
+ // bit 02 ?
+ // bit 01 start lamp?
+ // bit 00 bet lamp?
+
+ machine().bookkeeping().coin_counter_w(0, BIT(data, 14));
+
+ if (data & 0xbfff)
+ LOGOUTPUTS("%s output_w: %04x\n", machine().describe_context(), data);
+}
+
+
TILE_GET_INFO_MEMBER(jungleyo_state::get_bg_tile_info)
{
uint16_t code = m_bg_videoram[tile_index];
@@ -141,7 +177,16 @@ void jungleyo_state::main_map(address_map &map)
map(0xa00310, 0xa00311).portr("IN0");
map(0xa0032a, 0xa0032b).portr("DSW12");
map(0xa0032c, 0xa0032d).portr("DSW34");
- map(0xa00689, 0xa00689).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xa00336, 0xa00337).w(FUNC(jungleyo_state::output_w)); // outputs? observed values: lots
+ map(0xa00689, 0xa00689).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // TODO: something's definitely wrong here, lots of errors in the log
+ //map(0xa0068a, 0xa0068b).nopw(); // observed values: 0x0101
+ //map(0xa0082e, 0xa0082f).nopw(); // observed values: 0x0000, 0x4000, 0x5900 (double up),
+ //map(0xa00830, 0xa00831).nopw(); // observed values: 0x0000 and 0x0007
+ //map(0xa00832, 0xa00833).nopw(); // tilemap priority ? observed values: 0x0000 and 0x0001
+ //map(0xa00aaa, 0xa00aab).nopw(); // observed values: 0x0000, this is written continuously
+ //map(0xa00d58, 0xa00d59).nopw(); // observed values: 0x0004
+ //map(0xa00e9a, 0xa00e9b).nopw(); // observed values: 0x0005
+ //map(0xa00fc6, 0xa00fc7).nopw(); // observed values: 0x0006
map(0xb00000, 0xb0ffff).ram();
map(0xb10000, 0xb1ffff).ram();
map(0xb20000, 0xb2ffff).ram();