mirror of
https://github.com/SAT-R/sa2.git
synced 2026-10-28 09:43:38 +00:00
vc: start vc match
This commit is contained in:
1 parent
7d04dd10e2
commit
776d203252
4 files changed
+42
No files matched your search
@@ -203,6 +203,10 @@ FORMAT_H_PATHS := $(shell find . -name "*.h" ! -path '*/build/*' ! -path '*/ex
|
|||||||
CPPFLAGS ?= $(INCLUDE_CPP_ARGS) -D $(GAME_REGION)
|
CPPFLAGS ?= $(INCLUDE_CPP_ARGS) -D $(GAME_REGION)
|
||||||
CC1FLAGS ?= -Wimplicit -Wparentheses -Werror
|
CC1FLAGS ?= -Wimplicit -Wparentheses -Werror
|
||||||
|
|
||||||
|
ifneq ($(GAME_VARIANT), 0)
|
||||||
|
CPPFLAGS += -D $(GAME_VARIANT)
|
||||||
|
endif
|
||||||
|
|
||||||
# These have to(?) be defined this way, because
|
# These have to(?) be defined this way, because
|
||||||
# the C-preprocessor cannot resolve stuff like:
|
# the C-preprocessor cannot resolve stuff like:
|
||||||
# #if (PLATFORM == gba), where PLATFORM is defined via -D.
|
# #if (PLATFORM == gba), where PLATFORM is defined via -D.
|
||||||
@@ -397,6 +401,8 @@ tidy:
|
|||||||
|
|
||||||
japan: ; @$(MAKE) GAME_REGION=JAPAN
|
japan: ; @$(MAKE) GAME_REGION=JAPAN
|
||||||
|
|
||||||
|
japan_vc: ; @$(MAKE) GAME_REGION=JAPAN GAME_VARIANT=VIRTUAL_CONSOLE
|
||||||
|
|
||||||
europe: ; @$(MAKE) GAME_REGION=EUROPE
|
europe: ; @$(MAKE) GAME_REGION=EUROPE
|
||||||
|
|
||||||
sdl: ; @$(MAKE) PLATFORM=sdl
|
sdl: ; @$(MAKE) PLATFORM=sdl
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ endif
|
|||||||
# Default game variables
|
# Default game variables
|
||||||
GAME_REVISION ?= 0
|
GAME_REVISION ?= 0
|
||||||
GAME_REGION ?= USA
|
GAME_REGION ?= USA
|
||||||
|
GAME_VARIANT ?= 0
|
||||||
DEBUG ?= 0
|
DEBUG ?= 0
|
||||||
|
|
||||||
# For gbafix
|
# For gbafix
|
||||||
@@ -92,6 +93,10 @@ endif
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(GAME_VARIANT), VIRTUAL_CONSOLE)
|
||||||
|
BUILD_NAME := $(BUILD_NAME)_vc
|
||||||
|
endif
|
||||||
|
|
||||||
# Debug
|
# Debug
|
||||||
ifeq ($(DEBUG), 1)
|
ifeq ($(DEBUG), 1)
|
||||||
BUILD_NAME := $(BUILD_NAME)_debug
|
BUILD_NAME := $(BUILD_NAME)_debug
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
2aa6ee2cf2b0ebfafbea6d6d24165b252a7e329e sa2_japan_vc.gba
|
||||||
@@ -149,6 +149,9 @@ void Task_Item_Shield_Normal(void)
|
|||||||
if (!(gPlayer.itemEffect & PLAYER_ITEM_EFFECT__INVINCIBILITY)) {
|
if (!(gPlayer.itemEffect & PLAYER_ITEM_EFFECT__INVINCIBILITY)) {
|
||||||
bool32 b;
|
bool32 b;
|
||||||
s32 screenX, screenY;
|
s32 screenX, screenY;
|
||||||
|
#ifdef VIRTUAL_CONSOLE
|
||||||
|
u32 r0;
|
||||||
|
#endif
|
||||||
|
|
||||||
screenX = I(gPlayer.qWorldX) - cam->x;
|
screenX = I(gPlayer.qWorldX) - cam->x;
|
||||||
item->s.x = screenX + gPlayer.unk7C;
|
item->s.x = screenX + gPlayer.unk7C;
|
||||||
@@ -161,6 +164,10 @@ void Task_Item_Shield_Normal(void)
|
|||||||
|
|
||||||
UpdateSpriteAnimation(&item->s);
|
UpdateSpriteAnimation(&item->s);
|
||||||
|
|
||||||
|
#ifdef VIRTUAL_CONSOLE
|
||||||
|
r0 = Mod(gStageTime, 6);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef NON_MATCHING
|
#ifndef NON_MATCHING
|
||||||
asm("mov %0, %2\n"
|
asm("mov %0, %2\n"
|
||||||
"and %0, %1\n"
|
"and %0, %1\n"
|
||||||
@@ -169,15 +176,38 @@ void Task_Item_Shield_Normal(void)
|
|||||||
|
|
||||||
// Make the compiler "forget" that itemEffect is 0x1
|
// Make the compiler "forget" that itemEffect is 0x1
|
||||||
asm("" : "=r"(itemEffect));
|
asm("" : "=r"(itemEffect));
|
||||||
|
#ifdef VIRTUAL_CONSOLE
|
||||||
|
{
|
||||||
|
register u32 r2 asm("r2") = 6;
|
||||||
|
r0 &= r2;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
b = (param & 0x1);
|
b = (param & 0x1);
|
||||||
|
#ifdef VIRTUAL_CONSOLE
|
||||||
|
r0 &= 6;
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef VIRTUAL_CONSOLE
|
||||||
|
if ((!r0 && (b != itemEffect)) || (r0 && (b != 0))) {
|
||||||
|
#else
|
||||||
if (((gStageTime & 0x2) && (b != itemEffect)) || (!(gStageTime & 0x2) && (b != 0))) {
|
if (((gStageTime & 0x2) && (b != itemEffect)) || (!(gStageTime & 0x2) && (b != 0))) {
|
||||||
|
#endif
|
||||||
DisplaySprite(&item->s);
|
DisplaySprite(&item->s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NON_MATCHING
|
||||||
|
// Looks like they may have manually edited the rom for the virtual console
|
||||||
|
// to keep all the functions in the same alignment as the original rom.
|
||||||
|
// Maybe they couldn't reexport the anims?
|
||||||
|
#ifdef VIRTUAL_CONSOLE
|
||||||
|
asm(".byte 0x00, 0x00, 0x00, 0x00");
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
void Task_Item_Shield_Magnetic(void)
|
void Task_Item_Shield_Magnetic(void)
|
||||||
{
|
{
|
||||||
s8 param = ITEMTASK_GET_PLAYER_NUM();
|
s8 param = ITEMTASK_GET_PLAYER_NUM();
|
||||||
|
|||||||
Reference in new issue
Block a user