1. Wavy

    OP Wavy Advanced Member
    Newcomer

    Joined:
    Aug 24, 2020
    Messages:
    96
    Country:
    Australia
    It worked! Thanks @Joom , @Filo97 and everyone else! But is there a way to compile as a .cia aswell?
    Edit: So I think the problem could of been that I wasn't using the Linux version of devkitPro, which makes sense
     
    Last edited by Wavy, Sep 8, 2020
    battlecatsahead, Joom and Filo97 like this.
  2. Filo97

    Filo97 Pink = Best colour
    Member

    Joined:
    Oct 8, 2015
    Messages:
    4,094
    Country:
    Italy
  3. Wavy

    OP Wavy Advanced Member
    Newcomer

    Joined:
    Aug 24, 2020
    Messages:
    96
    Country:
    Australia
    I'll just use the 3DSX Launcher as it's easier, and I don't want to tinker with the rsf file in case if that breaks something.

    Edit: Don't read that. I couldn't get it to work. Instead I'll try to use cxitool

    Edit Edit: Don't read that either, cxitool needs dll that only work with 32bit Windows, and I use a 64bit version of Windows, So I'll make a native cia instead.
     
    Last edited by Wavy, Sep 9, 2020
  4. Tebra

    Tebra Advanced Member
    Newcomer

    Joined:
    May 18, 2016
    Messages:
    87
    Country:
    Belgium
    I get this error when trying to compile on Arch Linux
    cc1: error: '-mfloat-abi=hard': selected processor lacks an FPU
     
  5. Joom

    Joom  ❤❤❤
    Member

    Joined:
    Jan 8, 2016
    Messages:
    5,926
    Country:
    United States
    You don't have your environment variables set correctly. Either edit your existing variables to match this in your bashrc, or add them if they don't exist. Also, I recommend replacing bash with zsh or another shell. It'll make life easier as bash doesn't really handle the export function all that well.

    DO NOT issue these as direct commands.
    Code:
    export PATH=$HOME/bin:/usr/local/bin:/opt/devkitpro/tools/bin/:$PATH
    export DEVKITARM=/opt/devkitpro/devkitARM
    export DEVKITPRO=/opt/devkitpro
    export DEVKITPPC=/opt/devkitpro/devkitPPC
    
    You'll have to reload your terminal after making this edit. You can also see if your PATH is correct with this command.
    Code:
    echo $PATH
    
     
    Last edited by Joom, Sep 16, 2020
  6. Tebra

    Tebra Advanced Member
    Newcomer

    Joined:
    May 18, 2016
    Messages:
    87
    Country:
    Belgium
    It works now. I can play sm64 on 3DS. Thanks
     
    Wavy and Joom like this.
  7. spyro3dsguy

    spyro3dsguy GBAtemp Fan
    Member

    Joined:
    Nov 28, 2011
    Messages:
    357
    Country:
    Canada
    Is there a version with the jump button on B and the dive button on Y?

    — Posts automatically merged - Please don't double post! —

    Is there a version with the jump button in B and dive on Y?
     
  8. Wavy

    OP Wavy Advanced Member
    Newcomer

    Joined:
    Aug 24, 2020
    Messages:
    96
    Country:
    Australia
    You can edit controls by heading to the source by editing controller_3ds.c at sm64_3ds/src/pc/controller/controller_3ds.c
    They really should of made it as a config file instead of recompiling it
     
  9. spyro3dsguy

    spyro3dsguy GBAtemp Fan
    Member

    Joined:
    Nov 28, 2011
    Messages:
    357
    Country:
    Canada
    Is there a guide for compiling it into a .cia file with 800px mode?
     
  10. Wavy

    OP Wavy Advanced Member
    Newcomer

    Joined:
    Aug 24, 2020
    Messages:
    96
    Country:
    Australia
    I'm not quite sure on how to use 800px mode, but I know how to make a .cia

    To make a cia, you'll need Makerom from here. Download the version for your machine. Now make a folder somewhere on you PC (for example "Makerom") where you'll extract Makerom. Now copy the sm64.us.f3dex2e.3dsx.elf (or something along those lines) file from sm64/build/<VERSION>_3ds into your directory with Makerom then rename the elf to sm64_3ds.elf. We now a need banner, icon and rsf file for us to make a cia, which you can get from the attached zip (BTW the icon/banner files were made by me). Just extract the files from the zip into your directory with Makerom. Head to the terminal and head to your Makerom directory and enter this:
    Code:
    makerom -v -f cia -o sm64_3ds.cia -DAPP_ENCRYPTED=false -rsf sm64_rsf.rsf -target t -exefslogo -elf sm64_3ds.elf -icon icon.icn -banner banner.bnr
    Now it'll take Makerom about a minute to build the cia. Once it's done, sm64_3ds.cia will be created in the Makerom directory. You can now install it on your 3DS
     

    Attached Files:

  11. Joom

    Joom  ❤❤❤
    Member

    Joined:
    Jan 8, 2016
    Messages:
    5,926
    Country:
    United States
    For those that haven't seen it, there's this fork available by @mkst that comes with an easy to use configuration file, and comes with quite a few improvements over the original port. Make sure you read the information on the repo as it has build instructions as well as the feature list. Some things include a slight improvement for the O3DS and stereoscopic 3D. Both are still very much WIP, so keep that in mind. It's also easier to remap buttons with this fork due to its configuration file, so check it out if you're wanting some custom features.

    https://github.com/mkst/sm64-port/tree/3ds-port
     
    Last edited by Joom, Sep 19, 2020
    Wavy, spyro3dsguy and mkst like this.
  12. spyro3dsguy

    spyro3dsguy GBAtemp Fan
    Member

    Joined:
    Nov 28, 2011
    Messages:
    357
    Country:
    Canada
    I downloaded the files from the post below yours and those file weren't in them. Where do you find that folder?
     
  13. Wavy

    OP Wavy Advanced Member
    Newcomer

    Joined:
    Aug 24, 2020
    Messages:
    96
    Country:
    Australia
    Sorry for the late reply. But maybe try this tutorial instead as it's much better than my one.
     
  14. euamotubaina

    euamotubaina Member
    Newcomer

    Joined:
    Sep 13, 2006
    Messages:
    17
    Country:
    Brazil
    the sh build for the Shindou edition doesn't compile, right? the other 3 compiled alright

    Code:
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `start_rumble.part.0':
    thread6.c:(.text+0x1c): undefined reference to `osMotorStart'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x4c): undefined reference to `gRumblePakSchedulerMesgQueue'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x50): undefined reference to `gRumblePakPfs'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `stop_rumble.part.0':
    thread6.c:(.text+0x74): undefined reference to `osMotorStop'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0xa4): undefined reference to `gRumblePakSchedulerMesgQueue'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0xa8): undefined reference to `gRumblePakPfs'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `init_rumble_pak_scheduler_queue':
    thread6.c:(.text+0xd8): undefined reference to `gRumblePakSchedulerMesgQueue'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0xdc): undefined reference to `gRumblePakSchedulerMesgBuf'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `block_until_rumble_pak_free':
    thread6.c:(.text+0x100): undefined reference to `gRumblePakSchedulerMesgQueue'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `release_rumble_pak_control':
    thread6.c:(.text+0x114): undefined reference to `gRumblePakSchedulerMesgQueue'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `queue_rumble_data':
    thread6.c:(.text+0x140): undefined reference to `gRumbleDataQueue'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `func_sh_8024C89C':
    thread6.c:(.text+0x150): undefined reference to `gRumbleDataQueue'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `is_rumble_finished_and_queue_empty':
    thread6.c:(.text+0x198): undefined reference to `gCurrRumbleSettings'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x19c): undefined reference to `gRumbleDataQueue'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `reset_rumble_timers':
    thread6.c:(.text+0x1d0): undefined reference to `gCurrRumbleSettings'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `reset_rumble_timers_2':
    thread6.c:(.text+0x258): undefined reference to `gCurrRumbleSettings'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `func_sh_8024CA04':
    thread6.c:(.text+0x270): undefined reference to `gCurrRumbleSettings'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `cancel_rumble':
    thread6.c:(.text+0x28c): undefined reference to `osMotorInit'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x2d4): undefined reference to `osMotorStop'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x2e0): undefined reference to `gRumblePakPfs'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x2ec): undefined reference to `gRumbleDataQueue'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x2f0): undefined reference to `gCurrRumbleSettings'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `thread6_rumble_loop':
    thread6.c:(.text+0x4c0): undefined reference to `osMotorInit'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x584): undefined reference to `gRumbleDataQueue'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x58c): undefined reference to `gCurrRumbleSettings'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x594): undefined reference to `gRumbleThreadVIMesgQueue'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x5a0): undefined reference to `gRumblePakPfs'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `create_thread_6':
    thread6.c:(.text+0x5e0): undefined reference to `osCreateThread'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x5f0): undefined reference to `osStartThread'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x5f4): undefined reference to `gRumbleThreadVIMesgBuf'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x5f8): undefined reference to `gRumbleThreadVIMesgQueue'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: thread6.c:(.text+0x600): undefined reference to `gRumblePakThread'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: build/sh_3ds/src/game/thread6.o: in function `rumble_thread_update_vi':
    thread6.c:(.text+0x630): undefined reference to `gRumbleThreadVIMesgQueue'
    collect2: error: ld returned 1 exit status
    make: *** [Makefile:901: build/sh_3ds/sm64.sh.f3dex2e.elf] Error 1
     
  15. Wavy

    OP Wavy Advanced Member
    Newcomer

    Joined:
    Aug 24, 2020
    Messages:
    96
    Country:
    Australia
    The Shindou version is only experimental, which will cause build errors.
     
  16. rolenks

    rolenks Advanced Member
    Newcomer

    Joined:
    Jul 15, 2020
    Messages:
    63
    Country:
    United States
    does it even really matter lol, who actually plays the shindou version. honestly no need
     
    Deleted User and battlecatsahead like this.
  17. Shadow#1

    Shadow#1 Wii, 3DS Softmod & Dumpster Diving Expert
    Member

    Joined:
    Nov 21, 2005
    Messages:
    9,650
    Country:
    United States
    Yea who does outside of Super Mario 3D All-Stars ikr?
     
    battlecatsahead and rolenks like this.
  18. euamotubaina

    euamotubaina Member
    Newcomer

    Joined:
    Sep 13, 2006
    Messages:
    17
    Country:
    Brazil
    Maybe I can help with something, maybe I'm doing something wrong, just checking
     
  19. rolenks

    rolenks Advanced Member
    Newcomer

    Joined:
    Jul 15, 2020
    Messages:
    63
    Country:
    United States
    i mean maybe but i just downloaded a cia of it with hd mario and was just done with it, working on that other version doesnt really matter
     
  20. euamotubaina

    euamotubaina Member
    Newcomer

    Joined:
    Sep 13, 2006
    Messages:
    17
    Country:
    Brazil
    knowledge matters, man
     
    Deleted User likes this.
Draft saved Draft deleted
Loading...

Hide similar threads Similar threads with keywords - compiling, Super, Mario