User Tools

Site Tools


decomp:problems

Known Problems

Toolchain Problems

  • 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.
  • 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):

7820c:    bl      192308 ~>                              7820c:    bl      192308 ~>                
78210:    cmp     r0, #0                                 78210:    cmp     r0, #0                   
78214:    nop     {0}                             <                                                 
78218:    beq     78228 ~>                               78214:    beq     78224 ~>                 
7821c:    add     r0, r5, r4, lsl #3              r      78218:    add     r0, r8, r4, lsl #3       
78220:    ldr     r7, [r0, #4]                    |      7821c:    ldrb    r6, [r0, #4]             
78224:    b       78234 ~>                               78220:    b       78230 ~>                 
78228: ~> add     r4, r4, #1                             78224: ~> add     r4, r4, #1
  • Some constructors initialize members in a non-linear order/twice, the used compiler will remove any initializers that happen twice, and will order the initializers by the order they are defined in.
decomp/problems.txt · Last modified: 2023/02/13 02:46 by fruityloops