Super Mario 64 has been decompiled

Discussion in 'Other Consoles & Oldies' started by Ecchi95, Jul 7, 2019.

  1. The_Free_Real_Estate

    The_Free_Real_Estate Newbie

    Newcomer
    1
    Jul 17, 2019
    Antarctica
    Enjoying something doesn't make it any less of a characterless, disgusting thing to do. The public doesn't know about the dweeb who gave them this software. Doing this does not make you any more respected. They really could not care. Come back to me when you've made that N64 emulator ;)
     
  2. BridgetX

    BridgetX Newbie

    Newcomer
    1
    Jul 17, 2019
    Brazil
    Hello everyone, so I'm running into a problem while compiling this, if anyone can help me out here i would really appreciate it. Compilation-error.
     
  3. uyjulian

    uyjulian Homebrewer

    Member
    9
    Nov 26, 2012
    United States
    United States
    That screenshot doesn't help.
     
  4. BridgetX

    BridgetX Newbie

    Newcomer
    1
    Jul 17, 2019
    Brazil
    what other specifications do you want?
     
  5. uyjulian

    uyjulian Homebrewer

    Member
    9
    Nov 26, 2012
    United States
    United States
    the entire terminal output
     
  6. BridgetX

    BridgetX Newbie

    Newcomer
    1
    Jul 17, 2019
    Brazil
    for "make" the output is simply

    /home/bridget/Qemu/qemu-irix -silent -L tools/ido5.3_compiler tools/ido5.3_compiler/usr/bin/cc -c -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -Xfullwarn -g -signed -I include -I build/us/include -I src -D_LANGUAGE_C -DVERSION_US=1 -mips2 -32 -DF3D_OLD -o build/us/src/engine/surface_collision.o src/engine/surface_collision.c
    make: *** [Makefile:400: build/us/src/engine/surface_collision.o] Error 1

    for "make -d" the output is in the text file attached since it's really long.
     

    Attached Files:

  7. mountainflaw

    mountainflaw Member

    Newcomer
    1
    Jul 11, 2018
    Australia
    The camera is fine smh

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

    What is your bashrc? Also dumb question: But are you using WSL/Linux?
     
    Last edited by mountainflaw, Jul 17, 2019
  8. BridgetX

    BridgetX Newbie

    Newcomer
    1
    Jul 17, 2019
    Brazil
    I'm running Linux (Debian 10), and the contents of my bashrc are in the attached file
     

    Attached Files:

  9. HE1NZ

    HE1NZ GBAtemp Regular

    Member
    2
    May 3, 2012
    Serbia, Republic of
    Will this make 60 fps version possible?
     
  10. nullpointer128

    nullpointer128 Newbie

    Newcomer
    1
    Jul 17, 2019
    United States
    Should be, however it would take a lot of work updating the timings.
     
    CrashOveride likes this.
  11. Ecchi95
    This message by Ecchi95 has been removed from public view by AlanJohn, Jul 18, 2019, Reason: Off topic bickering.
    Jul 18, 2019
  12. nullpointer128

    nullpointer128 Newbie

    Newcomer
    1
    Jul 17, 2019
    United States
    Github?
     
  13. MurraySkull

    MurraySkull Member

    Newcomer
    5
    Apr 26, 2008
    United States
    Well, I finally got it working.
    [​IMG]

    [​IMG]

    [​IMG]
    "Ha-ha-ha-ha-ha-ha-haaaa!"

    I have attempted to upload an IPS patch at Romhacking.net.
     
    phreaksho likes this.
  14. phreaksho

    phreaksho GBAtemp Regular

    Member
    6
    Oct 27, 2007
    United States
    Post falls, Idaho
    So... What does this actually mean?:huh: like what could this lead to?
     
  15. Jayro

    Jayro MediCat USB and Mini Windows 10 Developer

    Member
    15
    GBAtemp Patron
    Jayro is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    Jul 23, 2012
    United States
    Octo Canyon
    This is incredible! :O
     
  16. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23
    Nov 21, 2005
    United Kingdom
    Not sure what that is supposed to showcase (been too long since I last did SM64) but be careful with recompiles and IPS -- if the compiler generates something with different offsets or you do a few changes of variables it will appear as very different to IPS and you would then include a whole chunk of Nintendo code with it, which would be less than ideal. Xdelta might be a better plan but even then I have seen very subtle tweaks have massive changes across a binary before.
     
  17. eyeliner

    eyeliner Has an itch needing to be scratched.

    Member
    7
    Feb 17, 2006
    Portugal
    Explain yourself for us dumb people. As in: "This is what I did, yo..."

    Please.
     
  18. TheGag96

    TheGag96 Member

    Newcomer
    1
    Feb 1, 2016
    United States
    I appear to be getting the same compiler error as him... I'm on Arch Linux x64 - had to install mips64-elf-binutils off the AUR (hoping that's right lol). For some reason I had to chmod +x the cc executable mentioned in this error.

    Code:
    In file included from include/ultra64.h:23,
                     from src/engine/surface_collision.c:1:
    include/PR/os_libc.h:82:17: warning: mismatch in argument 3 type of built-in function ‘bcopy’; expected ‘unsigned int’ [-Wbuiltin-declaration-mismatch]
       82 | extern void     bcopy(const void *, void *, int);
          |                 ^~~~~
    include/PR/os_libc.h:83:17: warning: mismatch in argument 3 type of built-in function ‘bcmp’; expected ‘unsigned int’ [-Wbuiltin-declaration-mismatch]
       83 | extern int      bcmp(const void *, const void *, int);
          |                 ^~~~
    include/PR/os_libc.h:84:17: warning: mismatch in argument 2 type of built-in function ‘bzero’; expected ‘unsigned int’ [-Wbuiltin-declaration-mismatch]
       84 | extern void     bzero(void *, int);
          |                 ^~~~~
    /home/grayson/Apps/qemu-irix/qemu-irix -silent -L tools/ido5.3_compiler tools/ido5.3_compiler/usr/bin/cc -c -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -Xfullwarn -g -signed -I include -I build/us/include -I src -D_LANGUAGE_C -DVERSION_US=1 -mips2 -32 -DF3D_OLD -o build/us/src/engine/surface_collision.o src/engine/surface_collision.c
    make: *** [Makefile:400: build/us/src/engine/surface_collision.o] Error 1
    
     
    Last edited by TheGag96, Jul 21, 2019
  19. bunny_wabbit

    bunny_wabbit Member

    Newcomer
    1
    Jan 14, 2017
    I'm going to show much knowledge of machine code I don't have, but does mean that it would be theoretically possible to install it on PC and play it without the need for an emulator?
     
  20. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23
    Nov 21, 2005
    United Kingdom
    While C has often been called portable assembler I don't think we have seen anybody manage to slap a modern PC compiler hard enough that it spits out a workable program just yet (even a slow version).

    Eventually though with some code tweaking then yes you will probably get a super_mario_64.exe and click on it and experience the joys of Mario 64 on a PC without emulation, remote play, simulation or some kind of quasi recreation and asset rip thing that some not quite emulators go in for. For what it is worth though you can convert plain old assembly games to other things too, it just takes hundreds of times longer so nobody really bothers when ROM hacking and emulators are a thing.
     
  21. nullpointer128

    nullpointer128 Newbie

    Newcomer
    1
    Jul 17, 2019
    United States
    We'd have to start with writing an OpenGL backend for the gSP API, gDP API, and the gu API. We would also have to write our own implementation of the os API and make a wrapper to SDL or SDL-equivalent for cross-platform audio and input. This is just for getting a "vanilla" SM64 experience (e.g. no modified graphics).

    If we'd want to overhaul the graphics, we would not write an implementation of the APIs, but we would have to completely rework the rendering logic for SM64, because it currently relies heavily on rendering n64 display lists and SPTasks. And there are 451 gSP calls in the code, and over 936 references to display lists.

    This doesn't even include porting all the code so it conforms to modern C compiler requirements. So it's a big undertaking, but given another couple years and community teamwork, it will be done.
     
Loading...