mirror of
https://github.com/libretro/desmume2015.git
synced 2024-11-27 01:50:27 +00:00
Add debug patches
This commit is contained in:
parent
21eb2e1840
commit
83ec08e6b1
@ -1355,53 +1355,27 @@ static void lineNull(GPU *gpu)
|
|||||||
|
|
||||||
template<bool MOSAIC> void lineText(GPU *gpu)
|
template<bool MOSAIC> void lineText(GPU *gpu)
|
||||||
{
|
{
|
||||||
if(gpu->debug)
|
const u16 vofs = gpu->getVOFS(gpu->currBgNum);
|
||||||
{
|
const u16 hofs = gpu->getHOFS(gpu->currBgNum);
|
||||||
const s32 wh = gpu->BGSize[gpu->currBgNum][0];
|
renderline_textBG<MOSAIC>(gpu, hofs, gpu->currLine + vofs, 256);
|
||||||
renderline_textBG<MOSAIC>(gpu, 0, gpu->currLine, wh);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const u16 vofs = gpu->getVOFS(gpu->currBgNum);
|
|
||||||
const u16 hofs = gpu->getHOFS(gpu->currBgNum);
|
|
||||||
renderline_textBG<MOSAIC>(gpu, hofs, gpu->currLine + vofs, 256);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<bool MOSAIC> void lineRot(GPU *gpu)
|
template<bool MOSAIC> void lineRot(GPU *gpu)
|
||||||
{
|
{
|
||||||
if (gpu->debug)
|
BGxPARMS ¶ms = (gpu->currBgNum == 2) ? (gpu->dispx_st)->dispx_BG2PARMS : (gpu->dispx_st)->dispx_BG3PARMS;
|
||||||
{
|
|
||||||
static const BGxPARMS debugParams = {256, 0, 0, -77, 0, (s16)gpu->currLine*GPU_FRAMEBUFFER_NATIVE_WIDTH};
|
rotBG2<MOSAIC>(gpu, params, 256);
|
||||||
const s32 wh = gpu->BGSize[gpu->currBgNum][0];
|
params.BGxX += params.BGxPB;
|
||||||
rotBG2<MOSAIC>(gpu, debugParams, wh);
|
params.BGxY += params.BGxPD;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
BGxPARMS ¶ms = (gpu->currBgNum == 2) ? (gpu->dispx_st)->dispx_BG2PARMS : (gpu->dispx_st)->dispx_BG3PARMS;
|
|
||||||
|
|
||||||
rotBG2<MOSAIC>(gpu, params, 256);
|
|
||||||
params.BGxX += params.BGxPB;
|
|
||||||
params.BGxY += params.BGxPD;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<bool MOSAIC> void lineExtRot(GPU *gpu)
|
template<bool MOSAIC> void lineExtRot(GPU *gpu)
|
||||||
{
|
{
|
||||||
if (gpu->debug)
|
BGxPARMS ¶ms = (gpu->currBgNum == 2) ? (gpu->dispx_st)->dispx_BG2PARMS : (gpu->dispx_st)->dispx_BG3PARMS;
|
||||||
{
|
|
||||||
static BGxPARMS debugParams = {256, 0, 0, -77, 0, (s16)gpu->currLine*GPU_FRAMEBUFFER_NATIVE_WIDTH};
|
extRotBG2<MOSAIC>(gpu, params, 256);
|
||||||
const s32 wh = gpu->BGSize[gpu->currBgNum][0];
|
params.BGxX += params.BGxPB;
|
||||||
extRotBG2<MOSAIC>(gpu, debugParams, wh);
|
params.BGxY += params.BGxPD;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
BGxPARMS ¶ms = (gpu->currBgNum == 2) ? (gpu->dispx_st)->dispx_BG2PARMS : (gpu->dispx_st)->dispx_BG3PARMS;
|
|
||||||
|
|
||||||
extRotBG2<MOSAIC>(gpu, params, 256);
|
|
||||||
params.BGxX += params.BGxPB;
|
|
||||||
params.BGxY += params.BGxPD;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -615,16 +615,12 @@ enum GPULayerType
|
|||||||
struct GPU
|
struct GPU
|
||||||
{
|
{
|
||||||
GPU()
|
GPU()
|
||||||
: debug(false)
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
// some structs are becoming redundant
|
// some structs are becoming redundant
|
||||||
// some functions too (no need to recopy some vars as it is done by MMU)
|
// some functions too (no need to recopy some vars as it is done by MMU)
|
||||||
REG_DISPx * dispx_st;
|
REG_DISPx * dispx_st;
|
||||||
|
|
||||||
//this indicates whether this gpu is handling debug tools
|
|
||||||
bool debug;
|
|
||||||
|
|
||||||
CACHE_ALIGN u16 sprColor[GPU_FRAMEBUFFER_NATIVE_WIDTH];
|
CACHE_ALIGN u16 sprColor[GPU_FRAMEBUFFER_NATIVE_WIDTH];
|
||||||
CACHE_ALIGN u8 sprAlpha[GPU_FRAMEBUFFER_NATIVE_WIDTH];
|
CACHE_ALIGN u8 sprAlpha[GPU_FRAMEBUFFER_NATIVE_WIDTH];
|
||||||
CACHE_ALIGN u8 sprType[GPU_FRAMEBUFFER_NATIVE_WIDTH];
|
CACHE_ALIGN u8 sprType[GPU_FRAMEBUFFER_NATIVE_WIDTH];
|
||||||
@ -845,16 +841,6 @@ size_t GPU_GetFramebufferWidth();
|
|||||||
size_t GPU_GetFramebufferHeight();
|
size_t GPU_GetFramebufferHeight();
|
||||||
void GPU_SetFramebufferSize(size_t w, size_t h);
|
void GPU_SetFramebufferSize(size_t w, size_t h);
|
||||||
|
|
||||||
//these are functions used by debug tools which want to render layers etc outside the context of the emulation
|
|
||||||
namespace GPU_EXT
|
|
||||||
{
|
|
||||||
void textBG(GPU *gpu, u8 num, u8 *DST); //Draw text based background
|
|
||||||
void rotBG(GPU *gpu, u8 num, u8 *DST);
|
|
||||||
void extRotBG(GPU *gpu, u8 num, u8 *DST);
|
|
||||||
};
|
|
||||||
void sprite1D(GPU *gpu, u16 l, u8 *dst, u8 *dst_alpha, u8 *typeTab, u8 *prioTab);
|
|
||||||
void sprite2D(GPU *gpu, u16 l, u8 *dst, u8 *dst_alpha, u8 *typeTab, u8 *prioTab);
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
GPU *gpu;
|
GPU *gpu;
|
||||||
|
109
gpu-debug.diff
Normal file
109
gpu-debug.diff
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
diff --git a/desmume/src/GPU.cpp b/desmume/src/GPU.cpp
|
||||||
|
index b95c304..84006de 100644
|
||||||
|
--- a/desmume/src/GPU.cpp
|
||||||
|
+++ b/desmume/src/GPU.cpp
|
||||||
|
@@ -1355,53 +1355,27 @@ static void lineNull(GPU *gpu)
|
||||||
|
|
||||||
|
template<bool MOSAIC> void lineText(GPU *gpu)
|
||||||
|
{
|
||||||
|
- if(gpu->debug)
|
||||||
|
- {
|
||||||
|
- const s32 wh = gpu->BGSize[gpu->currBgNum][0];
|
||||||
|
- renderline_textBG<MOSAIC>(gpu, 0, gpu->currLine, wh);
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- const u16 vofs = gpu->getVOFS(gpu->currBgNum);
|
||||||
|
- const u16 hofs = gpu->getHOFS(gpu->currBgNum);
|
||||||
|
- renderline_textBG<MOSAIC>(gpu, hofs, gpu->currLine + vofs, 256);
|
||||||
|
- }
|
||||||
|
+ const u16 vofs = gpu->getVOFS(gpu->currBgNum);
|
||||||
|
+ const u16 hofs = gpu->getHOFS(gpu->currBgNum);
|
||||||
|
+ renderline_textBG<MOSAIC>(gpu, hofs, gpu->currLine + vofs, 256);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<bool MOSAIC> void lineRot(GPU *gpu)
|
||||||
|
{
|
||||||
|
- if (gpu->debug)
|
||||||
|
- {
|
||||||
|
- static const BGxPARMS debugParams = {256, 0, 0, -77, 0, (s16)gpu->currLine*GPU_FRAMEBUFFER_NATIVE_WIDTH};
|
||||||
|
- const s32 wh = gpu->BGSize[gpu->currBgNum][0];
|
||||||
|
- rotBG2<MOSAIC>(gpu, debugParams, wh);
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- BGxPARMS ¶ms = (gpu->currBgNum == 2) ? (gpu->dispx_st)->dispx_BG2PARMS : (gpu->dispx_st)->dispx_BG3PARMS;
|
||||||
|
-
|
||||||
|
- rotBG2<MOSAIC>(gpu, params, 256);
|
||||||
|
- params.BGxX += params.BGxPB;
|
||||||
|
- params.BGxY += params.BGxPD;
|
||||||
|
- }
|
||||||
|
+ BGxPARMS ¶ms = (gpu->currBgNum == 2) ? (gpu->dispx_st)->dispx_BG2PARMS : (gpu->dispx_st)->dispx_BG3PARMS;
|
||||||
|
+
|
||||||
|
+ rotBG2<MOSAIC>(gpu, params, 256);
|
||||||
|
+ params.BGxX += params.BGxPB;
|
||||||
|
+ params.BGxY += params.BGxPD;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<bool MOSAIC> void lineExtRot(GPU *gpu)
|
||||||
|
{
|
||||||
|
- if (gpu->debug)
|
||||||
|
- {
|
||||||
|
- static BGxPARMS debugParams = {256, 0, 0, -77, 0, (s16)gpu->currLine*GPU_FRAMEBUFFER_NATIVE_WIDTH};
|
||||||
|
- const s32 wh = gpu->BGSize[gpu->currBgNum][0];
|
||||||
|
- extRotBG2<MOSAIC>(gpu, debugParams, wh);
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- BGxPARMS ¶ms = (gpu->currBgNum == 2) ? (gpu->dispx_st)->dispx_BG2PARMS : (gpu->dispx_st)->dispx_BG3PARMS;
|
||||||
|
-
|
||||||
|
- extRotBG2<MOSAIC>(gpu, params, 256);
|
||||||
|
- params.BGxX += params.BGxPB;
|
||||||
|
- params.BGxY += params.BGxPD;
|
||||||
|
- }
|
||||||
|
+ BGxPARMS ¶ms = (gpu->currBgNum == 2) ? (gpu->dispx_st)->dispx_BG2PARMS : (gpu->dispx_st)->dispx_BG3PARMS;
|
||||||
|
+
|
||||||
|
+ extRotBG2<MOSAIC>(gpu, params, 256);
|
||||||
|
+ params.BGxX += params.BGxPB;
|
||||||
|
+ params.BGxY += params.BGxPD;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
diff --git a/desmume/src/GPU.h b/desmume/src/GPU.h
|
||||||
|
index e5b1576..1c82f10 100644
|
||||||
|
--- a/desmume/src/GPU.h
|
||||||
|
+++ b/desmume/src/GPU.h
|
||||||
|
@@ -615,16 +615,12 @@ enum GPULayerType
|
||||||
|
struct GPU
|
||||||
|
{
|
||||||
|
GPU()
|
||||||
|
- : debug(false)
|
||||||
|
{}
|
||||||
|
|
||||||
|
// some structs are becoming redundant
|
||||||
|
// some functions too (no need to recopy some vars as it is done by MMU)
|
||||||
|
REG_DISPx * dispx_st;
|
||||||
|
|
||||||
|
- //this indicates whether this gpu is handling debug tools
|
||||||
|
- bool debug;
|
||||||
|
-
|
||||||
|
CACHE_ALIGN u16 sprColor[GPU_FRAMEBUFFER_NATIVE_WIDTH];
|
||||||
|
CACHE_ALIGN u8 sprAlpha[GPU_FRAMEBUFFER_NATIVE_WIDTH];
|
||||||
|
CACHE_ALIGN u8 sprType[GPU_FRAMEBUFFER_NATIVE_WIDTH];
|
||||||
|
@@ -845,16 +841,6 @@ size_t GPU_GetFramebufferWidth();
|
||||||
|
size_t GPU_GetFramebufferHeight();
|
||||||
|
void GPU_SetFramebufferSize(size_t w, size_t h);
|
||||||
|
|
||||||
|
-//these are functions used by debug tools which want to render layers etc outside the context of the emulation
|
||||||
|
-namespace GPU_EXT
|
||||||
|
-{
|
||||||
|
- void textBG(GPU *gpu, u8 num, u8 *DST); //Draw text based background
|
||||||
|
- void rotBG(GPU *gpu, u8 num, u8 *DST);
|
||||||
|
- void extRotBG(GPU *gpu, u8 num, u8 *DST);
|
||||||
|
-};
|
||||||
|
-void sprite1D(GPU *gpu, u16 l, u8 *dst, u8 *dst_alpha, u8 *typeTab, u8 *prioTab);
|
||||||
|
-void sprite2D(GPU *gpu, u16 l, u8 *dst, u8 *dst_alpha, u8 *typeTab, u8 *prioTab);
|
||||||
|
-
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
GPU *gpu;
|
Loading…
Reference in New Issue
Block a user