Compare commits

...

1411 Commits

Author SHA1 Message Date
Gregory Heskett
8676898ae9 Implement sdata 2024-11-02 22:59:04 -04:00
Lila
c4c18b3d0e Check for opensuse's cross mips gcc package (#842)
Makes it possible to rely on the official repo.
Ideally the following instructions would also be added to the wiki for opensuse:
```
sudo zypper install cross-mips-binutils git capstone pkgconf python311 cross-mips-gcc14
# install packages under devel_basis, equivalent to build-essential in deb
sudo zypper install --type pattern devel_basis
```
2024-10-31 14:08:08 -04:00
thecozies
7298e94a1f reset adjacent rooms when loading a new area (#704) 2024-09-05 01:48:26 -04:00
Gregory Heskett
27d328f86a Dialogs in dialogs.h no longer have to be in order (#832) 2024-09-05 01:13:05 -04:00
Gregory Heskett
27372fe74a Merge pull request #795 from gheskett/develop/2.3.0_update-unf
Update to newest UNF (d5f2ad100b76e372036453f8d25f9b6fbbbd2d1a) (November 22, 2023)
2024-09-05 01:07:23 -04:00
Reonu
3f1f7f41be Add Arthurtilly to the CODEOWNERS file (#821)
* Add Arthurtilly to the CODEOWNERS file

* Update CODEOWNERS file to list each global owner on the same line

This should (allegedly) fix the issues of only the last entry being treated as an owner for reviews.

* Remove thecozies from CODEOWNERS file :(

---------

Co-authored-by: Gregory Heskett <gheskett@gmail.com>
2024-09-04 23:24:02 -04:00
Denis Kopyrin
bf70500b4d Merge pull request #825 from Lilaa3/fast64-repo-settings
Add Fast64 repo settings file (fast64.json)
2024-09-05 07:51:25 +08:00
Lila
27fedee76f Update fast64.json 2024-09-04 10:38:21 +01:00
Lila
a918785a92 Aglab requested change 2024-08-25 19:26:57 +01:00
Lila
10720ea056 Fall back on fast64 default draw layers 2024-08-24 13:05:36 +01:00
Lila
8dc47095e2 Add repo settings file
Allows fast64 to know a repo's ideal settings as soon as decomp path is picked.
Settings are the default except for:
Matstack is on
Microcode is set to EX2
Force Extended RAM is off because hackersm64 already has it enabled by default
Refresh is set to Refresh 13
2024-08-19 15:44:53 +01:00
Gregory Heskett
e3472e05cf Add option for .local/share/HackerSM64/UNFLoader-dir.txt
This allows referencing a custom UNFLoader path to be used, ideally for placing on the C drive for WSL instances. UNFLoader tends to hang for an unbearably long time when saved somewhere within the WSL directory structure, and simply using the Linux build isn't an option because it can't access Windows USB devices trivially.
2024-08-03 19:57:50 -04:00
Gregory Heskett
74cb8ce062 Update to newest UNF (d5f2ad100b76e372036453f8d25f9b6fbbbd2d1a) (November 22 2023) 2024-08-03 19:33:09 -04:00
Gregory Heskett
9ef945296b HackerSM64 Release: v2.3.0
Merge pull request #815 from HackerN64/develop/2.3.0
2024-07-03 23:05:21 -04:00
Gregory Heskett
e1c00d4bef HackerSM64 v2.3.0 2024-07-03 22:50:27 -04:00
Reonu
aacf2c5e6d Add more audio banks and add some occasional mappings for audio macros (#777)
* Add more audio banks and add some occasional mappings for audio macros

* Remove config define for extra sound banks

---------

Co-authored-by: gheskett <gheskett@gmail.com>
2024-07-03 22:50:27 -04:00
Gregory Heskett
4500ffb579 Bugfix: assemble_sound.py build corruption issues (#813) 2024-07-03 22:50:27 -04:00
Gregory Heskett
a6782e6912 Fix seg faulting issue with MinGW build system, most likely caused by use of execl (#812) 2024-07-03 22:50:27 -04:00
Denis Kopyrin
750ba10cb1 Fixed audiofile warnings properly (#814)
* Revert "Fixed audiofile warnings (#811)"

This reverts commit 500507509b.

* Fixed audiofile warnings properly
2024-07-03 22:50:01 -04:00
Denis Kopyrin
500507509b Fixed audiofile warnings (#811) 2024-07-01 21:53:54 -04:00
Gregory Heskett
7381e35db4 Bugfix: Surfaces not able to be placed at the beginning of a partition (#805)
* Bugfix: Surfaces not able to be placed at the beginning of a partition

* Replace clear_spacial_partition calls with a bzero
2024-07-01 21:48:26 -04:00
Gregory Heskett
6a3e7e7a87 Bugfix: Missed purging of debug box flags that no longer exist in Puppycam (#804) 2024-07-01 21:47:38 -04:00
Gregory Heskett
9adb8c6de8 EASIER_LONG_JUMPS: only long jump with A+Z while running (#801)
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2024-07-01 21:47:15 -04:00
Gregory Heskett
03ba81b5e3 Improve DEATH_ON_EXIT_COURSE define (#808) 2024-07-01 21:46:46 -04:00
Gregory Heskett
98b6231216 Pressing L in debug fly mode heals Mario (#809) 2024-07-01 21:46:12 -04:00
Denis Kopyrin
252a900b91 Added support for windows MinGW build (#800) 2024-07-01 21:45:36 -04:00
Denis Kopyrin
92822c6412 fixlights: added support for ripgrep (#802) 2024-07-01 21:44:54 -04:00
1ted59
0221d4ddf0 Fix spawned coins not being collectible until after the peak of their arc (#806)
If a spawned coin lands on the same frame it hits the peak of its arc, it will never have vertical speed < 0, so it will never be collectible.

Making this also set the coin to tangible if it has 0 speed fixes this issue.
2024-06-14 16:16:10 -04:00
Gregory Heskett
dcd58b2aad Restart music upon set_background_music() call if BETTER_REVERB preset changes (#797) 2024-06-01 10:55:58 -04:00
Denis Kopyrin
7ffa9a3bd7 Fixed fixlights.py compile error on python 3.12 (#798)
* Fixed fixlights.py compile error on python 3.12

* Fixed assemble_sound.py compile error on python 3.12
2024-05-22 13:48:24 -04:00
lolbinarycat
dbba4871e1 Add mips64-none-elf- to automatically detected prefixes (#799)
Co-authored-by: binarycat <binarycat@envs.net>
2024-05-18 02:11:10 -04:00
Gregory Heskett
520a6f3aed Bugfix: Blue coin duplication (#787)
Blue coins can be collected more than once if collected on the final frame of the switch timer when BLUE_COIN_SWITCH_RETRY is enabled. Fixing this on its own isn't enough though, as the blue coin switch also doesn't check for whether that coin was collected when it resets.
2024-05-03 01:54:43 -04:00
bicyclesoda
4d260f6885 Use G_TF_POINT on 3D billboard numbers (#791)
This matches the HUD filtering and just looks better IMO.
2024-04-30 23:19:20 -04:00
Gregory Heskett
aedae64e8b Remove destination warp node requirement (#788)
Also add assertions for common warp crashes and remove the hardcoded get_mario_spawn_type table size
2024-04-30 23:10:58 -04:00
bicyclesoda
f3e1496d29 Change test emulator from mupen64plus to parallel-launcher (#790)
* mupen64plus -> parallel-launcher

* Add WSL support

* Update Makefile

make it work
2024-04-29 16:42:13 -07:00
arthurtilly
0005bbbd6a Save up to 130KB of RAM at literally zero cost (#786) 2024-04-21 20:40:47 -04:00
Gregory Heskett
e494069b0a Add support for a user-defined config_local.h file (#785)
This allows hack collaborators to toggle debug features such as TEST_LEVEL without the need of pushing it up and negatively impacting other hack contributors. This is also useful for general HackerSM54 development, since it may be desirable to have PUPPYPRINT_DEBUG enabled by default or to not have to worry about pushing config defines up to a development branch that risk getting merged later on.

To use, simply create a new config_local.h file and place it in the config folder. Add #pragma once to the top of the file and add all the defines you wish! If you wish for something to be undefined when it's enabled by default, simply use #undef as opposed to a commented out #define. Use a combination of #undef and #define if you wish to change an existing value of a define. This local configuration will be completely ignored if DISABLE_ALL is being used in config_debug.h.

Regarding HackerSM64 Development: All feature developers are still responsible for making sure their features work in all scenarios regardless of whatever they have toggled in this file by default. This config file may be convenient but it is not an excuse to not properly test your changes!
2024-04-21 20:38:07 -04:00
arthurtilly
f852ff4359 Platform Displacement 2.1 (#776) 2024-04-22 09:14:12 +12:00
Gregory Heskett
2ae3426957 Change compression type to yay0 and ignore .inc.c files in most directories (#784)
rnc1 has noticeably slower load times in vanilla than yay0 does. gzip and mio0 are pretty useless and can be yeeted from the repo, but that's not part of this PR's scope.
2024-04-21 17:13:47 -04:00
Reonu
ca937d23ee Label unlabelled audio func (func_80321080 to stop_secondary_music) (#782) 2024-04-15 01:59:54 +01:00
Matt Pharoah
7353db562c Merge pull request #774 from mpharoah/mpharoah/update-libpl
Update libpl
2024-03-06 17:28:42 -05:00
Matt Pharoah
82e0fdf391 Update libpl 2024-03-06 09:10:09 -05:00
Gregory Heskett
3e5d14e650 Merge pull request #772 from HackerN64/develop/2.2.0
Release: HackerSM64 2.2.0
2024-03-02 08:16:09 -05:00
Gregory Heskett
197d8074e3 Vanilla bugfix: obj_init_animation referencing o instead of obj 2024-03-01 17:47:05 -05:00
Gregory Heskett
c5d9f535ee HackerSM64 v2.2.0 2024-03-01 17:03:30 -05:00
Gregory Heskett
8257f77c57 A few various Puppyprint bugfixes (#770) 2024-03-01 17:00:46 -05:00
arthurtilly
78747e9836 Toggle the default status of a few defines to avoid confusing new people (#740)
* define toggles

* disable blue preview
2024-02-29 19:03:43 -05:00
arthurtilly
c96118bcd8 Fix objects using throwmatrix having incorrect rotation when paused (#769)
* throwmatrix fix

* ok fixed it and removed some cringe matching

* happy bitch
2024-02-29 19:03:08 -05:00
Gregory Heskett
4c8233fe6a Fix automatic libpl cloning (#771) 2024-02-27 10:29:47 -05:00
Gregory Heskett
524e35c974 Add -falign-functions=32 to makefile flags (#745)
Seemingly provides minor performance benefit and should more importantly reduce perf lotto substantially (hopefully)
2024-02-22 00:38:19 -05:00
Matt Pharoah
fc5ffa7438 Update libpl (#767)
* Update libpl

* Update libpl again

* would you believe its another libpl update
2024-02-16 12:45:29 -05:00
arthurtilly
d07e6383f6 Fixed bugs relating to objects dying in lava (#766)
• Changed the generic object death function to now also check that an object has landed and is over lava before killing it. Previously it would die instantly if it was above lava which resulted in objects randomly dying above lava

• Also changed the same function to kill a non-buoyant and killable object (e.g. goombas) right when it touches water. Previously it would slowly sink to the bottom and then instantly die upon touching the floor underwater which is strange.

• Changed where lava checks are done so they are done in the same place as other object flag checks. This avoids bugs where e.g. objects die when touching the edge of a platform that is over lava, because the ground flags are updated, then the object's floor is updated to be over the lava, and then the lava move flags are updated causing the object to think it is over lava and touching ground at the same time (making it die)

• Fixed the coin flicker define for regular non-bully coins because apparently it just never worked and no-one noticed? Only the coins that come from bullies worked with this define and I guess people only ever tested coins in lava with bullies. I rewrote the coin behavior to be a little closer to the bully one. I think in the future the two types of moving coins could easily be merged into one object, they don't act visibly different at all.

Tested the PR with a lot of goombas being dropped into lava/water and also this stuff is in Mario Builder so I've been testing it there too. Feel free to test more.
2024-02-09 21:07:31 -05:00
Gregory Heskett
1de4b9144b Fix floating point crash with pitch bend table + various audio optimizations (#746)
* Move audio TTLs to improve dcache

Saves over 100us even when audio is idle

* Improve additional audio runtime by reducing some unnecessary float math

* Pause channel/layer processing on sfx channels when idle

* Fix possible floating point UB/crash with gPitchBendFrequencyScale
2024-02-04 02:29:38 -05:00
YoshiMilkman
88c2cdb0a0 Fix wall sidling with negative speed (#762) 2024-02-02 22:52:10 -05:00
Gregory Heskett
3a5a2f14dd Missed a comma 2024-02-02 22:27:48 -05:00
Gregory Heskett
b9ba17a4d6 Add libpl submodule (#753)
* Add libpl submodule

* Clone libpl submodule automatically while building (if enabled)
2024-02-02 22:08:34 -05:00
Gregory Heskett
5064fcfb69 Merge pull request #757 from HackerN64/master
Merge HackerSM64 2.1.3 release into 2.2.0
2024-01-31 01:23:18 -05:00
Gregory Heskett
05bbe16e29 HackerSM64 Release: 2.1.3
* Preserve vanilla reverb downsampling behavior whenever BETTER_REVERB isn't in use (#727)

* Disable unrelated buttons controlling S&Q menu and pausing (#728)

* Update Dockerfile to Ubuntu 22.04 as 18.04 is EOL (#731)

* Update Dockerfile to Ubuntu 22.04 as 18.04 is EOL

* Dockerfile: Use modern syntax for mounting

* Add gcc-mips-linux-gnu to dockerfile

* Add DEBUG_ASSERTIONS define and enable it by default (#730)

* Add relevant model ID asserts to level script load commands (#722)

Co-authored-by: someone2639 <someone2639@gmail.com>

* Define changes for transitions, two bug fixes (#739)

* Fixed one or two bugs, cleaned up a few things, put every non vanilla styled change into POLISHED_TRANSITIONS

And renamed set_and_reset_transition_fade_timer

* Undid the renaming of set_and_reset_transition_fade_timer as suggested

* Fix silhouette occlusion layers rendering twice (#748)

* Fix Boo's Accelerating Upwards During Textbox (Vanilla Bug) (#742)

* Add assert for beginning geo layout command (#738)

* geo layout assert

* new idea

* Change assert message, add crash screen newline support, and change debug safeguards

* Fix weird text on Project64 GLideN64 (#715)

* Update version to 2.1.3 (#754)

* Fix rumble Issues (#756)

* Missed important use of thread6 stack define

* Fix build issues with rumble

---------

Co-authored-by: Gregory Heskett <gheskett@gmail.com>
Co-authored-by: Denis Kopyrin <aglab3@gmail.com>
Co-authored-by: MisterSheeple <27652712+MisterSheeple@users.noreply.github.com>
Co-authored-by: someone2639 <someone2639@users.noreply.github.com>
Co-authored-by: someone2639 <someone2639@gmail.com>
Co-authored-by: Lilaa3 <87947656+Lilaa3@users.noreply.github.com>
Co-authored-by: Arceveti <73617174+Arceveti@users.noreply.github.com>
Co-authored-by: 1ted59 <24933689+1ted59@users.noreply.github.com>
Co-authored-by: arthurtilly <32559225+arthurtilly@users.noreply.github.com>
Co-authored-by: iProgramInCpp <iprogramincpp@gmail.com>
2024-01-27 12:45:43 -05:00
Gregory Heskett
9cf3753d6e Update version to 2.1.3 (#754) 2024-01-27 12:39:03 -05:00
Gregory Heskett
325ee7c5ec Fix rumble Issues (#756)
* Missed important use of thread6 stack define

* Fix build issues with rumble
2024-01-27 12:39:03 -05:00
DNVIC
bf924a8ec3 Added a define for slope fix (#749)
* implemented a form of slope fix

* fixed the slope fix to not allow for hyper cheese

* implemented gheskett's suggestions

* Added space between comment and define

Co-authored-by: Gregory Heskett <gheskett@gmail.com>

---------

Co-authored-by: dnvic <business@dnvic.com>
Co-authored-by: Gregory Heskett <gheskett@gmail.com>
2024-01-21 14:11:32 -05:00
iProgramInCpp
c39b289441 * Fix weird text on Project64 GLideN64 (#715)
Included in the PR will be a list of comparisons.

This does two things:
1. Restores the `dl_ia_text_tex_settings` from the original Super Mario 64. Not sure why this was changed.
2. Changes the S coordinate of two vertices from `vertex_ia8_char` from 480 to 512. This is an error from the original game.
2024-01-21 13:42:50 -05:00
arthurtilly
5ba00edf20 Add assert for beginning geo layout command (#738)
* geo layout assert

* new idea

* Change assert message, add crash screen newline support, and change debug safeguards

---------

Co-authored-by: Gregory Heskett <gheskett@gmail.com>
2024-01-21 13:38:00 -05:00
1ted59
15a81037ef Fix Boo's Accelerating Upwards During Textbox (Vanilla Bug) (#742)
If a `Go On A Ghost Hunt` Boo is killed while it has a gravity of -1 (at the bottom of its oscillation), and does not hit a wall, it will keep the same negative gravity and continue moving until the textbox is closed. Boo Y speed isn't capped in this scenario, so the constant -1 gravity leads to the boo moving upwards at an increasing rate.

This leads to issues in `boo_act_4`. The distance eventually increases to a point where the boo object is too far to be returned in `cur_obj_nearest_object_with_behavior`. 

This can have 2 buggy effects:

- the wrong dialog box being brought up if the textbox is delayed (easiest to do by hanging on a ledge).
- the puzzle solved jingle being played incorrectly if you wait in the textbox long enough

This doesn't actually cause issues with King Boo, it just brings up the wrong text box. King Boo spawning is unaffected by this bug.

The fix is to stop the boo after the death animation has finished playing, stopping the boo from accelerating upwards. I don't believe this to cause any other issues (the boo is already dead after all!)

Thanks to Kyman for finding this bug.
2024-01-20 13:07:45 -05:00
Arceveti
b2707990f2 Fix silhouette occlusion layers rendering twice (#748) 2024-01-01 18:44:41 -05:00
Gregory Heskett
1d7a690361 Optimize BETTER_REVERB lightweight by an additional ~20% CPU, while also cutting memory requirements for it by ~30% (#744) 2023-12-30 23:22:05 -05:00
Lilaa3
08f0e3efa4 Define changes for transitions, two bug fixes (#739)
* Fixed one or two bugs, cleaned up a few things, put every non vanilla styled change into POLISHED_TRANSITIONS

And renamed set_and_reset_transition_fade_timer

* Undid the renaming of set_and_reset_transition_fade_timer as suggested
2023-12-29 18:32:19 -05:00
arthurtilly
6148582f5e remove puppylights (#736) 2023-12-16 23:26:31 -05:00
Gregory Heskett
913cda93b8 Audio cleanup checkpoint: Large portion of synthesis.c taken care of + occasional audio optimizations (#710) 2023-12-15 23:57:19 -05:00
someone2639
d7c840b8f1 Cache master displaylist on "hot" code paths (#724)
* add displaylist macros

* implement displaylist macro in memory.c

* API update

* implement displaylist macro on all 'hot' code paths

* Remove the macro entirely

* rename tmpDL

* remove the other two macros

* catch the last 2 missing statements

---------

Co-authored-by: someone2639 <someone2639@gmail.com>
2023-12-15 23:56:40 -05:00
arthurtilly
b73d8dd178 Math util cleanup (#566)
* math util cleanup

* clean up min/max 3 and also distance and angle functions

* improve pipelining and make macros safe

* macros safer and cleaned approaches

* fix build

* made sure puppycam builds (and fixed unused var warnings)

* added 32 bit mins and maxs
2023-12-15 23:44:06 -05:00
arthurtilly
9fc928ed70 Remove OBJECTS_REJ and clean up core render func (By Fazana) (#735)
* crowd pleaser

* Fix debug boxes

* fix comments

* renamed temp graphics head to be consistent

---------

Co-authored-by: Fazana <52551480+FazanaJ@users.noreply.github.com>
2023-12-15 08:48:32 -05:00
someone2639
76dae5e8dd Add file select skip define (#723)
* add config define to skip file select

* implement file select skip

* Add more coverage to the skip file select tweak

---------

Co-authored-by: someone2639 <someone2639@gmail.com>
2023-12-14 23:27:50 -05:00
someone2639
7df16608a7 Add relevant model ID asserts to level script load commands (#722)
Co-authored-by: someone2639 <someone2639@gmail.com>
2023-12-14 23:26:43 -05:00
arthurtilly
1646702393 shorten call_native command (#733) 2023-12-14 23:24:35 -05:00
arthurtilly
dcfcf50a80 wall fix (#734) 2023-12-14 23:24:03 -05:00
Gregory Heskett
4f2c48c733 Add DEBUG_ASSERTIONS define and enable it by default (#730) 2023-12-11 01:58:30 -05:00
MisterSheeple
72f8ea130f Update Dockerfile to Ubuntu 22.04 as 18.04 is EOL (#731)
* Update Dockerfile to Ubuntu 22.04 as 18.04 is EOL

* Dockerfile: Use modern syntax for mounting

* Add gcc-mips-linux-gnu to dockerfile
2023-12-10 22:40:34 -05:00
Denis Kopyrin
36c98b6cd1 Disable unrelated buttons controlling S&Q menu and pausing (#728) 2023-12-10 02:28:08 -05:00
Gregory Heskett
78cc957d31 Preserve vanilla reverb downsampling behavior whenever BETTER_REVERB isn't in use (#727) 2023-10-31 18:23:15 -04:00
thecozies
7de18d10fc Merge pull request #714 from HackerN64/develop/2.1.2
Release: v2.1.2
2023-09-27 16:54:38 -05:00
Gregory Heskett
01c3f20c6f v2.1.2 2023-09-27 11:13:53 -05:00
thecozies
38f25d2b83 rename flips src dir (#711) 2023-09-27 11:55:14 -04:00
someone2639
48bea33052 spawn lakitu at the origin (#712)
Co-authored-by: someone2639 <someone2639@gmail.com>
2023-09-27 11:54:00 -04:00
thecozies
b8f770ae48 Release/2.1.1 (#709)
* removed extraneous mat stack index decrement in geo_process_camera (#708)

* Fixed typo in FCR enums (#707)

* v2.1.1

---------

Co-authored-by: Matt Pharoah <mtpharoah@gmail.com>
2023-09-26 14:05:46 -04:00
thecozies
31d46d4479 Merge pull request #692 from HackerN64/develop/2.1.0
Release/2.1.0
2023-09-25 18:40:02 -05:00
thecozies
5d45c1d46f v2.1.0 2023-09-25 18:22:46 -05:00
thecozies
37093031da Cpp support (#705)
* remove unused typedefs

* support for building c++ files
2023-09-25 14:41:51 -05:00
Lilaa3
af3b538ed9 Remove sharp transitions (#702)
* Cannon render mode fix

Slipped past me.

* Removed sharp transitions

I like the idea but it really isn´t vanilla and causes issues.
Might be worth revisiting but for now lets just get rid of it.

* fixes

Missing render mode set for transitions, reduced display list alloc for cannon
tested more this time
2023-09-25 08:26:31 -05:00
Gregory Heskett
e5bcf95703 Fix camera issues with NON_STOP_STARS (#700)
* Fix camera issues with NON_STOP_STARS

* Throw early return into stardance cutscene instead
2023-09-23 16:40:07 -05:00
Lilaa3
c39fb6f333 Small texture type fix for the cannon (#696)
* Small texture type fix for transitions

* Moved texture type define above other declarations
2023-09-23 17:32:21 -04:00
thecozies
ed1465247a Merge pull request #695 from gheskett/remove-puppylights
Remove Puppylights define from config file
2023-09-23 15:26:37 -05:00
thecozies
b6ba2b58ad Merge pull request #698 from HackerN64/perspective_fov_scale
remap scale with fov and avoid copy when world scale is 1
2023-09-23 15:13:41 -05:00
thecozies
b1ef06fcd1 remap scale with fov and avoid copy when world scale is 1 2023-09-23 15:05:30 -05:00
Gregory Heskett
3545b4658c Remove Puppylights define from config file, since it doesn't work anymore 2023-09-23 00:35:48 -04:00
thecozies
00b4475427 Merge pull request #694 from Arceveti/develop/2.1.0-four-controllers-base
Fix controller type checking (GCN false positive)
2023-09-22 17:18:31 -05:00
Arceveti
bf1cd9091f Fix controller type checking (GCN false positive) 2023-09-22 15:12:55 -07:00
thecozies
cd2e639206 Merge pull request #595 from Arceveti/develop/2.1.0-four-controllers-base
4 controllers support + osContCh optimization
2023-09-22 16:56:23 -05:00
Arceveti
4397811b92 Simplify controller type checking + fix controller swapping 2023-09-22 14:47:07 -07:00
Arceveti
c890838b24 Fix controllers on ports other than 0 2023-09-22 14:25:20 -07:00
thecozies
5f8c17ca74 Merge pull request #693 from thecozies/revert_frustratio
added USE_FRUSTRATIO2 define
2023-09-22 14:15:31 -05:00
thecozies
ff953bea63 added USE_FRUSTRATIO2 define 2023-09-22 13:16:34 -05:00
thecozies
f29fe44135 Merge pull request #691 from HackerN64/develop/2.1.0_pull_master
Develop/2.1.0 pull master
2023-09-22 12:41:56 -05:00
thecozies
48fed9878e Merge branch 'master' of github.com:HackerN64/HackerSM64 into develop/2.1.0_pull_master 2023-09-22 12:38:53 -05:00
Matt Pharoah
c9533d18ff Future proof console check (closes #663) (#690) 2023-09-22 13:09:32 -04:00
someone2639
544fcaf038 remove dependency on script exec permissions (#683)
* make fixlights.py and make_version.sh independent of exec perms

* add mips64-elf-ld warning

---------

Co-authored-by: someone2639 <someone2639@gmail.com>
2023-09-22 13:06:39 -04:00
Matt Pharoah
3a312e101c Improved WiiVC check to avoid false positives & added functions to read and manipulate fcr31 (#669)
* Added functions to access and manipulate the fcr31 register

* Improved WiiVC emulator check to avoid false positives

* Updated comments

* Moved float.h to include directory
2023-09-22 13:05:53 -04:00
someone2639
42cbaed631 Track whether the RCP hang timer has started to prevent double setting (#689)
* Track whether the RCP hang timer has started to prevent double setting

* removed single letter struct field

* remove debug lines

---------

Co-authored-by: someone2639 <someone2639@gmail.com>
2023-09-22 08:35:17 -05:00
Gregory Heskett
e61bf8fbc1 Fix STAR_DANCE_USES_STARS_MODEL define (#688) 2023-09-21 14:23:03 -05:00
thecozies
60bb21693b fix tile scrolled light materials (#687) 2023-09-21 14:13:58 -05:00
Gregory Heskett
da3a7e826a Add missing JRB vanilla level check (#685) 2023-09-20 00:29:19 -04:00
Gregory Heskett
a64be21db8 Added config option for previewable blue coins (#507)
* Added config option for previewable blue coins

* Clean up previewable blue coin implementation to only be a couple lines

---------

Co-authored-by: Colin Tong <tongcolin@live.ca>
2023-09-18 18:21:39 -04:00
Lilaa3
44b48ffacd Important Culling Fixes (#666)
* Culling fix

Precison of half fov horizontal being equal to or above 2 leads to many issues. using 1.5 would break rt64 and other emulators with ultra widescreen.
Vertical culling will be disabled by default until 3.0

* Improved emu checks and naming

* Comment changes

* Small typo fix
2023-09-18 09:18:35 -05:00
thecozies
c3f300be9f Wiseguy's fixed raycast traversal (#681)
* wiseguy's fixed raycast traversal

* Use while (TRUE) { for the sake of repo consistency
2023-09-18 08:40:37 -05:00
thecozies
63ddb28641 only set rooms while in a new room (#682) 2023-09-18 09:36:53 -04:00
thecozies
0a7e44de0e restore mips-n64 (#680) 2023-09-18 09:18:03 -04:00
Gregory Heskett
ab0cebab7a Rotate envmaps to be consistent with vanilla (#636)
* Start work on envmap rotation stuff

* n64graphic envmap rotation working

* Add comment to rotation function

* Fix DLs of non 32x32 env maps, fix envmap rotation

* fix metal flying vanish cap

* fix metal mario's medium poly butt

* new asset version for flipped env maps

* added missing env textures to extract script

* restore asset_needs_update

* Skip asset_needs_update calls if local version matches new version

* removed the goddard textures from envmap rotation

---------

Co-authored-by: mineqwerty <mineqwerty25@gmail.com>
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2023-09-18 09:10:56 -04:00
Gregory Heskett
8a83359ed1 Add functional changes to inertia to support only specific directions specified in the config (#671)
* Add functional changes to inertia to support only specific directions specified in the config (needs cleanup)

* Reduce number of inertia defines

* Update Platform Displacement 2 define description

* comment adjustments
2023-09-18 07:17:31 -05:00
Arceveti
973eec3c93 Merge branch 'develop/2.1.0' of https://github.com/Arceveti/HackerSM64 into develop/2.1.0-four-controllers-base 2023-09-17 19:46:42 -07:00
someone2639
db85886294 Global folder integration for all features that need a baserom (#677)
* Look for shared baserom directory using XDG_DATA_DIR instead of polluting the home directory

* move global baserom folder detection to a new file that the makefile can use

* ignore __pycache__ in tools

* edit make patch to use global baserom detector

* Extract jp/sh/eu from global folder too

* genericize asset extraction for all versions

* force at least US to extract

---------

Co-authored-by: Matt Pharoah <mtpharoah@gmail.com>
Co-authored-by: someone2639 <someone2639@gmail.com>
2023-09-17 21:54:37 -04:00
Gregory Heskett
620b7cdded Fix typo describing BETTER_REVERB parameters (#678) 2023-09-17 14:37:08 -04:00
Matt Pharoah
c21fd01977 Look for shared baserom directory using XDG_DATA_DIR instead of polluting the home directory (#670) 2023-09-17 11:00:18 -04:00
CowQuack
90d313b4e2 fixed fading warps not downwarping (#675) 2023-09-12 14:44:21 -04:00
Arceveti
8f9c1856a7 Add make rebuildtools (#674) 2023-09-11 17:15:22 -04:00
Gregory Heskett
ca4757639e Bugfix: Selecting headset audio and then disabling stereo headset effects define leads to game crash in sound select (#672)
* Bugfix: Selecting headset audio and then disabling stereo headset effects define leads to game crash in sound select

* More involved modifications
2023-09-11 12:06:37 -04:00
Arceveti
8105fde1f5 Updates from main input branch 2023-09-06 13:15:29 -07:00
Arceveti
50b4ebf051 Merge branch 'develop/2.1.0' of https://github.com/HackerN64/HackerSM64 into develop/2.1.0-four-controllers-base 2023-09-05 12:57:54 -07:00
Matt Pharoah
d105eff491 Fixed broken build (#668) 2023-09-01 15:08:24 -04:00
CowQuack
90a9e978cc Fix the stationary action and ledgegrab downwarps when pushed off a ledge, and added a special downwarp for grabbing Bowser (#664)
* fix stationary/ledge downwarp, special bowser case

* Comment clarity

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

---------

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2023-08-30 21:53:04 -04:00
FConnuli
d13f0cb2fc Create compile_flags.txt (#653)
Added compile_flags.txt for the clangd lsp to work for the project
2023-08-29 18:08:45 -04:00
someone2639
683bb80c72 file purge + extract_assets revamp (#644)
* remove gen_asset_list (frozen)

* move format.sh

* remove rasm2armips (decompilation helper)

* remove patch_libmalloc (IDO exclusive)

* remove unnecessary sha1's and makefile definitions

* remove libultra math script (IDO exclusive)

* remove patch_elf_32bit

* actually remove bitwidth tool

* remove the need for all the sha1 files

* extract_assets can now find a baserom named anything

* added error handling and some more graceful error handling

* formatting the error message

* more relevant error info

* add a check for a roms folder

* fix gitignore to prevent patch_elf from being re-committed

* naming clarity; change to baseroms/; feedback addressed

* skip rom verification if assets have been extracted

* changes addressed

---------

Co-authored-by: someone2639 <someone2639@gmail.com>
2023-08-29 09:06:41 -05:00
Lilaa3
5e9f8c7ee0 Improved transitions (#642)
* Improved transitions

Code quality improvements.
Shape transitions now all scale down to 0 instead of 16 (mario and bowser).
Ease in was added which leads to far smoother transitions.
HD_TRANSITIONS define added, makes use of the tex edge render mode to deliver smooth transition textures.
lerpf was added to math utils.

* Cleaner textures, rounding only during vertex creation

* Another attempt

* cozies naming suggestion

* Improvements and suggestions

SHARP_TRANSITION_TEXTURES is now off by default (I still think the textures for it could be improved).
lerpf, to_smoothstop, smoothstart, smoothstop and smoothstep have all been added.
make_vertex has been inlined.
make_simple_vertex has been added (colourless vertex).
Transition colors (and canon colors) are now defined using primative colour instead of setting individual vertices color´s.
Transition´s now use smoothstep (ease-in-out) instead of ease out only.
Naming has been improved.

* Proper function inling and removal of GBI_FLOATS variant of make_vertex and make_simple_vertex

* More requested changes

* Accidental final new line removal fixed

* Comment about pop in fix.

* Comment fix

The issue with writing comments for stuff is when you want to change code later on.
2023-08-29 08:57:32 -05:00
Gregory Heskett
1e0498ba68 Fix Puppyprint compiler warning (#661)
lol
2023-08-29 09:11:50 -04:00
Fazana
ca0e373a2c remove decompression heap (#660) 2023-08-29 07:55:21 -05:00
Gregory Heskett
1fd8930881 Remove singular version ifdef from sounds.h (#655)
Makes tooling more difficult but also just hard to look at
2023-08-29 07:49:40 -05:00
Matt Pharoah
febcb71ea3 Added emulator detection (#651)
* Added emulator detection

* Fixed missing assignments

* Disable interrupts around the count factor test

* Added more comments to emutest

* Changed PJ64 enum values so the versions work as a bitfield

* Updated README

* Fixed comments

* Updated enum values so you can safely AND and OR all emulator version flags together

* Remove redundant gIsConsole, gIsVC, and gCacheEmulated global variables

* Changed console check to be more future proof against Ares

* Use assembly file instead of casting to a function pointer

* Moved round_double_to_float back to its own compilation unit

* Moved the ParallelN64 check before the Ares check for better future-proofing

* Align pj64_get_count_factor_asm with cache lines... not that it actually matters for pj64

* Adjusted some comments

* Made emulator check thread-safe on emulators that emulate PI timings

* Added gIsConsole macro for backwards compatibility

* Added cen64 to INSTANT_INPUT_BLACKLIST

* Updated comment
2023-08-28 18:03:26 -04:00
Gregory Heskett
0138b8ea53 Revert dialogue scrolling to behave like vanilla (#658) 2023-08-23 17:11:42 -07:00
Fazana
d0e5bf665b Bugfix: Puppyprint question mark (#654) 2023-08-01 12:48:00 -04:00
Lilaa3
7c32cf8b63 Dynamic collision fixes + actual OR_LONG (#648)
* Dynamic collision fixes + actual OR_LONG

Dynamic collision will now check Mario´s vertical distance seperately, this is done to implement a check for when mario is above an object, in which case the collision distance is expanded by 2000 units to avoid shadows not appearing.
Or long works correctly now, replaces the behaviour command NOP_1.

* Micro optimzation

Avoids sqrtf by using the squared lateral distance and squaring the the collision distance for the comparison.

* Requested changes

* minor change

* Re ordering

* How
2023-06-29 17:25:54 -05:00
Gregory Heskett
4dc17a32a2 Slice BETTER_REVERB memory requirements in half (#649)
which also improves performance by almost 10%
2023-06-29 10:09:32 -04:00
Gregory Heskett
37787dffc9 Add SET_ECHO level script command + minor BETTER_REVERB refactoring (#591)
* Add SET_ECHO level script command + minor BETTER_REVERB refactoring

* Add Puppyprint debug page for trying out different BETTER_REVERB presets and configurations

Also fix a missing Puppyprint enum that was causing issues

* Modify Puppyprint BETTER_REVERB page + other minor improvements

* Swap order of RSP commands to allow reverb downsampling to sound more similar to that of without downsampling
2023-06-28 15:15:38 -04:00
someone2639
e2cf2d5119 IPL3 documentation; undefined_syms.txt finally deleted (#545)
* yeet undefined_syms; IPL3 documentation; theoretical addition of checksum skip and initial DMA length/location change

* another comment about how to set dma len

* comment is now correct in ultratypes

* do the rename

* remove insinuations that ipl3 can be modified

---------

Co-authored-by: someone2639 <someone2639@gmail.com>
2023-06-26 12:35:52 -05:00
someone2639
1eba347c07 replace abs with c macro; replace round with asm extern function (#647)
Co-authored-by: someone2639 <someone2639@gmail.com>
2023-06-25 23:57:21 -04:00
someone2639
13b8339560 pack including static symbols using 'nm' (#646)
Co-authored-by: someone2639 <someone2639@gmail.com>
2023-06-25 23:56:43 -04:00
someone2639
823101164d import new flips + flags (#645)
Co-authored-by: someone2639 <someone2639@gmail.com>
2023-06-25 23:12:04 -04:00
Lilaa3
16e55ad952 Culling improvements + GRAPH_RENDER_INVISIBLE check change (#590)
* Culling improvements + earlier GRAPH_RENDER_INVISIBLE check

GRAPH_RENDER_INVISIBLE is now checked during geo_process_object before any uncessesary transformation is applied to
the object, translation is still calculated for sound even if the object is invisible.
Half fov is now computed during geo_process_perspective.
Vertical culling has been added (only when bellow the screen to prevent shadow´s being culled).
Emulators have basically infinite culling aspect ratio to prevent early culling with widescreen viewport hacks.
Default culling radius is now a define.
This was written by both me and Kaze Emanuar, he provided the suggestion to use absf and informed me of
integer division being remarkably slow (although it´s only used once during geo_process_perspective).

* Badly placed new line (major fix)

* integer

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* parenthesis

doesn´t affect order of operation, just for code quality

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* uncessary whitespace

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

---------

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2023-06-23 10:06:24 -05:00
Gregory Heskett
73fad6195d Bugfix: fix profiler freeze (hopefully) (#640) 2023-06-20 20:24:20 -05:00
someone2639
8240262c07 Update S2DEX Text Engine to latest version; fix build issues (#532)
Now its just part of HackerSM64 entirely, and HackerSM64 will be the source of all changes (as long as said changes can reasonably apply to homebrew games)
2023-06-17 16:51:03 -04:00
Reonu
fffebd1065 add death on exit course define (#564)
if the define is enabled, exiting course is the same as dying (warps to failure warp node)
2023-06-16 20:57:33 -04:00
Gregory Heskett
7f08d3d963 Revert floor sorting optimizations (#639)
They cause some weird collision bugs, and are thus not worth keeping until properly investigated.
2023-06-13 12:57:33 -04:00
Fazana
5764ae0ece Puppy Camera for 2.1 (#554) 2023-06-09 11:13:57 -04:00
CowQuack
4c9a91c2be Improved the extended inst names and added missing (#634)
* Improved the extended inst names and added missing

* Added percussion loop and renamed cowbell
2023-06-07 15:56:56 -04:00
Gregory Heskett
8f6fde697f Disable Stereo Headset Effects and stub out all known code references via define (#633)
* Disable stereoheadseteffects and stub out all known code references via define

By effect this also completely removes Headset sound options from the game config, as it serves no purpose whatsoever compared to stereo.
Because it's stubbed out everywhere rather than only the necessary locations to prevent it, this should boost audio runtime slightly for everything, not just the stuff that actively used it.

* Rename DISABLE_HEADSET_STEREO_EFFECTS to ENABLE_HEADSET_STEREO_EFFECTS

* Reorganize and reduce audio Note struct

* Add performance to define description

* Rename ENABLE_HEADSET_STEREO_EFFECTS to ENABLE_STEREO_HEADSET_EFFECTS
2023-06-07 13:58:59 -04:00
CowQuack
0c7f44a51a Merge pull request #629 from HackerN64/develop/2.1.0-red-coin-count-increase
Develop/2.1.0 red coin count increase
2023-06-07 12:42:09 -04:00
CowQuack
91af40e72a Update src/game/behaviors/red_coin.inc.c
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2023-06-07 12:26:27 -04:00
CowQuack
7cdb0764a5 le comment
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2023-06-07 12:24:20 -04:00
Fazana
57f7338e6a Change puppyprint log function calls to defines (#632) 2023-06-07 07:58:22 -04:00
Gregory Heskett
42cf450ba8 Increase size/configurability of volume ramping tables (#623)
Vanilla's ramping table sounds absolutely horrendous, most noticeably when it comes to slow volume fade-ins/outs. By default, precision has been increased by 4x vanilla US, which overall has an insignificant impact on performance. This is still half as precise as EU's volume ramping table, that's about the point where additional memory and performance aspects are impacted more significantly.
2023-06-07 06:46:25 -04:00
Gregory Heskett
50b023ef21 Allow envelopes with delay values of 0 on init (#625)
This allows sounds to start instantly without any fade-in. Using new soundbanks with delay values of 0 will not compile with base decomp, but old decomp-compliant soundbanks will work with this commit.
2023-06-07 06:46:12 -04:00
mineqwerty
3fc7b50488 Readme red coin star clarity 2023-06-05 19:33:04 -04:00
mineqwerty
d1c56b60a3 fixed spawning bug with level red coin stars 2023-06-05 18:28:13 -04:00
CowQuack
dde6e7da1a condition that forces level reload on exit course (#630)
* condition that forces level reload on exit course

* Changed exit course to use a specific warp flag
2023-06-05 17:26:28 -05:00
Gregory Heskett
81c0a8ae61 Improve BETTER_REVERB runtime by about 15-20% overall (#619)
Refactored everything to be more memory efficient and execute fewer function calls than prior

Also accidentally discovered a significant bug with the audio modes always being forced to stereo so this is definitely 2.1 scope lmao
2023-06-05 17:09:03 -05:00
Arceveti
580fd45079 Use FillRectangle for shade_screen (#611) 2023-06-05 17:06:37 -05:00
thecozies
351f6f8961 added make_patch and flips (#628) 2023-06-05 17:02:58 -05:00
thecozies
aabad79e46 removed denorm col tri in wdw (#631) 2023-06-05 17:54:03 -04:00
mineqwerty
ea818c2ec0 added support for multi area red coin stars in bp2 2023-06-05 16:37:39 -04:00
mineqwerty
daf53f85aa fixed nitpicks and dialog trigger number 2023-06-05 10:59:44 -04:00
mineqwerty
c4441e8ee6 forgot to cap red coins in the menu 2023-06-04 22:34:16 -04:00
mineqwerty
af53a42b0b pause screen red coins 2023-06-04 22:29:37 -04:00
mineqwerty
0d14f6bb58 revert testing changes 2023-06-04 21:21:45 -04:00
mineqwerty
f80acbbefc testing changes 2023-06-04 21:20:39 -04:00
mineqwerty
62772067d5 added support for up to 99 red coins in an area 2023-06-04 21:19:51 -04:00
Gregory Heskett
e9054a6b6b Bugfix: Enabling silhouettes with OBJECTS_REJ disabled does not compile (#627) 2023-05-12 02:47:25 -04:00
thecozies
34b97c9249 v2.0.9 2023-05-11 09:13:42 -04:00
thecozies
23e01e712b copied new unf usb lib 2023-05-11 09:13:42 -04:00
thecozies
a34c2f4cb0 Aligned gfx buffers to 32 2023-05-11 09:13:42 -04:00
Gregory Heskett
b6d83b3291 Merge pull request #624 from HackerN64/v2.0.9
Release/2.0.9
2023-05-10 19:24:01 -04:00
thecozies
9717d89fb8 v2.0.9 2023-05-09 17:19:16 -04:00
someone2639
38e9b08695 Fix builds on Make 4.4 (#588)
* Fix builds on Make 4.4

* oops

---------

Co-authored-by: someone2639 <someone2639@gmail.com>
2023-05-09 17:19:16 -04:00
Gregory Heskett
f795173176 Start samples at full velocity when using envelopes that start with a delay of 1 (#576)
* Start samples at full velocity when using envelopes that start with a delay of 1

This can help eliminate sample artifacting that happens during a transition between a sudden fade-in into normal volume. It's not completely eliminated due to some processing weirdness, but it's a massive improvement.

* Fix vanilla issue causing misalignment when samples are initialized and played back with low attack values

NOW the artifacting is actually gone for real

* Improve artifacting bugfix

The first solution would've honestly been satisfactory, but this one seems to be slightly more accurate while actually removing code rather than adding it
2023-05-05 18:10:26 -04:00
thecozies
312496d769 copied new unf usb lib 2023-05-05 11:18:42 -05:00
thecozies
d68233a1c0 Aligned gfx buffers to 32 2023-05-05 11:16:57 -05:00
Gregory Heskett
93b5832d8c Bugfix: Klepto holding transparent star doesn't spawn star (#622) 2023-04-20 20:40:25 -05:00
Gregory Heskett
6317475853 Bugfix (Kind of): Fix incorrect comments for the sound IDs defined in sounds.h (#609)
Not ultra important for decomp but otherwise makes binary hacking a massive pain when referencing sounds here
2023-04-19 17:03:49 -04:00
Gregory Heskett
7348ba8976 Clear all references to every object's oFloor each frame when using with dynamic collision (#616) 2023-04-19 17:00:26 -04:00
Arceveti
18d8c51e3d Prevent transition looping fix (#608) 2023-03-21 12:25:19 -04:00
Arceveti
16f1dc41b4 Merge branch 'develop/2.1.0' of https://github.com/Arceveti/HackerSM64 into develop/2.1.0-four-controllers-base 2023-03-17 12:20:28 -04:00
Arceveti
51fb2d9e93 Make only shells from boxes despawn + cleanup exclamation_box.inc.c (#604)
Fixes #583 and cleans up exclamation_box.inc.c so that it doesn't loop through the entire contents list
2023-03-17 12:07:04 -04:00
Arceveti
171f377412 Fix rooms and doors (#601)
* Fix rooms and doors

* Update object_helpers.c

* Update object_list_processor.h

* Update object_list_processor.c

* Fix formatting

* Revert a formatting

* Clean up geo_switch_area

* Clean up geo_switch_area (more)

* Move TransitionRoomData struct

* Revert star door collision check optimization

* Move load_object_collision_model and bhv_door_rendering_loop back out of star_door.inc.c

* Combine metal door model IDs

* Revert metal door sound fixes
2023-03-17 12:05:57 -04:00
Arceveti
f7bdca7533 Fix end cake screen crash & flickering (#606) 2023-03-17 12:03:58 -04:00
Gregory Heskett
851ba192f6 Add lightweight configuration settings to BETTER_REVERB (#602)
* Add light configuration settings to BETTER_REVERB

This can reduce runtime demand down to ~75% of the standard demand, at the cost of the configurability of generally more advanced parameters

* Reformat the BETTER_REVERB preset entries to be easier to look at

* :peterVOID:

* haha lol formatting change definitely related to reverb yes this isn't unwarranted at all lmao hehe hoho
2023-03-15 10:52:05 -04:00
thecozies
c09103d456 Invert skip room proc obj (#605)
* Invert functionality of obj room proc to be opt-in

* Fixed comment for enabling profiler
2023-03-15 10:49:07 -04:00
Fazana
17498e081d 2.1.0 Puppyprint Changes (#362)
* Puppyprint text size

* Update puppyprint.c

* Revert broken render_multi_image changes

* revert multi image tweak

parallel momento

* Update puppyprint debug colors to work with new hexadecimal system

* Puppyprint color reversion to currEnv + some bugfixes

* Remove a pointless color array

* Add forgotten comment

* i can type yes definitely

* Fix some puppyprint formatting edge cases

* Missed one last puppyprint edge case

* Additional strLen check

* Variable length fix + command ignoring strlen

* type changes

* Update puppyprint.c

* Box clamping

* Revamped profiling, fixed right alignment

* Update puppycam2.c

* Deferred printing

* Update puppyprint.c

* Fixed negatives being stupid

* Puppyprint Memory view rework

* Update level_script.c

* tweaks

* Fix new line spacing with different scales

also small bit of optimisation

* Spacing fixes

* Lightweight text option

* puppyprint debug now using light text where applicable

* Update puppyprint.c

* Update puppyprint.c

* level select menu

* merge profilers into one WIP

* Fully ascii compliant

* Finishing touches hopefully

* Update puppyprint.c

* new font

* vanilla font

* o

* Update hud.c

* last kerning fixes

* Requested changes

* requested changes

* fix the j

* requested changes

* change ur clothes

* Update surface_collision.c

* requested changes

* Update puppyprint.h

* Update camera.c

* .

* Update puppyprint.c

* Update puppyprint.c

* Update puppyprint.c

* fix J

* font

* font system rework

* ia4 outline font

* pain

* fix deferred printing

* fix format change

* Add audio profiling to Puppyprint Debug

* Optimize audio profiling substantially

* Minor audio optimizations

* requested changes

* oops accidentally commited 6 lmfao

* Update game_init.c

* Update puppyprint.c

* Update puppyprint.c

* Improve Puppyprint deferred prints

This is safer, more readable, and more runtime efficient all in the same package

* change return type

* fix building with profiler only

* Update profiling.c

* fix upscaled texture rectangles from multi image

---------

Co-authored-by: gheskett <gheskett@gmail.com>
2023-03-12 12:29:08 -04:00
Fazana
f85b0c6946 I think github are gonna give me badges for all these PR's (#597)
* Update game_init.c

* fuck you nintendo fuck you nintendo fuck you nintendo fuck you nintendo fuck you nintendo fuck you nintendo

* Update segment2.c

* Update model.inc.c
2023-03-10 10:20:55 -05:00
Fazana
a3eaccedd4 Frustratio funny fix part 3 (#596)
* Update game_init.c

* fuck you nintendo fuck you nintendo fuck you nintendo fuck you nintendo fuck you nintendo fuck you nintendo

* Update segment2.c
2023-03-10 10:04:01 -05:00
Fazana
ef38abb1c0 Frustratio funny fix 2 (#593)
* Update game_init.c

* fuck you nintendo fuck you nintendo fuck you nintendo fuck you nintendo fuck you nintendo fuck you nintendo
2023-03-09 22:39:26 -05:00
Arceveti
97f7e78175 Fix gControllers 2023-03-09 16:06:53 -05:00
Arceveti
397e687a6c Add MAX_NUM_PLAYERS 2023-03-09 16:02:48 -05:00
Arceveti
169e9cff2e Support using 4 controllers at once 2023-03-09 14:29:25 -05:00
Fazana
c76c5824e3 Update game_init.c (#592) 2023-03-08 14:34:43 +00:00
Gregory Heskett
81e1cb38da Bugfix: Fix reference to missing function (#589) 2023-03-07 00:32:19 -05:00
someone2639
8d8812ab1b Fix builds on Make 4.4 (#588)
* Fix builds on Make 4.4

* oops

---------

Co-authored-by: someone2639 <someone2639@gmail.com>
2023-03-06 23:19:15 -05:00
Gregory Heskett
4c67e48456 Add define for wiping save data if existing save data from vanilla or another hack exists (#579) 2023-03-06 20:53:08 -05:00
axollyon
be753ae220 Small improvements to object loading within rooms (#580)
* Small improvements to object loading within rooms
* Only check if Mario is in the same room as the object once
* Implement object render distance within rooms (from thecozies)

* Remove sLevelsWithRooms (also from thecozies)
Honestly surprised this wasn't already in Hacker

* Remove comment for sLevelsWithRooms in config_game

* Make compatible with the painting objects PR
Move room detection to get_room_at_pos (from Arceveti)

* address enum comment
2023-03-06 20:49:39 -05:00
Arceveti
337dac828f Update macros.h + allow ALIGN macros to be used anywhere (#574)
* Update macros.h + allow ALIGN macros to be used anywhere

* Fix wrong alignment in synthesis_sh.c

* Revert bitmask in VIRTUAL_TO_PHYSICAL macro
2023-01-31 15:50:19 -05:00
Gregory Heskett
1fadb78632 Prevent UB that can happen when using more than 64 total soundbanks (#575) 2023-01-29 14:29:39 -05:00
Gregory Heskett
52a7aedaf4 Replace debug libultra builds with their ido counterparts (#572)
* Replace debug libultra builds with their ido counterparts

This is necessary because GameCube controllers apparently rely on the IDO build, also the release build is IDO anyway

* Remove fallthrough warnings from usb/debug.c

* remove need for debug libultra with unf and use lib define in ld

Co-authored-by: thecozies <collinpferguson@gmail.com>
2023-01-26 09:03:07 -06:00
Gregory Heskett
7fdb5af8fd Add support for preset options to be used with BETTER_REVERB (#508)
* Bugfix: BETTER_REVERB starts before buffers are ready

* Add support for preset options to be used with BETTER_REVERB

* Some BETTER_REVERB cleanup

* The funny whoops

* Address suggested level script change

* Bugfix: useReverb crashes when disabled

* Allow window size override for vanilla-esque BETTER_REVERB presets

* Remove unnecessary downsampling limit check

* Fix up a few things + some slight reformatting

* Add light documentation to the BETTER_REVERB parameters

* Adjust BETTER_REVERB preset types to make more sense

* Reset BETTER_REVERB data buffer to be unallocated when not in use

* Properly disable BETTER_REVERB when disabling all reverb processing

* Remove an unnecessary BETTER_REVERB ifdef

* Remove D_80332108

* Revise BETTER_REVERB config description
2023-01-24 09:22:49 -05:00
Gregory Heskett
d702f188c6 Bugfix: Stack sizes moved to main.h (#573)
Crash screen does not enjoy importing buffers/buffers.h
2023-01-24 09:19:53 -05:00
Fazana
35dffd9b4e Random epic tweaks (#568)
* various tweaks to tackle redundancy

* Update collision.inc.c

* inline the function

* fix surface denorms

* oops forgot to remove a comment that I just proved false lol

* stack asserts

* Update main.c

* Update main.c

* fix bug plural s

* Update main.c

* comment
2023-01-24 02:13:49 +00:00
Gregory Heskett
dc71aef024 Vibrato optimizations (#530)
Optimize vibrato to even exceed vanilla's implementation, all without restricting usability from the current implementation. This should save up to about 1ms of audio runtime.
2023-01-20 17:45:53 -05:00
Gregory Heskett
65d29dc337 Increase max number of concurrent layers and channels (#527)
At worst, this eats up a few KB of memory. Runtime difference should be negligible when the extra data is not being used.
2023-01-20 10:31:30 -05:00
Reonu
683ac0b2bf Added (emu-only) RCVI hack. (#425)
* Added emu-only RCVI hack

* newline moment

* Changed the value to *20

hi arthur

* RCVI hack compiler warning

* Revise BETTER_REVERB comments to better reflect RCVI hack's existence

* Fix potentially confusing comment

* More BETTER_REVERB typos :peterVOID:

* Address requested PR changes for RCVI Hack

Co-authored-by: gheskett <gheskett@gmail.com>
2023-01-20 09:36:19 -05:00
arthurtilly
818da65ae6 Fix huge stack allocation in surface loading functions (#569) 2023-01-20 01:06:06 -05:00
Arceveti
7551748a35 Remove GRAPH_NODE_TYPE_FUNCTIONAL define & restore functionality using an alternative method. (#557)
Fixes Mirror Mario and similar things.
2023-01-20 00:59:18 -05:00
someone2639
9bec16d2f0 rendering_graph_node layer table updated with gcc extensions for legibility (#467)
* rendering_graph_node layer table updated with gcc extensions for legibility

* side effect removed

Co-authored-by: someone2639 <someone2639@gmail.com>
2022-12-13 15:55:31 -05:00
Arceveti
8043823cce Merge master/2.0.8 into 2.1.0 (#551)
* Imminent fixes for bugs found on master branch (#512)

* The vanilla level checks define for Yoshi is inverted, causing him to require 120 stars when it is off and appear at 0 stars when it's on

*  The downwarp fix results in Mario levitating in midair when grabbing Bowser midair. While downwarps should still be fixed, the change should be reverted immediately until a better fix is made.

*  Some checks of Mario's floor class were using the wrong defines, which can lead to unexpected behavior in the event anyone wants to reorder surface types. By default the SURFACE_CLASS_SLIPPERY and SURFACE_SLIPPERY defines have the same value, which is why this mistake is hard to notice.

*  The firsty frames define was implemented poorly, not allowing for vanilla firsty behavior no matter what the values were set to. This has been reverted, while avoiding the UB in the original vanilla code.

*  Removed the ledge grab changes that fix QSLGs and change the false ledgegrab define since Arceveti wanted to in his PR

* Update version to 2.0.4 (#515)

* HackerSM64 2.0.5 (#517)

* Bugfix: race condition with accessing cleared audio memory pools

* Bugfix: skyboxes access tiles out of range when looking straight down (#518)

* Vscode fixes (#516)

* Revert s32 angles and remove Angle typedef usage (#529)

* Fix some surface shadowing (#531)

* Delete rtc.h

* Remove `wait_for_audio_frames()`

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
Co-authored-by: Arceveti <73617174+Arceveti@users.noreply.github.com>
Co-authored-by: JoshDuMan <40190173+JoshDuMan@users.noreply.github.com>

* Update VERSION.txt (#534)

* HackerSM64 2.0.6 (#539)

* revert random_u16 to be a u16 (#538)

* Added safety gcc math flags (#537)

* removed useless compilation flags that could cause performance loss

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
Co-authored-by: thecozies <collinpferguson@gmail.com>

* Update VERSION.txt

HackerSM64 2.0.6

* Add GCC opt flag to suppress warnings

* v2.0.7

* 2.0.8 (fix more compiler warnings) (#543)

* fix Waddress in mario_step.c

* fix Winfinite-recursion in unused dynlist_proc function

* in fact remove the offending function entirely

* fix warnings in RNC decompress functions

* update version

* fix version in VERSION.txt

premature on my part, will update it to 2.0.10 next time

Co-authored-by: someone2639 <someone2639@gmail.com>

Co-authored-by: arthurtilly <32559225+arthurtilly@users.noreply.github.com>
Co-authored-by: axollyon <20480418+axollyon@users.noreply.github.com>
Co-authored-by: Gregory Heskett <gheskett@gmail.com>
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
Co-authored-by: JoshDuMan <40190173+JoshDuMan@users.noreply.github.com>
Co-authored-by: thecozies <collinpferguson@gmail.com>
Co-authored-by: Reonu <danileon95@gmail.com>
Co-authored-by: someone2639 <someone2639@users.noreply.github.com>
Co-authored-by: someone2639 <someone2639@gmail.com>
2022-12-12 14:40:55 -05:00
Arceveti
f04a3ab624 Make JRB mist and DDD objects act-specific. (#393)
* Add JRB_ACT_SPECIFIC_MIST and DDD_ACT_SPECIFIC_OBJECTS

* Disable the act-specific defines by default

* Make act-specific objects/mist non-optional

* Update JRB mist comment

* Act-specific whirlpools + fix act 6 objects

* Initialize gCurrActNum + revert formatting change

* Use -1 for ALL_ACTS

* Revert ALL_ACTS line
2022-12-10 15:25:53 -05:00
Gregory Heskett
d028d6ea7d Bugfix: Save & Quit crashes game (#548) 2022-12-08 10:41:50 -05:00
someone2639
7ef2077353 2.0.8 (fix more compiler warnings) (#543)
* fix Waddress in mario_step.c

* fix Winfinite-recursion in unused dynlist_proc function

* in fact remove the offending function entirely

* fix warnings in RNC decompress functions

* update version

* fix version in VERSION.txt

premature on my part, will update it to 2.0.10 next time

Co-authored-by: someone2639 <someone2639@gmail.com>
2022-12-06 21:41:55 +01:00
Reonu
22b3c9ba08 Fix 100 coin stars spawning inside ceilings + being able to spawn multiple 100 coin stars (#541)
* Going below 100 coins and getting 100 coins again will no longer result in multiple 100 coin stars spawning

* 100 coin stars can no longer clip into ceilings

* Renamed set_home_to_mario to spawned_star_set_target_above_mario since it's a more descriptive name of what it does
2022-12-06 18:44:16 +01:00
Reonu
a15db3c56b 2.0.7 (fix compiler warnings) (#542)
2.0.7
2022-12-05 16:28:01 +01:00
thecozies
e87dfa74d8 v2.0.7 2022-12-05 08:39:28 -06:00
thecozies
e3e1aa02ac Add GCC opt flag to suppress warnings 2022-12-05 08:38:41 -06:00
axollyon
d3d2bb9247 Update VERSION.txt
HackerSM64 2.0.6
2022-12-04 11:50:20 +01:00
Gregory Heskett
dc1a824ce9 HackerSM64 2.0.6 (#539)
* revert random_u16 to be a u16 (#538)

* Added safety gcc math flags (#537)

* removed useless compilation flags that could cause performance loss

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
Co-authored-by: thecozies <collinpferguson@gmail.com>
2022-12-04 23:05:59 +13:00
Arceveti
1098ea95ea Merge master/2.0.5 into 2.1.0 (#536)
* Imminent fixes for bugs found on master branch (#512)

* The vanilla level checks define for Yoshi is inverted, causing him to require 120 stars when it is off and appear at 0 stars when it's on

*  The downwarp fix results in Mario levitating in midair when grabbing Bowser midair. While downwarps should still be fixed, the change should be reverted immediately until a better fix is made.

*  Some checks of Mario's floor class were using the wrong defines, which can lead to unexpected behavior in the event anyone wants to reorder surface types. By default the SURFACE_CLASS_SLIPPERY and SURFACE_SLIPPERY defines have the same value, which is why this mistake is hard to notice.

*  The firsty frames define was implemented poorly, not allowing for vanilla firsty behavior no matter what the values were set to. This has been reverted, while avoiding the UB in the original vanilla code.

*  Removed the ledge grab changes that fix QSLGs and change the false ledgegrab define since Arceveti wanted to in his PR

* Update version to 2.0.4 (#515)

* HackerSM64 2.0.5 (#517)

* Bugfix: race condition with accessing cleared audio memory pools

* Bugfix: skyboxes access tiles out of range when looking straight down (#518)

* Vscode fixes (#516)

* Revert s32 angles and remove Angle typedef usage (#529)

* Fix some surface shadowing (#531)

* Delete rtc.h

* Remove `wait_for_audio_frames()`

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
Co-authored-by: Arceveti <73617174+Arceveti@users.noreply.github.com>
Co-authored-by: JoshDuMan <40190173+JoshDuMan@users.noreply.github.com>

* Update VERSION.txt (#534)

Co-authored-by: arthurtilly <32559225+arthurtilly@users.noreply.github.com>
Co-authored-by: axollyon <20480418+axollyon@users.noreply.github.com>
Co-authored-by: Gregory Heskett <gheskett@gmail.com>
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
Co-authored-by: JoshDuMan <40190173+JoshDuMan@users.noreply.github.com>
2022-11-28 15:06:34 -05:00
axollyon
efd4e3f9dc Update VERSION.txt (#534) 2022-11-24 02:46:09 +01:00
Gregory Heskett
b1146308a7 HackerSM64 2.0.5 (#517)
* Bugfix: race condition with accessing cleared audio memory pools

* Bugfix: skyboxes access tiles out of range when looking straight down (#518)

* Vscode fixes (#516)

* Revert s32 angles and remove Angle typedef usage (#529)

* Fix some surface shadowing (#531)

* Delete rtc.h

* Remove `wait_for_audio_frames()`

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
Co-authored-by: Arceveti <73617174+Arceveti@users.noreply.github.com>
Co-authored-by: JoshDuMan <40190173+JoshDuMan@users.noreply.github.com>
2022-11-24 09:57:44 +13:00
Reonu
86841a3385 Add super slippery surface type (#422)
* Added super slippery surface·

* fix requested changes

* add comment for forcing mario to belly slide

* hi arthur

* society

* adress nitpick

Co-authored-by: aglab2 <aglab3@gmail.com>
2022-11-08 17:08:45 +01:00
Gregory Heskett
12b91fe73c Disable DISABLE_ALL (#528)
Because literally who is gonna make a hack without ever using any debug features?
2022-11-03 08:54:04 +01:00
Gregory Heskett
a42bd9bc2e Implemented native Gamecube controller support and corresponding emulator hint in ROM header (#505)
* Implemented native Gamecube controller support and corresponding emulator hint in ROM header

* Added X and Y buttons to VALID_BUTTONS in sm64.h

* Added workaround in controller type detection for mupen bug

* read GC controllers from port 2

* L to Z logic for GC controller uses a threshold

* Changed threshold for L trig to around 33%

Changed threshold based on feedback

* Added gGamecubeControllerPort

* fixed wrong check

* Bugfix: Game crashes when less than 2 controllers are connected

* Suppress compiler warnings

* Bugfix: button swapping still takes place on non-GC controllers

* Wrap port 2 stuff in console check

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

* GC console check

* Funny emulator crash moment

* block comment moment

* Added centering for the gamecube controller, support reset command (#511)

* Added centering for the gamecube controller, support reset command

* Use struct 'ControllerCenters' for 'gGamecubeControllerCenters'

* Store gamecube controller centers per controller

* Clamp GC controller stick values to s8

* the

formatting changes

Co-authored-by: Mr-Wiseguy <mrwiseguyromhacking@gmail.com>
Co-authored-by: Reonu <danileon95@gmail.com>
Co-authored-by: Denis Kopyrin <aglab3@gmail.com>
2022-11-03 08:52:19 +01:00
Reonu
a784c180a8 Wrap boulder room check under vanilla specific level checks (#521) 2022-11-03 00:36:59 +01:00
Gregory Heskett
987f76190f Bugfix: RCP has gone loud because SOMEONE didn't look at their compiler output (#526) 2022-11-03 12:35:04 +13:00
Reonu
088dbbdd2b Make warp surfaces use the force parameter if set (#525) 2022-11-03 00:25:24 +01:00
arthurtilly
ab94fd7f63 Make objects not run their code if the room they are in isn't loaded. (#502) 2022-11-03 11:35:47 +13:00
Gregory Heskett
d7d0364682 Add define to disable pitch shifting of Mario sound effects (#522)
* Add define to disable pitch shifting of Mario sound effects

* Point new voice sequence macros to existing ones

* Remove pitch shifting sequence macros from peach sounds
2022-11-02 17:24:39 -05:00
Reonu
38d3c82860 Merge pull request #469 from someone2639/rcp_hung
add scheduler entry for when RCP locks up (addresses #344)
2022-11-02 20:14:48 +01:00
axollyon
b8e22f2fbd Update version to 2.0.4 (#515) 2022-10-27 01:17:08 -04:00
arthurtilly
1a71619f47 Imminent fixes for bugs found on master branch (#512)
* The vanilla level checks define for Yoshi is inverted, causing him to require 120 stars when it is off and appear at 0 stars when it's on

*  The downwarp fix results in Mario levitating in midair when grabbing Bowser midair. While downwarps should still be fixed, the change should be reverted immediately until a better fix is made.

*  Some checks of Mario's floor class were using the wrong defines, which can lead to unexpected behavior in the event anyone wants to reorder surface types. By default the SURFACE_CLASS_SLIPPERY and SURFACE_SLIPPERY defines have the same value, which is why this mistake is hard to notice.

*  The firsty frames define was implemented poorly, not allowing for vanilla firsty behavior no matter what the values were set to. This has been reverted, while avoiding the UB in the original vanilla code.

*  Removed the ledge grab changes that fix QSLGs and change the false ledgegrab define since Arceveti wanted to in his PR
2022-10-26 19:12:29 +13:00
Denis Kopyrin
a7a637eb10 Disable cache emulation checks for VC (#509)
* Disable cache emulation checks for VC

* Get rid of unnecessary gIsVC initialization
2022-10-19 20:57:53 -05:00
Gregory Heskett
fc6a6055d9 Bugfix: WF stationary platforms given static collision despite being able to delete themselves (#510)
Resulted in a memory leak and stale object referencing that impacted Mario's positioning
2022-10-19 12:38:58 -04:00
Gregory Heskett
6291c77a18 Convert oBehParams to be unsigned, and fix GLOBAL_STAR_IDS to support more than 128 stars (#503) 2022-10-04 22:56:10 -05:00
Gregory Heskett
68f09d34ea Bugfix: Reset mario's room when switching areas (#504)
Mario's room sometimes is not reset when warping between different areas, generally when warping from one area with rooms to another without them. This can cause things like doors to not render properly.
2022-10-03 18:06:53 -05:00
Chasarr
0dd3ef7f50 Fix CROSS variable on multiple environments (#483)
The name of the compiler that CROSS is set to varies from system to
system. (gcc-mips-linux-gnu on Debian) This was not handled in
s2d_engine and calc_bss.sh
2022-09-30 17:54:07 -05:00
Gregory Heskett
da4b4db7ae Bugfix: Change instant warps to use ints instead of shorts (#500)
Additionally clean up some inconsistencies surrounding instant warps
2022-09-30 17:41:58 -05:00
thecozies
8c56afddba Added ability to automatically pull unfloader and build for unf debug (#462)
`make unf` added: build rom then pull the unfloader binary if needed, then load rom in debug mode
also, `make load` will pull unfloader as well!
2022-09-30 17:40:50 -05:00
Gregory Heskett
3d0be18ed3 Bugfix: Memory leak caused by missing pool pop state (#497) 2022-09-30 09:54:08 +13:00
Reonu
74730e7852 Simplified lives defines (#439)
* Combined ENABLE_LIVES and DEFAULT_NUM_LIVES, and removed SAVE_NUM_LIVES

* removed commented out lines

* numLives no longer modified by default when lives are disabled

This allows for the variable to be repurposed more easily

* Remove SAVE_NUM_LIVES define

* Remove SAVE_NUM_LIVES and DISABLE_LIVES define (Take 2)

* Apply MAX_NUM_LIVES and MAX_NUM_COINS to update_hud_values()

Co-authored-by: gheskett <gheskett@gmail.com>
2022-09-30 09:52:22 +13:00
thecozies
1ef73290d9 Added WORLDSPACE_LIGHTING define (#461)
Co-authored-by: Gregory Heskett <gheskett@gmail.com>
2022-09-30 09:50:49 +13:00
Arceveti
ebf19af70e Clean up a bit of code in file_select.c, fixing copy menu buttons not properly getting deleted when switching pages. 2022-09-28 21:49:25 -04:00
Gregory Heskett
8864e5f3a2 Revert "Implemented native Gamecube controller support and corresponding emulator hint in ROM header (#408)" (#494)
This reverts commit 4dfb8d9a64.
2022-09-22 07:30:02 -04:00
Mr-Wiseguy
4dfb8d9a64 Implemented native Gamecube controller support and corresponding emulator hint in ROM header (#408)
* Implemented native Gamecube controller support and corresponding emulator hint in ROM header

* Added X and Y buttons to VALID_BUTTONS in sm64.h

* Added workaround in controller type detection for mupen bug

* read GC controllers from port 2

* L to Z logic for GC controller uses a threshold

* Changed threshold for L trig to around 33%

Changed threshold based on feedback

* Added gGamecubeControllerPort

* fixed wrong check

Co-authored-by: Reonu <danileon95@gmail.com>
2022-09-21 21:30:36 -05:00
someone2639
6dbe379990 remove warnings from rnc1/2 files (#468)
Co-authored-by: someone2639 <someone2639@gmail.com>
2022-09-21 20:42:38 -05:00
thecozies
de34eb3b84 Remove redundant s2d directory and delete unused files/defines (#457) 2022-09-21 20:18:37 -05:00
someone2639
2e701ad9e7 add error macro that will always fire (#492)
* add error macro that will always fire

* add an aggress macro

like an assert macro but more aggressive and independent of DEBUG being defined (gives us 3 crash reporting options)

Co-authored-by: someone2639 <someone2639@gmail.com>
2022-09-21 20:03:24 -05:00
someone2639
4ae3a431bc Use the error macro for rcp hang 2022-09-21 20:36:39 -04:00
thecozies
c09f178df0 reverted geo bone (#474) 2022-09-21 19:14:12 -05:00
Tubular Bells
d5019ffd78 Clean up remaining DISABLE_LEVEL_CHECKS ifndefs (#479) 2022-09-21 19:13:19 -05:00
Arceveti
058399308a Fix inverted null check in obj_get_model_id (#484) 2022-09-21 19:10:41 -05:00
Gregory Heskett
c0e00beaf7 Sound effect tables now support up to 255 sounds instead of 128 (#465) 2022-09-21 18:51:31 -05:00
Tubular Bells
1af9f2b94a Restores dither effect on teleport (#476) 2022-09-21 18:49:23 -05:00
Tubular Bells
ac45e70e5c Restored exit course sound effect functionality independent of vanilla level check. (#475)
May be worth revisiting in the future to address the fact the exit course warp node will always trigger this sound effect, even when shared with other warps. Would potentially also be nice to add an option for using this sound effect with 0xF3 floor warps.
2022-09-21 18:29:00 -05:00
Gregory Heskett
aa5df070c0 Add define for using JP red coin sound (#489) 2022-09-21 11:58:25 -04:00
thecozies
af0982e8d5 Merge pull request #491 from HackerN64/master
Remove Wiseguy from codeowners file :( (#490)
2022-09-21 10:56:46 -05:00
Gregory Heskett
7d6579971a Remove Wiseguy from codeowners file :( (#490)
* Remove Wiseguy from codeowners file :(
* Add ArcticJaguar725 as the primary CODEWOWNER for the moment
2022-09-21 09:10:06 -05:00
Reonu
b225c91d58 fix level mesh not updating (#477) 2022-08-09 11:08:49 -05:00
Tubular Bells
f65eb9a003 Reformat config comments (#470) 2022-08-03 15:05:03 -05:00
someone2639
93fd414035 add scheduler entry for when RCP locks up 2022-07-26 20:56:17 -04:00
Gregory Heskett
98958df324 Line endings for all text files now forced to \n instead of \r\n (#464) 2022-07-23 15:56:18 -05:00
Reonu
77f4bec4bc Delete config_interaction.h (#440) 2022-07-22 09:20:29 -05:00
Reonu
27ff45daaf Replace unused 0C bank with aglab's / scut's extended 0C bank (#412) 2022-07-22 09:00:03 -05:00
Arceveti
3149239b9a Clean up gotos from find_wall_collisions_from_list (#288) 2022-07-22 08:58:17 -05:00
thecozies
a3e831d160 Merge pull request #456 from HackerN64/master
Merge master into 2.1.0
2022-07-19 12:22:10 -05:00
thecozies
a549e1a95a Merge pull request #454 from HackerN64/develop/2.0.3
HackerSM64 2.0.3 Release: Audio Crash
2022-07-19 11:44:14 -05:00
thecozies
83fea6d310 v2.0.3 2022-07-19 11:35:48 -05:00
Reonu
5b7b0ab8d6 moved CASTLE_MUSIC_FIX into level specific checks (#437) 2022-07-19 08:34:00 -05:00
Reonu
5a9b5a9751 Mat Stack Fix
* Implemented new lightweight CPU/RDP profiler
* Added RSP profiling to the lightweight profiler
* Added CPU audio to lightweight profiler
* Changed lingering manual light struct definitions to gdSPDefLights1, made a dummy light for Koopa's pink shorts
* Ran script to convert all light commands to lightcolor commands
* Added define guards for the profiler
* Wrote function for setting up global light direction in the frame
* Moved camera matrix into projection stack
* Corrected cameraToObject for the new matrix stack (fixes culling and sound)
* Fixed billboarding with new matrix stack
* Fixed shadows with new matrix stack
* Fixed some areas where the game was previously extracting the camera matrix from various matrices
* Restored vanilla light and env map directions under new matrix stack
* Fix goddard crash
* Fix geo_process_level_of_detail
* Remove 'construct_float' from 'geo_process_level_of_detail'
* Removed some accidentally added files
* Removed unnecessary matrix multiplications in geo_process_object
* Added fixlights script to build system for fixing custom assets and added option to disable it if needed
* Fixed visual debug with new matstack and cleaned up visual debug code
* Fixed handling of WORLD_SCALE in view matrix so it doesn't get cancelled out
* Fixed clip planes not scaling based on WORLD_SCALE

Co-authored-by: Mr-Wiseguy <mrwiseguyromhacking@gmail.com>
Co-authored-by: Arceveti <arceveti@gmail.com>
Co-authored-by: thecozies <collinpferguson@gmail.com>
2022-07-19 08:04:54 -05:00
arthurtilly
1820b146c0 Fixed memory leak between areas from automatic surface pool size (#452)
* fixed mem leak

* Add comment to second pop
2022-07-19 06:24:16 -05:00
thecozies
f4b13d474a Merge pull request #431 from gheskett/gcc10-compiler-warning
Suppress a gcc10 compiler warning for uninitialized variable
2022-07-19 06:19:25 -05:00
Fazana
f6bb8b5aab Clear only used dynamic cells (#451)
Clear only used dynamic cells
2022-07-18 21:22:22 -05:00
gheskett
8698cc0f89 Bugfix: patch_audio_bank crash (hopefully) resolved for good 2022-07-15 00:25:18 -04:00
Denis Kopyrin
0eb42f2f18 Fixed function addresses being incorrect in crash screen stacktrace (#333) 2022-07-05 22:54:07 -04:00
arthurtilly
b864e0d6da Adjust the static surface pool's size automatically per level and add static object collision (#444) 2022-07-05 22:27:23 -04:00
Reonu
c55153242d Merge pull request #429 from HackerN64/develop/merge-2.0.1-into-2.1.0
Merge 2.0.2 (master) into develop/2.1.0
2022-07-01 15:47:19 +01:00
gheskett
6f6c055f1c Suppress a gcc10 compiler warning for uninitialized variable 2022-06-29 00:17:04 -04:00
Arceveti
e6d68e6d76 Merge branch 'master' of https://github.com/Reonu/HackerSM64 into develop/merge-master-2.0.1-into-2.1.0 2022-06-28 12:43:02 -07:00
Mr-Wiseguy
62d6ee135f HackerSM64 2.0.2 release 2022-06-28 09:43:19 -04:00
thecozies
3d330e0b84 Merge pull request #387 from HackerN64/develop/2.0.1
HackerSM64 2.0.2 Release
2022-06-28 08:40:54 -05:00
Arceveti
1691e48326 Fix inverted tilting pyramids when platform displacement 2 is disabled (#397) 2022-06-28 09:30:49 -04:00
Reonu
e5af0e8ca5 Add :Zone_Identifier files to gitignore (#428) 2022-06-28 09:28:54 -04:00
Mr-Wiseguy
cf570b4406 Added dcache coherency emulation test that disables instant input if passed (fixes Ares) (#427) 2022-06-28 12:57:14 +01:00
Reonu
1012fb7957 Add extra hud defines (#409)
* Added extra HUD defines

* moved the defines to hud.h
2022-06-27 22:17:44 -04:00
Reonu
aa1a48afeb Fix shindou audio bzero size (#426) 2022-06-27 22:15:47 -04:00
Mr-Wiseguy
5e1258e806 Merge branch 'master' into develop/2.0.1 2022-06-17 01:11:34 -04:00
Mr-Wiseguy
1166d7441d Merge branch 'master' into develop/2.1.0 2022-06-17 01:08:18 -04:00
Gregory Heskett
5ef0e8c9f6 Bugfix, refactor, and slightly improve BETTER_REVERB runtime (#391)
* Buxfix, refactor, and slightly improve BETTER_REVERB runtime

* Update BETTER_REVERB defaults and add some more customizability

* Improve BETTER_REVERB runtime even further

* Rename some reverb variables to make more sense in context
2022-06-17 00:05:40 -05:00
axollyon
25b421aaae Added buttonReleased member in the controller struct (#421) 2022-06-17 00:48:20 -04:00
Arceveti
c938bbf407 Add missing check for 9 vert shadows in LEGACY_SHADOW_IDS ifdef (#406)
* Add missing check for 9 vert shadows in LEGACY_SHADOW_IDS ifdef

* Add legacy shadow ids to ShadowType enum
2022-06-09 15:52:10 +01:00
KazeEmanuar
a1ab7c51f0 Made raycasts not hit backfaces
* Update name of lighting engine branch in readme
2022-06-09 10:04:58 -04:00
Arceveti
4cfbc656a9 Re-implement FALL_DAMAGE_HEIGHT_SMALL usage in play_far_fall_sound (#407) 2022-05-19 17:12:28 -04:00
Arceveti
fe6aee22e1 Remove redundant snufit offset vector (fixes gcc11 compiler warning) (#395) 2022-05-02 15:36:59 -04:00
Arceveti
ad3aa42eff Fix construct_float by changing addiu to ori (#394) 2022-05-02 14:56:04 -04:00
Mr-Wiseguy
031cc24fa6 New profiler (#390)
* Implemented new lightweight CPU/RDP profiler

* Integrated new profiler into puppyprint debug and improved profiler visuals, removed existing puppyprint profiling code
2022-05-01 00:42:58 -04:00
thecozies
8d06db06e1 Added specific extracted assets to gitignore (#386)
* Added specific extracted assets to gitignore

* Add .orig files to gitignore

Co-authored-by: Arceveti <73617174+Arceveti@users.noreply.github.com>

Co-authored-by: Arceveti <73617174+Arceveti@users.noreply.github.com>
2022-04-28 17:50:27 +03:00
Arceveti
642a85fec6 Fix build warnings & errors when building non-US versions (#305)
* Fix build warnings & errors when building non-US versions

* Revert ADSR_STATE_LOOP change in adsr_update in effects.c + add fallthrough comments + clean up ifdefs

* null initialization for loadedPool in heap.c

* Better placement of null initialization of arg0 in alloc_bank_or_seq
2022-04-15 12:46:17 -04:00
Reonu
3092929822 Tie JRB dark skybox with ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS (#378)
The JRB skybox is darkened if you haven't collected JRB's first star. This behaviour should be under `ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS`
2022-04-14 18:53:11 -04:00
CrashOveride95
51f8ccfbb0 Comment out username printing during debug builds because people use their real names on their computers
I still wanna give people the option so
2022-04-10 17:37:14 -04:00
CrashOveride95
2118234f9b Remove datetime from version.c to make debug builds reproducible 2022-04-10 17:37:14 -04:00
Gregory Heskett
ac0299e5b5 Bugfix: 2x+ skyboxes given insufficient memory space (#372) 2022-03-30 18:41:22 -04:00
Fazana
f98d43c9de Puppycamera hotfixes (#367)
* fixed some embarassing typos
2022-03-27 03:20:28 -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
someone2639
bf8ea238e5 Fix some bad comment descriptions in math_util (#328) 2022-03-25 13:23:34 -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
Mr-Wiseguy
b3cb639e6e Fixed makefile issue causing audio files to be compiled with different flags the first time they're built (#318) 2022-03-18 14:15:08 -04:00
Arceveti
12595397cd Fix OBJECTS_REJ build error & warning + silhouette incompatibility (#324)
* Fix OBJECTS_REJ build error & warning

* Fix Mario rendering
2022-03-18 11:03:39 -07:00
Arceveti
65eb5a755f Reimplement 'FIX_WATER_RINGS' (#325)
* Reimplement 'FIX_WATER_RINGS'
2022-03-18 11:02:38 -07:00
Gregory Heskett
eaf9d3e4f9 Merge pull request #352 from gheskett/develop/mingw-custom-audio-fix
Fix custom audio files not compiling under MinGW (in case it ever matters)
2022-03-18 12:47:54 -05:00
Arceveti
8cfd9af4ee Uncomment the last gSPPopMatrix in render_hud_cannon_reticle (#351) 2022-03-15 17:38:38 -04:00
gheskett
3f0143ec0f Fix custom audio files not compiling under MinGW (in case it ever matters) 2022-03-13 18:57:17 -04:00
tuxlovesyou
33b2a07759 Added LOAD_MIO0_TEXTURE alias for backwards-compatibility (#349)
Sometimes tools like Fast64 will export script.c files with
LOAD_MIO0_TEXTURE() macro "calls" even when you have "YAY0" toggled
under the export menu.  To keep this from being a roadblock for
compilation, LOAD_MIO0_TEXTURE() is defined in this commit as an alias
to the LOAD_YAY0_TEXTURE() macro! :-)
2022-03-11 22:10:46 -05:00
axollyon
a0e8600776 Saves default conf on boot now, simplify condition (#321) 2022-03-08 08:49:10 -06: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
Arceveti
4265019923 Fix NON_STOP_STARS & bhvCelebrationStar related issues with Bowser keys (#299)
Fix NON_STOP_STARS issues & bhvCelebrationStar related issues with Bowser keys
2022-01-22 14:07:55 -08:00
Reonu
ad91c636ad Update name of lighting engine branch in readme
sorry for pushing to master :(((((((((((((
2022-01-22 11:11:51 +02:00
Arceveti
730f020b6d Fix formatting inconsistencies in config files (#303)
Fix formatting inconsistencies in config files
2022-01-21 20:00:25 -08:00
Arceveti
483b72e7da Fix render menu buttons functions (#300) 2022-01-19 14:41:14 -08:00
Arceveti
36d41a7f94 Renamed HackerSM64 modified assets so they don't conflict with vanilla assets (#293) 2022-01-16 21:30:06 -08:00
Arceveti
af34a81c06 Fix credits text ifdef (#301) 2022-01-16 21:29:06 -08:00
Mr-Wiseguy
3fac5ad059 Downgraded from F3DZEX2.08J to F3DZEX2.08I so that point lighting works on Jabo (#313)
* Downgraded from F3DZEX2.08J to F3DZEX2.08I so that point lighting works on Jabo

* Swapped to MM's rspboot to fix bug caused by MM's F3DZEX2
2022-01-15 01:09:34 -05:00
Arceveti
6ba4fcdba1 Set oDrawingDistance to 4500 for WF breakable walls (#304) 2022-01-14 19:38:10 -08:00
Arceveti
38c6e456f1 Fix level enum conflict with 99+ levels (#307) 2022-01-14 19:37:56 -08:00
Mr-Wiseguy
7b58f63cbc Merge pending master hotfixes into 2.0.2 #311 2022-01-14 22:25:09 -05:00
Mr-Wiseguy
475e039f8a Fixed hackersm64 using a ucode that never existed (#309) 2022-01-15 03:13:40 +00:00
Arceveti
2329786f88 Make CLEARRAM mandatory (#297) 2022-01-12 15:00:22 -08:00
Arceveti
ca9f7967c8 Merge pull request #285 from Reonu/develop/arceveti/2.0.1/mr_i_iris_clipping
Fix wrong Y offset for Mr. I iris
2022-01-11 14:01:25 -08:00
Arceveti
1b66355249 Merge pull request #284 from Reonu/develop/arceveti/2.0.1/jp_baserom_requirement
JP Baserom is no longer required for US build
2022-01-10 20:52:31 -08:00
Arceveti
0789cf118e Only extract assets from JP/EU/SH roms if they exist 2022-01-10 20:50:37 -08:00
Arceveti
1b37e627bc Merge pull request #283 from Reonu/develop/arceveti/2.0.1/no_getting_buried_compiler_warning
Fix build warning when NO_GETTING_BURIED is enabled
2022-01-10 20:31:38 -08:00
Arceveti
886d9841a8 Better Mr. I offset fix 2022-01-10 18:27:08 -08:00
Mr-Wiseguy
25951363b7 Increment version hotfix 2022-01-07 14:14:47 -05:00
Mr-Wiseguy
797f9fa223 Reverted moving the buffers to fix pool issues 2022-01-07 13:54:04 -05:00
Arceveti
3d24cdee18 Merge pull request #280 from Reonu/develop/arceveti/2.0.1/hardcoded_cos_values
Fix hardcoded cos values in sm64.h
2022-01-07 00:00:59 -08:00
Arceveti
c9523aaa0b Fix wrong Y offset for Mr. I iris 2022-01-04 23:31:39 -08:00
Arceveti
84bbd2ae14 JP Baserom is no longer required for US build 2022-01-04 22:55:19 -08:00
Arceveti
9caafc54eb Fix build warning when NO_GETTING_BURIED is enabled 2022-01-04 22:18:35 -08:00
Arceveti
feff004ef9 Fix hardcoded cos values in sm64.h 2022-01-02 18:46:31 -08:00
Reonu
9d7d56989e New lighting engine branch name in readme 2022-01-01 23:47:08 +00:00
thecozies
f3e61a31aa HackerSM64 v2.0.0
* buffers: refresh 15 and revert to base decomp

* behavior script

* color helper functions

* extended bounds

* egeo_layout

* fixed model ids

* camera conf improved

* message panel ucode small

* graph node

* level script

* mathutil updates

* mathutil updates (allow unused funcs)

* behaviors a - beta_fish

* Add librtc and fix some data declarations

* Move GRUCODE define to proper location in makefile

* Refresh 15

* extra

* Make ROM name smaller and change messages printed on build a bit

* Fix console (lol)

* Update UNF to latest master

* Make ucode load from .o's (and also fix Super3D)

* Fix crash with rumble + custom mario model

* graph node and mathutil

* removed behaviors

* Ldtob documentation

* _Putfld labeling

* area

* behavior actions

* camera

* debug updates

* bubbles

* envfx snow

* farcall helpers

* game init

* geo misc

* hud

* only check if VC on render init

* ingame menu

* revert goddard to base decomp

* insn disasm

* interaction documentation

* level geo

* level update defines

* macro special objects formatting changes

* main.h documentation

* map parser documentation & formatting

* airborne documentation

* mario actions automatic documentation

* mario actions cutscene documentation

* mario actions moving documentation and options

* mario actions object documentation and options

* mario stationary documentation

* mario submerged documentation

* mario misc documentation

* mario step: ledge grab fixes and documentation

* mario documentation

* memory.h documentation

* moving textures

* object behaviors

* object collision

* fix flamethrower bug

* object helpers

* object list processor documentation

* paintings

* platform displacement

* print / printf

* puppycam absf

* puppyprint updates and formatting changes

* rendering graph node performance optimizations

* rumble opt and doc

* hqvm back to ultrasm64

* save file documentation and unlock defines

* s2d engine

* reset various files to ultrasm64

* file select

* intro geo documentation

* screen transition documentation

* segment2.h

* shadow overhaul

* skybox refactor

* sound init: clean up define usage + documentation

* spawn object optimizations and documentation

* spawn sound cleanup

* sram to ultrasm64

* star select cleanup

* title screen cleanup

* dialogs / text

* rename stomp smoke

* stomp smoke -> small water splash

* updated README

* compilation flags

* optimized file positions + support function/data sections

* surface collision performance improvements

* surface load optimizations

* camera conf documentation

* Allow easier command for opening puppyprint debug

* Rearranged framebuffers & fixed puppyprint console printing

* Fix shadow scaling and shifting

* Fix SILHOUETTE, OBJECTS_REJ, and ucode loading, also clean up render phase system a bit.

* Fixed build with BETTER_HANGING off

* Clean up OBJECTS_REJ ifdefs

* Fix duplicate comment & graph render layers/flags bitmask

* Fixed build with BETTER_HANGING off

* Fix Fast64 importing by reverting sSegmentTable change

* Readded missing functions that caused build errors with Mario head enabled

* Fixed clang compilation issues

* Add INTER mode for geo_update_layer_transparency

* Fix build warnings

* bugfix: miscalculation in obj_turn_toward_object

* Some puppytech fixes

* Further Puppycamera fixes

* Fix BUGFIX_DIALOG_TIME_STOP

Fixes #136

* Fix sliding platform bparams

* Add LEGACY_SHADOW_IDS define for Fast64 compatibility

* Apply suggested changes

* Better find_in_bounds_yaw_wdw_bob_thi ifdef

* Fix build warnings for unused functions

* Fixed stale reference bug from obj_mark_for_deletion change

* Fixed incorrect digit for 100s #145

* Change groundpound-fix define and functionality to just disable bonking

* Fixed puppyroll #134

* Adjust height value for terrain angle to kick in

* fixed hi score flashing

* Remove menudata backup (#131)

Not considered important enough to keep

* Fix fread() build warning

* Add COURSE_NUM_TO_INDEX to save_file_get_star_flags check in bhv_unagi_init

* Fix approach_s16 return value

* Use boolean defines for oCapDoScaleVertically

* Make the door lock a part of the key door model to eliminate z-fighting, also reduce z fighting on numbered doors with AUTO_LOD enabled.

* Move flames to LAYER_TRANSPARENT_INTER

* Resolved some compiler warnings and added FALL_THROUGH define (#168)

* Address some more compiler warnings with different define toggles

* Remove unnecessary fallthrough attribute

* fixed geo_process_billboard floating point exception

* Allow water to face any direction

* Initialize focOffset so that BBH doesn't crash

* Removed superfluous RDP commands when switching microcodes which would override scissor

* Set OBJ_FLAG_DONT_CALC_COLL_DIST on bhvUkikiCage

* Fix rumble build

* Fixed UNLOCK_FPS strobing

* Update src/game/object_helpers.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Update src/game/object_helpers.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Fix LEGACY_SHADOW_IDS id conflict

* Use the vanilla default value for rotating fire bars if bparam2 is 0

* START_LEVEL safeguard

* Fix some drawing distance issues caused by AUTO_COLLISION_DISTANCE

* Fix rumble build

* Fixed spline poll code using the wrong values for keyframes

* Update readme with better credits

Better credits for individual contributors

* add arthur

* added falco and moose

* add fazana

* le funny typo

* added S2DEX engine to credits

* silhouette + axo + ratio

* remove specific callouts + add auto col distance

* Update data/behavior_data.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Update data/behavior_data.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Update data/behavior_data.c

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>

* Revert formatting changes to match vanilla decomp

* Re-implement Y buffer for find_ceil

* Re-implement POWER_STARS_HEAL for normal Power Stars

* Start level comment & exit course comment/collapse

* utilize reonucam technique for FAST_VERTICAL_CAMERA_MOVEMENT

* Fix "MAX_REFERENCED_WALLS" typo

* Allow stop_and_set_height_to_floor to work at any height if Mario is teleporting (#213)

* Revert stop_and_set_height_to_floor to vanilla

Fixes #208

* Fixed sAudioEnabled so that it disables audio CPU processing as well

* Fixed puppyprint debug RDP us calculations

* Renamed sAudioEnabled to gAudioEnabled

* Replaced mtxf_to_mtx_asm with an equivalent implementation that supports WORLD_SCALE

* Moved extended bounds and world scale configuration to a new config_world.h file

* Default all objects to non-rej (#227)

Fixes #221 (Default all objects to non-rej)

* Fix #221

* Fix VISUAL_DEBUG breaking/crashing when OBJECTS_REJ is disabled (#211)

* Fix VISUAL_DEBUG breaking/crashing when OBJECTS_REJ is disabled

* Change vtl decrement in visual_surface_display from 6 to 3

Fixes #207

* Make area in SL igloo wider to prevent a softlock (#233)

Fixes #210

* Fix coin formation coins being deleted if they spawn in the middle of a floor, also fix TTM slide coin position (#232)

Fixes #201

* Make UNLOCK_ALL apply to more things

* Fix wrong ifdef/ifndef in bhv_invisible_objects_under_bridge_init

* Change chain chomp load/unload distances depending on number of segments (#237)

Fixes #192

* added WATER_PLUNGE_UPWARP define

* Add reonucam patch (#239)

* added reonucam patch
Fixes #218

* Fix how shadows handle water/transparency/height (#228)

* Fix how shadows handle water/transparency/height

* Change shadow check for flying carpets from a level specific check to a oPlatformOnTrackType check

Fixes #179

* added reonucam credit

* delete unnecesary patches

* Apply suggested changes

* murdered more patches

* UNLOCK_ALL unlocks the cap boxes

* UNLOCK_ALL unlocks cap boxes (slightly more epic edition)

* revert ceil buffer

* Renamed HD_INTRO_TEXTURES define, separated intro floombas

* prevent double definition of floombas

* actually prevent floomba redefinition

* Develop/refactor  default defines (#242)

* Changed default config options

* Added build dir to includePaths for pngs

* disable NO_SLEEP by default

* Disable puppyprint by default

Sorry fazana 😔

* fix typos

* add comment about BETTER_REVERB console perf

* disable blue coin switch retry by default

* Update config_audio.h

Co-authored-by: Reonu <danileon95@gmail.com>
Co-authored-by: Mr-Wiseguy <68165316+Mr-Wiseguy@users.noreply.github.com>

* revert air step line to vanilla to fix bitfs scaling platform issue (#247)

Fixes #200

* Fix stuttering on thin slopes (#248)

* Fix stuttering on thin slopes

* Revert vec3f_find_ceil calls to vanilla

* Rename vec3f_find_ceil to find_mario_ceil

* Update src/engine/surface_collision.h

Fixes #249

* Swap static and dynamic surface checks back to vanilla order (#253)

* Swap static and dynamic surface checks back to vanilla order

* re-enable DISABLE_ALL config

Fixes #251 #252

* Fixed save and quitting while in widescreen (#257)

* Fixed save and quitting while in widescreen

* use define for the level

* all my homies hate ifdefs

* skip wall offsets < 0 (#255)

Fixes #255

* #264: Document non-stop stars' issues (#267)

* #264: Document non-stop stars' issues

* Update include/config/config_game.h

* nonstop vanilla comment

* derive margin_radius from radius after capping at 200 (#266)

Fixes #259

* Config cleanup/refactor (#269)

* Moved puppyprint define to graphics / rearranged some debug defines for ease of access

* Moved compatibility safeguards to config_safeguards.h

* spacing and comment formatting

* #272 Move GFX_POOL_SIZE to config_graphics.h

* disable EASIER_DIALOG_TRIGGER by default

* prevent redefining warnings

* small ifdef typo

* changed ifndef to undefs

Fixes #262
Fixes #272

* Improved movement config documentation related to turning around (#271)

Fixes #270

* rename CUSTOM_DEBUG, add comments (#275)

* Update README.md (#277)

* v2.0.0

Co-authored-by: CrashOveride95 <crashoveride953@gmail.com>
Co-authored-by: Arceveti <73617174+Arceveti@users.noreply.github.com>
Co-authored-by: n64 <n64>
Co-authored-by: Fazana <52551480+FazanaJ@users.noreply.github.com>
Co-authored-by: Mr-Wiseguy <mrwiseguyromhacking@gmail.com>
Co-authored-by: aglab2 <aglab3@gmail.com>
Co-authored-by: gheskett <gheskett@gmail.com>
Co-authored-by: Reonu <danileon95@gmail.com>
Co-authored-by: Axollyon <20480418+Axollyon@users.noreply.github.com>
Co-authored-by: Mr-Wiseguy <68165316+Mr-Wiseguy@users.noreply.github.com>
2021-12-30 16:57:51 +00:00
Reonu
3a558060ab Add Wiseguy as a code owner
*flexes pushing to master privileges*
2021-12-19 19:11:17 +00:00
Gregory Heskett
79db39b06b Merge pull request #104 from PyroJay4/master
NOW its fixed :)
2021-11-16 18:25:29 -05:00
PyroJay4
2e619e5aff Add files via upload 2021-11-16 18:10:44 -05:00
PyroJay4
fa9ff4f9d5 Delete coin_tilt_right.ia8.png 2021-11-16 18:10:27 -05:00
PyroJay4
0aa9d73e8d Delete coin_tilt_left.ia8.png 2021-11-16 18:10:23 -05:00
PyroJay4
be9319e5c4 Delete coin_side.ia8.png 2021-11-16 18:10:19 -05:00
PyroJay4
f3e6641029 Delete coin_front.ia8.png 2021-11-16 18:10:14 -05:00
thecozies
23d34210dd Merge pull request #103 from PyroJay4/master
fix these to have outlines (sorry) (hopefully these will work now)
2021-11-15 20:02:52 -06:00
PyroJay4
9d9ac8eea1 Add files via upload 2021-11-15 20:39:16 -05:00
PyroJay4
734982d608 Delete coin_tilt_right.ia8.png 2021-11-15 20:38:55 -05:00
PyroJay4
1fee018a7f Delete coin_front.ia8.png 2021-11-15 20:38:44 -05:00
Reonu
9601207aa4 Merge pull request #98 from PyroJay4/patch-10
Update spawn_star.inc.c
2021-11-03 17:19:49 +02:00
PyroJay4
d1f6aa63b0 Update spawn_star.inc.c
ahahahahahahahahahahahahahahahahahahaha
2021-11-02 20:17:04 -04:00
Reonu
8147d08727 Merge pull request #65 from Reonu/nightly
Merge Nightly (ay lmao)
2021-10-08 02:24:02 +03:00
thecozies
a20e9210f9 Merge pull request #72 from Reonu/fix_geo_bone
Fixed geo_bone
2021-10-06 13:51:47 -05:00
thecozies
8601d3f516 Merge pull request #71 from Reonu/revert_execute_mario_action_for_merge_nightly
Revert execute_mario_action
2021-10-06 10:28:26 -05:00
thecozies
d2590352af Fixed geo_bone 2021-10-06 10:24:07 -05:00
Reonu
a3c233004f dpad down in aglabcam snaps to nearest axis instead of always going left 2021-10-05 21:55:24 +03:00
Reonu
2879456dbd Added Made with HackerSM64 msg (thanks to PyroJay) 2021-10-05 21:34:34 +03:00
Arceveti
708980de21 Revert execute_mario_action 2021-10-05 10:24:37 -07:00
Arceveti
24bbeaabf1 Merge pull request #70 from Reonu/revert_levelscript_changes
Revert "Name some HMC geolayouts + some demo fixes"
2021-10-05 10:12:52 -07:00
thecozies
fec149b238 Revert "Name some HMC geolayouts + some demo fixes"
This reverts commit 72be706ec7.
2021-10-05 09:23:52 -05:00
thecozies
febc16cacb Merge pull request #69 from Reonu/merge_nightly_fixes
Fixes for merging nightly
2021-10-05 06:47:17 -05:00
Arceveti
da285a1457 Fix pokey distance 2021-10-04 12:14:02 -07:00
Fazana
77bf073449 Make layer 0 zex render first 2021-10-04 18:37:19 +01:00
Fazana
ea32e1ea70 Moved hitbox visualisation into its own func
Saves around 500us in the graph
2021-10-03 21:05:46 +01:00
Arceveti
9721960d80 Fixes for merging nightly 2021-10-03 12:56:45 -07:00
Arceveti
d76ca3ac71 Some requested changes + fix build 2021-10-03 11:37:44 -07:00
someone2639
51bced5d3c dont need this line either [math.s] 2021-10-03 13:24:07 -05:00
someone2639
2d7aa1e514 changed div to mul, it always runs now 2021-10-03 13:24:07 -05:00
Fazana
ab67e9be4d gWorldScalen't 2021-10-03 13:24:05 -05:00
someone2639
3cc9fe8633 let the scheduler handle the bc1f 2021-10-03 13:21:58 -05:00
someone2639
a4f6151364 i hate the c preprocessor 2021-10-03 13:21:58 -05:00
someone2639
3887ac46e0 big brain optimization 2021-10-03 13:21:58 -05:00
someone2639
697492d1e1 add some logic for gWorldScale; only div on scales higher than 1 2021-10-03 13:21:58 -05:00
someone2639
f4ffcc3ea1 make this asm file a lot easier to read (not documented though) 2021-10-03 13:21:58 -05:00
Reonu
5f744d94ad Merge pull request #68 from Reonu/revert_plus_plus
Revert "Some more cleanup"
2021-10-03 19:02:18 +03:00
thecozies
1e1aa3754f Revert "Some more cleanup"
This reverts commit ea0fd25a73.
2021-10-03 10:34:42 -05:00
Fazana
6052ed8cdf Revert some camera "optimisations" 2021-10-03 14:56:16 +01:00
Fazana
6dde1e9026 semi colon 2021-10-01 17:58:39 +01:00
Reonu
2daf766901 fixed camera memes 2021-10-01 16:57:45 +03:00
Fazana
39318ec6a2 Further makerule tweaks 2021-10-01 11:32:58 +01:00
Fazana
5206fdbe2e Revert macros struct funnies
sausage
2021-10-01 11:02:29 +01:00
Arceveti
50941e0559 math_util.c optimizations by Kaze Emanuar 2021-09-30 15:42:36 -07:00
Arceveti
df14e88d37 Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into nightly 2021-09-30 15:09:31 -07:00
Arceveti
ff43340b0b Configurable number of segments for Chain Chomp, Pokey, and Wiggler 2021-09-30 15:09:01 -07:00
Arceveti
3a3637723d macro_special_objects.c improvements 2021-09-30 15:07:18 -07:00
Fazana
02aa70559a Further make flag tweaks
Performance go wheeee
2021-09-30 23:04:43 +01:00
Arceveti
362a46479e spawn_star.inc.c improvements 2021-09-30 14:43:10 -07:00
Arceveti
9e2726606b fix funny typo 2021-09-30 14:04:09 -07:00
Arceveti
0d427d3f25 Initialize objListIndex 2021-09-30 12:52:48 -07:00
Arceveti
60392fb4ef Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into nightly 2021-09-30 12:37:39 -07:00
Arceveti
4f3e84c2ad Update play_mode_change_area 2021-09-30 12:37:25 -07:00
Arceveti
83e727400e Update src/game/behaviors/king_bobomb.inc.c
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2021-09-30 12:35:46 -07:00
Fazana
a8fd8c5172 fix memory.c and add ucode_small flag 2021-09-30 15:24:44 +01:00
Fazana
d79dd5a51f Make collision build with Ofast
😔

nothing makes sense anymore.
2021-09-30 12:17:54 +01:00
Fazana
4448273b14 Move raycasts back to math_util 2021-09-30 10:40:37 +01:00
Fazana
be79ded91e Fix build error with debug_box.c 2021-09-30 10:31:31 +01:00
Arceveti
fdd81f5e14 Fix rotate_in_xz 2021-09-30 00:21:58 -07:00
Arceveti
cfa6e6dc9f Fix squishy doors on LLE 2021-09-29 23:43:14 -07:00
Arceveti
b8804bba87 Fix teleporting on poles 2021-09-29 21:25:36 -07:00
Arceveti
4fe6b323e7 Automatically calculate SURFACE_POOL_SIZE and SURFACE_NODE_POOL_SIZE 2021-09-29 16:38:36 -07:00
Arceveti
d1ed598480 Whoops, lowercase absf already exists 2021-09-29 16:37:20 -07:00
Arceveti
ef4ffdc71f #define floorAngle floorYaw for compatibility 2021-09-29 16:32:23 -07:00
Arceveti
824056390f Lowercase abs and signum_positive defines 2021-09-29 16:22:34 -07:00
Arceveti
50d180134f ok 2021-09-29 15:18:28 -07:00
Arceveti
3bfb394b70 Fix compiler warnings 2021-09-29 13:28:49 -07:00
Arceveti
a8afa914cd some surface_terrains.h defines 2021-09-29 12:59:49 -07:00
Arceveti
9b4b9d9c03 Add ENABLE_DEBUG_FREE_MOVE + improve debug free move controls 2021-09-29 12:35:46 -07:00
Arceveti
f68c63703e Improve debug level select controls 2021-09-29 12:00:37 -07:00
Arceveti
911246541e Merge https://github.com/CrashOveride95/ultrasm64 into nightly 2021-09-29 11:51:43 -07:00
Arceveti
66932d84a4 Add DISABLE_LEVEL_SPECIFIC_CHECKS 2021-09-29 11:30:07 -07:00
Arceveti
c203e8a17d Add find_room_floor 2021-09-29 10:35:27 -07:00
Arceveti
c9d48d3c43 Fix BBH crash 2021-09-29 10:19:34 -07:00
Arceveti
f10955b785 Move some structs/data into proper behavior files 2021-09-29 10:10:14 -07:00
Fazana
510e5c137f Revert some changes
Something amongst these remaining changes is a substantial decrease in game performance. I've taken out stuff that's confirmed not to, whilst something left is part of the problem.
2021-09-29 11:59:19 +01:00
Arceveti
67ee6b395b callContext arg name in geo functions 2021-09-29 00:09:11 -07:00
Arceveti
565af70485 Fix alloc_display_list in intro_draw_face 2021-09-28 23:55:49 -07:00
Arceveti
f8a9eaea4b Fix GRAPH_RENDER_FLAGS_SIZE + Add OBJ_FLAG_OCCLUDE_SILHOUETTE + name Bowser 1 painting dl's 2021-09-28 23:43:44 -07:00
Arceveti
3af946e2bd Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into nightly 2021-09-28 22:43:48 -07:00
Arceveti
8e398008d8 Optimize out a bunch of sqrtf 2021-09-28 22:43:29 -07:00
Arceveti
28e8d99707 Some optimizations + cleanup 2021-09-28 21:13:26 -07:00
gheskett
705d44e034 Fix WDW cannon bob-omb placement 2021-09-29 00:00:00 -04:00
Arceveti
868dd8f97b Some small fixes + cleanup 2021-09-28 19:08:34 -07:00
Arceveti
82edc20696 Fix insn_disasm build warnings 2021-09-28 17:35:12 -07:00
Arceveti
4adf87f622 Some cleanup/fixes 2021-09-28 17:33:18 -07:00
Arceveti
4ec50b8123 #define o gCurrentObject in object_list_processor.h 2021-09-28 15:42:41 -07:00
Fazana
51f7679208 pragma'd 2021-09-28 22:57:37 +01:00
Arceveti
f03d21fd04 Fix png formats 2021-09-28 14:36:54 -07:00
Arceveti
6e2c13459b Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into nightly 2021-09-28 14:28:22 -07:00
Arceveti
65e8369d1c Puppyprint debug font improvements 2021-09-28 14:28:14 -07:00
Fazana
beee3c0562 Puppyprint debugging now supports nonstandard resolutions
Isn't that nice?
2021-09-28 22:26:14 +01:00
Arceveti
04b6089d72 Fix puppyprint font kerning 2021-09-28 14:14:48 -07:00
Arceveti
5b43bc3b03 Fix typo 2021-09-28 14:04:26 -07:00
Arceveti
baceb79c89 Dirt particle & cartoon star particle dl names 2021-09-28 14:02:13 -07:00
Arceveti
3e8aa7fada Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into nightly 2021-09-28 13:57:00 -07:00
Arceveti
81a64e59d7 Fix held objects + some cleanup 2021-09-28 13:54:34 -07:00
Fazana
cefd4b62ab Held object fix 2021-09-28 21:52:00 +01:00
Arceveti
79d7b7e4b9 Add COS defines 2021-09-28 12:36:26 -07:00
Arceveti
92ae326cf6 Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into nightly 2021-09-28 12:18:04 -07:00
Arceveti
c89858ebd2 Make obj_set_opacity_from_cam_dist its own function 2021-09-28 12:17:53 -07:00
Fazana
6bad22d98c Specific cflags 2021-09-28 18:44:57 +01:00
Fazana
501a0caec0 Update Makefile 2021-09-28 18:03:24 +01:00
Fazana
e562c6543b Remove profiler.c
It's in its own commit, so if you for some reason disagree with this, reverting it is super easy.
2021-09-28 17:52:42 +01:00
Fazana
4ba2285969 Graph optimisations
that actually work now
2021-09-28 17:39:49 +01:00
Fazana
997d481e3a Update rendering_graph_node.c 2021-09-28 13:50:40 +01:00
Fazana
102e49b5e7 Puppytext font support + visual debug colour tweak 2021-09-28 12:41:27 +01:00
Arceveti
5b198635ad Improve puppyprint font a bit more 2021-09-27 22:33:00 -07:00
Arceveti
ec31997ba0 Improved puppyprint font 2021-09-27 21:39:45 -07:00
Arceveti
56fa02ec87 COND_BIT + fix transparent tree layer + asymptitic turn 2021-09-27 18:03:06 -07:00
Arceveti
87cdbc8ceb Merge https://github.com/Reonu/HackerSM64 into nightly 2021-09-27 16:43:42 -07:00
Arceveti
62cc178545 Object constants and new typedefs 2021-09-27 16:41:43 -07:00
Reonu
7c8a876890 Merge pull request #64 from thecozies/fix_broken_water
fixed find_water_floor height variable
2021-09-28 02:07:18 +03:00
thecozies
2ac47bd4f1 fixed find_water_floor height variable 2021-09-27 17:56:28 -05:00
Arceveti
1e81412c4b Combine shadow flags into gShadowFlags 2021-09-27 15:45:28 -07:00
Arceveti
a5c1aef42b Convert some doubles to floats + remove some unused Goddard functions 2021-09-27 15:01:44 -07:00
Arceveti
3f4728e337 Configurable wall kick angle in degrees 2021-09-27 14:00:10 -07:00
Arceveti
ae91a98422 Merge branch 'nightly' of https://github.com/Reonu/HackerSM64 into nightly 2021-09-27 13:36:05 -07:00
Arceveti
ea0fd25a73 Some more cleanup 2021-09-27 13:35:55 -07:00
Fazana
f0bd8a1fa5 I hate github I hate github I hate github I hate github I hate github I hate github 2021-09-27 21:21:20 +01:00
Fazana
d0a9834f39 E 2021-09-27 21:17:10 +01:00
Arceveti
6155b6416a Some cleanup & fixes 2021-09-27 12:28:47 -07:00
Arceveti
e71ba07b22 Add some fields to MarioState 2021-09-27 10:21:25 -07:00
Fazana
abb6fd286d Farclip failsafe 2021-09-27 17:21:23 +01:00
Fazana
c69a7e1233 shadow 2021-09-27 14:14:23 +01:00
Fazana
39f92391f8 Matrix optimisation
Courtesy of Kaze, creator of all existing romhacks
2021-09-27 13:16:04 +01:00
Reonu
04702ff466 Create CODEOWNERS 2021-09-27 13:49:30 +03:00
Arceveti
00ae43cc99 Get world scale by distance to origin on one axis 2021-09-27 02:32:41 -07:00
Arceveti
c3a68d48a7 Some refactoring 2021-09-26 20:47:23 -07:00
Arceveti
7da55b1456 Fix build 2021-09-26 17:36:12 -07:00
Arceveti
13d7d2caff Whoops left debug level select on 2021-09-26 17:13:33 -07:00
Arceveti
76d049d8ee Merge pull request #63 from someone2639/master
Crash Screen has disasm view now
2021-09-26 17:10:53 -07:00
Arceveti
72be706ec7 Name some HMC geolayouts + some demo fixes 2021-09-26 17:10:10 -07:00
Arceveti
be8a27f79f Some optimizations 2021-09-26 16:43:55 -07:00
someone2639
72d03f27c0 Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-09-26 18:02:52 -04:00
Arceveti
419c88d615 OBJ_FLAG_UCODE_LARGE for JRB rocks 2021-09-26 14:52:55 -07:00
Arceveti
1110c281bb Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-09-26 14:51:33 -07:00
Arceveti
833cc9082c Add breath meter 2021-09-26 14:49:21 -07:00
someone2639
2d729ea42f idk what i changed but it should be ready now 2021-09-26 16:01:08 -04:00
Arceveti
f0e4dd964b Add option to display puppyprint debug values as cycles 2021-09-26 12:33:02 -07:00
Fazana
f32f2d3997 Clean up layer definitions
Turn ifdef hell into enum heaven 😎
2021-09-26 20:15:07 +01:00
Arceveti
499fc33d7e Fix spindrift actor model file 2021-09-26 12:02:26 -07:00
Arceveti
25e74c3e0a Revert "Replace header ifdef guards with #pragma once"
This reverts commit 3a6c577a41.
2021-09-26 11:34:20 -07:00
Arceveti
df165f80c9 Add BETTER_HANGING 2021-09-26 11:21:48 -07:00
Arceveti
aa2ebba8dc Move raycasting functions to surface_collision 2021-09-26 10:32:42 -07:00
Arceveti
4147082647 Optimize OBJ_OPACITY_BY_CAM_DIST + fix puppycam build warnings 2021-09-25 22:46:28 -07:00
Arceveti
cafd21dd76 Add OBJ_FLAG_OPACITY_FROM_CAMERA_DIST 2021-09-25 22:31:10 -07:00
Arceveti
159e137c84 Multiple options for turn radius fix 2021-09-25 22:10:28 -07:00
Arceveti
3d6725bfa1 the funny vec3f_copy optimization 2021-09-25 18:33:35 -07:00
Arceveti
bf3828b724 Make some particles unimportant objects 2021-09-25 12:31:37 -07:00
Arceveti
b9e8fe1b10 Optimize floor alignment 2021-09-25 12:26:14 -07:00
Arceveti
4310b698a7 Blue coin switch allows retries for remaining coins 2021-09-25 11:45:19 -07:00
Arceveti
c93dfc6226 Koopa shell boxes respawn 2021-09-25 11:28:13 -07:00
Arceveti
3a6c577a41 Replace header ifdef guards with #pragma once 2021-09-25 11:08:11 -07:00
Arceveti
0649427337 Some small fixes 2021-09-25 10:12:05 -07:00
Arceveti
a39b382db6 Sliding fixes 2021-09-25 10:00:59 -07:00
Arceveti
6d152e0ffb Remove duplicate function 2021-09-25 09:36:25 -07:00
Arceveti
759f6a5555 Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-09-25 09:31:56 -07:00
Arceveti
332d22489f Remove a bunch of unused/messy stuff 2021-09-25 09:31:45 -07:00
Reonu
50fa3a7b2e Turn off FIX_GROUND_TURN_RADIUS by default 2021-09-25 15:25:32 +03:00
Arceveti
05db3dbae2 Add approach_angle 2021-09-24 18:26:36 -07:00
Arceveti
cb7d58fff2 Fix puppyprint build warnings 2021-09-24 16:37:47 -07:00
Arceveti
f5c2794555 Fix silhouette having gaps at higher resolutions 2021-09-24 14:47:53 -07:00
Arceveti
4b5aab672a Fix FIX_GROUND_TURN_RADIUS 2021-09-24 14:45:01 -07:00
Arceveti
12c362ac86 Clean up some ifdefs and config.h 2021-09-24 12:17:18 -07:00
Fazana
923db21615 math util tweaks
Will use the optimal mtxf_to_mtx func based on what's needed, has a small quirk where you notice the fog switching but that's an issue with worldscale rather than this.
2021-09-24 19:02:57 +01:00
Fazana
1ad8fc51e1 Update script.c 2021-09-24 17:28:02 +01:00
CowQuack
517e43fda5 Merge pull request #62 from Reonu/skybox
Fixed save and quit with no mario head define
2021-09-24 11:29:58 -04:00
Mineqwerty
bab6cb3435 Fixed save and quit with no mario head define 2021-09-24 11:27:29 -04:00
Arceveti
304ee502c8 Some small optimizations 2021-09-23 18:56:14 -07:00
Arceveti
ecd56464cd Fix intro sound 2021-09-23 18:02:28 -07:00
Arceveti
6fcbb42632 Name warp-related defines and add option to disable intro demo 2021-09-23 17:37:05 -07:00
Arceveti
9b59eb0256 Code cleanup 2021-09-23 13:37:03 -07:00
Arceveti
8ad773a7eb Sort surfaces by upperY instrad of the first vertex 2021-09-23 12:59:06 -07:00
Arceveti
426d8ebae3 Fix side flip ground pound visual bug 2021-09-22 21:38:12 -07:00
Arceveti
23f29e64fc Fix burn smoke clearing G_CULL_BACK and not resetting it 2021-09-22 18:16:37 -07:00
Arceveti
c9373256c4 Fix vec3f_normalize 2021-09-22 18:14:19 -07:00
Arceveti
fba9f665cd Some small fixes 2021-09-22 18:03:54 -07:00
Arceveti
5beba37d0e More model fixes 2021-09-22 17:51:59 -07:00
Arceveti
d2c1564eed Make burn smoke texture fix optional 2021-09-22 17:40:55 -07:00
Arceveti
3a5d392b92 Fix some geolayouts with too many open/close nodes 2021-09-22 17:39:05 -07:00
Arceveti
d70c34f1d0 Fix some math_util functions returning the address of local variables 2021-09-22 17:34:25 -07:00
Arceveti
e1c0832a9d Paintings occlude silhouette 2021-09-22 17:16:49 -07:00
Arceveti
a5588326c4 Name active flags 2021-09-22 17:09:31 -07:00
Arceveti
e7fb56dc50 Add ability to increase the amount of graph node flags 2021-09-22 16:58:21 -07:00
Arceveti
49571ff93b Particles occlude silhouette 2021-09-22 12:04:35 -07:00
Arceveti
5afa901fcf Clean up AVOID_UB ifdefs 2021-09-22 11:35:17 -07:00
Arceveti
f40a1978d9 Remove BAD_RETURN 2021-09-22 11:21:23 -07:00
Arceveti
9e4a569cf6 Add GRAPH_NODE_TYPES_MASK and MODEL_STATE_MASK 2021-09-22 11:19:46 -07:00
Arceveti
78864302f7 OBJ_FLAG_UCODE_LARGE for breakable boxes and LLL tilting inverted pyramid 2021-09-22 11:00:10 -07:00
Fazana
164650b82a Vanilla ending credits bugfixes
The black border's a bit hacky because I don't remember where the original game did it lol, so ideally write over it with the original implementation if possible.
2021-09-22 17:33:34 +01:00
Arceveti
93000a11d4 OBJ_FLAG_UCODE_LARGE for thwomps and tilting inverted pyramid 2021-09-22 00:02:04 -07:00
Arceveti
2de268c45f Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-09-21 15:43:37 -07:00
Arceveti
55afd6d0dc Some more names 2021-09-21 15:43:29 -07:00
Fazana
2e13bd6635 Puppyprint CPU Profiler now disregards itself 2021-09-21 21:49:13 +01:00
Arceveti
39586c6cde Name object fields 2021-09-21 13:38:29 -07:00
Arceveti
d766e5448d Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-09-21 12:26:12 -07:00
Arceveti
59d609fb07 Fix silhouette 2021-09-21 12:25:56 -07:00
Fazana
ab630e5be1 Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-09-21 20:03:55 +01:00
Fazana
53e28abb95 Analogue Camera fixes for classic input 2021-09-21 20:03:39 +01:00
Arceveti
bd9165686d Clean up surface_collision a bit 2021-09-21 11:59:54 -07:00
Fazana
fba2fb8b27 Crash screen visual polish 2021-09-21 19:13:48 +01:00
Arceveti
efed7a1801 Fix castle lobby key doors 2021-09-21 11:09:13 -07:00
Arceveti
fe9d1f93b1 More OBJ_FLAG_UCODE_LARGE usage + fix Mr. I scaling 2021-09-20 23:17:32 -07:00
Arceveti
2badfe6ce0 OBJ_FLAG_UCODE_LARGE for HMC platform 2021-09-20 20:09:38 -07:00
Arceveti
0d2daf0776 A few more names + cleanup find_wall_collisions_from_list a bit 2021-09-20 18:29:58 -07:00
Arceveti
022679b8b7 Small fix 2021-09-20 17:25:24 -07:00
Arceveti
eedca61a73 Some vector macros in math_util.h 2021-09-20 17:10:08 -07:00
Arceveti
6fadffac53 OBJ_FLAG_UCODE_LARGE for a few more objects 2021-09-20 16:58:44 -07:00
Arceveti
f64c7a9542 Name some more stuff 2021-09-20 16:54:52 -07:00
Arceveti
bf0acb6cbe Name a bunch of stuff 2021-09-20 16:25:58 -07:00
Arceveti
866f0f5de5 Fix build warnings 2021-09-20 15:09:56 -07:00
Arceveti
05606c0ada Fix Mr. I billboarding 2021-09-20 15:06:32 -07:00
someone2639
dddd517e68 Merge pull request #59 from someone2639/master
Crash Screen: Report Name of Crashed Function + Stacktrace
2021-09-20 17:18:57 -04:00
someone2639
e80150657e allow debug map stacktrace to be turned off 2021-09-20 17:17:09 -04:00
someone2639
f9fa79ff7d Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-09-20 16:12:18 -04:00
Arceveti
fcc73fde9f Fix typo 2021-09-20 12:10:14 -07:00
Fazana
a648505f6b Geo bones 2021-09-20 16:40:02 +01:00
CrashOveride95
f8ab64a71a Merge pull request #23 from thecozies/new_GEO_BONE
Added GEO_BONE geolayout command
2021-09-20 11:11:12 -04:00
thecozies
808106ae2f Added GEO_BONE geolayout command 2021-09-20 10:06:33 -05:00
someone2639
fa2d2a8052 fix crash screen behavior when stacktrace is theoretically disabled 2021-09-19 12:39:10 -04:00
someone2639
c97acfb2d8 add 2 more stacktrace entries to fill the page 2021-09-19 12:35:48 -04:00
someone2639
a57acd8d5a Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-09-19 12:29:41 -04:00
someone2639
078ee5f595 add 3rd crashscreen page that prints stack trace 2021-09-19 12:29:23 -04:00
someone2639
8806460e72 add stack traversal 2021-09-19 12:29:05 -04:00
someone2639
f8dbc176f4 add markers for text end for stacktrace 2021-09-19 12:28:49 -04:00
Fazana
7c4eaf8002 Update heap.c 2021-09-19 16:48:09 +01:00
someone2639
9ada93c1e5 merged master crash screen changes 2021-09-19 11:30:22 -04:00
Fazana
cd34c5fff7 Crash screen now has multiple pages
Can be moved with L and R
2021-09-19 13:57:13 +01:00
Arceveti
de0d09500c More OBJ_FLAG_UCODE_LARGE usage 2021-09-19 00:29:16 -07:00
someone2639
4afc5a6749 allow a vector for debug stacktrace to be turned off in the makefile 2021-09-19 00:42:06 -04:00
someone2639
9c3ee2be96 remove unnecessary bss 2021-09-19 00:34:21 -04:00
someone2639
cb7357531a allow map debug to be turned off 2021-09-19 00:33:39 -04:00
someone2639
d045f95b5c import map packer script; remove debug print 2021-09-18 23:56:00 -04:00
someone2639
ee3fd0b81d map parsing code added 2021-09-18 23:55:48 -04:00
someone2639
3d570ffe44 add map bin tracker 2021-09-18 23:55:37 -04:00
someone2639
25d6ba568d add map parser init 2021-09-18 23:55:18 -04:00
someone2639
612999f1b1 import my makefile rules; put map data at the end of the rom 2021-09-18 23:54:35 -04:00
Arceveti
1d052879b8 More objects use OBJ_FLAG_UCODE_LARGE 2021-09-18 19:31:25 -07:00
someone2639
453136149c print denorms 2021-09-18 21:56:17 -04:00
Arceveti
c0fa190bb9 Add ground turn circle fix 2021-09-18 18:55:08 -07:00
Arceveti
e57f1dc59a Add Silhouette 2021-09-18 15:55:57 -07:00
Arceveti
d019fcdbbe Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-09-18 15:03:04 -07:00
Arceveti
67a07355da Fix environment mapping 2021-09-18 15:02:53 -07:00
Fazana
a500661b0b puppycam default fix lol 2021-09-18 16:52:31 +01:00
Arceveti
b888c329d7 Merge https://github.com/CrashOveride95/ultrasm64 2021-09-17 19:56:54 -07:00
Arceveti
2927db262c Add FramePerfection's Better Wall Collision with rounded corners 2021-09-17 19:26:13 -07:00
Arceveti
97f6fa6959 Remove redundant function/struct 2021-09-17 18:22:29 -07:00
Arceveti
38fdbb6ec3 Add F3DEX2_Rej 2021-09-17 17:32:11 -07:00
CrashOveride95
c54952e9fc add F3DZEX xbus defines 2021-09-17 18:56:59 -04:00
CrashOveride95
6abfd9ec80 Add XBUS ucodes 2021-09-17 18:55:13 -04:00
CrashOveride95
c8c00e81ad Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-09-17 17:54:28 -04:00
CrashOveride95
a6c001d42c Remove Fast3D 2021-09-17 17:53:53 -04:00
Fazana
55017da993 Puppycam Freeview improvements 2021-09-17 20:10:01 +01:00
Fazana
f190671ade RIGHT FUNCTION STUPID 2021-09-17 17:45:43 +01:00
Fazana
0b3c98557c Surface iteration optimisation
Skips over surfaces that will literally never intentionally come into play.
2021-09-17 17:35:33 +01:00
Fazana
02a6bf0f95 debug box flag update for puppycam and puppylights 2021-09-17 14:37:47 +01:00
Fazana
ce9abd6aff Debug Box supports ucode flags 2021-09-17 14:29:22 +01:00
Reonu
b47ac5e6b7 Merge pull request #57 from aglab2/vc-fix-917
Fixed VC boot
2021-09-17 15:32:27 +03:00
aglab2
0e0a7a38c7 Fixed VC boot 2021-09-17 20:31:29 +08:00
someone2639
d5abe13913 Merge pull request #56 from Reonu/experimental
Objects rendering on F3DLX2.Rej
2021-09-17 08:29:41 -04:00
Fazana
7d73ef5bf6 Puppycam free view mode
Intended mainly for use with developing, but not impossible to purpose for other means. Just set PUPPYCAM_BEHAVIOUR_FREE in intendedFlags to enable it, and remove it to disable it. Mario will be immobilised when in this mode. Puppyprint debug integration soonish
2021-09-17 11:53:04 +01:00
Fazana
df6c88a688 Merge branch 'master' into experimental 2021-09-17 11:00:44 +01:00
CrashOveride95
7c908a4835 Merge pull request #22 from thecozies/vscode-conf
added forced includes to c vscode configuration
2021-09-16 20:00:23 -04:00
Fazana
26005df9d7 Label RCP resets 2021-09-16 23:14:53 +01:00
Reonu
4baa67921c Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-09-17 00:19:00 +03:00
Reonu
fc30f1bb1e add obj_get_model_id function 2021-09-17 00:18:52 +03:00
Reonu
b5db4b557a Merge pull request #55 from thecozies/vscode_config
added forced includes to c vscode configuration
2021-09-17 00:11:12 +03:00
Fazana
655975d6e8 Merge branch 'master' into experimental 2021-09-16 18:03:01 +01:00
Reonu
f9e2070eb1 add NO_GETTING_BURIED define 2021-09-16 11:19:12 +03:00
Arceveti
48a4d5a405 Make objFlags an s32 2021-09-15 18:54:56 -07:00
Fazana
6f852f2e13 Globally link essential ucodes rather than sometimes 2021-09-15 21:37:45 +01:00
Arceveti
604b1405a2 Make debug level select work without KEEP_MARIO_HEAD 2021-09-15 10:40:21 -07:00
Arceveti
a09bdd0ffb Fix shadow transparency 2021-09-15 10:35:58 -07:00
Fazana
a40cf7f7ef Small order fix 2021-09-15 15:05:44 +01:00
thecozies
99c0c967cd added forced includes to c vscode configuration 2021-09-15 08:08:33 -05:00
thecozies
7805af0167 added forced includes to c vscode configuration 2021-09-15 06:59:28 -05:00
Fazana
35c5adafbe Fix layering a bit more. 2021-09-14 22:41:47 +01:00
Fazana
2a4dec1890 Fixed render order 2021-09-14 22:32:21 +01:00
Fazana
93e3bc48ba Merge branch 'master' into experimental 2021-09-14 21:55:26 +01:00
Fazana
9d1329f245 F3DLX2.Rej integration
The master displaylist has been split into two, one for things to render in F3DZEX, and one that renders in F3DLX2.Rej, with the aim to save performance when rendering smaller things.
2021-09-14 21:43:55 +01:00
Fazana
3e16820b1e Audio Load Improvements
Audio in EU and US has been modified so it no longer has coded dead frames in between loading, speeding up level load times substantially.
2021-09-14 21:41:06 +01:00
Fazana
6e07c3c724 Last Minute fixes 2021-09-14 11:29:08 +01:00
Fazana
12b1c1a71c Merge branch 'master' into experimental 2021-09-14 11:20:23 +01:00
Arceveti
423e42d697 Name a bunch of stuff 2021-09-13 19:57:26 -07:00
Fazana
dea0636918 Merge branch 'master' into experimental 2021-09-13 12:11:32 +01:00
Fazana
0ffdab82ce Reverted the libz and goddard commit
Couldn't get it to build 😔
2021-09-13 12:08:50 +01:00
Fazana
3bcc61ed90 Merge remote-tracking branch 'upstream/master' 2021-09-13 11:41:09 +01:00
Fazana
d8b48cad5d Merge branch 'experimental' of https://github.com/Reonu/HackerSM64 into experimental 2021-09-13 10:55:53 +01:00
gheskett
9feb8b0cf4 bugfix: booting audio downsampling=1 crashes when setting downsample to 2+ 2021-09-13 00:19:14 -04:00
CrashOveride95
c049b71dad Fix pallete for CI fast64 2021-09-12 20:50:29 -04:00
CrashOveride95
7f872116c3 Add CI support 2021-09-12 20:14:45 -04:00
CrashOveride95
77dd0045fa Fix UNF by moving it's code to engine segment
Additionally update UNF code to latest master
2021-09-12 19:33:32 -04:00
Fazana
e29cc81682 Yiik 2021-09-12 20:31:34 +01:00
CrashOveride95
3ba7236e64 Only build libz/goddard if required 2021-09-12 15:08:08 -04:00
gheskett
21c68cb797 Merge branch 'experimental' of https://github.com/Reonu/HackerSM64 into experimental 2021-09-12 12:26:26 -04:00
Fazana
c67cd55d03 Make 2021-09-12 17:23:59 +01:00
gheskett
f9f360d4a0 bugfix: set start pointer for EU soundAlloc 2021-09-12 11:58:22 -04:00
Fazana
98f24ef2e1 Merge branch 'master' into experimental 2021-09-12 16:49:53 +01:00
gheskett
a526dc7306 more bzero stuffs 2021-09-12 11:30:58 -04:00
Fazana
815d02a685 Strength. 2021-09-12 13:02:45 +01:00
Fazana
5a1a075e35 Puppylights ambient and direction fix 2021-09-12 12:37:15 +01:00
Fazana
d3da54a8de Fix puppyprint debug reading 2021-09-12 10:21:10 +01:00
Fazana
ebcba170ce Merge branch 'experimental' of https://github.com/Reonu/HackerSM64 into experimental 2021-09-12 09:59:27 +01:00
gheskett
b2587170c5 update incorrect comments 2021-09-12 01:21:12 -04:00
gheskett
2583c3df7a Increase EU reverb windows and remove downsampling 2021-09-12 01:18:17 -04:00
gheskett
137a00e80b Some BETTER_REVERB optimizations 2021-09-12 00:59:36 -04:00
gheskett
a242136399 Heavy cleanup of audio buffer allocations and reverb fixes/improvements 2021-09-12 00:39:51 -04:00
Arceveti
38c5475665 Use -Ofast since it doesn't seem to break anything 2021-09-11 20:46:38 -07:00
Fazana
b27fd9711b Merge branch 'master' into experimental 2021-09-11 22:30:10 +01:00
Fazana
df0e11f6a1 Puppyprint CPU reading tweak 2021-09-11 22:29:53 +01:00
Fazana
58ee7f3408 Oops 2021-09-11 21:45:25 +01:00
Fazana
1b79bbd6ce I have become speed destroyer of worlds 2021-09-11 21:25:13 +01:00
Fazana
32241c0edc Society 2021-09-11 21:10:22 +01:00
gheskett
d7c0a1a1d7 remove single-frame audio corruption for US 2021-09-11 15:16:39 -04:00
Arceveti
a1b2080b26 Fix build & build warnings 2021-09-11 10:58:54 -07:00
Fazana
94baa85081 No I don't think I will 2021-09-11 18:47:04 +01:00
Fazana
3b1deb1941 Bronke 2021-09-11 17:57:32 +01:00
Fazana
f34cb5dd3d Puppylights Bugfixes
Distance scaling is now correct on every axis, and there is a new flag, that will ignore the Y axis completely when calculating distance scaling.
Additionally, ambient lights will now only apply brightening once for directional lights, and the light diffuse now approaches the correct value, eliminating light clipping.
2021-09-11 15:24:10 +01:00
Fazana
b9c43bb721 Mario Gaming branded crash screen 2021-09-10 21:37:35 +01:00
Fazana
3562e6ef60 EU now stable™️ 2021-09-10 20:39:49 +01:00
Fazana
3a315de1c3 Small baby tweak small 2021-09-10 15:27:56 +01:00
Fazana
b5f10496d2 Audio pitch correction PoC 2021-09-10 14:18:23 +01:00
Fazana
7f12add23c Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-09-10 12:17:01 +01:00
Fazana
72ad4966d0 Puppylight crash fix 2021-09-10 12:16:58 +01:00
Fazana
3ca5ef6561 Merge branch 'CrashOveride95:master' into master 2021-09-10 11:45:49 +01:00
CrashOveride95
99daddfc1d Add F3DEX2_Rej 2021-09-10 06:40:52 -04:00
Fazana
295ec48802 Audio just loads once on EU now lol 2021-09-10 11:32:28 +01:00
Fazana
014c2189e9 Audio system loading adjustments 2021-09-09 21:06:26 +01:00
Arceveti
b80529d0e9 Add OBJ_FLAG_VELOCITY_PLATFORM for velocity-based platform displacement for certain objects like the TTC treadmills 2021-09-09 12:09:13 -07:00
Fazana
caab929608 Update README.md 2021-09-09 14:12:35 +01:00
Fazana
660635bc86 Puppylights 2021-09-09 14:06:48 +01:00
Fazana
0afe65462d Update object_helpers.c 2021-09-09 14:06:35 +01:00
Fazana
2894e3cab8 Update spawn_object.c 2021-09-09 14:05:38 +01:00
Fazana
93f8872bd9 Society if Faz commented his code any further 2021-09-09 13:29:13 +01:00
Fazana
8b55b543b3 Rotation fix 😳
Also consolidating the iteration into just one if because legit nothing else is necessary
2021-09-09 13:03:40 +01:00
Fazana
f20e5a24b2 Light polish
Which sounds conceptually impossible, given what light is.
2021-09-09 10:59:50 +01:00
Fazana
b5b886ab26 actually lets not 2021-09-08 20:45:35 +01:00
Fazana
cc0d19592c tweak ☎️ 2021-09-08 20:34:24 +01:00
Fazana
c663ad90ed Area node fix 2021-09-08 19:42:25 +01:00
Fazana
f224f845d2 Allocation fixes 2021-09-08 14:54:02 +01:00
Fazana
00f2afa279 Merge branch 'master' into experimental 2021-09-08 14:53:55 +01:00
Fazana
f0fd048e5b Some puppylight failsafes
In case you mess up your light formatting.
2021-09-07 23:44:46 +01:00
Fazana
f1377af58a Unlock all define, to open every vanilla locked thing 2021-09-07 23:44:09 +01:00
Fazana
315eac02ae Signedness fix 2021-09-07 22:52:12 +01:00
Fazana
ba8cc7cd5c Optimisation 2021-09-07 22:47:01 +01:00
Arceveti
27b90244c6 Fix TTC treadmills' fog 2021-09-07 14:06:55 -07:00
Fazana
fc28d5e791 TTC Fog fix 2021-09-07 21:33:41 +01:00
Fazana
e368b33c0b Ifdef fixes 2021-09-07 18:08:56 +01:00
Fazana
d90d0c7d92 Merge branch 'experimental' of https://github.com/Reonu/HackerSM64 into experimental 2021-09-07 17:58:37 +01:00
Fazana
c9cb181b4c Update puppylights.h 2021-09-07 15:56:01 +01:00
Fazana
98bc1fac82 Update puppylights.c 2021-09-07 15:55:34 +01:00
Fazana
5630194ff3 Update config.h 2021-09-07 15:40:00 +01:00
Fazana
895266d635 Merge branch 'master' into experimental 2021-09-07 15:14:19 +01:00
Fazana
9fd37fba3b Crash Screen Tweaks
Now uses the game's framebuffer so no more clown vomit, and char buffer is now properly cleared before printing float regs.
2021-09-07 15:11:00 +01:00
Fazana
2a78404ef5 Puppylights 2021-09-07 12:13:40 +01:00
gheskett
e94c4ec8f8 Set minimum allowable tempo to 0 rather than 1 2021-09-07 05:28:44 -05:00
Reonu
89952ab89b Merge pull request #50 from PyroJay4/patch-8
Update koopa_shell_underwater.inc.c
2021-09-07 00:28:42 +03:00
Reonu
9b796b6ed1 Merge pull request #49 from PyroJay4/patch-7
Update spawn_object.c
2021-09-07 00:27:04 +03:00
PyroJay4
5a63d5754f Update koopa_shell_underwater.inc.c
pretty sure this fixes a bug where the particles dont spawn correctly
2021-09-06 12:33:54 -04:00
PyroJay4
f29a1694de Update spawn_object.c
remove hardcoded object distance thing
2021-09-06 12:29:11 -04:00
Arceveti
2d58bddd06 Add fix for obj_resolve_object_collisions 2021-09-05 12:18:00 -07:00
Fazana
13db5a7d4e Merge pull request #48 from Reonu/skybox-hotfix
Skybox pointer array is now 8 long
2021-09-05 19:32:02 +01:00
someone2639
09dd17de8a Update game_init.h 2021-09-05 14:30:51 -04:00
someone2639
0de88afc9b Skybox pointer array is now 8 long 2021-09-05 14:29:56 -04:00
someone2639
2966a28dbf Merge pull request #45 from Mineqwerty/skybox
Added a level script function to easily set a skybox for each area
2021-09-05 12:03:47 -04:00
Mineqwerty
e248621a55 Added area number define, fixed undefined init value 2021-09-05 11:35:35 -04:00
Mineqwerty
fdf375faa8 puppycam interference >:( 2021-09-05 11:14:55 -04:00
Mineqwerty
93f163fb56 Merge https://github.com/Reonu/HackerSM64 into skybox 2021-09-05 11:14:15 -04:00
Mineqwerty
aa8c033e2b Clear pointers + misc recommended fixes 2021-09-05 11:00:11 -04:00
someone2639
98286833a1 Merge pull request #47 from aglab2/vc_hacks
gIsVC is introduced, VC_HACKS define is removed
2021-09-05 08:20:30 -04:00
aglab2
03a4b6497f Move gIsVC in vc_check 2021-09-05 20:11:56 +08:00
Fazana
1b9ca2016b Merge pull request #46 from aglab2/jittering-fix
Added puppycamera jittering fix
2021-09-05 12:18:52 +01:00
aglab2
6ba869691b gIsVC is introduced, VC_HACKS define is removed 2021-09-05 16:59:50 +08:00
aglab2
212eae31f6 Added puppycamera jittering fix 2021-09-05 15:23:34 +08:00
Mineqwerty
33fa7013b0 Added a level script function to easily set a skybox for each area
In your level script add the function
CHANGE_AREA_SKYBOX(Area ID, Skybox Segment Start, Skybox Segment End) .
2021-09-04 20:27:21 -04:00
Arceveti
4c655bfdc0 Automatically get optimal collision distance 2021-09-04 09:59:30 -07:00
Fazana
5be32f1c24 pal momento
pal momento
2021-09-03 13:40:57 +01:00
Fazana
35cb92b940 Rom header correction 2021-09-03 10:05:17 +01:00
Fazana
3a0a7f9ddb ROM header now contains correct savetype data
Should you change what save type you use, the rom will have the correct savetype in the header.
2021-09-02 20:47:09 +01:00
gheskett
beb854b2ea One more BETTER_REVERB remark 2021-09-01 15:39:27 -07:00
gheskett
b230f2b73f Reconfigure BETTER_REVERB console default parameters 2021-09-01 15:03:08 -07:00
gheskett
a8eef384fc BETTER_REVERB now properly limited to use with US/JP as to not break EU when enabled 2021-09-01 14:12:03 -07:00
Reonu
5c8ecefa0b I'm very smart and posted a temporary link 2021-08-29 10:58:34 +01:00
Reonu
57c7d2729b Added discord link to readme 2021-08-29 10:57:57 +01:00
Fazana
19b49f3f37 Merge pull request #44 from aglab2/smooth-y-pupper
Puppycam: use softer clamp for Y movement
2021-08-29 10:24:44 +01:00
aglab2
52f3b08a6f Puppycam: use softer clamp for Y movement 2021-08-28 21:41:43 +08:00
Fazana
60612ff1ec Nearclipping now scales with farclipping automatically and correctly
Also stubbed out an experimental PC2 thing I forgot to do the first time lolol
2021-08-27 12:31:43 +01:00
Fazana
1e0d308382 Puppycamera 2.2 + Auto World Render Scale
Puppycam 2.2 introduces splines, with intention to be used for cutscenes.
2021-08-27 12:06:53 +01:00
Fazana
8705dcf77a Puppycamera 2.2 2021-08-26 19:47:48 +01:00
Fazana
8bc9863abe Merge branch 'master' into puppycamera2 2021-08-26 19:45:48 +01:00
gheskett
402ac0986f Remove unnecessary vibrato restriction for JP and US audio 2021-08-25 21:17:59 -05:00
Fazana
49b5d9f35f Update rendering_graph_node.c 2021-08-26 00:20:40 +01:00
Reonu
f74feac3a8 fixed puppyprint 2021-08-25 23:57:44 +01:00
Reonu
2255f8da0f Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-08-25 23:54:28 +01:00
CrashOveride95
e43c9463d5 Move decompression code to boot segment 2021-08-25 16:09:31 -04:00
aglab2
57b7e5aec3 Removed gdb references from ld 2021-08-25 16:01:10 -04:00
aglab2
46f64263ea Move most of the 'game' to engine segment to avoid 1MB limit 2021-08-25 16:00:24 -04:00
Fazana
da0798f6f6 Puppyprint Logging
Puppyprint now supports logging strings for debugging use. tapping dpad left while inside the puppyprint debugging screen will toggle it
2021-08-25 20:45:26 +01:00
Fazana
c9bf910abf Puppyprint debugging is now correctly ommitted if debugging is set to 0 2021-08-25 19:33:56 +01:00
Fazana
8cda57e716 Update config.h 2021-08-25 19:05:07 +01:00
Fazana
552ef45203 dammit unticked the wrong file 2021-08-25 19:02:45 +01:00
Fazana
5bb14224f7 Make World scale automatic 2021-08-25 19:01:54 +01:00
Fazana
6173fe01f2 Remove sound bank size table
It's literally useless and saves a step when adding extra sound ID's
2021-08-25 13:22:45 +01:00
Reonu
93693e34e5 Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-08-25 00:57:40 +01:00
Reonu
30fd330755 Reonu not edit the readme 20 times challenge 2021-08-25 00:13:06 +01:00
Reonu
083670df23 Add Lighting Engine mention to main readme 2021-08-25 00:11:51 +01:00
CrashOveride95
43e7eeb869 Fix printing audio data sizes in load.c 2021-08-24 16:26:30 -04:00
Fazana
53acc2cc31 Merge pull request #41 from aglab2/pupper-landing-master
Puppycam: fixed unsmooth landing from the high places
2021-08-24 16:50:38 +01:00
Fazana
8406c39167 Surface typedef tweak 2021-08-24 16:38:32 +01:00
aglab2
28c4ae2e3f Puppycam: fixed unsmooth landing from the high places 2021-08-24 23:34:33 +08:00
Fazana
435e8c74fa Puppycam raycasts moved to engine segment
Also no longer need puppycam enabled to use.
2021-08-24 13:53:04 +01:00
Fazana
710256e9f1 TLB clears fixed for real for real
man.
2021-08-23 18:38:43 +01:00
Fazana
43fae23555 The most important commit to date. 2021-08-23 17:22:46 +01:00
Fazana
bc903a73fc Further TLB fix
Imagine testing 2 segments and having them work perfectly fine, and then you go for the third, and it somehow doesn't work, because clearly you can't trust a system that loads 3 things in a row to just map it to the first 3 :^)
So guess we have a mapping segment table now to track it.
2021-08-23 14:06:27 +01:00
Fazana
bc1fac4b9e Farcall tweaks
You can now safely store code in global banks without the game murdering it. Also fixed some `memory.c` warnings
2021-08-23 12:10:03 +01:00
Fazana
6fe64bc9ab Merge remote-tracking branch 'upstream/master' 2021-08-22 22:11:35 +01:00
Fazana
65d5894b9d Update README.md 2021-08-22 21:52:50 +01:00
Fazana
011459e413 Merge pull request #36 from Reonu/puppycamera2
Farcall
2021-08-22 21:50:59 +01:00
CrashOveride95
587137a5fe whoops didn't commit everything 2021-08-22 11:59:26 -04:00
CrashOveride95
4ea65071f3 Add L3DEX2 mode
Mostly as a "curiosity" mode, not intended to be used for serious mods
(unless you implement ucode loading but that's not being done here)
2021-08-22 11:59:13 -04:00
Fazana
ccfa157455 Farcall 2021-08-22 13:39:47 +01:00
Fazana
ba85b7c017 Puppyprint fix
Makes the test func run only when needed rather than all the time.
2021-08-21 17:59:21 +01:00
Fazana
be3f940714 Update README.md 2021-08-21 00:20:20 +01:00
Fazana
e20a59ed18 Visual Surface envboxes
Visual Surface collisions now include environment boxes.
2021-08-20 23:44:31 +01:00
Fazana
90b52b185e Merge pull request #35 from Reonu/puppycamera2
Visual Collision Debug
2021-08-20 18:03:52 +01:00
Fazana
2469b9e67d fix epic undo fail
fix epic undo fail
2021-08-20 18:00:17 +01:00
Fazana
ced848892c Visual Collision Debug
Added some toggable visuals when enabled.
Allows you to see surface collision, as well as object hitboxes.
2021-08-20 17:39:22 +01:00
Reonu
9fb44f0099 Merge pull request #34 from PyroJay4/patch-6
Update dialogs.h
2021-08-20 16:47:11 +01:00
PyroJay4
7b2391d948 Update dialogs.h 2021-08-20 08:57:22 -04:00
PyroJay4
5f094cacf9 Update dialogs.h
idk i was browsing decomp and this typo bugged me kekw
2021-08-20 08:55:40 -04:00
Fazana
ee1658fdc5 Merge pull request #33 from Reonu/puppycamera2
Collision data type define
Extensively tested now, so all gucci
2021-08-19 18:57:50 +01:00
Fazana
129a29cbb2 Merge branch 'master' into puppycamera2 2021-08-19 18:53:39 +01:00
Fazana
e4e4cca62d header typo fix 2021-08-19 15:52:32 +01:00
Fazana
b5c3433cf9 Lookat Matrix div0 fix 2021-08-19 11:05:42 +01:00
Fazana
57e9301751 Collision data type define
Terrain data can now be configured to be a different type other than s16, for any nefarious reasons
2021-08-18 22:36:42 +01:00
Fazana
a22426a42b Merge pull request #32 from aglab2/pupper2
Added more reasonable values for puppycam, removed profanity
2021-08-18 15:50:10 +01:00
aglab2
0b027cc668 Added more reasonable values for puppycam, removed profanity 2021-08-18 22:30:59 +08:00
Reonu
c18ad0a0d8 Add VC_HACKS info in makefile 2021-08-18 13:04:33 +01:00
Reonu
3fc2cb343b Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-08-18 13:00:51 +01:00
Reonu
a1be5357e8 Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-08-18 13:00:03 +01:00
CrashOveride95
74a4ccae5f Merge pull request #20 from CrashOveride95/revert-18-static-ld
Revert "statically link included ld"
2021-08-17 22:11:56 -04:00
CrashOveride95
cf4a527c48 Revert "statically link included ld" 2021-08-17 22:11:38 -04:00
Reonu
9ebdfcdd51 Replaced referenced to old repo name 2021-08-18 01:53:18 +01:00
Reonu
756d8a0a9d removed unnecesary widescreen string 2021-08-17 21:28:26 +01:00
Fazana
0f9202a39b Puppyprint now benchmarks raycasts as collision
title
2021-08-17 20:53:59 +01:00
Reonu
36e4b0013f now requires JP ROM to build 2021-08-17 18:57:39 +01:00
Reonu
66114eec70 Merge branch 'master' of https://github.com/Reonu/HackerSM64 2021-08-17 18:42:35 +01:00
Reonu
cd41a98efe added orig files to gitignore 2021-08-17 18:42:24 +01:00
Fazana
7cf370cf28 Puppycam raycasting improvements
It now can distinguish collision surfaces by type, which will be handy for anyone using it only searching for specific surfaces.
2021-08-17 18:02:04 +01:00
Fazana
d379314e83 small camera speed change
and a classic mode fix
2021-08-17 16:44:33 +01:00
Reonu
7406db57ee fixed reonucam3 again 2021-08-17 16:15:47 +01:00
Reonu
ff9198975a force camera to 8 dir with CAMERA_FIX 2021-08-17 16:12:31 +01:00
Fazana
674514f691 Puppycam Collision Tweaks
Should make some collision a bit smoother now
2021-08-17 10:28:30 +01:00
Fazana
332dbcd2c1 Revert Config
I mean puppycam should be default :^)
but just cleaning up a small oopsie
2021-08-16 22:15:57 +01:00
Fazana
4a35e78587 Merge pull request #31 from FazanaJ/master
Puppycam Incline Look Smoothing
2021-08-16 22:12:38 +01:00
Fazana
064245678a Puppycam Incline Look Smoothing
finally
2021-08-16 22:10:57 +01:00
Reonu
df47e227e0 Merge pull request #30 from FazanaJ/master
EU now successfully builds + misc
2021-08-16 21:40:54 +01:00
Fazana
0395d1a40d EU now successfully builds + misc
And has the language related stuff without the need of ifdef hell
ROM now pads only to 1.1MB
And collision has some unnecessary typecasting removed for performance
2021-08-16 17:41:27 +01:00
Reonu
c1ef7c93d4 Update README.md 2021-08-16 15:17:22 +01:00
Fazana
c294980de2 Rom crash fix and puppycam volume fix
A hasty fix so built roms can actually work
2021-08-16 12:36:03 +01:00
Reonu
f0971b9cb8 Merge pull request #29 from someone2639/shift_segs_2
Shiftable Segments 2.5: I think I actually fixed it this time
2021-08-15 21:06:29 +01:00
someone2639
c0d2820dbc no more hardcoded_syms 2021-08-15 14:55:27 -04:00
someone2639
b3c95a8f5f SS2: Makefile now links the whole rom twice 2021-08-15 14:52:34 -04:00
someone2639
34c27a8971 SS2: getGoddardSize now outputs a file with version in mind 2021-08-15 14:52:15 -04:00
someone2639
77756a5f58 SS2: sm64.ld now has a preliminary mode; no more goddard.ld 2021-08-15 14:51:48 -04:00
Reonu
8a955b51e8 Merge pull request #28 from Reonu/puppycamera2
Puppycamera2
2021-08-15 17:50:08 +01:00
Fazana
20ffa3de16 Antialiasing Changes 2021-08-15 17:26:38 +01:00
Fazana
78ebe1c617 dude I'm actually ook ook 🐒 2021-08-15 15:20:30 +01:00
Fazana
984dcb3d6e oops typo heehee 2021-08-15 15:18:28 +01:00
Fazana
5dc75cf792 Ifdefs and config 2021-08-15 15:15:16 +01:00
Fazana
280baf58ad Merge branch 'master' into puppycamera2 2021-08-15 11:55:57 +01:00
Reonu
37b33cf705 Add puppyprint info to readme 2021-08-15 11:53:33 +01:00
Reonu
4bbc6a67ae Merge pull request #27 from FazanaJ/master
Puppyprint
2021-08-15 11:49:37 +01:00
Fazana
535e8ee382 fix 2021-08-15 11:38:31 +01:00
Fazana
30aeb6841c Puppyprint 2021-08-15 11:30:19 +01:00
Fazana
e55a57314e Merge branch 'master' into puppycamera2 2021-08-15 11:18:21 +01:00
Reonu
4ae923aaa0 Merge pull request #26 from someone2639/shift_segs_2
SS2.1: I fixed it
2021-08-14 21:26:43 +01:00
someone2639
f2ef31a05e SS2: Fix goddard dependency issues; Add color reset after build succeeds so that terminal cursor isnt green 2021-08-14 16:25:31 -04:00
Reonu
b12c46568c made the console check safer 2021-08-14 19:23:57 +01:00
Reonu
6ebfd26741 Merge pull request #25 from someone2639/shift_segs_2
Shiftable Segments 2: Goddard Boogaloo
2021-08-13 23:54:36 +01:00
someone2639
1ecbf1163f SS2: cleanup (removed SEG_GODDARD define once and for all) 2021-08-13 15:31:17 -04:00
someone2639
41c11a2e46 Merge branch 'master' of https://github.com/Reonu/HackerSM64 into shift_segs_2 2021-08-13 15:28:24 -04:00
someone2639
14b9cde767 SS2: move align directives into the linkerscripts themselves 2021-08-13 15:27:56 -04:00
someone2639
865184597d SS2: Add 16 to size just in case, added singular place to put in goddard segment files (in case you ever want to do that) 2021-08-13 15:26:43 -04:00
someone2639
3c46090218 SS2: Goddard size now successfully passed to linker 2021-08-13 15:14:01 -04:00
Reonu
51c1a5c3b2 fixed reonucam3 patch 2021-08-13 01:30:11 +01:00
Fazana
111d2609fc Widescreen option change, puppyvolumes 2021-08-10 21:53:43 +01:00
Reonu
7e3165749e Merge branch 'master' of https://github.com/Reonu/HackerSM64 into puppycamera2 2021-08-08 18:15:36 +01:00
Reonu
9974e5a889 Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-08-08 18:15:26 +01:00
CrashOveride95
b2eecd4f3e Merge pull request #19 from Reonu/bbpadding
automatic padding for iQue builds
2021-08-08 13:13:03 -04:00
Reonu
cc8c84dfbf automatic padding for iQue builds 2021-08-08 18:00:06 +01:00
Reonu
aac2681290 Merge branch 'master' of https://github.com/Reonu/HackerSM64 into puppycamera2 2021-08-08 15:05:28 +01:00
Arceveti
b8945d5cde Fix a couple hardcoded render layers that were missed 2021-08-07 21:53:16 -07:00
Arceveti
0e8c3c9003 Fixed many hardcoded object flags to use defines 2021-08-07 18:49:10 -07:00
Arceveti
fc4d6c2a0c Fix platform displacement being doubled on some platforms 2021-08-07 18:12:05 -07:00
Arceveti
5bda529a4d Fixed hardcoded render layers to use layer defines 2021-08-06 12:44:48 -07:00
Reonu
f47c3b2d15 Merge branch 'master' of https://github.com/Reonu/HackerSM64 into puppycamera2 2021-08-06 02:32:17 +01:00
Reonu
25341d14d1 fixed treadmills with PD2 and made it default again 2021-08-06 02:20:12 +01:00
Reonu
41a3489e3e Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-08-05 23:42:30 +01:00
CrashOveride95
b928eda3da Silence dd when stripping gzip header 2021-08-05 18:41:58 -04:00
CrashOveride95
fad8cd6331 Silence slienc and rncpack 2021-08-05 18:39:57 -04:00
Reonu
f27f570844 merged with ultrasm64 2021-08-05 23:23:09 +01:00
CrashOveride95
9fe5ad21b7 Add clang as a compiler 2021-08-05 18:11:55 -04:00
Reonu
1eb659df56 Merge branch 'master' of https://github.com/Reonu/ultrasm64-extbounds 2021-08-05 22:17:22 +01:00
Reonu
2928157655 added custom debug mode 2021-08-05 22:17:09 +01:00
someone2639
d47ba26444 SS2: goddard.ld ready to preprocess 2021-08-05 16:21:24 -04:00
someone2639
9c1bb79b5e SS2: ready to shift in sm64.ld 2021-08-05 16:21:09 -04:00
Reonu
1261db8c72 Update README.md 2021-08-05 21:08:20 +01:00
Reonu
d61122104b added japanese clown font characters 2021-08-05 21:02:55 +01:00
someone2639
f9d8e8f04e SS2: add goddard linker to get size 2021-08-05 15:46:50 -04:00
someone2639
f4d24420a5 SS2: add helpful mainseg assert, remove extraneous commented asserts 2021-08-05 15:46:36 -04:00
Reonu
2ef336f5b8 Merge pull request #24 from gheskett/better-reverb
More reverb improvements
2021-08-05 11:27:25 +01:00
gheskett
24253c7598 Reverb documentation clarification 2021-08-05 02:45:45 -05:00
gheskett
e9d75c55ba Reverb documentation typo 2021-08-05 02:36:28 -05:00
gheskett
bf4cbc304e Balance reverb L/R channels 2021-08-05 02:17:01 -05:00
gheskett
50f472bd40 Fix -Os compilation flag with reverb use 2021-08-05 01:43:25 -05:00
gheskett
1c04c3c3ff Merge branch 'master' into better-reverb 2021-08-05 01:20:40 -05:00
gheskett
f816c1ebd7 Update reverb documentation 2021-08-05 01:19:55 -05:00
gheskett
29cc8055ba Configure delays parameters to allow for reduced filter count to not disrupt the right channel 2021-08-05 01:14:43 -05:00
gheskett
450e5ed829 Forgot to disable reverb 2021-08-05 00:03:42 -05:00
gheskett
382b50541a More configuration parameters to help console performance 2021-08-05 00:02:00 -05:00
gheskett
82334f790b delayBufs now 2 variables 2021-08-04 23:16:03 -05:00
gheskett
646c3aea47 More slight better reverb optimization 2021-08-04 23:05:39 -05:00
gheskett
8031963125 Add mono parameter for reverb 2021-08-04 18:15:38 -05:00
Reonu
8207132908 fixed super responsive controls define 2021-08-05 00:11:17 +01:00
Reonu
fee5f0630b Merge pull request #23 from gheskett/better-reverb
Redocument some reverb parameters and adjust default values
2021-08-04 23:07:49 +01:00
Gregory Heskett
704a8b6291 Merge branch 'Reonu:master' into better-reverb 2021-08-04 17:03:53 -05:00
gheskett
d7c9504aac Redocument more reverb stuff 2021-08-04 17:01:30 -05:00
gheskett
4adeff644e disable BETTER_REVERB by default 2021-08-04 14:59:45 -05:00
gheskett
2b0e9f4803 Redocument some reverb parameters and adjust default values 2021-08-04 14:59:10 -05:00
Fazana
8be1e09124 Classic mode bugfix
oopsiedaisy
2021-08-04 15:20:35 +01:00
Fazana
0a816814a5 Merge branch 'master' into puppycamera2 2021-08-04 15:19:04 +01:00
Reonu
49715e5204 Merge pull request #22 from gheskett/better-reverb
Much more realistic implementation of audio reverb
2021-08-04 12:46:37 +01:00
gheskett
2d7ed3a0f6 Add betterReverbWindowSize parameter 2021-08-04 05:38:16 -05:00
gheskett
01dd1dd918 Merge branch 'master' into better-reverb 2021-08-04 03:19:02 -05:00
gheskett
02fc4a75d5 Better document reverb additions 2021-08-04 03:17:51 -05:00
gheskett
8b039b9032 Mono reverb support 2021-08-04 01:03:07 -05:00
gheskett
f0353ad30d Fix console issue where gIsConsole is checked before being initialized 2021-08-04 00:47:18 -05:00
gheskett
4e3e5c002b Add (possibly unnecessary) buffer safety check 2021-08-03 23:17:36 -05:00
gheskett
86fe86e2d6 More optimizations to better reverb 2021-08-03 22:30:11 -05:00
gheskett
15f29f3814 More optimization 2021-08-03 21:29:06 -05:00
gheskett
4b51444250 Catch major reverb buffer allocation bug 2021-08-03 16:09:53 -05:00
Fazana
e117bdf476 Merge branch 'master' into puppycamera2 2021-08-03 13:05:34 +01:00
gheskett
f828ad38e3 Optimize out a pointless for loop 2021-08-03 07:01:44 -05:00
gheskett
04f538abc6 More reverb optimization 2021-08-03 06:52:21 -05:00
gheskett
832a395bdc gIsConsole check was backwards 2021-08-03 06:36:31 -05:00
gheskett
06a4190481 More comments 2021-08-03 06:03:47 -05:00
gheskett
863aa2235c reverb bugfix 2021-08-03 05:15:56 -05:00
gheskett
2532de0ac6 Accidentally had better-reverb-testing checked out 2021-08-03 02:59:54 -05:00
gheskett
be7418c907 Console exclusive stuffs 2021-08-03 02:55:48 -05:00
gheskett
578415b19e Merge branch 'better-reverb' into better-reverb-testing 2021-08-03 02:12:32 -05:00
gheskett
9922ff1705 More reverb optimizations 2021-08-03 02:12:10 -05:00
gheskett
e56f3e6c83 Convenience settings for testing reverb 2021-08-03 01:54:00 -05:00
gheskett
dc70030149 More reverb fixey stuffs 2021-08-03 01:45:33 -05:00
gheskett
7ef6453316 Speed improvements to the reverb 2021-08-03 00:58:22 -05:00
gheskett
4e97ac71bd Merge branch 'master' into better-reverb 2021-08-03 00:36:02 -05:00
Reonu
2111242bd9 instant input patch now uses gIsConsole 2021-08-03 04:15:46 +01:00
Reonu
328f715ec0 Revert "fixed instant input patch on VC"
This reverts commit 7cd5daf7ea.
2021-08-03 04:12:14 +01:00
Reonu
7cd5daf7ea fixed instant input patch on VC 2021-08-03 03:40:47 +01:00
gheskett
e9f6588d21 Better reverb implementation 2021-08-02 21:14:31 -05:00
Reonu
e2db87516f Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-08-03 01:51:02 +01:00
CrashOveride95
cd08052d48 Merge pull request #16 from thecozies/master
Print SHA1 with successful builds and message that it was successful
2021-08-02 16:56:59 -04:00
CrashOveride95
0ae8527bdb Merge pull request #18 from 0x766F6964/static-ld
statically link included ld
2021-08-02 16:42:09 -04:00
Reonu
179fc3196b Added global force parameter (thx cozies) 2021-08-02 17:44:03 +01:00
Reonu
cc3ecd1939 Merge pull request #21 from aglab2/vc_hacks
Added temporary VC hacks
2021-08-01 05:04:10 +01:00
aglab2
5621c99d70 Added temporary VC hacks 2021-08-01 11:40:14 +08:00
Randy Palamar
d0c2573b9b re-add now statically linked ld
the binary was compiled with -Os, linked against musl, and stripped to
keep size down

compiled with the following script (assuming you are on a musl based host):

VERSION=2.30

curl -LOC - http://ftp.gnu.org/gnu/binutils/binutils-$VERSION.tar.gz
bsdtar xf binutils-$VERSION.tar.gz
cd binutils-$VERSION
./configure --target=mips-linux-musl \
	--with-gnu-ld \
	--enable-64-bit-bfd \
	--enable-multilib \
	--enable-plugins \
	--disable-gold \
	--disable-shared \
	--disable-werror \
	--disable-nls \
	--prefix=$(pwd)/out || exit 1
make configure-host
make CFLAGS=-Os LDFLAGS="-s -all-static" || exit 1
make install
2021-07-31 12:49:01 -06:00
Randy Palamar
d8ef396b86 remove dynamically linked ld
separate commit to try and keep the git history bloat down
2021-07-31 12:34:24 -06:00
Reonu
4e2d525ad6 Merge branch 'master' of https://github.com/Reonu/ultrasm64-extbounds into puppycamera2 2021-07-26 23:54:06 +01:00
Reonu
cc06704d46 cleaned up widescreen code again 2021-07-26 23:53:39 +01:00
Reonu
9b0cdc3350 Merge branch 'master' of https://github.com/Reonu/ultrasm64-extbounds into puppycamera2 2021-07-26 12:47:16 +01:00
Reonu
4e5b153d20 Merge pull request #20 from gheskett/colored-text
Colored text support
2021-07-26 12:42:17 +01:00
gheskett
6d7de6961f Missed a strIdx rename ;/ 2021-07-26 06:36:55 -05:00
gheskett
732e361784 Color stability check to avoid skipping the terminating character by mistake 2021-07-26 06:34:47 -05:00
gheskett
1ddc677a12 Stop writing to the text string unnecessarily 2021-07-26 06:15:34 -05:00
gheskett
7be62f31ad Update README with colored text 2021-07-26 05:35:41 -05:00
Gregory Heskett
7aa6713645 Merge branch 'Reonu:master' into colored-text 2021-07-26 04:30:17 -05:00
gheskett
73446350b3 Logged minor color related bug 2021-07-26 04:26:45 -05:00
gheskett
68a21d228b Some colored text fixes 2021-07-26 04:10:18 -05:00
gheskett
2b580ab416 Add colored text 2021-07-26 04:08:08 -05:00
Reonu
1b138a2782 Merge remote-tracking branch 'origin/master' into puppycamera2 2021-07-25 19:09:18 +01:00
Reonu
a76a2a04de merged with ultrasm64 2021-07-25 19:08:06 +01:00
Reonu
0d21a79d8e fixed oopsie when organising the config file 2021-07-25 15:46:11 +01:00
Reonu
3ef4588910 cleaned up widescreen code, organised config file 2021-07-25 15:45:23 +01:00
Reonu
f436cdf13e Merge branch 'master' of https://github.com/Reonu/ultrasm64-extbounds 2021-07-25 14:03:05 +01:00
Reonu
75b0d960be Added test level feature 2021-07-25 14:01:49 +01:00
Reonu
626a2ea594 epic typo :) 2021-07-24 16:30:09 +01:00
Reonu
3e9557f363 Added puppycam disclaimer to readme 2021-07-24 16:26:27 +01:00
Fazana
305518ce3c Puppy Camera 2
Now supported with the HackerSM64 repo
2021-07-24 16:14:03 +01:00
Fazana
11af76e1a5 Merge branch 'master' into puppycamera2 2021-07-24 16:07:36 +01:00
Reonu
5b61fed5c9 Update README.md 2021-07-24 11:15:47 +01:00
Reonu
53637e3881 updated reonucam 2021-07-24 11:12:50 +01:00
Reonu
ddb0654f3c removed useless line in patch file 2021-07-24 05:39:28 +01:00
Reonu
805bedb689 updated reonucam3 2021-07-24 05:24:35 +01:00
Reonu
d78a1e0a79 Update README.md 2021-07-24 02:06:18 +01:00
Reonu
2a5de904e6 deleted old reonucam (cringe) 2021-07-24 02:03:38 +01:00
Reonu
83388950dc added reonucam3 as a patch file 2021-07-24 01:58:40 +01:00
CrashOveride95
9282f62990 Merge pull request #15 from Reonu/savefile
soundMode is u8 and uses bitfield
2021-07-20 19:37:36 -04:00
thecozies
78019ea4a0 Print SHA1 with successful builds with message that it was successful 2021-07-20 05:57:51 -05:00
Reonu
922bfe5f61 language is also u8 with bitfield 2021-07-20 04:09:04 +01:00
Reonu
ea7cd2830f soundMode is u8 and uses bitfield 2021-07-20 03:50:39 +01:00
Reonu
ddbb78c638 Merge pull request #19 from gheskett/compiler-warnings
Compiler warnings
2021-07-18 11:39:10 +01:00
gheskett
7dabb29b5d Merge branch 'master' into compiler-warnings 2021-07-18 05:29:32 -05:00
Reonu
d46a217565 made soundMode into a u8 2021-07-18 11:23:31 +01:00
gheskett
57a1d67760 Merge branch 'master' into compiler-warnings 2021-07-18 05:20:58 -05:00
Reonu
28171f51f2 use bitfields in savefile to save space 2021-07-18 11:19:07 +01:00
gheskett
c8352ec8eb Address compiler warnings for build tools 2021-07-18 05:18:28 -05:00
Reonu
1a20512dc7 fixed missing widescreen ifdefs oops 2021-07-18 11:17:20 +01:00
Reonu
f65eef2529 widescreen mode saves to savefile 2021-07-18 11:08:09 +01:00
gheskett
af9f9d6b8b Fix/supress almost every single compiler warning for US 2021-07-18 04:57:37 -05:00
Reonu
11364cbb7f merge with upstream 2021-07-18 04:55:54 +01:00
CrashOveride95
9e9b4dbde8 make RNC1 default compression 2021-07-17 23:52:02 -04:00
Reonu
c968ff8af5 made the widescreen HUD code WAY cleaner 2021-07-18 04:49:41 +01:00
Reonu
a6565d6508 Added define for parallel lakitu cam / aglab cam 2021-07-17 18:19:32 +01:00
Reonu
d11488b1a0 Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-07-16 02:48:49 +01:00
CrashOveride95
0b91eeb6e6 Merge pull request #14 from Cheezepin/master
haveyourcake but it works
2021-07-15 21:45:50 -04:00
Cheezepin
921be6f0c5 haveyourcake but it works 2021-07-15 11:38:38 -07:00
Cheezepin
350eaaaac0 haveyourcake but it works 2021-07-15 11:34:55 -07:00
Cheezepin
18b562cd85 haveyourcake but it works 2021-07-15 11:33:37 -07:00
CrashOveride95
191835c43b Merge pull request #12 from Reonu/savefile2
auto savefile padding
2021-07-14 20:43:13 -04:00
CrashOveride95
1cc7fb9b50 Revert "haveyourcake"
This reverts commit 1f3a27347b.
2021-07-14 20:28:15 -04:00
CrashOveride95
c799074cff Merge pull request #13 from Reonu/uncringepatch
apply_patch creates conflicts instead of rejects
2021-07-14 20:20:08 -04:00
Reonu
d797cbe494 fix EU SUBTRAHEND 2021-07-15 01:13:20 +01:00
Reonu
793c9aacb2 apply_patch creates conflicts instead of rejects 2021-07-15 01:10:17 +01:00
Reonu
c2ebc5a01e auto savefile padding 2021-07-15 01:06:52 +01:00
Reonu
5ff7236847 define for super responsive controls 2021-07-14 00:23:56 +01:00
Reonu
f547c822e1 Merge branch 'master' of https://github.com/Reonu/ultrasm64-extbounds 2021-07-13 23:57:22 +01:00
Reonu
c80c99c817 added defines for better hanging 2021-07-13 23:57:00 +01:00
Reonu
16b02ce17c Changed name in readme 2021-07-13 19:35:52 +01:00
Reonu
508492a14c Update readme with more accurate config.h info 2021-07-13 19:31:13 +01:00
Reonu
b460464d86 Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-07-13 17:12:08 +01:00
CrashOveride95
ba670dcdd1 Change sound_data to ASM, lowers build time significantly 2021-07-13 12:10:53 -04:00
Reonu
f74e9ae63e merged with ultrasm64 2021-07-13 17:10:12 +01:00
CrashOveride95
af36951124 Merge pull request #11 from Reonu/haveyourcake
haveyourcake (cake screen fix)
2021-07-13 12:06:51 -04:00
Reonu
a589e17a17 Refresh 14 2021-07-13 16:52:38 +01:00
CrashOveride95
a19e92c255 Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-07-13 11:43:59 -04:00
CrashOveride95
3b6eb5b5e1 Merge branch 'master' of https://github.com/n64decomp/sm64 2021-07-13 11:40:46 -04:00
Reonu
5c9d94f148 merged with ultrasm64 + cleanup 2021-07-13 14:15:35 +01:00
CrashOveride95
8bd2a8bf62 Merge pull request #10 from Reonu/borderfix
fix search and replace memes
2021-07-13 08:55:05 -04:00
Cheezepin
1f3a27347b haveyourcake 2021-07-13 11:34:58 +01:00
Reonu
5622196d0d fixed search and replace meme 2021-07-13 11:29:43 +01:00
Reonu
1687179ef5 Merge pull request #16 from gheskett/expand_audio_heap
Expand Audio Heap
2021-07-13 11:23:24 +01:00
Reonu
b6cc4a4a1f fix search and replace memes 2021-07-13 04:23:26 +01:00
Reonu
7c7ab88d10 merge 2021-07-13 04:18:06 +01:00
n64
f9982e0ef5 Refresh 14 2021-07-12 23:17:54 -04:00
Reonu
bb3de5030a merged with ultrasm64 2021-07-13 04:16:55 +01:00
CrashOveride95
225c1eef55 Merge pull request #9 from Reonu/hudfix
HUD fix
2021-07-12 22:10:02 -04:00
gheskett
9be9a47b82 Expand audio heap 2021-07-12 19:16:06 -05:00
Reonu
f8cd491f6d HUD fix 2021-07-13 01:03:44 +01:00
CrashOveride95
de8ce9c6f7 reonu do good PR challenge failure
Deleted file that slipped in
2021-07-12 18:13:14 -04:00
Reonu
29864b64a1 Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 into border 2021-07-12 23:06:56 +01:00
Reonu
fd2eb663a6 Merge branch 'border' of https://github.com/Reonu/ultrasm64-extbounds into border 2021-07-12 23:06:06 +01:00
Reonu
b61837525d deleted file that slipped in 2021-07-12 23:05:56 +01:00
CrashOveride95
87a6c90bf5 Merge pull request #7 from Reonu/border
Add separate defines for console and emulator border heights
2021-07-12 17:50:05 -04:00
Reonu
8a733de07a update readme 2021-07-12 18:41:35 +01:00
Reonu
98a7266529 fixed default console defines for EU and non-N64 2021-07-12 18:33:11 +01:00
Reonu
73649f65ee mention border height & console detection 2021-07-12 18:21:18 +01:00
Reonu
af7009d637 defines for emu and console borders 2021-07-12 18:19:31 +01:00
Reonu
8e370fd050 fixed dubm stupid typo in readme 2021-07-12 17:16:01 +01:00
Reonu
7628e6996e updated readme 2021-07-12 17:14:03 +01:00
Reonu
976e7c7f87 defines for console and emu borders 2021-07-12 17:10:44 +01:00
Reonu
3296d52547 The ROM name can be set in config.h 2021-07-12 16:56:36 +01:00
Reonu
aabd13a08f added extra info on skybox modifier 2021-07-12 14:49:50 +01:00
Reonu
20a9204167 Update README.md 2021-07-12 14:45:09 +01:00
Reonu
7e6f1d1b91 Merge pull request #15 from Mineqwerty/skybox
Added support for different skybox sizes
2021-07-12 14:41:36 +01:00
Reonu
2d86f0a404 Restored the O2 flag 2021-07-12 14:41:23 +01:00
Reonu
e5c0c97e17 Merge branch 'master' into skybox 2021-07-12 14:35:52 +01:00
Reonu
69a1651ab7 removed unnecesary textures from the repo 2021-07-12 14:30:12 +01:00
Reonu
bc594829cd made ia8 coin textures optional 2021-07-12 14:28:41 +01:00
Reonu
d5dc22486d replaced coin textures with better ones 2021-07-12 14:19:41 +01:00
MineQwerty
79e030ac02 Added support for skybox sizes 2021-07-11 22:54:09 -04:00
MineQwerty
fe8243ef14 Added support for bigger skybox sizes 2021-07-11 20:02:12 -04:00
Reonu
a325dc21b6 make the makefile 1% less cringe 2021-07-11 05:17:12 +01:00
Reonu
1344e02ee2 replaced one of the coin textures 2021-07-11 05:05:36 +01:00
Reonu
c5ad88c0d2 oops, force added coin textures 2021-07-11 05:01:49 +01:00
Reonu
dc22d56879 added ia8 coins 2021-07-11 05:00:51 +01:00
Reonu
51b35b88d2 Merge pull request #14 from PyroJay4/patch-5 (Smoke fix)
Smoke fix
2021-07-11 04:44:46 +01:00
PyroJay4
3a3130becf Update model.inc.c 2021-07-10 23:42:22 -04:00
Reonu
060a03fa03 Merge pull request #13 from PyroJay4/patch-4
Update config.h
2021-07-11 04:41:24 +01:00
PyroJay4
c45da1df84 Update config.h
beep bop
2021-07-10 23:33:50 -04:00
Reonu
04ef5e7a83 removed duplicated cap id 2021-07-11 04:21:08 +01:00
Reonu
bc82213436 fixed mario's angle when wallkicking 2021-07-11 04:13:32 +01:00
Reonu
a123c91ff2 Merge branch 'master' of https://github.com/Reonu/ultrasm64-extbounds 2021-07-11 03:45:07 +01:00
Reonu
7f513c1253 added define for firsty frames 2021-07-11 03:44:44 +01:00
Reonu
2eaa86760f Update README.md 2021-07-10 18:39:27 +01:00
Reonu
2128150c3e pyro made a typo lol 2021-07-10 17:36:46 +01:00
Reonu
3d96a43fba Merge pull request #12 from PyroJay4/patch-3
Update README.md
2021-07-10 16:14:02 +01:00
PyroJay4
28f6d5b102 Update README.md 2021-07-10 11:13:11 -04:00
Reonu
b770072757 improved some vanilla textures thanks to pyro 2021-07-10 16:09:50 +01:00
Reonu
2918bc0a5a Update README.md 2021-07-10 15:10:01 +01:00
Reonu
3945d6a16c Merge pull request #11 from PyroJay4/patch-2
Update level_defines.h
2021-07-10 15:09:15 +01:00
Reonu
940239b50c Merge pull request #10 from PyroJay4/patch-1
Update README.md
2021-07-10 15:07:42 +01:00
PyroJay4
d868d1594e Update level_defines.h 2021-07-10 10:04:07 -04:00
PyroJay4
2c0ba4d1de Update README.md
bingus
2021-07-10 09:39:20 -04:00
Reonu
7f9357d801 merged with ultrasm64 2021-07-10 01:12:51 +01:00
CrashOveride95
2d0a9037ab Add LIBGCCDIR flag 2021-07-09 19:20:25 -04:00
Reonu
c22c4deba8 Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-07-09 23:41:47 +01:00
CrashOveride95
c79d8d4e5d Build libgcc with -mdivide-breaks and -mno-check-zero-division 2021-07-09 18:39:21 -04:00
Reonu
88595164ba Update README.md 2021-07-09 11:28:38 +01:00
Reonu
c9aa4c8fbd Added general defines in object_fields.h (by MrComit) 2021-07-08 04:01:57 +01:00
Reonu
c5fc356426 Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-07-06 23:21:54 +01:00
CrashOveride95
e70b85e830 Add mention of instant input 2021-07-03 21:01:43 -04:00
CrashOveride95
20675c8eda Add message about GCC requirement 2021-07-03 20:34:30 -04:00
Reonu
f1c1b815e5 added castle music fix 2021-07-03 21:33:17 +01:00
Reonu
ca6a1b80bb epic optimisation 2021-07-03 20:46:12 +01:00
Reonu
91b8a9b1d8 added option to exit course while moving 2021-07-03 20:42:31 +01:00
Reonu
39de47a435 updated readme with far info 2021-07-02 21:28:10 +01:00
Reonu
55dfe128bc made far into a u16 2021-07-02 21:26:34 +01:00
Reonu
8c9e2a48ef Added option to disable BLJs 2021-07-01 10:28:34 +01:00
Reonu
8abd187c6e deleted .orig file 2021-07-01 04:27:15 +01:00
Reonu
bc7f7362b3 solved merge conflict 2021-07-01 00:13:04 +01:00
Reonu
a4aa6f9ec3 update readme 2021-06-30 23:10:36 +01:00
Reonu
99b73fa4f6 Added defines for exit course 2021-06-30 23:10:03 +01:00
CrashOveride95
a58dfb4f7e Merge pull request #5 from Reonu/skipgoddard
skip goddard screen if goddard isn't built
2021-06-30 17:46:56 -04:00
CrashOveride95
439bcc6b4f Merge pull request #6 from Reonu/inputlagpatch
applied instant input patch
2021-06-30 17:46:37 -04:00
Reonu
15c98d5bb3 applied instant input patch 2021-06-30 22:42:48 +01:00
Reonu
f5a5048a73 simplified widescreen code a bit 2021-06-30 22:40:06 +01:00
Reonu
03fc981466 added hanging fix for real 2021-06-30 22:27:43 +01:00
Reonu
7cc986f55e Revert "added hanging fix"
This reverts commit 041bc62f0c.
2021-06-30 22:26:21 +01:00
Reonu
d09c7eb1a0 update readme 2021-06-30 22:24:45 +01:00
Reonu
041bc62f0c added hanging fix 2021-06-30 22:24:18 +01:00
Reonu
689c70d25a skip goddard screen if goddard isn't built 2021-06-29 20:56:38 +01:00
Reonu
287b6d2d02 Added 46 degree wallkicks toggle 2021-06-29 19:35:07 +01:00
Reonu
4bab6123a7 improved the DISABLE_AA define 2021-06-29 15:54:53 +01:00
Reonu
dfa33a2a84 Added obj_set_model and obj_has_model functions 2021-06-28 22:37:47 +01:00
Reonu
63f7aacf62 added warning about rumble crashes 2021-06-28 14:08:49 +01:00
Reonu
07151d5e5d Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-06-28 14:06:06 +01:00
Reonu
b43483f94a moved c_cpp_properties.json file to the right folder 2021-06-28 04:29:59 +01:00
Reonu
b5f1d94f28 added c_cpp_properties.json file 2021-06-28 02:57:39 +01:00
Reonu
3f33a7de51 updated readme 2021-06-27 22:55:04 +01:00
Reonu
65853fcc85 removed the ifdef hell in file_select.c 2021-06-27 22:54:29 +01:00
Reonu
b51b376bf0 removed the ifdef hell in ingame_menu.c 2021-06-27 22:51:42 +01:00
Reonu
e97aafe1f9 Updated readme 2021-06-27 22:04:30 +01:00
Reonu
15acfce39d Added tree particle fix 2021-06-27 22:04:25 +01:00
Reonu
42a0129e81 Merge branch 'master' of https://github.com/Reonu/ultrasm64-extbounds 2021-06-27 21:27:11 +01:00
Reonu
8849772f56 Made platform displacement 2 optional / toggleable 2021-06-27 21:26:56 +01:00
Reonu
4286c7c7d1 Update README.md 2021-06-27 17:26:01 +01:00
Reonu
e4f7aab31b changed coordinate overflow fix to be automatic 2021-06-27 17:19:09 +01:00
Reonu
700cb0b27a Update README.md 2021-06-27 15:10:28 +01:00
Reonu
86caa20521 Merge pull request #9 from Cheezepin/master
haveyourcake (made by wiseguy, ported by me)
2021-06-27 15:09:28 +01:00
Cheezepin
7a07cd4034 haveyourcake 2021-06-27 08:09:46 -05:00
Reonu
eafbc03c26 updated readme again 2021-06-27 13:08:48 +01:00
Reonu
88885bc823 updated readme 2021-06-27 13:07:46 +01:00
Reonu
89cb118667 added fall damage sound toggle 2021-06-27 13:06:18 +01:00
Reonu
7fbdb2435f added define for the 100 coin star 2021-06-27 13:03:53 +01:00
Reonu
8e70d87f29 added nonstop stars toggle 2021-06-27 13:00:26 +01:00
Reonu
027ffdba95 added toggle to disable fall damage 2021-06-27 12:57:07 +01:00
CrashOveride95
8181edd10f remove unused code from goddard 2021-06-26 15:31:49 -04:00
Reonu
e03f938f12 Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-06-23 10:11:01 +01:00
CrashOveride95
2e534b1ab2 sorry goddard's printing too much for me 2021-06-22 23:43:26 -04:00
CrashOveride95
3e73a6c094 fix overalignment 2021-06-22 23:39:24 -04:00
CrashOveride95
cb371fff52 Remove version-specific OPT_FLAGS 2021-06-22 23:04:01 -04:00
CrashOveride95
b8f00808cb Fix gzip on debug 2021-06-22 23:03:18 -04:00
Reonu
8fe651d9d7 updated readme with jump kick fix info 2021-06-21 17:35:52 +01:00
Reonu
82b35a0036 added jump kick fix 2021-06-21 17:35:28 +01:00
Reonu
2ddd8ddf89 Update README.md 2021-06-12 09:48:50 +01:00
Reonu
5af8c79868 Update README.md 2021-06-12 09:48:38 +01:00
Reonu
2235e638ba Update README.md 2021-06-12 09:45:32 +01:00
Reonu
73dc2a6683 Added no false ledgegrabs tweak 2021-06-12 09:43:42 +01:00
Reonu
856bff7726 Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-06-08 18:12:48 +01:00
CrashOveride95
81c18ab7fc Add missing libultra libraries, and make ClearRAM(); optional 2021-06-08 12:39:10 -04:00
Reonu
00acda022c Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-06-08 11:30:24 +01:00
CrashOveride95
6f1b18bb5b Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-06-07 23:31:35 -04:00
CrashOveride95
dce56fbac8 Add macros for MIO0 segment compatibility 2021-06-07 23:31:12 -04:00
Reonu
1ea9a0d3ae Update README.md 2021-06-07 01:06:22 +01:00
Reonu
121e446eb2 fixed makefile oopsie 2021-06-02 23:13:48 +01:00
Reonu
a7ab4f88c2 removed debug print 2021-06-02 22:32:05 +01:00
Reonu
0576edcede Update README.md 2021-06-02 22:03:37 +01:00
Reonu
14dba29e5e Merge pull request #7 from someone2639/master
s2dex text engine as a subtree and integrated into the build system
2021-06-02 21:57:07 +01:00
farisawan-2000
7e5eb1ecd2 actually update gitignore 2021-06-02 09:14:29 -04:00
farisawan-2000
03345fecba Update gitignore 2021-06-02 09:14:09 -04:00
farisawan-2000
acf4a9dbc4 no need to define COPY_DIR when cleaning 2021-06-02 09:03:36 -04:00
farisawan-2000
32c06751ba allow font name to be set from external source 2021-06-02 08:36:06 -04:00
farisawan-2000
2a7d8ae098 Default font is impact, again 2021-06-02 07:53:59 -04:00
farisawan-2000
cfefcd729e S2DEX Text Engine integration 2021-06-02 07:52:40 -04:00
farisawan-2000
21d004ba42 Merge branch 'master' of https://github.com/Reonu/ultrasm64-extbounds 2021-06-02 07:20:13 -04:00
farisawan-2000
9f739e45c0 Add 'src/s2d_engine/' from commit 'c27118308f2c910289943e564d47cd8378d224e8'
git-subtree-dir: src/s2d_engine
git-subtree-mainline: 932a4ddb6f
git-subtree-split: c27118308f
2021-06-02 07:20:11 -04:00
farisawan-2000
932a4ddb6f first idea of a build system 2021-06-02 07:20:08 -04:00
farisawan-2000
c27118308f Added build system 2021-06-01 18:24:46 -04:00
farisawan-2000
a773f2733c add gitignore for .a build 2021-06-01 17:50:56 -04:00
Reonu
d2116abc4c added my own custom camera as a patch file (reonu_cam.patch) in the enhancements folder 2021-06-01 20:04:38 +01:00
Reonu
b2cd5030c7 Added instant warp offset fix 2021-06-01 15:55:51 +01:00
farisawan-2000
310e7babdf actually made stuff render on console 2021-05-31 17:01:02 -04:00
Reonu
ebbad05ad2 included config.h in save_file.c 2021-05-31 16:43:42 +01:00
farisawan-2000
cb79fe58cf default font still impact 2021-05-31 03:16:24 -04:00
farisawan-2000
ab40477256 Font Delfino added 2021-05-31 03:16:09 -04:00
farisawan-2000
78e6ee8b4e added emulator check 2021-05-31 03:05:52 -04:00
farisawan-2000
fcd621ef71 f3d printing done! 2021-05-31 03:00:18 -04:00
farisawan-2000
861d8c2ca3 f3d now displaying (now figuring out pool space and why font doesnt look right) 2021-05-31 02:37:39 -04:00
farisawan-2000
5f0b67a38b much faster matrix pipeline, debug condition manager, and start of f3d_draw 2021-05-31 01:32:58 -04:00
Reonu
2664867d59 added an option to disable AA in config.h 2021-05-28 23:40:01 +01:00
Reonu
8b2d211d3b Merge pull request #6 from someone2639/u16_models
U16 models (again)
2021-05-27 19:00:28 +01:00
someone2639
77ef99bd65 set default model count to 256 2021-05-27 13:45:15 -04:00
someone2639
d9712b078c revert model ID to u16 2021-05-27 13:43:46 -04:00
Reonu
f99dc243d5 Merge pull request #5 from someone2639/u16_models
cleaned up my code a bit (also u32 models because eh why not) (also i'm insane)
2021-05-27 18:27:10 +01:00
Reonu
7d3f414da0 Added option to disable lives 2021-05-27 17:35:05 +01:00
Reonu
c4ebebb884 Merge branch 'master' of https://github.com/Reonu/ultrasm64-extbounds 2021-05-27 07:47:12 +01:00
Reonu
f5d37be14c defined config.h in rendering_graph_node.c 2021-05-27 07:46:59 +01:00
someone2639
6beb1dfa9e made the level script code more clear in what it was comparing 2021-05-27 01:21:05 -04:00
someone2639
b6c9fba41a u32 model ID because that makes more sense! 2021-05-27 00:37:03 -04:00
someone2639
0ee319a300 more modularity; fixed an assert in sm64.ld so it doesnt trip if ext ram is defined 2021-05-27 00:34:53 -04:00
someone2639
bd79934f00 make model count a define so it's easier to change in case you need memory 2021-05-27 00:21:37 -04:00
someone2639
2da776c9c0 s32 model ID to make the code cleaner 2021-05-27 00:15:06 -04:00
Reonu
e383b5945f Update README.md
16 bit model IDs info
2021-05-26 23:14:31 +01:00
Reonu
2e5cc9aa38 Merge pull request #4 from someone2639/u16_models
16 bit model IDs
2021-05-26 23:10:55 +01:00
someone2639
03a6eeeb37 fixed up any reference to 8 bit models with the new ModelID type 2021-05-26 18:01:34 -04:00
someone2639
a4a6a85312 updated level script commands to take u16 models 2021-05-26 18:01:34 -04:00
someone2639
2bedce7f1f added ModelID type 2021-05-26 18:01:34 -04:00
someone2639
a45f38f06d model id structure is u16 2021-05-26 18:01:30 -04:00
Reonu
b62c4d8431 update readme 2021-05-26 18:23:46 +01:00
Reonu
7f47086df9 Included actors/group0.c in behavior_data.c 2021-05-26 18:23:09 +01:00
Reonu
9aa91af8cb changed the widescreen text again 2021-05-26 17:51:24 +01:00
Reonu
9e06e078d6 ifdef'd more widescreen code 2021-05-26 17:36:45 +01:00
Reonu
c841546f02 simplified the text strings for the widescreen option 2021-05-26 17:34:38 +01:00
Reonu
9bac5dd2e2 Merge branch 'master' of https://github.com/Reonu/ultrasm64-extbounds 2021-05-26 17:06:56 +01:00
Reonu
6dbe08d20a fixed typo in config.h 2021-05-26 17:06:48 +01:00
Reonu
44baa827f8 Update README.md 2021-05-26 16:36:37 +01:00
Reonu
c292f839e3 updated info in the config file 2021-05-26 16:27:46 +01:00
Reonu
ab44d4b855 update readme 2021-05-26 16:19:55 +01:00
Reonu
8e4fac3885 Added global star IDs, disabled by default, toggleable in config.h 2021-05-26 16:18:42 +01:00
Reonu
a8c24713be Update README.md
added info on patches that can be toggled in config.h
2021-05-26 15:32:17 +01:00
Reonu
953451ba7c Moved the coordinate overflow fix setting to config.h 2021-05-26 15:28:06 +01:00
Reonu
9d2ec5d911 Longer poles patch is now toggleable in config.h 2021-05-26 15:13:36 +01:00
Reonu
dbea1f734b Removing course specific camera processing is now a toggle in config.h 2021-05-26 15:10:32 +01:00
Reonu
aabf12a079 Made peach letter skip toggleable in config.h 2021-05-26 15:07:11 +01:00
Reonu
98a09b0703 Added title screen skip, toggleable in config.h 2021-05-26 15:01:56 +01:00
Reonu
2bff1ea839 made skipping the mario head the default 2021-05-26 14:56:55 +01:00
Reonu
4ec84ad51c Added mario head skip as a toggle in config.h 2021-05-26 14:55:59 +01:00
Reonu
9cae5d864b Made automatic LODs based on console detection toggleable in config.h 2021-05-26 14:44:07 +01:00
Reonu
84d4c8b84b Made widescreen toggleable in config.h. Also made the widescreen variable global while I'm at it. 2021-05-26 14:41:46 +01:00
Reonu
bdf81ba882 disabled course specific camera processing properly 2021-05-25 01:50:46 +01:00
Reonu
033af6273d Revert "removed the vanilla course specific camera processing"
This reverts commit baadb4e52a.
2021-05-25 01:47:53 +01:00
Reonu
bbfd4129ce bparam4 fix 2021-05-24 22:41:42 +01:00
Reonu
8f8b24764a Added extra pole length patch 2021-05-24 22:41:07 +01:00
Reonu
5097e6f666 Disabled rumble by default to prevent crashes 2021-05-24 09:02:40 +01:00
Reonu
8d9dcbf089 Update readme (updated widescreen info + added area specific camera processing info) 2021-05-24 08:59:11 +01:00
Reonu
1c7a69bd78 removed lvl_set_widescreen since it made no sense, and moved the widescreen text to a better position on-screen 2021-05-24 08:57:33 +01:00
Reonu
baadb4e52a removed the vanilla course specific camera processing 2021-05-24 01:42:14 +01:00
Reonu
5ca5e4d558 deleted stupid .orig files that shouldn't be there 2021-05-23 01:28:36 +01:00
Reonu
c3cc860cc4 declared create_dl_scale_matrix in ingame_menu.h (thanks cheeze) 2021-05-20 22:32:19 +01:00
Reonu
6c276dc453 Update README.md 2021-05-18 16:51:04 +01:00
Reonu
5dd931faa0 Updated the coordinate overflow fix info in readme 2021-05-18 16:50:33 +01:00
Reonu
21105b715b Update readme with info on the instant input patch 2021-05-18 00:41:12 +01:00
Reonu
3b4ae07a04 Added instant input patch by Wiseguy 2021-05-18 00:31:54 +01:00
farisawan-2000
36574f5455 added button input 2021-05-16 11:37:06 -04:00
Reonu
5cc810f09e Merged upstream 2021-05-13 21:26:54 +01:00
CrashOveride95
1d447b0dbd Make info prints debug only 2021-05-13 16:20:52 -04:00
CrashOveride95
9570c184e2 Update Makefile 2021-05-13 16:19:49 -04:00
Reonu
bd9684d1b3 Removed old patch files 2021-05-12 11:29:35 +01:00
Reonu
30f76c3aa3 Update readme.md with widescreen info 2021-05-09 22:41:22 +01:00
Reonu
08223110ff Widescreen support. 2021-05-09 22:34:22 +01:00
Reonu
b7e7c82e93 Merge remote-tracking branch 'upstream/master' 2021-05-09 22:16:25 +01:00
Reonu
c6febf909e removed the timestamped file so you can get matching builds (wtf crash) 2021-05-09 20:47:56 +01:00
CrashOveride95
1fe697b02e Add F3DEX2PL 2021-05-08 22:40:59 -04:00
Reonu
31c35469f1 Fixed pole fix for real 2021-05-07 14:58:45 +01:00
Reonu
fef6617890 Fixed pole fix causing the game to crash PJ64 2.4 2021-05-07 14:41:14 +01:00
Reonu
73ec3dd2ed fixed stupid ledgegrab crash 2021-05-07 13:07:40 +01:00
Reonu
47427b89a9 Update README.md 2021-05-07 04:26:59 +01:00
Reonu
8d6b7876c0 Update README.md 2021-05-07 04:22:36 +01:00
Reonu
7e384185e0 Update README.md 2021-05-07 04:13:10 +01:00
Reonu
ff55e705ea Update README.md 2021-05-07 04:09:19 +01:00
Reonu
a4f36bc076 Merge pull request #3 from Cheezepin/master
if this breaks the repo, blame cheeze
2021-05-07 04:08:14 +01:00
Cheezepin
f8ee0c8c1e i hate this 2021-05-06 16:06:18 -07:00
Reonu
3c8def9236 Update README.md 2021-05-06 22:32:58 +01:00
Reonu
a4ddfd8bc8 Mario head skip 2021-05-06 22:32:09 +01:00
Reonu
5b403c4f8f Peach cutscene skip 2021-05-06 22:30:37 +01:00
Reonu
46f20ffc76 Revert "Update README.md"
This reverts commit 314e51c41e.
2021-05-06 22:27:21 +01:00
Reonu
c382ed780c Revert "frame patch"
This reverts commit dce30fb75e.
2021-05-06 22:22:15 +01:00
Reonu
314e51c41e Update README.md 2021-05-06 22:11:26 +01:00
Reonu
75b62fa029 Merge pull request #2 from Cheezepin/master
Frame's patch (rounded corners and quarter-step shenanigans)
2021-05-06 22:10:29 +01:00
Cheezepin
dce30fb75e frame patch 2021-05-06 13:52:12 -07:00
Reonu
c163fbe54a Update README.md 2021-05-04 02:34:06 +01:00
Reonu
116bd92271 Added console detection. LODs will be disabled if emu is detected. 2021-05-04 02:27:20 +01:00
Reonu
1c7935c341 removed unnecesary lines 2021-05-03 21:57:36 +01:00
Reonu
102b266ffa Added FPS counter (thanks Wiseguy) 2021-05-03 21:56:16 +01:00
CrashOveride95
caaf685241 Fix F3DEX1 2021-05-02 09:28:16 -04:00
Reonu
e6539d63eb Update README.md 2021-04-28 22:14:16 +01:00
Reonu
2526ae06f1 Fixed water surface type patch after the exposed ceiling fix messed with it 2021-04-28 16:12:58 +01:00
Reonu
b6fc491dd2 Merge branch 'master' of https://github.com/Reonu/ultrasm64-extbounds 2021-04-27 21:26:47 +01:00
Reonu
a716bee896 Exposed ceilings fix 2021-04-27 21:25:54 +01:00
Reonu
ad1702ecc8 pole fix 2021-04-27 21:25:46 +01:00
Reonu
58146790aa Slope fix 2021-04-27 21:18:07 +01:00
Reonu
6965916974 Merge pull request #1 from thecozies/fix_water_downslopes
Fixed moving towards water downslopes
2021-04-27 12:31:12 +01:00
thecozies
ab42e08688 Fixed moving towards water downslopes 2021-04-27 06:25:07 -05:00
Reonu
52c8acdf5e removed black borders 2021-04-27 12:12:11 +01:00
Reonu
4a5dcdb7b3 merged platform displacement 2 by arthur 2021-04-27 12:10:40 +01:00
Reonu
cbcba7b6f9 applied falcobuster's long render distance fix 2021-04-27 11:54:51 +01:00
Reonu
960f695115 uncringed the patching behaviour 2021-04-27 11:54:02 +01:00
Reonu
7f65d72270 Merge remote-tracking branch 'thecozies/water-surface-type' 2021-04-27 11:52:36 +01:00
farisawan-2000
9badbc2093 fix readme 2021-04-20 10:01:05 -04:00
farisawan-2000
e1d5ecc622 update readme; deprecate rotation 2021-04-20 10:00:15 -04:00
farisawan-2000
dd2afd23dc added papyrus; 5 fonts are done! 2021-04-20 09:34:45 -04:00
farisawan-2000
ef7eec5e5d add Ubuntu and Times New Roman fonts 2021-04-20 08:51:19 -04:00
farisawan-2000
b41e9ca3bb new defines for font changing; regenerated impact/comic sans; dropshadow WIP pixel offset 2021-04-20 03:00:55 -04:00
farisawan-2000
bd29ff7f70 brand new impact font 2021-04-20 01:27:59 -04:00
farisawan-2000
6c8acc2d39 add new fonts very easily; comic sans font added 2021-04-20 00:50:13 -04:00
CrashOveride95
51c34079b3 Add uncompressed (lol) 2021-04-18 13:37:52 -04:00
CrashOveride95
69c5d0cbb1 Remove GDB because it was broken to begin with 2021-04-18 12:29:43 -04:00
CrashOveride95
4068afb39f Start GDB work (broken rn) 2021-04-16 20:50:06 -04:00
CrashOveride95
cf77e2db67 Fix up printing and begin GDB 2021-04-16 20:02:56 -04:00
CrashOveride95
8a8253291a Add UNF to readme 2021-04-16 17:56:32 -04:00
CrashOveride95
845c4abb0f Merge pull request #4 from Mr-Wiseguy/usb-fix
Fixed usb library
2021-04-16 17:48:34 -04:00
Mr-Wiseguy
3ae5eeb1e8 Fixed usb library 2021-04-15 21:30:00 -04:00
CrashOveride95
829de0d2ed remove VERSION_JP_US (why was this here?) 2021-04-12 18:47:40 -04:00
CrashOveride95
ebe997d8e0 Make final link use gc-sections 2021-04-12 18:21:14 -04:00
CrashOveride95
ca05f4a5fd Add IS-Viewer faking 2021-04-11 20:49:21 -04:00
CrashOveride95
5048caff1e Update UNF (still broken though ) :( 2021-04-11 18:20:32 -04:00
CrashOveride95
623bf3bfcb Merge pull request #3 from jopadan/master
Add mips64-ld compiler prefix to support standard glankk/n64
2021-03-29 20:08:52 -04:00
Jon Daniel
05289c851b Change order of compiler prefix and add more 2021-03-29 23:27:16 +00:00
Jon Daniel
72ae87d1ca Add mips64-ld to support glankk/n64 2021-03-29 23:19:33 +00:00
CrashOveride95
da1c4fbad7 Merge pull request #2 from Mr-Wiseguy/rnc1-dev
RNC1 optimizations
2021-03-29 16:32:16 -04:00
CrashOveride95
ea6c7d60e1 Add goddard as togglable and stop linking segments seperately 2021-03-28 20:54:54 -04:00
Mr-Wiseguy
0fdb2d0ace RNC1 optimizations 2021-03-28 15:56:47 -04:00
CrashOveride95
359ba19531 Create linked segments for main and engine
simplifying the linkerscript
2021-03-27 21:12:27 -04:00
CrashOveride95
756b21db88 Add fix for LOAD_MIO0 stuff 2021-03-23 17:46:54 -04:00
CrashOveride95
3df95c8302 Merge branch 'master' of https://github.com/CrashOveride95/ultrasm64 2021-03-23 17:41:17 -04:00
CrashOveride95
9fb5f79e97 Add MIO0 🧌 2021-03-23 17:41:15 -04:00
CrashOveride95
07900b37ea Merge pull request #1 from 0xfedfedfe/filesizer
Rewrite filesizer
2021-03-21 22:40:03 -04:00
0xfedfedfe
fb2ec6f067 Fix misspelling in Makefile 2021-03-21 15:44:17 +00:00
farisawan-2000
24e3e0060c deferred prints! 2021-03-13 13:06:42 -05:00
farisawan-2000
4eed305ebc added error handling; fixed a few warnings 2021-03-11 16:50:55 -05:00
0xfedfedfe
ec6ca8c087 Rewrite filesizer 2021-03-06 21:12:51 +00:00
thecozies
571bae013e Added water surface type patch 2021-03-03 08:05:11 -06:00
thecozies
545eb58102 Added extended bounds patch 2021-03-03 07:02:34 -06:00
Axollyon
6c19190175 Text alignment and reset character (#1)
Co-authored-by: Axollyon <Axollyon@users.noreply.github.com>
2021-02-24 12:28:46 -05:00
farisawan-2000
2dcd82edbf added defines for rsp/rdp init 2021-02-23 19:54:31 -05:00
farisawan-2000
f950d7f8fe re-init rsp/rdp so no memes happen after s2d is unloaded 2021-02-23 19:47:06 -05:00
CrashOveride95
312906439d Add VI res changing 2021-02-13 18:17:45 -05:00
CrashOveride95
6852d59d54 Remove unneeded align 2021-02-07 19:39:18 -05:00
CrashOveride95
1d564a8043 Remove unused buffers 2021-02-02 17:50:20 -05:00
CrashOveride95
82f1b1c433 clean more 2021-02-01 18:54:23 -05:00
CrashOveride95
df683203aa Clean up a bit 2021-02-01 18:43:44 -05:00
CrashOveride95
17b936a3ad Remove IDO 2021-02-01 18:23:36 -05:00
CrashOveride95
906f34af45 Fix sound player again 2021-01-30 21:07:43 -05:00
CrashOveride95
e1df506e72 rncpack license details 2021-01-30 20:46:06 -05:00
CrashOveride95
66b177dc5b Fix shindou again 2021-01-30 20:43:39 -05:00
CrashOveride95
dd2449db79 Use gcc for assembly if gcc is the compiler 2021-01-30 18:14:50 -05:00
CrashOveride95
4e5b204c15 Fix other compressions 2021-01-26 15:56:34 -05:00
CrashOveride95
0d513080a6 Build libz from source 2021-01-25 22:55:36 -05:00
CrashOveride95
90371f0a8d Add RNC compression and make cpp preprocess asm 2021-01-25 22:21:15 -05:00
CrashOveride95
d0e19eaf23 Update README.md 2021-01-25 12:42:24 -05:00
CrashOveride95
c2fefc503f Now just the ELF and Z64 are made 2021-01-25 00:44:33 -05:00
CrashOveride95
e8c8f4bdf0 lol i broke it by using no -O2 lmao 2021-01-25 00:05:45 -05:00
CrashOveride95
5b88275a92 lib fixes 2021-01-24 21:34:11 -05:00
CrashOveride95
3a9ee0ca7c pad to 8mb again 2021-01-24 14:10:40 -05:00
CrashOveride95
01826fd85b Make gzip work 2021-01-24 14:06:58 -05:00
CrashOveride95
63cfef85a6 add check for modernsdk toolchain 2021-01-23 13:28:35 -05:00
farisawan-2000
299b6bc1f5 explicit initialization of result in s2d_strlen 2021-01-15 17:26:07 -05:00
CrashOveride95
3e18c5f614 Fix bug in sram funcs
The offset would be divided by 8/shifted by 3 due to EEPROM being accessed in 8byte blocks
2021-01-12 16:58:18 -05:00
CrashOveride95
3d5e3661fb Align size for SRAM to fix issue with a certain crap emu 2021-01-11 01:16:49 -05:00
CrashOveride95
02e6466e5c SRAM support 2021-01-11 00:46:56 -05:00
CrashOveride95
ba58de803a Clean up slidec a bit 2021-01-10 09:41:39 -05:00
farisawan-2000
e6e134fff6 added separator character to be able to separate parameters and numbers without a space 2021-01-09 21:53:27 -05:00
farisawan-2000
5a3770e8b2 added dropshadow docs 2021-01-07 14:08:17 -05:00
farisawan-2000
13e5ecbdbb updated readme to have some better sample code 2021-01-07 14:07:27 -05:00
CrashOveride95
d15c2d494d Fix most gzip things *EXCEPT THE ACTUAL DECOMPRESSION*
AYY LMAO
2021-01-04 00:44:54 -05:00
CrashOveride95
9e0fc1b088 align compsize 2021-01-03 15:57:53 -05:00
CrashOveride95
163cd9a17b Append size of uncomp data to end of gzip 2021-01-03 15:48:35 -05:00
CrashOveride95
a422d92b16 whoops wrong argument 2021-01-03 13:21:10 -05:00
CrashOveride95
fc0aabe98e Add NON-WORKING gzip DEFLATE support 2021-01-03 13:09:20 -05:00
CrashOveride95
08f47d350b Remove old comment 2021-01-02 22:53:51 -05:00
CrashOveride95
18d84b1351 Change ique to bb in makefile 2021-01-02 22:52:48 -05:00
CrashOveride95
d242a07102 Add iQue support 2021-01-02 22:48:12 -05:00
CrashOveride95
4eb3896bd8 Make HVQM disableable, making IDO usable again 2021-01-02 21:19:27 -05:00
CrashOveride95
c621be8f1d UNF Progress (still broken LOL) 2021-01-01 15:42:01 -05:00
farisawan-2000
be343003fc added initial support for kerning tables 2020-12-28 17:40:57 -05:00
farisawan-2000
2710f4e36a general updates 2020-12-28 13:27:53 -05:00
farisawan-2000
0d0ee9b86a optimized RDP command execution 2020-12-19 14:16:59 -05:00
farisawan-2000
14937ef62b this belongs on the other branch 2020-12-18 23:53:29 -05:00
CrashOveride95
dba8608561 *it still lags* 2020-12-18 22:36:09 -05:00
farisawan-2000
75e39c574c added more cool defines! 2020-12-18 20:10:22 -05:00
farisawan-2000
ae91cbaf50 added simple drop shadow support 2020-12-18 18:38:27 -05:00
farisawan-2000
907ed074fb fixed typo in readme 2020-12-17 23:57:38 -05:00
farisawan-2000
0e481ef42b Added readme 2020-12-17 23:55:17 -05:00
farisawan-2000
6477265539 cleanup; refactoring 2020-12-16 18:06:46 -05:00
farisawan-2000
6a5e971bd2 shelved s2d_vsprint 2020-12-16 01:12:08 -05:00
farisawan-2000
8f7a3b6f0b cleanup 2020-12-16 00:57:28 -05:00
farisawan-2000
a11d88c2a7 cleanup 2020-12-15 23:37:44 -05:00
farisawan-2000
7405b27509 added \t, \v, \n 2020-12-15 23:36:40 -05:00
farisawan-2000
9597bc91c3 updated headers to reduce warnings 2020-12-15 23:10:28 -05:00
farisawan-2000
93283ed408 added s2d_print stuff to header 2020-12-15 23:07:38 -05:00
farisawan-2000
80672dafb7 added newlines 2020-12-15 23:06:09 -05:00
farisawan-2000
9f367cea26 saved a file 2020-12-15 22:58:29 -05:00
farisawan-2000
63bdf9ddec text typing now works; implemented initial vsprint 2020-12-15 22:57:04 -05:00
farisawan-2000
3a5aac7c23 fixed rotate typing 2020-12-15 22:08:58 -05:00
farisawan-2000
4692fba7e5 reverted atoi 2020-12-15 21:21:02 -05:00
farisawan-2000
10e50664f0 initial rotation typing support 2020-12-15 17:50:40 -05:00
farisawan-2000
ac3c4dbf75 text typing now in a suitable release state 2020-12-15 17:46:07 -05:00
farisawan-2000
29855712a8 initial tests for text speed 2020-12-13 22:30:24 -05:00
farisawan-2000
1d7881bf3c remove infinite loop 2020-12-13 22:24:18 -05:00
farisawan-2000
54869be8a3 actually removed stack.c 2020-12-13 18:42:49 -05:00
farisawan-2000
5f64fc0797 removed unnecessary stack.c; refactoring stuff 2020-12-13 18:31:42 -05:00
farisawan-2000
e1a732adb0 removed fillrect func for now 2020-12-12 22:03:04 -05:00
farisawan-2000
ce1f5b38e7 start infrastructure for new text features: scrolling, typing, backgrounds 2020-12-12 21:56:36 -05:00
farisawan-2000
738c0a220e using gdl_head to tie the engine less to SM64 2020-12-12 20:28:07 -05:00
farisawan-2000
c52a054fdb color macro 2020-12-12 19:45:53 -05:00
farisawan-2000
87b4a3195e rotation and translation work 2020-12-12 18:50:26 -05:00
farisawan-2000
aef2b9c8af scaling and printing confirmed working, rotation does something 2020-12-12 16:20:37 -05:00
farisawan-2000
b081365e42 mtx pipeline2 works 2020-12-12 15:47:12 -05:00
farisawan-2000
72703d9b61 save state: printing works 2020-12-12 15:35:29 -05:00
farisawan-2000
d5f43751a9 save state 2020-12-12 15:33:14 -05:00
farisawan-2000
a7e593f333 add arbitrary scaling functionality 2020-12-11 22:51:58 -05:00
farisawan-2000
871eed30af init 2020-12-11 21:47:11 -05:00
CrashOveride95
84c58a66d2 Remove unused functions 2020-12-09 19:36:09 -05:00
CrashOveride95
5b97e1072a Add (BROKEN) UNFLoader 2020-12-09 16:38:26 -05:00
CrashOveride95
d5106362b9 Add crash custom 2020-12-09 14:48:05 -05:00
CrashOveride95
e64a136976 Fix one rumble outlier 2020-12-09 14:21:38 -05:00
CrashOveride95
d643eda27f HVQM no lag!! 2020-12-09 14:10:43 -05:00
CrashOveride95
a242b18d99 Clean up HVQM code a little 2020-12-09 09:23:26 -05:00
CrashOveride95
7f4cefdc36 Get HVQM working 2020-12-09 09:05:40 -05:00
CrashOveride95
5e042fd82c Begin HVQM support 2020-12-08 21:41:03 -05:00
CrashOveride95
7627c8511d Add Rumble support 2020-12-08 19:28:12 -05:00
CrashOveride95
f9e6070f29 Fix bfd 2020-12-04 06:25:07 -05:00
CrashOveride95
7240c46420 Fix warnings 2020-12-03 22:27:06 -05:00
CrashOveride95
5d16f873c5 Fix Shindou 2020-12-03 22:19:14 -05:00
CrashOveride95
ad09c29ebc Merge remote-tracking branch 'sm64pub/master' 2020-12-03 22:10:46 -05:00
mountainflaw
ecd3d152fb Update README.md 2020-12-03 21:00:33 -05:00
n64
a53de1e70c Refresh 13 2 2020-12-03 20:57:48 -05:00
CrashOveride95
15c0bfedbb Port libultra and yay0 (shindou is broken currently) 2020-12-03 20:19:03 -05:00
CrashOveride95
6a80548e8f Disable compare 2020-12-03 19:23:06 -05:00
CrashOveride95
d2cfdfbce6 fix merge conf 2020-12-03 19:16:09 -05:00
CrashOveride95
ce407f3112 Update README.md 2020-12-03 15:48:30 -05:00
n64
6d87c424b8 Refresh 13 2020-12-03 14:26:38 -05:00
someone2639
1d45b3663a added smallest working alignment to engine segment 2020-11-05 14:45:20 -05:00
farisawan-2000
325126e3b3 made load_engine_code_segment use linker symbols instead of old hardcoded segments 2020-11-05 14:23:37 -05:00
farisawan-2000
3f8f49c726 replaced SEG_POOL_END in main_pool_init with a dynamic end that depends on POOL_SIZE instead 2020-11-05 14:22:57 -05:00
farisawan-2000
b84d4ea715 refactor linker script so segments are shiftable 2020-11-05 14:22:02 -05:00
farisawan-2000
475390ac27 Added additional externs at segment_symbols.h 2020-11-05 14:21:40 -05:00
farisawan-2000
2d950b7099 Patched Segments.h 2020-11-05 14:21:07 -05:00
farisawan-2000
8d2aa3cb16 Revert typo in segments.h 2020-11-05 14:20:19 -05:00
n64
8b872a71e8 Refresh 12 2020-09-20 11:15:47 -04:00
n64
9214dddabc Refresh 11 2020-07-04 11:18:55 -04:00
n64
05c7d7031c Refresh 10.1 2020-06-17 22:14:59 -04:00
n64
d43d9b7f20 Refresh 10 2020-06-02 12:44:34 -04:00
mountainflaw
e58669b4b3 Use new Discord invite link 2020-05-13 18:11:50 -04:00
Matt Kempster
9a40d86f6a Merge pull request #36 from ahouts/master
Add Docker Support
2020-04-19 12:06:42 -07:00
n64
c45aa301bb Refresh 8 2020-04-03 14:57:26 -04:00
Andrew Houts
0987c9c91d incorporate streetster's suggestions 2020-04-02 11:00:05 -07:00
Andrew Houts
a48d6b03d6 add docker config 2020-03-31 20:28:58 -07:00
n64
06ec56df7f Refresh 7 2020-03-01 22:42:52 -05:00
n64
9a801cb96d refresh 6 2020-02-03 00:51:26 -05:00
n64
9273f38df1 refresh 5 2020-01-03 10:38:57 -05:00
n64
04732af90b refresh 4 2019-12-01 21:52:53 -05:00
n64
a7c423cb43 Refresh 3 2019-11-03 14:36:27 -05:00
n64
6b8bc9b9ec Refresh #2a (hotfix) 2019-10-05 19:41:44 -04:00
n64
b1665cdfdb HOTFIX: Text Makefile dependency 2019-10-05 19:40:22 -04:00
n64
52e605f075 Refresh 2 2019-10-05 15:08:05 -04:00
n64
1ef98ec785 Refresh 1 2019-09-01 15:50:50 -04:00
mountainflaw
c6102eb802 Merge pull request #1 from bramhaag/patch-2
Fixed formatting issue in README.md
2019-08-25 17:34:16 -04:00
Bram Hagens
50abf504a9 Fixed formatting issue 2019-08-25 08:41:24 +02:00
5667 changed files with 672184 additions and 534735 deletions

View File

@@ -1,4 +1,5 @@
IndentWidth: 4
Language: Cpp
AlignAfterOpenBracket: Align
SortIncludes: false
ColumnLimit: 104
@@ -8,8 +9,10 @@ AllowShortIfStatementsOnASingleLine: false
BinPackArguments: true
BinPackParameters: true
SpaceAfterCStyleCast: true
BreakBeforeBraces: Attach
BreakBeforeTernaryOperators: true
BreakBeforeBinaryOperators: NonAssignment
Cpp11BracedListStyle: false
IndentCaseLabels: true
AlignTrailingComments: true
UseTab: Never

6
.clang-tidy Normal file
View File

@@ -0,0 +1,6 @@
---
Checks: '-*,readability-braces-around-statements'
WarningsAsErrors: ''
HeaderFilterRegex: '(src|include|enhancements)\/.*\.h$'
FormatStyle: 'file'
CheckOptions:

23
.gitattributes vendored Normal file
View File

@@ -0,0 +1,23 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# List text files in case git doesn't characterize correctly
*.c text eol=lf
*.h text eol=lf
*.s text eol=lf
*.in text eol=lf
*.js text eol=lf
*.md text eol=lf
*.py text eol=lf
*.sh text eol=lf
*.ld text eol=lf
*.inc text eol=lf
*.txt text eol=lf
*.json text eol=lf
*.yaml text eol=lf
# Same for binary
*.bin binary
*.m64 binary
*.png binary
*.aiff binary

2120
.gitignore vendored

File diff suppressed because it is too large Load Diff

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "lib/libpl"]
path = lib/libpl
url = https://gitlab.com/parallel-launcher/libpl.git

40
.vscode/c_cpp_properties.json vendored Normal file
View File

@@ -0,0 +1,40 @@
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/include/n64/**",
"${workspaceFolder}/include/**",
"${workspaceFolder}/textures/**",
"${workspaceFolder}/build/us_n64/**",
"${workspaceFolder}/**"
],
"forcedInclude": [
"${workspaceFolder}/include/types.h",
"${workspaceFolder}/include/n64/ultra64.h",
"${workspaceFolder}/include/sm64.h",
"${workspaceFolder}/include/config.h",
"${workspaceFolder}/include/make_const_nonconst.h",
"${workspaceFolder}/include/geo_commands.h",
"${workspaceFolder}/include/level_commands.h",
"${workspaceFolder}/include/segment_symbols.h",
"${workspaceFolder}/include/command_macros_base.h",
"${workspaceFolder}/include/object_constants.h"
],
"defines": [
"TARGET_N64=1",
"VERSION_US=1",
"F3DEX_GBI_2=1",
"F3DZEX_NON_GBI_2=1",
"F3DEX_GBI_SHARED=1",
"LIBPL=1",
"SDATA=1"
],
"compilerPath": "/usr/bin/mips-linux-gnu-gcc",
"cStandard": "gnu17",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x86"
}
],
"version": 4
}

11
CODEOWNERS Normal file
View File

@@ -0,0 +1,11 @@
# Lines starting with '#' are comments.
# Each line is a file pattern followed by one or more owners.
# These owners will be the default owners for everything in the repo.
* @Reonu @gheskett @arthurtilly
# Order is important. The last matching pattern has the most precedence.
# So if a pull request only touches javascript files, only these owners
# will be requested to review.
# You can also use email addresses if you prefer.

18
Dockerfile Normal file
View File

@@ -0,0 +1,18 @@
FROM ubuntu:22.04 as build
RUN apt-get update && \
apt-get install -y \
binutils-mips-linux-gnu \
bsdextrautils \
build-essential \
gcc-mips-linux-gnu \
libcapstone-dev \
pkgconf \
python3
RUN mkdir /hackersm64
WORKDIR /hackersm64
ENV PATH="/hackersm64/tools:${PATH}"
CMD echo 'Usage: docker run --rm -v ${PWD}:/hackersm64 hackersm64 make VERSION=us -j4\n' \
'See https://github.com/HackerN64/HackerSM64/blob/master/README.md for more information'

2482
Doxyfile

File diff suppressed because it is too large Load Diff

45
Jenkinsfile vendored
View File

@@ -1,45 +0,0 @@
pipeline {
agent any
stages {
stage('Build Tools') {
steps {
sh 'make -j4 -C tools/'
}
}
stage('Extract Assets') {
steps {
sh 'ln -s "$ROMS_DIR/Super Mario 64 (J) [!].z64" baserom.jp.z64'
sh 'ln -s "$ROMS_DIR/Super Mario 64 (U) [!].z64" baserom.us.z64'
sh 'ln -s "$ROMS_DIR/Super Mario 64 (E) (M3) [!].z64" baserom.eu.z64'
// verify no assets were committed to repo
sh '[ -z "$(find {actors,levels,textures}/ -name \'*.png\')" ]'
sh '[ -z "$(find assets/ -name \'*.m64\' -or \'*.bin\')" ]'
sh './extract_assets.py jp us eu'
}
}
stage('Build J Source') {
steps {
sh 'make -j4 VERSION=jp'
}
}
stage('Build U Source') {
steps {
sh 'make -j4 VERSION=us'
}
}
stage('Build J Source, NON_MATCHING') {
steps {
sh 'make -j4 VERSION=jp NON_MATCHING=1'
}
}
stage('Build U Source, NON_MATCHING') {
steps {
sh 'make -j4 VERSION=us NON_MATCHING=1'
}
}
}
environment {
QEMU_IRIX = credentials('qemu-irix')
ROMS_DIR = credentials('roms')
}
}

1218
Makefile

File diff suppressed because it is too large Load Diff

View File

@@ -2,10 +2,16 @@
# General Rules
# --------------------------------------
# obtain a list of segments from the *.s files in bin directory
SEGMENTS := $(notdir $(basename $(wildcard bin/*.s))) $(addprefix $(VERSION)/,$(notdir $(basename $(wildcard bin/$(VERSION)/*.s))))
ACTORS := $(filter %/,$(wildcard actors/*/))
TEXTURE_DIRS := $(addprefix textures/,$(SEGMENTS)) $(ACTORS) textures/intro_raw
# obtain a list of segments from the *.c files in bin directory
SEGMENTS := \
$(notdir $(basename $(wildcard bin/*.c))) \
$(addprefix $(VERSION)/,$(notdir $(basename $(wildcard bin/$(VERSION)/*.c)))) \
$(addsuffix _skybox,$(notdir $(basename $(wildcard textures/skyboxes/*.png))))
# Directories containing PNG files
TEXTURE_DIRS := \
$(wildcard textures/*/) \
$(filter %/,$(wildcard actors/*/))
# NOTE: textures assume naming convention "texture.<encoding>.png" generates "texture.<encoding>"
@@ -32,12 +38,21 @@ ACTOR_GROUPS := \
common1
LEVEL_FILES := $(addsuffix leveldata,$(LEVEL_DIRS))
MIO0_FILES := $(addprefix $(MIO0_DIR)/,$(addsuffix .mio0,$(SEGMENTS) $(ACTOR_GROUPS) $(LEVEL_FILES)))
MIO0_OBJ_FILES := $(MIO0_FILES:.mio0=.mio0.o)
SEGMENT_ELF_FILES := $(addprefix $(BUILD_DIR)/bin/,$(addsuffix .elf,$(SEGMENTS)))
ACTOR_ELF_FILES := $(addprefix $(BUILD_DIR)/bin/,$(addsuffix .elf,$(ACTOR_GROUPS)))
LEVEL_ELF_FILES := $(addprefix $(BUILD_DIR)/bin/,$(addsuffix .elf,$(LEVEL_FILES)))
LEVEL_ELF_FILES := $(foreach level_dir,$(LEVEL_DIRS),$(BUILD_DIR)/levels/$(level_dir)leveldata.elf)
SEG_FILES := \
$(SEGMENTS:%=$(BUILD_DIR)/bin/%.elf) \
$(ACTOR_GROUPS:%=$(BUILD_DIR)/actors/%.elf) \
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.elf)
YAY0_FILES := \
$(SEGMENTS:%=$(BUILD_DIR)/bin/%.szp) \
$(ACTOR_GROUPS:%=$(BUILD_DIR)/actors/%.szp) \
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.szp)
YAY0_OBJ_FILES := $(YAY0_FILES:.szp=.szp.o)
# --------------------------------------
# Actor Rules
@@ -53,8 +68,8 @@ KING_BOBOMB_DIRS := king_bobomb water_bubble
BOO_DIRS := bookend book chair small_key mad_piano boo haunted_cage
MR_I_DIRS := mr_i_eyeball mr_i_iris swoop snufit dorrie scuttlebug
HOOT_DIRS := yellow_sphere_small hoot yoshi_egg thwomp bullet_bill heave_ho
COINS_DIRS := mist explosion butterfly coin warp_pipe door bowser_key flame blue_fish pebble leaves warp_collision mario_cap power_meter mushroom_1up star sand dirt transparent_star white_particle wooden_signpost tree
BUBBA_DIRS := bubba wiggler lakitu_enemy spiny_egg spiny
COINS_DIRS := mist explosion butterfly coin warp_pipe door bowser_key flame blue_fish pebble leaves mario_cap breath_meter power_meter mushroom_1up star sand dirt transparent_star white_particle wooden_signpost tree
BUBBA_DIRS := bubba wiggler wiggler_body_part lakitu_enemy spiny_egg spiny
SKEETER_DIRS := skeeter seaweed water_mine cyan_fish bub water_ring treasure_chest
KLEPTO_DIRS := klepto eyerok pokey tornado
SEA_DIRS := clam_shell manta sushi unagi whirlpool
@@ -63,231 +78,195 @@ MOLE_DIRS := monty_mole_hole monty_mole smoke ukiki fwoosh
LAKITU_DIRS := lakitu_cameraman toad mips boo_castle
PEACH_DIRS := bird peach yoshi
BOWSER_DIRS := bowser_flame impact_ring yellow_sphere bowser bomb impact_smoke
MARIO_DIRS := mario bubble walk_smoke burn_smoke stomp_smoke water_waves sparkle water_splash white_particle_small sparkle_animation
MARIO_DIRS := mario bubble walk_smoke burn_smoke small_water_splash water_wave sparkle water_splash white_particle_small sparkle_animation
# Actor Files
AMP_CHUCKYA_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(AMP_DIRS)),$(basename $(wildcard $(dir)/*.png)))
BOBOMBS_BUBBLE_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(KING_BOBOMB_DIRS)),$(basename $(wildcard $(dir)/*.png)))
BOO_BOOKEND_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BOO_DIRS)),$(basename $(wildcard $(dir)/*.png)))
CAPSWITCH_SPRINGBOARD_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(CAPSWITCH_DIRS)),$(basename $(wildcard $(dir)/*.png)))
COINS_PIPE_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(COINS_DIRS)),$(basename $(wildcard $(dir)/*.png)))
BOWSER_FLAMES_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BOWSER_DIRS)),$(basename $(wildcard $(dir)/*.png)))
BUBBA_WIGGLER_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BUBBA_DIRS)),$(basename $(wildcard $(dir)/*.png)))
BULLY_BLARGG_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BULLY_DIRS)),$(basename $(wildcard $(dir)/*.png)))
CHILLYCHIEF_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(CHILLYCHIEF_DIRS)),$(basename $(wildcard $(dir)/*.png)))
HOOT_THWOMP_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(HOOT_DIRS)),$(basename $(wildcard $(dir)/*.png)))
KOOPA_LOG_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(KOOPA_DIRS)),$(basename $(wildcard $(dir)/*.png)))
KLEPTO_EYEROK_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(KLEPTO_DIRS)),$(basename $(wildcard $(dir)/*.png)))
LAKITU_TOAD_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(LAKITU_DIRS)),$(basename $(wildcard $(dir)/*.png)))
MARIO_WATER_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(MARIO_DIRS)),$(basename $(wildcard $(dir)/*.png)))
MOLE_UKIKI_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(MOLE_DIRS)),$(basename $(wildcard $(dir)/*.png)))
MR_I_SWOOP_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(MR_I_DIRS)),$(basename $(wildcard $(dir)/*.png)))
PEACH_TOADSTOOL_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(PEACH_DIRS)),$(basename $(wildcard $(dir)/*.png)))
SEA_CREATURES_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SEA_DIRS)),$(basename $(wildcard $(dir)/*.png)))
SKEETER_FISH_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SKEETER_DIRS)),$(basename $(wildcard $(dir)/*.png)))
SPINDRIFT_PENGUIN_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SPINDRIFT_DIRS)),$(basename $(wildcard $(dir)/*.png)))
# Actor Textures
AMP_CHUCKYA_TEXTURES := $(foreach dir,$(AMP_DIRS), $(wildcard actors/$(dir)/*.png))
BOBOMBS_BUBBLE_TEXTURES := $(foreach dir,$(KING_BOBOMB_DIRS),$(wildcard actors/$(dir)/*.png))
BOO_BOOKEND_TEXTURES := $(foreach dir,$(BOO_DIRS), $(wildcard actors/$(dir)/*.png))
CAPSWITCH_SPRINGBOARD_TEXTURES := $(foreach dir,$(CAPSWITCH_DIRS), $(wildcard actors/$(dir)/*.png))
COINS_PIPE_TEXTURES := $(foreach dir,$(COINS_DIRS), $(wildcard actors/$(dir)/*.png))
BOWSER_FLAMES_TEXTURES := $(foreach dir,$(BOWSER_DIRS), $(wildcard actors/$(dir)/*.png))
BUBBA_WIGGLER_TEXTURES := $(foreach dir,$(BUBBA_DIRS), $(wildcard actors/$(dir)/*.png))
BULLY_BLARGG_TEXTURES := $(foreach dir,$(BULLY_DIRS), $(wildcard actors/$(dir)/*.png))
CHILLYCHIEF_TEXTURES := $(foreach dir,$(CHILLYCHIEF_DIRS),$(wildcard actors/$(dir)/*.png))
HOOT_THWOMP_TEXTURES := $(foreach dir,$(HOOT_DIRS), $(wildcard actors/$(dir)/*.png))
KOOPA_LOG_TEXTURES := $(foreach dir,$(KOOPA_DIRS), $(wildcard actors/$(dir)/*.png))
KLEPTO_EYEROK_TEXTURES := $(foreach dir,$(KLEPTO_DIRS), $(wildcard actors/$(dir)/*.png))
LAKITU_TOAD_TEXTURES := $(foreach dir,$(LAKITU_DIRS), $(wildcard actors/$(dir)/*.png))
MARIO_WATER_TEXTURES := $(foreach dir,$(MARIO_DIRS), $(wildcard actors/$(dir)/*.png))
MOLE_UKIKI_TEXTURES := $(foreach dir,$(MOLE_DIRS), $(wildcard actors/$(dir)/*.png))
MR_I_SWOOP_TEXTURES := $(foreach dir,$(MR_I_DIRS), $(wildcard actors/$(dir)/*.png))
PEACH_TOADSTOOL_TEXTURES := $(foreach dir,$(PEACH_DIRS), $(wildcard actors/$(dir)/*.png))
SEA_CREATURES_TEXTURES := $(foreach dir,$(SEA_DIRS), $(wildcard actors/$(dir)/*.png))
SKEETER_FISH_TEXTURES := $(foreach dir,$(SKEETER_DIRS), $(wildcard actors/$(dir)/*.png))
SPINDRIFT_PENGUIN_TEXTURES := $(foreach dir,$(SPINDRIFT_DIRS), $(wildcard actors/$(dir)/*.png))
# Actor dependencies
$(BUILD_DIR)/bin/group0.o: $(addprefix $(BUILD_DIR)/,$(MARIO_WATER_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(MARIO_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group1.o: $(addprefix $(BUILD_DIR)/,$(HOOT_THWOMP_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(HOOT_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group2.o: $(addprefix $(BUILD_DIR)/,$(BULLY_BLARGG_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BULLY_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group3.o: $(addprefix $(BUILD_DIR)/,$(BOBOMBS_BUBBLE_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(KING_BOBOMB_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group4.o: $(addprefix $(BUILD_DIR)/,$(SEA_CREATURES_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SEA_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group5.o: $(addprefix $(BUILD_DIR)/,$(KLEPTO_EYEROK_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(KLEPTO_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group6.o: $(addprefix $(BUILD_DIR)/,$(MOLE_UKIKI_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(MOLE_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group7.o: $(addprefix $(BUILD_DIR)/,$(SPINDRIFT_PENGUIN_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SPINDRIFT_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group8.o: $(addprefix $(BUILD_DIR)/,$(CAPSWITCH_SPRINGBOARD_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(CAPSWITCH_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group9.o: $(addprefix $(BUILD_DIR)/,$(BOO_BOOKEND_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BOO_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group10.o: $(addprefix $(BUILD_DIR)/,$(PEACH_TOADSTOOL_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(PEACH_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group11.o: $(addprefix $(BUILD_DIR)/,$(BUBBA_WIGGLER_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BUBBA_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group12.o: $(addprefix $(BUILD_DIR)/,$(BOWSER_FLAMES_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BOWSER_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group13.o: $(addprefix $(BUILD_DIR)/,$(SKEETER_FISH_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SKEETER_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group14.o: $(addprefix $(BUILD_DIR)/,$(KOOPA_LOG_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(KOOPA_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group15.o: $(addprefix $(BUILD_DIR)/,$(LAKITU_TOAD_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(LAKITU_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group16.o: $(addprefix $(BUILD_DIR)/,$(CHILLYCHIEF_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(CHILLYCHIEF_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/group17.o: $(addprefix $(BUILD_DIR)/,$(MR_I_SWOOP_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(MR_I_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/common0.o: $(addprefix $(BUILD_DIR)/,$(AMP_CHUCKYA_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(AMP_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/bin/common1.o: $(addprefix $(BUILD_DIR)/,$(COINS_PIPE_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(COINS_DIRS)),$(wildcard $(dir)/*.s))
$(BUILD_DIR)/actors/group0.o: $(MARIO_WATER_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group1.o: $(HOOT_THWOMP_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group2.o: $(BULLY_BLARGG_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group3.o: $(BOBOMBS_BUBBLE_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group4.o: $(SEA_CREATURES_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group5.o: $(KLEPTO_EYEROK_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group6.o: $(MOLE_UKIKI_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group7.o: $(SPINDRIFT_PENGUIN_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group8.o: $(CAPSWITCH_SPRINGBOARD_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group9.o: $(BOO_BOOKEND_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group10.o: $(PEACH_TOADSTOOL_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group11.o: $(BUBBA_WIGGLER_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group12.o: $(BOWSER_FLAMES_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group13.o: $(SKEETER_FISH_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group14.o: $(KOOPA_LOG_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group15.o: $(LAKITU_TOAD_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group16.o: $(CHILLYCHIEF_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/group17.o: $(MR_I_SWOOP_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/common0.o: $(AMP_CHUCKYA_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/actors/common1.o: $(COINS_PIPE_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
# Actor Elf Files
$(BUILD_DIR)/bin/group0.elf: SEGMENT_ADDRESS := 0x04000000
$(BUILD_DIR)/bin/group1.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/bin/group2.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/bin/group3.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/bin/group4.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/bin/group5.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/bin/group6.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/bin/group7.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/bin/group8.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/bin/group9.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/bin/group10.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/bin/group11.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/bin/group12.elf: SEGMENT_ADDRESS := 0x06000000
$(BUILD_DIR)/bin/group13.elf: SEGMENT_ADDRESS := 0x06000000
$(BUILD_DIR)/bin/group14.elf: SEGMENT_ADDRESS := 0x06000000
$(BUILD_DIR)/bin/group15.elf: SEGMENT_ADDRESS := 0x06000000
$(BUILD_DIR)/bin/group16.elf: SEGMENT_ADDRESS := 0x06000000
$(BUILD_DIR)/bin/group17.elf: SEGMENT_ADDRESS := 0x06000000
$(BUILD_DIR)/bin/common0.elf: SEGMENT_ADDRESS := 0x08000000
$(BUILD_DIR)/bin/common1.elf: SEGMENT_ADDRESS := 0x03000000
$(BUILD_DIR)/actors/group0.elf: SEGMENT_ADDRESS := 0x04000000
$(BUILD_DIR)/actors/group1.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/actors/group2.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/actors/group3.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/actors/group4.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/actors/group5.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/actors/group6.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/actors/group7.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/actors/group8.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/actors/group9.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/actors/group10.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/actors/group11.elf: SEGMENT_ADDRESS := 0x05000000
$(BUILD_DIR)/actors/group12.elf: SEGMENT_ADDRESS := 0x06000000
$(BUILD_DIR)/actors/group13.elf: SEGMENT_ADDRESS := 0x06000000
$(BUILD_DIR)/actors/group14.elf: SEGMENT_ADDRESS := 0x06000000
$(BUILD_DIR)/actors/group15.elf: SEGMENT_ADDRESS := 0x06000000
$(BUILD_DIR)/actors/group16.elf: SEGMENT_ADDRESS := 0x06000000
$(BUILD_DIR)/actors/group17.elf: SEGMENT_ADDRESS := 0x06000000
$(BUILD_DIR)/actors/common0.elf: SEGMENT_ADDRESS := 0x08000000
$(BUILD_DIR)/actors/common1.elf: SEGMENT_ADDRESS := 0x03000000
# --------------------------------------
# Level Rules
# --------------------------------------
# Using these rules:
# When defining a level, define the 3 variables needed and copy the rules
# as-is.
$(BUILD_DIR)/levels/%/leveldata.elf: SEGMENT_ADDRESS := 0x07000000
# TODO: Generate these rules from the level configs?
define level_rules =
$(1)_SEG7_FILES := $$(basename $$(notdir $$(wildcard levels/$(1)/*.png)))
$(1)_SEG7_FILES_RAW := $(shell find levels/$(1)/ -type f -iname '*')
$$(BUILD_DIR)/bin/$(1)/leveldata.o: $$(addprefix $$(BUILD_DIR)/levels/$(1)/,$$($(1)_SEG7_FILES)) $$($(1)_SEG7_FILES_RAW)
$$(BUILD_DIR)/bin/$(1)/leveldata.elf: SEGMENT_ADDRESS := $(2)
$$(BUILD_DIR)/bin/$(1)/leveldata.elf: TEXTURE_BIN := $(3)
define level_rules =
$(1)_SEG7_FILES := $$(patsubst %.png,%.inc.c,$$(wildcard levels/$(1)/*.png))
$$(BUILD_DIR)/levels/$(1)/leveldata.o: $$(addprefix $$(BUILD_DIR)/,$$($(1)_SEG7_FILES))
$$(BUILD_DIR)/levels/$(1)/leveldata.elf: TEXTURE_BIN := $(2)
endef
$(eval $(call level_rules,bbh,0x07000000,spooky)) # BBH (Big Boo's Haunt)
$(eval $(call level_rules,ccm,0x07000000,snow)) # CCM (Cool Cool Mountain)
$(eval $(call level_rules,castle_inside,0x07000000,inside)) # Castle Inside (Inside Princess Peach's Castle)
$(eval $(call level_rules,hmc,0x07000000,cave))# HMC (Hazy Maze Cave)
$(eval $(call level_rules,ssl,0x07000000,generic)) # SSL (Shifting Sand Land)
$(eval $(call level_rules,bob,0x07000000,generic)) # BOB (Bob-Omb Battlefield)
$(eval $(call level_rules,sl,0x07000000,snow)) # SL (Snowman's Land)
$(eval $(call level_rules,wdw,0x07000000,grass)) # WDW (Wet Dry World)
$(eval $(call level_rules,jrb,0x07000000,water)) # JRB (Jolly Roger Bay)
$(eval $(call level_rules,thi,0x07000000,grass)) # THI (Tiny Huge Island)
$(eval $(call level_rules,ttc,0x07000000,machine)) # TTC (Tick Tock Clock)
$(eval $(call level_rules,rr,0x07000000,sky)) # RR (Rainbow Ride)
$(eval $(call level_rules,castle_grounds,0x07000000,outside)) # Castle Grounds (Outside Princess Peach's Castle)
$(eval $(call level_rules,bitdw,0x07000000,sky)) # BitDW (Bowser in the Dark World)
$(eval $(call level_rules,vcutm,0x07000000,outside)) # VCUTM (Vanish Cap under the Moat)
$(eval $(call level_rules,bitfs,0x07000000,sky)) # BITFS (Bowser in the Fire Sea)
$(eval $(call level_rules,sa,0x07000000,inside)) # SA (The Secret Aquarium)
$(eval $(call level_rules,bits,0x07000000,sky)) # BITS (Bowser in the Sky)
$(eval $(call level_rules,lll,0x07000000,fire)) # LLL (Lethal Lava Land)
$(eval $(call level_rules,ddd,0x07000000,water)) # DDD (Dire Dire Docks)
$(eval $(call level_rules,wf,0x07000000,grass)) # WF (Whomp's Fortress)
$(eval $(call level_rules,ending,0x07000000,generic)) # Ending
$(eval $(call level_rules,castle_courtyard,0x07000000,outside)) # Castle Courtyard (The Courtyard of Princess Peach's Castle)
$(eval $(call level_rules,pss,0x07000000,mountain)) # PSS (The Princess's Secret Slide)
$(eval $(call level_rules,cotmc,0x07000000,cave)) # COTMC (Cavern of the Metal Cap)
$(eval $(call level_rules,totwc,0x07000000,sky)) # TOTWC (Tower of the Wing Cap)
$(eval $(call level_rules,bowser_1,0x07000000,generic)) # BOWSER_1 (Bowser in the Dark World [Boss Area])
$(eval $(call level_rules,wmotr,0x07000000,generic)) # WMOTR (Wing Mario over the Rainbow)
$(eval $(call level_rules,bowser_2,0x07000000,fire)) # BOWSER_2 (Bowser in the Fire Sea [Boss Area])
$(eval $(call level_rules,bowser_3,0x07000000,generic)) # BOWSER_3 (Bowser in the Sky [Boss Area])
$(eval $(call level_rules,totwc,0x07000000,sky)) # TOTWC (Tower of the Wing Cap)
$(eval $(call level_rules,ttm,0x07000000,mountain)) # TTM (Tall Tall Mountain)
$(eval $(call level_rules,intro,0x07000000,generic)) # Intro (Super Mario 64 Logo)
$(eval $(call level_rules,menu,0x07000000,generic)) # Menu (File Select)
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(MAKECMDGOALS),distclean)
$(BUILD_DIR)/level_rules.mk: levels/level_rules.mk levels/level_defines.h
$(call print,Preprocessing level make rules:,$<,$@)
$(V)$(CPP) $(CPPFLAGS) $(VERSION_CFLAGS) -I . -o $@ $<
include $(BUILD_DIR)/level_rules.mk
endif
endif
# --------------------------------------
# Extra Level Rules
# --------------------------------------
$(eval $(call level_rules,intro,generic)) # Intro (Super Mario 64 Logo)
$(eval $(call level_rules,menu,generic)) # Menu (File Select)
# --------------------------------------
# Cake Texture Rules
# --------------------------------------
# Ending cake textures are generated in a special way
$(BUILD_DIR)/levels/ending/cake_eu.inc.c: levels/ending/cake_eu.png
$(call print,Splitting:,$<,$@)
$(V)$(SKYCONV) --type cake-eu --split $^ $(BUILD_DIR)/levels/ending
$(BUILD_DIR)/levels/ending/cake.inc.c: levels/ending/cake.png
$(call print,Splitting:,$<,$@)
$(V)$(SKYCONV) --type cake --split $^ $(BUILD_DIR)/levels/ending
# --------------------------------------
# Texture Bin Rules
# --------------------------------------
# Others
SEGMENT2_FILES := $(basename $(wildcard $(TEXTURE_DIR)/segment2/*.png))
TITLE_SCREEN_BG_FILES := $(basename $(wildcard $(TEXTURE_DIR)/title_screen_bg/*.png))
SPOOKY_FILES := $(basename $(wildcard $(TEXTURE_DIR)/spooky/*.png))
GENERIC_FILES := $(basename $(wildcard $(TEXTURE_DIR)/generic/*.png))
OUTSIDE_FILES := $(basename $(wildcard $(TEXTURE_DIR)/outside/*.png))
SNOW_FILES := $(basename $(wildcard $(TEXTURE_DIR)/snow/*.png))
EFFECT_FILES := $(basename $(wildcard $(TEXTURE_DIR)/effect/*.png))
CAVE_FILES := $(basename $(wildcard $(TEXTURE_DIR)/cave/*.png))
INSIDE_FILES := $(basename $(wildcard $(TEXTURE_DIR)/inside/*.png))
WATER_FILES := $(basename $(wildcard $(TEXTURE_DIR)/water/*.png))
FIRE_TEXTURES_FILES := $(basename $(wildcard $(TEXTURE_DIR)/fire/*.png))
SKY_FILES := $(basename $(wildcard $(TEXTURE_DIR)/sky/*.png))
MACHINE_FILES := $(basename $(wildcard $(TEXTURE_DIR)/machine/*.png))
MOUNTAIN_FILES := $(basename $(wildcard $(TEXTURE_DIR)/mountain/*.png))
GRASS_FILES := $(basename $(wildcard $(TEXTURE_DIR)/grass/*.png))
SEGMENT2_TEXTURES := $(wildcard $(TEXTURE_DIR)/segment2/*.png)
TITLE_SCREEN_BG_TEXTURES := $(wildcard $(TEXTURE_DIR)/title_screen_bg/*.png)
SPOOKY_TEXTURES := $(wildcard $(TEXTURE_DIR)/spooky/*.png)
GENERIC_TEXTURES := $(wildcard $(TEXTURE_DIR)/generic/*.png)
OUTSIDE_TEXTURES := $(wildcard $(TEXTURE_DIR)/outside/*.png)
SNOW_TEXTURES := $(wildcard $(TEXTURE_DIR)/snow/*.png)
EFFECT_TEXTURES := $(wildcard $(TEXTURE_DIR)/effect/*.png)
CAVE_TEXTURES := $(wildcard $(TEXTURE_DIR)/cave/*.png)
INSIDE_TEXTURES := $(wildcard $(TEXTURE_DIR)/inside/*.png)
WATER_TEXTURES := $(wildcard $(TEXTURE_DIR)/water/*.png)
FIRE_TEXTURES_TEXTURES := $(wildcard $(TEXTURE_DIR)/fire/*.png)
SKY_TEXTURES := $(wildcard $(TEXTURE_DIR)/sky/*.png)
MACHINE_TEXTURES := $(wildcard $(TEXTURE_DIR)/machine/*.png)
MOUNTAIN_TEXTURES := $(wildcard $(TEXTURE_DIR)/mountain/*.png)
GRASS_TEXTURES := $(wildcard $(TEXTURE_DIR)/grass/*.png)
# Texture Files
$(BUILD_DIR)/bin/segment2.o: $(addprefix $(BUILD_DIR)/,$(SEGMENT2_FILES))
$(BUILD_DIR)/bin/title_screen_bg.o: $(addprefix $(BUILD_DIR)/,$(TITLE_SCREEN_BG_FILES))
$(BUILD_DIR)/bin/spooky.o: $(addprefix $(BUILD_DIR)/,$(SPOOKY_FILES))
$(BUILD_DIR)/bin/generic.o: $(addprefix $(BUILD_DIR)/,$(GENERIC_FILES))
$(BUILD_DIR)/bin/outside.o: $(addprefix $(BUILD_DIR)/,$(OUTSIDE_FILES))
$(BUILD_DIR)/bin/snow.o: $(addprefix $(BUILD_DIR)/,$(SNOW_FILES))
$(BUILD_DIR)/bin/effect.o: $(addprefix $(BUILD_DIR)/,$(EFFECT_FILES))
$(BUILD_DIR)/bin/cave.o: $(addprefix $(BUILD_DIR)/,$(CAVE_FILES))
$(BUILD_DIR)/bin/inside.o: $(addprefix $(BUILD_DIR)/,$(INSIDE_FILES))
$(BUILD_DIR)/bin/water.o: $(addprefix $(BUILD_DIR)/,$(WATER_FILES))
$(BUILD_DIR)/bin/fire.o: $(addprefix $(BUILD_DIR)/,$(FIRE_TEXTURES_FILES))
$(BUILD_DIR)/bin/sky.o: $(addprefix $(BUILD_DIR)/,$(SKY_FILES))
$(BUILD_DIR)/bin/machine.o: $(addprefix $(BUILD_DIR)/,$(MACHINE_FILES))
$(BUILD_DIR)/bin/mountain.o: $(addprefix $(BUILD_DIR)/,$(MOUNTAIN_FILES))
$(BUILD_DIR)/bin/grass.o: $(addprefix $(BUILD_DIR)/,$(GRASS_FILES))
$(BUILD_DIR)/bin/segment2.o: $(SEGMENT2_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/title_screen_bg.o: $(TITLE_SCREEN_BG_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/spooky.o: $(SPOOKY_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/generic.o: $(GENERIC_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/outside.o: $(OUTSIDE_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/snow.o: $(SNOW_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/effect.o: $(EFFECT_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/cave.o: $(CAVE_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/inside.o: $(INSIDE_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/water.o: $(WATER_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/fire.o: $(FIRE_TEXTURES_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/sky.o: $(SKY_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/machine.o: $(MACHINE_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/mountain.o: $(MOUNTAIN_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
$(BUILD_DIR)/bin/grass.o: $(GRASS_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
# Others
$(BUILD_DIR)/bin/segment2.elf: SEGMENT_ADDRESS := 0x02000000
$(BUILD_DIR)/bin/title_screen_bg.elf: SEGMENT_ADDRESS := 0x0A000000
$(BUILD_DIR)/bin/segment2.elf: SEGMENT_ADDRESS := 0x02000000
$(BUILD_DIR)/bin/title_screen_bg.elf: SEGMENT_ADDRESS := 0x0A000000
$(BUILD_DIR)/bin/debug_level_select.elf: SEGMENT_ADDRESS := 0x07000000
$(BUILD_DIR)/bin/effect.elf: SEGMENT_ADDRESS := 0x0B000000
$(BUILD_DIR)/bin/spooky.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/generic.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/outside.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/snow.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/cave.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/inside.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/water.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/fire.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/sky.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/machine.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/mountain.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/grass.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/effect.elf: SEGMENT_ADDRESS := 0x0B000000
$(BUILD_DIR)/bin/spooky.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/generic.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/outside.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/snow.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/cave.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/inside.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/water.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/fire.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/sky.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/machine.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/mountain.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/grass.elf: SEGMENT_ADDRESS := 0x09000000
# EU segment 19 translations
$(BUILD_DIR)/bin/$(VERSION)/translation_de.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/$(VERSION)/translation_en.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/$(VERSION)/translation_fr.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/eu/translation_de.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/eu/translation_en.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/eu/translation_fr.elf: SEGMENT_ADDRESS := 0x19000000
# --------------------------------------
# Skybox Rules
# --------------------------------------
# Skybox Files
BBH_SKYBOX_FILES := $(basename $(wildcard $(TEXTURE_DIR)/bbh_skybox/*.png))
BIDW_SKYBOX_FILES := $(basename $(wildcard $(TEXTURE_DIR)/bidw_skybox/*.png))
BITFS_SKYBOX_FILES := $(basename $(wildcard $(TEXTURE_DIR)/bitfs_skybox/*.png))
BITS_SKYBOX_FILES := $(basename $(wildcard $(TEXTURE_DIR)/bits_skybox/*.png))
CCM_SKYBOX_FILES := $(basename $(wildcard $(TEXTURE_DIR)/ccm_skybox/*.png))
CLOUD_FLOOR_SKYBOX_FILES := $(basename $(wildcard $(TEXTURE_DIR)/cloud_floor_skybox/*.png))
CLOUDS_SKYBOX_FILES := $(basename $(wildcard $(TEXTURE_DIR)/clouds_skybox/*.png))
SSL_SKYBOX_FILES := $(basename $(wildcard $(TEXTURE_DIR)/ssl_skybox/*.png))
WATER_SKYBOX_FILES := $(basename $(wildcard $(TEXTURE_DIR)/water_skybox/*.png))
WDW_SKYBOX_FILES := $(basename $(wildcard $(TEXTURE_DIR)/wdw_skybox/*.png))
$(BUILD_DIR)/bin/%_skybox.c: textures/skyboxes/%.png
$(call print,Splitting:,$<,$@)
$(V)$(SKYCONV) --type sky --split $^ $(BUILD_DIR)/bin
# Skybox Files
$(BUILD_DIR)/bin/bbh_skybox.o: $(addprefix $(BUILD_DIR)/,$(BBH_SKYBOX_FILES))
$(BUILD_DIR)/bin/bidw_skybox.o: $(addprefix $(BUILD_DIR)/,$(BIDW_SKYBOX_FILES))
$(BUILD_DIR)/bin/bitfs_skybox.o: $(addprefix $(BUILD_DIR)/,$(BITFS_SKYBOX_FILES))
$(BUILD_DIR)/bin/bits_skybox.o: $(addprefix $(BUILD_DIR)/,$(BITS_SKYBOX_FILES))
$(BUILD_DIR)/bin/ccm_skybox.o: $(addprefix $(BUILD_DIR)/,$(CCM_SKYBOX_FILES))
$(BUILD_DIR)/bin/cloud_floor_skybox.o: $(addprefix $(BUILD_DIR)/,$(CLOUD_FLOOR_SKYBOX_FILES))
$(BUILD_DIR)/bin/clouds_skybox.o: $(addprefix $(BUILD_DIR)/,$(CLOUDS_SKYBOX_FILES))
$(BUILD_DIR)/bin/ssl_skybox.o: $(addprefix $(BUILD_DIR)/,$(SSL_SKYBOX_FILES))
$(BUILD_DIR)/bin/water_skybox.o: $(addprefix $(BUILD_DIR)/,$(WATER_SKYBOX_FILES))
$(BUILD_DIR)/bin/wdw_skybox.o: $(addprefix $(BUILD_DIR)/,$(WDW_SKYBOX_FILES))
# Skybox Files
$(BUILD_DIR)/bin/bbh_skybox.elf: SEGMENT_ADDRESS := 0x0A000000
$(BUILD_DIR)/bin/bidw_skybox.elf: SEGMENT_ADDRESS := 0x0A000000
$(BUILD_DIR)/bin/bitfs_skybox.elf: SEGMENT_ADDRESS := 0x0A000000
$(BUILD_DIR)/bin/bits_skybox.elf: SEGMENT_ADDRESS := 0x0A000000
$(BUILD_DIR)/bin/ccm_skybox.elf: SEGMENT_ADDRESS := 0x0A000000
$(BUILD_DIR)/bin/cloud_floor_skybox.elf: SEGMENT_ADDRESS := 0x0A000000
$(BUILD_DIR)/bin/clouds_skybox.elf: SEGMENT_ADDRESS := 0x0A000000
$(BUILD_DIR)/bin/ssl_skybox.elf: SEGMENT_ADDRESS := 0x0A000000
$(BUILD_DIR)/bin/water_skybox.elf: SEGMENT_ADDRESS := 0x0A000000
$(BUILD_DIR)/bin/wdw_skybox.elf: SEGMENT_ADDRESS := 0x0A000000
$(BUILD_DIR)/bin/%_skybox.elf: SEGMENT_ADDRESS := 0x0A000000
# --------------------------------------
# Misc Rules
# --------------------------------------
# intro_raw textures are not compressed
INTRO_RAW_FILES := $(basename $(notdir $(wildcard $(TEXTURE_DIR)/intro_raw/*.png)))
$(BUILD_DIR)/data/goddard_tex_dl.o: $(addprefix $(BUILD_DIR)/textures/intro_raw/,$(INTRO_RAW_FILES))
# intro and ipl3 textures are not compressed
INTRO_RAW_FILES := $(wildcard $(TEXTURE_DIR)/intro_raw/*.png)
$(BUILD_DIR)/src/goddard/renderer.o: $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%.inc.c,$(INTRO_RAW_FILES)))
IPL3_TEXTURE_FILES := $(wildcard $(TEXTURE_DIR)/ipl3_raw/*.png)
IPL3_RAW_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%,$(IPL3_TEXTURE_FILES)))
CRASH_TEXTURE_FILES := $(wildcard $(TEXTURE_DIR)/crash_custom/*.png)
CRASH_TEXTURE_C_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%.inc.c,$(CRASH_TEXTURE_FILES)))

251
README.md
View File

@@ -1,82 +1,213 @@
# Super Mario 64
# ![](https://i.imgur.com/CeOukzk.gif) HackerSM64 ![](https://i.imgur.com/s0LUbTo.gif)
This repo contains a full decompilation of Super Mario 64 (J) and (U).
The source and data have been decompiled but complete naming and documentation
all of the code and data is still a work in progress. Decompiling the (E) ROM
is also an ongoing effort.
**AFTER CLONING THE REPO, CHECK OUT THE `include/config` FOLDER BEFORE ANYTHING ELSE! THERE'S A LOT OF STUFF IN THIS REPO THAT CAN BE TOGGLED THERE.**
It builds the following ROMs:
HackerSM64 now has a discord server! https://discord.gg/brETAakcXr
* sm64.jp.z64 `sha1: 8a20a5c83d6ceb0f0506cfc9fa20d8f438cafe51`
* sm64.us.z64 `sha1: 9bef1128717f958171a4afac3ed78ee2bb4e86ce`
This repo requires BOTH a US ROM and a JP ROM in order to build. Place baserom.us.z64 in the repo as usual and ALSO include baserom.jp.z64.
This repo does not include all assets necessary for compiling the ROMs.
A prior copy of the game is required to extract the required assets.
This repo needs gcc in order to be able to build it. To install it, run `sudo apt install gcc-mips-linux-gnu`
## Installation
This is a fork of the ultrasm64 repo by CrashOveride which includes the following commonly used patches (patches marked with `*` are toggleable in the config files):
### Linux
**Credits**
- **ArcticJaguar725**: Most audio configuration and layout changes, colored ia4 text, floombas, various bugfixes, and more
- **CowQuack**: Adjustable skybox sizes, area-specific skybox function
- **thecozies**: Water surface types, general maintenance, and time
- **MrComit**: General use object defines, JUMP_KICK_FIX
- **aglab2**: Bugfixes (particularly puppycam), refactor stuff
- **someone2639**: math.s and crash screen disam, stack trace, map packing, shiftable segments 2, S2DEX engine
- **Arthurtilly**: Platform Displacement 2
- **Fazana**: PuppyLib, ucode swapping, audio load time optimisations (with Arctic), general hacker qol improvements, visual debug
- **Reonu**: Starting the project/repo, widescreen, reonucam, various defines for hacker QoL
- **JoshDuMan**: Decomp guy, general assistance
- **Arceveti**: Silhouette, shadow optimisation, better hanging, breath meter, 4 controller support
- **axollyon**: Console testing, bugfixes, idea-guying, and had a hand in silhouettes
- **Wiseguy**: World scale reimplementation, silhouette, graph node optimisations, instant input patch, cake screen fix, segmented code support, and various optimizations/fixes
- **Kaze**: Graph node optimisations, automatic optimal collision distance
- **Pyro Jay**: Texture improvements, repo banner art, some QoL stuff
- **CrashOveride**: creating the [ultrasm64](https://github.com/CrashOveride95/ultrasm64) repo
- **falcobuster**: Original coordinate overflow fix (world scale), ASM version of extended bounds, emulator detector
- **anonymous_moose**: porting falco's extended bounds to decomp
- **tuxlovesyou**: `LOAD_MIO0_TEXTURE` macro and moral support
- **devwizard**: the PJ64 pre-v3.0 detection part of the emulator detector
1. For each version (jp/us/eu) that you want to build a ROM for, put an existing ROM at
`./baserom.<version>.z64` for asset extraction.
Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
2. Install the following packages:
**Lighting Engine by Wiseguy**
- Lighting Engine is available on a separate branch ([base/lighting-engine](https://github.com/Reonu/HackerSM64/tree/base/lighting-engine)). Instructions on how to use it are in the readme of that branch.
__Debian / Ubuntu__
* git
* binutils-mips-linux-gnu / mips64-elf (>= 2.27)
* python3 (>= 3.7)
* build-essential
* pkg-config
* zlib1g-dev
* libaudiofile-dev
**Puppycam**
- Puppycam is available on the master branch now, you can toggle it in `config/config_camera.h`. *
__Arch Linux__
* base-devel
* python
* audiofile
* [mips64-elf-binutils](https://aur.archlinux.org/packages/mips64-elf-binutils) (AUR)
* [qemu-irix-git](https://aur.archlinux.org/packages/qemu-irix-git) (AUR)
**Collision:**
- Slope fix and exposed ceilings fix
- No false ledgegrabs fix *
- Jump kick fix *
- Configurable wallkick angle, in degrees *
- Possibility of disabling BLJs *
- 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
- Better wall collision with rounded corners by FramePerfection, merged by Cheezepin & Arceveti
- Automatically calculate the optimal collision distance for an object based on its vertices, by Kaze *
**Common Hack Changes:**
- Better extended boundaries by anonymous_moose
- Mario head skip *
- Peach letter cutscene skip *
- Exit course while moving *
- Toggle to disable fall damage and the fall damage sound *
- Nonstop stars *
- Removed course-specific camera processing *
- Ability to set Mario's movement speed when hanging from a ceiling *
- Tighter hanging controls (Mario will face the direction of the analog stick directly while hanging from a ceiling) *
- reonucam3: custom camera by Reonu. This is included as a .patch file in the enhancements folder, you need to apply it if you want this camera.
This video shows a rundown of the features: https://youtu.be/TQNkznX9Z3k
- Ability to disable Mario getting suck in snow or sand
3. Install qemu-irix
**Hacker QOL:**
- Global, non-level based, star IDs (off by default) *
- Debug mode: prints mario's coordinates, angle and speed, and a FPS counter.
- Automatic console/emulator detection. If emulator is detected, LODs are disabled. *
- 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/config_menu.h`, or disable it entirely. *
- 16 bit model IDs by someone2639. This means you can have up to 65536 models (lol). You can set the maximum number of model IDs in `config/config_game.h`.
- 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`
- Added function to get the model ID from an object: `obj_get_model_id` (by Arceveti)
- 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 `include/object_fields.h` for more info on this. (By MrComit)
- Included `actors/group0.c` in `behavior_data.c`
- The internal ROM name is now set with a define in `config/config_rom.h` to make it simpler
- There is a `gEmulator` variable to detect console or specific emulators and emulator versions
- Expanded audio heap allows for a larger concurrent note count and the importing of more m64 sequences and sound banks (By ArcticJaguar725) *
- You can set a test level in `config/config_debug.h` in order to boot straight into it, so you can quickly test the level you're working on. *
- Allow all surfaces in the game to have a `force` parameter. Activating this doesn't REQUIRE you to set `force` for every surface: If you don't set, it will default to 0x0000 rather than crashing. Increases RAM usage of collision. *
- The clown font includes the entire English alphabet.
- Colored ia4 text support. Format: `"@XXXXXXXX[YOUR TEXT]@--------"` (By ArcticJaguar725)
- Example Text: `"@FF0000FFRED @00FF00FFGREEN @0000FFFFBLUE @FFFFFF00INVISIBLE @--------NORMAL"`
- NOTE: It is not mandatory to reset the text color with `"@--------"`, but text will need to be recolored each time it scrolls in a dialog box, or the custom color will reset.
- Toggle visiblity of collision surfaces and object hitboxes with Visual Surface Debug. `config/config_debug.h` has VISUAL_DEBUG which can be turned on to enable this feature.
- Workaround for infinite death loops caused by using the wrong warp type for death warps. Mario's HP will be restored when being warped to any warp if (and only if) he was warped while dead. *
3.a Options:
1. Clone https://github.com/n64decomp/qemu-irix to somewhere and follow its
install instructions in the README.
2. Optionally, grab the prebuilt qemu-irix from the Releases section.
3. (Arch) Use AUR package [qemu-irix-git](https://aur.archlinux.org/packages/qemu-irix-git)
**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) *
- 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) *
- Adjustable world scale. You can change the geometry scaling of your level, which allow large levels to render correctly on console and LLE emulators while not hurting anything on HLE plugins.
- A couple vanilla texture fixes
- Smoke fix (the smoke texture uses the correct texture format)
3.b (For options 1 or 2), copy executable `qemu-irix` from irix-linux-user to
somewhere convenient with a relatively short path.
```
mkdir -p /opt/qemu-irix/bin
cp irix-linux-user/qemu-irix /opt/qemu-irix/bin
```
**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 `gEmulator` 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 (64x64) coins, the vanilla coin texture is upgraded to accomodate. *
- ia8 (64x64) 30 FPS coins (Textures by InTheBeef, cleaned up by Arceveti). *
- Floombas! Simply just retextured goombas with customizable behaviors (does not overwrite standard goombas). *
- HD texture support for intro splash screen (with floombas if enabled). *
- Mario's silhouette is shown when behind most surfaces (By Frame#5375, Axollyon, AloXado320, Wiseguy, Arceveti) *
- Skybox size modifier. You can have 2x, 3x and 4x size skyboxes (you can select the skybox size in `config/config_graphics.h`.) Please note that this might affect console performance, especially 4x mode. 2x or 3x mode is recommended if aiming for console. By CowQuack *
- You can set the black border size to different values for console and emulator. It's set to 0 by default for both. *
- This repo supports a much better implementation of reverb over vanilla's fake echo reverb. Great for caves or eerie levels, as well as just a better audio experience in general. See `audio/synthesis.c` for more details and configuration info. (By ArcticJaguar725) *
- Fazana's "puppyprint" text engine. *
- Use `print_small_text` to print normal text. The two last params are aligment and how many characters to print (-1 means PRINT_ALL).
- Use `render_multi_image` to draw large texture rectangles consisting of multiple images on the screen.
- More info in `puppyprint.c`
- Wiseguy's Farcall TLB mapping allows to store executable code inside uncompressed segments, that can be loaded and ran as needed, instead of it having to be loaded at all times. See `farcall.h` in the include folder for instructions and details.
- Red Coin Stars now support up to 99 red coins! In addition, multi-area red coin missions can now be created by setting the 2nd behavior paramater of the red coin star to the number of reds required for the star to spawn.
# UltraSM64
3.c Define `QEMU_IRIX` environment variable in your `~/.bashrc` to point to
this qemu-irix executable.
```
export QEMU_IRIX=/opt/qemu-irix/bin/qemu-irix
```
- This repo contains a full decompilation of Super Mario 64 (J), (U), (E), and (SH).
- Naming and documentation of the source code and data structures are in progress.
- It has been edited to allow for the usage of the final "N64 OS" library, version ``2.0L``
- Shindou Rumble Pak code is on for all regions.
- Targeting the iQue Player is supported.
- Saving to 32kbyte/256kbit SRAM is supported.
- 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
- Automatic console and emulator detection: Use the `gEmulator` variable to wrap your code in an emulator check.
- Separate defines for emulator and console black border height.
- Getting HVQM FMV support to work with the game is WIP.
6. Run `make` to build the ROM (defaults to us version). Make sure your path to
the repo is not too long or else this process will error, as the emulated
IDO compiler cannot handle paths longer than 255 characters.
Build examples:
```
make VERSION=jp -j4 # build (J) version instead with 4 jobs
make VERSION=eu COMPARE=0 # non-matching EU version still 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.
## Windows
## Additional Prerequisites
For Windows, install WSL and a distro of your choice and follow the Linux guide.
BinPNG (the CI texture converter) requires some python3 dependencies. Use pip to install them.
## Contributing
``pip install pypng bitstring``
Pull requests are welcome. For major changes, please open an issue first to
discuss what you would like to change.
## UNFLoader support
Run clang-format on your code to ensure it meets the project's coding standards.
The repository supports UNFLoader for debugging.
To build with UNF, run make with ``UNF=1``.
Official discord: https://discord.gg/27JtCWs
Further instructions can be found at the [official repository](https://github.com/buu342/N64-UNFLoader)
**NOTE: Closing the UNFLoader window will result in your game eventually hanging due to lacking a USB device to send messages to, so beware of that**
## 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 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.
Method 1 is the current default, and is the best all-rounder in terms of speed and ratio.
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 repository also supports using DEFLATE compression. 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 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?
A: Theoretically, all yes.
## Installation help
Go read the original SM64 repo README.md

1
VERSION.txt Normal file
View File

@@ -0,0 +1 @@
v2.3.0

View File

@@ -0,0 +1,51 @@
static const s16 dAmpAnimValue[] = {
0x0000, 0x0000, 0x0D79, 0x1AF2, 0x286B, 0x35E4, 0x435D, 0x50D6,
0x5E50, 0x6BC9, 0x7942, 0x86BE, 0x9437, 0xA1B0, 0xAF2A, 0xBCA3,
0xCA1C, 0xD795, 0xE50E, 0xF287, 0x1872, 0x0000, 0x1AF2, 0x35E4,
0x50D6, 0x6BC9, 0x86BE, 0xA1B0, 0xBCA3, 0xD795, 0xF287, 0x0D79,
0x286B, 0x435D, 0x5E50, 0x7942, 0x9437, 0xAF2A, 0xCA1C, 0xE50E,
0x0000, 0x1AF2, 0x35E4, 0x50D6, 0x6BC9, 0x86BE, 0xA1B0, 0xBCA3,
0xD795, 0xF287, 0x0D79, 0x286B, 0x435D, 0x5E50, 0x7942, 0x9437,
0xAF2A, 0xCA1C, 0xE50E, 0x8001, 0x5793, 0x2F28, 0x06BC, 0xDE52,
0xB5E6, 0x8D7B, 0x650C, 0x3CA1, 0x1435, 0xEBCB, 0xC35F, 0x9AF4,
0x7285, 0x4A1A, 0x21AE, 0xF944, 0xD0D8, 0xA86D, 0x3FFF, 0x0000,
0x0D7C, 0x1AF9, 0x2876, 0x35F3, 0x4370, 0x50ED, 0x5E6A, 0x6BE7,
0x7964, 0x86E3, 0x9460, 0xA1DD, 0xAF5A, 0xBCD7, 0xCA54, 0xD7D1,
0xE54E, 0xF2CB, 0xC001, 0x3FFF, 0x0000, 0x0D7B, 0x1AF7, 0x2873,
0x35EF, 0x436B, 0x50E6, 0x5E62, 0x6BDE, 0x795A, 0x86D9, 0x9455,
0xA1D0, 0xAF4C, 0xBCC8, 0xCA44, 0xD7C0, 0xE53B, 0xF2B7, 0xC001,
0x3FFF, 0xC001, 0xCD7A, 0xDAF2, 0xE86B, 0xF5E3, 0x035B, 0x10D3,
0x1E4C, 0x2BC4, 0x393D, 0x46B5, 0x542E, 0x61A6, 0x6F1F, 0x7C97,
0x8A13, 0x978B, 0xA504, 0xB27D, 0xC001, 0x3FFF, 0x4D79, 0x5AF2,
0x686C, 0x75E5, 0x8362, 0x90DB, 0x9E55, 0xABCF, 0xB948, 0xC6C2,
0xD43B, 0xE1B5, 0xEF2F, 0xFCA8, 0x0A21, 0x179A, 0x2514, 0x328D,
0xC001, 0x3FFF,
};
static const u16 dAmpAnimIndex[] = {
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x00A1,
0x0001, 0x0000, 0x0013, 0x008D, 0x0001, 0x00A0,
0x0001, 0x0000, 0x0001, 0x0000, 0x0013, 0x0001,
0x0001, 0x0000, 0x0013, 0x0079, 0x0001, 0x008C,
0x0001, 0x0014, 0x0001, 0x0000, 0x0013, 0x0015,
0x0001, 0x0000, 0x0013, 0x0064, 0x0001, 0x0077,
0x0001, 0x0000, 0x0001, 0x0000, 0x0013, 0x0028,
0x0001, 0x0000, 0x0013, 0x004F, 0x0001, 0x0062,
0x0001, 0x0000, 0x0001, 0x0000, 0x0013, 0x003B,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0078,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0063,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x004E,
};
static const struct Animation dAmpAnimation = {
0,
0,
0,
0,
0x13,
ANIMINDEX_NUMPARTS(dAmpAnimIndex),
dAmpAnimValue,
dAmpAnimIndex,
0,
};

View File

@@ -0,0 +1 @@
#include "animation.inc.c"

View File

@@ -0,0 +1,3 @@
const struct Animation *const dAmpAnimsList[] = {
&dAmpAnimation,
};

View File

@@ -1,2 +0,0 @@
# Amp

55
actors/amp/geo.inc.c Normal file
View File

@@ -0,0 +1,55 @@
const GeoLayout dAmpGeo[] = {
GEO_SHADOW(SHADOW_CIRCLE_4_VERTS, 0xC8, 100),
GEO_OPEN_NODE(),
GEO_SCALE(0x00, 16384),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, dAmpEyeDl),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, dAmpElectricityDl),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, dAmpElectricityDl),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, dAmpElectricityDl),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, dAmpElectricityDl),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_ALPHA, 0, 0, 0, dAmpMouthDl),
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_BILLBOARD(),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dAmpBodyDl),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_END(),
};

View File

@@ -1,54 +0,0 @@
glabel amp_geo # 0x0F000028
geo_shadow SHADOW_CIRCLE_4_VERTS, 0xC8, 100
geo_open_node
geo_scale 0x00, 16384
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002C88
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_switch_case 2, geo_switch_anim_state
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002BA0
geo_close_node
geo_close_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_switch_case 2, geo_switch_anim_state
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002BA0
geo_close_node
geo_close_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_switch_case 2, geo_switch_anim_state
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002BA0
geo_close_node
geo_close_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_switch_case 2, geo_switch_anim_state
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002BA0
geo_close_node
geo_close_node
geo_close_node
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002D70
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_billboard
geo_open_node
geo_display_list LAYER_ALPHA, amp_seg8_dl_08002E58
geo_close_node
geo_close_node
geo_close_node
geo_close_node
geo_close_node
geo_end

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