mirror of
https://github.com/holub/mame
synced 2025-04-16 05:24:54 +03:00
Various cleanups:
* vsystem.cpp: Modernised code a little. * upscope.cpp: Put code in anonymous namespace. * Reduced redundancy in more fruit machine layouts.
This commit is contained in:
parent
6741eca4d6
commit
540426ea91
@ -4498,8 +4498,6 @@ files {
|
||||
MAME_DIR .. "src/mame/video/ojankohs.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/pipedrm.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/rpunch.cpp",
|
||||
MAME_DIR .. "src/mame/includes/rpunch.h",
|
||||
MAME_DIR .. "src/mame/video/rpunch.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/suprslam.cpp",
|
||||
MAME_DIR .. "src/mame/includes/suprslam.h",
|
||||
MAME_DIR .. "src/mame/video/suprslam.cpp",
|
||||
|
@ -107,19 +107,367 @@
|
||||
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/rpunch.h"
|
||||
|
||||
// mame
|
||||
#include "video/vsystem_gga.h"
|
||||
|
||||
// devices
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "machine/gen_latch.h"
|
||||
#include "machine/input_merger.h"
|
||||
#include "sound/upd7759.h"
|
||||
#include "sound/ymopm.h"
|
||||
|
||||
// emu
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "tilemap.h"
|
||||
#include "speaker.h"
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
#define MASTER_CLOCK XTAL(16'000'000)
|
||||
#define VIDEO_CLOCK XTAL(13'333'000)
|
||||
|
||||
|
||||
class rpunch_state : public driver_device
|
||||
{
|
||||
public:
|
||||
rpunch_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
m_upd7759(*this, "upd"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette"),
|
||||
m_gga(*this, "gga"),
|
||||
m_videoram(*this, "videoram"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_hi_bits(*this, "SERVICE")
|
||||
{ }
|
||||
|
||||
void rpunch(machine_config &config);
|
||||
void svolleybl(machine_config &config);
|
||||
|
||||
DECLARE_CUSTOM_INPUT_MEMBER(hi_bits_r) { return m_hi_bits->read(); }
|
||||
|
||||
protected:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
optional_device<upd7759_device> m_upd7759;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<vsystem_gga_device> m_gga;
|
||||
|
||||
required_shared_ptr<u16> m_videoram;
|
||||
required_shared_ptr<u16> m_spriteram;
|
||||
|
||||
required_ioport m_hi_bits;
|
||||
|
||||
tilemap_t *m_background[2]{};
|
||||
|
||||
void set_sprite_palette(int val) { m_sprite_palette = val; }
|
||||
void set_sprite_xoffs(int val) { m_sprite_xoffs = val; }
|
||||
|
||||
virtual void machine_start() override;
|
||||
|
||||
void svolley_map(address_map &map);
|
||||
void rpunch_map(address_map &map);
|
||||
void svolleybl_main_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
void svolleybl_sound_map(address_map &map);
|
||||
|
||||
private:
|
||||
// hardware configuration
|
||||
int m_sprite_palette = 0;
|
||||
int m_sprite_xoffs = 0;
|
||||
|
||||
u8 m_upd_rom_bank = 0;
|
||||
u16 m_videoflags = 0;
|
||||
u8 m_sprite_pri = 0;
|
||||
u8 m_sprite_num = 0;
|
||||
std::unique_ptr<bitmap_ind16> m_pixmap;
|
||||
emu_timer *m_crtc_timer = nullptr;
|
||||
|
||||
u16 sound_busy_r();
|
||||
u8 pixmap_r(offs_t offset);
|
||||
void pixmap_w(offs_t offset, u8 data);
|
||||
void videoram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void videoreg_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void scrollreg_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void gga_w(offs_t offset, u8 data);
|
||||
void gga_data_w(offs_t offset, u8 data);
|
||||
void sprite_ctrl_w(offs_t offset, u8 data);
|
||||
void upd_control_w(u8 data);
|
||||
void upd_data_w(u8 data);
|
||||
TILE_GET_INFO_MEMBER(get_bg0_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_bg1_tile_info);
|
||||
|
||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
TIMER_CALLBACK_MEMBER(crtc_interrupt_gen);
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_bitmap(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
};
|
||||
|
||||
|
||||
class svolley_state : public rpunch_state
|
||||
{
|
||||
public:
|
||||
svolley_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
rpunch_state(mconfig, type, tag)
|
||||
{
|
||||
}
|
||||
|
||||
void svolley(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
};
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Tilemap callbacks
|
||||
*
|
||||
*************************************/
|
||||
|
||||
TILE_GET_INFO_MEMBER(rpunch_state::get_bg0_tile_info)
|
||||
{
|
||||
const u16 data = m_videoram[tile_index];
|
||||
int code;
|
||||
if (m_videoflags & 0x0400) code = (data & 0x0fff) | 0x2000;
|
||||
else code = (data & 0x1fff);
|
||||
|
||||
tileinfo.set(0,
|
||||
code,
|
||||
((m_videoflags & 0x0010) >> 1) | ((data >> 13) & 7),
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(rpunch_state::get_bg1_tile_info)
|
||||
{
|
||||
const u16 data = m_videoram[0x1000 | tile_index];
|
||||
int code;
|
||||
if (m_videoflags & 0x0800) code = (data & 0x0fff) | 0x2000;
|
||||
else code = (data & 0x1fff);
|
||||
|
||||
tileinfo.set(1,
|
||||
code,
|
||||
((m_videoflags & 0x0020) >> 2) | ((data >> 13) & 7),
|
||||
0);
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Video system start
|
||||
*
|
||||
*************************************/
|
||||
|
||||
TIMER_CALLBACK_MEMBER(rpunch_state::crtc_interrupt_gen)
|
||||
{
|
||||
m_maincpu->set_input_line(1, HOLD_LINE);
|
||||
if (param != 0)
|
||||
m_crtc_timer->adjust(m_screen->frame_period() / param, 0, m_screen->frame_period() / param);
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Write handlers
|
||||
*
|
||||
*************************************/
|
||||
|
||||
u8 rpunch_state::pixmap_r(offs_t offset)
|
||||
{
|
||||
const int sy = offset >> 8;
|
||||
const int sx = (offset & 0xff) << 1;
|
||||
|
||||
return ((m_pixmap->pix(sy & 0xff, sx & ~1) & 0xf) << 4) | (m_pixmap->pix(sy & 0xff, sx | 1) & 0xf);
|
||||
}
|
||||
|
||||
void rpunch_state::pixmap_w(offs_t offset, u8 data)
|
||||
{
|
||||
const int sy = offset >> 8;
|
||||
const int sx = (offset & 0xff) << 1;
|
||||
|
||||
m_pixmap->pix(sy & 0xff, sx & ~1) = ((data & 0xf0) >> 4);
|
||||
m_pixmap->pix(sy & 0xff, sx | 1) = (data & 0x0f);
|
||||
}
|
||||
|
||||
void rpunch_state::videoram_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
const int tmap = offset >> 12;
|
||||
const int tile_index = offset & 0xfff;
|
||||
COMBINE_DATA(&m_videoram[offset]);
|
||||
m_background[tmap]->mark_tile_dirty(tile_index);
|
||||
}
|
||||
|
||||
|
||||
void rpunch_state::videoreg_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
const int oldword = m_videoflags;
|
||||
COMBINE_DATA(&m_videoflags);
|
||||
|
||||
if (m_videoflags != oldword)
|
||||
{
|
||||
/* invalidate tilemaps */
|
||||
if ((oldword ^ m_videoflags) & 0x0410)
|
||||
m_background[0]->mark_all_dirty();
|
||||
if ((oldword ^ m_videoflags) & 0x0820)
|
||||
m_background[1]->mark_all_dirty();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void rpunch_state::scrollreg_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7 && ACCESSING_BITS_8_15)
|
||||
switch (offset)
|
||||
{
|
||||
case 0:
|
||||
m_background[0]->set_scrolly(0, data & 0x1ff);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
m_background[0]->set_scrollx(0, data & 0x1ff);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
m_background[1]->set_scrolly(0, data & 0x1ff);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
m_background[1]->set_scrollx(0, data & 0x1ff);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void rpunch_state::gga_w(offs_t offset, u8 data)
|
||||
{
|
||||
m_gga->write(offset >> 5, data & 0xff);
|
||||
}
|
||||
|
||||
|
||||
void rpunch_state::gga_data_w(offs_t offset, u8 data)
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
/* only register we know about.... */
|
||||
case 0x0b:
|
||||
m_crtc_timer->adjust(m_screen->time_until_vblank_start(), (data == 0xc0) ? 2 : 1);
|
||||
break;
|
||||
|
||||
default:
|
||||
logerror("CRTC register %02X = %02X\n", offset, data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void rpunch_state::sprite_ctrl_w(offs_t offset, u8 data)
|
||||
{
|
||||
if (offset == 0)
|
||||
{
|
||||
m_sprite_num = data & 0x3f;
|
||||
logerror("Number of sprites = %02X\n", data & 0x3f);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_sprite_pri = data & 0x3f;
|
||||
logerror("Sprite priority point = %02X\n", data & 0x3f);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Sprite routines
|
||||
*
|
||||
*************************************/
|
||||
|
||||
void rpunch_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
/* draw the sprites */
|
||||
int offs = m_sprite_num;
|
||||
while (offs > 0)
|
||||
{
|
||||
offs--;
|
||||
const u32 ram = offs << 2;
|
||||
u32 pri = 0; // above everything except direct mapped bitmap
|
||||
/* this seems like the most plausible explanation */
|
||||
if (offs < m_sprite_pri)
|
||||
pri |= GFX_PMASK_2; // behind foreground
|
||||
|
||||
const u16 data1 = m_spriteram[ram + 1];
|
||||
const u32 code = data1 & 0x7ff;
|
||||
|
||||
const u16 data0 = m_spriteram[ram + 0];
|
||||
const u16 data2 = m_spriteram[ram + 2];
|
||||
int x = (data2 & 0x1ff) + 8;
|
||||
int y = 513 - (data0 & 0x1ff);
|
||||
const bool xflip = data1 & 0x1000;
|
||||
const bool yflip = data1 & 0x0800;
|
||||
const u32 color = ((data1 >> 13) & 7) | ((m_videoflags & 0x0040) >> 3);
|
||||
|
||||
if (x > cliprect.max_x) x -= 512;
|
||||
if (y > cliprect.max_y) y -= 512;
|
||||
|
||||
m_gfxdecode->gfx(2)->prio_transpen(bitmap,cliprect,
|
||||
code, color + (m_sprite_palette / 16), xflip, yflip, x + m_sprite_xoffs, y,
|
||||
m_screen->priority(), pri, 15);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Bitmap routines
|
||||
*
|
||||
*************************************/
|
||||
|
||||
void rpunch_state::draw_bitmap(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
const u32 colourbase = 512 + ((m_videoflags & 0x000f) << 4);
|
||||
|
||||
for (int y = cliprect.min_y; y <= cliprect.max_y; y++)
|
||||
{
|
||||
u16 const *const src = &m_pixmap->pix(y & 0xff);
|
||||
u16 *const dst = &bitmap.pix(y);
|
||||
for(int x = cliprect.min_x / 4; x <= cliprect.max_x; x++)
|
||||
{
|
||||
const u16 pix = src[(x + 4) & 0x1ff];
|
||||
if ((pix & 0xf) != 0xf)
|
||||
dst[x] = colourbase + pix;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Main screen refresh
|
||||
*
|
||||
*************************************/
|
||||
|
||||
u32 rpunch_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
screen.priority().fill(0, cliprect);
|
||||
m_background[0]->draw(screen, bitmap, cliprect, 0,1);
|
||||
m_background[1]->draw(screen, bitmap, cliprect, 0,2);
|
||||
draw_sprites(bitmap, cliprect);
|
||||
draw_bitmap(bitmap, cliprect);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Machine initialization
|
||||
@ -128,27 +476,35 @@
|
||||
|
||||
void rpunch_state::machine_start()
|
||||
{
|
||||
m_videoflags = 0;
|
||||
|
||||
/* allocate tilemaps for the backgrounds */
|
||||
m_background[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rpunch_state::get_bg0_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
|
||||
m_background[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rpunch_state::get_bg1_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
|
||||
|
||||
/* configure the tilemaps */
|
||||
m_background[1]->set_transparent_pen(15);
|
||||
|
||||
m_pixmap = std::make_unique<bitmap_ind16>(512, 256);
|
||||
|
||||
const rectangle pixmap_rect(0,511,0,255);
|
||||
m_pixmap->fill(0xf, pixmap_rect);
|
||||
|
||||
/* reset the timer */
|
||||
m_crtc_timer = timer_alloc(FUNC(rpunch_state::crtc_interrupt_gen), this);
|
||||
|
||||
save_item(NAME(m_upd_rom_bank));
|
||||
save_item(NAME(m_sprite_xoffs));
|
||||
save_item(NAME(m_videoflags));
|
||||
save_item(NAME(m_sprite_pri));
|
||||
save_item(NAME(m_sprite_num));
|
||||
save_item(NAME(*m_pixmap));
|
||||
}
|
||||
|
||||
void rpunch_state::machine_reset()
|
||||
void svolley_state::machine_start()
|
||||
{
|
||||
}
|
||||
rpunch_state::machine_start();
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Input ports
|
||||
*
|
||||
*************************************/
|
||||
|
||||
CUSTOM_INPUT_MEMBER(rpunch_state::hi_bits_r)
|
||||
{
|
||||
return ioport("SERVICE")->read();
|
||||
m_background[0]->set_scrolldx(8, 0); // aligns middle net sprite with bg as shown in reference
|
||||
}
|
||||
|
||||
|
||||
@ -213,7 +569,6 @@ void rpunch_state::svolley_map(address_map &map)
|
||||
void rpunch_state::rpunch_map(address_map &map)
|
||||
{
|
||||
svolley_map(map);
|
||||
map.global_mask(0xfffff);
|
||||
map(0x040000, 0x04ffff).rw(FUNC(rpunch_state::pixmap_r), FUNC(rpunch_state::pixmap_w)); // mirrored?
|
||||
}
|
||||
|
||||
@ -481,6 +836,8 @@ void rpunch_state::rpunch(machine_config &config)
|
||||
INPUT_MERGER_ANY_HIGH(config, "soundirq").output_handler().set_inputline(m_audiocpu, 0);
|
||||
|
||||
/* video hardware */
|
||||
set_sprite_palette(0x300);
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_size(304, 224);
|
||||
@ -494,8 +851,6 @@ void rpunch_state::rpunch(machine_config &config)
|
||||
VSYSTEM_GGA(config, m_gga, VIDEO_CLOCK/2); // verified from rpunch schematics
|
||||
m_gga->write_cb().set(FUNC(rpunch_state::gga_data_w));
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(rpunch_state,rpunch)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
@ -507,15 +862,21 @@ void rpunch_state::rpunch(machine_config &config)
|
||||
UPD7759(config, m_upd7759).add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
}
|
||||
|
||||
void rpunch_state::svolley(machine_config &config)
|
||||
|
||||
// the main differences between Super Volleyball and Rabbit Punch are
|
||||
// the lack of direct-mapped bitmap and a different palette base for sprites
|
||||
void svolley_state::svolley(machine_config &config)
|
||||
{
|
||||
rpunch(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &rpunch_state::svolley_map);
|
||||
MCFG_VIDEO_START_OVERRIDE(rpunch_state,svolley)
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &svolley_state::svolley_map);
|
||||
|
||||
set_sprite_palette(0x080);
|
||||
set_sprite_xoffs(-4); // aligns middle net sprite with bg as shown in reference
|
||||
}
|
||||
|
||||
|
||||
// c+p of above for now, bootleg hw, things need verifying
|
||||
// FIXME: copy/paste of above for now, bootleg hardware, things need verifying
|
||||
void rpunch_state::svolleybl(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
@ -529,6 +890,8 @@ void rpunch_state::svolleybl(machine_config &config)
|
||||
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0);
|
||||
|
||||
/* video hardware */
|
||||
set_sprite_palette(0x080);
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_size(304, 224);
|
||||
@ -542,10 +905,7 @@ void rpunch_state::svolleybl(machine_config &config)
|
||||
VSYSTEM_GGA(config, m_gga, VIDEO_CLOCK/2);
|
||||
m_gga->write_cb().set(FUNC(rpunch_state::gga_data_w));
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(rpunch_state,rpunch)
|
||||
|
||||
/* sound hardware */
|
||||
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
ym2151_device &ymsnd(YM2151(config, "ymsnd", MASTER_CLOCK/4));
|
||||
@ -785,25 +1145,7 @@ ROM_START( svolleybl )
|
||||
ROM_LOAD( "1-snd.bin", 0x10000, 0x08000, CRC(009d7157) SHA1(2cdda7094c7476289d75a78ee25b34fa3b3225c0) ) // matches 2.ic141 from spikes91, when halved
|
||||
ROM_END
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Driver initialization
|
||||
*
|
||||
*************************************/
|
||||
|
||||
void rpunch_state::init_rabiolep()
|
||||
{
|
||||
m_sprite_palette = 0x300;
|
||||
}
|
||||
|
||||
|
||||
void rpunch_state::init_svolley()
|
||||
{
|
||||
/* the main differences between Super Volleyball and Rabbit Punch are */
|
||||
/* the lack of direct-mapped bitmap and a different palette base for sprites */
|
||||
m_sprite_palette = 0x080;
|
||||
}
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
|
||||
@ -813,12 +1155,13 @@ void rpunch_state::init_svolley()
|
||||
*
|
||||
*************************************/
|
||||
|
||||
GAME( 1987, rabiolep, 0, rpunch, rabiolep, rpunch_state, init_rabiolep, ROT0, "V-System Co.", "Rabio Lepus (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
|
||||
GAME( 1987, rpunch, rabiolep, rpunch, rpunch, rpunch_state, init_rabiolep, ROT0, "V-System Co. (Bally/Midway/Sente license)", "Rabbit Punch (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
|
||||
GAME( 1989, svolley, 0, svolley, svolley, rpunch_state, init_svolley, ROT0, "V-System Co.", "Super Volleyball (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
|
||||
GAME( 1989, svolleyk, svolley, svolley, svolley, rpunch_state, init_svolley, ROT0, "V-System Co.", "Super Volleyball (Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
|
||||
GAME( 1989, svolleyu, svolley, svolley, svolley, rpunch_state, init_svolley, ROT0, "V-System Co. (Data East license)", "Super Volleyball (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
|
||||
// year name parent machine input class init rot company description flags
|
||||
GAME( 1987, rabiolep, 0, rpunch, rabiolep, rpunch_state, empty_init, ROT0, "V-System Co.", "Rabio Lepus (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
|
||||
GAME( 1987, rpunch, rabiolep, rpunch, rpunch, rpunch_state, empty_init, ROT0, "V-System Co. (Bally/Midway/Sente license)", "Rabbit Punch (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
|
||||
GAME( 1989, svolley, 0, svolley, svolley, svolley_state, empty_init, ROT0, "V-System Co.", "Super Volleyball (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
|
||||
GAME( 1989, svolleyk, svolley, svolley, svolley, svolley_state, empty_init, ROT0, "V-System Co.", "Super Volleyball (Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
|
||||
GAME( 1989, svolleyu, svolley, svolley, svolley, svolley_state, empty_init, ROT0, "V-System Co. (Data East license)", "Super Volleyball (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
|
||||
|
||||
// video registers are changed, and there's some kind of RAM at 090xxx, possible a different sprite scheme for the bootleg (even if the original is intact)
|
||||
// the sound system seems to be ripped from the later Power Spikes (see aerofgt.cpp)
|
||||
GAME( 1991, svolleybl, svolley, svolleybl, svolley, rpunch_state, init_svolley, ROT0, "bootleg", "Super Volleyball (bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_NO_COCKTAIL ) // aka 1991 Spikes?
|
||||
GAME( 1991, svolleybl, svolley, svolleybl, svolley, rpunch_state, empty_init, ROT0, "bootleg", "Super Volleyball (bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_NO_COCKTAIL ) // aka 1991 Spikes?
|
||||
|
@ -27,13 +27,17 @@
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/amiga.h"
|
||||
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "machine/amigafdc.h"
|
||||
#include "machine/i8255.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "machine/amigafdc.h"
|
||||
|
||||
#include "speaker.h"
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
class upscope_state : public amiga_state
|
||||
{
|
||||
public:
|
||||
@ -373,6 +377,8 @@ void upscope_state::init_upscope()
|
||||
subdevice<nvram_device>("nvram")->set_base(m_nvram, sizeof(m_nvram));
|
||||
}
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
|
@ -1,96 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Aaron Giles
|
||||
#ifndef MAME_INCLUDES_RPUNCH_H
|
||||
#define MAME_INCLUDES_RPUNCH_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "machine/gen_latch.h"
|
||||
#include "sound/upd7759.h"
|
||||
#include "video/vsystem_gga.h"
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "tilemap.h"
|
||||
|
||||
class rpunch_state : public driver_device
|
||||
{
|
||||
public:
|
||||
rpunch_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
m_upd7759(*this, "upd"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette"),
|
||||
m_gga(*this, "gga"),
|
||||
m_videoram(*this, "videoram"),
|
||||
m_spriteram(*this, "spriteram")
|
||||
{ }
|
||||
|
||||
void svolley(machine_config &config);
|
||||
void rpunch(machine_config &config);
|
||||
void svolleybl(machine_config &config);
|
||||
|
||||
void init_rabiolep();
|
||||
void init_svolley();
|
||||
|
||||
DECLARE_CUSTOM_INPUT_MEMBER(hi_bits_r);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
optional_device<upd7759_device> m_upd7759;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<vsystem_gga_device> m_gga;
|
||||
|
||||
required_shared_ptr<u16> m_videoram;
|
||||
required_shared_ptr<u16> m_spriteram;
|
||||
|
||||
u8 m_upd_rom_bank = 0;
|
||||
int m_sprite_palette = 0;
|
||||
int m_sprite_xoffs = 0;
|
||||
u16 m_videoflags = 0;
|
||||
u8 m_sprite_pri = 0;
|
||||
u8 m_sprite_num = 0;
|
||||
tilemap_t *m_background[2]{};
|
||||
std::unique_ptr<bitmap_ind16> m_pixmap;
|
||||
emu_timer *m_crtc_timer = nullptr;
|
||||
|
||||
u16 sound_busy_r();
|
||||
u8 pixmap_r(offs_t offset);
|
||||
void pixmap_w(offs_t offset, u8 data);
|
||||
void videoram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void videoreg_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void scrollreg_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void gga_w(offs_t offset, u8 data);
|
||||
void gga_data_w(offs_t offset, u8 data);
|
||||
void sprite_ctrl_w(offs_t offset, u8 data);
|
||||
void upd_control_w(u8 data);
|
||||
void upd_data_w(u8 data);
|
||||
TILE_GET_INFO_MEMBER(get_bg0_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_bg1_tile_info);
|
||||
|
||||
DECLARE_VIDEO_START(rpunch);
|
||||
DECLARE_VIDEO_START(svolley);
|
||||
|
||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
TIMER_CALLBACK_MEMBER(crtc_interrupt_gen);
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_bitmap(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void sound_map(address_map &map);
|
||||
void rpunch_map(address_map &map);
|
||||
void svolley_map(address_map &map);
|
||||
void svolleybl_main_map(address_map &map);
|
||||
void svolleybl_sound_map(address_map &map);
|
||||
};
|
||||
|
||||
#endif // MAME_INCLUDES_RPUNCH_H
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -2953,6 +2953,7 @@
|
||||
<element ref="debug_backdrop_colour">
|
||||
<bounds x="0" y="0" width="1920" height="1080"/>
|
||||
</element>
|
||||
|
||||
<element name="lamp0" ref="debug_lamp_button" state="0">
|
||||
<bounds x="32" y="32" width="60" height="60"/>
|
||||
</element>
|
||||
@ -3737,435 +3738,216 @@
|
||||
<element name="debug_button_0" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x01">
|
||||
<bounds x="1100" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_0" ref="debug_button_label_0">
|
||||
<bounds x="1120" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_1" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x02">
|
||||
<bounds x="1184" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_1" ref="debug_button_label_1">
|
||||
<bounds x="1204" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_2" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x04">
|
||||
<bounds x="1268" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_2" ref="debug_button_label_2">
|
||||
<bounds x="1288" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_3" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x08">
|
||||
<bounds x="1352" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_3" ref="debug_button_label_3">
|
||||
<bounds x="1372" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_4" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x10">
|
||||
<bounds x="1436" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_4" ref="debug_button_label_4">
|
||||
<bounds x="1456" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_5" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x20">
|
||||
<bounds x="1520" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_5" ref="debug_button_label_5">
|
||||
<bounds x="1540" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_6" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x40">
|
||||
<bounds x="1604" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_6" ref="debug_button_label_6">
|
||||
<bounds x="1624" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_7" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x80">
|
||||
<bounds x="1688" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_7" ref="debug_button_label_7">
|
||||
<bounds x="1708" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp0" ref="debug_button_standard" state="0" inputtag="IN-1" inputmask="0x01">
|
||||
<bounds x="1100" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_8" ref="debug_button_label_8">
|
||||
<bounds x="1120" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp1" ref="debug_button_standard" state="0" inputtag="IN-1" inputmask="0x02">
|
||||
<bounds x="1184" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_9" ref="debug_button_label_9">
|
||||
<bounds x="1204" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp2" ref="debug_button_standard" state="0" inputtag="IN-1" inputmask="0x04">
|
||||
<bounds x="1268" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_10" ref="debug_button_label_10">
|
||||
<bounds x="1288" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp3" ref="debug_button_standard" state="0" inputtag="IN-1" inputmask="0x08">
|
||||
<bounds x="1352" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_11" ref="debug_button_label_11">
|
||||
<bounds x="1372" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp4" ref="debug_button_standard" state="0" inputtag="IN-1" inputmask="0x10">
|
||||
<bounds x="1436" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_12" ref="debug_button_label_12">
|
||||
<bounds x="1456" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_13" ref="debug_button_unreferenced" state="0" inputtag="IN-1" inputmask="0x20">
|
||||
<bounds x="1520" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_13" ref="debug_button_label_13">
|
||||
<bounds x="1540" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_14" ref="debug_button_unreferenced" state="0" inputtag="IN-1" inputmask="0x40">
|
||||
<bounds x="1604" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_14" ref="debug_button_label_14">
|
||||
<bounds x="1624" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_15" ref="debug_button_standard" state="0" inputtag="IN-1" inputmask="0x80">
|
||||
<bounds x="1688" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_15" ref="debug_button_label_15">
|
||||
<bounds x="1708" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp5" ref="debug_button_standard" state="0" inputtag="IN-2" inputmask="0x01">
|
||||
<bounds x="1100" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_16" ref="debug_button_label_16">
|
||||
<bounds x="1120" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_17" ref="debug_button_unreferenced" state="0" inputtag="IN-2" inputmask="0x02">
|
||||
<bounds x="1184" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_17" ref="debug_button_label_17">
|
||||
<bounds x="1204" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp7" ref="debug_button_standard" state="0" inputtag="IN-2" inputmask="0x04">
|
||||
<bounds x="1268" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_18" ref="debug_button_label_18">
|
||||
<bounds x="1288" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_19" ref="debug_button_unreferenced" state="0" inputtag="IN-2" inputmask="0x08">
|
||||
<bounds x="1352" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_19" ref="debug_button_label_19">
|
||||
<bounds x="1372" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_20" ref="debug_button_unreferenced" state="0" inputtag="IN-2" inputmask="0x10">
|
||||
<bounds x="1436" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_20" ref="debug_button_label_20">
|
||||
<bounds x="1456" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_21" ref="debug_button_unreferenced" state="0" inputtag="IN-2" inputmask="0x20">
|
||||
<bounds x="1520" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_21" ref="debug_button_label_21">
|
||||
<bounds x="1540" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_22" ref="debug_button_unreferenced" state="0" inputtag="IN-2" inputmask="0x40">
|
||||
<bounds x="1604" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_22" ref="debug_button_label_22">
|
||||
<bounds x="1624" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_23" ref="debug_button_unreferenced" state="0" inputtag="IN-2" inputmask="0x80">
|
||||
<bounds x="1688" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_23" ref="debug_button_label_23">
|
||||
<bounds x="1708" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_24" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x01">
|
||||
<bounds x="1100" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_24" ref="debug_button_label_24">
|
||||
<bounds x="1120" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_25" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x02">
|
||||
<bounds x="1184" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_25" ref="debug_button_label_25">
|
||||
<bounds x="1204" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_26" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x04">
|
||||
<bounds x="1268" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_26" ref="debug_button_label_26">
|
||||
<bounds x="1288" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_27" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x08">
|
||||
<bounds x="1352" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_27" ref="debug_button_label_27">
|
||||
<bounds x="1372" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_28" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x10">
|
||||
<bounds x="1436" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_28" ref="debug_button_label_28">
|
||||
<bounds x="1456" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_29" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x20">
|
||||
<bounds x="1520" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_29" ref="debug_button_label_29">
|
||||
<bounds x="1540" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_30" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x40">
|
||||
<bounds x="1604" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_30" ref="debug_button_label_30">
|
||||
<bounds x="1624" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_31" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x80">
|
||||
<bounds x="1688" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_31" ref="debug_button_label_31">
|
||||
<bounds x="1708" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_32" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x01">
|
||||
<bounds x="1100" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_32" ref="debug_button_label_32">
|
||||
<bounds x="1120" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_33" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x02">
|
||||
<bounds x="1184" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_33" ref="debug_button_label_33">
|
||||
<bounds x="1204" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_34" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x04">
|
||||
<bounds x="1268" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_34" ref="debug_button_label_34">
|
||||
<bounds x="1288" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_35" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x08">
|
||||
<bounds x="1352" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_35" ref="debug_button_label_35">
|
||||
<bounds x="1372" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_36" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x10">
|
||||
<bounds x="1436" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_36" ref="debug_button_label_36">
|
||||
<bounds x="1456" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_37" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x20">
|
||||
<bounds x="1520" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_37" ref="debug_button_label_37">
|
||||
<bounds x="1540" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_38" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x40">
|
||||
<bounds x="1604" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_38" ref="debug_button_label_38">
|
||||
<bounds x="1624" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_39" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x80">
|
||||
<bounds x="1688" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_39" ref="debug_button_label_39">
|
||||
<bounds x="1708" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_40" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x01">
|
||||
<bounds x="1100" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_40" ref="debug_button_label_40">
|
||||
<bounds x="1120" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_41" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x02">
|
||||
<bounds x="1184" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_41" ref="debug_button_label_41">
|
||||
<bounds x="1204" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_42" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x04">
|
||||
<bounds x="1268" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_42" ref="debug_button_label_42">
|
||||
<bounds x="1288" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_43" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x08">
|
||||
<bounds x="1352" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_43" ref="debug_button_label_43">
|
||||
<bounds x="1372" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_44" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x10">
|
||||
<bounds x="1436" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_44" ref="debug_button_label_44">
|
||||
<bounds x="1456" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_45" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x20">
|
||||
<bounds x="1520" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_45" ref="debug_button_label_45">
|
||||
<bounds x="1540" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_46" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x40">
|
||||
<bounds x="1604" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_46" ref="debug_button_label_46">
|
||||
<bounds x="1624" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_47" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x80">
|
||||
<bounds x="1688" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_47" ref="debug_button_label_47">
|
||||
<bounds x="1708" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_48" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x01">
|
||||
<bounds x="1100" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_48" ref="debug_button_label_48">
|
||||
<bounds x="1120" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_49" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x02">
|
||||
<bounds x="1184" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_49" ref="debug_button_label_49">
|
||||
<bounds x="1204" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_50" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x04">
|
||||
<bounds x="1268" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_50" ref="debug_button_label_50">
|
||||
<bounds x="1288" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_51" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x08">
|
||||
<bounds x="1352" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_51" ref="debug_button_label_51">
|
||||
<bounds x="1372" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_52" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x10">
|
||||
<bounds x="1436" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_52" ref="debug_button_label_52">
|
||||
<bounds x="1456" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_53" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x20">
|
||||
<bounds x="1520" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_53" ref="debug_button_label_53">
|
||||
<bounds x="1540" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_54" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x40">
|
||||
<bounds x="1604" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_54" ref="debug_button_label_54">
|
||||
<bounds x="1624" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_55" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x80">
|
||||
<bounds x="1688" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_55" ref="debug_button_label_55">
|
||||
<bounds x="1708" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_56" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x01">
|
||||
<bounds x="1100" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_56" ref="debug_button_label_56">
|
||||
<bounds x="1120" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_57" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x02">
|
||||
<bounds x="1184" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_57" ref="debug_button_label_57">
|
||||
<bounds x="1204" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_58" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x04">
|
||||
<bounds x="1268" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_58" ref="debug_button_label_58">
|
||||
<bounds x="1288" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_59" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x08">
|
||||
<bounds x="1352" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_59" ref="debug_button_label_59">
|
||||
<bounds x="1372" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_60" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x10">
|
||||
<bounds x="1436" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_60" ref="debug_button_label_60">
|
||||
<bounds x="1456" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_61" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x20">
|
||||
<bounds x="1520" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_61" ref="debug_button_label_61">
|
||||
<bounds x="1540" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_62" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x40">
|
||||
<bounds x="1604" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_62" ref="debug_button_label_62">
|
||||
<bounds x="1624" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_63" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x80">
|
||||
<bounds x="1688" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_63" ref="debug_button_label_63">
|
||||
<bounds x="1708" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="vfd0" ref="debug_vfd" state="0">
|
||||
<bounds x="1150" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd1" ref="debug_vfd" state="0">
|
||||
<bounds x="1182" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd2" ref="debug_vfd" state="0">
|
||||
<bounds x="1214" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd3" ref="debug_vfd" state="0">
|
||||
<bounds x="1246" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd4" ref="debug_vfd" state="0">
|
||||
<bounds x="1278" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd5" ref="debug_vfd" state="0">
|
||||
<bounds x="1310" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd6" ref="debug_vfd" state="0">
|
||||
<bounds x="1342" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd7" ref="debug_vfd" state="0">
|
||||
<bounds x="1374" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd8" ref="debug_vfd" state="0">
|
||||
<bounds x="1406" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd9" ref="debug_vfd" state="0">
|
||||
<bounds x="1438" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd10" ref="debug_vfd" state="0">
|
||||
<bounds x="1470" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd11" ref="debug_vfd" state="0">
|
||||
<bounds x="1502" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd12" ref="debug_vfd" state="0">
|
||||
<bounds x="1534" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd13" ref="debug_vfd" state="0">
|
||||
<bounds x="1566" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd14" ref="debug_vfd" state="0">
|
||||
<bounds x="1598" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd15" ref="debug_vfd" state="0">
|
||||
<bounds x="1630" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
|
||||
<repeat count="8">
|
||||
<param name="s" start="0" increment="8" />
|
||||
<param name="y" start="671" increment="48" />
|
||||
<repeat count="8">
|
||||
<param name="n" start="~s~" increment="1" />
|
||||
<param name="x" start="1120" increment="84" />
|
||||
<element name="debug_button_label_~n~" ref="debug_button_label_~n~">
|
||||
<bounds x="~x~" y="~y~" width="40" height="22"/>
|
||||
</element>
|
||||
</repeat>
|
||||
</repeat>
|
||||
|
||||
<repeat count="16">
|
||||
<param name="n" start="0" increment="1" />
|
||||
<param name="x" start="1150" increment="32" />
|
||||
<element name="vfd~n~" ref="debug_vfd" state="0">
|
||||
<bounds x="~x~" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
</repeat>
|
||||
|
||||
<element ref="reel_background">
|
||||
<bounds x="1100" y="32" width="120" height="240"/>
|
||||
</element>
|
||||
|
@ -4139,6 +4139,7 @@
|
||||
<element ref="debug_backdrop_colour">
|
||||
<bounds x="0" y="0" width="1920" height="1080"/>
|
||||
</element>
|
||||
|
||||
<element name="lamp0" ref="debug_lamp_button" state="0">
|
||||
<bounds x="32" y="32" width="60" height="60"/>
|
||||
</element>
|
||||
@ -4923,435 +4924,216 @@
|
||||
<element name="debug_button_0" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x01">
|
||||
<bounds x="1100" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_0" ref="debug_button_label_0">
|
||||
<bounds x="1120" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_1" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x02">
|
||||
<bounds x="1184" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_1" ref="debug_button_label_1">
|
||||
<bounds x="1204" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_2" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x04">
|
||||
<bounds x="1268" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_2" ref="debug_button_label_2">
|
||||
<bounds x="1288" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_3" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x08">
|
||||
<bounds x="1352" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_3" ref="debug_button_label_3">
|
||||
<bounds x="1372" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_4" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x10">
|
||||
<bounds x="1436" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_4" ref="debug_button_label_4">
|
||||
<bounds x="1456" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_5" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x20">
|
||||
<bounds x="1520" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_5" ref="debug_button_label_5">
|
||||
<bounds x="1540" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_6" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x40">
|
||||
<bounds x="1604" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_6" ref="debug_button_label_6">
|
||||
<bounds x="1624" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_7" ref="debug_button_unreferenced" state="0" inputtag="IN-0" inputmask="0x80">
|
||||
<bounds x="1688" y="660" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_7" ref="debug_button_label_7">
|
||||
<bounds x="1708" y="671" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp0" ref="debug_button_standard" state="0" inputtag="IN-1" inputmask="0x01">
|
||||
<bounds x="1100" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_8" ref="debug_button_label_8">
|
||||
<bounds x="1120" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp1" ref="debug_button_standard" state="0" inputtag="IN-1" inputmask="0x02">
|
||||
<bounds x="1184" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_9" ref="debug_button_label_9">
|
||||
<bounds x="1204" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp2" ref="debug_button_standard" state="0" inputtag="IN-1" inputmask="0x04">
|
||||
<bounds x="1268" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_10" ref="debug_button_label_10">
|
||||
<bounds x="1288" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp3" ref="debug_button_standard" state="0" inputtag="IN-1" inputmask="0x08">
|
||||
<bounds x="1352" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_11" ref="debug_button_label_11">
|
||||
<bounds x="1372" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp4" ref="debug_button_standard" state="0" inputtag="IN-1" inputmask="0x10">
|
||||
<bounds x="1436" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_12" ref="debug_button_label_12">
|
||||
<bounds x="1456" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_13" ref="debug_button_unreferenced" state="0" inputtag="IN-1" inputmask="0x20">
|
||||
<bounds x="1520" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_13" ref="debug_button_label_13">
|
||||
<bounds x="1540" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_14" ref="debug_button_unreferenced" state="0" inputtag="IN-1" inputmask="0x40">
|
||||
<bounds x="1604" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_14" ref="debug_button_label_14">
|
||||
<bounds x="1624" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_15" ref="debug_button_standard" state="0" inputtag="IN-1" inputmask="0x80">
|
||||
<bounds x="1688" y="708" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_15" ref="debug_button_label_15">
|
||||
<bounds x="1708" y="719" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp5" ref="debug_button_standard" state="0" inputtag="IN-2" inputmask="0x01">
|
||||
<bounds x="1100" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_16" ref="debug_button_label_16">
|
||||
<bounds x="1120" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp6" ref="debug_button_standard" state="0" inputtag="IN-2" inputmask="0x02">
|
||||
<bounds x="1184" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_17" ref="debug_button_label_17">
|
||||
<bounds x="1204" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="lamp7" ref="debug_button_standard" state="0" inputtag="IN-2" inputmask="0x04">
|
||||
<bounds x="1268" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_18" ref="debug_button_label_18">
|
||||
<bounds x="1288" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_19" ref="debug_button_unreferenced" state="0" inputtag="IN-2" inputmask="0x08">
|
||||
<bounds x="1352" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_19" ref="debug_button_label_19">
|
||||
<bounds x="1372" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_20" ref="debug_button_unreferenced" state="0" inputtag="IN-2" inputmask="0x10">
|
||||
<bounds x="1436" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_20" ref="debug_button_label_20">
|
||||
<bounds x="1456" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_21" ref="debug_button_unreferenced" state="0" inputtag="IN-2" inputmask="0x20">
|
||||
<bounds x="1520" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_21" ref="debug_button_label_21">
|
||||
<bounds x="1540" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_22" ref="debug_button_unreferenced" state="0" inputtag="IN-2" inputmask="0x40">
|
||||
<bounds x="1604" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_22" ref="debug_button_label_22">
|
||||
<bounds x="1624" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_23" ref="debug_button_unreferenced" state="0" inputtag="IN-2" inputmask="0x80">
|
||||
<bounds x="1688" y="756" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_23" ref="debug_button_label_23">
|
||||
<bounds x="1708" y="767" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_24" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x01">
|
||||
<bounds x="1100" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_24" ref="debug_button_label_24">
|
||||
<bounds x="1120" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_25" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x02">
|
||||
<bounds x="1184" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_25" ref="debug_button_label_25">
|
||||
<bounds x="1204" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_26" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x04">
|
||||
<bounds x="1268" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_26" ref="debug_button_label_26">
|
||||
<bounds x="1288" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_27" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x08">
|
||||
<bounds x="1352" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_27" ref="debug_button_label_27">
|
||||
<bounds x="1372" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_28" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x10">
|
||||
<bounds x="1436" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_28" ref="debug_button_label_28">
|
||||
<bounds x="1456" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_29" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x20">
|
||||
<bounds x="1520" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_29" ref="debug_button_label_29">
|
||||
<bounds x="1540" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_30" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x40">
|
||||
<bounds x="1604" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_30" ref="debug_button_label_30">
|
||||
<bounds x="1624" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_31" ref="debug_button_unreferenced" state="0" inputtag="IN-3" inputmask="0x80">
|
||||
<bounds x="1688" y="804" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_31" ref="debug_button_label_31">
|
||||
<bounds x="1708" y="815" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_32" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x01">
|
||||
<bounds x="1100" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_32" ref="debug_button_label_32">
|
||||
<bounds x="1120" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_33" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x02">
|
||||
<bounds x="1184" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_33" ref="debug_button_label_33">
|
||||
<bounds x="1204" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_34" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x04">
|
||||
<bounds x="1268" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_34" ref="debug_button_label_34">
|
||||
<bounds x="1288" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_35" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x08">
|
||||
<bounds x="1352" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_35" ref="debug_button_label_35">
|
||||
<bounds x="1372" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_36" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x10">
|
||||
<bounds x="1436" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_36" ref="debug_button_label_36">
|
||||
<bounds x="1456" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_37" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x20">
|
||||
<bounds x="1520" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_37" ref="debug_button_label_37">
|
||||
<bounds x="1540" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_38" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x40">
|
||||
<bounds x="1604" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_38" ref="debug_button_label_38">
|
||||
<bounds x="1624" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_39" ref="debug_button_unreferenced" state="0" inputtag="IN-4" inputmask="0x80">
|
||||
<bounds x="1688" y="852" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_39" ref="debug_button_label_39">
|
||||
<bounds x="1708" y="863" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_40" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x01">
|
||||
<bounds x="1100" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_40" ref="debug_button_label_40">
|
||||
<bounds x="1120" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_41" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x02">
|
||||
<bounds x="1184" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_41" ref="debug_button_label_41">
|
||||
<bounds x="1204" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_42" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x04">
|
||||
<bounds x="1268" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_42" ref="debug_button_label_42">
|
||||
<bounds x="1288" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_43" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x08">
|
||||
<bounds x="1352" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_43" ref="debug_button_label_43">
|
||||
<bounds x="1372" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_44" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x10">
|
||||
<bounds x="1436" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_44" ref="debug_button_label_44">
|
||||
<bounds x="1456" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_45" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x20">
|
||||
<bounds x="1520" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_45" ref="debug_button_label_45">
|
||||
<bounds x="1540" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_46" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x40">
|
||||
<bounds x="1604" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_46" ref="debug_button_label_46">
|
||||
<bounds x="1624" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_47" ref="debug_button_unreferenced" state="0" inputtag="IN-5" inputmask="0x80">
|
||||
<bounds x="1688" y="900" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_47" ref="debug_button_label_47">
|
||||
<bounds x="1708" y="911" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_48" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x01">
|
||||
<bounds x="1100" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_48" ref="debug_button_label_48">
|
||||
<bounds x="1120" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_49" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x02">
|
||||
<bounds x="1184" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_49" ref="debug_button_label_49">
|
||||
<bounds x="1204" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_50" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x04">
|
||||
<bounds x="1268" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_50" ref="debug_button_label_50">
|
||||
<bounds x="1288" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_51" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x08">
|
||||
<bounds x="1352" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_51" ref="debug_button_label_51">
|
||||
<bounds x="1372" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_52" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x10">
|
||||
<bounds x="1436" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_52" ref="debug_button_label_52">
|
||||
<bounds x="1456" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_53" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x20">
|
||||
<bounds x="1520" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_53" ref="debug_button_label_53">
|
||||
<bounds x="1540" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_54" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x40">
|
||||
<bounds x="1604" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_54" ref="debug_button_label_54">
|
||||
<bounds x="1624" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_55" ref="debug_button_unreferenced" state="0" inputtag="IN-6" inputmask="0x80">
|
||||
<bounds x="1688" y="948" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_55" ref="debug_button_label_55">
|
||||
<bounds x="1708" y="959" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_56" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x01">
|
||||
<bounds x="1100" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_56" ref="debug_button_label_56">
|
||||
<bounds x="1120" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_57" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x02">
|
||||
<bounds x="1184" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_57" ref="debug_button_label_57">
|
||||
<bounds x="1204" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_58" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x04">
|
||||
<bounds x="1268" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_58" ref="debug_button_label_58">
|
||||
<bounds x="1288" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_59" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x08">
|
||||
<bounds x="1352" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_59" ref="debug_button_label_59">
|
||||
<bounds x="1372" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_60" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x10">
|
||||
<bounds x="1436" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_60" ref="debug_button_label_60">
|
||||
<bounds x="1456" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_61" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x20">
|
||||
<bounds x="1520" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_61" ref="debug_button_label_61">
|
||||
<bounds x="1540" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_62" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x40">
|
||||
<bounds x="1604" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_62" ref="debug_button_label_62">
|
||||
<bounds x="1624" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="debug_button_63" ref="debug_button_unreferenced" state="0" inputtag="IN-7" inputmask="0x80">
|
||||
<bounds x="1688" y="996" width="80" height="44"/>
|
||||
</element>
|
||||
<element name="debug_button_label_63" ref="debug_button_label_63">
|
||||
<bounds x="1708" y="1007" width="40" height="22"/>
|
||||
</element>
|
||||
<element name="vfd0" ref="debug_vfd" state="0">
|
||||
<bounds x="1150" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd1" ref="debug_vfd" state="0">
|
||||
<bounds x="1182" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd2" ref="debug_vfd" state="0">
|
||||
<bounds x="1214" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd3" ref="debug_vfd" state="0">
|
||||
<bounds x="1246" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd4" ref="debug_vfd" state="0">
|
||||
<bounds x="1278" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd5" ref="debug_vfd" state="0">
|
||||
<bounds x="1310" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd6" ref="debug_vfd" state="0">
|
||||
<bounds x="1342" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd7" ref="debug_vfd" state="0">
|
||||
<bounds x="1374" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd8" ref="debug_vfd" state="0">
|
||||
<bounds x="1406" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd9" ref="debug_vfd" state="0">
|
||||
<bounds x="1438" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd10" ref="debug_vfd" state="0">
|
||||
<bounds x="1470" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd11" ref="debug_vfd" state="0">
|
||||
<bounds x="1502" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd12" ref="debug_vfd" state="0">
|
||||
<bounds x="1534" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd13" ref="debug_vfd" state="0">
|
||||
<bounds x="1566" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd14" ref="debug_vfd" state="0">
|
||||
<bounds x="1598" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
<element name="vfd15" ref="debug_vfd" state="0">
|
||||
<bounds x="1630" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
|
||||
<repeat count="8">
|
||||
<param name="s" start="0" increment="8" />
|
||||
<param name="y" start="671" increment="48" />
|
||||
<repeat count="8">
|
||||
<param name="n" start="~s~" increment="1" />
|
||||
<param name="x" start="1120" increment="84" />
|
||||
<element name="debug_button_label_~n~" ref="debug_button_label_~n~">
|
||||
<bounds x="~x~" y="~y~" width="40" height="22"/>
|
||||
</element>
|
||||
</repeat>
|
||||
</repeat>
|
||||
|
||||
<repeat count="16">
|
||||
<param name="n" start="0" increment="1" />
|
||||
<param name="x" start="1150" increment="32" />
|
||||
<element name="vfd~n~" ref="debug_vfd" state="0">
|
||||
<bounds x="~x~" y="600" width="32" height="48"/>
|
||||
</element>
|
||||
</repeat>
|
||||
|
||||
<element ref="reel_background">
|
||||
<bounds x="1100" y="32" width="120" height="240"/>
|
||||
</element>
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,281 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Aaron Giles
|
||||
/***************************************************************************
|
||||
|
||||
video/rpunch.cpp
|
||||
|
||||
Functions to emulate the video hardware of the machine.
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/rpunch.h"
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Tilemap callbacks
|
||||
*
|
||||
*************************************/
|
||||
|
||||
TILE_GET_INFO_MEMBER(rpunch_state::get_bg0_tile_info)
|
||||
{
|
||||
const u16 data = m_videoram[tile_index];
|
||||
int code;
|
||||
if (m_videoflags & 0x0400) code = (data & 0x0fff) | 0x2000;
|
||||
else code = (data & 0x1fff);
|
||||
|
||||
tileinfo.set(0,
|
||||
code,
|
||||
((m_videoflags & 0x0010) >> 1) | ((data >> 13) & 7),
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(rpunch_state::get_bg1_tile_info)
|
||||
{
|
||||
const u16 data = m_videoram[0x1000 | tile_index];
|
||||
int code;
|
||||
if (m_videoflags & 0x0800) code = (data & 0x0fff) | 0x2000;
|
||||
else code = (data & 0x1fff);
|
||||
|
||||
tileinfo.set(1,
|
||||
code,
|
||||
((m_videoflags & 0x0020) >> 2) | ((data >> 13) & 7),
|
||||
0);
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Video system start
|
||||
*
|
||||
*************************************/
|
||||
|
||||
TIMER_CALLBACK_MEMBER(rpunch_state::crtc_interrupt_gen)
|
||||
{
|
||||
m_maincpu->set_input_line(1, HOLD_LINE);
|
||||
if (param != 0)
|
||||
m_crtc_timer->adjust(m_screen->frame_period() / param, 0, m_screen->frame_period() / param);
|
||||
}
|
||||
|
||||
|
||||
VIDEO_START_MEMBER(rpunch_state,rpunch)
|
||||
{
|
||||
m_videoflags = 0;
|
||||
m_sprite_xoffs = 0;
|
||||
|
||||
/* allocate tilemaps for the backgrounds */
|
||||
m_background[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rpunch_state::get_bg0_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
|
||||
m_background[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rpunch_state::get_bg1_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
|
||||
|
||||
/* configure the tilemaps */
|
||||
m_background[1]->set_transparent_pen(15);
|
||||
|
||||
m_pixmap = std::make_unique<bitmap_ind16>(512, 256);
|
||||
|
||||
const rectangle pixmap_rect(0,511,0,255);
|
||||
m_pixmap->fill(0xf, pixmap_rect);
|
||||
|
||||
/* reset the timer */
|
||||
m_crtc_timer = timer_alloc(FUNC(rpunch_state::crtc_interrupt_gen), this);
|
||||
|
||||
save_item(NAME(*m_pixmap));
|
||||
}
|
||||
|
||||
|
||||
VIDEO_START_MEMBER(rpunch_state,svolley)
|
||||
{
|
||||
VIDEO_START_CALL_MEMBER(rpunch);
|
||||
m_background[0]->set_scrolldx(8, 0); // aligns middle net sprite with bg as shown in reference
|
||||
m_sprite_xoffs = -4;
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Write handlers
|
||||
*
|
||||
*************************************/
|
||||
|
||||
u8 rpunch_state::pixmap_r(offs_t offset)
|
||||
{
|
||||
const int sy = offset >> 8;
|
||||
const int sx = (offset & 0xff) << 1;
|
||||
|
||||
return ((m_pixmap->pix(sy & 0xff, sx & ~1) & 0xf) << 4) | (m_pixmap->pix(sy & 0xff, sx | 1) & 0xf);
|
||||
}
|
||||
|
||||
void rpunch_state::pixmap_w(offs_t offset, u8 data)
|
||||
{
|
||||
const int sy = offset >> 8;
|
||||
const int sx = (offset & 0xff) << 1;
|
||||
|
||||
m_pixmap->pix(sy & 0xff, sx & ~1) = ((data & 0xf0) >> 4);
|
||||
m_pixmap->pix(sy & 0xff, sx | 1) = (data & 0x0f);
|
||||
}
|
||||
|
||||
void rpunch_state::videoram_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
const int tmap = offset >> 12;
|
||||
const int tile_index = offset & 0xfff;
|
||||
COMBINE_DATA(&m_videoram[offset]);
|
||||
m_background[tmap]->mark_tile_dirty(tile_index);
|
||||
}
|
||||
|
||||
|
||||
void rpunch_state::videoreg_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
const int oldword = m_videoflags;
|
||||
COMBINE_DATA(&m_videoflags);
|
||||
|
||||
if (m_videoflags != oldword)
|
||||
{
|
||||
/* invalidate tilemaps */
|
||||
if ((oldword ^ m_videoflags) & 0x0410)
|
||||
m_background[0]->mark_all_dirty();
|
||||
if ((oldword ^ m_videoflags) & 0x0820)
|
||||
m_background[1]->mark_all_dirty();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void rpunch_state::scrollreg_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7 && ACCESSING_BITS_8_15)
|
||||
switch (offset)
|
||||
{
|
||||
case 0:
|
||||
m_background[0]->set_scrolly(0, data & 0x1ff);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
m_background[0]->set_scrollx(0, data & 0x1ff);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
m_background[1]->set_scrolly(0, data & 0x1ff);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
m_background[1]->set_scrollx(0, data & 0x1ff);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void rpunch_state::gga_w(offs_t offset, u8 data)
|
||||
{
|
||||
m_gga->write(offset >> 5, data & 0xff);
|
||||
}
|
||||
|
||||
|
||||
void rpunch_state::gga_data_w(offs_t offset, u8 data)
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
/* only register we know about.... */
|
||||
case 0x0b:
|
||||
m_crtc_timer->adjust(m_screen->time_until_vblank_start(), (data == 0xc0) ? 2 : 1);
|
||||
break;
|
||||
|
||||
default:
|
||||
logerror("CRTC register %02X = %02X\n", offset, data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void rpunch_state::sprite_ctrl_w(offs_t offset, u8 data)
|
||||
{
|
||||
if (offset == 0)
|
||||
{
|
||||
m_sprite_num = data & 0x3f;
|
||||
logerror("Number of sprites = %02X\n", data & 0x3f);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_sprite_pri = data & 0x3f;
|
||||
logerror("Sprite priority point = %02X\n", data & 0x3f);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Sprite routines
|
||||
*
|
||||
*************************************/
|
||||
|
||||
void rpunch_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
/* draw the sprites */
|
||||
int offs = m_sprite_num;
|
||||
while (offs > 0)
|
||||
{
|
||||
offs--;
|
||||
const u32 ram = offs << 2;
|
||||
u32 pri = 0; // above everything except direct mapped bitmap
|
||||
/* this seems like the most plausible explanation */
|
||||
if (offs < m_sprite_pri)
|
||||
pri |= GFX_PMASK_2; // behind foreground
|
||||
|
||||
const u16 data1 = m_spriteram[ram + 1];
|
||||
const u32 code = data1 & 0x7ff;
|
||||
|
||||
const u16 data0 = m_spriteram[ram + 0];
|
||||
const u16 data2 = m_spriteram[ram + 2];
|
||||
int x = (data2 & 0x1ff) + 8;
|
||||
int y = 513 - (data0 & 0x1ff);
|
||||
const bool xflip = data1 & 0x1000;
|
||||
const bool yflip = data1 & 0x0800;
|
||||
const u32 color = ((data1 >> 13) & 7) | ((m_videoflags & 0x0040) >> 3);
|
||||
|
||||
if (x > cliprect.max_x) x -= 512;
|
||||
if (y > cliprect.max_y) y -= 512;
|
||||
|
||||
m_gfxdecode->gfx(2)->prio_transpen(bitmap,cliprect,
|
||||
code, color + (m_sprite_palette / 16), xflip, yflip, x + m_sprite_xoffs, y,
|
||||
m_screen->priority(), pri, 15);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Bitmap routines
|
||||
*
|
||||
*************************************/
|
||||
|
||||
void rpunch_state::draw_bitmap(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
const u32 colourbase = 512 + ((m_videoflags & 0x000f) << 4);
|
||||
|
||||
for (int y = cliprect.min_y; y <= cliprect.max_y; y++)
|
||||
{
|
||||
u16 const *const src = &m_pixmap->pix(y & 0xff);
|
||||
u16 *const dst = &bitmap.pix(y);
|
||||
for(int x = cliprect.min_x / 4; x <= cliprect.max_x; x++)
|
||||
{
|
||||
const u16 pix = src[(x + 4) & 0x1ff];
|
||||
if ((pix & 0xf) != 0xf)
|
||||
dst[x] = colourbase + pix;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Main screen refresh
|
||||
*
|
||||
*************************************/
|
||||
|
||||
u32 rpunch_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
screen.priority().fill(0, cliprect);
|
||||
m_background[0]->draw(screen, bitmap, cliprect, 0,1);
|
||||
m_background[1]->draw(screen, bitmap, cliprect, 0,2);
|
||||
draw_sprites(bitmap, cliprect);
|
||||
draw_bitmap(bitmap, cliprect);
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user