User Tools

Site Tools


decomp:problems

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
decomp:problems [2022/10/21 13:01] – created fruityloopsdecomp:problems [2023/02/13 02:46] (current) – [Toolchain Problems] fruityloops
Line 2: Line 2:
  
 ===== Toolchain Problems ===== ===== Toolchain Problems =====
-  * The exact version of ARMCC used to compile the game is unknown, so version 4.1 build 713/894/1049 are used since they are the most accurate.+  * The exact version of ARMCC used to compile the game is unknown, so version 4.1 build 894 are used since they are the most accurate.
   * The compiler flags used to compile the game may not be fully correct.   * The compiler flags used to compile the game may not be fully correct.
-  * The decompilation uses the devkitPro linker, since older armlink versions seem to have a time bomb in them, which is problematic due to the linker having its own special way of inlining, and the devkitPro linker not being able to link with the Rogue Wave C++ standard library. 
- 
-  * Constructors in which 2 int-sized members are being initialized to different values (including vtables) will mismatch, due to the compiler used splitting the 'stm' instruction into 'str' instructions. (temporary fix with #pragma O3) 
-Example (_ZN2al13NerveExecutorC1EPKc): 
-<code> 
-17b194:    ldr     r1, [pc, #8]  ; 0x17b1a4            17b194:    ldr     r1, [pc, #0xc]  ; 0x17b1a8 
-                                                  >      17b198:    str     r1, [r0]                 
-17b198:    mov     r2, #0                              17b19c:    mov     r1, #0                   
-17b19c:    stm     r0, {r1, r2}                        17b1a0:    str     r1, [r0, #4]             
-17b1a0:    bx      lr                                    17b1a4:    bx      lr  
-</code> 
   * Some while/for loops with if statements inside them will have 'nop' instructions right before the conditional jump instruction, which are not generated by the used compiler.   * Some while/for loops with if statements inside them will have 'nop' instructions right before the conditional jump instruction, which are not generated by the used compiler.
 Example (_ZN16alSensorFunction20findSensorTypeByNameEPKc): Example (_ZN16alSensorFunction20findSensorTypeByNameEPKc):
decomp/problems.1666357305.txt.gz · Last modified: 2022/10/21 13:01 by fruityloops