Giter VIP home page Giter VIP logo

Comments (7)

ckosmic avatar ckosmic commented on April 28, 2024

If you put any files in the ios folder of this repo, they'll get copied directly to the app's root directory, so you're able to install Render96 model packs with DynOS:

  1. Download DynOS 1.0 from here and place DynOS.1.0.patch in the enhancements folder
  2. Patch the repo with DynOS 1.0: ./tools/apply_patch.sh enhancements/DynOS.1.0.patch (you may have to insert a couple lines manually if the patch rejects anything)
  3. In the iOS folder, create the following folders: dynos/packs/Render96
  4. Place all the .bin files from the Render96 model pack into here
  5. In Xcode, clean the build and rebuild, and it'll copy everything over and you'll be able to use model packs

from sm64ex-ios.

austinarchibald avatar austinarchibald commented on April 28, 2024

Thanks for the help, that's great news!

In step 2, I get the following question File to patch:, I'm not sure what they're asking for here, bottom line:

austin@Blooper sm64ex-ios-ios % ./tools/apply_patch.sh enhancements/DynOS.1.0.patch
Do you wish to apply the patch 'enhancements/DynOS.1.0.patch'? [Y/N] Y
patching file Makefile
patching file 'data/dynos.c.h'
patching file 'data/dynos.cpp.h'
patching file 'data/dynos.h'
patching file 'data/dynos_c.cpp'
patching file 'data/dynos_gfx_init.cpp'
patching file 'data/dynos_gfx_load.cpp'
patching file 'data/dynos_gfx_read.cpp'
patching file 'data/dynos_gfx_texture.cpp'
patching file 'data/dynos_gfx_update.cpp'
patching file 'data/dynos_gfx_write.cpp'
patching file 'data/dynos_level.cpp'
patching file 'data/dynos_main.cpp'
patching file 'data/dynos_misc.cpp'
patching file 'data/dynos_opt.cpp'
patching file 'data/dynos_opt_config.cpp'
patching file 'data/dynos_opt_cont.cpp'
patching file 'data/dynos_opt_render.cpp'
patching file 'data/dynos_opt_vanilla.cpp'
patching file 'data/dynos_opt_vanilla_c.c'
patching file 'data/dynos_sanity.c'
patching file 'data/dynos_warps.cpp'
patching file dynos.mk
patching file 'include/types.h'
patching file 'src/audio/seqplayer.c'
patching file 'src/engine/geo_layout.c'
patching file 'src/engine/level_script.c'
patching file 'src/game/behaviors/ddd_pole.inc.c'
patching file 'src/game/behaviors/ddd_sub.inc.c'
File to patch: 

Also, in step 4, can I include the texture pack? Would I put into src/pc/gfx? (edit: or maybe ios/res/gfx to stay consistent with your instructions for the model pack)

Update: I think I figured out the File to patch is the rom. I put it as baserom.us.z64. But 3 hunks failed:

File to patch: baserom.us.z64
patching file baserom.us.z64
3 out of 3 hunks failed--saving rejects to baserom.us.z64.rej
patching file 'src/game/object_helpers.c'
patching file 'src/game/options_menu.c'
patching file 'src/game/rendering_graph_node.c'
patching file 'src/pc/gfx/gfx_pc.c'

Any ideas here? You suspected there may be rejects, so what lines do I need to insert, and where do I do this? Thanks so much for your help!

Here's baserom.us.z64.rej

@@ -2,4 +2,5 @@
 
 #include "sm64.h"
+#include "data/dynos.c.h"
 #include "gfx_dimensions.h"
 #include "audio/external.h"
@@ -385,7 +386,4 @@
 // input list until it is complete. called every frame.
 void run_demo_inputs(void) {
-    // eliminate the unused bits.
-    gControllers[0].controllerData->button &= VALID_BUTTONS;
-
     /*
         Check if a demo inputs list
@@ -456,4 +454,5 @@
         osRecvMesg(&gSIEventMesgQueue, &D_80339BEC, OS_MESG_BLOCK);
         osContGetReadData(&gControllerPads[0]);
+        dynos_update_opt((void *) &gControllerPads[0]);
     }
     run_demo_inputs();

from sm64ex-ios.

ckosmic avatar ckosmic commented on April 28, 2024

The file it's rejecting is src/game/game_init.m, so in src/game/game_init.m, add

#include "data/dynos.c.h"

at the top of the file. Remove

// eliminate the unused bits.
gControllers[0].controllerData->button &= VALID_BUTTONS;

from the run_demo_inputs function. Lastly, add

dynos_update_opt((void *) &gControllerPads[0]);

in the read_controller_inputs function at the end of the first if statement. The reject file will give you an idea of where to make these changes.

For texture packs, I realize I messed up getting external data from the res folder to work in the main branch, so I recommend using the apple_silicon_fix branch where I've updated how external resources are handled. They'll be read from the Files app under "On My iPhone > Super Mario 64 > res" instead so you'll be able to add/remove model/sound/texture packs straight from the phone without having to rebuild the entire app. Also in Build Settings, you'll need to add a user-defined setting named "EXTERNAL_DATA" and set its value to 1.

Let me know if you run into any issues using the apple_silicon_fix branch as I've only tested it in my environment.

from sm64ex-ios.

austinarchibald avatar austinarchibald commented on April 28, 2024

Really appreciate the help. Using the apple_silicon_fix branch, I made those changes to src/game/game_init.m saved it, and applied patch. The rej file is acting as if those changes aren't there, but I know they are! It's strange. I put them exactly where the .rej said to. This is the new .rej file, looks like the one where there are no changes to src/game/game_init.m.

@@ -2,4 +2,5 @@
 
 #include "sm64.h"
+#include "data/dynos.c.h"
 #include "gfx_dimensions.h"
 #include "audio/external.h"
@@ -385,7 +386,4 @@
 // input list until it is complete. called every frame.
 void run_demo_inputs(void) {
-    // eliminate the unused bits.
-    gControllers[0].controllerData->button &= VALID_BUTTONS;
-
     /*
         Check if a demo inputs list
@@ -456,4 +454,5 @@
         osRecvMesg(&gSIEventMesgQueue, &D_80339BEC, OS_MESG_BLOCK);
         osContGetReadData(&gControllerPads[0]);
+        dynos_update_opt((void *) &gControllerPads[0]);
     }
     run_demo_inputs();

You can see my src/game/game_init.m here.

Thanks again.

from sm64ex-ios.

ckosmic avatar ckosmic commented on April 28, 2024

That's fine, as long as the changes are there then it should work as expected.

from sm64ex-ios.

austinarchibald avatar austinarchibald commented on April 28, 2024

Ok, I think I did everything correctly. I followed these instructions, but with your additional notes, like EXTERNAL_DATA, copying res folder to iPhone, etc. However, Build failed. The text in red, under object_helpers is: no member named 'georef' in 'struct GraphNode', repeated twice. Sorry to keep bugging you!

image

from sm64ex-ios.

ckosmic avatar ckosmic commented on April 28, 2024

No worries! Before applying the patch and changes, does the app compile successfully? Also are you on an Intel mac or M1/M2 mac? You can check by clicking the Apple icon in the status bar and choosing "About This Mac". It's been a while since I've tried building on an Intel mac so I'm not entirely sure if the Apple silicon fixes broke anything for it.

from sm64ex-ios.

Related Issues (20)

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.