This commit is contained in:
Robbbert 2017-09-28 13:38:18 +10:00
commit 699a3ea6e4
6 changed files with 258 additions and 609 deletions

View File

@ -6927,7 +6927,7 @@ has been replaced with an all-zero block. -->
</software>
<software name="opwolf">
<description>Operation Wolf</description>
<description>Operation Wolf (5.25")</description>
<year>1989</year>
<publisher>Taito Corporation</publisher>
<info name="developer" value="Taito Corporation" />
@ -6943,6 +6943,29 @@ has been replaced with an all-zero block. -->
</part>
</software>
<software name="opwolf35" cloneof="opwolf">
<description>Operation Wolf (3.5")</description>
<year>1989</year>
<publisher>Taito Corporation</publisher>
<info name="developer" value="Taito Corporation" />
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size = "737280">
<rom name="[PC] Operation Wolf [3.5DD] [Disk 1 of 1].img" size="737280" crc="503b46c4" sha1="c935a1b639b653433380589894d61b573e7c6c5a" offset="0"/>
</dataarea>
</part>
</software>
<software name="outrun">
<description>Out Run</description>
<year>1989</year>
<publisher>Sega Computer Software</publisher>
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size = "737280">
<rom name="[PC] Outrun [3.5DD] [Disk 1 of 1].img" size="737280" crc="5bf4afae" sha1="f189136da8ac284cfb3bf06b402328cd827a42a2" offset="0"/>
</dataarea>
</part>
</software>
<software name="overnet">
<description>Over the Net</description>
<year>1991</year>

View File

@ -11,7 +11,6 @@ Undumped Self-Published Titles:
* Cyber Virus (Songbird Productions, CF2007)
* Cyber Virus - CinciClassic Edition (Songbird Productions, CF20B1)
* Lynx Othello (H. Dodgson)
* MegaPak 1 (Songbird Productions, CF2010) - too new (2008)
* PokerMania (MW Software)
* Ponx (Songbird Productions, CF2002)
* Remnant - Planar Wars 3D (Songbird Productions, CF2005)
@ -607,6 +606,18 @@ Known undumped prototypes:
</part>
</software>
<software name="megapak">
<description>MegaPak 1 (Euro, USA)</description>
<year>2007</year>
<publisher>Songbird Productions</publisher>
<info name="serial" value="CF2010" />
<part name="cart" interface="lynx_cart">
<dataarea name="rom" size="262144">
<rom name="Mega Pak 1.bin" size="262144" crc="ca7cf30b" sha1="c961b618021e37cf71104f4f7a04f5ea3e0ccb06" offset="000000" />
</dataarea>
</part>
</software>
<software name="mspacman">
<description>Ms. Pac-Man (Euro, USA)</description>
<year>1990</year>

View File

@ -111,10 +111,12 @@ local function init()
db:exec("END TRANSACTION")
end
init()
if db then
init()
end
function dat.check(set, softlist)
if softlist or not ver then
if softlist or not ver or not db then
return nil
end
info = nil

View File

@ -209,6 +209,8 @@ static ADDRESS_MAP_START( abcheck_map, AS_PROGRAM, 16, namcond1_state )
AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_SHARE("shared_ram")
AM_RANGE(0x600000, 0x607fff) AM_RAM AM_SHARE("zpr1")
AM_RANGE(0x608000, 0x60ffff) AM_RAM AM_SHARE("zpr2")
AM_RANGE(0x700000, 0x700001) AM_WRITENOP
AM_RANGE(0x740000, 0x740001) AM_WRITENOP
AM_RANGE(0x780000, 0x780001) AM_READ(printer_r)
AM_RANGE(0x800000, 0x80000f) AM_DEVICE8("ygv608", ygv608_device, port_map, 0xff00)
AM_RANGE(0xa00000, 0xa00fff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0xff00)

File diff suppressed because it is too large Load Diff

View File

@ -64,6 +64,10 @@ public:
DECLARE_WRITE8_MEMBER(screen_ctrl_9_w);
DECLARE_READ8_MEMBER(screen_ctrl_10_r);
DECLARE_WRITE8_MEMBER(screen_ctrl_10_w);
DECLARE_READ8_MEMBER(screen_ctrl_11_r);
DECLARE_WRITE8_MEMBER(screen_ctrl_11_w);
DECLARE_READ8_MEMBER(screen_ctrl_12_r);
DECLARE_WRITE8_MEMBER(screen_ctrl_12_w);
DECLARE_READ8_MEMBER(irq_mask_r);
DECLARE_WRITE8_MEMBER(irq_mask_w);
DECLARE_READ8_MEMBER(irq_ctrl_r);
@ -105,87 +109,6 @@ private:
const address_space_config m_io_space_config;
static constexpr unsigned SPRITE_ATTR_TABLE_SIZE = 256;
struct YGV_PORTS {
uint8_t na; // P#0 - pattern name table data port (read/write)
uint8_t p1; // P#1 - sprite data port (read/write)
uint8_t p2; // P#2 - scroll data port (read/write)
uint8_t p3; // P#3 - colour palette data port (read/write)
uint8_t p4; // P#4 - register data port (read/write)
uint8_t p5; // P#5 - register select port (write only)
uint8_t p6; // P#6 - status port (read/write)
uint8_t p7; // P#7 - system control port (read/write)
};
struct YGV_REGS {
uint8_t r0; // R#0 - pattern name table access ptr (r/w)
uint8_t r1; // R#1 - pattern name table access ptr (r/w)
uint8_t r2; // R#2 - built in ram access control
uint8_t saa; // R#3 - sprite attribute table access ptr (r/w)
uint8_t sca; // R#4 - scroll table access ptr (r/w)
uint8_t cc; // R#5 - color palette access ptr (r/w)
uint8_t sba; // R#6 - sprite generator base address (r/w)
// R#7 - R#11 - screen control (r/w)
uint8_t r7; // misc screen control (r/w)
uint8_t r8; // misc screen control (r/w)
uint8_t r9; // misc screen control (r/w)
uint8_t r10; // misc screen control (r/w)
uint8_t r11; // misc screen control (r/w)
uint8_t r12; // R#12 - color palette selection (r/w)
uint8_t bdc; // R#13 - border colour (wo)
// R#14 - R#16 - interrupt control
uint8_t r14;
uint8_t il;
uint8_t r16;
// R#17 - R#24 - base address (wo)
uint8_t r17;
uint8_t r18;
uint8_t r19;
uint8_t r20;
uint8_t r21;
uint8_t r22;
uint8_t r23;
uint8_t r24;
// R#25 - R#38 - enlargement, contraction and rotation parameters (wo)
uint8_t ax0;
uint8_t ax8;
uint8_t ax16;
uint8_t dx0;
uint8_t dx8;
uint8_t dxy0;
uint8_t dxy8;
uint8_t ay0;
uint8_t ay8;
uint8_t ay16;
uint8_t dy0;
uint8_t dy8;
uint8_t dyx0;
uint8_t dyx8;
// R#39 - R#46 - display scan control (wo)
uint8_t r39;
uint8_t r40;
uint8_t hdsp;
uint8_t htl;
uint8_t r43;
uint8_t r44;
uint8_t r45;
uint8_t vtl;
// R#47 - R#49 - rom transfer control (wo)
uint8_t tb5;
uint8_t tb13;
uint8_t tn4;
};
static constexpr unsigned MAX_SPRITES = SPRITE_ATTR_TABLE_SIZE >> 2;
struct SPRITE_ATTR {
@ -215,21 +138,9 @@ private:
tilemap_t *m_tilemap_B;
bitmap_ind16 m_work_bitmap;
void HandleYGV608Reset();
void HandleReset();
void HandleRomTransfers(uint8_t type);
void SetPreShortcuts(int reg, int data );
void SetPostShortcuts(int reg);
void ShowYGV608Registers();
union {
uint8_t b[8];
YGV_PORTS s;
} m_ports;
union {
uint8_t b[50];
YGV_REGS s;
} m_regs;
/*
* Built in ram
@ -255,6 +166,7 @@ private:
uint8_t m_na8_mask; // mask on/off na11/9:8
int m_col_shift; // shift in scroll table column index
// base address shortcuts
uint32_t m_base_addr[2][8];
uint32_t m_base_y_shift; // for extracting pattern y coord 'base'
@ -268,10 +180,12 @@ private:
int pattern_name_base_r,pattern_name_base_w; /* pattern name table base address */
// === new variable handling starts here ===
uint8_t m_screen_status; /**< port #6: status port r/w */
uint8_t m_dma_status; /**< port #7: system control port r/w */
uint8_t m_register_address; /**< RN: Register address select */
bool m_register_autoinc_r; /**< RRAI: Register address auto-increment on read */
bool m_register_autoinc_w; /**< RWAI: Register address auto-increment on write */
uint8_t m_screen_status; /**< CD: status port r/w */
bool m_raster_irq_mask; /**< IEP: raster irq mask (INT1 occurs if 1) */
bool m_vblank_irq_mask; /**< IEV: vblank irq mask (INT0 occurs if 1) */
@ -302,7 +216,7 @@ private:
bool m_scaw; /**< SCAW: Address autoinc after writing scroll data table */
bool m_cpar; /**< CPAR: Address autoinc after reading color palette */
bool m_cpaw; /**< CPAW: Address autoinc after writing color palette */
bool m_ba_plane_select; /**< B/(A) P#2 gains access to scroll data table in A/B plane */
bool m_ba_plane_scroll_select; /**< B/(A) P#2 gains access to scroll data table in A/B plane */
bool m_dspe; /**< DSPE: display permission of pattern plane(s) (screen blanked if 0) */
uint8_t m_md; /**< MDx: mode for pattern planes */
@ -320,6 +234,17 @@ private:
uint8_t m_h_div_size; /**< SLH: size of horizontal division in screen division scrolling */
uint8_t m_v_div_size; /**< SLV: size of vertical division in screen division scrolling */
bool m_planeA_trans_enable; /**< CTPA: enable transparency for plane A */
bool m_planeB_trans_enable; /**< CTPA: enable transparency for plane B */
uint8_t m_priority_mode; /**< PRM: priority mode select */
bool m_cbdr; /**< CBDR: color bus terminals CB7 to 0 and SPRT */
bool m_yse; /**< YSE: permission control of trasparency timing output of YS terminal */
uint8_t m_scm; /**< SCM: output frequency of clock signal output from terminal FSC */
uint8_t m_planeA_color_fetch; /**< APF: A plane color fetch mode */
uint8_t m_planeB_color_fetch; /**< BPF: B plane color fetch mode */
uint8_t m_sprite_color_fetch; /**< SPF: sprite color fetch mode */
// screen section
devcb_write_line m_vblank_handler;
devcb_write_line m_raster_handler;