New to the forums? Click here to read the "How To" Guide.

Developer? Click here to go to the Developer Forums.

Dolphin Emulator DK2 compatibility

1181921232444

Comments

  • fugazifugazi Posts: 109
    Hiro Protagonist
    damn metroid demo!!!

    I've followed your guide with pikmin 2, that have a .map file, just until point 4, just when the things gets hard. :D
    I have looking the random functions, but I dont have seen any function with cull or clip in his name :(
  • aminemoaminemo Posts: 353
    Art3mis
    edited December 2014
    fugazi wrote:
    I have downloaded interactive multi game demo disc version 7, and there is not .map file. :(
    There is a big zz_Metroid.tgc file, Im trying to convert it to gcm with no luck.

    follow the links in the youtube description.
    :ugeek:
  • aminemoaminemo Posts: 353
    Art3mis
    edited December 2014
    I got it... :geek: there is a three .map files !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :mrgreen:



    Same thing for mario sunshine
  • ceglicegli Posts: 436
    Nice work finding the .map files :). Now comes the hard part of reverse engineering the code to figure out where the culling functions are...
  • aminemoaminemo Posts: 353
    Art3mis
    cegli wrote:
    Nice work finding the .map files :). Now comes the hard part of reverse engineering the code to figure out where the culling functions are...

    I found a good forum for this...
    https://m2k2.taigaforum.com/post/metroid_prime_hacking_research.html
  • ceglicegli Posts: 436
    Awesome! I'll have to post and see if they have any ideas for me. In other news I've finished implementing my prototype Opcode Replay function (games at 30fps, headtracking at 60fps native) :). It's working well in some games, but it has rendering issues in others because I'm not handling some locations of memory well yet. Seems to work much better than synchronous timewarp, and doesn't have any of the artifacts in the compatible games so far. It still buzzes a little bit depending on the scene, but it seems to do it a lot less than any other implementation I've tried so far. Plus, no need to tweak Vsync timing! I have to fix the last bugs, then clean it up, and integrate it with the GUI, but it's showing a lot of promise.
  • OculusRiftRocksOculusRiftRocks Posts: 331
    Brain Burst
    can you play games at the correct speed with the Opcode Replay function?

    what about 20fps games like OoT, would that go to 40fps, or could you triple that and make it 60fps?
  • fugazifugazi Posts: 109
    Hiro Protagonist
    cegli wrote:
    In other news I've finished implementing my prototype Opcode Replay function (games at 30fps, headtracking at 60fps native) :)

    Congratulations, really looking forward to try it.
    You are Great!!!
  • FictionXFictionX Posts: 289
    feilen wrote:
    For anyone on Linux (build from source), assuming you have build utils, git and libraries installed:
    ~
    cmake .. -DCMAKE_INSTALL_PREFIX='/usr' -DCMAKE_CXX_FLAGS='-fno-inline-functions' -DENABLE_LTO='TRUE'
    make
    make install
    [/code]

    Let me know if that doesn't work and I can walk you through it!

    Hi
    I'm trying to build Dolphin on Linux Mint - but I'm getting this error:

    [ 92%] Built target uicommon
    Linking CXX executable ../../../Binaries/dolphin-emu
    /usr/bin/ld: cannot find -lOculusVR
    collect2: error: ld returned 1 exit status
    make[2]: *** [Binaries/dolphin-emu] Error 1
    make[1]: *** [Source/Core/DolphinWX/CMakeFiles/dolphin-emu.dir/all] Error 2
    make: *** [all] Error 2


    I'm sorry to say that I've never managed to build anything successfully on any computer yet - so I'm sure it's something very very basic that I just don't know about... but could someone please point me in the right direction? What is IOculusVR?
  • aminemoaminemo Posts: 353
    Art3mis
    edited December 2014
    aminemo wrote:
    cegli wrote:
    Nice work finding the .map files :). Now comes the hard part of reverse engineering the code to figure out where the culling functions are...

    After extracting the files with game cube iso tool in GCReEx format
    and opened one map file with the bloc note
    I was expecting finding an hexadecimal content only but I can see a list of functions
    with this reading rule
    Starting address/ Size / Virtual address

    one seem to be used for the culling...




    Same thing again in the next .map file


    The code 0000dc is similar in the two lines....

    and in the last .map file
  • fugazifugazi Posts: 109
    Hiro Protagonist
    fugazi wrote:
    I've followed your guide with pikmin 2, that have a .map file, just until point 4, just when the things gets hard. :D
    I have looking the random functions, but I dont have seen any function with cull or clip in his name :(

    pikmin 2 .map is not a valid map file :(
    the one in metroid demo is working :)
  • Would it be possible for someone to do a detailed, step by step, to getting Dolphin running, what to do with the game image/rom, and configuring the game (lets say Windwalker). also any tips for controller bindings (would be using an Xbox 360 controller). start-finish, assuming im a moron. ;)

    Btw if something like this exists please 'link' to it. I remember trying this along time ago with Mario Kart and ended up super frustrated.

    Thanks!
  • ceglicegli Posts: 436
    edited December 2014
    Would it be possible for someone to do a detailed, step by step, to getting Dolphin running, what to do with the game image/rom, and configuring the game (lets say Windwalker). also any tips for controller bindings (would be using an Xbox 360 controller). start-finish, assuming im a moron. ;)

    Btw if something like this exists please 'link' to it. I remember trying this along time ago with Mario Kart and ended up super frustrated.

    Thanks!
    Dolphin should be working a lot better now, so setup shouldn't be as hard. There are VR directions built into the program. Just click the "VR" button and one of the tabs is instructions :).

    Basically, start with a game like Paper Mario: The Thousand Year Door, because it works well. Run in D3D mode, and set the frame limiter to your Rift's refresh rate. Assign the VR Hotkeys to good controller, as explained in the instructions tab. Right click on the game, and go to object disable and check "Remove 16:9 Bars". That should pretty well do it!

    Mario Kart for both GC and Wii work pretty well too, if you're interested in those.
    can you play games at the correct speed with the Opcode Replay function?

    what about 20fps games like OoT, would that go to 40fps, or could you triple that and make it 60fps?
    The "Opcode Replay Buffer" is basically a replacement for Synchronous Timewarp. It will allow doubling/tripling of the head tracking frame rate, without having to resort to smudging the image with timewarp. It won't allow you to run 60fps games at 75fps. I want to get it working well, so we can run all games at 60fps for native headtracking. Then I'll try and get Asynchonous Timewarp working well from there, but Windows/D3D/AMD/Nvidia are not really setup to do good Asynchronous Timewarp right now.
  • fugazifugazi Posts: 109
    Hiro Protagonist
    aminemo wrote:
    one seem to be used for the culling...

    the functions that have worked in other games begins by "clip__11J3DUClipperFPA4" these functions are not in these .map,
    but there is other like these

    000a65b4 0000d4 800acfb4 4 AddToRendererClippedParticleGenMap__17CParticleDatabaseCFRCQ24rstl236map
    000a6688 000050 800ad088 4 AddToRendererClipped__17CParticleDatabaseCFRC14CFrustumPlanes
  • ceglicegli Posts: 436
    Good work on so far on trying to find the culling/clipping functions! It's anyone's guess what does what, but if you can try forcing the functions with an action replay code and see them returning properly, that would be amazing. It's really hard though, I tried a couple games for a small amount of time and wasn't successful. Also, it appears that some games require you to start with the function disabled, or it doesn't work.

    FictionX - I'm not sure about the Linux build, but maybe Feilien will be on to help at some point.
  • aminemoaminemo Posts: 353
    Art3mis
    edited December 2014
    cegli wrote:
    Good work on so far on trying to find the culling/clipping functions! It's anyone's guess what does what, but if you can try forcing the functions with an action replay code and see them returning properly, that would be amazing. It's really hard though, I tried a couple games for a small amount of time and wasn't successful. Also, it appears that some games require you to start with the function disabled, or it doesn't work.

    FictionX - I'm not sure about the Linux build, but maybe Feilien will be on to help at some point.


    I found it
    the file has a GXSetCullMode which was reported in the gc forever forum
    Re: Culling in GameCube and Wii Games (@Ralf)
    AFAIK, it's possible to enable/disable culling using the following GameCube SDK function:

    void GXSetCullMode(GXCullMode mode)

    GXCullModes

    GX_CULL_NONE 0
    GX_CULL_FRONT 1
    GX_CULL_BACK 2
    GX_CULL_ALL 3

    0030bddc 000050 803127dc 4 GXSetCullMode




    002d645c 000050 802dce5c 4 GXSetCullMode gx.a GXGeometry.c
  • ceglicegli Posts: 436
    GXCullMode doesn't actually help us :(. Often GC/Wii games refer to culling as stopping actual level from rendering outside of the viewport. We already disable this during emulation (force culling to none), which is why we can look around and it's not all black.

    Some of those others might still be it though! Try disabling them and see what happens.
  • aminemoaminemo Posts: 353
    Art3mis
    cegli wrote:
    GXCullMode doesn't actually help us :(. Often GC/Wii games refer to culling as stopping actual level from rendering outside of the viewport. We already disable this during emulation (force culling to none), which is why we can look around and it's not all black.

    Some of those others might still be it though! Try disabling them and see what happens.

    I am not familiar with action replay code ,I am not a cheater..... :roll:
  • fugazifugazi Posts: 109
    Hiro Protagonist
    cegli wrote:
    Good work on so far on trying to find the culling/clipping functions! It's anyone's guess what does what, but if you can try forcing the functions with an action replay code and see them returning properly, that would be amazing. It's really hard though, I tried a couple games for a small amount of time and wasn't successful. Also, it appears that some games require you to start with the function disabled, or it doesn't work.

    I have tried these functions of the three distincts .map files with no luck at all :(

    000a65b4 0000d4 800acfb4 4 AddToRendererClippedParticleGenMap__17CParticleDatabaseCFRCQ24rstl236map<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>,Q24rstl17rmemory_allocator>RC14CFrustumPlanes CParticleDatabase.o
    000a6688 000050 800ad088 4 AddToRendererClipped__17CParticleDatabaseCFRC14CFrustumPlanes CParticleDatabase.o
    00204258 000534 8020ac58 4 draw_clipped_triangle__FPC9CVector3fRC6CPlanePi MetaRenderCWP.a CCubeRenderer.cpp

    AR CODES

    040ACFB4 38600000
    040ACFB8 4E800020

    040AD088 38600000
    040AD08C 4E800020

    0420AC58 38600000
    0420AC5C 4E800020


    000c23e0 0000d4 800c8de0 4 AddToRendererClippedParticleGenMap__17CParticleDatabaseCFRCQ24rstl236map<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>,Q24rstl17rmemory_allocator>RC14CFrustumPlanes CParticleDatabase.o
    000c24b4 000050 800c8eb4 4 AddToRendererClipped__17CParticleDatabaseCFRC14CFrustumPlanes CParticleDatabase.o
    0023053c 0006c4 80236f3c 4 draw_clipped_triangle__FPC9CVector3fRC6CPlanePi MetaRenderCW.a CCubeRenderer.cpp

    AR CODES

    040C8DE0 38600000
    040C8DE4 4E800020

    040C8EB4 38600000
    040C8EB8 4E800020

    04236F3C 38600000
    04236F40 4E800020

    000c3274 00001c 80173554 4 GetPreRenderClipped__6CActorCFv CActor.o
    000c3290 000014 80173570 4 SetPreRenderClipped__6CActorFb CActor.o
    00188ad8 00004c 80238db8 4 AddToRendererClipped__17CParticleDatabaseCFRC14CFrustumPlanes CParticleDatabase.o
    00188b24 0000f0 80238e04 4 AddToRendererClippedParticleGenMap__17CParticleDatabaseCFRCQ24rstl236map<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl28auto_ptr<16CParticleGenInfo>,Q24rstl81less<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>>,Q24rstl17rmemory_allocator>RC14CFrustumPlanes CParticleDatabase.o
    0036c0a0 0006e8 8041c380 4 draw_clipped_triangle__FPC9CVector3fRC6CPlanePi MetaRenderCWD.a CCubeRenderer.cpp
    0036cb34 000084 8041ce14 4 draw_clipped_triangle__FPC9CVector3fRC6CPlaneiii MetaRenderCWD.a CCubeRenderer.cpp
    0042f764 000030 804dfa44 4 __ct__Q29CGraphics18CClippedScreenRectFiiiiiffff Kyoto_CWD.a DolphinCGraphics.cpp
    0042f7c8 00000c 804dfaa8 4 __ct__Q29CGraphics18CClippedScreenRectFv Kyoto_CWD.a DolphinCGraphics.cpp
    004548a0 000008 80504b80 4 IsValid__Q29CGraphics18CClippedScreenRectCFv Kyoto_CWD.a CElementGen.cpp
    004548a8 000054 80504b88 4 __ct__Q29CGraphics18CClippedScreenRectFRCQ29CGraphics18CClippedScreenRect Kyoto_CWD.a CElementGen.cpp

    AR CODES

    04173554 38600000
    04173558 4E800020

    04173570 38600000
    04173574 4E800020

    04238DB8 38600000
    04238DBC 4E800020

    04238E04 38600000
    04238E08 4E800020

    0441C380 38600000
    0441C384 4E800020

    0441CE14 38600000
    0441CE18 4E800020

    044DFA44 38600000
    044DFA48 4E800020

    044DFAA8 38600000
    044DFAAC 4E800020

    04504B80 38600000
    04504B84 4E800020

    04504B88 38600000
    04504B8C 4E800020
  • feilenfeilen Posts: 18
    FictionX wrote:
    feilen wrote:
    For anyone on Linux (build from source), assuming you have build utils, git and libraries installed:
    ~
    cmake .. -DCMAKE_INSTALL_PREFIX='/usr' -DCMAKE_CXX_FLAGS='-fno-inline-functions' -DENABLE_LTO='TRUE'
    make
    make install
    [/code]

    Let me know if that doesn't work and I can walk you through it!

    Hi
    I'm trying to build Dolphin on Linux Mint - but I'm getting this error:

    [ 92%] Built target uicommon
    Linking CXX executable ../../../Binaries/dolphin-emu
    /usr/bin/ld: cannot find -lOculusVR
    collect2: error: ld returned 1 exit status
    make[2]: *** [Binaries/dolphin-emu] Error 1
    make[1]: *** [Source/Core/DolphinWX/CMakeFiles/dolphin-emu.dir/all] Error 2
    make: *** [all] Error 2


    I'm sorry to say that I've never managed to build anything successfully on any computer yet - so I'm sure it's something very very basic that I just don't know about... but could someone please point me in the right direction? What is IOculusVR?

    Okay, I know what this is. You'll need to download and build the Oculus SDK, and stick LibOVR from that in Externals/

    Then after the other git apply, make a file 'findfix.patch' with the contents:
    diff --git a/CMakeTests/FindOculusSDK.cmake b/CMakeTests/FindOculusSDK.cmake
    index afd00d2..458879d 100644
    --- a/CMakeTests/FindOculusSDK.cmake
    +++ b/CMakeTests/FindOculusSDK.cmake
    @@ -10,17 +10,25 @@ if (NOT OCULUSSDK_FOUND)
        find_path(OCULUSSDK_INCLUDE_DIR NAMES OVR.h
            PATHS
            /usr/include/ovr-0.4.3/LibOVR/Include
    +       /usr/include/ovr-0.4.4/LibOVR/Include
            /usr/include
            /usr/local/include/ovr-0.4.3/LibOVR/Include
    +       /usr/local/include/ovr-0.4.4/LibOVR/Include
            /usr/local/include
    +       Externals/LibOVR/Include
    +       Externals/
        )
     
        find_path(OCULUSSDK_SRC_DIR NAMES OVR_CAPI_GL.h
            PATHS
            /usr/include/ovr-0.4.3/LibOVR/Src
    +       /usr/include/ovr-0.4.4/LibOVR/Src
            /usr/include
            /usr/local/include/ovr-0.4.3/LibOVR/Src
    +       /usr/local/include/ovr-0.4.4/LibOVR/Src
            /usr/local/include
    +       Externals/LibOVR/Src
    +       Externals/
        )
     
        if(OCULUSSDK_INCLUDE_DIR AND OCULUSSDK_SRC_DIR)
    

    And then do 'git apply /path/to/findfix.patch' right after the other 'git apply' command.
    I only set up the directories so far to support finding the Oculus SDK when it was installed to the filesystem on Arch Linux. This has been fixed upstream but what we're building for Linux is an old patch (while they fix some weird OpenGL glitches with the latest stereo modes)

    If that builds, when you run Dolphin make absolutely sure it's got 'Oculus SDK 0.4.4' in the corner! Otherwise you've got just regular dolphin to build.
  • ceglicegli Posts: 436
    Guys, I've solved it! I just was playing Paper Mario: The Thousand Year door at 60fps, with 75fps heading tracking! Perfectly smooth no judder :). It's part of the same Opcode Replay Buffer code! I think we should now be able to play any game at the correct speed with 75fps head tracking (20fps, 30fps, 60fps, etc.). Here's what I still have to do before releasing it:

    1. Fix the bugs that are making it unstable (some games crash).
    2. Add GUI control for the post divider, that lets us change games to 60fps. Right now it's hardcoded.
    3. Sound is still running at 1.25x speed, so I have to slow that down just as much as the post divider is dividing.

    Woo, I'm so excited!!
  • OculusRiftRocksOculusRiftRocks Posts: 331
    Brain Burst
    amazing news, so I will get judder free headtracking in games but still play those games at the correct speed, but the sound may be sped up? How interesting, I guess the audio/visual cutscenes would go out of alignment then?

    well,whether the sound gets fixed or not for the next build I'm certainly looking forward to it, RE4 and zelda twilight had aweful judder as well as far as I recall.
  • FictionXFictionX Posts: 289
    feilen wrote:

    Okay, I know what this is. You'll need to download and build the Oculus SDK, and stick LibOVR from that in Externals/

    Then after the other git apply, make a file 'findfix.patch' with the contents:
    diff --git a/CMakeTests/FindOculusSDK.cmake b/CMakeTests/FindOculusSDK.cmake
    index afd00d2..458879d 100644
    --- a/CMakeTests/FindOculusSDK.cmake
    +++ b/CMakeTests/FindOculusSDK.cmake
    @@ -10,17 +10,25 @@ if (NOT OCULUSSDK_FOUND)
        find_path(OCULUSSDK_INCLUDE_DIR NAMES OVR.h
            PATHS
            /usr/include/ovr-0.4.3/LibOVR/Include
    +       /usr/include/ovr-0.4.4/LibOVR/Include
            /usr/include
            /usr/local/include/ovr-0.4.3/LibOVR/Include
    +       /usr/local/include/ovr-0.4.4/LibOVR/Include
            /usr/local/include
    +       Externals/LibOVR/Include
    +       Externals/
        )
     
        find_path(OCULUSSDK_SRC_DIR NAMES OVR_CAPI_GL.h
            PATHS
            /usr/include/ovr-0.4.3/LibOVR/Src
    +       /usr/include/ovr-0.4.4/LibOVR/Src
            /usr/include
            /usr/local/include/ovr-0.4.3/LibOVR/Src
    +       /usr/local/include/ovr-0.4.4/LibOVR/Src
            /usr/local/include
    +       Externals/LibOVR/Src
    +       Externals/
        )
     
        if(OCULUSSDK_INCLUDE_DIR AND OCULUSSDK_SRC_DIR)
    

    And then do 'git apply /path/to/findfix.patch' right after the other 'git apply' command.
    I only set up the directories so far to support finding the Oculus SDK when it was installed to the filesystem on Arch Linux. This has been fixed upstream but what we're building for Linux is an old patch (while they fix some weird OpenGL glitches with the latest stereo modes)

    If that builds, when you run Dolphin make absolutely sure it's got 'Oculus SDK 0.4.4' in the corner! Otherwise you've got just regular dolphin to build.

    Thanks for helping out - but I'm afraid that didn't work for me:

    ~/dolphin $ git apply ./findfix.patch
    error: patch failed: CMakeTests/FindOculusSDK.cmake:10
    error: CMakeTests/FindOculusSDK.cmake: patch does not apply

    I tried editing FindOculusSDK.cmake manually to add the paths, but I get the same result about not being able to find
    -lOculusVR

    Maybe I don't process LibOVR correctly? I just run "make", and then copy the folder to Externals. Is that correct?

    Sorry.. I know I'm a n00b! :)
  • ceglicegli Posts: 436
    amazing news, so I will get judder free headtracking in games but still play those games at the correct speed, but the sound may be sped up? How interesting, I guess the audio/visual cutscenes would go out of alignment then?

    well,whether the sound gets fixed or not for the next build I'm certainly looking forward to it, RE4 and zelda twilight had aweful judder as well as far as I recall.

    I *should* be able to slow the sound down without too much difficulty to make it run at normal speed. I just haven't written the code yet :). Step 1 is probably the hardest. Right now it works perfectly on some games, but gives "FIFO Desync" warnings on others. I think I'm not replaying certain types of commands correctly, so I'm going to have to find those and fix them. I hope when it's all done, every game will be able to played at normal speed, with normal sound, at its normal frame rate with 75fps head tracking.

    Edit: I've finished step 2 and checked in what I have so far! I have now seen 20fps, 30fps, and 60fps games all running nicely with native 75fps head tracking! Really gotta fix the FIFO Desync bugs now...

    1. Fix the bugs that are making it unstable (some games crash).
    2. Add GUI control for the post divider, that lets us change games to 60fps. Right now it's hardcoded.
    3. Sound is still running at 1.25x speed, so I have to slow that down just as much as the post divider is dividing.
  • aminemoaminemo Posts: 353
    Art3mis
    I am trying thoses AR codes but which map file refering to?
    There is three different versions ..I am confused.
    I am curious of what 2eyeguy think about it.
  • 2EyeGuy2EyeGuy Posts: 1,084
    Trinity
    I just fixed the OpenGL single-pass stereoscopic 3D, to make it proper VR using the Oculus SDK.
    It stumped me for a long time, and I got very discouraged, because logically it should have worked but my changes weren't being recognised. :( But today I finally realised that Dolphin CACHES the shaders on disk, so my changes to the geometry shader weren't being used. :x Now it is working. :D

    If you use OpenGL you will need to set the Stereoscopic Mode to Oculus, then the separation and convergence values will no longer have any effect and the Oculus SDK and scale values will be used to render in proper VR like normal (only much faster!). OpenGL should now be the best backend to use.

    Thank you for all your hard work on redrawing the FIFO, and supporting other platforms.

    Good work on the culling.
    But when I tried Wind Waker NTSC using your codes, the bridge on Outset Island was still culled. That was the object I was using to test my own culling codes ages ago, but I could never get it to work. So maybe that bridge is just a bad object to choose but other objects are prevented from being culled? Do you know any locations that I can test it on?

    If you want to use IDA Pro to find the culling Action Replay codes, here is an IDA Pro script I wrote that loads Dolphin map files. Save it as ReadDolphinMap.idc. You might also need a plugin for loading .dol files, which you can find on the internet.
    /* ReadDolphinMap.idc
    
       Loads .map files generated by dolphin.
       Carl Kenner, 2012
    */
    
    #include &lt;idc.idc&gt;
    
    static main(void)
    {
        auto fh;
        auto fname;
        auto pusha, popa;
        auto start, end;
        auto success;
        auto count;
    	auto line;
    	auto ea; // column 1
    	auto name; // column 30
    	auto p;
    	auto code;
    
        fname = AskFile(0,"*.map","Load a .map file from Dolphin emulator...");
    
        fh = fopen(fname, "r");
        if (fh == 0) {
    		Message("Can't open %s\n", fname);
    		return;
        }
    
        Message("Loading %s dolphin map file:\n", fname);
    
        for (count = 0; 1; count++) {
    		line = readstr(fh);
    		if (line == -1)
    			break;
    		if (strlen(line)&gt;30 && line&#91;0&#93;!=" ") {
    			ea = xtol(substr(line,0,8));
    			name = substr(line,29,strlen(line)-1);
    			if (substr(name,0,3)!="zz_") {
    				if (!MakeNameEx(ea,name,SN_NOCHECK | SN_PUBLIC | SN_NON_AUTO |SN_NOWARN)) {
    					MakeNameEx(ea,name+"_2",SN_NOCHECK | SN_PUBLIC | SN_NON_AUTO );
    				}
    				Message("ea='%x', name='%s'\n", ea, name);
    			} else {
    				MakeNameEx(ea,name,SN_NOCHECK | SN_PUBLIC | SN_AUTO | SN_WEAK | SN_NOWARN);
    			}
    		} else if (strlen(line)&gt;30) {
    			ea = xtol(substr(line,18,18+8));
    			p = strstr(line, " \t");
    			if (p&gt;=30 && ea!=0) {
    				name = substr(line,30,p);
    				code = substr(line,p+2,strlen(line));
    				SetFunctionCmt(ea, code, 0);
    				if (!MakeNameEx(ea,name,SN_NOCHECK | SN_PUBLIC | SN_NON_AUTO |SN_NOWARN)) {
    					MakeNameEx(ea,name+"_2",SN_NOCHECK | SN_PUBLIC | SN_NON_AUTO );
    				}
    			}
    		}
        }
        Message("Dolphin map file done.\n");
    }
    
  • aminemoaminemo Posts: 353
    Art3mis
    2EyeGuy wrote:

    Good work on the culling.
    But when I tried Wind Waker NTSC using your codes, the bridge on Outset Island was still culled. That was the object I was using to test my own culling codes ages ago, but I could never get it to work. So maybe that bridge is just a bad object to choose but other objects are prevented from being culled? Do you know any locations that I can test it on?

    If you want to use IDA Pro to find the culling Action Replay codes, here is an IDA Pro script I wrote that loads Dolphin map files. Save it as ReadDolphinMap.idc. You might also need a plugin for loading .dol files, which you can find on the internet.

    thanks a lot I will try your script
    A lot of reverse engineering is being made on metroid prime at the moment If we could remove that culling we are going to play an exclusivity in a few mouths only because of the early active hacking /modding activity.

    I posted my question on the metroid prime hacking forum I got an answer.
    https://m2k2.taigaforum.com/post/metroid_prime_hacking_help.html#metroid_prime_hacking_help_2-
  • fugazifugazi Posts: 109
    Hiro Protagonist
    Its working!!!!!!!

    042A2DD4 38600001
    042A2DD8 4E800020

    Please ask him to search the function in the original games.
    And tell him that he is our hero!!!!!
  • aminemoaminemo Posts: 353
    Art3mis
    fugazi wrote:
    Its working!!!!!!!

    042A2DD4 38600001
    042A2DD8 4E800020

    Please ask him to search the function in the original games.
    And tell him that he is our hero!!!!!
    Oh God...

  • aminemoaminemo Posts: 353
    Art3mis
    He just send another answer for the final game
    Paraxade >2014-12-13 04:28:11 pm
    Try 0x803451D0 in the final game (NTSC 0-00).
Sign In or Register to comment.