mirror of
https://github.com/holub/mame
synced 2025-04-19 23:12:11 +03:00
(MESS) gl3000s: added default layout. (nw)
This commit is contained in:
parent
cbd643eb1a
commit
1ccae630b0
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -7793,6 +7793,7 @@ src/mess/layout/esq2by40.lay svneol=native#text/xml
|
||||
src/mess/layout/et3400.lay svneol=native#text/xml
|
||||
src/mess/layout/ex800.lay svneol=native#text/xml
|
||||
src/mess/layout/fidelz80.lay svneol=native#text/xml
|
||||
src/mess/layout/gl3000s.lay svneol=native#text/xml
|
||||
src/mess/layout/glasgow.lay svneol=native#text/xml
|
||||
src/mess/layout/h8.lay svneol=native#text/xml
|
||||
src/mess/layout/instruct.lay svneol=native#text/xml
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "sound/beep.h"
|
||||
#include "imagedev/cartslot.h"
|
||||
#include "rendlay.h"
|
||||
#include "gl3000s.lh"
|
||||
|
||||
|
||||
class pc2000_state : public driver_device
|
||||
@ -178,6 +179,7 @@ ADDRESS_MAP_END
|
||||
|
||||
UINT32 gl3000s_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
bitmap.fill(0);
|
||||
m_lcdc_l->screen_update(screen, bitmap, cliprect);
|
||||
m_lcdc_r->screen_update(screen, bitmap, cliprect);
|
||||
return 0;
|
||||
@ -194,7 +196,7 @@ int gl3000s_sed1520_screen_update(device_t &device, bitmap_ind16 &bitmap, const
|
||||
for (int yi=0; yi<8; yi++)
|
||||
{
|
||||
int px = start_x - (adc ? (80 - x) : x);
|
||||
int py = y*8 + yi;
|
||||
int py = 8 + y*8 + yi;
|
||||
|
||||
if (cliprect.contains(px, py))
|
||||
bitmap.pix16(py, px) = (vram[addr % 0x140] >> yi) & 1;
|
||||
@ -213,6 +215,57 @@ SED1520_UPDATE_CB(gl3000s_screen_update_right)
|
||||
|
||||
SED1520_UPDATE_CB(gl3000s_screen_update_left)
|
||||
{
|
||||
UINT8 sec[3];
|
||||
UINT8 points[2][3];
|
||||
memset(sec, 0, sizeof(sec));
|
||||
memset(points, 0, sizeof(points));
|
||||
|
||||
for (int y=0; y<2; y++)
|
||||
for (int x=59; x<85; x++)
|
||||
{
|
||||
UINT8 data = vram[(y*0x50 + x) % 0x140];
|
||||
int dpos = (x - 74) / 2;
|
||||
|
||||
for (int yi=0; yi<8; yi++)
|
||||
{
|
||||
int state = (data >> yi) & 1;
|
||||
|
||||
if (y == 0 && (x == 74 || x == 76 || x == 78) && yi == 7) sec[dpos] |= (state << 0);
|
||||
else if (y == 0 && (x == 74 || x == 76 || x == 78) && yi == 0) sec[dpos] |= (state << 2);
|
||||
else if (y == 0 && (x == 75 || x == 77 || x == 79) && yi == 7) sec[dpos] |= (state << 5);
|
||||
else if (y == 0 && (x == 75 || x == 77 || x == 79) && yi == 0) sec[dpos] |= (state << 4);
|
||||
else if (y == 0 && (x == 75 || x == 77 || x == 79) && yi == 1) sec[dpos] |= (state << 3);
|
||||
else if (y == 1 && (x == 74 || x == 76 || x == 78) && yi == 7) sec[dpos] |= (state << 1);
|
||||
else if (y == 1 && (x == 75 || x == 77 || x == 79) && yi == 7) sec[dpos] |= (state << 6);
|
||||
|
||||
else if ((x == 74 || x == 76 || x == 78) && yi == 3) points[y][dpos] |= (state << 0);
|
||||
else if ((x == 74 || x == 76 || x == 78) && yi == 4) points[y][dpos] |= (state << 1);
|
||||
else if ((x == 74 || x == 76 || x == 78) && yi == 5) points[y][dpos] |= (state << 2);
|
||||
else if ((x == 75 || x == 77 || x == 79) && yi == 3) points[y][dpos] |= (state << 5);
|
||||
else if ((x == 75 || x == 77 || x == 79) && yi == 4) points[y][dpos] |= (state << 6);
|
||||
else if ((x == 75 || x == 77 || x == 79) && yi == 5) points[y][dpos] |= (state << 4);
|
||||
else if ((x == 75 || x == 77 || x == 79) && yi == 6) points[y][dpos] |= (state << 3);
|
||||
|
||||
else if (y == 1 && x >= 65 && x <= 68 && yi == 7) output_set_indexed_value("LEV", x - 64, state);
|
||||
else if (x >= 59 && x <= 60 && yi == 7) output_set_indexed_value("TRY", x - 58 + (y ? 0 : 1), state);
|
||||
else if (y == 1 && x >= 61 && x <= 64 && yi == 7) output_set_indexed_value("TICK", x - 59, state);
|
||||
else if (y == 0 && x >= 61 && x <= 64 && yi == 7) output_set_indexed_value("TICK", 62 - x + (x >= 63 ? 8 : 0), state);
|
||||
|
||||
else if (x < 74 && yi < 7)
|
||||
{
|
||||
int cx = x - 59;
|
||||
bitmap.pix16(yi, (y ? 0 : 89) + (16 - (cx + cx / 5))) = state;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(int i=0; i<3; i++)
|
||||
{
|
||||
output_set_indexed_value("TIME", i, sec[i]);
|
||||
output_set_indexed_value("P1", i, points[1][i]);
|
||||
output_set_indexed_value("P2", i, points[0][i]);
|
||||
}
|
||||
|
||||
return gl3000s_sed1520_screen_update(device, bitmap, cliprect, vram, start_line, adc, 58);
|
||||
}
|
||||
|
||||
@ -838,10 +891,12 @@ static MACHINE_CONFIG_DERIVED_CLASS( gl3000s, pc2000, gl3000s_state )
|
||||
MCFG_SED1520_ADD("sed1520_r", gl3000s_screen_update_right) // right panel is 61 pixels (59-119)
|
||||
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_SIZE(120, 16)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 120-1, 0, 16-1)
|
||||
MCFG_SCREEN_SIZE(120, 24)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 120-1, 0, 24-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER( gl3000s_state, screen_update )
|
||||
|
||||
MCFG_DEFAULT_LAYOUT(layout_gl3000s)
|
||||
|
||||
MCFG_GFXDECODE_MODIFY("gfxdecode", gl3000s)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
126
src/mess/layout/gl3000s.lay
Normal file
126
src/mess/layout/gl3000s.lay
Normal file
@ -0,0 +1,126 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
<element name="lev1" defstate="0">
|
||||
<text string="1" state="1">
|
||||
<color red="0.36" green="0.32" blue="0.34" />
|
||||
</text>
|
||||
</element>
|
||||
<element name="lev2" defstate="0">
|
||||
<text string="2" state="1">
|
||||
<color red="0.36" green="0.32" blue="0.34" />
|
||||
</text>
|
||||
</element>
|
||||
<element name="lev3" defstate="0">
|
||||
<text string="3" state="1">
|
||||
<color red="0.36" green="0.32" blue="0.34" />
|
||||
</text>
|
||||
</element>
|
||||
<element name="lev4" defstate="0">
|
||||
<text string="4" state="1">
|
||||
<color red="0.36" green="0.32" blue="0.34" />
|
||||
</text>
|
||||
</element>
|
||||
<element name="disk" defstate="0">
|
||||
<disk state="1">
|
||||
<color red="0.36" green="0.32" blue="0.34" />
|
||||
</disk>
|
||||
</element>
|
||||
<element name="rect" defstate="0">
|
||||
<rect state="1">
|
||||
<color red="0.36" green="0.32" blue="0.34" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="digit">
|
||||
<led7seg>
|
||||
<color red="1" green="1" blue="1" />
|
||||
</led7seg>
|
||||
</element>
|
||||
|
||||
<view name="Default Layout">
|
||||
<bezel name="LEV1" element="lev1">
|
||||
<bounds x="36" y="2" width="3" height="4" />
|
||||
</bezel>
|
||||
<bezel name="LEV2" element="lev2">
|
||||
<bounds x="38" y="2" width="3" height="4" />
|
||||
</bezel>
|
||||
<bezel name="LEV3" element="lev3">
|
||||
<bounds x="40" y="2" width="3" height="4" />
|
||||
</bezel>
|
||||
<bezel name="LEV4" element="lev4">
|
||||
<bounds x="42" y="2" width="3" height="4" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="TICK0" element="rect">
|
||||
<bounds x="49" y="2" width="2" height="1" />
|
||||
</bezel>
|
||||
<bezel name="TICK1" element="rect">
|
||||
<bounds x="49" y="3" width="2" height="1" />
|
||||
</bezel>
|
||||
<bezel name="TICK2" element="rect">
|
||||
<bounds x="49" y="4" width="2" height="1" />
|
||||
</bezel>
|
||||
<bezel name="TICK3" element="rect">
|
||||
<bounds x="49" y="5" width="2" height="1" />
|
||||
</bezel>
|
||||
<bezel name="TICK4" element="rect">
|
||||
<bounds x="47" y="5" width="2" height="1" />
|
||||
</bezel>
|
||||
<bezel name="TICK5" element="rect">
|
||||
<bounds x="47" y="4" width="2" height="1" />
|
||||
</bezel>
|
||||
<bezel name="TICK6" element="rect">
|
||||
<bounds x="47" y="3" width="2" height="1" />
|
||||
</bezel>
|
||||
<bezel name="TICK7" element="rect">
|
||||
<bounds x="47" y="2" width="2" height="1" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="TRY1" element="disk">
|
||||
<bounds x="69" y="3" width="3" height="3" />
|
||||
</bezel>
|
||||
<bezel name="TRY2" element="disk">
|
||||
<bounds x="73" y="3" width="3" height="3" />
|
||||
</bezel>
|
||||
<bezel name="TRY3" element="disk">
|
||||
<bounds x="71" y="0" width="3" height="3" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="CASS" element="rect">
|
||||
<bounds x="80" y="2" width="4" height="4" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="TIME0" element="digit">
|
||||
<bounds x="62" y="2" width="3" height="4" />
|
||||
</bezel>
|
||||
<bezel name="TIME1" element="digit">
|
||||
<bounds x="58" y="2" width="3" height="4" />
|
||||
</bezel>
|
||||
<bezel name="TIME2" element="digit">
|
||||
<bounds x="54" y="2" width="3" height="4" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="P10" element="digit">
|
||||
<bounds x="28" y="2" width="3" height="4" />
|
||||
</bezel>
|
||||
<bezel name="P11" element="digit">
|
||||
<bounds x="24" y="2" width="3" height="4" />
|
||||
</bezel>
|
||||
<bezel name="P12" element="digit">
|
||||
<bounds x="20" y="2" width="3" height="4" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="P20" element="digit">
|
||||
<bounds x="116" y="2" width="3" height="4" />
|
||||
</bezel>
|
||||
<bezel name="P21" element="digit">
|
||||
<bounds x="112" y="2" width="3" height="4" />
|
||||
</bezel>
|
||||
<bezel name="P22" element="digit">
|
||||
<bounds x="108" y="2" width="3" height="4" />
|
||||
</bezel>
|
||||
|
||||
<screen index="0">
|
||||
<bounds x="0" y="0" width="120" height="24" />
|
||||
</screen>
|
||||
</view>
|
||||
</mamelayout>
|
@ -2428,6 +2428,7 @@ $(MESS_DRIVERS)/mpf1.o: $(MESS_LAYOUT)/mpf1.lh \
|
||||
$(MESS_VIDEO)/newbrain.o: $(MESS_LAYOUT)/newbrain.lh
|
||||
$(MAME_DRIVERS)/neogeo.o: $(MAME_LAYOUT)/neogeo.lh
|
||||
$(MESS_DRIVERS)/pc1500.o: $(MESS_LAYOUT)/pc1500.lh
|
||||
$(MESS_DRIVERS)/pc2000.o: $(MESS_LAYOUT)/gl3000s.lh
|
||||
$(MESS_VIDEO)/pc8401a.o: $(MESS_LAYOUT)/pc8500.lh
|
||||
$(MESS_DRIVERS)/pcw.o: $(MESS_LAYOUT)/pcw.lh
|
||||
$(MESS_DRIVERS)/pmi80.o: $(MESS_LAYOUT)/pmi80.lh
|
||||
|
Loading…
Reference in New Issue
Block a user