mirror of
https://github.com/holub/mame
synced 2025-04-25 01:40:16 +03:00
atarist: Fix out-of-bounds memory scribbling (nw)
This commit is contained in:
parent
6d750184a2
commit
4877f8d735
@ -203,6 +203,7 @@ public:
|
||||
inline pen_t shift_mode_2();
|
||||
void shifter_tick();
|
||||
inline void shifter_load();
|
||||
inline void draw_pixel(int x, int y, u32 pen);
|
||||
void glue_tick();
|
||||
void set_screen_parameters();
|
||||
void blitter_source();
|
||||
|
@ -193,6 +193,12 @@ inline void st_state::shifter_load()
|
||||
// glue_tick -
|
||||
//-------------------------------------------------
|
||||
|
||||
void st_state::draw_pixel(int x, int y, u32 pen)
|
||||
{
|
||||
if(x < m_bitmap.width() && y < m_bitmap.height())
|
||||
m_bitmap.pix32(y, x) = pen;
|
||||
}
|
||||
|
||||
void st_state::glue_tick()
|
||||
{
|
||||
int y = machine().first_screen()->vpos();
|
||||
@ -241,36 +247,36 @@ void st_state::glue_tick()
|
||||
{
|
||||
case 0:
|
||||
pen = shift_mode_0();
|
||||
m_bitmap.pix32(y, x) = pen;
|
||||
m_bitmap.pix32(y, x+1) = pen;
|
||||
draw_pixel(x, y, pen);
|
||||
draw_pixel(x+1, y, pen);
|
||||
pen = shift_mode_0();
|
||||
m_bitmap.pix32(y, x+2) = pen;
|
||||
m_bitmap.pix32(y, x+3) = pen;
|
||||
draw_pixel(x+2, y, pen);
|
||||
draw_pixel(x+3, y, pen);
|
||||
pen = shift_mode_0();
|
||||
m_bitmap.pix32(y, x+4) = pen;
|
||||
m_bitmap.pix32(y, x+5) = pen;
|
||||
draw_pixel(x+4, y, pen);
|
||||
draw_pixel(x+5, y, pen);
|
||||
pen = shift_mode_0();
|
||||
m_bitmap.pix32(y, x+6) = pen;
|
||||
m_bitmap.pix32(y, x+7) = pen;
|
||||
draw_pixel(x+6, y, pen);
|
||||
draw_pixel(x+7, y, pen);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
pen = shift_mode_1();
|
||||
m_bitmap.pix32(y, x) = pen;
|
||||
draw_pixel(x, y, pen);
|
||||
pen = shift_mode_1();
|
||||
m_bitmap.pix32(y, x+1) = pen;
|
||||
draw_pixel(x+1, y, pen);
|
||||
pen = shift_mode_1();
|
||||
m_bitmap.pix32(y, x+2) = pen;
|
||||
draw_pixel(x+2, y, pen);
|
||||
pen = shift_mode_1();
|
||||
m_bitmap.pix32(y, x+3) = pen;
|
||||
draw_pixel(x+3, y, pen);
|
||||
pen = shift_mode_1();
|
||||
m_bitmap.pix32(y, x+4) = pen;
|
||||
draw_pixel(x+4, y, pen);
|
||||
pen = shift_mode_1();
|
||||
m_bitmap.pix32(y, x+5) = pen;
|
||||
draw_pixel(x+5, y, pen);
|
||||
pen = shift_mode_1();
|
||||
m_bitmap.pix32(y, x+6) = pen;
|
||||
draw_pixel(x+6, y, pen);
|
||||
pen = shift_mode_1();
|
||||
m_bitmap.pix32(y, x+7) = pen;
|
||||
draw_pixel(x+7, y, pen);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
|
Loading…
Reference in New Issue
Block a user