Super Mario 64 has been decompiled

Ecchi95

Well-Known Member
OP
Member
Joined
Jul 7, 2019
Messages
121
Trophies
0
Age
29
XP
891
Country
United States
Files containing particular strings:

spawn_
Code:
src/engine/behavior_script.c
src/engine/surface_load.c
src/game/area.c
src/game/behaviors/beta_boo_key.inc.c
src/game/behaviors/beta_chest.inc.c
src/game/behaviors/bird.inc.c
src/game/behaviors/blue_coin.inc.c
src/game/behaviors/bobomb.inc.c
src/game/behaviors/boo.inc.c
src/game/behaviors/boo_cage.inc.c
src/game/behaviors/bowser.inc.c
src/game/behaviors/bowser_bomb.inc.c
src/game/behaviors/bowser_key.inc.c
src/game/behaviors/breakable_box_small.inc.c
src/game/behaviors/bub.inc.c
src/game/behaviors/bullet_bill.inc.c
src/game/behaviors/bully.inc.c
src/game/behaviors/camera_lakitu.inc.c
src/game/behaviors/capswitch.inc.c
src/game/behaviors/celebration_star.inc.c
src/game/behaviors/chain_chomp.inc.c
src/game/behaviors/chuckya.inc.c
src/game/behaviors/cloud.inc.c
src/game/behaviors/coin.inc.c
src/game/behaviors/controllable_platform.inc.c
src/game/behaviors/corkbox.inc.c
src/game/behaviors/enemy_lakitu.inc.c
src/game/behaviors/exclamation_box.inc.c
src/game/behaviors/explosion.inc.c
src/game/behaviors/falling_pillar.inc.c
src/game/behaviors/fishing_boo.inc.c
src/game/behaviors/flame_mario.inc.c
src/game/behaviors/goomba.inc.c
src/game/behaviors/king_bobomb.inc.c
src/game/behaviors/klepto.inc.c
src/game/behaviors/koopa.inc.c
src/game/behaviors/koopa_shell.inc.c
src/game/behaviors/little_cage.inc.c
src/game/behaviors/mips.inc.c
src/game/behaviors/moneybag.inc.c
src/game/behaviors/monty_mole.inc.c
src/game/behaviors/moving_coin.inc.c
src/game/behaviors/mr_blizzard.inc.c
src/game/behaviors/mr_i.inc.c
src/game/behaviors/mushroom_1up.inc.c
src/game/behaviors/piranha_particles.inc.c
src/game/behaviors/piranha_plant.inc.c
src/game/behaviors/pound_explode.inc.c
src/game/behaviors/pyramid_top.inc.c
src/game/behaviors/racing_penguin.inc.c
src/game/behaviors/skeeter.inc.c
src/game/behaviors/snowman.inc.c
src/game/behaviors/sparkle_spawn_star.inc.c
src/game/behaviors/spawn_star.inc.c
src/game/behaviors/sushi.inc.c
src/game/behaviors/switch_hidden_objects.inc.c
src/game/behaviors/thi_top.inc.c
src/game/behaviors/treasure_chest.inc.c
src/game/behaviors/triplet_butterfly.inc.c
src/game/behaviors/tweester.inc.c
src/game/behaviors/water_bomb.inc.c
src/game/behaviors/water_mist_particle.inc.c
src/game/behaviors/water_objs.inc.c
src/game/behaviors/water_splash.inc.c
src/game/behaviors/whomp.inc.c
src/game/behaviors/wind_particle.inc.c
src/game/behavior_actions.c
src/game/debug.c
src/game/interaction.c
src/game/macro_special_objects.c
src/game/mario_actions_cutscene.c
src/game/object_helpers.c
src/game/object_list_processor.c
src/game/obj_behaviors.c
src/game/obj_behaviors_2.c

water
Code:
include/audio_defines.h
include/behavior_data.h
include/collision.inc
include/geo_commands.inc
include/macro_presets.h
include/macro_presets.inc
include/macro_preset_names.h
include/mario_animation_ids.h
include/model_ids.h
include/model_ids.inc
include/object_constants.h
include/object_fields.h
include/seq_ids.h
include/seq_ids.inc
include/sm64.h
include/special_presets.h
include/special_presets.inc
include/special_preset_names.h
include/types.h
src/audio/interface_2.c
src/engine/behavior_script.c
src/engine/surface_collision.c
src/engine/surface_collision.h
src/engine/surface_load.c
src/game/area.h
src/game/behaviors/beta_chest.inc.c
src/game/behaviors/beta_fish_splash_spawner.inc.c
src/game/behaviors/bub.inc.c
src/game/behaviors/bubble.inc.c
src/game/behaviors/corkbox.inc.c
src/game/behaviors/explosion.inc.c
src/game/behaviors/fish.inc.c
src/game/behaviors/floating_platform.inc.c
src/game/behaviors/fly_guy.inc.c
src/game/behaviors/heave_ho.inc.c
src/game/behaviors/hoot.inc.c
src/game/behaviors/klepto.inc.c
src/game/behaviors/koopa_shell.inc.c
src/game/behaviors/koopa_shell_underwater.inc.c
src/game/behaviors/manta_ray.inc.c
src/game/behaviors/mips.inc.c
src/game/behaviors/moat_drainer.inc.c
src/game/behaviors/monty_mole.inc.c
src/game/behaviors/skeeter.inc.c
src/game/behaviors/snowman.inc.c
src/game/behaviors/sushi.inc.c
src/game/behaviors/thi_top.inc.c
src/game/behaviors/treasure_chest.inc.c
src/game/behaviors/water_bomb.inc.c
src/game/behaviors/water_mist_particle.inc.c
src/game/behaviors/water_objs.inc.c
src/game/behaviors/water_pillar.inc.c
src/game/behaviors/water_ring.inc.c
src/game/behaviors/water_splash.inc.c
src/game/behaviors/water_wave.inc.c
src/game/behaviors/wdw_water_level.inc.c
src/game/behaviors/whirlpool.inc.c
src/game/behavior_actions.c
src/game/camera.c
src/game/camera.h
src/game/debug.c
src/game/envfx_snow.c
src/game/envfx_snow.h
src/game/interaction.c
src/game/interaction.h
src/game/level_select_menu.c
src/game/level_update.c
src/game/mario.c
src/game/mario_actions_airborne.c
src/game/mario_actions_automatic.c
src/game/mario_actions_cutscene.c
src/game/mario_actions_moving.c
src/game/mario_actions_object.c
src/game/mario_actions_stationary.c
src/game/mario_actions_submerged.c
src/game/mario_step.c
src/game/mario_step.h
src/game/moving_texture.c
src/game/object_helpers.c
src/game/object_helpers.h
src/game/object_list_processor.c
src/game/obj_behaviors.c
src/game/obj_behaviors.h
src/game/obj_behaviors_2.c
src/game/rendering_graph_node.c
src/game/room.c
src/game/room.h
src/game/segment2.h
src/game/shadow.c
src/game/shadow.h
src/game/skybox.c
src/game/sound_init.c

bug
Code:
include/audio_defines.h
include/behavior_data.h
include/config.h
include/macro_presets.h
include/macro_presets.inc
include/macro_preset_names.h
include/model_ids.h
include/model_ids.inc
include/object_fields.h
include/sm64.h
src/audio/interface_2.c
src/engine/surface_collision.c
src/engine/surface_collision.h
src/game/behaviors/beta_following_circling_obj.inc.c
src/game/behaviors/boo.inc.c
src/game/behaviors/bowser.inc.c
src/game/behaviors/chuckya.inc.c
src/game/behaviors/collide_particles.inc.c
src/game/behaviors/goomba.inc.c
src/game/behaviors/king_bobomb.inc.c
src/game/behaviors/lll_octagonal_rotating_mesh.inc.c
src/game/behaviors/scuttlebug.inc.c
src/game/behaviors/static_checkered_platform.inc.c
src/game/behaviors/tweester.inc.c
src/game/behaviors/ukiki_cage.inc.c
src/game/behaviors/walking_penguin.inc.c
src/game/behavior_actions.c
src/game/debug.c
src/game/debug.h
src/game/debug_course.h
src/game/display.c
src/game/game.c
src/game/level_select_menu.c
src/game/level_update.c
src/game/main.c
src/game/main.h
src/game/mario.c
src/game/mario_actions_cutscene.c
src/game/object_collision.c
src/game/object_helpers.c
src/game/object_list_processor.c
src/game/object_list_processor.h
src/game/obj_behaviors_2.c
src/game/profiler.c
src/game/rendering_graph_node.c
src/game/save_file.c
src/game/shadow.c
src/game/star_select.c
src/goddard/bad_declarations.h
src/goddard/draw_objects.c
src/goddard/dynlist_proc.c
src/goddard/gd_main.c
src/goddard/gd_memory.h
src/goddard/gd_types.h
src/goddard/mario_head_1.c
src/goddard/mario_head_1.h
src/goddard/mario_head_6.c
src/goddard/old_obj_fn.c

test
Code:
src/engine/level_script.c
src/game/camera.c
src/game/camera.h
src/game/debug.c
src/game/file_select.c
src/game/level_select_menu.c
src/game/macro_special_objects.c
src/game/mario_misc.c
src/game/spawn_sound.c
src/goddard/dynlists/dynlists.h
src/goddard/dynlists/dynlist_test_cube.c
src/goddard/gd_types.h
src/goddard/half_6.c
src/goddard/mario_head_6.c
src/goddard/mario_head_6.h

beta
Code:
include/behavior_data.h
include/macro_presets.h
include/macro_presets.inc
include/object_fields.h
include/special_presets.h
src/game/behaviors/beta_boo_key.inc.c
src/game/behaviors/beta_chest.inc.c
src/game/behaviors/beta_fish_splash_spawner.inc.c
src/game/behaviors/beta_following_circling_obj.inc.c
src/game/behaviors/beta_green_shell.inc.c
src/game/behaviors/beta_trampoline.inc.c
src/game/behaviors/fishing_boo.inc.c
src/game/behavior_actions.c
src/game/object_helpers.h
src/game/obj_behaviors.c
src/game/obj_behaviors.h
src/goddard/draw_objects.c
src/goddard/dynlist_proc.c

gfx
Code:
include/behavior_data.h
include/object_fields.h
include/types.h
src/game/behaviors/bowser.inc.c
src/game/behaviors/capswitch.inc.c
src/game/behaviors/corkbox.inc.c
src/game/behaviors/door_key.inc.c
src/game/display.c
src/game/display.h
src/game/envfx_bubbles.c
src/game/envfx_bubbles.h
src/game/envfx_snow.c
src/game/envfx_snow.h
src/game/file_select.c
src/game/file_select.h
src/game/game.c
src/game/game.h
src/game/geo_misc.c
src/game/hud.h
src/game/ingame_menu.c
src/game/intro_geo.c
src/game/intro_geo.h
src/game/level_geo.c
src/game/level_geo.h
src/game/main.c
src/game/mario_misc.c
src/game/mario_misc.h
src/game/memory.c
src/game/moving_texture.c
src/game/object_helpers.c
src/game/obj_behaviors.c
src/game/obj_behaviors_2.c
src/game/paintings.c
src/game/print.c
src/game/profiler.c
src/game/profiler.h
src/game/rendering_graph_node.c
src/game/screen_transition.c
src/game/segment2.h
src/game/segment7.h
src/game/shadow.c
src/game/shadow.h
src/game/skybox.c
src/game/skybox.h
src/game/star_select.c
src/goddard/gd_tex_dl.h
src/goddard/mario_head_6.c

nintendo
Code:
include/config.h
src/game/camera.c
src/game/display.c
src/game/game.c
src/game/level_update.c
src/game/object_helpers.c

mtx
Code:
src/engine/graph_node.c
src/engine/math_util.c
src/engine/math_util.h
src/game/hud.c
src/game/ingame_menu.c
src/game/intro_geo.c
src/game/level_geo.c
src/game/obj_behaviors.c
src/game/print.c
src/game/rendering_graph_node.c
src/game/skybox.c
src/goddard/draw_objects.c
src/goddard/dynlist_proc.c
src/goddard/gd_types.h
src/goddard/mario_head_1.c
src/goddard/mario_head_2.c
src/goddard/mario_head_6.c

setsound
Code:
include/audio_defines.h
src/audio/interface_2.c
src/audio/interface_2.h
src/game/behaviors/bbh_merry_go_round.inc.c
src/game/behaviors/beta_chest.inc.c
src/game/behaviors/blue_coin.inc.c
src/game/behaviors/boo.inc.c
src/game/behaviors/bowser.inc.c
src/game/behaviors/hidden_star.inc.c
src/game/behaviors/mushroom_1up.inc.c
src/game/behaviors/purple_switch.inc.c
src/game/behaviors/red_coin.inc.c
src/game/behaviors/sound_spawner.inc.c
src/game/behaviors/treasure_chest.inc.c
src/game/behaviors/tuxie.inc.c
src/game/behaviors/water_ring.inc.c
src/game/behaviors/yoshi.inc.c
src/game/camera.c
src/game/envfx_bubbles.c
src/game/file_select.c
src/game/ingame_menu.c
src/game/interaction.c
src/game/level_select_menu.c
src/game/level_update.c
src/game/mario.c
src/game/mario_actions_airborne.c
src/game/mario_actions_automatic.c
src/game/mario_actions_cutscene.c
src/game/mario_actions_moving.c
src/game/mario_actions_object.c
src/game/mario_actions_stationary.c
src/game/mario_actions_submerged.c
src/game/mario_misc.c
src/game/mario_step.c
src/game/obj_behaviors.c
src/game/obj_behaviors_2.c
src/game/sound_init.c
src/game/spawn_sound.c
src/game/star_select.c

luigi
Code:
include/model_ids.h
include/model_ids.inc
src/game/camera.c
src/game/mario.h
src/game/mario_misc.c
src/game/object_list_processor.c
src/game/object_list_processor.h
src/game/shadow.c

vtx
Code:
src/game/envfx_bubbles.c
src/game/envfx_snow.c
src/game/envfx_snow.h
src/game/geo_misc.c
src/game/geo_misc.h
src/game/moving_texture.c
src/game/paintings.c
src/game/screen_transition.c
src/game/shadow.c
src/game/skybox.c
src/goddard/draw_objects.c
src/goddard/dynlists/dynlists_mario_eyebrows_mustache.c
src/goddard/dynlists/dynlists_mario_eyes.c
src/goddard/dynlists/dynlist_mario_face.c
src/goddard/dynlist_proc.c
src/goddard/gd_main.c
src/goddard/gd_main.h
src/goddard/gd_types.h
src/goddard/half_6.c
src/goddard/mario_head_1.c
src/goddard/mario_head_1.h
src/goddard/mario_head_2.c
src/goddard/mario_head_3.c
src/goddard/mario_head_6.c
src/goddard/mario_head_6.h
src/goddard/skin_fns.c

alloc
Code:
include/geo_commands.inc
include/level_commands.inc
src/audio/dac.c
src/audio/dac.h
src/audio/dma.c
src/audio/interface_1.c
src/audio/interface_2.c
src/audio/something.c
src/engine/geo_layout.c
src/engine/graph_node.c
src/engine/level_script.c
src/engine/surface_load.c
src/engine/surface_load.h
src/game/behaviors/bowser.inc.c
src/game/behaviors/chain_chomp.inc.c
src/game/behaviors/wiggler.inc.c
src/game/camera.c
src/game/envfx_bubbles.c
src/game/envfx_snow.c
src/game/game.c
src/game/geo_misc.c
src/game/hud.c
src/game/ingame_menu.c
src/game/intro_geo.c
src/game/level_geo.c
src/game/mario_misc.c
src/game/memory.c
src/game/memory.h
src/game/moving_texture.c
src/game/object_helpers.c
src/game/object_list_processor.c
src/game/obj_behaviors.c
src/game/paintings.c
src/game/print.c
src/game/rendering_graph_node.c
src/game/screen_transition.c
src/game/shadow.c
src/game/skybox.c
src/game/spawn_object.c
src/goddard/dynlist_proc.c
src/goddard/gd_memory.c
src/goddard/gd_memory.h
src/goddard/half_6.c
src/goddard/mario_head_1.c
src/goddard/mario_head_3.c
src/goddard/mario_head_6.c
src/goddard/mario_head_6.h
src/goddard/profiler_utils.c
src/goddard/profiler_utils.h

dl_
Code:
include/geo_commands.inc
include/model_ids.h
include/model_ids.inc
src/game/envfx_bubbles.c
src/game/envfx_snow.c
src/game/file_select.c
src/game/file_select.h
src/game/geo_misc.c
src/game/hud.c
src/game/hud.h
src/game/ingame_menu.c
src/game/ingame_menu.h
src/game/intro_geo.c
src/game/moving_texture.c
src/game/paintings.c
src/game/print.c
src/game/screen_transition.c
src/game/segment2.h
src/game/segment7.h
src/game/shadow.c
src/game/skybox.c
src/game/star_select.c
src/goddard/draw_objects.c
src/goddard/draw_objects.h
src/goddard/half_6.c
src/goddard/mario_head_6.c
src/goddard/mario_head_6.h

fuck
Code:
src/game/camera.c
src/game/level_select_menu.c

gdp
Code:
src/game/area.c
src/game/display.c
src/game/envfx_bubbles.c
src/game/file_select.c
src/game/hud.c
src/game/ingame_menu.c
src/game/intro_geo.c
src/game/mario_misc.c
src/game/moving_texture.c
src/game/object_helpers.c
src/game/obj_behaviors.c
src/game/paintings.c
src/game/print.c
src/game/profiler.c
src/game/rendering_graph_node.c
src/game/screen_transition.c
src/game/skybox.c
src/game/star_select.c
src/goddard/mario_head_6.c

gsp
Code:
sm64/src/game/area.c
sm64/src/game/behaviors/bowser.inc.c
sm64/src/game/display.c
sm64/src/game/envfx_bubbles.c
sm64/src/game/envfx_snow.c
sm64/src/game/file_select.c
sm64/src/game/geo_misc.c
sm64/src/game/hud.c
sm64/src/game/ingame_menu.c
sm64/src/game/intro_geo.c
sm64/src/game/level_geo.c
sm64/src/game/main.c
sm64/src/game/main.h
sm64/src/game/mario_misc.c
sm64/src/game/moving_texture.c
sm64/src/game/object_helpers.c
sm64/src/game/obj_behaviors.c
sm64/src/game/paintings.c
sm64/src/game/print.c
sm64/src/game/rendering_graph_node.c
sm64/src/game/screen_transition.c
sm64/src/game/shadow.c
sm64/src/game/skybox.c
sm64/src/game/star_select.c
sm64/src/goddard/mario_head_6.c

gssp
Code:
src/goddard/mario_head_6.c

make_v
Code:
src/game/area.c
src/game/display.c
src/game/display.h
src/game/geo_misc.c (vertex)
src/game/geo_misc.h (vertex)
src/game/moving_texture.c (vertex)
src/game/paintings.c (vertex)
src/game/rendering_graph_node.c
src/game/screen_transition.c (vertex)
src/game/shadow.c (vertex)
src/game/skybox.c (vertex)
src/goddard/draw_objects.c
src/goddard/dynlist_proc.c (vertex)
src/goddard/half_6.c (vertex)
src/goddard/half_6.h (vertex)
src/goddard/mario_head_1.c
src/goddard/mario_head_1.h
src/goddard/mario_head_6.c

weird
Code:
src/audio/something.c
src/game/behaviors/corkbox.inc.c
src/game/behaviors/flamethrower.inc.c
src/game/behaviors/flame_mario.inc.c
src/game/behaviors/spiny.inc.c
src/game/behaviors/ukiki_cage.inc.c
src/game/behaviors/water_splash.inc.c
src/game/mario_misc.c
src/goddard/gd_types.h
src/goddard/mario_head_6.c

wtf
Code:
src/game/debug.c
 

Erokaution

New Member
Newbie
Joined
Jul 12, 2019
Messages
4
Trophies
0
Age
32
XP
59
Country
United States
Made a account real quick to jump in on this conversation.
I find it unfortunate that I live in the universe where SM64 got decompiled before OOT, I would be all over a OOT decompilation and already thinking of large projects to start. Still, this is absolutely amazing. It's really easy and fun to work with.
I've had the displeasure of spending years hacking various games, and I've spent too much time looking at and trying to write assembly. Really not fun stuff, but it opens up a ton of doors.
But now, with this, SM64 hacks will be far easier to create, and you can do so much more with it in a fraction of the time.
I'm excited for the future of SM64 hacking, as well as maybe some smaller projects of my own.

I picked up the decomp when it was posted elsewhere a few weeks ago, and I spent a few days fiddling with it. As a challenge to myself, I wanted to see how long it would take me to implement a rudimentary inventory system into the pause menu, as well as changeable equipment you can toggle.
So in a single day, I did so.

When you killed 1 and 5 Goombas, 'icons' would unlock on the pause menu which you could put your cursor over and enable.
First one altered the belly slide mechanics a bit, the second one made mario giant.

It was extremely ugly, both in code and on screen, but I wanted to see how fast I could make it at all to begin with.
For the record, it would normally take me maybe a week or two without the source, mostly because I'd have to spend a bunch of time trying to find routines and how to modify them without breaking everything.


Again, this opens up so many doors for the SM64 hacking community. I'm excited to see what comes out of it in the years to come.
I've been slowly working on a model importer and level editor for the source, but I expect someone else might get it done faster than I am since I'm juggling multiple other projects at the moment.
 
Last edited by Erokaution,

nim-ka

Member
Newcomer
Joined
Sep 5, 2018
Messages
21
Trophies
0
Age
25
XP
92
Country
United States
I've been slowly working on a model importer and level editor for the source, but I expect someone else might get it done faster than I am since I'm juggling multiple other projects at the moment.
Those already exist, for the up-to-date code...
 

Erokaution

New Member
Newbie
Joined
Jul 12, 2019
Messages
4
Trophies
0
Age
32
XP
59
Country
United States
Those already exist, for the up-to-date code...
Are they out somewhere already? I think the current code that I picked up a few weeks ago is still the only one public, right? Or am I misunderstanding something?

In all honesty, I've seen plenty of people who work with roms up and drop projects, usually due to either loss of motivation or drama. I'm not going to hold my breath for a final release for the codebase when the one that's currently out is more than enough for standard rom modifications. So while I'm aware the people who worked on the decomp have a few tools of their own, I don't expect it to be released soon enough for it to truly matter.

That said, I forgot where, but I did see a level viewer for the decomp on github somewhere, but it wasn't anywhere near usable for anything practical.
Which is why I'm working on one of my own- to take matters into my own hands since I'm impatient and don't hold too much faith in people. Nothing against them obviously, but just in case.
 
Last edited by Erokaution,

nim-ka

Member
Newcomer
Joined
Sep 5, 2018
Messages
21
Trophies
0
Age
25
XP
92
Country
United States
Which is why I'm working on one of my own- to take matters into my own hands since I'm impatient and don't hold too much faith in people. Nothing against them obviously, but just in case.
See, that's cool and all, except when the full release comes out (that's a when not an if) with all the new function names, documentation, file names, PAL support, etc., it'll be a huge pain to update your project. (Can tell you this from experience when we did this for the Randomizer; it took *forever* even with multiple people working on it.)
 

Erokaution

New Member
Newbie
Joined
Jul 12, 2019
Messages
4
Trophies
0
Age
32
XP
59
Country
United States
See, that's cool and all, except when the full release comes out (that's a when not an if) with all the new function names, documentation, file names, PAL support, etc., it'll be a huge pain to update your project. (Can tell you this from experience when we did this for the Randomizer; it took *forever* even with multiple people working on it.)
Eh, I'll take the risk.
 

mountainflaw

Member
Newcomer
Joined
Jul 11, 2018
Messages
22
Trophies
0
Age
34
XP
107
Country
Australia
Made a account real quick to jump in on this conversation.
I find it unfortunate that I live in the universe where SM64 got decompiled before OOT, I would be all over a OOT decompilation and already thinking of large projects to start. Still, this is absolutely amazing. It's really easy and fun to work with.
I've had the displeasure of spending years hacking various games, and I've spent too much time looking at and trying to write assembly. Really not fun stuff, but it opens up a ton of doors.
But now, with this, SM64 hacks will be far easier to create, and you can do so much more with it in a fraction of the time.
I'm excited for the future of SM64 hacking, as well as maybe some smaller projects of my own.

I picked up the decomp when it was posted elsewhere a few weeks ago, and I spent a few days fiddling with it. As a challenge to myself, I wanted to see how long it would take me to implement a rudimentary inventory system into the pause menu, as well as changeable equipment you can toggle.
So in a single day, I did so.

When you killed 1 and 5 Goombas, 'icons' would unlock on the pause menu which you could put your cursor over and enable.
First one altered the belly slide mechanics a bit, the second one made mario giant.

It was extremely ugly, both in code and on screen, but I wanted to see how fast I could make it at all to begin with.
For the record, it would normally take me maybe a week or two without the source, mostly because I'd have to spend a bunch of time trying to find routines and how to modify them without breaking everything.


Again, this opens up so many doors for the SM64 hacking community. I'm excited to see what comes out of it in the years to come.
I've been slowly working on a model importer and level editor for the source, but I expect someone else might get it done faster than I am since I'm juggling multiple other projects at the moment.


https://github.com/mountainflaw/modconv_2

This bad boy supports:
1.) Fast3D and Fast3DEX
2.) Adjusting lighting colors
3.) Toggling geometry modes from Blender
4.) Mirrored and clamped UVs
5.) The collision format, can also select types in Blender.
6.) Fog
7.) Transparency

It works with all modeling programs, and uses material names to select collision surfaces, geometry modes, mirroring, etc.
 
Last edited by mountainflaw,

Erokaution

New Member
Newbie
Joined
Jul 12, 2019
Messages
4
Trophies
0
Age
32
XP
59
Country
United States
This bad boy supports:
1.) Fast3D and Fast3DEX
2.) Adjusting lighting colors
3.) Toggling geometry modes from Blender
4.) Mirrored and clamped UVs
5.) The collision format, can also select types in Blender.
6.) Fog
7.) Transparency
It works with all modeling programs, and uses material names to select collision surfaces, geometry modes, mirroring, etc.
Oh hey, nice. Thanks for posting this.
Now we only need a level editor to make adding/editing objects/actors in levels less of a pain in the butt.
Takes some of my workload off at least.
 

Ecchi95

Well-Known Member
OP
Member
Joined
Jul 7, 2019
Messages
121
Trophies
0
Age
29
XP
891
Country
United States
Two questions:

1. How do I compile this?
2. What do I need to change so Bowser appears normal in the final battle, as on the DS?
Linux
1] Install the following packages:

  • make
  • git
  • binutils-mips-linux-gnu (>= 2.27)
  • python3
  • build-essential
  • pkg-config
  • zlib1g-dev
  • libglib2.0-dev
  • libpixman-1-dev
  • libcapstone3
2] Clone https://github.com/camthesaxman/qemu-irix to somewhere and follow its install instructions in the README.

2b] Optionally, grab the prebuilt qemu-irix from the Releases section.

3] Take the executable "qemu-irix" in irix-linux-user and put it somewhere where you will define an environment variable to it.

4] Define "QEMU_IRIX" in your bashrc to point to this qemu-irix executable.

5] After setting this repository up, run make to build the ROM. Make sure your path is not too long or else this process will error, as the emulated IDO compiler cannot handle paths longer than 255 characters.

Windows
For Windows, install WSL and a distro of your choice and follow the Linux guide.





And for Bowser:
In src/game/behaviors/bowser.inc.c get rid of this, I believe:

Code:
       if(sp24->oUnk1B2 != 0)
       {
           gSPClearGeometryMode(sp28++, G_LIGHTING);
       }
 
  • Like
Reactions: OkazakiTheOtaku

BiggieCheese

Well-Known Member
Member
Joined
Oct 29, 2017
Messages
124
Trophies
0
XP
1,256
Country
United States
I can’t wait to see if source ports could be built from this in the coming years; imagine if there could be a port that would allow you to load romhacks in a similar way to how DOOM source ports allow you to run homemade WADs over the base game(s) IWAD file
 
  • Like
Reactions: Mythical

eyeliner

Has an itch needing to be scratched.
Member
Joined
Feb 17, 2006
Messages
2,891
Trophies
2
Age
44
XP
5,535
Country
Portugal
ROMHacks?! Begone with that!

I want total conversions! New games made by talented individuals using the engine for devious purposes.
 
  • Like
Reactions: Mythical

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    rvtr @ rvtr: Spam bots again.