You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
Merge branch 'master' into skybox
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -75,6 +75,10 @@ build/*
|
||||
|
||||
!/lib/*.a
|
||||
lib/libs2d_engine.a
|
||||
!/lib/gcclib/*.a
|
||||
!/lib/gcclib/divbreak/*.a
|
||||
!/lib/gcclib/nocheck/*.a
|
||||
!/lib/gcclib/trap/*.a
|
||||
!/lib/n64/*.a
|
||||
!/lib/ique/*.a
|
||||
|
||||
|
||||
14
Makefile
14
Makefile
@@ -42,6 +42,14 @@ COMPILER ?= gcc
|
||||
$(eval $(call validate-option,COMPILER,gcc))
|
||||
|
||||
|
||||
# LIBGCCDIR - selects the libgcc configuration for checking for dividing by zero
|
||||
# trap - GCC default behavior, uses teq instructions which some emulators don't like
|
||||
# divbreak - this is similar to IDO behavior, and is default.
|
||||
# nocheck - never checks for dividing by 0. Technically fastest, but also UB so not recommended
|
||||
LIBGCCDIR ?= divbreak
|
||||
$(eval $(call validate-option,LIBGCCDIR,trap divbreak nocheck))
|
||||
|
||||
|
||||
# SAVETYPE - selects the save type
|
||||
# eep4k - uses EEPROM 4kbit
|
||||
# eep16k - uses EEPROM 16kbit (There aren't any differences in syntax, but this is provided just in case)
|
||||
@@ -128,7 +136,7 @@ else ifeq ($(GRUCODE),super3d) # Super3D
|
||||
DEFINES += SUPER3D_GBI=1 F3D_NEW=1
|
||||
endif
|
||||
|
||||
LIBRARIES := gcc nustd hvqm2 z goddard
|
||||
LIBRARIES := nustd hvqm2 z goddard
|
||||
|
||||
# TEXT ENGINES
|
||||
# s2dex_text_engine - Text Engine by someone2639
|
||||
@@ -409,7 +417,7 @@ DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES)
|
||||
# C compiler options
|
||||
CFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) $(MIPSISET) $(DEF_INC_CFLAGS)
|
||||
ifeq ($(COMPILER),gcc)
|
||||
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
|
||||
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-missing-braces
|
||||
else
|
||||
CFLAGS += -non_shared -Wab,-r4300_mul -Xcpluscomm -Xfullwarn -signed -32
|
||||
endif
|
||||
@@ -757,7 +765,7 @@ $(BUILD_DIR)/libz.a: $(LIBZ_O_FILES)
|
||||
# Link SM64 ELF file
|
||||
$(ELF): $(O_FILES) $(YAY0_OBJ_FILES) $(SEG_FILES) $(BUILD_DIR)/$(LD_SCRIPT) undefined_syms.txt $(BUILD_DIR)/libz.a $(BUILD_DIR)/libgoddard.a
|
||||
@$(PRINT) "$(GREEN)Linking ELF file: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T undefined_syms.txt -T $(BUILD_DIR)/$(LD_SCRIPT) -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib $(LINK_LIBRARIES) -u sprintf -u osMapTLB
|
||||
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T undefined_syms.txt -T $(BUILD_DIR)/$(LD_SCRIPT) -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib $(LINK_LIBRARIES) -u sprintf -u osMapTLB -Llib/gcclib/$(LIBGCCDIR) -lgcc
|
||||
|
||||
# Build ROM
|
||||
$(ROM): $(ELF)
|
||||
|
||||
85
README.md
85
README.md
@@ -4,47 +4,61 @@
|
||||
This repo needs gcc in order to be able to build it. To install it, run `sudo apt install gcc-mips-linux-gnu`
|
||||
|
||||
This is a fork of the ultrasm64 repo by CrashOveride which includes the following commonly used patches (patches marked with `*` are toggleable in `config.h`):
|
||||
- slope fix
|
||||
- exposed ceilings fix
|
||||
|
||||
**Collision:**
|
||||
- Slope fix and exposed ceilings fix
|
||||
- No false ledgegrabs fix *
|
||||
- Jump kick fix *
|
||||
- 46 degree wallkicks *
|
||||
- Pole fix
|
||||
- Possibility of disabling BLJs *
|
||||
- Instant Input patch by Wiseguy (Removes all input lag caused by good emulators and plugins)
|
||||
- pole fix
|
||||
- Hanging fix (mario can grab hangable ceilings from any state, instead of only jump or double jump) *
|
||||
- Increased maximum pole length (The game will read bparam1 and bparam2 together as a single value, so you can have a very long pole) *
|
||||
- Platform Displacement 2 by Arthurtilly *
|
||||
- Water Surface Type patch by thecozies
|
||||
- Rounded corners by FramePerfection, merged by Cheezepin
|
||||
|
||||
**Common Hack Changes:**
|
||||
- Better extended boundaries by anonymous_moose
|
||||
- Mario head skip *
|
||||
- Peach letter cutscene skip *
|
||||
- Castle music fix (Fixes the castle music sometimes triggering after getting a dialog) *
|
||||
- Ability to easily change the warp that EXIT COURSE takes you to via config.h, or disable it entirely
|
||||
- Exit course while moving *
|
||||
- Toggle to disable fall damage and the fall damage sound *
|
||||
- Ability to configure whether there's a 100 coin star at all and how many coins are required to spawn it *
|
||||
- Non-stop stars *
|
||||
- better extended boundaries by anonymous_moose
|
||||
- water surface type patch by thecozies
|
||||
- platform displacement 2 by arthur *
|
||||
- Nonstop stars *
|
||||
- Removed course-specific camera processing *
|
||||
- You can increase the number of frames that you have to perform a firsty *
|
||||
|
||||
**Hacker QOL:**
|
||||
- Global, non-level based, star IDs (off by default) *
|
||||
- FPS counter (use the function `print_fps(x,y)` anywhere that runs code every frame)
|
||||
- Automatic console/emulator detection. If emulator is detected, LODs are disabled. *
|
||||
- Rounded corners by Frame, merged by Cheezepin
|
||||
- Widescreen (16:9) support toggleable by pressing `L` in the pause menu. *
|
||||
- Removed course-specific camera processing *
|
||||
- Increased maximum pole lenght (The game will read bparam1 and bparam2 together as a single value, so you can have a very long pole) *
|
||||
- Ability to configure whether there's a 100 coin star at all and how many coins are required to spawn it *
|
||||
- Ability to easily change the warp that EXIT COURSE takes you to via config.h, or disable it entirely
|
||||
- 16 bit model IDs by someone2639. This means you can have up to 65536 models (lol)
|
||||
- Apply_patch.sh improved
|
||||
- Removed the ifdef hell in `file_select.c` and `ingame_menu.c`
|
||||
- Added Blake's custom function for object model stuff: `obj_set_model` and `obj_has_model`
|
||||
- The "far" variable is now u16, allowing you to increase the farclip (the max distance at which geometry is rendered). However, when increasing the farclip, make sure to increase the nearclip by the same ratio, or rendering will break on console and LLE plugins.
|
||||
- Many general use defines for object struct members, meant for use in custom object behaviors. Check `object_fields.h` for more info on this. (By MrComit)
|
||||
- Included `actors/group0.c` in `behavior_data.c`
|
||||
|
||||
**Other Bugfixes:**
|
||||
- Castle music fix (Fixes the castle music sometimes triggering after getting a dialog) *
|
||||
- bparam4 fix (the game no longer uses bparam4 to check if an object is mario and therefore you can safely use it)
|
||||
- Instant warp offset fix (makes the instant warp offset work even when warping to a different area) *
|
||||
- Global star IDs (disabled by default, toggleable in config.h). This allows you to create an open world (MVC-style) hack. *
|
||||
- Included `actors/group0.c` in `behavior_data.c`
|
||||
- 16 bit model IDs by someone2639. This means you can have up to 65536 models (lol)
|
||||
- s2dex engine by someone2639! To use it, compile with `make TEXT_ENGINE=s2dex_text_engine` or just set `TEXT_ENGINE` to `s2dex_text_engine` in the makefile.
|
||||
- haveyourcake, also known as cake screen fix. Made by Wiseguy and ported/PR'd by Cheezepin
|
||||
- Tree particle fix (Whether a tree uses snow particles or not is decided via the model IDs instead of the course number)
|
||||
- Removed the ifdef hell in `file_select.c` and `ingame_menu.c`
|
||||
- Added blake's custom function for object model stuff: `obj_set_model` and `obj_has_model`
|
||||
- Coordinate overflow fix by falcobuster. Your levels will render correctly on console and LLE emulators even when using 2x or 4x bounds, while not hurting anything on HLE plugins. **This is automatic now, you don't have to set WORLD_SCALE manually.**
|
||||
- The "far" variable has been turned into a u16, which allows you to increase the farclip (the maximum distance at which geometry gets rendered). However, when increasing the farclip, make sure to increase the nearclip by the same ratio, or the rendering will break on console and LLE plugins.
|
||||
- Many general use defines for object struct members, meant for use in custom object behaviors. Check `object_fields.h` for more info on this. (By MrComit)
|
||||
- Coordinate overflow fix by falcobuster. Your levels will render correctly on console and LLE emulators even when using 2x or 4x bounds, while not hurting anything on HLE plugins. *This is automatic now, you don't have to set WORLD_SCALE manually.*
|
||||
- A couple vanilla texture fixes
|
||||
- Smoke fix (the smoke texture uses the correct texture format)
|
||||
|
||||
**Neat Misc. Changes:**
|
||||
- Instant Input patch by Wiseguy (Removes all input lag caused by plugins supporting framebuffer)
|
||||
- This means that you'll have to do your framebuffer effects on buffer 0 for emulator, but NOT for console. You can use the `gIsConsole` variable to check for console when doing your framebuffer effects.
|
||||
- Widescreen (16:9) support toggleable by pressing `L` in the pause menu. *
|
||||
- S2DEX engine by someone2639! To use it, compile with `make TEXT_ENGINE=s2dex_text_engine` or just set `TEXT_ENGINE` to `s2dex_text_engine` in the makefile.
|
||||
- ia8 coins (64x64), the vanilla coin texture is upgraded to accomodate.
|
||||
|
||||
It also uncringes the way that apply_patch.sh works, and removes the black border.
|
||||
# UltraSM64
|
||||
|
||||
- This repo contains a full decompilation of Super Mario 64 (J), (U), (E), and (SH).
|
||||
@@ -56,8 +70,6 @@ It also uncringes the way that apply_patch.sh works, and removes the black borde
|
||||
- Newer compression options are supported.
|
||||
- UNFLoader (flashcart USB library) is supported, allowing for debugging on EverDrive/64Drive.
|
||||
- It has been patched with someone2639's shiftable segments patch
|
||||
- Wiseguy's instant input patch has been added to allow for less input lag on emulation (Does not affect console)
|
||||
This does mean that any framebuffer effects will have to be done on buffer 0 if targeting emulators
|
||||
- Getting HVQM FMV support to work with the game is WIP.
|
||||
|
||||
Requirements are the same as regular SM64, however a GCC MIPS cross compiler is also required. If you're on Debian-like Linux, you can use the ``gcc-mips-linux-gnu`` package. The toolchain that comes with my SDK is also supported.
|
||||
@@ -65,64 +77,47 @@ Requirements are the same as regular SM64, however a GCC MIPS cross compiler is
|
||||
## UNFLoader support
|
||||
|
||||
The repository supports UNFLoader for debugging.
|
||||
|
||||
To build with UNF, run make with ``UNF=1``.
|
||||
|
||||
Further instructions can be found at the [official repository](https://github.com/buu342/N64-UNFLoader)
|
||||
|
||||
## Multi-Save support
|
||||
|
||||
The repository supports SRAM in addition to EEPROM. The standard save data functions are #ifdef'd to accommedate this.
|
||||
|
||||
To build with SRAM support, run make with ``SAVETYPE=sram``.
|
||||
|
||||
I may attempt FlashRAM in the future.
|
||||
|
||||
## Multi-Console support
|
||||
|
||||
The repository supports targeting the iQue Player in addition to the N64. The iQue libultra is ***NOT*** compatible with N64 in many ways, so it is currently NOT possible to have one build for both consoles.
|
||||
|
||||
To target iQue, run make with the ``CONSOLE=bb`` argument.
|
||||
|
||||
## Compression
|
||||
|
||||
The repository supports using DEFLATE compression instead of Nintendo's Yay0. This boasts a better compression ratio, but at a slight cost to load times.
|
||||
|
||||
On average I'd estimate that the bottleneck on decompression is about 1-2 seconds.
|
||||
|
||||
To switch to gzip, run make with the ``COMPRESS=gzip`` argument.
|
||||
|
||||
The repo also supports gziping with ``libdeflate-gzip``. This compresses at a slightly better ratio than standard ``gzip``, with no real downside from a decompression standpoint.
|
||||
|
||||
To use ``libdeflate-gzip``, first clone the [repo](https://github.com/ebiggers/libdeflate), then make and make install it.
|
||||
|
||||
Then run make for sm64 with ``GZIPVER=libdef`` in addition to ``COMPRESS=gzip``
|
||||
|
||||
The repo also supports RNC (Rob Northen Compression). RNC has two methods.
|
||||
|
||||
Method 1 is designed to compress as small as possible, while method 2 is designed so that decompression is as fast as possible.
|
||||
|
||||
Both methods are fast. Method 1 has better compression than 2, so I suggest using method 1 if using RNC.
|
||||
|
||||
To switch to RNC, run make with either ``COMPRESS=rnc1`` or ``COMPRESS=rnc2``, depending on preferred method.
|
||||
|
||||
The repo also supports building a ROM with no compression.
|
||||
|
||||
This is not recommended as it increases ROM size significantly, with little point other than load times decreased to almost nothing.
|
||||
|
||||
To switch to no compression, run make with the ``COMPRESS=uncomp`` argument.
|
||||
|
||||
|
||||
## FAQ
|
||||
|
||||
Q: Why in the hell are you bundling your own build of ``ld``?
|
||||
|
||||
A: Newer binutils (Like the one bundled with Ubuntu, 2.34) break linking with libultra builds due to local asm symbols.
|
||||
|
||||
This puts me at a crossroads of either touching leaked code and requiring GCC, or just using an older linker that works just fine.
|
||||
|
||||
I went with the latter.
|
||||
|
||||
Thanks to "someone2639" for this hacky-ass idea
|
||||
|
||||
Q: Will this allow me to use FlashRAM/Transfer Pak/microcode swapping/Other Cool N64 Features?
|
||||
@@ -131,4 +126,4 @@ A: Theoretically, all yes.
|
||||
|
||||
## Installation help
|
||||
|
||||
Go read the original repo README.md
|
||||
Go read the original SM64 repo README.md
|
||||
|
||||
@@ -19,7 +19,7 @@ ALIGNED8 static const Texture burn_smoke_seg4_texture_04021800[] = {
|
||||
// 0x04022000 - 0x04022028
|
||||
const Gfx burn_smoke_seg4_dl_04022000[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -44,7 +44,7 @@ const Gfx burn_smoke_seg4_dl_04022048[] = {
|
||||
// 0x04022070 - 0x040220C8
|
||||
const Gfx burn_smoke_seg4_dl_04022070[] = {
|
||||
gsSPDisplayList(burn_smoke_seg4_dl_04022000),
|
||||
gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(burn_smoke_seg4_dl_04022028),
|
||||
gsSPDisplayList(burn_smoke_seg4_dl_04022048),
|
||||
gsSPEndDisplayList(),
|
||||
|
||||
BIN
actors/coin/coin_front.ia8.png
Normal file
BIN
actors/coin/coin_front.ia8.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
BIN
actors/coin/coin_side.ia8.png
Normal file
BIN
actors/coin/coin_side.ia8.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.4 KiB |
BIN
actors/coin/coin_tilt_left.ia8.png
Normal file
BIN
actors/coin/coin_tilt_left.ia8.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
BIN
actors/coin/coin_tilt_right.ia8.png
Normal file
BIN
actors/coin/coin_tilt_right.ia8.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
@@ -1,48 +1,92 @@
|
||||
// Coin
|
||||
#include "config.h"
|
||||
|
||||
// Coin
|
||||
#ifdef IA8_COINS
|
||||
// 0x030056C0
|
||||
static const Vtx coin_seg3_vertex_030056C0[] = {
|
||||
{{{ -32, 0, 0}, 0, { 0, 1984}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 32, 0, 0}, 0, { 1984, 1984}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 32, 64, 0}, 0, { 1984, 0}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ -32, 0, 0}, 0, { 0, 4032}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 32, 0, 0}, 0, { 4032, 4032}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 32, 64, 0}, 0, { 4032, 0}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ -32, 64, 0}, 0, { 0, 0}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
// 0x03005700
|
||||
static const Vtx coin_seg3_vertex_03005700[] = {
|
||||
{{{ -50, 0, 0}, 0, { 0, 1984}, {0x78, 0x78, 0xff, 0xff}}},
|
||||
{{{ 50, 0, 0}, 0, { 1984, 1984}, {0x78, 0x78, 0xff, 0xff}}},
|
||||
{{{ 50, 100, 0}, 0, { 1984, 0}, {0x78, 0x78, 0xff, 0xff}}},
|
||||
{{{ -50, 0, 0}, 0, { 0, 4032}, {0x78, 0x78, 0xff, 0xff}}},
|
||||
{{{ 50, 0, 0}, 0, { 4032, 4032}, {0x78, 0x78, 0xff, 0xff}}},
|
||||
{{{ 50, 100, 0}, 0, { 4032, 0}, {0x78, 0x78, 0xff, 0xff}}},
|
||||
{{{ -50, 100, 0}, 0, { 0, 0}, {0x78, 0x78, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
// 0x03005740
|
||||
static const Vtx coin_seg3_vertex_03005740[] = {
|
||||
{{{ -35, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 35, 0, 0}, 0, { 1984, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 35, 70, 0}, 0, { 1984, 0}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ -35, 0, 0}, 0, { 0, 4032}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 35, 0, 0}, 0, { 4032, 4032}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 35, 70, 0}, 0, { 4032, 0}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ -35, 70, 0}, 0, { 0, 0}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
#else
|
||||
static const Vtx coin_seg3_vertex_030056C0[] = {
|
||||
{{{ -32, 0, 0}, 0, { 0, 1984 }, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 32, 0, 0}, 0, { 1984 , 1984 }, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 32, 64, 0}, 0, { 1984 , 0}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ -32, 64, 0}, 0, { 0, 0}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
// 0x03005700
|
||||
static const Vtx coin_seg3_vertex_03005700[] = {
|
||||
{{{ -50, 0, 0}, 0, { 0, 1984 }, {0x78, 0x78, 0xff, 0xff}}},
|
||||
{{{ 50, 0, 0}, 0, { 1984 , 1984 }, {0x78, 0x78, 0xff, 0xff}}},
|
||||
{{{ 50, 100, 0}, 0, { 1984 , 0}, {0x78, 0x78, 0xff, 0xff}}},
|
||||
{{{ -50, 100, 0}, 0, { 0, 0}, {0x78, 0x78, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
// 0x03005740
|
||||
static const Vtx coin_seg3_vertex_03005740[] = {
|
||||
{{{ -35, 0, 0}, 0, { 0, 1984 }, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 35, 0, 0}, 0, { 1984 , 1984 }, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 35, 70, 0}, 0, { 1984 , 0}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ -35, 70, 0}, 0, { 0, 0}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
#endif
|
||||
|
||||
// 0x03005780
|
||||
#ifdef IA8_COINS
|
||||
ALIGNED8 static const Texture coin_seg3_texture_03005780[] = {
|
||||
#include "actors/coin/coin_front.ia16.inc.c"
|
||||
#include "actors/coin/coin_front.ia8.inc.c"
|
||||
};
|
||||
|
||||
// 0x03005F80
|
||||
ALIGNED8 static const Texture coin_seg3_texture_03005F80[] = {
|
||||
#include "actors/coin/coin_tilt_right.ia16.inc.c"
|
||||
#include "actors/coin/coin_tilt_right.ia8.inc.c"
|
||||
};
|
||||
|
||||
// 0x03006780
|
||||
ALIGNED8 static const Texture coin_seg3_texture_03006780[] = {
|
||||
#include "actors/coin/coin_side.ia16.inc.c"
|
||||
#include "actors/coin/coin_side.ia8.inc.c"
|
||||
};
|
||||
|
||||
// 0x03006F80
|
||||
ALIGNED8 static const Texture coin_seg3_texture_03006F80[] = {
|
||||
#include "actors/coin/coin_tilt_left.ia8.inc.c"
|
||||
};
|
||||
#else
|
||||
ALIGNED8 static const Texture coin_seg3_texture_03005780[] = {
|
||||
#include "actors/coin/coin_front.ia16.inc.c"
|
||||
};
|
||||
|
||||
ALIGNED8 static const Texture coin_seg3_texture_03005F80[] = {
|
||||
#include "actors/coin/coin_tilt_right.ia16.inc.c"
|
||||
};
|
||||
|
||||
ALIGNED8 static const Texture coin_seg3_texture_03006780[] = {
|
||||
#include "actors/coin/coin_side.ia16.inc.c"
|
||||
};
|
||||
|
||||
ALIGNED8 static const Texture coin_seg3_texture_03006F80[] = {
|
||||
#include "actors/coin/coin_tilt_left.ia16.inc.c"
|
||||
};
|
||||
#endif
|
||||
|
||||
// 0x03007780 - 0x030077D0
|
||||
const Gfx coin_seg3_dl_03007780[] = {
|
||||
@@ -50,11 +94,19 @@ const Gfx coin_seg3_dl_03007780[] = {
|
||||
gsSPClearGeometryMode(G_LIGHTING),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON),
|
||||
#ifdef IA8_COINS
|
||||
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 6, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64/2 * 64 - 1, CALC_DXT(64/2, G_IM_SIZ_16b_BYTES)),
|
||||
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 6, G_TX_NOLOD),
|
||||
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
|
||||
#else
|
||||
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
|
||||
#endif
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
||||
BIN
actors/flyguy/flyguy_face.rgba16.png
Normal file
BIN
actors/flyguy/flyguy_face.rgba16.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 995 B |
BIN
actors/warp_pipe/warp_pipe_side.rgba16.png
Normal file
BIN
actors/warp_pipe/warp_pipe_side.rgba16.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1012 B |
@@ -1,10 +1,9 @@
|
||||
#ifndef CONFIG_H
|
||||
#define CONFIG_H
|
||||
|
||||
// ULTRASM64-EXTBOUNDS CONFIG FLAGS NEAR BOTTOM
|
||||
/**
|
||||
* @file config.h
|
||||
* A catch-all file for configuring various bugfixes and other settings
|
||||
* (maybe eventually) in SM64
|
||||
* A catch-all file for configuring various bugfixes and other settings (maybe eventually) in SM64
|
||||
*/
|
||||
|
||||
// Bug Fixes
|
||||
@@ -47,37 +46,17 @@
|
||||
|
||||
#endif
|
||||
|
||||
// --ultrasm64-extbounds specific settings--
|
||||
// Enable widescreen (16:9) support
|
||||
#define WIDE
|
||||
// When this option is enabled, LODs will ONLY work on console.
|
||||
// When this option is disabled, LODs will work regardless of whether console or emulator is used.
|
||||
// Regardless of whether this setting is enabled or not, you can use gIsConsole to wrap your own code in a console check.
|
||||
#define AUTO_LOD
|
||||
// -- ultrasm64-extbounds specific settings --
|
||||
|
||||
// COMMON HACK CHANGES
|
||||
// Disable lives and hide the lives counter
|
||||
#define DISABLE_LIVES
|
||||
// Skip peach letter cutscene
|
||||
#define PEACH_SKIP
|
||||
// Fixes the castle music sometimes triggering after getting a dialog
|
||||
#define CASTLE_MUSIC_FIX
|
||||
// Remove course specific camera processing
|
||||
#define CAMERA_FIX
|
||||
// Increase the maximum pole length (it will treat bparam1 and bparam2 as a single value)
|
||||
#define LONGER_POLES
|
||||
// Disable lives and hide the lives counter
|
||||
#define DISABLE_LIVES
|
||||
// Disable AA (Recommended: it changes nothing on emulator, and it makes console run better)
|
||||
#define DISABLE_AA
|
||||
// Fix instant warp offset not working when warping across different areas
|
||||
#define INSTANT_WARP_OFFSET_FIX
|
||||
// Allows Mario to ledgegrab sloped floors
|
||||
#define NO_FALSE_LEDGEGRABS
|
||||
// Allows Mario to jump kick on steep surfaces that are set to be non slippery, instead of being forced to dive
|
||||
#define JUMP_KICK_FIX
|
||||
// Allow Mario to grab hangable ceilings from any state
|
||||
#define HANGING_FIX
|
||||
// 46 degree walkicks
|
||||
//#define WALLKICKS_46_DEGREES
|
||||
// Disable BLJs and crush SimpleFlips's dreams
|
||||
//#define DISABLE_BLJ
|
||||
// Disables fall damage
|
||||
#define NO_FALL_DAMAGE
|
||||
// Disables the scream that mario makes when falling off a great height (this is separate from actual fall damage)
|
||||
@@ -86,8 +65,51 @@
|
||||
#define X_COIN_STAR 100
|
||||
// Platform displacement 2 also known as momentum patch. Makes Mario keep the momemtum from moving platforms. Breaks treadmills.
|
||||
#define PLATFORM_DISPLACEMENT_2
|
||||
// Stars don't kick you out of the level
|
||||
// #define NON_STOP_STARS
|
||||
// Uncomment this if you want global star IDs (useful for creating an open world hack ala MVC)
|
||||
//#define GLOBAL_STAR_IDS
|
||||
// Uncomment this if you want to skip the title screen (Super Mario 64 logo)
|
||||
//#define SKIP_TITLE_SCREEN
|
||||
// Uncomment this if you want to keep the mario head and not skip it
|
||||
//#define KEEP_MARIO_HEAD
|
||||
// Makes the coins ia8 64x64 instead of ia16 32x32. Uses new i8 textures so that vanilla coins look better.
|
||||
#define IA8_COINS
|
||||
|
||||
|
||||
// HACKER QOL
|
||||
// Enable widescreen (16:9) support
|
||||
#define WIDE
|
||||
// When this option is enabled, LODs will ONLY work on console.
|
||||
// When this option is disabled, LODs will work regardless of whether console or emulator is used.
|
||||
// Regardless of whether this setting is enabled or not, you can use gIsConsole to wrap your own code in a console check.
|
||||
#define AUTO_LOD
|
||||
// Increase the maximum pole length (it will treat bparam1 and bparam2 as a single value)
|
||||
#define LONGER_POLES
|
||||
// Disable AA (Recommended: it changes nothing on emulator, and it makes console run better)
|
||||
#define DISABLE_AA
|
||||
// Allows Mario to ledgegrab sloped floors
|
||||
#define NO_FALSE_LEDGEGRABS
|
||||
// Number of possible unique model ID's (keep it higher than 256)
|
||||
#define MODEL_ID_COUNT 256
|
||||
|
||||
// BUG/GAME QOL FIXES
|
||||
// Fix instant warp offset not working when warping across different areas
|
||||
#define INSTANT_WARP_OFFSET_FIX
|
||||
// Whether a tree uses snow particles or not is decided via the model IDs instead of the course number
|
||||
#define TREE_PARTICLE_FIX
|
||||
// Allows Mario to jump kick on steep surfaces that are set to be non slippery, instead of being forced to dive
|
||||
#define JUMP_KICK_FIX
|
||||
// Allow Mario to grab hangable ceilings from any state
|
||||
#define HANGING_FIX
|
||||
// The last frame that will be considered a firsty when wallkicking
|
||||
#define FIRSTY_LAST_FRAME 1
|
||||
// 46 degree walkicks
|
||||
//#define WALLKICKS_46_DEGREES
|
||||
// Disable BLJs and crush SimpleFlips's dreams
|
||||
//#define DISABLE_BLJ
|
||||
|
||||
// RELATING TO EXIT COURSE
|
||||
// Disable exit course
|
||||
//#define DISABLE_EXIT_COURSE
|
||||
// Decides whether you can exit course while moving (has no effect if you disable exit course)
|
||||
@@ -98,16 +120,8 @@
|
||||
#define EXIT_COURSE_AREA 0x01
|
||||
// Decides the warp node "exit course" takes you to (has no effect if you disable exit course)
|
||||
#define EXIT_COURSE_NODE 0x1F
|
||||
// Stars don't kick you out of the level
|
||||
// #define NON_STOP_STARS
|
||||
// Uncomment this if you want global star IDs (useful for creating an open world hack ala MVC)
|
||||
//#define GLOBAL_STAR_IDS
|
||||
// Uncomment this if you want to skip the title screen (Super Mario 64 logo)
|
||||
//#define SKIP_TITLE_SCREEN
|
||||
// Uncomment this if you want to keep the mario head and not skip it
|
||||
//#define KEEP_MARIO_HEAD
|
||||
// Number of possible unique model ID's (keep it higher than 256)
|
||||
#define MODEL_ID_COUNT 256
|
||||
|
||||
// OTHER ENHANCEMENTS
|
||||
//Skybox size modifier, changing this will add support for larger skybox images. NOTE: Vanilla skyboxes may break if you change this option. Be sure to rescale them accordingly.
|
||||
//Whenever you change this, make sure to run "make -C tools clean" to rebuild the skybox tool (alternatively go into skyconv.c and change the file in any way (like adding/deleting a space) to specifically rebuild that tool).
|
||||
#define SKYBOX_SIZE 1
|
||||
|
||||
@@ -11,47 +11,49 @@
|
||||
// Argument 4: Shorthand name of the level which should be the name of the levels/ folder of the level.
|
||||
// Argument 5: The shared texture bin used.
|
||||
// Argument 6: Acoustic reaches for each levels.
|
||||
// Argument 7, 8, 9: Echo levels for individual areas.
|
||||
// Argument 7, 8, 9: Echo levels for individual areas. < Clueless hackers should change these for their levels btw
|
||||
// Argument 10: Specify dynamic music tables for levels, if specified. _ for none.
|
||||
// Argument 11: Specify level camera table, if specified. _ for none.
|
||||
|
||||
// NOTE: Be sure to edit sZoomOutAreaMasks in camera.c, as there isnt a good way to macro those right now.
|
||||
// TODO: Figure something out for sZoomOutAreaMasks?
|
||||
|
||||
// Reworked internal names, non-level name abbreviations used from quad64 bc that was prob the best idea. - send all complaints to pyro jay
|
||||
STUB_LEVEL( "", LEVEL_UNKNOWN_1, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _)
|
||||
STUB_LEVEL( "", LEVEL_UNKNOWN_2, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _)
|
||||
STUB_LEVEL( "", LEVEL_UNKNOWN_3, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _)
|
||||
DEFINE_LEVEL("TERESA OBAKE", LEVEL_BBH, COURSE_BBH, bbh, spooky, 28000, 0x28, 0x28, 0x28, sDynBbh, sCamBBH)
|
||||
DEFINE_LEVEL("YYAMA1 % YSLD1", LEVEL_CCM, COURSE_CCM, ccm, snow, 17000, 0x10, 0x38, 0x38, _, sCamCCM)
|
||||
DEFINE_LEVEL("SELECT ROOM", LEVEL_CASTLE, COURSE_NONE, castle_inside, inside, 20000, 0x20, 0x20, 0x30, _, sCamCastle)
|
||||
DEFINE_LEVEL("HORROR DUNGEON", LEVEL_HMC, COURSE_HMC, hmc, cave, 16000, 0x28, 0x28, 0x28, sDynHmc, sCamHMC)
|
||||
DEFINE_LEVEL("SABAKU % PYRMD", LEVEL_SSL, COURSE_SSL, ssl, generic, 15000, 0x08, 0x30, 0x30, _, sCamSSL)
|
||||
DEFINE_LEVEL("BATTLE FIELD", LEVEL_BOB, COURSE_BOB, bob, generic, 15000, 0x08, 0x08, 0x08, _, _)
|
||||
DEFINE_LEVEL("YUKIYAMA2", LEVEL_SL, COURSE_SL, sl, snow, 14000, 0x10, 0x28, 0x28, _, sCamSL)
|
||||
DEFINE_LEVEL("POOL KAI", LEVEL_WDW, COURSE_WDW, wdw, grass, 17000, 0x10, 0x18, 0x18, sDynWdw, _)
|
||||
DEFINE_LEVEL("WTDG % TINBOTU", LEVEL_JRB, COURSE_JRB, jrb, water, 20000, 0x10, 0x18, 0x18, sDynJrb, _)
|
||||
DEFINE_LEVEL("BIG WORLD", LEVEL_THI, COURSE_THI, thi, grass, 20000, 0x0c, 0x0c, 0x20, _, sCamTHI)
|
||||
DEFINE_LEVEL("CLOCK TOWER", LEVEL_TTC, COURSE_TTC, ttc, machine, 18000, 0x18, 0x18, 0x18, _, _)
|
||||
DEFINE_LEVEL("RAINBOW CRUISE", LEVEL_RR, COURSE_RR, rr, sky, 20000, 0x20, 0x20, 0x20, _, sCamRR)
|
||||
DEFINE_LEVEL("MAIN MAP", LEVEL_CASTLE_GROUNDS, COURSE_NONE, castle_grounds, outside, 25000, 0x08, 0x08, 0x08, _, _)
|
||||
DEFINE_LEVEL("EXT1 YOKO SCRL", LEVEL_BITDW, COURSE_BITDW, bitdw, sky, 16000, 0x28, 0x28, 0x28, _, _)
|
||||
DEFINE_LEVEL("EXT7 HORI MINI", LEVEL_VCUTM, COURSE_VCUTM, vcutm, outside, 30000, 0x28, 0x28, 0x28, _, _)
|
||||
DEFINE_LEVEL("EXT2 TIKA LAVA", LEVEL_BITFS, COURSE_BITFS, bitfs, sky, 16000, 0x28, 0x28, 0x28, _, _)
|
||||
DEFINE_LEVEL("EXT9 SUISOU", LEVEL_SA, COURSE_SA, sa, inside, 20000, 0x10, 0x10, 0x10, _, _)
|
||||
DEFINE_LEVEL("EXT3 HEAVEN", LEVEL_BITS, COURSE_BITS, bits, sky, 16000, 0x28, 0x28, 0x28, _, _)
|
||||
DEFINE_LEVEL("FIREB1 % INVLC", LEVEL_LLL, COURSE_LLL, lll, fire, 22000, 0x08, 0x30, 0x30, _, _)
|
||||
DEFINE_LEVEL("WATER LAND", LEVEL_DDD, COURSE_DDD, ddd, water, 17000, 0x10, 0x20, 0x20, sDynDdd, _)
|
||||
DEFINE_LEVEL("MOUNTAIN", LEVEL_WF, COURSE_WF, wf, grass, 13000, 0x08, 0x08, 0x08, _, _)
|
||||
DEFINE_LEVEL("ENDING", LEVEL_ENDING, COURSE_CAKE_END, ending, generic, 20000, 0x00, 0x00, 0x00, _, _)
|
||||
DEFINE_LEVEL("URANIWA", LEVEL_CASTLE_COURTYARD, COURSE_NONE, castle_courtyard, outside, 20000, 0x08, 0x08, 0x08, _, _)
|
||||
DEFINE_LEVEL("EXT4 MINI SLID", LEVEL_PSS, COURSE_PSS, pss, mountain, 20000, 0x28, 0x28, 0x28, _, _)
|
||||
DEFINE_LEVEL("IN THE FALL", LEVEL_COTMC, COURSE_COTMC, cotmc, cave, 18000, 0x28, 0x28, 0x28, _, sCamCotMC)
|
||||
DEFINE_LEVEL("EXT6 MARIO FLY", LEVEL_TOTWC, COURSE_TOTWC, totwc, sky, 20000, 0x20, 0x20, 0x20, _, _)
|
||||
DEFINE_LEVEL("KUPPA1", LEVEL_BOWSER_1, COURSE_BITDW, bowser_1, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _)
|
||||
DEFINE_LEVEL("EXT8 BLUE SKY", LEVEL_WMOTR, COURSE_WMOTR, wmotr, generic, 20000, 0x28, 0x28, 0x28, _, _)
|
||||
DEFINE_LEVEL("COURSE 5 BBH", LEVEL_BBH, COURSE_BBH, bbh, spooky, 28000, 0x28, 0x28, 0x28, sDynBbh, sCamBBH)
|
||||
DEFINE_LEVEL("COURSE 4 CCM", LEVEL_CCM, COURSE_CCM, ccm, snow, 17000, 0x10, 0x38, 0x38, _, sCamCCM)
|
||||
DEFINE_LEVEL("OW2 IN CASTLE", LEVEL_CASTLE, COURSE_NONE, castle_inside, inside, 20000, 0x20, 0x20, 0x30, _, sCamCastle)
|
||||
DEFINE_LEVEL("COURSE 6 HMC", LEVEL_HMC, COURSE_HMC, hmc, cave, 16000, 0x28, 0x28, 0x28, sDynHmc, sCamHMC)
|
||||
DEFINE_LEVEL("COURSE 8 SSL", LEVEL_SSL, COURSE_SSL, ssl, generic, 15000, 0x08, 0x30, 0x30, _, sCamSSL)
|
||||
DEFINE_LEVEL("COURSE 1 BOB", LEVEL_BOB, COURSE_BOB, bob, generic, 15000, 0x08, 0x08, 0x08, _, _)
|
||||
DEFINE_LEVEL("COURSE 10 SL", LEVEL_SL, COURSE_SL, sl, snow, 14000, 0x10, 0x28, 0x28, _, sCamSL)
|
||||
DEFINE_LEVEL("COURSE 11 WDW", LEVEL_WDW, COURSE_WDW, wdw, grass, 17000, 0x10, 0x18, 0x18, sDynWdw, _)
|
||||
DEFINE_LEVEL("COURSE 3 JRB", LEVEL_JRB, COURSE_JRB, jrb, water, 20000, 0x10, 0x18, 0x18, sDynJrb, _)
|
||||
DEFINE_LEVEL("COURSE 13 THI", LEVEL_THI, COURSE_THI, thi, grass, 20000, 0x0c, 0x0c, 0x20, _, sCamTHI)
|
||||
DEFINE_LEVEL("COURSE 14 TTC", LEVEL_TTC, COURSE_TTC, ttc, machine, 18000, 0x18, 0x18, 0x18, _, _)
|
||||
DEFINE_LEVEL("COURSE 15 RR", LEVEL_RR, COURSE_RR, rr, sky, 20000, 0x20, 0x20, 0x20, _, sCamRR)
|
||||
DEFINE_LEVEL("OW1 C GROUNDS", LEVEL_CASTLE_GROUNDS, COURSE_NONE, castle_grounds, outside, 25000, 0x08, 0x08, 0x08, _, _)
|
||||
DEFINE_LEVEL("BC1 BITDW", LEVEL_BITDW, COURSE_BITDW, bitdw, sky, 16000, 0x28, 0x28, 0x28, _, _)
|
||||
DEFINE_LEVEL("VCL VCUTM", LEVEL_VCUTM, COURSE_VCUTM, vcutm, outside, 30000, 0x28, 0x28, 0x28, _, _)
|
||||
DEFINE_LEVEL("BC2 BITFS", LEVEL_BITFS, COURSE_BITFS, bitfs, sky, 16000, 0x28, 0x28, 0x28, _, _)
|
||||
DEFINE_LEVEL("SC1 SEC AQUA", LEVEL_SA, COURSE_SA, sa, inside, 20000, 0x10, 0x10, 0x10, _, _)
|
||||
DEFINE_LEVEL("BC3 BITS", LEVEL_BITS, COURSE_BITS, bits, sky, 16000, 0x28, 0x28, 0x28, _, _)
|
||||
DEFINE_LEVEL("COURSE 7 LLL", LEVEL_LLL, COURSE_LLL, lll, fire, 22000, 0x08, 0x30, 0x30, _, _)
|
||||
DEFINE_LEVEL("COURSE 9 DDD", LEVEL_DDD, COURSE_DDD, ddd, water, 17000, 0x10, 0x20, 0x20, sDynDdd, _)
|
||||
DEFINE_LEVEL("COURSE 2 WF", LEVEL_WF, COURSE_WF, wf, grass, 13000, 0x08, 0x08, 0x08, _, _)
|
||||
DEFINE_LEVEL("END CAKE", LEVEL_ENDING, COURSE_CAKE_END, ending, generic, 20000, 0x00, 0x00, 0x00, _, _)
|
||||
DEFINE_LEVEL("OW3 C COURTYD", LEVEL_CASTLE_COURTYARD, COURSE_NONE, castle_courtyard, outside, 20000, 0x08, 0x08, 0x08, _, _)
|
||||
DEFINE_LEVEL("SIC P SEC SLID", LEVEL_PSS, COURSE_PSS, pss, mountain, 20000, 0x28, 0x28, 0x28, _, _)
|
||||
DEFINE_LEVEL("MCL COTMC", LEVEL_COTMC, COURSE_COTMC, cotmc, cave, 18000, 0x28, 0x28, 0x28, _, sCamCotMC)
|
||||
DEFINE_LEVEL("WCL TOTWC", LEVEL_TOTWC, COURSE_TOTWC, totwc, sky, 20000, 0x20, 0x20, 0x20, _, _)
|
||||
DEFINE_LEVEL("B BATTLE1", LEVEL_BOWSER_1, COURSE_BITDW, bowser_1, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _)
|
||||
DEFINE_LEVEL("SC2 WMOTR", LEVEL_WMOTR, COURSE_WMOTR, wmotr, generic, 20000, 0x28, 0x28, 0x28, _, _)
|
||||
STUB_LEVEL( "", LEVEL_UNKNOWN_32, COURSE_NONE, 20000, 0x70, 0x00, 0x00, _, _)
|
||||
DEFINE_LEVEL("KUPPA2", LEVEL_BOWSER_2, COURSE_BITFS, bowser_2, fire, VAL_DIFF, 0x40, 0x40, 0x40, _, _)
|
||||
DEFINE_LEVEL("KUPPA3", LEVEL_BOWSER_3, COURSE_BITS, bowser_3, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _)
|
||||
DEFINE_LEVEL("B BATTLE2", LEVEL_BOWSER_2, COURSE_BITFS, bowser_2, fire, VAL_DIFF, 0x40, 0x40, 0x40, _, _)
|
||||
DEFINE_LEVEL("B BATTLE3", LEVEL_BOWSER_3, COURSE_BITS, bowser_3, generic, VAL_DIFF, 0x40, 0x40, 0x40, _, _)
|
||||
STUB_LEVEL( "", LEVEL_UNKNOWN_35, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _)
|
||||
DEFINE_LEVEL("DONKEY % SLID2", LEVEL_TTM, COURSE_TTM, ttm, mountain, 15000, 0x08, 0x08, 0x08, _, _)
|
||||
DEFINE_LEVEL("COURSE 12 TTM", LEVEL_TTM, COURSE_TTM, ttm, mountain, 15000, 0x08, 0x08, 0x08, _, _)
|
||||
STUB_LEVEL( "", LEVEL_UNKNOWN_37, COURSE_NONE, 20000, 0x00, 0x00, 0x00, _, _)
|
||||
STUB_LEVEL( "", LEVEL_UNKNOWN_38, COURSE_NONE, 20000, 0x00, 0x00, 0x00, sDynUnk38, _)
|
||||
|
||||
@@ -101,7 +101,7 @@ const LevelScript level_main_scripts_entry[] = {
|
||||
LOAD_MODEL_FROM_GEO(MODEL_MARIOS_METAL_CAP, marios_metal_cap_geo),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_MARIOS_WING_CAP, marios_wing_cap_geo),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_MARIOS_CAP, marios_cap_geo),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_MARIOS_CAP, marios_cap_geo), // repeated
|
||||
//LOAD_MODEL_FROM_GEO(MODEL_MARIOS_CAP, marios_cap_geo), // repeated
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BOWSER_KEY_CUTSCENE, bowser_key_cutscene_geo),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BOWSER_KEY, bowser_key_geo),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_RED_FLAME_SHADOW, red_flame_shadow_geo),
|
||||
|
||||
BIN
lib/gcclib/divbreak/libgcc.a
Normal file
BIN
lib/gcclib/divbreak/libgcc.a
Normal file
Binary file not shown.
BIN
lib/gcclib/nocheck/libgcc.a
Normal file
BIN
lib/gcclib/nocheck/libgcc.a
Normal file
Binary file not shown.
BIN
lib/gcclib/trap/libgcc.a
Normal file
BIN
lib/gcclib/trap/libgcc.a
Normal file
Binary file not shown.
BIN
lib/libgcc.a
BIN
lib/libgcc.a
Binary file not shown.
@@ -14,6 +14,8 @@
|
||||
#include "save_file.h"
|
||||
#include "rumble_init.h"
|
||||
|
||||
#include "config.h"
|
||||
|
||||
void play_flip_sounds(struct MarioState *m, s16 frame1, s16 frame2, s16 frame3) {
|
||||
s32 animFrame = m->marioObj->header.gfx.animInfo.animFrame;
|
||||
if (animFrame == frame1 || animFrame == frame2 || animFrame == frame3) {
|
||||
@@ -1308,7 +1310,7 @@ s32 act_air_hit_wall(struct MarioState *m) {
|
||||
mario_drop_held_object(m);
|
||||
}
|
||||
|
||||
if (++(m->actionTimer) <= 2) {
|
||||
if (++(m->actionTimer) <= FIRSTY_LAST_FRAME) {
|
||||
if (m->input & INPUT_A_PRESSED) {
|
||||
m->vel[1] = 52.0f;
|
||||
m->faceAngle[1] += 0x8000;
|
||||
@@ -1334,10 +1336,15 @@ s32 act_air_hit_wall(struct MarioState *m) {
|
||||
return set_mario_action(m, ACT_SOFT_BONK, 0);
|
||||
}
|
||||
|
||||
#ifdef AVOID_UB
|
||||
/*#ifdef AVOID_UB
|
||||
return
|
||||
#endif
|
||||
#endif*/
|
||||
#if FIRSTY_LAST_FRAME > 1
|
||||
set_mario_animation(m, MARIO_ANIM_START_WALLKICK);
|
||||
m->marioObj->header.gfx.angle[1] = atan2s(m->wall->normal.z, m->wall->normal.x);
|
||||
#endif
|
||||
|
||||
return FALSE;
|
||||
|
||||
//! Missing return statement. The returned value is the result of the call
|
||||
// to set_mario_animation. In practice, this value is nonzero.
|
||||
|
||||
Reference in New Issue
Block a user