Compare commits

..

14 Commits

Author SHA1 Message Date
axollyon
b901a6f4a8 Revert "buttonReleased" 2022-06-17 00:45:05 -04:00
Denis Kopyrin
4a3ef802d5 Fixed eeprom saving on VC (#334)
* Fixed eeprom saving on VC

* Specify SM for EEP4K, for any other savetype use ED

* Moved IS_VC() check to an earlier point, switch IS_VC()->gIsVC

* Moved binary VC files to bin folder, added checks for EEP

* Do not keep vc_bin if EEP is not set
2022-03-26 22:39:44 -04:00
Fazana
4b9a0b89a0 Add missing syncs for G_PM_NPRIMITIVE (#345) 2022-03-25 13:08:09 -04:00
Denis Kopyrin
3ac257e6fb Added no cap music restarts define (#335) 2022-03-20 08:48:40 -05:00
Gregory Heskett
cc92b33676 Merge pull request #338 from Reonu/develop/gheskett/audio-changes
Develop/gheskett/audio changes
2022-03-08 08:21:55 -06:00
gheskett
8163bc4837 sAudioFirstBoot renamed to sAudioIsInitialized 2022-03-08 01:03:54 -05:00
gheskett
9f2f4a27b6 Whoops 2022-03-08 00:51:22 -05:00
gheskett
448d18de2b Bugfixes, sound bank heap defines, BETTER_REVERB improvements 2022-03-08 00:49:13 -05:00
gheskett
c4a23d0036 Bugfix: the smaller MAX_SIMULTANEOUS_NOTES define, when used, can lead to silence on audio init 2022-02-27 00:20:52 -05:00
gheskett
f061076a4f Audio safeguard error 2022-02-26 03:01:08 -05:00
gheskett
8f2b9c8979 Pointless memory allocation 2022-02-26 02:52:40 -05:00
gheskett
056e319105 Some formatting changes :( (But also some safeguards and updated documentation) 2022-02-26 01:56:07 -05:00
gheskett
6bd3988dd8 Add MAX_SIMULTANEOUS_NOTES defines and better document audio allocations for audio heap (looks kinda awful still) 2022-02-25 05:11:16 -05:00
gheskett
fe8384a440 Deprecate sBackgroundMusicDefaultVolume 2022-02-24 02:07:39 -05:00
65 changed files with 480 additions and 582 deletions

View File

@@ -25,7 +25,7 @@
"TARGET_N64=1",
"VERSION_US=1",
"F3DEX_GBI_2=1",
"F3DZEX_NON_GBI_2=1",
"F3DZEX_GBI_2=1",
"F3DEX_GBI_SHARED=1",
"NON_MATCHING=1",
"AVOID_UB=1"

View File

@@ -108,7 +108,7 @@ else ifeq ($(GRUCODE),l3dex2) # Line3DEX2
else ifeq ($(GRUCODE),f3dex2pl) # Fast3DEX2_PosLight
DEFINES += F3DEX2PL_GBI=1 F3DEX_GBI_2=1 F3DEX_GBI_SHARED=1
else ifeq ($(GRUCODE),f3dzex) # Fast3DZEX (2.08J / Animal Forest - DĹŤbutsu no Mori)
DEFINES += F3DZEX_NON_GBI_2=1 F3DEX_GBI_2=1 F3DEX_GBI_SHARED=1
DEFINES += F3DZEX_GBI_2=1 F3DEX_GBI_2=1 F3DEX_GBI_SHARED=1
else ifeq ($(GRUCODE),super3d) # Super3D
$(warning Super3D is experimental. Try at your own risk.)
DEFINES += SUPER3D_GBI=1 F3D_NEW=1
@@ -323,25 +323,11 @@ ifeq ($(filter clean distclean print-%,$(MAKECMDGOALS)),)
ifeq ($(NOEXTRACT),0)
DUMMY != $(PYTHON) extract_assets.py $(VERSION) >&2 || echo FAIL
ifeq ($(DUMMY),FAIL)
$(error Failed to extract assets from US ROM)
$(error Failed to extract assets)
endif
ifneq (,$(wildcard baserom.jp.z64))
DUMMY != $(PYTHON) extract_assets.py jp >&2 || echo FAIL
ifeq ($(DUMMY),FAIL)
$(error Failed to extract assets from JP ROM)
endif
endif
ifneq (,$(wildcard baserom.eu.z64))
DUMMY != $(PYTHON) extract_assets.py eu >&2 || echo FAIL
ifeq ($(DUMMY),FAIL)
$(error Failed to extract assets from EU ROM)
endif
endif
ifneq (,$(wildcard baserom.sh.z64))
DUMMY != $(PYTHON) extract_assets.py sh >&2 || echo FAIL
ifeq ($(DUMMY),FAIL)
$(error Failed to extract assets from SH ROM)
endif
DUMMY != $(PYTHON) extract_assets.py jp >&2 || echo FAIL
ifeq ($(DUMMY),FAIL)
$(error Failed to extract assets)
endif
endif

View File

@@ -27,6 +27,7 @@ const Gfx bubble_seg4_dl_0401DD60[] = {
gsSPVertex(bubble_seg4_vertex_0401CD20, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),
};
@@ -40,6 +41,7 @@ const Gfx bubble_seg4_dl_0401DDE0[] = {
gsSPVertex(bubble_seg4_vertex_0401CD20, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),
};

View File

@@ -123,6 +123,7 @@ const Gfx coin_seg3_dl_start[] = {
const Gfx coin_seg3_dl_end[] = {
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),
@@ -503,6 +504,7 @@ const Gfx coin_seg3_sub_dl_begin[] = {
const Gfx coin_seg3_sub_dl_end[] = {
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),

View File

@@ -24,6 +24,7 @@ const Gfx leaves_seg3_dl_0301CDE0[] = {
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),
};

View File

@@ -36,11 +36,13 @@ const Gfx mr_i_eyeball_seg6_dl_06002080[] = {
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsDPPipeSync(),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mr_i_eyeball_seg6_texture_06001080),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),
};

View File

@@ -40,6 +40,7 @@ const Gfx mr_i_iris_seg6_dl_06004170[] = {
gsSPVertex(mr_i_iris_seg6_vertex_06002130, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),
};

View File

@@ -23,6 +23,7 @@ const Gfx sand_seg3_dl_particle[] = {
gsSPVertex(sand_seg3_vertex_billboard_16x16, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),

View File

@@ -50,6 +50,7 @@ const Gfx sparkles_seg4_dl_0402A490[] = {
gsSPVertex(sparkles_seg4_vertex_04027450, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),
};

View File

@@ -47,6 +47,7 @@ const Gfx sparkles_animation_seg4_dl_04035288[] = {
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsSPSetGeometryMode(G_LIGHTING),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),
};

View File

@@ -46,6 +46,7 @@ const Gfx transparent_star_seg3_dl_body[] = {
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsDPSetEnvColor(255, 255, 255, 120),
gsSPDisplayList(transparent_star_seg3_sub_dl_body),
gsDPPipeSync(),
gsDPSetEnvColor(255, 255, 255, 255),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),

View File

@@ -56,6 +56,7 @@ const Gfx smoke_seg4_dl_040216A0[] = {
gsSPVertex(smoke_seg4_vertex_0401DE60, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),

View File

@@ -61,6 +61,7 @@ const Gfx water_splash_seg4_dl_040325C8[] = {
gsSPVertex(water_splash_seg4_vertex_0402A588, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),

View File

@@ -17,7 +17,11 @@
.ascii INTERNAL_ROM_NAME /* Internal ROM name */
.word 0x00000000 /* Unknown */
.word 0x0000004E /* Cartridge */
#if defined(EEP4K)
.ascii "SM" /* Cartridge ID */
#else
.ascii "ED" /* Cartridge ID */
#endif
/* Region */
#if defined(VERSION_JP) || defined(VERSION_SH)

23
asm/vc_bin.s Normal file
View File

@@ -0,0 +1,23 @@
// VC is using binary matching to stub functions - this hex was copied from SM64
// osEepromRead/Write are performing infinite cycle inside them which causes recompiler do go crazy
// _osEepStatus does not have any suspicious asm in it but it is just VC hacked anyways
// If it is not replaced with a VC variant, EEP probe fails
.include "macros.inc"
.section .text
#if defined(EEP)
// 0x80329150 = 0xE4150
.balign 16
glabel osEepromReadVC
.incbin "bin/vc/osEepromReadVC.bin"
// 0x80328af0 = 0xE3AF0
.balign 16
glabel osEepromWriteVC
.incbin "bin/vc/osEepromWriteVC.bin"
.balign 16
glabel __osEepStatusVC
.incbin "bin/vc/osEepStatusVC.bin"
#endif

View File

@@ -130,6 +130,7 @@ const Gfx tiny_bubble_dl_0B006A50[] = {
// 0x0B006AB0 - 0x0B006AD8
const Gfx tiny_bubble_dl_0B006AB0[] = {
gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK | G_SHADING_SMOOTH),

View File

@@ -2328,6 +2328,7 @@ const Gfx dl_draw_triangle[] = {
gsSPVertex(vertex_triangle, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPSetGeometryMode(G_LIGHTING),
gsDPPipeSync(),
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPEndDisplayList(),

BIN
bin/vc/osEepStatusVC.bin Normal file

Binary file not shown.

BIN
bin/vc/osEepromReadVC.bin Normal file

Binary file not shown.

BIN
bin/vc/osEepromWriteVC.bin Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More