Bond697

changeScreenOnEnterBuilding - 3d hack

Mar 2nd, 2013
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 4.89 KB | None | 0 0
  1. OVL_36:021B8DB8             ; =============== S U B R O U T I N E =======================================
  2. OVL_36:021B8DB8
  3. OVL_36:021B8DB8
  4. OVL_36:021B8DB8             changeScreenOnEnterBuilding             ; DATA XREF: sub_21B8A14+2o
  5. OVL_36:021B8DB8                                                     ; OVL_36:off_21B8A40o
  6. OVL_36:021B8DB8
  7. OVL_36:021B8DB8             gfx             = -0x20
  8. OVL_36:021B8DB8
  9. OVL_36:021B8DB8 38 B5                       PUSH    {R3-R5,LR}
  10. OVL_36:021B8DBA 84 B0                       SUB     SP, SP, #0x10
  11. OVL_36:021B8DBC 08 68                       LDR     R0, [R1]
  12. OVL_36:021B8DBE 14 1C                       MOVS    R4, R2
  13. OVL_36:021B8DC0 00 28                       CMP     R0, #0
  14. OVL_36:021B8DC2 36 D1                       BNE     loc_21B8E32
  15. OVL_36:021B8DC4 10 23                       MOVS    R3, #0x10
  16. OVL_36:021B8DC6 E0 68                       LDR     R0, [R4,#0xC]
  17. OVL_36:021B8DC8 00 21                       MOVS    R1, #0
  18. OVL_36:021B8DCA 10 22                       MOVS    R2, #0x10
  19. OVL_36:021B8DCC 11 3B                       SUBS    R3, #0x11
  20. OVL_36:021B8DCE 95 F6 5D F9                 BL      sub_204E08C
  21. OVL_36:021B8DD2 60 68                       LDR     R0, [R4,#4]
  22. OVL_36:021B8DD4 C8 F7 C0 FA                 BL      sub_2181358
  23. OVL_36:021B8DD8 0F F0 2C FC                 BL      sub_21C8634
  24. OVL_36:021B8DDC 08 20                       MOVS    R0, #8          ; lcdc
  25. OVL_36:021B8DDE BD F6 87 FE                 BL      GX_SetBankForLCDC
  26. OVL_36:021B8DE2 15 48                       LDR     R0, =0x80330010 ; capture_enable | blending_factor_8 | vram D | 256x192_capture
  27. OVL_36:021B8DE4 15 4C                       LDR     R4, =0x4000064
  28. OVL_36:021B8DE6 20 60                       STR     R0, [R4]
  29. OVL_36:021B8DE8 C3 F6 14 FA                 BL      OS_WaitVBlankIntr
  30. OVL_36:021B8DEC C3 F6 12 FA                 BL      OS_WaitVBlankIntr
  31. OVL_36:021B8DF0 13 4D                       LDR     R5, =building_gfx_modes
  32. OVL_36:021B8DF2 00 AB                       ADD     R3, SP, #0x20+gfx
  33. OVL_36:021B8DF4 1A 1C                       MOVS    R2, R3
  34. OVL_36:021B8DF6 03 CD                       LDMIA   R5!, {R0,R1}
  35. OVL_36:021B8DF8 03 C3                       STMIA   R3!, {R0,R1}
  36. OVL_36:021B8DFA 03 CD                       LDMIA   R5!, {R0,R1}
  37. OVL_36:021B8DFC 03 C3                       STMIA   R3!, {R0,R1}
  38. OVL_36:021B8DFE 10 1C                       MOVS    R0, R2          ; gfx
  39. OVL_36:021B8E00 8B F6 9C FC                 BL      adjustGfxModeOnScreenChange
  40. OVL_36:021B8E04 58 3C                       SUBS    R4, #0x58 ; 'X'
  41. OVL_36:021B8E06 21 88                       LDRH    R1, [R4]
  42. OVL_36:021B8E08 43 20                       MOVS    R0, #0x43 ; 'C'
  43. OVL_36:021B8E0A 01 40                       ANDS    R1, R0
  44. OVL_36:021B8E0C 0D 48                       LDR     R0, =0x4084
  45. OVL_36:021B8E0E 08 43                       ORRS    R0, R1
  46. OVL_36:021B8E10 20 80                       STRH    R0, [R4]
  47. OVL_36:021B8E12 08 20                       MOVS    R0, #8          ; bg
  48. OVL_36:021B8E14 BD F6 B2 FB                 BL      GX_SetBankForBG ; GX_VRAM_BG_128_B/128 kilobytes are reserved in BG. VRAM-B is allocated.
  49. OVL_36:021B8E18 02 20                       MOVS    R0, #2          ; bg_num
  50. OVL_36:021B8E1A 00 21                       MOVS    R1, #0          ; priority
  51. OVL_36:021B8E1C 8B F6 F2 FE                 BL      setBGPriority
  52. OVL_36:021B8E20 02 20                       MOVS    R0, #2          ; bg
  53. OVL_36:021B8E22 01 21                       MOVS    R1, #1          ; bg0
  54. OVL_36:021B8E24 8B F6 4E FF                 BL      modifyScreenDisplay
  55. OVL_36:021B8E28 A8 F7 3E F8                 BL      sub_2160EA8
  56. OVL_36:021B8E2C 04 B0                       ADD     SP, SP, #0x10
  57. OVL_36:021B8E2E 01 20                       MOVS    R0, #1
  58. OVL_36:021B8E30 38 BD                       POP     {R3-R5,PC}
  59. OVL_36:021B8E32             ; ---------------------------------------------------------------------------
  60. OVL_36:021B8E32
  61. OVL_36:021B8E32             loc_21B8E32                             ; CODE XREF: changeScreenOnEnterBuilding+Aj
  62. OVL_36:021B8E32 00 20                       MOVS    R0, #0
  63. OVL_36:021B8E34 04 B0                       ADD     SP, SP, #0x10
  64. OVL_36:021B8E36 38 BD                       POP     {R3-R5,PC}
  65. OVL_36:021B8E36             ; End of function changeScreenOnEnterBuilding
  66. OVL_36:021B8E36
  67. OVL_36:021B8E36             ; ---------------------------------------------------------------------------
  68. OVL_36:021B8E38 10 00 33 80 dword_21B8E38   DCD 0x80330010          ; DATA XREF: changeScreenOnEnterBuilding+2Ar
  69. OVL_36:021B8E3C 64 00 00 04 dword_21B8E3C   DCD 0x4000064           ; DATA XREF: changeScreenOnEnterBuilding+2Cr
  70. OVL_36:021B8E40 58 16 1D 02 off_21B8E40     DCD building_gfx_modes  ; DATA XREF: changeScreenOnEnterBuilding+38r
  71. OVL_36:021B8E44 84 40 00 00 dword_21B8E44   DCD 0x4084              ; DATA XREF: changeScreenOnEnterBuilding+54r
Add Comment
Please, Sign In to add comment