some more functions
This commit is contained in:
+3
-3
@@ -1550,8 +1550,8 @@ MakeObjectTemplateFromFieldObjectTemplate: @ 805E960
|
||||
bx r0
|
||||
thumb_func_end MakeObjectTemplateFromFieldObjectTemplate
|
||||
|
||||
thumb_func_start AddPseudoFieldObject
|
||||
AddPseudoFieldObject: @ 805E978
|
||||
thumb_func_start AddPseudoEventObject
|
||||
AddPseudoEventObject: @ 805E978
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x1C
|
||||
ldr r4, [sp, 0x2C]
|
||||
@@ -1612,7 +1612,7 @@ _0805E9E4:
|
||||
.align 2, 0
|
||||
_0805E9F0: .4byte 0x0000ffff
|
||||
_0805E9F4: .4byte gSprites
|
||||
thumb_func_end AddPseudoFieldObject
|
||||
thumb_func_end AddPseudoEventObject
|
||||
|
||||
thumb_func_start sprite_new
|
||||
sprite_new: @ 805E9F8
|
||||
|
||||
+1
-1
@@ -2789,7 +2789,7 @@ sub_809EF54: @ 809EF54
|
||||
str r2, [sp]
|
||||
movs r2, 0x38
|
||||
movs r3, 0x25
|
||||
bl AddPseudoFieldObject
|
||||
bl AddPseudoEventObject
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
|
||||
+1
-1
@@ -7888,7 +7888,7 @@ _080588C6:
|
||||
movs r2, 0
|
||||
str r2, [sp]
|
||||
movs r3, 0
|
||||
bl AddPseudoFieldObject
|
||||
bl AddPseudoEventObject
|
||||
strb r0, [r4, 0x4]
|
||||
ldrb r1, [r4, 0x4]
|
||||
lsls r0, r1, 4
|
||||
|
||||
+1
-1
@@ -2017,7 +2017,7 @@ _0809BA56:
|
||||
str r0, [sp]
|
||||
adds r0, r4, 0
|
||||
ldr r1, _0809BAF4 @ =SpriteCallbackDummy
|
||||
bl AddPseudoFieldObject
|
||||
bl AddPseudoEventObject
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r2, r0, 4
|
||||
|
||||
+9
-204
@@ -5,201 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_815AF5C
|
||||
sub_815AF5C: @ 815AF5C
|
||||
push {lr}
|
||||
movs r0, 0xB6
|
||||
lsls r0, 1
|
||||
movs r1, 0x1
|
||||
bl CheckBagHasItem
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0815AF84
|
||||
ldr r0, _0815AF7C @ =gUnknown_203F450
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0815AF80 @ =0x00004007
|
||||
adds r0, r1
|
||||
movs r1, 0xFF
|
||||
strb r1, [r0]
|
||||
b _0815AF96
|
||||
.align 2, 0
|
||||
_0815AF7C: .4byte gUnknown_203F450
|
||||
_0815AF80: .4byte 0x00004007
|
||||
_0815AF84:
|
||||
ldr r0, _0815AF9C @ =gUnknown_8479380
|
||||
ldr r1, _0815AFA0 @ =gTeachyTV_StaticResources+6
|
||||
bl AddScrollIndicatorArrowPair
|
||||
ldr r1, _0815AFA4 @ =gUnknown_203F450
|
||||
ldr r1, [r1]
|
||||
ldr r2, _0815AFA8 @ =0x00004007
|
||||
adds r1, r2
|
||||
strb r0, [r1]
|
||||
_0815AF96:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0815AF9C: .4byte gUnknown_8479380
|
||||
_0815AFA0: .4byte gTeachyTV_StaticResources+6
|
||||
_0815AFA4: .4byte gUnknown_203F450
|
||||
_0815AFA8: .4byte 0x00004007
|
||||
thumb_func_end sub_815AF5C
|
||||
|
||||
thumb_func_start sub_815AFAC
|
||||
sub_815AFAC: @ 815AFAC
|
||||
push {r4,lr}
|
||||
ldr r4, _0815AFD0 @ =gUnknown_203F450
|
||||
ldr r0, [r4]
|
||||
ldr r2, _0815AFD4 @ =0x00004007
|
||||
adds r1, r0, r2
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0xFF
|
||||
beq _0815AFCA
|
||||
bl RemoveScrollIndicatorArrowPair
|
||||
ldr r0, [r4]
|
||||
ldr r1, _0815AFD4 @ =0x00004007
|
||||
adds r0, r1
|
||||
movs r1, 0xFF
|
||||
strb r1, [r0]
|
||||
_0815AFCA:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0815AFD0: .4byte gUnknown_203F450
|
||||
_0815AFD4: .4byte 0x00004007
|
||||
thumb_func_end sub_815AFAC
|
||||
|
||||
thumb_func_start TeachyTvAudioByInput
|
||||
TeachyTvAudioByInput: @ 815AFD8
|
||||
push {lr}
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
cmp r1, 0x1
|
||||
beq _0815AFE8
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
_0815AFE8:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end TeachyTvAudioByInput
|
||||
|
||||
thumb_func_start TeachyTvInitIo
|
||||
TeachyTvInitIo: @ 815AFEC
|
||||
push {lr}
|
||||
movs r0, 0x48
|
||||
movs r1, 0x3F
|
||||
bl SetGpuReg
|
||||
movs r0, 0x4A
|
||||
movs r1, 0x1F
|
||||
bl SetGpuReg
|
||||
movs r0, 0x50
|
||||
movs r1, 0xCC
|
||||
bl SetGpuReg
|
||||
movs r0, 0x54
|
||||
movs r1, 0x5
|
||||
bl SetGpuReg
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end TeachyTvInitIo
|
||||
|
||||
thumb_func_start TeachyTvSetupObj
|
||||
TeachyTvSetupObj: @ 815B014
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
ldr r1, _0815B054 @ =SpriteCallbackDummy
|
||||
movs r0, 0x8
|
||||
str r0, [sp]
|
||||
movs r0, 0x5A
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl AddPseudoFieldObject
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r1, _0815B058 @ =gSprites
|
||||
lsls r2, r0, 4
|
||||
adds r2, r0
|
||||
lsls r2, 2
|
||||
adds r2, r1
|
||||
ldrb r3, [r2, 0x5]
|
||||
movs r1, 0xD
|
||||
negs r1, r1
|
||||
ands r1, r3
|
||||
movs r3, 0x8
|
||||
orrs r1, r3
|
||||
strb r1, [r2, 0x5]
|
||||
adds r2, 0x3E
|
||||
ldrb r1, [r2]
|
||||
movs r3, 0x4
|
||||
orrs r1, r3
|
||||
strb r1, [r2]
|
||||
add sp, 0x4
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0815B054: .4byte SpriteCallbackDummy
|
||||
_0815B058: .4byte gSprites
|
||||
thumb_func_end TeachyTvSetupObj
|
||||
|
||||
thumb_func_start sub_815B05C
|
||||
sub_815B05C: @ 815B05C
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
ldr r5, _0815B090 @ =gSprites
|
||||
lsls r0, r4, 4
|
||||
adds r0, r4
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
strh r1, [r0, 0x24]
|
||||
strh r2, [r0, 0x26]
|
||||
adds r4, r0, 0
|
||||
adds r4, 0x3E
|
||||
ldrb r2, [r4]
|
||||
movs r1, 0x5
|
||||
negs r1, r1
|
||||
ands r1, r2
|
||||
strb r1, [r4]
|
||||
adds r1, r3, 0
|
||||
bl StartSpriteAnim
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0815B090: .4byte gSprites
|
||||
thumb_func_end sub_815B05C
|
||||
|
||||
thumb_func_start sub_815B094
|
||||
sub_815B094: @ 815B094
|
||||
push {lr}
|
||||
ldr r1, _0815B0AC @ =0x00000c64
|
||||
movs r0, 0x44
|
||||
bl SetGpuReg
|
||||
ldr r1, _0815B0B0 @ =0x00001cd4
|
||||
movs r0, 0x40
|
||||
bl SetGpuReg
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0815B0AC: .4byte 0x00000c64
|
||||
_0815B0B0: .4byte 0x00001cd4
|
||||
thumb_func_end sub_815B094
|
||||
|
||||
thumb_func_start sub_815B0B4
|
||||
sub_815B0B4: @ 815B0B4
|
||||
push {lr}
|
||||
movs r0, 0x44
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x40
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_815B0B4
|
||||
|
||||
thumb_func_start sub_815B0CC
|
||||
sub_815B0CC: @ 815B0CC
|
||||
push {r4-r7,lr}
|
||||
@@ -261,7 +66,7 @@ TeachyTvConfigRboxAndObj: @ 815B118
|
||||
adds r7, r0, r1
|
||||
movs r0, 0x1
|
||||
bl ClearWindowTilemap
|
||||
bl sub_815B0B4
|
||||
bl TeachyTvClearWindowRegs
|
||||
ldr r0, _0815B198 @ =gTeachyTV_StaticResources
|
||||
ldrb r0, [r0, 0x5]
|
||||
cmp r0, 0
|
||||
@@ -272,7 +77,7 @@ TeachyTvConfigRboxAndObj: @ 815B118
|
||||
movs r1, 0x78
|
||||
movs r2, 0x38
|
||||
movs r3, 0
|
||||
bl sub_815B05C
|
||||
bl TeachyTvSetSpriteCoordsAndSwitchFrame
|
||||
movs r4, 0xC0
|
||||
lsls r4, 6
|
||||
movs r0, 0x3
|
||||
@@ -311,7 +116,7 @@ _0815B1A8:
|
||||
movs r1, 0x78
|
||||
movs r2, 0x38
|
||||
movs r3, 0
|
||||
bl sub_815B05C
|
||||
bl TeachyTvSetSpriteCoordsAndSwitchFrame
|
||||
_0815B1B8:
|
||||
movs r0, 0
|
||||
strh r0, [r5, 0x8]
|
||||
@@ -517,12 +322,12 @@ _0815B33E:
|
||||
adds r1, r2, 0x6
|
||||
adds r2, 0x8
|
||||
bl DestroyListMenu
|
||||
bl sub_815B0B4
|
||||
bl TeachyTvClearWindowRegs
|
||||
movs r0, 0x1
|
||||
bl ClearWindowTilemap
|
||||
movs r0, 0
|
||||
bl schedule_bg_copy_tilemap_to_vram
|
||||
bl sub_815AFAC
|
||||
bl TeachyTvRemoveScrollIndicatorArrowPair
|
||||
strh r4, [r6, 0x6]
|
||||
strh r4, [r6, 0x4]
|
||||
ldr r1, _0815B384 @ =gTasks
|
||||
@@ -578,7 +383,7 @@ sub_815B38C: @ 815B38C
|
||||
movs r1, 0x8
|
||||
movs r2, 0x38
|
||||
movs r3, 0x7
|
||||
bl sub_815B05C
|
||||
bl TeachyTvSetSpriteCoordsAndSwitchFrame
|
||||
movs r0, 0x2
|
||||
bl schedule_bg_copy_tilemap_to_vram
|
||||
movs r0, 0
|
||||
@@ -752,7 +557,7 @@ sub_815B4EC: @ 815B4EC
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl sub_815B05C
|
||||
bl TeachyTvSetSpriteCoordsAndSwitchFrame
|
||||
movs r0, 0
|
||||
movs r1, 0xCC
|
||||
bl FillWindowPixelBuffer
|
||||
@@ -1320,8 +1125,8 @@ _0815B94C:
|
||||
str r1, [r0]
|
||||
movs r0, 0
|
||||
bl PutWindowTilemap
|
||||
bl sub_815AF5C
|
||||
bl sub_815B094
|
||||
bl TeachyTvSetupScrollIndicatorArrowPair
|
||||
bl TeachyTvSetWindowRegs
|
||||
movs r0, 0
|
||||
bl schedule_bg_copy_tilemap_to_vram
|
||||
movs r0, 0x3
|
||||
|
||||
@@ -46,7 +46,7 @@ void FieldObjectClearAnim(struct MapObject *);
|
||||
void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *);
|
||||
void SpawnFieldObjectsInView(s16, s16);
|
||||
u8 sprite_new(u8, u8, s16, s16, u8, u8);
|
||||
u8 AddPseudoFieldObject(u16, void (*)(struct Sprite *), s16, s16, u8);
|
||||
u8 AddPseudoEventObject(u16, void (*)(struct Sprite *), s16, s16, u8);
|
||||
u8 show_sprite(u8, u8, u8);
|
||||
u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8);
|
||||
u8 SpawnSpecialFieldObject(struct MapObjectTemplate *);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
// Exported RAM declarations
|
||||
|
||||
struct ScrollIndicatorArrowPairTemplate
|
||||
struct ScrollArrowsTemplate
|
||||
{
|
||||
u8 unk_00;
|
||||
u8 unk_01;
|
||||
@@ -25,7 +25,7 @@ struct ScrollIndicatorArrowPairTemplate
|
||||
|
||||
// Exported ROM declarations
|
||||
u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u16, u16, u16 *);
|
||||
u8 AddScrollIndicatorArrowPair(const struct ScrollIndicatorArrowPairTemplate * template, u16 * a1);
|
||||
u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate * template, u16 * a1);
|
||||
void RemoveScrollIndicatorArrowPair(u8);
|
||||
|
||||
#endif //GUARD_MENU_INDICATORS_H
|
||||
|
||||
+1
-1
@@ -1400,7 +1400,7 @@ static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId)
|
||||
|
||||
static void FC_CreateScrollIndicatorArrowPair(void)
|
||||
{
|
||||
struct ScrollIndicatorArrowPairTemplate template = {
|
||||
struct ScrollArrowsTemplate template = {
|
||||
2,
|
||||
40,
|
||||
26,
|
||||
|
||||
@@ -460,7 +460,7 @@ struct UnkStruct_203F3CC
|
||||
/*01cc*/ u8 filler_01CC[2];
|
||||
/*01ce*/ u8 unk_01CE[41];
|
||||
/*01f7*/ u8 unk_01F7[10][41];
|
||||
/*0394*/ struct ScrollIndicatorArrowPairTemplate unk_0394;
|
||||
/*0394*/ struct ScrollArrowsTemplate unk_0394;
|
||||
/*03a4*/ u8 buffer_03A4[0x1000];
|
||||
};
|
||||
|
||||
@@ -478,7 +478,7 @@ const struct WindowTemplate gUnknown_8468040[] = {
|
||||
{0, 1, 0, 28, 3, 15, 0x000},
|
||||
{2, 1, 3, 28, 20, 15, 0x000}
|
||||
};
|
||||
const struct ScrollIndicatorArrowPairTemplate gUnknown_8468050 = {
|
||||
const struct ScrollArrowsTemplate gUnknown_8468050 = {
|
||||
0x02, 0xe8, 0x18, 0x03, 0xe8, 0x98,
|
||||
0x0000, 0x0002, 0x1000, 0x1000, 0x0, 0x000
|
||||
};
|
||||
|
||||
+87
-11
@@ -15,6 +15,8 @@
|
||||
#include "window.h"
|
||||
#include "list_menu.h"
|
||||
#include "item.h"
|
||||
#include "menu_indicators.h"
|
||||
#include "field_map_obj.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/items.h"
|
||||
|
||||
@@ -37,12 +39,12 @@ void sub_815ABC4(u8 mode, void (*cb)());
|
||||
void CB2_ReturnToTeachyTV();
|
||||
extern void sub_815AC20();
|
||||
void TeachyTvCreateAndRenderRbox();
|
||||
extern void TeachyTvInitIo();
|
||||
extern u8 TeachyTvSetupObj();
|
||||
void TeachyTvInitIo();
|
||||
u8 TeachyTvSetupObjEventAndOam();
|
||||
extern void TeachyTvConfigRboxAndObj(u8);
|
||||
u8 TeachyTvSetupWindow();
|
||||
extern void sub_815AF5C();
|
||||
extern void sub_815B094();
|
||||
void TeachyTvSetupScrollIndicatorArrowPair();
|
||||
void TeachyTvSetWindowRegs();
|
||||
void TeachyTvSetupBg();
|
||||
void TeachyTvLoadGraphic();
|
||||
extern void TeachyTvTaskFunction(u8);
|
||||
@@ -148,7 +150,7 @@ void C2TeachyTvMainCallback()
|
||||
if ( gTeachyTV_StaticResources.mode == 2 )
|
||||
{
|
||||
taskId = CreateTask(TeachyTvTaskFunction, 0);
|
||||
gTasks[taskId].data[1] = TeachyTvSetupObj();
|
||||
gTasks[taskId].data[1] = TeachyTvSetupObjEventAndOam();
|
||||
TeachyTvConfigRboxAndObj(taskId);
|
||||
}
|
||||
else
|
||||
@@ -156,10 +158,10 @@ void C2TeachyTvMainCallback()
|
||||
taskId = CreateTask(sub_815B2C0, 0);
|
||||
x = (u32)TeachyTvSetupWindow();
|
||||
gTasks[taskId].data[0] = (x << 24) >> 24;
|
||||
gTasks[taskId].data[1] = TeachyTvSetupObj();
|
||||
sub_815AF5C();
|
||||
gTasks[taskId].data[1] = TeachyTvSetupObjEventAndOam();
|
||||
TeachyTvSetupScrollIndicatorArrowPair();
|
||||
PlayNewMapMusic(BGM_FRLG_TEACHY_TV);
|
||||
sub_815B094();
|
||||
TeachyTvSetWindowRegs();
|
||||
}
|
||||
schedule_bg_copy_tilemap_to_vram(0);
|
||||
schedule_bg_copy_tilemap_to_vram(1u);
|
||||
@@ -219,7 +221,7 @@ void TeachyTvCreateAndRenderRbox()
|
||||
extern struct ListMenuTemplate gUnknown_8479368;
|
||||
extern struct ListMenuItem gUnknown_8479340;
|
||||
extern u8 ListMenuInitInternal(struct ListMenuTemplate *, u16 scrollOffset, u16 selectedRow);
|
||||
extern void TeachyTvAudioByInput(s32, bool8, struct ListMenu *);
|
||||
void TeachyTvAudioByInput(s32, bool8, struct ListMenu *);
|
||||
|
||||
u8 TeachyTvSetupWindow()
|
||||
{
|
||||
@@ -228,7 +230,7 @@ u8 TeachyTvSetupWindow()
|
||||
gMultiuseListMenuTemplate.windowId = 1;
|
||||
gMultiuseListMenuTemplate.moveCursorFunc = TeachyTvAudioByInput;
|
||||
hasItem = (u8)CheckBagHasItem(ITEM_TM_CASE, 1u);
|
||||
if ( !(v0 << 24) )
|
||||
if ( !(hasItem << 24) )
|
||||
{
|
||||
gMultiuseListMenuTemplate.items = &gUnknown_8479340;
|
||||
gMultiuseListMenuTemplate.totalItems = 5;
|
||||
@@ -239,4 +241,78 @@ u8 TeachyTvSetupWindow()
|
||||
&gMultiuseListMenuTemplate,
|
||||
gTeachyTV_StaticResources.scrollOffset,
|
||||
gTeachyTV_StaticResources.selectedRow);
|
||||
}
|
||||
}
|
||||
|
||||
extern const struct ScrollArrowsTemplate gUnknown_8479380;
|
||||
|
||||
void TeachyTvSetupScrollIndicatorArrowPair()
|
||||
{
|
||||
int hasItem;
|
||||
hasItem = (u8)CheckBagHasItem(ITEM_TM_CASE, 1u);
|
||||
if ( ! hasItem << 24 ) {
|
||||
u8 * temp = (u8 *)gUnknown_203F450;
|
||||
*((u8 *)temp + 0x4007) = 0xFF;
|
||||
}
|
||||
|
||||
else {
|
||||
u8 *temp, res;
|
||||
res = AddScrollIndicatorArrowPair(
|
||||
&gUnknown_8479380,
|
||||
&(gTeachyTV_StaticResources.scrollOffset));
|
||||
temp = (u8 *)gUnknown_203F450;
|
||||
*((u8 *)temp + 0x4007) = res;
|
||||
}
|
||||
}
|
||||
|
||||
void TeachyTvRemoveScrollIndicatorArrowPair()
|
||||
{
|
||||
u8 *temp = ((u8*)gUnknown_203F450 + 0x4007);
|
||||
if ( *temp != 0xFF )
|
||||
{
|
||||
RemoveScrollIndicatorArrowPair(*temp);
|
||||
*((u8*)gUnknown_203F450 + 0x4007) = 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
void TeachyTvAudioByInput(s32 notUsed, bool8 play, struct ListMenu *notUsedAlt)
|
||||
{
|
||||
if ( play != 1 )
|
||||
PlaySE(SE_SELECT);
|
||||
}
|
||||
|
||||
void TeachyTvInitIo()
|
||||
{
|
||||
SetGpuReg(0x48u, 0x3Fu);
|
||||
SetGpuReg(0x4Au, 0x1Fu);
|
||||
SetGpuReg(0x50u, 0xCCu);
|
||||
SetGpuReg(0x54u, 5u);
|
||||
}
|
||||
|
||||
u8 TeachyTvSetupObjEventAndOam()
|
||||
{
|
||||
u8 temp = AddPseudoEventObject(90, SpriteCallbackDummy, 0, 0, 8);
|
||||
gSprites[temp].oam.priority = 2;
|
||||
gSprites[temp].invisible = 1;
|
||||
return temp;
|
||||
}
|
||||
|
||||
void TeachyTvSetSpriteCoordsAndSwitchFrame(u8 objId, u16 x, u16 y, u8 frame)
|
||||
{
|
||||
gSprites[objId].pos2.x = x;
|
||||
gSprites[objId].pos2.y = y;
|
||||
gSprites[objId].invisible = 0;
|
||||
StartSpriteAnim(&gSprites[objId], frame);
|
||||
}
|
||||
|
||||
void TeachyTvSetWindowRegs()
|
||||
{
|
||||
SetGpuReg(0x44u, 0xC64u);
|
||||
SetGpuReg(0x40u, 0x1CD4u);
|
||||
}
|
||||
|
||||
void TeachyTvClearWindowRegs()
|
||||
{
|
||||
SetGpuReg(0x44u, 0);
|
||||
SetGpuReg(0x40u, 0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user