Add revision 10 changes (#722)
* revision 10 changes * add rev10 to github actions * add no-intro entry for leafgreen rev10
This commit is contained in:
@@ -23,8 +23,13 @@
|
||||
#define PCSWITCH_FORCE_SP_START 0x09
|
||||
|
||||
// Period for which parent-child switching search specified
|
||||
#if REVISION >= 0xA
|
||||
#define PCSWITCH_ALL_PERIOD 180 // Entire cycle 180 frames
|
||||
#define PCSWITCH_SP_PERIOD 65 // Child period 40 frames
|
||||
#else
|
||||
#define PCSWITCH_ALL_PERIOD 180 // Entire cycle 180 frames
|
||||
#define PCSWITCH_SP_PERIOD 40 // Child period 40 frames
|
||||
#endif
|
||||
|
||||
// Error code returned by Link Manager API (rfu_LMAN_...return value of function)
|
||||
#define LMAN_ERROR_MANAGER_BUSY 1 // Link Manager is already running.
|
||||
@@ -165,6 +170,9 @@ typedef struct linkManagerTag
|
||||
/* 0x014 */ u16 param[2];
|
||||
/* 0x018 */ u16 NI_failCounter_limit;
|
||||
/* 0x01a */ u16 connect_period;
|
||||
#if REVISION >= 0xA
|
||||
/* 0x01c */ u16 connect_period_initial; // pushes next offsets up by 2
|
||||
#endif
|
||||
/* 0x01c */ u16 pcswitch_period_bak;
|
||||
/* 0x01e */ u16 work;
|
||||
/* 0x020 */ u16 *acceptable_serialNo_list;
|
||||
@@ -190,6 +198,10 @@ u8 rfu_LMAN_setLinkRecovery(u8 enable_flag, u16 recovery_period);
|
||||
void rfu_LMAN_manager_entity(u32 rand);
|
||||
void rfu_LMAN_syncVBlank(void);
|
||||
u8 rfu_LMAN_initializeManager(void (*LMAN_callback_p)(u8, u8), void (*MSC_callback_p)(u16));
|
||||
#if REVISION >= 0xA
|
||||
void rfu_LMAN_forceChangeSP(bool8 child);
|
||||
#else
|
||||
void rfu_LMAN_forceChangeSP(void);
|
||||
#endif
|
||||
|
||||
#endif //GUARD_LINKMANAGER_H
|
||||
|
||||
+7
-2
@@ -8,12 +8,17 @@
|
||||
// still has them in the ROM. This is because the developers forgot
|
||||
// to define NDEBUG before release, however this has been changed as
|
||||
// Ruby's actual debug build does not use the AGBPrint features.
|
||||
// #define NDEBUG
|
||||
|
||||
// Revision 10 disabled asserts in some other way, comment out NDEBUG there to bring them back.
|
||||
#if REVISION >= 0xA
|
||||
#define NDEBUG
|
||||
#endif
|
||||
|
||||
// Fire Red likely forgot to define NDEBUG/NOAGBPRN before release, leading
|
||||
// to the inclusion of asserts in the retail ROM.
|
||||
// Revision 10 disabled asserts in some other way, but isagbprint/etc is still present there.
|
||||
|
||||
#ifndef NDEBUG
|
||||
#if !defined(NDEBUG) || REVISION >= 0xA
|
||||
#define PRETTY_PRINT_OFF (0)
|
||||
#define PRETTY_PRINT_MINI_PRINTF (1)
|
||||
#define PRETTY_PRINT_LIBC (2)
|
||||
|
||||
@@ -7,9 +7,10 @@
|
||||
// exceed RFU_CHILD_MAX (4), for a total of 5 including the player.
|
||||
#define MAX_UNION_ROOM_LEADERS 8
|
||||
|
||||
#define UNION_ROOM_SPAWN_NONE 0
|
||||
#define UNION_ROOM_SPAWN_IN 1
|
||||
#define UNION_ROOM_SPAWN_OUT 2
|
||||
#define UNION_ROOM_SPAWN_NONE 0
|
||||
#define UNION_ROOM_SPAWN_IN 1
|
||||
#define UNION_ROOM_SPAWN_OUT 2
|
||||
#define UNION_ROOM_SPAWN_OUT_SOON 3 // Equivalent to SPAWN_OUT in revision 10 - probably SPAWN_OUT means disconnected in a "connection reset" way?
|
||||
|
||||
#define UNION_ROOM_MAX_LEVEL 30
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#define MGBA_LOG_INFO (3)
|
||||
#define MGBA_LOG_DEBUG (4)
|
||||
|
||||
#ifdef NDEBUG
|
||||
#if defined(NDEBUG) && !(REVISION >= 0xA)
|
||||
#define DebugPrintf(pBuf, ...)
|
||||
#define DebugPrintfLevel(level, pBuf, ...)
|
||||
#define MgbaOpen()
|
||||
|
||||
@@ -4,7 +4,11 @@
|
||||
#include "global.h"
|
||||
#include "main.h"
|
||||
|
||||
#if REVISION >= 0xA
|
||||
#define LIBRFU_VERSION 1028
|
||||
#else
|
||||
#define LIBRFU_VERSION 1024
|
||||
#endif
|
||||
|
||||
/* TODOs:
|
||||
* - documentation
|
||||
|
||||
@@ -294,6 +294,7 @@ bool32 WaitRfuState(bool32 force);
|
||||
bool32 HasTrainerLeftPartnersList(u16 trainerId, const u8 *trainerName);
|
||||
void SendRfuStatusToPartner(u8 status, u16 trainerId, const u8 *name);
|
||||
u32 WaitSendRfuStatusToPartner(u16 trainerId, const u8 *name);
|
||||
s32 GetJoinGroupStatus(void);
|
||||
void SetHostRfuGameData(u8 activity, u32 partnerInfo, bool32 startedActivity);
|
||||
void InitializeRfuLinkManager_LinkLeader(u32 availSlots);
|
||||
void RequestDisconnectSlotByTrainerNameAndId(const u8 *trainerName, u16 trainerId);
|
||||
@@ -322,6 +323,17 @@ void RfuSetNormalDisconnectMode(void);
|
||||
void SetUnionRoomChatPlayerData(u32 numPlayers);
|
||||
void ClearRecvCommands(void);
|
||||
|
||||
void PkmnStrToASCII(u8 *dest, const u8 *src);
|
||||
void ASCIIToPkmnStr(u8 *dest, const u8 *src);
|
||||
|
||||
#if REVISION >= 0xA
|
||||
u16 RfuGetErrorInfo(void);
|
||||
void LinkRfu_ForceChangeSpParent(void);
|
||||
void DestroyTask_RfuReconnectWithParent(void);
|
||||
void RfuReloadSave(void);
|
||||
void RfuSoftReset(void);
|
||||
#endif
|
||||
|
||||
#include "mystery_gift_server.h"
|
||||
extern const struct MysteryGiftServerCmd gServerScript_ClientCanceledCard[];
|
||||
|
||||
|
||||
@@ -180,6 +180,10 @@ void UpdateEscapeWarp(s16 x, s16 y);
|
||||
bool8 SetDiveWarpEmerge(u16 x, u16 y);
|
||||
bool8 SetDiveWarpDive(u16 x, u16 y);
|
||||
|
||||
#if REVISION >= 0xA
|
||||
void ClearFieldCallback(void);
|
||||
#endif
|
||||
|
||||
extern u16 *gBGTilemapBuffers1;
|
||||
extern u16 *gBGTilemapBuffers2;
|
||||
extern u16 *gBGTilemapBuffers3;
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
#ifndef GUARD_SLOOPSVC_H
|
||||
#define GUARD_SLOOPSVC_H
|
||||
|
||||
#if REVISION >= 0xA
|
||||
|
||||
#define SVC4B_EXIT_EARLY (1 << 0)
|
||||
#define SVC4B_RESEED_RNG (1 << 1)
|
||||
|
||||
void svc_40(void);
|
||||
void svc_41(void);
|
||||
|
||||
void svc_47(void);
|
||||
void svc_42(void);
|
||||
u32 svc_49(void);
|
||||
void svc_45_rfu_link_status(void);
|
||||
u32 svc_4a(void);
|
||||
void svc_43(u16 pid);
|
||||
void svc_44(void);
|
||||
u32 svc_53(void);
|
||||
u32 svc_51(void);
|
||||
u32 svc_4b(void);
|
||||
void svc_WriteSector(u8 sector, u8* data);
|
||||
void svc_ReplaceSector(u8 sector, u8* data);
|
||||
void svc_FinishSave(void);
|
||||
u32 svc_CommsAllowedByParentalControls(void);
|
||||
u32 svc_BadWordCheck(u8* str);
|
||||
void svc_4f(u32 arg);
|
||||
u32 svc_50(void);
|
||||
void svc_SetSaveBlock2(struct SaveBlock2* saveBlock2);
|
||||
void svc_stubbed(void);
|
||||
void svc_SetStarter(u32 species);
|
||||
void svc_SetActivity(u32 activity);
|
||||
void svc_IncrementLinkError(void);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
Reference in New Issue
Block a user