[Switch] Une version native de Super Mario 64 est désormais disponible

1572 visiteurs sur le site | S'incrire

Accédez aux coordonnées de l’ensemble des techniciens professionnels recommandés par logic-sunrise 20 derniers dossiers et tutoriaux
Wii / Wii U
[Switch] Une version native de Super Mario 64 est désormais disponible

Il a plusieurs semaines, des fans du célèbre jeu Super Mario 64 se sont lancés dans un défi particulièrement intéressant : faute de code source disponible pour ce jeu (qui est la propriété exclusive de Nintendo), des développeurs organisés sous le nom de "Team Atlas" ont effectué un incroyable travail de reverse-engeneering sur le jeu afin de donner naissance à un portage totalement fonctionnel sur PC. 

 

Cette prouesse technique permet donc de jouer de manière native à ce jeu sur n'importe quel ordinateur fonctionnant sous Windows (le portage a été effectué dans un premier temps pour DirectX 12). Mais ce n'est pas tout, car étant donné qu'il s'agit ici d'un jeu PC à proprement parler, et non d'émulation, les limites traditionnelles ne s'appliquent donc pas : le jeu est jouable sans limite de résolution, en 4:3 comme en 16:9, en SD, HD, FHD, 2K, 4K et j'en passe, et il est même possible d'implémenter des outils que les gamers affectionnent particulièrement comme Reshade, qui peut apporter du ray-tracing par exmple ! Tout cela n'aurait pas été possible sans une communauté très active, qui a réalisé ici un travail de recherche incroyable.

 

 

Mais quel rapport avec notre chère Nintendo Switch me direz-vous ? Et bien comme vous le savez, cette console est particulièrement appréciée par les développeurs underground car son architecture et son système d'exploitation sont assez flexible pour faire fonctionner de nombreux portages (à commencer par Doom, mais ça c'est obligatoire !). Il aura donc fallu très peu de temps pour qu'émerge sur la toile une version installable de ce portage PC, disponible en fichier NSP et à installer avec votre outil favori (Awoo-Installer, Goldleaf...). 
 

Update : La team AtlasNX nie avoir développé ce portage. https://twitter.com/...775706177241088

 

in-switch-une-version-native-de-super-ma

 

Aucun lien, ni demande de lien vers le jeu PC ou Switch ne sera toléré dans les commentaires, et vous exposera à un ban immédiat !!!

Vendredi 08 Mai 2020, 17:45 par dotmehdi
Source : github.com
08 mai 2020, 17:48
Approuver ce commentaire (+1)
Excellent !! en version native!! c'est ça qui est bon !
Répondre à ce commentaire
08 mai 2020, 17:52
Approuver ce commentaire (+1)
Ah excellent la bonne news sur switch :-)
Répondre à ce commentaire
08 mai 2020, 17:53
Approuver ce commentaire (+1)
+1
La mème sur ps4 ensuite ? ^^ merci pour le taff ;)
Répondre à ce commentaire
08 mai 2020, 18:00
Approuver ce commentaire (+1)
+2
La même sur ps3 et xbox 360? ^^
Répondre à ce commentaire
08 mai 2020, 18:05
Approuver ce commentaire (+1)
+2
La fin de mon article a été modifiée mais je tenais à peu près le même discours de toute manière haha, en revanche j'avais posé le hash md5 du fichier qui peut quand même être utile en cas de brick (pour ceux qui téléchargent le jeu ailleurs) donc le voici : 8c1fc45fa34bcdb53004be18c6f55770

@la modération ne supprimez pas mon commentaire s'il vous plait, on ne pourra empêcher personne de télécharger de genre de contenu, faisons au moins sorte que celui-ci ne brick pas nos chères consoles :)
Répondre à ce commentaire
08 mai 2020, 18:07
Approuver ce commentaire (+1)
+2

Attention, la team AtlasNX nie avoir build ce portage

 

https://twitter.com/...775706177241088

Répondre à ce commentaire
08 mai 2020, 18:16
Approuver ce commentaire (+1)

Attention, la team AtlasNX nie avoir build ce portage
 
https://twitter.com/...775706177241088

ho la vache merci pour l'info ! ça mériterai d'étre rajouté en news
Répondre à ce commentaire
08 mai 2020, 18:32
Approuver ce commentaire (+1)
j'ai dl le portage je vais attendre des retours
Répondre à ce commentaire
08 mai 2020, 18:33
Approuver ce commentaire (+1)
bon alors on va attendre avant de l'installer
Répondre à ce commentaire
08 mai 2020, 18:35
Approuver ce commentaire (+1)
Message de la Team AtlasNX

uK :

We did not build nor do we take ownership of the build of Super Mario 64 for the Switch that was released. The build contains a readme in it's RomFS that associates the build with us, but no one on the team is responsible for it.

Because the readme contained our patreon link, we ask that people do not donate because of it. We are looking to temporarily disable our patreon page as we don't feel comfortable about possible profiting off of pirated content.

FR:

Nous n'avons pas construit ni ne nous approprions la construction de Super Mario 64 pour le Switch qui a été publié. Le build contient un readme dans son RomFS qui associe le build avec nous, mais personne de l'équipe n'en est responsable.

Parce que le readme contient notre lien de patréon, nous demandons aux gens de ne pas faire de dons à cause de cela. Nous cherchons à désactiver temporairement notre page de patréon car nous ne nous sentons pas à l'aise avec l'idée de profiter d'un éventuel contenu piraté.
Répondre à ce commentaire
08 mai 2020, 18:35
Approuver ce commentaire (+1)
mdr, en même temps, le lien est en bas de la vidéo youtube !
Répondre à ce commentaire
08 mai 2020, 19:08
Approuver ce commentaire (+1)
+1
Salut,

Dépêches vous de télécharger le portage sur pc si vous voulait l'essayer les liens commence déjà a étre supprimer.

A cause d'une plainte des avocats de Big N

Nintendo et très (trop) réactif sur la suppression du portage je trouve.

Note: Ce qui est vraiment incompréhensible je trouve pour un vieux jeux N64 qui ces d' ailleurs très bien vendus sur n64.
Répondre à ce commentaire
08 mai 2020, 19:38
Approuver ce commentaire (+1)
+1

Attention, la team AtlasNX nie avoir build ce portage https://twitter.com/...775706177241088

ho la vache merci pour l'info ! ça mériterai d'étre rajouté en news

J'ai essayé de le rajouter à le news mais je ne suis pas un pro haha je n'ai modifié que le post sur le forum...
Je ne savais pas que l'équipe derrière ce portage se faisait passer pour la team AtlasNX, je pensait que c'était juste une homonyme... Mystère !


mdr, en même temps, le lien est en bas de la vidéo youtube !

Il s'agit du lien pour télécharger le code source du portage PC


j'ai dl le portage je vais attendre des retours

Je l'ai testé avant d'écrire la news ;)
Répondre à ce commentaire
08 mai 2020, 19:44
Approuver ce commentaire (+1)
+1
Y a aussi Super Mario 64 REMAKE mais faut etre

mdr, en même temps, le lien est en bas de la vidéo youtube !


non des codes source pour compiler
Répondre à ce commentaire
Utilisateur en ligne
08 mai 2020, 19:45
Approuver ce commentaire (+1)
bonjour,

il existe en .xci aussi :)
Répondre à ce commentaire
08 mai 2020, 19:51
Approuver ce commentaire (+1)
+1
Oui et pour ma part c'est le .xci que j'utilise et cela fonctionne bien
Répondre à ce commentaire
08 mai 2020, 19:59
Approuver ce commentaire (+1)
+1

Salut,

Dépêches vous de télécharger le portage sur pc si vous voulait l'essayer les liens commence déjà a étre supprimer.

A cause d'une plainte des avocats de Big N

Nintendo et très (trop) réactif sur la suppression du portage je trouve.

Note: Ce qui est vraiment incompréhensible je trouve pour un vieux jeux N64 qui ces d' ailleurs très bien vendus sur n64.

Il sera toujours trouvable maintenant qu'il est sur le net ;)

Répondre à ce commentaire
08 mai 2020, 20:10
Approuver ce commentaire (+1)
+1
Moi j arrive pas a trouvé le jeux sur pc.
Plein de vidéo tourne mais aucun lien.
edit: j'ai trouvé
Dommage pas de FR
Répondre à ce commentaire
08 mai 2020, 20:47
Approuver ce commentaire (+1)
+1
Il me semble que se soit basé sur le code source récemment leaké, donc pas de reverse engineering et moins de glorieux ^^
Répondre à ce commentaire
08 mai 2020, 20:52
Approuver ce commentaire (+1)
merci pour la news, fonctionne nikel!
Répondre à ce commentaire
08 mai 2020, 21:41
Approuver ce commentaire (+1)
Dommage qui est pas Traduit en FR -_-
Répondre à ce commentaire
08 mai 2020, 22:01
Approuver ce commentaire (+1)
Ça a déjà été dit mais je le redis :
ATTENTION
L'auteur n'est pas du tout la team AtlasNX
Soyez prudent et ne faites pas de donation à leur patreon pour ce portage
Répondre à ce commentaire
08 mai 2020, 22:19
Approuver ce commentaire (+1)
+1
Tourne du feu de dieu !
Répondre à ce commentaire
08 mai 2020, 23:45
Approuver ce commentaire (+1)
+1

Moi j arrive pas a trouvé le jeux sur pc.
Plein de vidéo tourne mais aucun lien.
edit: j'ai trouvé
Dommage pas de FR


Apres il y a quoi, 10 lignes de texte dans Mario 64 :,-)
Répondre à ce commentaire
09 mai 2020, 00:04
Approuver ce commentaire (+1)
+4

Dommage qui est pas Traduit en FR -_-

Tu n'as qu'à le traduire toi-même, à oui c'est beaucoup plus simple de rajouter "kaze-nico" aux releases des autres.
Répondre à ce commentaire
Utilisateur en ligne
09 mai 2020, 00:19
Approuver ce commentaire (+1)
+3

bah comme sur la version PC il faut faire le reverse de la rom eur de Mario 64 pour prendre ses assets et tous le reste pour le compiler et avoir une belle VF ....

Répondre à ce commentaire
09 mai 2020, 02:01
Approuver ce commentaire (+1)

bah comme sur la version PC il faut faire le reverse de la rom eur de Mario 64 pour prendre ses assets et tous le reste pour le compiler et avoir une belle VF ....

Ça à l'air simple dis comme ça B) 
Répondre à ce commentaire
09 mai 2020, 06:42
Approuver ce commentaire (+1)
+2

Salut,

Dépêches vous de télécharger le portage sur pc si vous voulait l'essayer les liens commence déjà a étre supprimer.

A cause d'une plainte des avocats de Big N

Nintendo et très (trop) réactif sur la suppression du portage je trouve.

Note: Ce qui est vraiment incompréhensible je trouve pour un vieux jeux N64 qui ces d' ailleurs très bien vendus sur n64.

Un remaster est censé sortir cette année pour les 35 ans de mario, un peu logique que ça la fout mal.
Répondre à ce commentaire
09 mai 2020, 10:11
Approuver ce commentaire (+1)
Je viens de tester, ça tourne vraiment au poil! Et à 12mo le nsp, on aurait tort de se priver...
Répondre à ce commentaire
09 mai 2020, 10:31
Approuver ce commentaire (+1)
Une version pour ma petite
RG 350 serait top.
Je pense que c est possible elle tourne sous linux.
Répondre à ce commentaire
09 mai 2020, 11:02
Approuver ce commentaire (+1)

bah comme sur la version PC il faut faire le reverse de la rom eur de Mario 64 pour prendre ses assets et tous le reste pour le compiler et avoir une belle VF ....

Plus simple à dire qu'à faire.
Après si tu le fait, je suis preneur ;)
Répondre à ce commentaire
09 mai 2020, 12:22
Approuver ce commentaire (+1)
Salut , superbe news , o top , je l'ai test sur pc dèja , y'a t'il une version française sur pc , perso j'ai la versions anglaise , je ces pas si il a été fait en français , merci pour la news.
Répondre à ce commentaire
09 mai 2020, 12:26
Approuver ce commentaire (+1)
+1

bah comme sur la version PC il faut faire le reverse de la rom eur de Mario 64 pour prendre ses assets et tous le reste pour le compiler et avoir une belle VF ....

Les assets sont pas compilées, du texte ou des images ça se compile pas. Sur les jeux Switch ou 3DS par ex, les assets sont dans le RomFS (read-only FileSystem) et le ExeFS (executable FileSystem) contient les programmes compilés. Tout ça pour dire que pour choper les traductions de la rom EUR, je pense qu'il suffit d'extraire le RomFS du jeu, pas besoin de décompiler ou recompiler quoi que soit à mon avis. (Après sur les rom N64, je sais pas comment ça fonctionne mais j'imagine que c'est le même principe).

 

NB : En théorie, tu peux coder les "textes" du jeu en dur dans les programmes, mais en général c'est pas fait comme ça, le code fait référence à des assets dans la RomFS, justement pour gérer le multi-langue.

Répondre à ce commentaire
09 mai 2020, 12:42
Approuver ce commentaire (+1)
+1

merci pour la news

 

enfin c'est bien , mais bof bof,  la version N64 réagis beaucoup beaucoup mieux que cette version switch , par exemple lorsque tu fait un demi tour, Mario fait un pas en avant pour après se retourner ce qui te fait tomber des plateformes si tu est aux bords !!!!

 

c'est un de mes meilleurs souvenirs de cette époque , je l'ai poncé le jeu et je me souviens pas de ce contrôle très imprécis.

 

très déçu , même si c'est sympas quand même :/

Répondre à ce commentaire
09 mai 2020, 15:09
Approuver ce commentaire (+1)
Pas essayé la version switch, ... la version pc est vraiment top, pouvoir jouer en ultrawide avec une manette xbox !!
pour infos sur pc il existe la version compilé (et code source dispo aussi) DX12, OGL et Linux ...
manque plus de MK64 et c'est la teuf ...
Répondre à ce commentaire
09 mai 2020, 15:21
Approuver ce commentaire (+1)
mk64 je kiff
Répondre à ce commentaire
09 mai 2020, 15:46
Approuver ce commentaire (+1)
Le jeu et tres facilement trouvable sinon comment fait on pour integrer des icones dans le hbl comme dans les screens du sujet, ou en ajouter si il n'y en a pas deja?
Répondre à ce commentaire
Utilisateur en ligne
09 mai 2020, 17:39
Approuver ce commentaire (+1)
+1

Pour information, le code source obtenu par reverse engeenering est légal car ce n'est pas le code source original de Nintendo sous Copyright. Par contre, distribuer la rom du jeu ne l'est pas, pas plus que le jeu prêt à l'emploi, tant qu'il utilise les textures copyrightées par Nintendo, ainsi que leur marque, et les noms associés.
En gros, la situation est la même que pour Doom et Morrowind.

Dans les faits, n'importe qui pourrait légalement proposer un programme ici, se contentant de compiler automatiquement l'executable switch/Windows/Linux/etc... Du moment que l'utilisateur se débrouille par ses propres moyens pour fournir la rom du jeu (Version US, Eu, ou Jap), au programme.

J'ai tenté de compiler le jeu sur PC pour ma part, mais j'aboutis à des erreurs, c'est dommage, j'aurais voulu tenter de modder un peu pour remplacer les textures.


Que ce soit en natif ou avec docker, je tombe là dessus :

Spoiler



D'après certains sur le forum, il y aurait un problème avec le Makefile aussi, pour toutes les machines 64bits. il faudrait commenter :
 

OPT_FLAGS := -g -m32

Et
 

CC_CHECK += -m32

Et
 

LDFLAGS := -m32 -march=i686 -Llib -lpthread -lglew32 sdl2-config --static-libs -lm -lglu32 -lsetupapi -ldinput8 -luser32 -lgdi32 -limm32 -lole32 -loleaut32 -lshell32 -lwinmm -lversion -luuid -lopengl32 -no-pie -static

Et

 

LDFLAGS := -m32 -march=i686 -lm -lGL sdl2-config --libs -no-pie -lpthread pkg-config --libs libusb-1.0 glfw3 -lasound -lX11 -lXrandr -lpulse

Chose que j'ai fait, qui a corrigé des blocages, et abouti aux erreurs avec la compilation ci dessus (le spoiler).

 

 

Pour information, un Dockerfile est disponible ici pour avoir les conditions idéales pour compiler le code source du jeu sans obligatoirement devoir installer la distribution Linux ciblé, ciblant toutes les plateformes (switch, windows, linux, opengl/dx12... :

 

FROM ubuntu:20.04 as build

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && \
    apt-get install -y \
        binutils-mips-linux-gnu \
        bsdmainutils \
        build-essential \
        libaudiofile-dev \
        libglew-dev \
        libglfw3-dev \
        libsdl2-dev \
        libusb-dev \
        libusb-1.0.0-dev \
        pkg-config \
        python3 \
        wget \
        x11proto-randr-dev \
        zlib1g-dev
        

RUN wget \
        https://github.com/n64decomp/qemu-irix/releases/download/v2.11-deb/qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb \
        -O qemu.deb && \
    echo 8170f37cf03a08cc2d7c1c58f10d650ea0d158f711f6916da9364f6d8c85f741 qemu.deb | sha256sum --check && \
    dpkg -i qemu.deb && \
    rm qemu.deb

RUN mkdir /sm64
WORKDIR /sm64
ENV PATH="/sm64/tools:${PATH}"

CMD echo 'This is Docker container about compiling Super Mario 64 on Linux and Windows 64bits, with SDL2/GL API Support, and Xinput Gamepads and Dualshock 4 (USB and Bluetooth), and keyboard.' \
		 'usage (US Build): docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 --user $UID:$UID sm64  sm64 make VERSION=${VERSION:-us} -j$(nproc)\n' \
		 'usage (JP Build): docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 --user $UID:$UID sm64  sm64 make VERSION=${VERSION:-jp} -j$(nproc)\n' \
		 'usage (EU Build - Still WIP): docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 --user $UID:$UID sm64  sm64 make VERSION=${VERSION:-eu} COMPARE=0 -j$(nproc)\n' \ 
         'see https://github.com/n64decomp/sm64/blob/master/README.md for advanced usage'

 
 

 

 

Répondre à ce commentaire
09 mai 2020, 17:42
Approuver ce commentaire (+1)

Attention, la team AtlasNX nie avoir build ce portage https://twitter.com/...775706177241088

on est pas pret de revoir la team atlas de si tot vu que nintendo a depose plainte ..... logique qu'ils disent que ce n'est pas eux ^^ merci pour la news :) et super taff :)
Répondre à ce commentaire
09 mai 2020, 23:13
Approuver ce commentaire (+1)
Il y a déjà eu des liens pour du warez pourquoi interdire le lien pour ce portage ? (http://www.logic-sun...sur-switch.html)
Répondre à ce commentaire
09 mai 2020, 23:42
Approuver ce commentaire (+1)

Il y a déjà eu des liens pour du warez pourquoi interdire le lien pour ce portage ? (http://www.logic-sun...sur-switch.html)

Ce lien n'est pas du warez puisque portage d'un code source rendu public par adobe lui même.

Là c'est du leak de code source obtenu par piratage des serveurs de nintendo...suis même étonné que nintendo ait pas fait pété la page github....
Répondre à ce commentaire
09 mai 2020, 23:43
Approuver ce commentaire (+1)

Pour information, le code source obtenu par reverse engeenering est légal car ce n'est pas le code source original de Nintendo sous Copyright. Par contre, distribuer la rom du jeu ne l'est pas, pas plus que le jeu prêt à l'emploi, tant qu'il utilise les textures copyrightées par Nintendo, ainsi que leur marque, et les noms associés.
En gros, la situation est la même que pour Doom et Morrowind.
Dans les faits, n'importe qui pourrait légalement proposer un programme ici, se contentant de compiler automatiquement l'executable switch/Windows/Linux/etc... Du moment que l'utilisateur se débrouille par ses propres moyens pour fournir la rom du jeu (Version US, Eu, ou Jap), au programme.
J'ai tenté de compiler le jeu sur PC pour ma part, mais j'aboutis à des erreurs, c'est dommage, j'aurais voulu tenter de modder un peu pour remplacer les textures.
Que ce soit en natif ou avec docker, je tombe là dessus :

Spoiler

 
build/us_pc/src/engine/math_util.o: In function `vec3f_normalize':
math_util.c:(.text+0x7a0): undefined reference to `sqrtf'
build/us_pc/src/engine/math_util.o: In function `mtxf_lookat':
math_util.c:(.text+0x97c): undefined reference to `sqrtf'
math_util.c:(.text+0xac8): undefined reference to `sqrtf'
math_util.c:(.text+0xb89): undefined reference to `sqrtf'
math_util.c:(.text+0xc4a): undefined reference to `sqrtf'
build/us_pc/src/engine/math_util.o:math_util.c:(.text+0x2845): more undefined references to `sqrtf' follow
build/us_pc/src/game/display.o: In function `clear_frame_buffer':
display.c:(.text+0x79c): undefined reference to `ceilf'
display.c:(.text+0x805): undefined reference to `floorf'
build/us_pc/src/game/display.o: In function `clear_viewport':
display.c:(.text+0x968): undefined reference to `floorf'
display.c:(.text+0x9aa): undefined reference to `ceilf'
build/us_pc/src/game/object_collision.o: In function `func_802C8504':
object_collision.c:(.text+0x14c): undefined reference to `sqrtf'
build/us_pc/src/game/object_collision.o: In function `func_802C870C':
object_collision.c:(.text+0x399): undefined reference to `sqrtf'
build/us_pc/src/game/object_helpers.o: In function `lateral_dist_between_objects':
object_helpers.c:(.text+0xef4): undefined reference to `sqrtf'
build/us_pc/src/game/object_helpers.o: In function `dist_between_objects':
object_helpers.c:(.text+0xf97): undefined reference to `sqrtf'
build/us_pc/src/game/object_helpers.o: In function `obj_turn_toward_object':
object_helpers.c:(.text+0x1338): undefined reference to `sqrtf'
build/us_pc/src/game/object_helpers.o:object_helpers.c:(.text+0x3763): more undefined references to `sqrtf' follow
build/us_pc/src/game/rendering_graph_node.o: In function `geo_process_background':
rendering_graph_node.c:(.text+0x1582): undefined reference to `ceilf'
rendering_graph_node.c:(.text+0x15eb): undefined reference to `floorf'
build/us_pc/src/game/paintings.o: In function `painting_calculate_point_ripple':
paintings.c:(.text+0x11bd): undefined reference to `sqrtf'
build/us_pc/src/game/paintings.o: In function `func_802D39DC':
paintings.c:(.text+0x1982): undefined reference to `sqrtf'
build/us_pc/src/game/behavior_actions.o: In function `func_802AA7EC':
behavior_actions.c:(.text+0x52d8): undefined reference to `sqrtf'
build/us_pc/src/game/behavior_actions.o: In function `func_802B2894':
behavior_actions.c:(.text+0xcab3): undefined reference to `sqrtf'
build/us_pc/src/game/behavior_actions.o: In function `bhv_bowser_loop':
behavior_actions.c:(.text+0x10814): undefined reference to `sqrtf'
build/us_pc/src/game/behavior_actions.o:behavior_actions.c:(.text+0x15f18): more undefined references to `sqrtf' follow
build/us_pc/src/game/hud.o: In function `render_hud_mario_lives':
hud.c:(.text+0x8bc): undefined reference to `floorf'
hud.c:(.text+0x907): undefined reference to `floorf'
hud.c:(.text+0x95c): undefined reference to `floorf'
build/us_pc/src/game/hud.o: In function `render_hud_stars':
hud.c:(.text+0xa3b): undefined reference to `ceilf'
hud.c:(.text+0xa89): undefined reference to `ceilf'
hud.c:(.text+0xafa): undefined reference to `ceilf'
build/us_pc/src/game/hud.o: In function `render_hud_timer':
hud.c:(.text+0xc44): undefined reference to `ceilf'
hud.c:(.text+0xc90): undefined reference to `ceilf'
build/us_pc/src/game/hud.o:hud.c:(.text+0xcde): more undefined references to `ceilf' follow
build/us_pc/src/game/mario_actions_airborne.o: In function `check_horizontal_wind':
mario_actions_airborne.c:(.text+0x670): undefined reference to `sqrtf'
build/us_pc/src/game/obj_behaviors_2.o: In function `platform_on_track_update_pos_or_spawn_ball':
obj_behaviors_2.c:(.text+0x46a): undefined reference to `sqrtf'
obj_behaviors_2.c:(.text+0x6a8): undefined reference to `sqrtf'
build/us_pc/src/game/obj_behaviors_2.o: In function `treat_far_home_as_mario':
obj_behaviors_2.c:(.text+0x2116): undefined reference to `sqrtf'
obj_behaviors_2.c:(.text+0x2211): undefined reference to `sqrtf'
build/us_pc/src/game/obj_behaviors_2.o:obj_behaviors_2.c:(.text+0x628c): more undefined references to `sqrtf' follow
build/us_pc/src/game/mario_actions_cutscene.o: In function `print_displaying_credits_entry':
mario_actions_cutscene.c:(.text+0x125): undefined reference to `floorf'
mario_actions_cutscene.c:(.text+0x1ac): undefined reference to `floorf'
mario_actions_cutscene.c:(.text+0x229): undefined reference to `floorf'
mario_actions_cutscene.c:(.text+0x296): undefined reference to `ceilf'
build/us_pc/src/game/mario_actions_cutscene.o: In function `act_bbh_enter_spin':
mario_actions_cutscene.c:(.text+0x2fe0): undefined reference to `sqrtf'
mario_actions_cutscene.c:(.text+0x30c2): undefined reference to `sqrtf'
build/us_pc/src/game/mario_actions_cutscene.o: In function `act_bbh_enter_jump':
mario_actions_cutscene.c:(.text+0x343e): undefined reference to `sqrtf'
build/us_pc/src/game/mario_actions_cutscene.o: In function `jumbo_star_cutscene_flying':
mario_actions_cutscene.c:(.text+0x47e4): undefined reference to `sqrtf'
build/us_pc/src/game/screen_transition.o: In function `calc_tex_transition_time':
screen_transition.c:(.text+0x67d): undefined reference to `sqrtf'
build/us_pc/src/game/mario_actions_submerged.o:mario_actions_submerged.c:(.text+0x553): more undefined references to `sqrtf' follow
build/us_pc/src/pc/gfx/gfx_sdl2.o: In function `gfx_sdl_init':
gfx_sdl2.c:(.text+0xe): undefined reference to `SDL_Init'
gfx_sdl2.c:(.text+0x1d): undefined reference to `SDL_GL_SetAttribute'
gfx_sdl2.c:(.text+0x2c): undefined reference to `SDL_GL_SetAttribute'
gfx_sdl2.c:(.text+0x53): undefined reference to `SDL_CreateWindow'
gfx_sdl2.c:(.text+0x69): undefined reference to `SDL_GL_CreateContext'
gfx_sdl2.c:(.text+0x73): undefined reference to `SDL_GL_SetSwapInterval'
build/us_pc/src/pc/gfx/gfx_sdl2.o: In function `gfx_sdl_main_loop':
gfx_sdl2.c:(.text+0x208): undefined reference to `SDL_GetTicks'
gfx_sdl2.c:(.text+0x216): undefined reference to `SDL_GetTicks'
gfx_sdl2.c:(.text+0x237): undefined reference to `SDL_Delay'
build/us_pc/src/pc/gfx/gfx_sdl2.o: In function `gfx_sdl_get_dimensions':
gfx_sdl2.c:(.text+0x263): undefined reference to `SDL_GetWindowSize'
build/us_pc/src/pc/gfx/gfx_sdl2.o: In function `gfx_sdl_handle_events':
gfx_sdl2.c:(.text+0x335): undefined reference to `SDL_PollEvent'
build/us_pc/src/pc/gfx/gfx_sdl2.o: In function `gfx_sdl_swap_buffers_begin':
gfx_sdl2.c:(.text+0x36e): undefined reference to `SDL_GL_SwapWindow'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_vertex_array_set_attribs':
gfx_opengl.c:(.text+0x48): undefined reference to `glEnableVertexAttribArray'
gfx_opengl.c:(.text+0x96): undefined reference to `glVertexAttribPointer'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_unload_shader':
gfx_opengl.c:(.text+0xf7): undefined reference to `glDisableVertexAttribArray'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_load_shader':
gfx_opengl.c:(.text+0x128): undefined reference to `glUseProgram'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_create_and_load_new_shader':
gfx_opengl.c:(.text+0x1377): undefined reference to `glCreateShader'
gfx_opengl.c:(.text+0x139d): undefined reference to `glShaderSource'
gfx_opengl.c:(.text+0x13aa): undefined reference to `glCompileShader'
gfx_opengl.c:(.text+0x13c3): undefined reference to `glGetShaderiv'
gfx_opengl.c:(.text+0x13f4): undefined reference to `glGetShaderiv'
gfx_opengl.c:(.text+0x1435): undefined reference to `glGetShaderInfoLog'
gfx_opengl.c:(.text+0x1466): undefined reference to `glCreateShader'
gfx_opengl.c:(.text+0x1494): undefined reference to `glShaderSource'
gfx_opengl.c:(.text+0x14a1): undefined reference to `glCompileShader'
gfx_opengl.c:(.text+0x14ba): undefined reference to `glGetShaderiv'
gfx_opengl.c:(.text+0x14eb): undefined reference to `glGetShaderiv'
gfx_opengl.c:(.text+0x152c): undefined reference to `glGetShaderInfoLog'
gfx_opengl.c:(.text+0x1558): undefined reference to `glCreateProgram'
gfx_opengl.c:(.text+0x1573): undefined reference to `glAttachShader'
gfx_opengl.c:(.text+0x1588): undefined reference to `glAttachShader'
gfx_opengl.c:(.text+0x1595): undefined reference to `glLinkProgram'
gfx_opengl.c:(.text+0x15e8): undefined reference to `glGetAttribLocation'
gfx_opengl.c:(.text+0x1646): undefined reference to `glGetAttribLocation'
gfx_opengl.c:(.text+0x1697): undefined reference to `glGetAttribLocation'
gfx_opengl.c:(.text+0x1715): undefined reference to `glGetAttribLocation'
gfx_opengl.c:(.text+0x181d): undefined reference to `glGetUniformLocation'
gfx_opengl.c:(.text+0x1835): undefined reference to `glUniform1i'
gfx_opengl.c:(.text+0x1854): undefined reference to `glGetUniformLocation'
gfx_opengl.c:(.text+0x186c): undefined reference to `glUniform1i'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_new_texture':
gfx_opengl.c:(.text+0x195f): undefined reference to `glGenTextures'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_select_texture':
gfx_opengl.c:(.text+0x1995): undefined reference to `glActiveTexture'
gfx_opengl.c:(.text+0x19a4): undefined reference to `glBindTexture'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_upload_texture':
gfx_opengl.c:(.text+0x19ef): undefined reference to `glTexImage2D'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_set_sampler_parameters':
gfx_opengl.c:(.text+0x1a4b): undefined reference to `glActiveTexture'
gfx_opengl.c:(.text+0x1a6e): undefined reference to `glTexParameteri'
gfx_opengl.c:(.text+0x1a91): undefined reference to `glTexParameteri'
gfx_opengl.c:(.text+0x1aac): undefined reference to `glTexParameteri'
gfx_opengl.c:(.text+0x1ac7): undefined reference to `glTexParameteri'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_set_depth_test':
gfx_opengl.c:(.text+0x1ae7): undefined reference to `glEnable'
gfx_opengl.c:(.text+0x1af3): undefined reference to `glDisable'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_set_depth_mask':
gfx_opengl.c:(.text+0x1b11): undefined reference to `glDepthMask'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_set_zmode_decal':
gfx_opengl.c:(.text+0x1b3c): undefined reference to `glPolygonOffset'
gfx_opengl.c:(.text+0x1b46): undefined reference to `glEnable'
gfx_opengl.c:(.text+0x1b55): undefined reference to `glPolygonOffset'
gfx_opengl.c:(.text+0x1b5f): undefined reference to `glDisable'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_set_viewport':
gfx_opengl.c:(.text+0x1b89): undefined reference to `glViewport'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_set_scissor':
gfx_opengl.c:(.text+0x1bb3): undefined reference to `glScissor'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_set_use_alpha':
gfx_opengl.c:(.text+0x1bd3): undefined reference to `glEnable'
gfx_opengl.c:(.text+0x1bdf): undefined reference to `glDisable'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_draw_triangles':
gfx_opengl.c:(.text+0x1c17): undefined reference to `glBufferData'
gfx_opengl.c:(.text+0x1c34): undefined reference to `glDrawArrays'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_init':
gfx_opengl.c:(.text+0x1c4c): undefined reference to `glGenBuffers'
gfx_opengl.c:(.text+0x1c5e): undefined reference to `glBindBuffer'
gfx_opengl.c:(.text+0x1c68): undefined reference to `glDepthFunc'
gfx_opengl.c:(.text+0x1c77): undefined reference to `glBlendFunc'
build/us_pc/src/pc/gfx/gfx_opengl.o: In function `gfx_opengl_start_frame':
gfx_opengl.c:(.text+0x1c88): undefined reference to `glDisable'
gfx_opengl.c:(.text+0x1c92): undefined reference to `glDepthMask'
gfx_opengl.c:(.text+0x1cab): undefined reference to `glClearColor'
gfx_opengl.c:(.text+0x1cb5): undefined reference to `glClear'
gfx_opengl.c:(.text+0x1cbf): undefined reference to `glEnable'
build/us_pc/src/pc/audio/audio_sdl.o: In function `audio_sdl_init':
audio_sdl.c:(.text+0x1d): undefined reference to `SDL_Init'
audio_sdl.c:(.text+0x26): undefined reference to `SDL_GetError'
audio_sdl.c:(.text+0x64): undefined reference to `SDL_memset'
audio_sdl.c:(.text+0xa6): undefined reference to `SDL_OpenAudioDevice'
audio_sdl.c:(.text+0xbb): undefined reference to `SDL_GetError'
audio_sdl.c:(.text+0xf2): undefined reference to `SDL_PauseAudioDevice'
build/us_pc/src/pc/audio/audio_sdl.o: In function `audio_sdl_buffered':
audio_sdl.c:(.text+0x11e): undefined reference to `SDL_GetQueuedAudioSize'
build/us_pc/src/pc/audio/audio_sdl.o: In function `audio_sdl_play':
audio_sdl.c:(.text+0x164): undefined reference to `SDL_QueueAudio'
build/us_pc/src/pc/controller/controller_sdl.o: In function `controller_sdl_init':
controller_sdl.c:(.text+0xa): undefined reference to `SDL_Init'
controller_sdl.c:(.text+0x13): undefined reference to `SDL_GetError'
build/us_pc/src/pc/controller/controller_sdl.o: In function `controller_sdl_read':
controller_sdl.c:(.text+0x5f): undefined reference to `SDL_GameControllerUpdate'
controller_sdl.c:(.text+0x7a): undefined reference to `SDL_GameControllerGetAttached'
controller_sdl.c:(.text+0x8d): undefined reference to `SDL_GameControllerClose'
controller_sdl.c:(.text+0xb7): undefined reference to `SDL_IsGameController'
controller_sdl.c:(.text+0xc5): undefined reference to `SDL_GameControllerOpen'
controller_sdl.c:(.text+0xe1): undefined reference to `SDL_NumJoysticks'
controller_sdl.c:(.text+0x10d): undefined reference to `SDL_GameControllerGetButton'
controller_sdl.c:(.text+0x138): undefined reference to `SDL_GameControllerGetButton'
controller_sdl.c:(.text+0x163): undefined reference to `SDL_GameControllerGetButton'
controller_sdl.c:(.text+0x18e): undefined reference to `SDL_GameControllerGetButton'
controller_sdl.c:(.text+0x1ba): undefined reference to `SDL_GameControllerGetButton'
controller_sdl.c:(.text+0x1e5): undefined reference to `SDL_GameControllerGetAxis'
controller_sdl.c:(.text+0x1fd): undefined reference to `SDL_GameControllerGetAxis'
controller_sdl.c:(.text+0x215): undefined reference to `SDL_GameControllerGetAxis'
controller_sdl.c:(.text+0x22d): undefined reference to `SDL_GameControllerGetAxis'
controller_sdl.c:(.text+0x245): undefined reference to `SDL_GameControllerGetAxis'
build/us_pc/src/pc/controller/controller_sdl.o:controller_sdl.c:(.text+0x25d): more undefined references to `SDL_GameControllerGetAxis' follow
build/us_pc/lib/src/guNormalize.o: In function `guNormalize':
guNormalize.c:(.text+0x59): undefined reference to `sqrtf'
build/us_pc/lib/src/guLookAtRef.o: In function `guLookAtReflectF':
guLookAtRef.c:(.text+0x9b): undefined reference to `sqrtf'
guLookAtRef.c:(.text+0x161): undefined reference to `sqrtf'
guLookAtRef.c:(.text+0x227): undefined reference to `sqrtf'
build/us_pc/src/goddard/renderer.o: In function `gd_sqrt_d':
renderer.c:(.text+0x2ec): undefined reference to `sqrtf'
build/us_pc/src/goddard/renderer.o:renderer.c:(.text+0x3ef7): more undefined references to `sqrtf' follow
collect2: error: ld returned 1 exit status
make: *** [build/us_pc/sm64.us.f3dex2e] Error 1
Makefile:702: recipe for target 'build/us_pc/sm64.us.f3dex2e' failed


D'après certains sur le forum, il y aurait un problème avec le Makefile aussi, pour toutes les machines 64bits. il faudrait commenter :
 
OPT_FLAGS := -g -m32
Et
 
CC_CHECK += -m32
Et
 
LDFLAGS := -m32 -march=i686 -Llib -lpthread -lglew32 sdl2-config --static-libs -lm -lglu32 -lsetupapi -ldinput8 -luser32 -lgdi32 -limm32 -lole32 -loleaut32 -lshell32 -lwinmm -lversion -luuid -lopengl32 -no-pie -static
Et
 
LDFLAGS := -m32 -march=i686 -lm -lGL sdl2-config --libs -no-pie -lpthread pkg-config --libs libusb-1.0 glfw3 -lasound -lX11 -lXrandr -lpulse

Chose que j'ai fait, qui a corrigé des blocages, et abouti aux erreurs avec la compilation ci dessus (le spoiler).
 
 
Pour information, un Dockerfile est disponible ici pour avoir les conditions idéales pour compiler le code source du jeu sans obligatoirement devoir installer la distribution Linux ciblé, ciblant toutes les plateformes (switch, windows, linux, opengl/dx12... :
 
FROM ubuntu:20.04 as build

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && \
apt-get install -y \
binutils-mips-linux-gnu \
bsdmainutils \
build-essential \
libaudiofile-dev \
libglew-dev \
libglfw3-dev \
libsdl2-dev \
libusb-dev \
libusb-1.0.0-dev \
pkg-config \
python3 \
wget \
x11proto-randr-dev \
zlib1g-dev


RUN wget \
https://github.com/n...96eef_amd64.deb \
-O qemu.deb && \
echo 8170f37cf03a08cc2d7c1c58f10d650ea0d158f711f6916da9364f6d8c85f741 qemu.deb | sha256sum --check && \
dpkg -i qemu.deb && \
rm qemu.deb

RUN mkdir /sm64
WORKDIR /sm64
ENV PATH="/sm64/tools:${PATH}"

CMD echo 'This is Docker container about compiling Super Mario 64 on Linux and Windows 64bits, with SDL2/GL API Support, and Xinput Gamepads and Dualshock 4 (USB and Bluetooth), and keyboard.' \
'usage (US Build): docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 --user $UID:$UID sm64 sm64 make VERSION=${VERSION:-us} -j$(nproc)\n' \
'usage (JP Build): docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 --user $UID:$UID sm64 sm64 make VERSION=${VERSION:-jp} -j$(nproc)\n' \
'usage (EU Build - Still WIP): docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 --user $UID:$UID sm64 sm64 make VERSION=${VERSION:-eu} COMPARE=0 -j$(nproc)\n' \
'see https://github.com/n...aster/README.md for advanced usage'


Thanks
Répondre à ce commentaire
09 mai 2020, 23:46
Approuver ce commentaire (+1)
Personne pour le porter sur PS4 ?
Répondre à ce commentaire
09 mai 2020, 23:50
Approuver ce commentaire (+1)
Kiiwii a partager ça sur tweeter...

https://github.com/n...ab=repositories
Répondre à ce commentaire
10 mai 2020, 00:56
Approuver ce commentaire (+1)
"The source code for the PC port is now 100% public and available on GitHub for everyone to see and contribute to. It now supports analog camera movement and even mouse look, with a brand new options menu for it

The builds instructions are in the github page. The dependencies are different than for the old leaked version. Also, as far as I can tell, it's impossible to build Windows binaries from Linux, which is what I tried at first. You need to build your Windows binaries from Windows, using msys." (MSYS2)

https://rentry.co/io5p3

idem version eu
Répondre à ce commentaire
10 mai 2020, 02:25
Approuver ce commentaire (+1)
Malheureusement, il y a certains bugs sur switch qui empêchent d'obtenir certaines étoiles comme par exemple la mission "https://www.mariowik..._for_Red_Coins" ou les piliers n'apparaissent pas chez moi (et par extension, cela empêche aussi de réaliser la mission secrète de collecter 100 pièces).

Dommage. Heureusement que mario 64 doit normalement débarqué officiellement sur switch d'ici quelques mois.
Répondre à ce commentaire
10 mai 2020, 10:18
Approuver ce commentaire (+1)

Malheureusement, il y a certains bugs sur switch qui empêchent d'obtenir certaines étoiles comme par exemple la mission "https://www.mariowik...g_for_Red_Coins ou les piliers n'apparaissent pas chez moi (...)

Hello midorijin, j'ai fait cette mission hier soir et pour moi les piliers étaient bien présents, étoile récupéré sans soucis. (Version switch "Atlas" en NSP ). A+
Répondre à ce commentaire
10 mai 2020, 18:58
Approuver ce commentaire (+1)
+1

Malheureusement, il y a certains bugs sur switch qui empêchent d'obtenir certaines étoiles comme par exemple la mission "https://www.mariowik...g_for_Red_Coins ou les piliers n'apparaissent pas chez moi (...)

Hello midorijin, j'ai fait cette mission hier soir et pour moi les piliers étaient bien présents, étoile récupéré sans soucis. (Version switch "Atlas" en NSP ). A+

Oui, en fait, c'est que pour pouvoir libérer les piliers, il faut avoir fait le stage de bowser juste avant (absolument pas logique vu que ce n'est pas du tout le même monde, mais bon, c'est un prérequis).

Après avoir fait ça, tout fonctionne.
Répondre à ce commentaire
12 mai 2020, 18:16
Approuver ce commentaire (+1)

Kiiwii a partager ça sur tweeter...

https://github.com/n...ab=repositories

Oh purée j'espère qu'ils vont porter Perfect Dark sur switch !
Répondre à ce commentaire
17 mai 2020, 21:45
Approuver ce commentaire (+1)
Autant j’admire le boulot de retro-engineering effectuée par des passionnées pour le portage sur PC en Natif, autant un leak sur switch... après un piratage... c'est beaucoup moins louable :/
Répondre à ce commentaire
13 octobre 2022, 01:10
Approuver ce commentaire (+1)
Bonjour tout le monde, je me permet de vous demander si une version française existe ? Merci à vous !
Répondre à ce commentaire
Cliquer ici pour continuer sur le forum
Envoyer