mirror of
https://github.com/BanjoRecomp/BanjoRecomp
synced 2026-06-11 12:39:51 -04:00
Compare commits
32 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6b9d0e762c | |||
| db9f936720 | |||
| f82b014a2b | |||
| 80963dd419 | |||
| 1a0d1053e9 | |||
| 4982590054 | |||
| 8475fda0f1 | |||
| 91d1e2d272 | |||
| d124299373 | |||
| 6b387ed9d2 | |||
| 0159329eb1 | |||
| 661f848a8e | |||
| e143c61609 | |||
| 2cc5391511 | |||
| c82a7b78d0 | |||
| 066e40d158 | |||
| a218f16f25 | |||
| 5ef2c7e338 | |||
| f8ac690670 | |||
| 2fc6e70cb5 | |||
| 9a0b944f35 | |||
| 025215049a | |||
| 045b738297 | |||
| 269d9bec93 | |||
| 7cff85fa22 | |||
| 7242b70ba5 | |||
| c17aa22028 | |||
| e659ecb7ea | |||
| 5702422244 | |||
| d67eb10cff | |||
| 9d2d5b1473 | |||
| af730a3d4f |
Regular → Executable
@@ -96,7 +96,6 @@ jobs:
|
|||||||
- name: Prepare Archive
|
- name: Prepare Archive
|
||||||
run: |
|
run: |
|
||||||
mv cmake-build/BanjoRecompiled BanjoRecompiled
|
mv cmake-build/BanjoRecompiled BanjoRecompiled
|
||||||
rm -rf assets/scss
|
|
||||||
tar -czf BanjoRecompiled.tar.gz BanjoRecompiled assets/ recompcontrollerdb.txt
|
tar -czf BanjoRecompiled.tar.gz BanjoRecompiled assets/ recompcontrollerdb.txt
|
||||||
- name: Archive BanjoRecomp
|
- name: Archive BanjoRecomp
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
@@ -180,7 +179,6 @@ jobs:
|
|||||||
- name: Prepare Archive
|
- name: Prepare Archive
|
||||||
run: |
|
run: |
|
||||||
mv cmake-build/BanjoRecompiled BanjoRecompiled
|
mv cmake-build/BanjoRecompiled BanjoRecompiled
|
||||||
rm -rf assets/scss
|
|
||||||
tar -czf BanjoRecompiled.tar.gz BanjoRecompiled assets/ recompcontrollerdb.txt
|
tar -czf BanjoRecompiled.tar.gz BanjoRecompiled assets/ recompcontrollerdb.txt
|
||||||
- name: Archive BanjoRecomp
|
- name: Archive BanjoRecomp
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
@@ -320,7 +318,6 @@ jobs:
|
|||||||
Move-Item -Path "cmake-build/dxil.dll" -Destination "dxil.dll"
|
Move-Item -Path "cmake-build/dxil.dll" -Destination "dxil.dll"
|
||||||
Move-Item -Path "cmake-build/SDL2.dll" -Destination "SDL2.dll"
|
Move-Item -Path "cmake-build/SDL2.dll" -Destination "SDL2.dll"
|
||||||
Move-Item -Path "cmake-build/BanjoRecompiled.pdb" -Destination "BanjoRecompiled.pdb"
|
Move-Item -Path "cmake-build/BanjoRecompiled.pdb" -Destination "BanjoRecompiled.pdb"
|
||||||
Remove-Item -Path "assets/scss" -Recurse -Force
|
|
||||||
- name: Archive BanjoRecomp
|
- name: Archive BanjoRecomp
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -159,6 +159,7 @@ set (SOURCES
|
|||||||
target_include_directories(BanjoRecompiled PRIVATE
|
target_include_directories(BanjoRecompiled PRIVATE
|
||||||
${CMAKE_SOURCE_DIR}/include
|
${CMAKE_SOURCE_DIR}/include
|
||||||
${CMAKE_SOURCE_DIR}/lib/N64ModernRuntime/N64Recomp/include
|
${CMAKE_SOURCE_DIR}/lib/N64ModernRuntime/N64Recomp/include
|
||||||
|
${CMAKE_SOURCE_DIR}/lib/N64ModernRuntime/thirdparty/sse2neon
|
||||||
${CMAKE_SOURCE_DIR}/lib/rt64/src/contrib
|
${CMAKE_SOURCE_DIR}/lib/rt64/src/contrib
|
||||||
${CMAKE_SOURCE_DIR}/lib/rt64/src/contrib/hlslpp/include
|
${CMAKE_SOURCE_DIR}/lib/rt64/src/contrib/hlslpp/include
|
||||||
${CMAKE_SOURCE_DIR}/lib/rt64/src/contrib/dxc/inc
|
${CMAKE_SOURCE_DIR}/lib/rt64/src/contrib/dxc/inc
|
||||||
|
|||||||
@@ -66,11 +66,7 @@ Any aspect ratio is supported, with all effects modded to work correctly in wide
|
|||||||
#### Mod Support
|
#### Mod Support
|
||||||
Install community made mods and texture packs! Mods can change any part of the game, including adding completely new features and content. You can install mods by simply dragging the mod files onto the game window before starting the game or by clicking the **Install Mods** button in the mod menu. Mods can be toggled in the mod menu, and some mods can be configured there as well.
|
Install community made mods and texture packs! Mods can change any part of the game, including adding completely new features and content. You can install mods by simply dragging the mod files onto the game window before starting the game or by clicking the **Install Mods** button in the mod menu. Mods can be toggled in the mod menu, and some mods can be configured there as well.
|
||||||
|
|
||||||
A Thunderstore mod hosting page is currently being set up for this project. In the meantime, you can find the mods showcased in the release trailer here:
|
Many mods are available on the project's Thunderstore page: https://thunderstore.io/c/banjo-recompiled/. The Thunderstore mod manager/r2modman is not required or supported, so simply download the mods directly from the website.
|
||||||
|
|
||||||
* [BK Jiggies of Time](https://github.com/Mr-Wiseguy/JiggiesOfTimeRecomp/releases/latest)
|
|
||||||
* [BK Nostalgia 64](https://github.com/Mr-Wiseguy/Nostalgia64Recomp/releases/latest)
|
|
||||||
* [BK Reloaded Texture Pack](https://evilgames.eu/texture-packs/bk-reloaded.htm)
|
|
||||||
|
|
||||||
If you're interested in making mods for this project, check out [the mod template](https://github.com/BanjoRecomp/BKRecompModTemplate) and [the modding documentation](https://hackmd.io/fMDiGEJ9TBSjomuZZOgzNg). If you're interested in making texture packs, check out [the RT64 documentation](https://github.com/rt64/rt64/blob/main/TEXTURE-PACKS.md). You can also join the [N64: Recompiled Modding Discord server](https://discord.gg/Z8Nbm455D4).
|
If you're interested in making mods for this project, check out [the mod template](https://github.com/BanjoRecomp/BKRecompModTemplate) and [the modding documentation](https://hackmd.io/fMDiGEJ9TBSjomuZZOgzNg). If you're interested in making texture packs, check out [the RT64 documentation](https://github.com/rt64/rt64/blob/main/TEXTURE-PACKS.md). You can also join the [N64: Recompiled Modding Discord server](https://discord.gg/Z8Nbm455D4).
|
||||||
|
|
||||||
@@ -117,6 +113,12 @@ Instead, you can change the game by installing mods. See the [mod support](#mod-
|
|||||||
#### Can you run this project as a portable application?
|
#### Can you run this project as a portable application?
|
||||||
Yes, if you place a file named `portable.txt` in the same folder as the executable then this project will run in portable mode. In portable mode, the save files, config files, and mods are placed in the same folder as the executable.
|
Yes, if you place a file named `portable.txt` in the same folder as the executable then this project will run in portable mode. In portable mode, the save files, config files, and mods are placed in the same folder as the executable.
|
||||||
|
|
||||||
|
#### Were the duplicate Mumbo token IDs in the original game fixed?
|
||||||
|
Yes. The incorrect Mumbo tokens now use previously unused token IDs. This won't affect mods that replace levels.
|
||||||
|
|
||||||
|
#### Does note saving have the same issue as the XBLA version where it collects notes during Bottles' puzzles and prevents you from getting 100% completion?
|
||||||
|
No. Care has been taken to ensure that notes are not saved during demos.
|
||||||
|
|
||||||
## Known Issues
|
## Known Issues
|
||||||
* Overlays such as MSI Afterburner and other software such as Wallpaper Engine can cause performance issues with this project that prevent the game from rendering correctly. Disabling such software is recommended.
|
* Overlays such as MSI Afterburner and other software such as Wallpaper Engine can cause performance issues with this project that prevent the game from rendering correctly. Disabling such software is recommended.
|
||||||
|
|
||||||
|
|||||||
+1
-1
Submodule lib/N64ModernRuntime updated: 494217848a...ca568b6ad7
+1
-1
Submodule lib/RecompFrontend updated: ebaa162cba...b3b7ebb4ec
+1
-1
Submodule lib/rt64 updated: b66eca4d45...f0d8c9f29b
@@ -1,5 +1,6 @@
|
|||||||
#include "patches.h"
|
#include "patches.h"
|
||||||
#include "core1/mlmtx.h"
|
#include "core1/mlmtx.h"
|
||||||
|
#include "functions.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
s32 cmd_0;
|
s32 cmd_0;
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#include "functions.h"
|
||||||
|
#include "patches.h"
|
||||||
|
#include "ui_funcs.h"
|
||||||
|
|
||||||
|
extern s32 D_802823AC;
|
||||||
|
extern f32 D_80282420;
|
||||||
|
extern f32 D_80282424;
|
||||||
|
|
||||||
|
// @recomp Patched to run a callback per frame in a function that always gets called by mainLoop().
|
||||||
|
RECOMP_PATCH void baMotor_80250C08(void) {
|
||||||
|
// @recomp Patched to run UI callbacks.
|
||||||
|
recomp_run_ui_callbacks();
|
||||||
|
|
||||||
|
if (D_802823AC != 0) {
|
||||||
|
D_80282424 = MIN(D_80282420, D_80282424 + time_getDelta());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -51,3 +51,4 @@ recomp_get_cutscene_aspect_ratio = 0x8F0000B8;
|
|||||||
recomp_get_flying_and_swimming_inverted_axes = 0x8F0000BC;
|
recomp_get_flying_and_swimming_inverted_axes = 0x8F0000BC;
|
||||||
recomp_get_first_person_inverted_axes = 0x8F0000C0;
|
recomp_get_first_person_inverted_axes = 0x8F0000C0;
|
||||||
recomp_get_analog_cam_sensitivity = 0x8F0000C4;
|
recomp_get_analog_cam_sensitivity = 0x8F0000C4;
|
||||||
|
recomp_run_ui_callbacks = 0x8F0000C8;
|
||||||
|
|||||||
@@ -249,7 +249,9 @@ void banjo::launcher_animation_setup(recompui::LauncherMenu *menu) {
|
|||||||
launcher_context.jiggy_shine_svg.scale_keyframes = {
|
launcher_context.jiggy_shine_svg.scale_keyframes = {
|
||||||
{ 0.0f, 0.0f, 0.0f },
|
{ 0.0f, 0.0f, 0.0f },
|
||||||
{ jiggy_shine_start, 0.0f, 0.0f },
|
{ jiggy_shine_start, 0.0f, 0.0f },
|
||||||
{ jiggy_shine_start + 0.01f, 1.0f, 1.0f },
|
{ jiggy_shine_start, 1.0f, 1.0f },
|
||||||
|
{ jiggy_shine_start + jiggy_shine_length, 1.0f, 1.0f },
|
||||||
|
{ jiggy_shine_start + jiggy_shine_length, 0.0f, 0.0f },
|
||||||
};
|
};
|
||||||
|
|
||||||
launcher_context.jiggy_shine_svg.position_animation.interpolation_method = InterpolationMethod::Smootherstep;
|
launcher_context.jiggy_shine_svg.position_animation.interpolation_method = InterpolationMethod::Smootherstep;
|
||||||
|
|||||||
+21
-7
@@ -64,7 +64,7 @@
|
|||||||
|
|
||||||
#include "../../lib/rt64/src/contrib/stb/stb_image.h"
|
#include "../../lib/rt64/src/contrib/stb/stb_image.h"
|
||||||
|
|
||||||
const std::string version_string = "1.0.0";
|
const std::string version_string = "1.0.1";
|
||||||
|
|
||||||
template<typename... Ts>
|
template<typename... Ts>
|
||||||
void exit_error(const char* str, Ts ...args) {
|
void exit_error(const char* str, Ts ...args) {
|
||||||
@@ -326,7 +326,7 @@ void set_frequency(uint32_t freq) {
|
|||||||
update_audio_converter();
|
update_audio_converter();
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_audio(uint32_t output_freq) {
|
bool reset_audio(uint32_t output_freq) {
|
||||||
SDL_AudioSpec spec_desired{
|
SDL_AudioSpec spec_desired{
|
||||||
.freq = (int)output_freq,
|
.freq = (int)output_freq,
|
||||||
.format = AUDIO_F32,
|
.format = AUDIO_F32,
|
||||||
@@ -339,15 +339,19 @@ void reset_audio(uint32_t output_freq) {
|
|||||||
.userdata = nullptr
|
.userdata = nullptr
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
audio_device = SDL_OpenAudioDevice(nullptr, false, &spec_desired, nullptr, 0);
|
audio_device = SDL_OpenAudioDevice(nullptr, false, &spec_desired, nullptr, 0);
|
||||||
if (audio_device == 0) {
|
if (audio_device == 0) {
|
||||||
exit_error("SDL error opening audio device: %s\n", SDL_GetError());
|
std::string audio_error = std::string("No audio device could be found. Please make sure an audio device is available.\nError opening audio device: ") + std::string(SDL_GetError());
|
||||||
|
recompui::message_box(audio_error.c_str());
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_PauseAudioDevice(audio_device, 0);
|
SDL_PauseAudioDevice(audio_device, 0);
|
||||||
|
|
||||||
output_sample_rate = output_freq;
|
output_sample_rate = output_freq;
|
||||||
update_audio_converter();
|
update_audio_converter();
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern RspUcodeFunc n_aspMain;
|
extern RspUcodeFunc n_aspMain;
|
||||||
@@ -684,9 +688,16 @@ int main(int argc, char** argv) {
|
|||||||
// Initialize native file dialogs.
|
// Initialize native file dialogs.
|
||||||
NFD_Init();
|
NFD_Init();
|
||||||
|
|
||||||
|
// Initialize program settings.
|
||||||
|
recompui::programconfig::set_program_name(banjo::program_name);
|
||||||
|
recompui::programconfig::set_program_id(banjo::program_id);
|
||||||
|
|
||||||
// Initialize SDL audio and set the output frequency.
|
// Initialize SDL audio and set the output frequency.
|
||||||
SDL_InitSubSystem(SDL_INIT_AUDIO);
|
SDL_InitSubSystem(SDL_INIT_AUDIO);
|
||||||
reset_audio(48000);
|
if (!reset_audio(48000)) {
|
||||||
|
// It is not possible to initialize without an audio device.
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
// Source controller mappings file
|
// Source controller mappings file
|
||||||
std::u8string controller_db_path = (recompui::file::get_program_path() / "recompcontrollerdb.txt").u8string();
|
std::u8string controller_db_path = (recompui::file::get_program_path() / "recompcontrollerdb.txt").u8string();
|
||||||
@@ -694,10 +705,11 @@ int main(int argc, char** argv) {
|
|||||||
fprintf(stderr, "Failed to load controller mappings: %s\n", SDL_GetError());
|
fprintf(stderr, "Failed to load controller mappings: %s\n", SDL_GetError());
|
||||||
}
|
}
|
||||||
|
|
||||||
recompui::programconfig::set_program_name(banjo::program_name);
|
// Register fonts.
|
||||||
recompui::programconfig::set_program_id(banjo::program_id);
|
|
||||||
recompui::register_primary_font("InterVariable.ttf", "Inter Variable");
|
recompui::register_primary_font("InterVariable.ttf", "Inter Variable");
|
||||||
recompui::register_extra_font("Suplexmentary Comic NC.ttf");
|
recompui::register_extra_font("Suplexmentary Comic NC.ttf");
|
||||||
|
|
||||||
|
// Register configuration path.
|
||||||
recomp::register_config_path(recompui::file::get_app_folder_path());
|
recomp::register_config_path(recompui::file::get_app_folder_path());
|
||||||
|
|
||||||
// Register supported games and patches
|
// Register supported games and patches
|
||||||
@@ -705,6 +717,8 @@ int main(int argc, char** argv) {
|
|||||||
recomp::register_game(game);
|
recomp::register_game(game);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
recomp::mods::register_deprecated_mod("bk_recomp_mod_fov_slider", recomp::mods::DeprecationStatus::BrokenVersion, recomp::Version(1, 1, 0));
|
||||||
|
|
||||||
REGISTER_FUNC(recomp_get_window_resolution);
|
REGISTER_FUNC(recomp_get_window_resolution);
|
||||||
REGISTER_FUNC(recomp_get_target_aspect_ratio);
|
REGISTER_FUNC(recomp_get_target_aspect_ratio);
|
||||||
REGISTER_FUNC(recomp_get_target_framerate);
|
REGISTER_FUNC(recomp_get_target_framerate);
|
||||||
|
|||||||
Reference in New Issue
Block a user