X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fobjectp.cpp;h=fc1c64829ebd1eb556bbe0c9b7b396d7b80988c3;hb=7bac1ecb6a579c6b1622755113f80cf7e6a5e98d;hp=37e7ff56ee9fa7d04c3bd034b0d54d3e42be69cf;hpb=66f5fa81ac515e3f08828db7244159f3b9ca05f3;p=virtualjaguar diff --git a/src/objectp.cpp b/src/objectp.cpp index 37e7ff5..fc1c648 100644 --- a/src/objectp.cpp +++ b/src/objectp.cpp @@ -1,13 +1,13 @@ // // Object Processor // -// Original source by Cal2 +// Original source by David Raingeard (Cal2) // GCC/SDL port by Niels Wagenaar (Linux/WIN32) and Caz (BeOS) // Extensive cleanups/fixes/rewrites by James L. Hammons // //#include -//#include +#include #include #include "jaguar.h" @@ -17,11 +17,11 @@ #define BLEND_Y(dst, src) op_blend_y[(((uint16)dst<<8)) | ((uint16)(src))] #define BLEND_CR(dst, src) op_blend_cr[(((uint16)dst)<<8) | ((uint16)(src))] -#define OBJECT_TYPE_BITMAP 0 // 000 -#define OBJECT_TYPE_SCALE 1 // 001 -#define OBJECT_TYPE_GPU 2 // 010 -#define OBJECT_TYPE_BRANCH 3 // 011 -#define OBJECT_TYPE_STOP 4 // 100 +#define OBJECT_TYPE_BITMAP 0 // 000 +#define OBJECT_TYPE_SCALE 1 // 001 +#define OBJECT_TYPE_GPU 2 // 010 +#define OBJECT_TYPE_BRANCH 3 // 011 +#define OBJECT_TYPE_STOP 4 // 100 #define CONDITION_EQUAL 0 #define CONDITION_LESS_THAN 1 @@ -29,10 +29,10 @@ #define CONDITION_OP_FLAG_SET 3 #define CONDITION_SECOND_HALF_LINE 4 -#define OPFLAG_RELEASE 8 // Bus release bit -#define OPFLAG_TRANS 4 // Transparency bit -#define OPFLAG_RMW 2 // Read-Modify-Write bit -#define OPFLAG_REFLECT 1 // Horizontal mirror bit +#define OPFLAG_RELEASE 8 // Bus release bit +#define OPFLAG_TRANS 4 // Transparency bit +#define OPFLAG_RMW 2 // Read-Modify-Write bit +#define OPFLAG_REFLECT 1 // Horizontal mirror bit // Private function prototypes @@ -83,23 +83,28 @@ void op_init(void) int dc2 = (INT8)(i & 0xF0) >> 4; // Sign extend the C index y += dy; + if (y < 0) y = 0; else if (y > 0xFF) y = 0xFF; + op_blend_y[i] = y; c1 += dc1; + if (c1 < 0) c1 = 0; else if (c1 > 0x0F) c1 = 0x0F; + c2 += dc2; if (c2 < 0) c2 = 0; else if (c2 > 0x0F) c2 = 0x0F; + op_blend_cr[i] = (c2 << 4) | c1; }