From a998dca498c6124356110993a1db833b4dd9b8d4 Mon Sep 17 00:00:00 2001 From: Julgodis <> Date: Fri, 24 Sep 2021 18:09:12 +0200 Subject: [PATCH] OK erase__14JUTDirectPrintFiiii --- include/JSystem/JUtility/JUTDirectPrint.h | 4 +-- libs/JSystem/JUtility/JUTDirectPrint.cpp | 31 ++++++++++++++++++----- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/include/JSystem/JUtility/JUTDirectPrint.h b/include/JSystem/JUtility/JUTDirectPrint.h index 565c9c7b26f..0ea7934a420 100644 --- a/include/JSystem/JUtility/JUTDirectPrint.h +++ b/include/JSystem/JUtility/JUTDirectPrint.h @@ -31,11 +31,11 @@ private: /* 0x00 */ void* field_0x00; /* 0x04 */ u16 mFrameBufferWidth; /* 0x06 */ u16 mFrameBufferHeight; - /* 0x08 */ u16 field_0x08; + /* 0x08 */ u16 mWidthStride; /* 0x0A */ u16 field_0x0A; /* 0x0C */ size_t field_0x0C; /* 0x10 */ u8 field_0x10[4]; - /* 0x14 */ void* mFrameBuffer; + /* 0x14 */ u16* mFrameBuffer; /* 0x18 */ JUtility::TColor mCharColor; /* 0x1C */ u16 field_0x1C; /* 0x1E */ u16 field_0x1E; diff --git a/libs/JSystem/JUtility/JUTDirectPrint.cpp b/libs/JSystem/JUtility/JUTDirectPrint.cpp index cd2e26b2c1e..4be243e56ee 100644 --- a/libs/JSystem/JUtility/JUTDirectPrint.cpp +++ b/libs/JSystem/JUtility/JUTDirectPrint.cpp @@ -77,14 +77,31 @@ JUTDirectPrint* JUTDirectPrint::start() { } /* 802E4288-802E431C 2DEBC8 0094+00 1/1 1/1 0/0 .text erase__14JUTDirectPrintFiiii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTDirectPrint::erase(int param_0, int param_1, int param_2, int param_3) { - nofralloc -#include "asm/JSystem/JUtility/JUTDirectPrint/erase__14JUTDirectPrintFiiii.s" +void JUTDirectPrint::erase(int x, int y, int width, int height) { + if (!this->field_0x00) { + return; + } + + if (400 < mFrameBufferWidth) { + x = x << 1; + width = width << 1; + } + + if (300 < mFrameBufferHeight) { + y = y << 1; + height = height << 1; + } + + u16* pixel = mFrameBuffer + mWidthStride * y + x; + for (int i = 0; i < height; i++) { + for (int j = 0; j < width; j++) { + *pixel = 0x1080; + pixel = pixel + 1; + } + + pixel += mWidthStride - width; + } } -#pragma pop /* ############################################################################################## */ /* 803CC6B8-803CC738 0297D8 0080+00 2/2 0/0 0/0 .data sAsciiTable__14JUTDirectPrint */