summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/rltennis.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/rltennis.c')
-rw-r--r--src/mame/video/rltennis.c84
1 files changed, 42 insertions, 42 deletions
diff --git a/src/mame/video/rltennis.c b/src/mame/video/rltennis.c
index 8f8412d3b05..ce1ec7f45cf 100644
--- a/src/mame/video/rltennis.c
+++ b/src/mame/video/rltennis.c
@@ -1,73 +1,73 @@
/****************************************************************************************
Reality Tennis - (c) 1993 TCH
-
-
+
+
Blitter registers description (reg/bit names selected arbitrary ) :
700000 - BLT_X_START
- JOANA JOAQUIN
- fedcba98 76543210
+ JOANA JOAQUIN
+ fedcba98 76543210
-------- xxxxxxxx dst x start
xxxxxxxx -------- src x start
-
+
700002 - BLT_X_END
- JOANA JOAQUIN
+ JOANA JOAQUIN
fedcba98 76543210
-------- xxxxxxxx dst x end
xxxxxxxx -------- src x end
-
+
700004 - BLT_Y_START
- JOANA JOAQUIN
- fedcba98 76543210 x start
+ JOANA JOAQUIN
+ fedcba98 76543210 x start
-------- xxxxxxxx
xxxxxxxx --------
-
+
700006 - BLT_Y_END
- JOANA JOAQUIN
- fedcba98 76543210 x start
+ JOANA JOAQUIN
+ fedcba98 76543210 x start
-------- xxxxxxxx
xxxxxxxx --------
-
+
700008 - BLT_FLAGS
JOANA JOAQUIN
fedcba98 76543210
-------- -------x BLTFLAG_DST_X_DIR x dst direction (step inc or dec)
-------- ------x- BLTFLAG_DST_Y_DIR y dst direction
- -------- -----x-- BLTFLAG_DST_LR LR and UD controlls the quarter of framebuffer to use
+ -------- -----x-- BLTFLAG_DST_LR LR and UD controlls the quarter of framebuffer to use
-------- ----x--- BLTFLAG_DST_UD /
-------- ---?---- unknown
- -------- --x----- BLTFLAG_DISPLAY_UD display buffer select
+ -------- --x----- BLTFLAG_DISPLAY_UD display buffer select
-------- ??------ unknown
-------x -------- BLTFLAG_SRC_X_DIR x src direction
------x- -------- BLTFLAG_SRC_Y_DIR y src direction
- -----x-- -------- BLTFLAG_SRC_LR LR and UD controlls the quarter of src buffer to use
+ -----x-- -------- BLTFLAG_SRC_LR LR and UD controlls the quarter of src buffer to use
----x--- -------- BLTFLAG_SRC_UD /
- xxxx---- -------- src ROM num
-
-
+ xxxx---- -------- src ROM num
+
+
70000a - BLT_UNK
JOANA JOAQUIN
fedcba98 76543210
???????? ???????? unknown (used during gameplay ... zoom factors ?)
-
+
70000c - BLT_START
fedcba98 76543210
--?????- ???????? unknown
-------x -------- BLTSTRT_ROM_MSB src ROM MSB
- -x------ -------- BLTSTRT_TRIGGER blit start
+ -x------ -------- BLTSTRT_TRIGGER blit start
x------- -------- BLTSTRT_LAYER FG or BG layer of framebuffer
-
+
70000e - BLT_UNK2
JOANA JOAQUIN
fedcba98 76543210
- ???????? ???????? unknown (set to 0 @ boot)
-
+ ???????? ???????? unknown (set to 0 @ boot)
+
****************************************************************************************/
#include "emu.h"
#include "includes/rltennis.h"
@@ -117,7 +117,7 @@ WRITE16_HANDLER(rlt_blitter_w)
int old_data=state->m_blitter[offset];
COMBINE_DATA(&state->m_blitter[offset]);
int new_data=state->m_blitter[offset];
-
+
if(offset==BLT_FLAGS && ((new_data^old_data) & BLTFLAG_DISPLAY_UD) ) /* visible page flip and clear */
{
if(new_data & BLTFLAG_DISPLAY_UD)
@@ -144,7 +144,7 @@ WRITE16_HANDLER(rlt_blitter_w)
int dst_x1=(state->m_blitter[BLT_X_END]&0xff);
int dst_y1=(state->m_blitter[BLT_Y_END]&0xff);
-
+
int src_x1=((state->m_blitter[BLT_X_END]>>SRC_SHIFT)&0xff)+((state->m_blitter[BLT_FLAGS] & BLTFLAG_SRC_LR)?256:0);
int src_y1=((state->m_blitter[BLT_Y_END]>>SRC_SHIFT)&0xff)+((state->m_blitter[BLT_FLAGS]>>3)&0xff00)+(((state->m_blitter[BLT_START]) & BLTSTRT_ROM_MSB)?(1<<0xd):0);
@@ -155,39 +155,39 @@ WRITE16_HANDLER(rlt_blitter_w)
int y_src_step=(state->m_blitter[BLT_FLAGS] & BLTFLAG_SRC_Y_DIR)?1:-1;
int x,y;
-
+
int idx_x,idx_y;
-
+
int blit_w=src_x1-src_x0;
int blit_h=src_y1-src_y0;
-
+
int blit_w1=dst_x1-dst_x0;
int blit_h1=dst_y1-dst_y0;
-
+
if(blit_w1<0) blit_w1=(-blit_w1)^0xff; /* is it correct ? game does that when flips images */
if(blit_h1<0) blit_h1=-blit_h1;
-
+
if(blit_w<0) blit_w=-blit_w;
if(blit_h<0) blit_h=-blit_h;
-
+
{
- /* wrong, causes gfx glitches (wrong size , but gives (so far) the best results */
- if(blit_w1<blit_w) blit_w1=blit_w;
+ /* wrong, causes gfx glitches (wrong size , but gives (so far) the best results */
+ if(blit_w1<blit_w) blit_w1=blit_w;
if(blit_h1<blit_h) blit_h1=blit_h;
}
-
+
int layer=(state->m_blitter[BLT_START] & BLTSTRT_LAYER )?BITMAP_BG:BITMAP_FG_1;
-
+
if(layer==BITMAP_FG_1)
{
- if(state->m_blitter[BLT_FLAGS] & BLTFLAG_DST_UD )
+ if(state->m_blitter[BLT_FLAGS] & BLTFLAG_DST_UD )
{
layer=BITMAP_FG_2;
}
}
-
+
bool force_blit=false;
-
+
if(blit_w==1 && blit_h==1) /* seems to be bg layer color fill */
{
force_blit=true;
@@ -200,7 +200,7 @@ WRITE16_HANDLER(rlt_blitter_w)
int xx=src_x0+(x_src_step*idx_x);
int yy=src_y0+(y_src_step*idx_y);
-
+
if(force_blit)
{
xx=src_x0;
@@ -255,7 +255,7 @@ READ16_HANDLER( rlt_ramdac_data_r )
rltennis_state *state = space->machine().driver_data<rltennis_state>();
int data=state->m_palette[state->m_palpos_r];
++state->m_palpos_r;
- state->m_palpos_r %=256*3;
+ state->m_palpos_r %=256*3;
return data;
}
@@ -274,4 +274,4 @@ SCREEN_UPDATE( rltennis )
copybitmap(bitmap, state->m_tmp_bitmap[BITMAP_BG], 0, 0, 0, 0, cliprect);
copybitmap_trans(bitmap, state->m_tmp_bitmap[BITMAP_FG_DISPLAY], 0, 0, 0, 0, cliprect, 0);
return 0;
-} \ No newline at end of file
+}