diff options
author | 2019-09-13 23:31:18 +0900 | |
---|---|---|
committer | 2019-09-13 10:31:18 -0400 | |
commit | 4ac3fa8236943cebe9c96d925e1ddc16d7ce9374 (patch) | |
tree | 3f47b430951a2713a2995eff74563f12fa25294d /src/emu/video | |
parent | 5ebacc324561582617a339d5931a654fa6125db7 (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/video')
-rw-r--r-- | src/emu/video/generic.cpp | 61 | ||||
-rw-r--r-- | src/emu/video/generic.h | 6 |
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 */ |