mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-22 00:34:09 -05:00
Tocuh up main.c; key input
This commit is contained in:
@@ -12,6 +12,9 @@ extern "C" {
|
||||
|
||||
typedef u32 FSOverlayID;
|
||||
|
||||
#define FS_EXTERN_OVERLAY(name) extern u32 SDK_OVERLAY_ ## name ## _ID[1]
|
||||
#define FS_OVERLAY_ID(name) ((u32)&(SDK_OVERLAY_ ## name ## _ID))
|
||||
|
||||
typedef void (*FSOverlayInitFunc)(void);
|
||||
|
||||
typedef struct FSOverlayInfoHeader
|
||||
|
||||
@@ -52,4 +52,59 @@
|
||||
#define REG_GXSTAT_ADDR (HW_REG_BASE + REG_GXSTAT_OFFSET)
|
||||
#define reg_G3X_GXSTAT (*(REGType32v *)REG_GXSTAT_ADDR)
|
||||
|
||||
#define REG_PAD_KEYINPUT_L_SHIFT 9
|
||||
#define REG_PAD_KEYINPUT_L_SIZE 1
|
||||
#define REG_PAD_KEYINPUT_L_MASK 0x0200
|
||||
|
||||
#define REG_PAD_KEYINPUT_R_SHIFT 8
|
||||
#define REG_PAD_KEYINPUT_R_SIZE 1
|
||||
#define REG_PAD_KEYINPUT_R_MASK 0x0100
|
||||
|
||||
#define REG_PAD_KEYINPUT_DOWN_SHIFT 7
|
||||
#define REG_PAD_KEYINPUT_DOWN_SIZE 1
|
||||
#define REG_PAD_KEYINPUT_DOWN_MASK 0x0080
|
||||
|
||||
#define REG_PAD_KEYINPUT_UP_SHIFT 6
|
||||
#define REG_PAD_KEYINPUT_UP_SIZE 1
|
||||
#define REG_PAD_KEYINPUT_UP_MASK 0x0040
|
||||
|
||||
#define REG_PAD_KEYINPUT_LEFT_SHIFT 5
|
||||
#define REG_PAD_KEYINPUT_LEFT_SIZE 1
|
||||
#define REG_PAD_KEYINPUT_LEFT_MASK 0x0020
|
||||
|
||||
#define REG_PAD_KEYINPUT_RIGHT_SHIFT 4
|
||||
#define REG_PAD_KEYINPUT_RIGHT_SIZE 1
|
||||
#define REG_PAD_KEYINPUT_RIGHT_MASK 0x0010
|
||||
|
||||
#define REG_PAD_KEYINPUT_START_SHIFT 3
|
||||
#define REG_PAD_KEYINPUT_START_SIZE 1
|
||||
#define REG_PAD_KEYINPUT_START_MASK 0x0008
|
||||
|
||||
#define REG_PAD_KEYINPUT_SEL_SHIFT 2
|
||||
#define REG_PAD_KEYINPUT_SEL_SIZE 1
|
||||
#define REG_PAD_KEYINPUT_SEL_MASK 0x0004
|
||||
|
||||
#define REG_PAD_KEYINPUT_B_SHIFT 1
|
||||
#define REG_PAD_KEYINPUT_B_SIZE 1
|
||||
#define REG_PAD_KEYINPUT_B_MASK 0x0002
|
||||
|
||||
#define REG_PAD_KEYINPUT_A_SHIFT 0
|
||||
#define REG_PAD_KEYINPUT_A_SIZE 1
|
||||
#define REG_PAD_KEYINPUT_A_MASK 0x0001
|
||||
|
||||
#ifndef SDK_ASM
|
||||
#define REG_PAD_KEYINPUT_FIELD( l, r, down, up, left, right, start, sel, b, a ) \
|
||||
(u16)( \
|
||||
((u32)(l) << REG_PAD_KEYINPUT_L_SHIFT) | \
|
||||
((u32)(r) << REG_PAD_KEYINPUT_R_SHIFT) | \
|
||||
((u32)(down) << REG_PAD_KEYINPUT_DOWN_SHIFT) | \
|
||||
((u32)(up) << REG_PAD_KEYINPUT_UP_SHIFT) | \
|
||||
((u32)(left) << REG_PAD_KEYINPUT_LEFT_SHIFT) | \
|
||||
((u32)(right) << REG_PAD_KEYINPUT_RIGHT_SHIFT) | \
|
||||
((u32)(start) << REG_PAD_KEYINPUT_START_SHIFT) | \
|
||||
((u32)(sel) << REG_PAD_KEYINPUT_SEL_SHIFT) | \
|
||||
((u32)(b) << REG_PAD_KEYINPUT_B_SHIFT) | \
|
||||
((u32)(a) << REG_PAD_KEYINPUT_A_SHIFT))
|
||||
#endif
|
||||
|
||||
#endif //POKEDIAMOND_REGISTERS_H
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
#include "global.h"
|
||||
#include "main.h"
|
||||
#include "FS_overlay.h"
|
||||
|
||||
FS_EXTERN_OVERLAY(MODULE_52);
|
||||
FS_EXTERN_OVERLAY(MODULE_63);
|
||||
|
||||
#define SOFT_RESET_KEY (REG_PAD_KEYINPUT_L_MASK | REG_PAD_KEYINPUT_R_MASK | REG_PAD_KEYINPUT_START_MASK | REG_PAD_KEYINPUT_SEL_MASK)
|
||||
|
||||
extern struct Unk2106FA0 gBacklightTop;
|
||||
extern struct Unk2106FA0 gBacklightTop_2; // same as the first one, it's referenced twice in the constant pool...
|
||||
extern struct Unk21C48B8 gUnknown21C48B8;
|
||||
|
||||
extern s32 gUnk027FFC20;
|
||||
extern struct {
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
@@ -15,6 +20,41 @@ extern struct {
|
||||
extern void PM_GetBackLight();
|
||||
extern void OS_WaitIrq();
|
||||
extern void FUN_02016438(s32);
|
||||
extern void InitSystemForTheGame(void);
|
||||
extern void InitGraphicMemory(void);
|
||||
extern void FUN_020163BC(void);
|
||||
extern void FUN_02022294(void);
|
||||
extern void FUN_0201259C(void);
|
||||
extern void FUN_02000DF4(void);
|
||||
extern void FUN_02002C14(void);
|
||||
extern void FUN_02002C50(int, int);
|
||||
extern int FUN_0202254C(void);
|
||||
extern void FUN_02003B98(int, int);
|
||||
extern int FUN_02029EF8(int);
|
||||
extern int LoadPlayerDataAddress(int);
|
||||
extern void FUN_02020AFC(void);
|
||||
extern int FUN_020337E8(int);
|
||||
extern void FUN_02034188(int, int);
|
||||
extern int FUN_020227FC(int);
|
||||
extern void FUN_02089D90(int);
|
||||
extern void FUN_02000E7C(int, struct Unk21DBE18 *);
|
||||
extern void ErrorHandling(void);
|
||||
extern void FUN_02000FA4(void);
|
||||
extern void FUN_0200A2AC(void);
|
||||
extern void FUN_02015E30(void);
|
||||
extern void FUN_02000EE8(void);
|
||||
extern void FUN_02000FE8(void);
|
||||
extern void FUN_02016464(void);
|
||||
extern void FUN_02000F18(int);
|
||||
extern BOOL FUN_0202FB80(void);
|
||||
extern void FUN_02000E0C(void);
|
||||
extern void FUN_0201B5CC(int);
|
||||
extern void FUN_020125D4(void);
|
||||
extern void FUN_02015E60(void);
|
||||
extern void FUN_020222C4(void);
|
||||
extern void FUN_0200A318(void);
|
||||
extern void FUN_0200E2D8(void);
|
||||
extern void FUN_02003C10(void);
|
||||
|
||||
extern const s32 CONST_3F; // 0x0000003F
|
||||
extern const s32 CONST_34; // 0x00000034
|
||||
@@ -51,15 +91,15 @@ THUMB_FUNC void NitroMain(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (gUnk027FFC20)
|
||||
switch (*((s32 *)HW_RESET_PARAMETER_BUF))
|
||||
{
|
||||
case 0:
|
||||
gBacklightTop.unk1C = 0;
|
||||
FUN_02000E7C(&CONST_3F, &gUnk021DBE18);
|
||||
FUN_02000E7C(FS_OVERLAY_ID(MODULE_63), &gUnk021DBE18);
|
||||
break;
|
||||
case 1:
|
||||
gBacklightTop.unk1C = 1;
|
||||
FUN_02000E7C(&CONST_34, &gUnk021D76C8);
|
||||
FUN_02000E7C(FS_OVERLAY_ID(MODULE_52), &gUnk021D76C8);
|
||||
break;
|
||||
default:
|
||||
ErrorHandling();
|
||||
@@ -77,7 +117,7 @@ THUMB_FUNC void NitroMain(void)
|
||||
FUN_02000EE8();
|
||||
FUN_02000FE8();
|
||||
FUN_02016464();
|
||||
if ((gUnknown21C48B8.unk38 & 0x30C) == 0x30C && !gUnk021C4918.unk8) // soft reset?
|
||||
if ((gUnknown21C48B8.unk38 & SOFT_RESET_KEY) == SOFT_RESET_KEY && !gUnk021C4918.unk8) // soft reset?
|
||||
{
|
||||
FUN_02000F18(0); // soft reset?
|
||||
}
|
||||
|
||||
@@ -1,14 +1,21 @@
|
||||
#ifndef GUARD_MAIN_H
|
||||
#define GUARD_MAIN_H
|
||||
|
||||
#include "FS_overlay.h"
|
||||
|
||||
struct Unk21DBE18
|
||||
{
|
||||
u8 filler_00[16];
|
||||
};
|
||||
|
||||
struct Unk2106FA0
|
||||
{
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
s32 unk8;
|
||||
s32 unkC;
|
||||
s32 unk10;
|
||||
s32 unk14;
|
||||
FSOverlayID unk10;
|
||||
struct Unk21DBE18 * unk14;
|
||||
s32 unk18;
|
||||
s32 unk1C;
|
||||
s32 unk20;
|
||||
|
||||
Reference in New Issue
Block a user