Giter Site home page Giter Site logo

aloultraext / sm64ex-alo Goto Github PK

View Code? Open in Web Editor NEW
103.0 103.0 49.0 18.27 MB

An extended custom version of Super Mario 64 with extra stuff made by yours truly. Based of sm64ex and updated to Refresh 16

Dockerfile 0.01% Makefile 0.20% C 92.26% Assembly 0.95% Shell 0.05% Python 0.53% C++ 6.00% JavaScript 0.02%

sm64ex-alo's People

Contributors

aloxado320 avatar anzz1 avatar aurorawright avatar filipianosol avatar gammatendonnine avatar maikelchan avatar mistersheeple avatar s4ys369 avatar theperfectmario64 avatar vanfanel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sm64ex-alo's Issues

[Feature request] Hide mouse cursor in FULLSCREEN mode

Describe the bug
Mouse cursor is shown in fullscreen mode.

To Reproduce
Steps to reproduce the behavior:

  1. Start the game
  2. Activate the fullscreen option on the video settings
  3. See the mouse cursor on screen

Expected behavior
Mouse cursor shouldn't show up in fullscreen mode (as in sm64ex).

Desktop (please complete the following information):

  • OS: Debian GNU/Linux
  • Version 10

Additional context
A simple call to SDL_ShowCursor(FALSE) is enough to hide the mouse cursor, so it's a very easy thing to implement I guess.

Sound menu button breaks when NUM_SAVE_FILES is defined to lower values than 4

Describe the bug
Setting the definition of the number of save files to less than 4 results in the sound menu text being f***ed up aswell as the button causing a segfault when pressed.
Also the game's console will display:
NULL texture: tile 0, format 3/0, size 64

To Reproduce
Steps to reproduce the behavior:
Edit line 12 in src/game/save_file.h and change #define NUM_SAVE_FILES to a lower number than 4

Expected behavior
Sound menu button works

Screenshots
image

Desktop (please complete the following information):

  • OS: Arch Linux 64 Bit

Additional context
I feel like fixing something like this may be an improvement for anyone wanting an easy way to mod the amount of save files I guess?? It's not very severe anyway and not that necessary but I just thought I'd mention it.

Removing all code related to File C & D does not seem to fix it either. (although I got the game to compile still and run fine.) (see screenshot above)
Setting the value to 0 makes it work again but you cant exit the menu after entering.

PS: I would like if you can also provide some context why something like this would happen because I can't figure it out.

havent tested higher values yet....

Sdl include not working

Describe the bug when I get sdl include android it says permission or access denied
To Reproduce
Follow the instructions for android on the readme

Expected behavior
For it to work normally

Smartphone

  • device Samsung a52
  • OS: [Android 11]

Framerate is all over the place (VSYNC option is missing on Pi)

Hi there,

In the current GIT version, when building for Raspberry Pi with these options:

make TARGET_RPI=1 HIGH_FPS_PC=1 RUMBLE_FEEDBACK=1 BETTERCAMERA=0 -j4

..the framerate is wrong (let demo play to see it).
VSYNC options on the graphics menu is also missing.

Camera spinning around constantly

Describe the bug
On New 3DS, the camera spins around Mario continuously. It can be slightly stopped by using the C-Stick, but it continues to spin

To Reproduce
Steps to reproduce the behavior:

  1. Compile on New 3DS backend
  2. Run

Expected behavior
The camera moves with the player normally.

Screenshots
Will try to add later.

Additional context
Running on New 3DS XL.
Also, on New 3DS backend, the banner and icon do not resemble the logo and banner found in the platform/3ds folder. See #35

Switch 60 fps?

How do I use 60 fps on the switch and also how do I apply the star road patch?

[Feature Request] Vita backend

Since this repo seems to be concerned with supporting many different targets, a backend for the PS Vita would be nice! This repo was one I was able to compile to run on my Vita. It's based on sm64-port, though - I'm not sure how difficult it it would be to port it over to something sm64ex-based.

A great benefit of all of this would be to compile the Star Road ports for Vita (and anything based off of this repo or sm64ex).

Unable to build on MacOS 13 arm64

Describe the bug
Unable to build sm64ex-alo on macOS, error while compiling.

To Reproduce
Steps to reproduce the behavior:

  1. Install packages needed to compile via brew
  2. Extract Game Assets
  3. Compile with 'gmake' (GNU Make) and GCC 12
  4. See error

Expected behavior
It should build successfully and provide a binary.

Error Log (excerpt)

Compiling: build/us_pc/bin/bitfs_skybox.c -> build/us_pc/bin/bitfs_skybox.o
sound/sequences/00_sound_player.s:3:17: error: unexpected token in '.section' directive
.section .rodata
                ^
<instantiation>:1:7: error: out of range literal value
.byte 720000 >> 8, 720000 & 0xff
      ^
sound/sequences/00_sound_player.s:8015:1: note: while in macro instantiation
envelope_line 7 20000
^
<instantiation>:2:12: error: unknown token in expression
    .byte  >> 8,  & 0xff
           ^
sound/sequences/00_sound_player.s:8015:1: note: while in macro instantiation
envelope_line 7 20000
^
<instantiation>:1:7: error: out of range literal value
.byte 632700 >> 8, 632700 & 0xff
      ^
sound/sequences/00_sound_player.s:8016:1: note: while in macro instantiation
envelope_line 6 32700
^
<instantiation>:2:12: error: unknown token in expression
    .byte  >> 8,  & 0xff
           ^
sound/sequences/00_sound_player.s:8016:1: note: while in macro instantiation
envelope_line 6 32700
^
<instantiation>:1:7: error: out of range literal value
.byte 3270032700 >> 8, 3270032700 & 0xff
      ^
sound/sequences/00_sound_player.s:8017:1: note: while in macro instantiation
envelope_line 32700 32700
^
<instantiation>:2:12: error: unknown token in expression
    .byte  >> 8,  & 0xff
           ^
sound/sequences/00_sound_player.s:8017:1: note: while in macro instantiation
envelope_line 32700 32700
^
<instantiation>:1:7: error: out of range literal value
.byte 915000 >> 8, 915000 & 0xff
      ^
sound/sequences/00_sound_player.s:8021:1: note: while in macro instantiation
envelope_line 9 15000
^
<instantiation>:2:12: error: unknown token in expression
    .byte  >> 8,  & 0xff
           ^
sound/sequences/00_sound_player.s:8021:1: note: while in macro instantiation
envelope_line 9 15000
^
<instantiation>:1:7: error: out of range literal value
.byte 732700 >> 8, 732700 & 0xff
      ^
sound/sequences/00_sound_player.s:8022:1: note: while in macro instantiation
envelope_line 7 32700
^
<instantiation>:2:12: error: unknown token in expression
    .byte  >> 8,  & 0xff
           ^
sound/sequences/00_sound_player.s:8022:1: note: while in macro instantiation
envelope_line 7 32700
^
<instantiation>:1:7: error: out of range literal value
.byte 3270032700 >> 8, 3270032700 & 0xff
      ^
sound/sequences/00_sound_player.s:8023:1: note: while in macro instantiation
envelope_line 32700 32700
^
<instantiation>:2:12: error: unknown token in expression
    .byte  >> 8,  & 0xff
           ^
sound/sequences/00_sound_player.s:8023:1: note: while in macro instantiation
envelope_line 32700 32700
^
<instantiation>:1:7: error: out of range literal value
.byte 1010000 >> 8, 1010000 & 0xff
      ^
sound/sequences/00_sound_player.s:8027:1: note: while in macro instantiation
envelope_line 10 10000
^
<instantiation>:2:12: error: unknown token in expression
    .byte  >> 8,  & 0xff
           ^
sound/sequences/00_sound_player.s:8027:1: note: while in macro instantiation
envelope_line 10 10000
^
<instantiation>:1:7: error: out of range literal value
.byte 10032700 >> 8, 10032700 & 0xff
      ^
sound/sequences/00_sound_player.s:8028:1: note: while in macro instantiation
envelope_line 100 32700
^
<instantiation>:2:12: error: unknown token in expression
    .byte  >> 8,  & 0xff
           ^
sound/sequences/00_sound_player.s:8028:1: note: while in macro instantiation
envelope_line 100 32700
^
<instantiation>:1:7: error: out of range literal value
.byte 3270032700 >> 8, 3270032700 & 0xff
      ^
sound/sequences/00_sound_player.s:8029:1: note: while in macro instantiation
envelope_line 32700 32700
^
<instantiation>:2:12: error: unknown token in expression
    .byte  >> 8,  & 0xff
           ^
sound/sequences/00_sound_player.s:8029:1: note: while in macro instantiation
envelope_line 32700 32700
^
<instantiation>:1:7: error: out of range literal value
.byte 3532700 >> 8, 3532700 & 0xff
      ^
sound/sequences/00_sound_player.s:8033:1: note: while in macro instantiation
envelope_line 35 32700
^
<instantiation>:2:12: error: unknown token in expression
    .byte  >> 8,  & 0xff
           ^
sound/sequences/00_sound_player.s:8033:1: note: while in macro instantiation
envelope_line 35 32700
^
<instantiation>:1:7: error: out of range literal value
.byte 1032700 >> 8, 1032700 & 0xff
      ^
sound/sequences/00_sound_player.s:8034:1: note: while in macro instantiation
envelope_line 10 32700
^
<instantiation>:2:12: error: unknown token in expression
    .byte  >> 8,  & 0xff
           ^
sound/sequences/00_sound_player.s:8034:1: note: while in macro instantiation
envelope_line 10 32700
^
<instantiation>:2:12: error: unknown token in expression
    .byte  >> 8,  & 0xff
           ^
sound/sequences/00_sound_player.s:8035:1: note: while in macro instantiation
envelope_line 300 0
^
<instantiation>:1:7: error: out of range literal value
.byte 1520000 >> 8, 1520000 & 0xff
      ^
sound/sequences/00_sound_player.s:8039:1: note: while in macro instantiation
envelope_line 15 20000
^
<instantiation>:2:12: error: unknown token in expression
    .byte  >> 8,  & 0xff
           ^
sound/sequences/00_sound_player.s:8039:1: note: while in macro instantiation
envelope_line 15 20000
^
<instantiation>:1:7: error: out of range literal value
.byte 532700 >> 8, 532700 & 0xff
      ^
sound/sequences/00_sound_player.s:8040:1: note: while in macro instantiation
envelope_line 5 32700
^
<instantiation>:2:12: error: unknown token in expression
    .byte  >> 8,  & 0xff
           ^
sound/sequences/00_sound_player.s:8040:1: note: while in macro instantiation
envelope_line 5 32700
^

Desktop (please complete the following information):
OS: MacOS Monterey
Device: Mac Studio 2022
Arch: arm64
Gmake Version: 4.4.1
GCC Version: 12.3.0

Can't run on Android

Describe the bug
Compiled successfully on Termux (on another device)
but after I installed the APK, it says "SDL Error" (This happens on multiple sm64 android ports (except for sm64ex-coop) on both of the devices)

To Reproduce
Steps to reproduce the behavior:

  1. Compile.
  2. Install APK.
  3. See error.

Expected behavior
To work.

Screenshots
Screenshot_2024-06-13-15-23-20-696_com.vdavid003.sm64port.jpg

Desktop:

  • OS: Android 14 (Compiled on Android 11 but still errors)

Smartphone:

  • Device: Redmi note 12 (Compiled on Samsung Galaxy a20e)

Additional context
Most newest packages.
:-(

bettercam.c - Compile error

image

Looks like a regression caused by the newly added ifdef's around gPuppyOptions.debugCam only if EXT_DEBUG_MENU is set.

Cannot Compile on LInux

It compiled perfectly fine with the commit version from last week but does not compile with latest commit. I'm using the latest version of Linux Mint (21.1 Vera)

Error Message:

drae@DR43-L4PT0P:~/sm64ex-alo$ make
Traceback (most recent call last):
File "/home/drae/sm64ex-alo/extract_assets.py", line 299, in
main() if name == "main" else None
File "/home/drae/sm64ex-alo/extract_assets.py", line 211, in main
image = subprocess.run(
File "/usr/lib/python3.10/subprocess.py", line 501, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.10/subprocess.py", line 969, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.10/subprocess.py", line 1845, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 13] Permission denied: './tools/sm64tools/mio0'
Makefile:404: *** Failed to extract assets from US ROM. Stop.

You can recreate this by getting any official SM64 rom and naming it accordingly to the rom names on the original decomp github repo I've tried it with all the official SM64 roms (US, EU, JP, and Shindou) and none work.

60 fps patch for wii u?

Hello, I tried using the 60fps_ex patch on the sm64ex-alo build for Wii U, and got a lot of rejected chunks. any idea on what i can do to fix?

Can't build PC version with HIGH_FPS_PC

Describe the bug
It's impossible to build the PC version with -HIGH_FPS_PC=1 with current GIT code, because of this:
pc_main.c:(.text+0x179): undefined reference to send_display_list

To Reproduce
Try to build the PC version with -HIGH_FPS_PC=1:
make HIGH_FPS_PC=1 -j4

Desktop (please complete the following information):
Lubuntu 20.04 x86_64, Debian 10 aarch64

Additional context
Add any other context about the problem here.

Crash while Mario sliding in Bob-omb Battlefield

Describe the bug
I've found that often when Mario slides in Bob-omb Battlefield the game crashes with a segmentation fault.

To Reproduce
I built sm64ex-alo for the US version, with the following options enabled from a clean checkout of 4cfc330.

make BETTERCAMERA=1 EXT_OPTIONS_MENU=1 DISCORDRPC=1

Expected behavior
I expect to be able to collect a star without the game crashing.

Desktop (please complete the following information):

  • OS: Linux x86_64 (SteamOS Halo)

Additional context
I can load the core file into gdb, which points at a failure within mtxf_mul.

Core was generated by `./sm64.us.f3dex2e --skip-intro --debug'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x000055f6d932aa71 in mtxf_mul ()
[Current thread is 1 (Thread 0x7ff377818740 (LWP 49134))]
(gdb) bt
#0  0x000055f6d932aa71 in mtxf_mul ()
#1  0x00000000000018a6 in ?? ()
#2  0x000055f6d938b4b1 in align_with_floor ()
#3  0x000055f6d938ddca in common_slide_action ()
#4  0x000055f6d938df3f in act_butt_slide ()
#5  0x000055f6d938f5f2 in mario_execute_moving_action ()
#6  0x000055f6d939870a in execute_mario_action ()
#7  0x000055f6d93cd461 in bhv_mario_update ()
#8  0x000055f6d93241ee in bhv_cmd_call_native ()
#9  0x000055f6d9323c2e in cur_obj_update ()
#10 0x000055f6d93cd761 in update_objects_in_list ()
#11 0x000055f6d93cdd88 in update_objects ()
#12 0x000055f6d937decd in play_mode_normal ()
#13 0x000055f6d937e37e in update_level ()
#14 0x000055f6d9327405 in level_cmd_call_loop ()
#15 0x000055f6d9326d4d in level_script_execute ()
#16 0x000055f6d937103e in game_loop_one_iteration ()
#17 0x000055f6d93fbbc7 in produce_one_frame ()
#18 0x000055f6d93fbe66 in main_func ()
#19 0x000055f6d93fbe80 in main ()
(gdb) disas
Dump of assembler code for function mtxf_mul:
   0x000055f6d932aa40 <+0>:     xor    %eax,%eax
   0x000055f6d932aa42 <+2>:     mov    %rdi,%rcx
   0x000055f6d932aa45 <+5>:     jmp    0x55f6d932aa65 <mtxf_mul+37>
   0x000055f6d932aa47 <+7>:     nopw   0x0(%rax,%rax,1)
   0x000055f6d932aa50 <+16>:    movl   $0x0,(%rcx)
   0x000055f6d932aa56 <+22>:    add    $0x10,%rsi
   0x000055f6d932aa5a <+26>:    add    $0x4,%rcx
   0x000055f6d932aa5e <+30>:    inc    %eax
   0x000055f6d932aa60 <+32>:    cmp    $0x10,%eax
   0x000055f6d932aa63 <+35>:    jge    0x55f6d932aad4 <mtxf_mul+148>
   0x000055f6d932aa65 <+37>:    mov    %eax,%r8d
   0x000055f6d932aa68 <+40>:    not    %r8d
   0x000055f6d932aa6b <+43>:    test   $0x3,%r8b
   0x000055f6d932aa6f <+47>:    je     0x55f6d932aa50 <mtxf_mul+16>
=> 0x000055f6d932aa71 <+49>:    movss  (%rsi),%xmm0
   0x000055f6d932aa75 <+53>:    movss  0x4(%rsi),%xmm1
   0x000055f6d932aa7a <+58>:    movss  0x8(%rsi),%xmm2
   0x000055f6d932aa7f <+63>:    mov    %rdx,%r8
   0x000055f6d932aa82 <+66>:    data16 data16 data16 data16 cs nopw 0x0(%rax,%rax,1)
   0x000055f6d932aa90 <+80>:    movss  0x10(%r8),%xmm3
   0x000055f6d932aa96 <+86>:    mulss  %xmm1,%xmm3
   0x000055f6d932aa9a <+90>:    movss  (%r8),%xmm4
   0x000055f6d932aa9f <+95>:    mulss  %xmm0,%xmm4
   0x000055f6d932aaa3 <+99>:    addss  %xmm3,%xmm4
   0x000055f6d932aaa7 <+103>:   movss  0x20(%r8),%xmm3
   0x000055f6d932aaad <+109>:   mulss  %xmm2,%xmm3
   0x000055f6d932aab1 <+113>:   addss  %xmm4,%xmm3
   0x000055f6d932aab5 <+117>:   movss  %xmm3,(%rcx)
   0x000055f6d932aab9 <+121>:   add    $0x4,%rcx
   0x000055f6d932aabd <+125>:   inc    %eax
   0x000055f6d932aabf <+127>:   mov    %eax,%r9d
   0x000055f6d932aac2 <+130>:   not    %r9d
   0x000055f6d932aac5 <+133>:   add    $0x4,%r8
   0x000055f6d932aac9 <+137>:   test   $0x3,%r9b
   0x000055f6d932aacd <+141>:   jne    0x55f6d932aa90 <mtxf_mul+80>
   0x000055f6d932aacf <+143>:   jmp    0x55f6d932aa50 <mtxf_mul+16>
   0x000055f6d932aad4 <+148>:   movss  0x30(%rdx),%xmm0
   0x000055f6d932aad9 <+153>:   addss  0x30(%rdi),%xmm0
   0x000055f6d932aade <+158>:   movss  %xmm0,0x30(%rdi)
   0x000055f6d932aae3 <+163>:   movss  0x34(%rdx),%xmm0
   0x000055f6d932aae8 <+168>:   addss  0x34(%rdi),%xmm0
   0x000055f6d932aaed <+173>:   movss  %xmm0,0x34(%rdi)
   0x000055f6d932aaf2 <+178>:   movss  0x38(%rdx),%xmm0
   0x000055f6d932aaf7 <+183>:   addss  0x38(%rdi),%xmm0
   0x000055f6d932aafc <+188>:   movss  %xmm0,0x38(%rdi)
   0x000055f6d932ab01 <+193>:   movl   $0x3f800000,0x3c(%rdi)
   0x000055f6d932ab08 <+200>:   ret    

remove Wiki Tab

The wiki tab literally is empty
Can you turn it off in the repo?
or are you going to use it someday?
(this is a minor thing but it helps a lot as i see this on a lot of repos and its starting to become annoying)
(like it makes you really get your hopes up for a wiki with some detailed info but then literally it contains nothing)

Cant compile on Linux

i just cloned the repo, but the rom, and typed "make" and it cant extract the assets
A clear and concise description of what the bug is.

Error message:
lark@archlinux ~/P/A/sm64ex-alo (master) [2]> make -j4
Traceback (most recent call last):
File "/home/lark/Projects/Alexado/sm64ex-alo/extract_assets.py", line 298, in
main() if name == "main" else None
^^^^^^
File "/home/lark/Projects/Alexado/sm64ex-alo/extract_assets.py", line 169, in main
["make", "-s", "-C", "tools/sm64tools/", "n64graphics" + winext, "mio0" + winext]
^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'winext' where it is not associated with a value
Makefile:404: *** Failed to extract assets from US ROM. Pare.

Steps to reproduce the behavior:

  1. Clone repo
  2. Pick up a rom rename to baserom.us and put on the repo folder
  3. Type Make
  4. error

I'm on Arch and installed all dependencies and everything_

Inconsistent vblank period detection

Describe the bug
There's a message appearing only some times when the game is launch:
could not determine swap interval, falling back to timer sync

Seems to be because this call to test_vsync() shows different results each time:
https://github.com/AloXado320/sm64ex-alo/blob/3924724f3f1ab397088c7a98bb0bf1d59fc7cce3/src/pc/gfx/gfx_sdl2.c#L165

Engine was built with make HIGH_FPS_PC=1 -j4

To Reproduce
Run the game and watch the log.

Expected behavior
This message shouldn't appear on a sane SDL2/GL environment with a 60Hz video mode.

Desktop (please complete the following information):
Lubuntu 20.04 x86_64, Debian 10 aarch64, ~60Hz phisical video mode.

Camera doesn't move and Mario is invisible in Tower of the Wing Cap

How to reproduce:

  1. Enter Tower of the Wing Cap

Mario is invisible in that level, and camera doesn't move. After returning to Peach's Castle, camera will work again, and Mario will be visible

obraz

Compile options: make TEXTURE_FIX=1 DISCORDRPC=1 TEXTSAVES=1 EXTERNAL_DATA=1 EXT_OPTIONS_MENU=1 BETTERCAMERA=1 QOL_FIXES=1 QOL_FEATURES=1 MOUSE_ACTIONS=1 NODRAWINGDISTANCE=1
Game was builded 28 December 2022 at 21:04 (UTC) from master branch
ROM region: US

BitDW entrance painting doesn't change from Peach to Bowser

Describe the bug
Before entering Bowser in the Dark World, you have this hallway where a painting of Peach slowly morphs into Bowser. In this version, when you enter, it is just Bowser, no Peach

To Reproduce
Steps to reproduce the behavior:

  1. Go to the 8 Star Door
  2. Enter it
  3. You should see it now

Expected behavior
A painting of Peach, morphing into a painting of Bowser.

Screenshots
Currently on mobile so unfortunately no pictures, you could imavine the problem

Desktop (please complete the following information):

  • OS: Windows 10 21H1 x64
  • Version: the latest repo as of July 28 2021 built in sm64pcbuilder2, just like my previous issue

Additional context
I just want to complement you on your work, I mean, taking a game and making it more modern, good job

Android build

Describe the bug
Building android version fails

Screenshots
Screenshot_20220527-111109_Termux

Smartphone (please complete the following information):

  • Device: Galaxy S20
  • OS: Android 12
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Extract assets error

I am trying to compile it for windows but i get this error

$ make
extracting actors/amp/amp_body.rgba16.png
Traceback (most recent call last):
File "/home/HyperGDude/sm64ex-alo/extract_assets.py", line 290, in
main()
File "/home/HyperGDude/sm64ex-alo/extract_assets.py", line 246, in main
subprocess.run(
File "/usr/lib/python3.10/subprocess.py", line 501, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.10/subprocess.py", line 969, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.10/subprocess.py", line 1845, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: './tools/n64graphics'
Makefile:427: *** Failed to extract assets from US ROM. Stop.

Windows 10 MinGW64

Compilation error on intel or m1 Mac

On an m1 Mac, I get "ld symbol(s) not found for architecture arm64" error when compiling native. Rosetta 2 gets error: "ld: symbol(s) not found for architecture x86_64" I've narrowed it down to sound.s if that helps.
Screen Shot 2022-03-30 at 3 23 40 PM
Screen Shot 2022-03-30 at 3 23 44 PM

lockup on build for Wii U

Describe the bug
During some stages of the game, the game would freeze on the system and gamepad, requing a hard power off. Using 60fps on Wii U

To Reproduce
Steps to reproduce the behavior:
Had a star ready in Whomp's fortress, the game froze as we were jumping on the spinning platform towards the top of the level. This also occurred in Bo-Bomb Battlefield

Expected behavior
No freezing occuring on Wii U 60fps build

EXTERNAL_DATA=1 Builds will not run

I've compiled a sm64ex-alo build with the EXTERNAL_DATA flag set to 1 but every time I try to start the build it crashes

Steps to reproduce the behavior:

  1. clone the repo
  2. add the legally acquired rom into the repo folder
  3. open terminal
  4. compile like so "make EXTERNAL_DATA=1"
  5. Run

It should run perfectly fine but it does not do so.

image

I'm using Linux Mint

Wii U Version Cannot Build

Trying to build on Windows or Linux causes an error, I can build the original wii u port on both though.

Star road doesn't work

Describe the bug
I can't compile the star road patch with the latest commit of sm64ex-alo.

To Reproduce
Steps to reproduce the behavior:

  1. click on sm64ex-alo on sm64pcbuilder2
  2. apply the star road patch
  3. compile
  4. See error

Expected behavior
It has failed to compile the game.

Arch Linux w/ devkitPPC r44.2-2: Unrecognized command-line option when building tools (Wii U target)

Describe the bug
Building the tools with make tools fails due to an unrecognized command-line option.

To Reproduce
Steps to reproduce the behavior:

  1. Clone repository
  2. Add baserom with the proper filename
  3. make tools
  4. Watch the output

Expected behavior
The tools compile without incident, that I may compile the game proper for my Wii U.

Screenshots Terminal output

halian  …/sm64ex-alo   master !  ♥ 06:38  make tools
Building tools...
audiofile.cpp:3565:47: warning: 'template<class _Arg, class _Result> struct std::unary_function' is deprecated [-Wdeprecated-declarations]
3565 |         struct signedToUnsigned : public std::unary_function<SignedType, UnsignedType>
|                                               ^~~~~~~~~~~~~~
In file included from /opt/devkitpro/devkitPPC/powerpc-eabi/include/c++/13.2.0/string:49,
from audiofile.cpp:1736:
/opt/devkitpro/devkitPPC/powerpc-eabi/include/c++/13.2.0/bits/stl_function.h:117:12: note: declared here
117 |     struct unary_function
|            ^~~~~~~~~~~~~~
audiofile.cpp:3570:47: warning: 'template<class _Arg, class _Result> struct std::unary_function' is deprecated [-Wdeprecated-declarations]
3570 |         struct unsignedToSigned : public std::unary_function<SignedType, UnsignedType>
|                                               ^~~~~~~~~~~~~~
/opt/devkitpro/devkitPPC/powerpc-eabi/include/c++/13.2.0/bits/stl_function.h:117:12: note: declared here
117 |     struct unary_function
|            ^~~~~~~~~~~~~~
audiofile.cpp:3763:33: warning: 'template<class _Arg, class _Result> struct std::unary_function' is deprecated [-Wdeprecated-declarations]
3763 | struct intToFloat : public std::unary_function<Arg, Result>
|                                 ^~~~~~~~~~~~~~
/opt/devkitpro/devkitPPC/powerpc-eabi/include/c++/13.2.0/bits/stl_function.h:117:12: note: declared here
117 |     struct unary_function
|            ^~~~~~~~~~~~~~
audiofile.cpp:3829:29: warning: 'template<class _Arg, class _Result> struct std::unary_function' is deprecated [-Wdeprecated-declarations]
3829 | struct lshift : public std::unary_function<Arg, Result>
|                             ^~~~~~~~~~~~~~
/opt/devkitpro/devkitPPC/powerpc-eabi/include/c++/13.2.0/bits/stl_function.h:117:12: note: declared here
117 |     struct unary_function
|            ^~~~~~~~~~~~~~
audiofile.cpp:3835:29: warning: 'template<class _Arg, class _Result> struct std::unary_function' is deprecated [-Wdeprecated-declarations]
3835 | struct rshift : public std::unary_function<Arg, Result>
|                             ^~~~~~~~~~~~~~
/opt/devkitpro/devkitPPC/powerpc-eabi/include/c++/13.2.0/bits/stl_function.h:117:12: note: declared here
117 |     struct unary_function
|            ^~~~~~~~~~~~~~
audiofile.cpp:3931:35: warning: 'template<class _Arg, class _Result> struct std::unary_function' is deprecated [-Wdeprecated-declarations]
3931 | struct floatToFloat : public std::unary_function<Arg, Result>
|                                   ^~~~~~~~~~~~~~
/opt/devkitpro/devkitPPC/powerpc-eabi/include/c++/13.2.0/bits/stl_function.h:117:12: note: declared here
117 |     struct unary_function
|            ^~~~~~~~~~~~~~
powerpc-eabi-g++: error: unrecognized command-line option '-pthread'; did you mean '-fpthread'?
make[1]: *** [Makefile:66: armips] Error 1
Makefile:460: *** Failed to build tools.  Stop.

Desktop (please complete the following information):

  • OS: Arch Linux
  • Browser: Waterfox
  • Version G6.0.5 (64-bit)

Additional context
Add any other context about the problem here.

Game crashes when changing certain maps

Describe the bug
When Mario goes from one map to another, sometimes the game crashes, and sometimes crashes even before the star select screen pops up. This is most common on Snowman's Land and Hazy Maze Cave, where I could not go in any time, and also sometimes when you return to Peach's Castle hub.
It crashes by freezing with no sound for a few seconds, and then it kicks you out.

To Reproduce
Steps to reproduce the behavior:

  1. Go to one of the aforementioned areas
  2. Enter a level (for Peach's Castle, exit a level by getting a Star or selecting "Exit Course")
  3. There it is

Expected behavior
The game continuing as usual.

Desktop (please complete the following information):

  • OS: W10 21H1 x64
  • Version: the latest repo as of July 28, 2021

Unable to build on MacOS 12 arm64

Describe the bug
Unable to build sm64ex-alo on macOS, error while compiling.

To Reproduce
Steps to reproduce the behavior:

  1. Install packages needed to compile via brew
  2. Extract Game Assets
  3. Compile with 'gmake' (GNU Make) and GCC 12.2.0
  4. See error

Expected behavior
It should build successfully and provide a binary.

Error
Building tools... In file included from /opt/homebrew/Cellar/gcc/12.2.0/lib/gcc/current/gcc/aarch64-apple-darwin21/12/include-fixed/stdio.h:413, from aiff_extract_codebook.c:8: aiff_extract_codebook.c:30:12: error: expected declaration specifiers or '...' before numeric constant 30 | extern int vsnprintf(char * __restrict, size_t, const char * __restrict, va_list); | ^~~~~~~~~ In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/secure/_strings.h:33, from /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/strings.h:97, from /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/string.h:184, from aiff_extract_codebook.c:7: aiff_extract_codebook.c:30:12: error: expected declaration specifiers or '...' before '__builtin_object_size' 30 | extern int vsnprintf(char * __restrict, size_t, const char * __restrict, va_list); | ^~~~~~~~~ gmake: *** [Makefile:74: aiff_extract_codebook] Error 1 Makefile:396: *** Failed to build tools. Stop.

**Desktop: **

  • OS: MacOS Monterey
  • Device: Mac Mini 2020
  • Arch: arm64
  • Gmake Version: 4.3
  • GCC Version: 12.2.0

Game is very slow since latest commit

Describe the bug
The game runs VERY slowly since commit AloXado320@1d8e539

Cursor seems to be shown in a frame and hidden on the next frame, too.

To Reproduce

  1. Start the game
  2. See it running slowly

Expected behavior
Game running at normal speed.

Desktop (please complete the following information):

  • OS: Debian GNU Linux 10, SDL2 on KMSRD and latest stable MESA

Additional context
Clearly this commit is causing the slowdown:
AloXado320@1d8e539

Building 32 bit on android doesn't work

I can build for 64 bit android devices with termux, but not 32 bit devices. Even when using termux on a 32 bit device. Directions are off to compile on 64 bit or 32 bit, but can make it work with 64 bit as said.

To Reproduce
Steps to reproduce the behavior:

  1. Following the directions to build
  2. The external dependencies needs to be done outside of the scripts. Which is fine
  3. Still doesn't work on 32 bit
  4. Error after error, mostly sdl errors, but got tired of trying to hunt down wants wrong.

Expected behavior
I expected to be able to build on a 32 bit android device. A capable build for that device. I can build vdavids this way and coop on android. Although vdavids steps aren't right either. Is 32 bit just not possible with your fork???

Smartphone (please complete the following information):

  • Device: [Samsung A01 & fire tablet] I can build 64 bit on [moto g 5g]
  • OS: [android 12 & fire os] android 13 works for 64 bit.

Additional context
Is it possible to build on android with termux for 32 bit. That is all. I could possibly help you rewrite the android guide as it's not "right" or "complete" even for 64 bit.

Failing to build for Switch on macOS

Describe the bug
I am attempting to build sm64-alo for the switch on my m1 mac, but each time i run make or gmake i receive errors.

To Reproduce
Steps to reproduce the behavior:

  1. build sm64ex-alo for mac

  2. attempt to build for switch using "source $DEVKITPRO/switchvars.sh 2 ↵
    gmake TARGET_SWITCH=1 QOL_FIXES=1 QOL_FEATURES=1 NODRAWINGDISTANCE=1 EXT_OPTIONS_MENU=1 TEXTURE_FIX=1 VERBOSE=1 HIGH_FPS_PC=1"

  3. Get error:

source $DEVKITPRO/switchvars.sh 2 ↵
gmake TARGET_SWITCH=1 QOL_FIXES=1 QOL_FEATURES=1 NODRAWINGDISTANCE=1 EXT_OPTIONS_MENU=1 TEXTURE_FIX=1 VERBOSE=1 HIGH_FPS_PC=1
Building tools...
Building game...
Compiling: src/pc/controller/controller_switch.c -> build/us_nx/src/pc/controller/controller_switch.o
aarch64-none-elf-gcc -c -march=armv8-a+crc+crypto -mtune=cortex-a57 -mtp=soft -fPIE -DRAPI_GL=1 -DWAPI_SDL2=1 -DAAPI_SDL2=1 -DCAPI_SWITCH=1 -DHAVE_SDL2=1 -I/opt/devkitpro/portlibs/switch/include -I/opt/devkitpro/portlibs/switch/include/SDL2 -D__SWITCH__ -march=armv8-a -mtune=cortex-a57 -mtp=soft -ftls-model=local-exec -isystem /opt/devkitpro/libnx/include -I/opt/devkitpro/portlibs/switch/include -D_REENTRANT -I include -I build/us_nx -I build/us_nx/include -I src -I . -I /opt/devkitpro/libnx/include -I /opt/devkitpro/portlibs/switch/include -DVERSION_US=1 -DF3DEX_GBI_2E=1 -DOSX_BUILD=1 -DLIBULTRA_VERSION=9 -DLIBULTRA_REVISION=0 -DLIBULTRA_STR_VER="L" -DNON_MATCHING=1 -DAVOID_UB=1 -fno-strict-aliasing -ftls-model=local-exec -fPIC -fwrapv -D__SWITCH__=1 -DNO_SEGMENTED_MEMORY -DWIDESCREEN -DUSE_SYSTEM_MALLOC -DTARGET_PORT_CONSOLE -DHIGH_FPS_PC -DBETTERCAMERA -DCHEATS_ACTIONS -DEXT_OPTIONS_MENU -DRUMBLE_FEEDBACK -DNODRAWINGDISTANCE -DGODDARD_MFACE -DVANILLA_CHECKS -DQOL_FIXES -DQOL_FEATURES -DQOL_REDONE -D_LANGUAGE_C=1 -O2 -MMD -MF build/us_nx/src/pc/controller/controller_switch.d -o build/us_nx/src/pc/controller/controller_switch.o src/pc/controller/controller_switch.c
In file included from include/ultra64.h:28,
from src/pc/controller/controller_switch.c:4:
include/PR/ultratypes.h:21:32: error: conflicting types for 's64'; have 'long long int'
21 | typedef signed long long int s64;
| ^~~
In file included from /opt/devkitpro/libnx/include/switch.h:12,
from src/pc/controller/controller_switch.c:3:
/opt/devkitpro/libnx/include/switch/types.h:28:17: note: previous declaration of 's64' with type 's64' {aka 'long int'}
28 | typedef int64_t s64; ///< 64-bit signed integer.
| ^~~
include/PR/ultratypes.h:22:32: error: conflicting types for 'u64'; have 'long long unsigned int'
22 | typedef unsigned long long int u64;
| ^~~
/opt/devkitpro/libnx/include/switch/types.h:22:18: note: previous declaration of 'u64' with type 'u64' {aka 'long unsigned int'}
22 | typedef uint64_t u64; ///< 64-bit unsigned integer.
| ^~~
include/PR/ultratypes.h:27:22: error: conflicting types for 'vu64'; have 'u64' {aka 'volatile long long unsigned int'}
27 | typedef volatile u64 vu64;
| ^~~~
/opt/devkitpro/libnx/include/switch/types.h:34:22: note: previous declaration of 'vu64' with type 'vu64' {aka 'volatile long unsigned int'}
34 | typedef volatile u64 vu64; ///< 64-bit volatile unsigned integer.
| ^~~~
include/PR/ultratypes.h:31:22: error: conflicting types for 'vs64'; have 's64' {aka 'volatile long long int'}
31 | typedef volatile s64 vs64;
| ^~~~
/opt/devkitpro/libnx/include/switch/types.h:40:22: note: previous declaration of 'vs64' with type 'vs64' {aka 'volatile long int'}
40 | typedef volatile s64 vs64; ///< 64-bit volatile signed integer.
| ^~~~
src/pc/controller/controller_switch.c: In function 'controller_switch_nx_read':
src/pc/controller/controller_switch.c:93:21: warning: implicit declaration of function 'abs' [-Wimplicit-function-declaration]
93 | if(isSixAxis && abs(leftX) < 20 && abs(leftY) < 20) {
| ^~~
src/pc/controller/controller_switch.c:10:1: note: include '<stdlib.h>' or provide a declaration of 'abs'
9 | #include "controller_api.h"
+++ |+#include <stdlib.h>
10 |
gmake: *** [Makefile:1621: build/us_nx/src/pc/controller/controller_switch.o] Error 1

Expected behavior
I expected it to build

Desktop (please complete the following information):

  • OS: macOS 14.2.1

Cannot build

Describe the bug
When I try to build it gives an error. Here is what I see in the console.

To Reproduce
Steps to reproduce the behavior:

  1. Clone the repo
  2. CD into the directory
  3. make VERSION=eu TARGET_BITS=64 WINDOWS_BUILD=1 WINDOWS_CONSOLE=1 RENDER_API=GL AUDIO_API=SDL2 CONTROLLER_API=SDL2
  4. See error

Expected behavior
I expect it to build successfully

Desktop (please complete the following information):

  • OS: Windows 10
  • Version 21H2

Additional context
Also doesn't work on sm64pcBuilder2.

undefined _tree_seg3_dl_snowy_pine

Describe the bug

Assembling: sound/sound_data.s -> build/us_pc/sound/sound_data.o
Undefined symbols for architecture x86_64:
  "_tree_seg3_dl_snowy_pine", referenced from:
      _snow_tree_geo in common1_geo.o
     (maybe you meant: _tree_seg3_dl_snowy_pine_transparent)
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
gmake: *** [Makefile:1795: build/us_pc/sm64.us.f3dex2e] Error 1

To Reproduce
Steps to reproduce the behavior:

  1. build on mac using sm_osx
  2. enable QOL features and fixes
  3. See error

Expected behavior
compiles

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS] Mac OS 12.5

Additional context
Add any other context about the problem here.

Building with BETTER_CAMERA=0 fails

Hi!

With recent changes, building with BETTER_CAMERA=0 fails:

~/src/sm64ex-alo# make TARGET_RPI=1 HIGH_FPS_PC=1 RUMBLE_FEEDBACK=0 BETTERCAMERA=0 -j4
Building tools...
make: Entering directory '/root/src/sm64ex-alo/tools'
cc -I. -O2 -s -DN64GRAPHICS_STANDALONE n64graphics.c utils.c -o n64graphics  -lm
cc -I. -O2 -s -Wno-unused-result -Wno-uninitialized -Wno-sign-compare -Wno-absolute-value sdk-tools/adpcm/vadpcm_enc.c sdk-tools/adpcm/vpredictor.c sdk-tools/adpcm/quant.c sdk-tools/adpcm/util.c sdk-tools/adpcm/vencode.c -o vadpcm_enc  -lm
cc -I. -O2 -s  skyconv.c n64graphics.c utils.c -o skyconv  -lm
make: Leaving directory '/root/src/sm64ex-alo/tools'
Building ROM...
==== Build Options ====
Version:        us
Microcode:      f3dex2e
Target:         sm64.us.f3dex2e
=======================
Preprocessing level make rules: levels/level_rules.mk -> build/us_pc/level_rules.mk
Building tools...
make: Entering directory '/root/src/sm64ex-alo/tools'
make: Nothing to be done for 'default'.
make: Leaving directory '/root/src/sm64ex-alo/tools'
Building ROM...
==== Build Options ====
Version:        us
Microcode:      f3dex2e
Target:         sm64.us.f3dex2e
=======================
Compiling: src/engine/behavior_script.c -> build/us_pc/src/engine/behavior_script.o
Compiling: src/engine/geo_layout.c -> build/us_pc/src/engine/geo_layout.o
Compiling: src/engine/graph_node.c -> build/us_pc/src/engine/graph_node.o
Compiling: src/engine/graph_node_manager.c -> build/us_pc/src/engine/graph_node_manager.o
Compiling: src/engine/level_script.c -> build/us_pc/src/engine/level_script.o
src/engine/level_script.c: In function 'level_cmd_get_or_set_var':
src/engine/level_script.c:755:18: error: 'VAR_CURR_SAVE_FILE_NUM' undeclared (first use in this function)
  755 |             case VAR_CURR_SAVE_FILE_NUM:
      |                  ^~~~~~~~~~~~~~~~~~~~~~
src/engine/level_script.c:755:18: note: each undeclared identifier is reported only once for each function it appears in
src/engine/level_script.c:758:18: error: 'VAR_CURR_COURSE_NUM' undeclared (first use in this function)
  758 |             case VAR_CURR_COURSE_NUM:
      |                  ^~~~~~~~~~~~~~~~~~~
src/engine/level_script.c:761:18: error: 'VAR_CURR_ACT_NUM' undeclared (first use in this function)
  761 |             case VAR_CURR_ACT_NUM:
      |                  ^~~~~~~~~~~~~~~~
src/engine/level_script.c:764:18: error: 'VAR_CURR_LEVEL_NUM' undeclared (first use in this function)
  764 |             case VAR_CURR_LEVEL_NUM:
      |                  ^~~~~~~~~~~~~~~~~~
src/engine/level_script.c:767:18: error: 'VAR_CURR_AREA_INDEX' undeclared (first use in this function)
  767 |             case VAR_CURR_AREA_INDEX:
      |                  ^~~~~~~~~~~~~~~~~~~
src/engine/level_script.c:770:18: error: 'VAR_CURR_GAME_SKIPS' undeclared (first use in this function)
  770 |             case VAR_CURR_GAME_SKIPS:
      |                  ^~~~~~~~~~~~~~~~~~~

Crash On Selecting "Display" Option

Describe the bug
Going into a brand new/complete save and selecting the "Display" option in the menu will instantly crash the game.

To Reproduce
Steps to reproduce the behavior:

  1. Select a save
  2. Press your pause button
  3. Go into the options menu
  4. Go down and click "Display"

Expected behavior
I expected to be able to change my resolution, FPS, and other display settings.

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows 11
  • Most Recent Version

Additional context
I have compiled the game entirely through sm64pcBuilder2.
image

Error with another page

hello I know you are not the person in charge of https://github.com/jesusyoshi54/sm64ex-alo but I wanted to know if you knew the cause of this error

make -j4
make: Entering directory '/home/HyperGDude/sm64ex-alo-star_road/tools'
gcc -I . -Wall -Wextra -Wno-unused-parameter -pedantic -O2 -s -Iaudiofile -Wno-uninitialized sdk-tools/tabledesign/codebook.c sdk-tools/tabledesign/estimate.c sdk-tools/tabledesign/print.c sdk-tools/tabledesign/tabledesign.c audiofile/libaudiofile.a -o tabledesign -Laudiofile -laudiofile -lstdc++ -lm -lm
C:/MSYS2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: audiofile/libaudiofile.a: error adding symbols: archive has no index; run ranlib to add one
collect2.exe: error: ld returned 1 exit status
make: *** [Makefile:78: tabledesign] Error 1
make: Leaving directory '/home/HyperGDude/sm64ex-alo-star_road/tools'
Makefile:355: *** Failed to build tools. Stop.

I'm on windows 10 and using minGW

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.