summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu
diff options
context:
space:
mode:
author cam900 <dbtlrchl@naver.com>2019-09-13 23:31:18 +0900
committer R. Belmont <rb6502@users.noreply.github.com>2019-09-13 10:31:18 -0400
commit4ac3fa8236943cebe9c96d925e1ddc16d7ce9374 (patch)
tree3f47b430951a2713a2995eff74563f12fa25294d /src/emu
parent5ebacc324561582617a339d5931a654fa6125db7 (diff)
emu/video/generic.cpp : Add 2x2 grouped case of 16x16 gfx layouts (#5625)
* emu/video/generic.cpp : Add grouped case of 16x16 gfx layouts these are made of 4 8x8 tiles, currently 4bpp packed and 8bpp raw layout is exists. More usage of generic gfx layouts, Fix spacing * generic.cpp : Remove unused * emu/video/generic.cpp : Fix naming, Add notes * megasys1.cpp : Fix this
Diffstat (limited to 'src/emu')
-rw-r--r--src/emu/video/generic.cpp61
-rw-r--r--src/emu/video/generic.h6
2 files changed, 67 insertions, 0 deletions
diff --git a/src/emu/video/generic.cpp b/src/emu/video/generic.cpp
index 9cce80ff10e..44d8f124a38 100644
--- a/src/emu/video/generic.cpp
+++ b/src/emu/video/generic.cpp
@@ -93,6 +93,7 @@ const gfx_layout gfx_16x16x4_planar =
16*16
};
+// packed gfxs; msb and lsb is start nibble of packed pixel byte
const gfx_layout gfx_8x8x4_packed_msb =
{
8,8,
@@ -140,3 +141,63 @@ const gfx_layout gfx_16x16x4_packed_lsb =
};
GFXLAYOUT_RAW(gfx_16x16x8_raw, 16, 16, 16*8, 16*16*8);
+
+/*
+ 16x16; grouped of 4 8x8 tiles (row align)
+ 0 1
+ 2 3
+*/
+const gfx_layout gfx_8x8x4_row_2x2_group_packed_msb =
+{
+ 16,16,
+ RGN_FRAC(1,1),
+ 4,
+ { STEP4(0,1) },
+ { STEP8(0,4), STEP8(4*8*8,4) }, // x order : hi nibble first, low nibble second
+ { STEP8(0,4*8), STEP8(4*8*8*2,4*8) },
+ 16*16*4
+};
+
+const gfx_layout gfx_8x8x4_row_2x2_group_packed_lsb =
+{
+ 16,16,
+ RGN_FRAC(1,1),
+ 4,
+ { STEP4(0,1) },
+ { // x order : low nibble first, hi nibble second
+ 1*4, 0*4, 3*4, 2*4, 5*4, 4*4, 7*4, 6*4,
+ 4*8*8+1*4, 4*8*8+0*4, 4*8*8+3*4, 4*8*8+2*4, 4*8*8+5*4, 4*8*8+4*4, 4*8*8+7*4, 4*8*8+6*4
+ },
+ { STEP8(0,4*8), STEP8(4*8*8*2,4*8) },
+ 16*16*4
+};
+
+/*
+ 16x16; grouped of 4 8x8 tiles (col align)
+ 0 2
+ 1 3
+*/
+const gfx_layout gfx_8x8x4_col_2x2_group_packed_msb =
+{
+ 16,16,
+ RGN_FRAC(1,1),
+ 4,
+ { STEP4(0,1) },
+ { STEP8(0,4), STEP8(4*8*16,4) }, // x order : hi nibble first, low nibble second
+ { STEP16(0,4*8) },
+ 16*16*4
+};
+
+const gfx_layout gfx_8x8x4_col_2x2_group_packed_lsb =
+{
+ 16,16,
+ RGN_FRAC(1,1),
+ 4,
+ { STEP4(0,1) },
+ { // x order : low nibble first, hi nibble second
+ 1*4, 0*4, 3*4, 2*4, 5*4, 4*4, 7*4, 6*4,
+ 4*8*16+1*4, 4*8*16+0*4, 4*8*16+3*4, 4*8*16+2*4, 4*8*16+5*4, 4*8*16+4*4, 4*8*16+7*4, 4*8*16+6*4
+ },
+ { STEP16(0,4*8) },
+ 16*16*4
+};
diff --git a/src/emu/video/generic.h b/src/emu/video/generic.h
index 9c1f30bc7b3..3d90edecb38 100644
--- a/src/emu/video/generic.h
+++ b/src/emu/video/generic.h
@@ -36,4 +36,10 @@ extern const gfx_layout gfx_16x16x4_packed_msb;
extern const gfx_layout gfx_16x16x4_packed_lsb;
extern const gfx_layout gfx_16x16x8_raw;
+extern const gfx_layout gfx_8x8x4_row_2x2_group_packed_msb;
+extern const gfx_layout gfx_8x8x4_row_2x2_group_packed_lsb;
+
+extern const gfx_layout gfx_8x8x4_col_2x2_group_packed_msb;
+extern const gfx_layout gfx_8x8x4_col_2x2_group_packed_lsb;
+
#endif /* MAME_EMU_VIDEO_GENERIC_H */