pmdsky-debug-py 10.1.4__py3-none-any.whl → 10.1.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- RELEASE = "v0.10.1+e13bcd5f50"
1
+ RELEASE = "v0.10.1+9cf34eed5f"
pmdsky_debug_py/eu.py CHANGED
@@ -752,7 +752,7 @@ class EuArm9Functions:
752
752
  [0x2003328],
753
753
  None,
754
754
  "TaskProcBoot",
755
- "Probably related to booting the game?\n\nThis function prints the debug message 'task proc boot'.\n\nNo params.",
755
+ "Boot the game and run the main loop. Use dynamic code dispatch to run code depending on the context (like dungeon mode, ground mode, menu mode, etc.).\n\nThis function prints the debug message 'task proc boot'.\n\nNo params.",
756
756
  None,
757
757
  )
758
758
 
@@ -3697,6 +3697,24 @@ class EuArm9Functions:
3697
3697
  None,
3698
3698
  )
3699
3699
 
3700
+ ExecuteCopyToFlatVramCommand = Symbol(
3701
+ [0x1ABA8],
3702
+ [0x201ABA8],
3703
+ None,
3704
+ "ExecuteCopyToFlatVramCommand",
3705
+ "Immediately execute the command contained in a copy_to_obj_vram_order struct, copying content as described.\n\nr0: command",
3706
+ None,
3707
+ )
3708
+
3709
+ DecodeFragmentByteAssemblyTable = Symbol(
3710
+ [0x1AC48],
3711
+ [0x201AC48],
3712
+ None,
3713
+ "DecodeFragmentByteAssemblyTable",
3714
+ "Decode the sprite texture stored in each fragment byte assembly entry into the dst output, until the final one is reached.\n\nr0: pointer to array of fragment byte assembly entry, final (otherwise unused) one should have byte_amount = 0\nr1: dst\nreturn: number of decoded bytes",
3715
+ None,
3716
+ )
3717
+
3700
3718
  CopyAndInterleaveWrapper = Symbol(
3701
3719
  [0x1C08C],
3702
3720
  [0x201C08C],
@@ -3954,7 +3972,43 @@ class EuArm9Functions:
3954
3972
  [0x201E14C],
3955
3973
  None,
3956
3974
  "ProcessWte",
3957
- "Prepare a WTE data to be loaded into VRAM. Seems to need to be called with another undocumented function (at 0x0201e1d8 (EU))\nIt skips the texture and/or the palette if missing from the file. The texture VRAM has 128KiB of space, and palette has 16KiB.\nThe true palette VRAM offset will be upper_part*0x100+lower_part\n\nThis may or may not be the function that adds to the queue so it can be added during VBlank.\n\nr0: pointer to the WTE file header loaded in memory\nr1: where the WTE texture will be loaded in the VRAM (from 0 to 0x1FFFF)\nr2: upper part of the palette VRAM\nr3: lower part of the palette VRAM",
3975
+ "Prepare and plan a WTE data to be loaded into VRAM.\nIt skips the texture and/or the palette if missing from the file. The texture VRAM has 128KiB of space, and palette has 16KiB.\nThe true palette VRAM offset will be upper_part*0x100+lower_part.\nWill ensure it gets copied next time PerformPlannedTextureVramTransfer is called by the game.\nWill not automatically free the data once done. That can be done with DelayWteFree, which seems systematically called in the game’s code.\n\nr0: pointer to the WTE file header loaded in memory\nr1: where the WTE texture will be loaded in the VRAM (from 0 to 0x1FFFF)\nr2: upper part of the palette VRAM\nr3: lower part of the palette VRAM",
3976
+ None,
3977
+ )
3978
+
3979
+ DelayWteFree = Symbol(
3980
+ [0x1E1D8],
3981
+ [0x201E1D8],
3982
+ None,
3983
+ "DelayWteFree",
3984
+ "Add a command to free the input WTE handle once all previously registered commands that would edit the texture VRAM have been executed.\nAlso nullify the structure’s two pointers.\nThe error caused by the lack of place to store the command is ignored.\n\nr0: wte handle to eventually free",
3985
+ None,
3986
+ )
3987
+
3988
+ ResetPlannedVramTransfer = Symbol(
3989
+ [0x1E270],
3990
+ [0x201E270],
3991
+ None,
3992
+ "ResetPlannedVramTransfer",
3993
+ "Reset the command array of input container\nDoes not reset its other field\n\nr0: the container to reset",
3994
+ None,
3995
+ )
3996
+
3997
+ PlanCopyTextureToTextureVram = Symbol(
3998
+ [0x1E27C],
3999
+ [0x201E27C],
4000
+ None,
4001
+ "PlanCopyTextureToTextureVram",
4002
+ "Add a command in the container (r1) that will be executed later by PerformPlannedTextureVramTransfer to copy part of the RAM into the texture VRAM (or free the source allocated memory depending of the specified type of command).\nCheck for overflow. If an overflow would occur, do not add the command to the container, and return -1 instead.\n\nr0: Container that contain the command list to add to\nr1: pointer to the bytes to be copied in CPU-accessible RAM\nr2: offset to copy too in texture VRAM\nr3: number of bytes to copy\nstack[0]: type of command to perform",
4003
+ None,
4004
+ )
4005
+
4006
+ PerformPlannedTextureVramTransfer = Symbol(
4007
+ [0x1E2CC],
4008
+ [0x201E2CC],
4009
+ None,
4010
+ "PerformPlannedTextureVramTransfer",
4011
+ "Execute the texture VRAM edition command of the input container. Does not reset it, or alter its state in any way.\n\nr0: container that contains the command list to execute",
3958
4012
  None,
3959
4013
  )
3960
4014
 
@@ -11129,7 +11183,16 @@ class EuItcmFunctions:
11129
11183
  [0x20B3CC0],
11130
11184
  None,
11131
11185
  "CopyAndInterleave",
11132
- "Copies data from src to dst, placing the last 4 bits of val after every 4 bits copied.\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nr0: [output] dst\nr1: src\nr2: len (in bytes)\nr3: val",
11186
+ "Copies data from src to dst, interleaving the lower 4 bits of val with every 4 bits copied (if the copied bits are nonzero).\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nFor example, for arbitrary inputs (assuming little-endian byte order)\n src[i] = {76543210 fedcba98}\n {3210} != 0\n {7654} != 0\n {ba98} != 0\n {fedc} != 0\n val & 0xF = {vwxy}\nThe output written to dst will be:\n dst[2*i] = {vwxy7654 vwxy3210}\n dst[2*i+1] = {vwxyfedc vwxyba98}\n\nIf any 4-bit nibble is 0, the corresponding byte written to dst is interleaved with 0 rather than the low bits of val. For example, if 'z' represents a 0 bit, given the inputs:\n src[i] = {zzzz3210 fedczzzz}\n val & 0xF = {vwxy}\nThe output written to dst will be:\n dst[2*i] = {zzzzzzzz vwxy3210}\n dst[2*i+1] = {vwxyfedc zzzzzzzz}\n\nr0: [output] dst (2 * len bytes long)\nr1: src (len bytes long)\nr2: len (in bytes, must be even)\nr3: val",
11187
+ None,
11188
+ )
11189
+
11190
+ CopyAndInterleave0 = Symbol(
11191
+ [0xB0],
11192
+ [0x20B3D70],
11193
+ None,
11194
+ "CopyAndInterleave0",
11195
+ "Equivalent to CopyAndInterleave with an interleaved value of 0.\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nFor example, for arbitrary input (assuming little-endian byte order):\n src[i] = {76543210 fedcba98}\nThen the output written to dst will be (where 'z' is a 0 bit):\n dst[2*i] = {zzzz7654 zzzz3210}\n dst[2*i+1] = {zzzzfedc zzzzba98}\n\nr0: [output] dst (2 * len bytes long)\nr1: src (len bytes long)\nr2: len (in bytes, must be even)",
11133
11196
  None,
11134
11197
  )
11135
11198
 
@@ -11381,7 +11444,7 @@ class EuItcmFunctions:
11381
11444
  [0x20B6084],
11382
11445
  None,
11383
11446
  "AiMovement",
11384
- "Used by the AI to determine the direction in which a monster should move\n\nr0: Entity pointer\nr1: ?",
11447
+ "Used by the AI to determine the direction in which a monster should move\n\nr0: Entity pointer\nr1: Boolean value. If the monster becomes terrified, this flag determines whether the 'poof' visual effect will show.",
11385
11448
  None,
11386
11449
  )
11387
11450
 
@@ -25885,7 +25948,7 @@ class EuOverlay29Functions:
25885
25948
  [0x2302708],
25886
25949
  None,
25887
25950
  "NoGastroAcidStatus",
25888
- "Checks if a monster does not have the Gastro Acid status.\n\nr0: entity pointer\nreturn: bool",
25951
+ "Checks if a monster does not have the Gastro Acid status.\n\nr0: entity pointer\nr1: ability ID (unused)\nreturn: bool",
25889
25952
  None,
25890
25953
  )
25891
25954
 
@@ -28157,6 +28220,15 @@ class EuOverlay29Functions:
28157
28220
  None,
28158
28221
  )
28159
28222
 
28223
+ BuildMoveTargetList = Symbol(
28224
+ [0x47F18],
28225
+ [0x2324A98],
28226
+ None,
28227
+ "BuildMoveTargetList",
28228
+ "Builds the list of targets of a given move for a given user\n\nr0: [output] Buffer where the resulting list should be stored\nr1: Pointer to entity using the move\nr2: Pointer to move data",
28229
+ None,
28230
+ )
28231
+
28160
28232
  IsHyperBeamVariant = Symbol(
28161
28233
  [0x4841C],
28162
28234
  [0x2324F9C],
@@ -28297,7 +28369,7 @@ class EuOverlay29Functions:
28297
28369
  [0x232F2A4],
28298
28370
  None,
28299
28371
  "ExecuteMoveEffect",
28300
- "Handles the effects that happen after a move is used. Includes a loop that is run for each target, mutiple ability checks and the giant switch statement that executes the effect of the move used given its ID.\n\nr0: pointer to some struct\nr1: attacker pointer\nr2: pointer to move data\nr3: ?\nstack[0]: ?",
28372
+ "Handles the effects that happen after a move is used. Includes a loop that is run for each target, mutiple ability checks and the giant switch statement that executes the effect of the move used given its ID.\n\nr0: pointer to list of targets\nr1: attacker pointer\nr2: pointer to move data\nr3: ?\nstack[0]: ?",
28301
28373
  None,
28302
28374
  )
28303
28375
 
@@ -740,7 +740,7 @@ class EuItcmArm9Functions:
740
740
  None,
741
741
  None,
742
742
  "TaskProcBoot",
743
- "Probably related to booting the game?\n\nThis function prints the debug message 'task proc boot'.\n\nNo params.",
743
+ "Boot the game and run the main loop. Use dynamic code dispatch to run code depending on the context (like dungeon mode, ground mode, menu mode, etc.).\n\nThis function prints the debug message 'task proc boot'.\n\nNo params.",
744
744
  None,
745
745
  )
746
746
 
@@ -3651,6 +3651,24 @@ class EuItcmArm9Functions:
3651
3651
  None,
3652
3652
  )
3653
3653
 
3654
+ ExecuteCopyToFlatVramCommand = Symbol(
3655
+ None,
3656
+ None,
3657
+ None,
3658
+ "ExecuteCopyToFlatVramCommand",
3659
+ "Immediately execute the command contained in a copy_to_obj_vram_order struct, copying content as described.\n\nr0: command",
3660
+ None,
3661
+ )
3662
+
3663
+ DecodeFragmentByteAssemblyTable = Symbol(
3664
+ None,
3665
+ None,
3666
+ None,
3667
+ "DecodeFragmentByteAssemblyTable",
3668
+ "Decode the sprite texture stored in each fragment byte assembly entry into the dst output, until the final one is reached.\n\nr0: pointer to array of fragment byte assembly entry, final (otherwise unused) one should have byte_amount = 0\nr1: dst\nreturn: number of decoded bytes",
3669
+ None,
3670
+ )
3671
+
3654
3672
  CopyAndInterleaveWrapper = Symbol(
3655
3673
  None,
3656
3674
  None,
@@ -3908,7 +3926,43 @@ class EuItcmArm9Functions:
3908
3926
  None,
3909
3927
  None,
3910
3928
  "ProcessWte",
3911
- "Prepare a WTE data to be loaded into VRAM. Seems to need to be called with another undocumented function (at 0x0201e1d8 (EU))\nIt skips the texture and/or the palette if missing from the file. The texture VRAM has 128KiB of space, and palette has 16KiB.\nThe true palette VRAM offset will be upper_part*0x100+lower_part\n\nThis may or may not be the function that adds to the queue so it can be added during VBlank.\n\nr0: pointer to the WTE file header loaded in memory\nr1: where the WTE texture will be loaded in the VRAM (from 0 to 0x1FFFF)\nr2: upper part of the palette VRAM\nr3: lower part of the palette VRAM",
3929
+ "Prepare and plan a WTE data to be loaded into VRAM.\nIt skips the texture and/or the palette if missing from the file. The texture VRAM has 128KiB of space, and palette has 16KiB.\nThe true palette VRAM offset will be upper_part*0x100+lower_part.\nWill ensure it gets copied next time PerformPlannedTextureVramTransfer is called by the game.\nWill not automatically free the data once done. That can be done with DelayWteFree, which seems systematically called in the game’s code.\n\nr0: pointer to the WTE file header loaded in memory\nr1: where the WTE texture will be loaded in the VRAM (from 0 to 0x1FFFF)\nr2: upper part of the palette VRAM\nr3: lower part of the palette VRAM",
3930
+ None,
3931
+ )
3932
+
3933
+ DelayWteFree = Symbol(
3934
+ None,
3935
+ None,
3936
+ None,
3937
+ "DelayWteFree",
3938
+ "Add a command to free the input WTE handle once all previously registered commands that would edit the texture VRAM have been executed.\nAlso nullify the structure’s two pointers.\nThe error caused by the lack of place to store the command is ignored.\n\nr0: wte handle to eventually free",
3939
+ None,
3940
+ )
3941
+
3942
+ ResetPlannedVramTransfer = Symbol(
3943
+ None,
3944
+ None,
3945
+ None,
3946
+ "ResetPlannedVramTransfer",
3947
+ "Reset the command array of input container\nDoes not reset its other field\n\nr0: the container to reset",
3948
+ None,
3949
+ )
3950
+
3951
+ PlanCopyTextureToTextureVram = Symbol(
3952
+ None,
3953
+ None,
3954
+ None,
3955
+ "PlanCopyTextureToTextureVram",
3956
+ "Add a command in the container (r1) that will be executed later by PerformPlannedTextureVramTransfer to copy part of the RAM into the texture VRAM (or free the source allocated memory depending of the specified type of command).\nCheck for overflow. If an overflow would occur, do not add the command to the container, and return -1 instead.\n\nr0: Container that contain the command list to add to\nr1: pointer to the bytes to be copied in CPU-accessible RAM\nr2: offset to copy too in texture VRAM\nr3: number of bytes to copy\nstack[0]: type of command to perform",
3957
+ None,
3958
+ )
3959
+
3960
+ PerformPlannedTextureVramTransfer = Symbol(
3961
+ None,
3962
+ None,
3963
+ None,
3964
+ "PerformPlannedTextureVramTransfer",
3965
+ "Execute the texture VRAM edition command of the input container. Does not reset it, or alter its state in any way.\n\nr0: container that contains the command list to execute",
3912
3966
  None,
3913
3967
  )
3914
3968
 
@@ -11063,7 +11117,16 @@ class EuItcmItcmFunctions:
11063
11117
  [0x1FF8000],
11064
11118
  None,
11065
11119
  "CopyAndInterleave",
11066
- "Copies data from src to dst, placing the last 4 bits of val after every 4 bits copied.\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nr0: [output] dst\nr1: src\nr2: len (in bytes)\nr3: val",
11120
+ "Copies data from src to dst, interleaving the lower 4 bits of val with every 4 bits copied (if the copied bits are nonzero).\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nFor example, for arbitrary inputs (assuming little-endian byte order)\n src[i] = {76543210 fedcba98}\n {3210} != 0\n {7654} != 0\n {ba98} != 0\n {fedc} != 0\n val & 0xF = {vwxy}\nThe output written to dst will be:\n dst[2*i] = {vwxy7654 vwxy3210}\n dst[2*i+1] = {vwxyfedc vwxyba98}\n\nIf any 4-bit nibble is 0, the corresponding byte written to dst is interleaved with 0 rather than the low bits of val. For example, if 'z' represents a 0 bit, given the inputs:\n src[i] = {zzzz3210 fedczzzz}\n val & 0xF = {vwxy}\nThe output written to dst will be:\n dst[2*i] = {zzzzzzzz vwxy3210}\n dst[2*i+1] = {vwxyfedc zzzzzzzz}\n\nr0: [output] dst (2 * len bytes long)\nr1: src (len bytes long)\nr2: len (in bytes, must be even)\nr3: val",
11121
+ None,
11122
+ )
11123
+
11124
+ CopyAndInterleave0 = Symbol(
11125
+ [0xB0],
11126
+ [0x1FF80B0],
11127
+ None,
11128
+ "CopyAndInterleave0",
11129
+ "Equivalent to CopyAndInterleave with an interleaved value of 0.\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nFor example, for arbitrary input (assuming little-endian byte order):\n src[i] = {76543210 fedcba98}\nThen the output written to dst will be (where 'z' is a 0 bit):\n dst[2*i] = {zzzz7654 zzzz3210}\n dst[2*i+1] = {zzzzfedc zzzzba98}\n\nr0: [output] dst (2 * len bytes long)\nr1: src (len bytes long)\nr2: len (in bytes, must be even)",
11067
11130
  None,
11068
11131
  )
11069
11132
 
@@ -11315,7 +11378,7 @@ class EuItcmItcmFunctions:
11315
11378
  [0x1FFA3C4],
11316
11379
  None,
11317
11380
  "AiMovement",
11318
- "Used by the AI to determine the direction in which a monster should move\n\nr0: Entity pointer\nr1: ?",
11381
+ "Used by the AI to determine the direction in which a monster should move\n\nr0: Entity pointer\nr1: Boolean value. If the monster becomes terrified, this flag determines whether the 'poof' visual effect will show.",
11319
11382
  None,
11320
11383
  )
11321
11384
 
@@ -25310,7 +25373,7 @@ class EuItcmOverlay29Functions:
25310
25373
  None,
25311
25374
  None,
25312
25375
  "NoGastroAcidStatus",
25313
- "Checks if a monster does not have the Gastro Acid status.\n\nr0: entity pointer\nreturn: bool",
25376
+ "Checks if a monster does not have the Gastro Acid status.\n\nr0: entity pointer\nr1: ability ID (unused)\nreturn: bool",
25314
25377
  None,
25315
25378
  )
25316
25379
 
@@ -27582,6 +27645,15 @@ class EuItcmOverlay29Functions:
27582
27645
  None,
27583
27646
  )
27584
27647
 
27648
+ BuildMoveTargetList = Symbol(
27649
+ None,
27650
+ None,
27651
+ None,
27652
+ "BuildMoveTargetList",
27653
+ "Builds the list of targets of a given move for a given user\n\nr0: [output] Buffer where the resulting list should be stored\nr1: Pointer to entity using the move\nr2: Pointer to move data",
27654
+ None,
27655
+ )
27656
+
27585
27657
  IsHyperBeamVariant = Symbol(
27586
27658
  None,
27587
27659
  None,
@@ -27722,7 +27794,7 @@ class EuItcmOverlay29Functions:
27722
27794
  None,
27723
27795
  None,
27724
27796
  "ExecuteMoveEffect",
27725
- "Handles the effects that happen after a move is used. Includes a loop that is run for each target, mutiple ability checks and the giant switch statement that executes the effect of the move used given its ID.\n\nr0: pointer to some struct\nr1: attacker pointer\nr2: pointer to move data\nr3: ?\nstack[0]: ?",
27797
+ "Handles the effects that happen after a move is used. Includes a loop that is run for each target, mutiple ability checks and the giant switch statement that executes the effect of the move used given its ID.\n\nr0: pointer to list of targets\nr1: attacker pointer\nr2: pointer to move data\nr3: ?\nstack[0]: ?",
27726
27798
  None,
27727
27799
  )
27728
27800
 
pmdsky_debug_py/jp.py CHANGED
@@ -752,7 +752,7 @@ class JpArm9Functions:
752
752
  [0x2003328],
753
753
  None,
754
754
  "TaskProcBoot",
755
- "Probably related to booting the game?\n\nThis function prints the debug message 'task proc boot'.\n\nNo params.",
755
+ "Boot the game and run the main loop. Use dynamic code dispatch to run code depending on the context (like dungeon mode, ground mode, menu mode, etc.).\n\nThis function prints the debug message 'task proc boot'.\n\nNo params.",
756
756
  None,
757
757
  )
758
758
 
@@ -3697,6 +3697,24 @@ class JpArm9Functions:
3697
3697
  None,
3698
3698
  )
3699
3699
 
3700
+ ExecuteCopyToFlatVramCommand = Symbol(
3701
+ [0x1AB64],
3702
+ [0x201AB64],
3703
+ None,
3704
+ "ExecuteCopyToFlatVramCommand",
3705
+ "Immediately execute the command contained in a copy_to_obj_vram_order struct, copying content as described.\n\nr0: command",
3706
+ None,
3707
+ )
3708
+
3709
+ DecodeFragmentByteAssemblyTable = Symbol(
3710
+ [0x1AC04],
3711
+ [0x201AC04],
3712
+ None,
3713
+ "DecodeFragmentByteAssemblyTable",
3714
+ "Decode the sprite texture stored in each fragment byte assembly entry into the dst output, until the final one is reached.\n\nr0: pointer to array of fragment byte assembly entry, final (otherwise unused) one should have byte_amount = 0\nr1: dst\nreturn: number of decoded bytes",
3715
+ None,
3716
+ )
3717
+
3700
3718
  CopyAndInterleaveWrapper = Symbol(
3701
3719
  [0x1C048],
3702
3720
  [0x201C048],
@@ -3954,7 +3972,43 @@ class JpArm9Functions:
3954
3972
  [0x201E108],
3955
3973
  None,
3956
3974
  "ProcessWte",
3957
- "Prepare a WTE data to be loaded into VRAM. Seems to need to be called with another undocumented function (at 0x0201e1d8 (EU))\nIt skips the texture and/or the palette if missing from the file. The texture VRAM has 128KiB of space, and palette has 16KiB.\nThe true palette VRAM offset will be upper_part*0x100+lower_part\n\nThis may or may not be the function that adds to the queue so it can be added during VBlank.\n\nr0: pointer to the WTE file header loaded in memory\nr1: where the WTE texture will be loaded in the VRAM (from 0 to 0x1FFFF)\nr2: upper part of the palette VRAM\nr3: lower part of the palette VRAM",
3975
+ "Prepare and plan a WTE data to be loaded into VRAM.\nIt skips the texture and/or the palette if missing from the file. The texture VRAM has 128KiB of space, and palette has 16KiB.\nThe true palette VRAM offset will be upper_part*0x100+lower_part.\nWill ensure it gets copied next time PerformPlannedTextureVramTransfer is called by the game.\nWill not automatically free the data once done. That can be done with DelayWteFree, which seems systematically called in the game’s code.\n\nr0: pointer to the WTE file header loaded in memory\nr1: where the WTE texture will be loaded in the VRAM (from 0 to 0x1FFFF)\nr2: upper part of the palette VRAM\nr3: lower part of the palette VRAM",
3976
+ None,
3977
+ )
3978
+
3979
+ DelayWteFree = Symbol(
3980
+ [0x1E194],
3981
+ [0x201E194],
3982
+ None,
3983
+ "DelayWteFree",
3984
+ "Add a command to free the input WTE handle once all previously registered commands that would edit the texture VRAM have been executed.\nAlso nullify the structure’s two pointers.\nThe error caused by the lack of place to store the command is ignored.\n\nr0: wte handle to eventually free",
3985
+ None,
3986
+ )
3987
+
3988
+ ResetPlannedVramTransfer = Symbol(
3989
+ [0x1E22C],
3990
+ [0x201E22C],
3991
+ None,
3992
+ "ResetPlannedVramTransfer",
3993
+ "Reset the command array of input container\nDoes not reset its other field\n\nr0: the container to reset",
3994
+ None,
3995
+ )
3996
+
3997
+ PlanCopyTextureToTextureVram = Symbol(
3998
+ [0x1E238],
3999
+ [0x201E238],
4000
+ None,
4001
+ "PlanCopyTextureToTextureVram",
4002
+ "Add a command in the container (r1) that will be executed later by PerformPlannedTextureVramTransfer to copy part of the RAM into the texture VRAM (or free the source allocated memory depending of the specified type of command).\nCheck for overflow. If an overflow would occur, do not add the command to the container, and return -1 instead.\n\nr0: Container that contain the command list to add to\nr1: pointer to the bytes to be copied in CPU-accessible RAM\nr2: offset to copy too in texture VRAM\nr3: number of bytes to copy\nstack[0]: type of command to perform",
4003
+ None,
4004
+ )
4005
+
4006
+ PerformPlannedTextureVramTransfer = Symbol(
4007
+ [0x1E288],
4008
+ [0x201E288],
4009
+ None,
4010
+ "PerformPlannedTextureVramTransfer",
4011
+ "Execute the texture VRAM edition command of the input container. Does not reset it, or alter its state in any way.\n\nr0: container that contains the command list to execute",
3958
4012
  None,
3959
4013
  )
3960
4014
 
@@ -11124,7 +11178,16 @@ class JpItcmFunctions:
11124
11178
  [0x20B4BE0],
11125
11179
  None,
11126
11180
  "CopyAndInterleave",
11127
- "Copies data from src to dst, placing the last 4 bits of val after every 4 bits copied.\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nr0: [output] dst\nr1: src\nr2: len (in bytes)\nr3: val",
11181
+ "Copies data from src to dst, interleaving the lower 4 bits of val with every 4 bits copied (if the copied bits are nonzero).\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nFor example, for arbitrary inputs (assuming little-endian byte order)\n src[i] = {76543210 fedcba98}\n {3210} != 0\n {7654} != 0\n {ba98} != 0\n {fedc} != 0\n val & 0xF = {vwxy}\nThe output written to dst will be:\n dst[2*i] = {vwxy7654 vwxy3210}\n dst[2*i+1] = {vwxyfedc vwxyba98}\n\nIf any 4-bit nibble is 0, the corresponding byte written to dst is interleaved with 0 rather than the low bits of val. For example, if 'z' represents a 0 bit, given the inputs:\n src[i] = {zzzz3210 fedczzzz}\n val & 0xF = {vwxy}\nThe output written to dst will be:\n dst[2*i] = {zzzzzzzz vwxy3210}\n dst[2*i+1] = {vwxyfedc zzzzzzzz}\n\nr0: [output] dst (2 * len bytes long)\nr1: src (len bytes long)\nr2: len (in bytes, must be even)\nr3: val",
11182
+ None,
11183
+ )
11184
+
11185
+ CopyAndInterleave0 = Symbol(
11186
+ [0xB0],
11187
+ [0x20B4C90],
11188
+ None,
11189
+ "CopyAndInterleave0",
11190
+ "Equivalent to CopyAndInterleave with an interleaved value of 0.\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nFor example, for arbitrary input (assuming little-endian byte order):\n src[i] = {76543210 fedcba98}\nThen the output written to dst will be (where 'z' is a 0 bit):\n dst[2*i] = {zzzz7654 zzzz3210}\n dst[2*i+1] = {zzzzfedc zzzzba98}\n\nr0: [output] dst (2 * len bytes long)\nr1: src (len bytes long)\nr2: len (in bytes, must be even)",
11128
11191
  None,
11129
11192
  )
11130
11193
 
@@ -11376,7 +11439,7 @@ class JpItcmFunctions:
11376
11439
  [0x20B700C],
11377
11440
  None,
11378
11441
  "AiMovement",
11379
- "Used by the AI to determine the direction in which a monster should move\n\nr0: Entity pointer\nr1: ?",
11442
+ "Used by the AI to determine the direction in which a monster should move\n\nr0: Entity pointer\nr1: Boolean value. If the monster becomes terrified, this flag determines whether the 'poof' visual effect will show.",
11380
11443
  None,
11381
11444
  )
11382
11445
 
@@ -25876,7 +25939,7 @@ class JpOverlay29Functions:
25876
25939
  [0x2303234],
25877
25940
  None,
25878
25941
  "NoGastroAcidStatus",
25879
- "Checks if a monster does not have the Gastro Acid status.\n\nr0: entity pointer\nreturn: bool",
25942
+ "Checks if a monster does not have the Gastro Acid status.\n\nr0: entity pointer\nr1: ability ID (unused)\nreturn: bool",
25880
25943
  None,
25881
25944
  )
25882
25945
 
@@ -28148,6 +28211,15 @@ class JpOverlay29Functions:
28148
28211
  None,
28149
28212
  )
28150
28213
 
28214
+ BuildMoveTargetList = Symbol(
28215
+ None,
28216
+ None,
28217
+ None,
28218
+ "BuildMoveTargetList",
28219
+ "Builds the list of targets of a given move for a given user\n\nr0: [output] Buffer where the resulting list should be stored\nr1: Pointer to entity using the move\nr2: Pointer to move data",
28220
+ None,
28221
+ )
28222
+
28151
28223
  IsHyperBeamVariant = Symbol(
28152
28224
  [0x480E4],
28153
28225
  [0x23259C4],
@@ -28288,7 +28360,7 @@ class JpOverlay29Functions:
28288
28360
  [0x232FC60],
28289
28361
  None,
28290
28362
  "ExecuteMoveEffect",
28291
- "Handles the effects that happen after a move is used. Includes a loop that is run for each target, mutiple ability checks and the giant switch statement that executes the effect of the move used given its ID.\n\nr0: pointer to some struct\nr1: attacker pointer\nr2: pointer to move data\nr3: ?\nstack[0]: ?",
28363
+ "Handles the effects that happen after a move is used. Includes a loop that is run for each target, mutiple ability checks and the giant switch statement that executes the effect of the move used given its ID.\n\nr0: pointer to list of targets\nr1: attacker pointer\nr2: pointer to move data\nr3: ?\nstack[0]: ?",
28292
28364
  None,
28293
28365
  )
28294
28366
 
@@ -740,7 +740,7 @@ class JpItcmArm9Functions:
740
740
  None,
741
741
  None,
742
742
  "TaskProcBoot",
743
- "Probably related to booting the game?\n\nThis function prints the debug message 'task proc boot'.\n\nNo params.",
743
+ "Boot the game and run the main loop. Use dynamic code dispatch to run code depending on the context (like dungeon mode, ground mode, menu mode, etc.).\n\nThis function prints the debug message 'task proc boot'.\n\nNo params.",
744
744
  None,
745
745
  )
746
746
 
@@ -3651,6 +3651,24 @@ class JpItcmArm9Functions:
3651
3651
  None,
3652
3652
  )
3653
3653
 
3654
+ ExecuteCopyToFlatVramCommand = Symbol(
3655
+ None,
3656
+ None,
3657
+ None,
3658
+ "ExecuteCopyToFlatVramCommand",
3659
+ "Immediately execute the command contained in a copy_to_obj_vram_order struct, copying content as described.\n\nr0: command",
3660
+ None,
3661
+ )
3662
+
3663
+ DecodeFragmentByteAssemblyTable = Symbol(
3664
+ None,
3665
+ None,
3666
+ None,
3667
+ "DecodeFragmentByteAssemblyTable",
3668
+ "Decode the sprite texture stored in each fragment byte assembly entry into the dst output, until the final one is reached.\n\nr0: pointer to array of fragment byte assembly entry, final (otherwise unused) one should have byte_amount = 0\nr1: dst\nreturn: number of decoded bytes",
3669
+ None,
3670
+ )
3671
+
3654
3672
  CopyAndInterleaveWrapper = Symbol(
3655
3673
  None,
3656
3674
  None,
@@ -3908,7 +3926,43 @@ class JpItcmArm9Functions:
3908
3926
  None,
3909
3927
  None,
3910
3928
  "ProcessWte",
3911
- "Prepare a WTE data to be loaded into VRAM. Seems to need to be called with another undocumented function (at 0x0201e1d8 (EU))\nIt skips the texture and/or the palette if missing from the file. The texture VRAM has 128KiB of space, and palette has 16KiB.\nThe true palette VRAM offset will be upper_part*0x100+lower_part\n\nThis may or may not be the function that adds to the queue so it can be added during VBlank.\n\nr0: pointer to the WTE file header loaded in memory\nr1: where the WTE texture will be loaded in the VRAM (from 0 to 0x1FFFF)\nr2: upper part of the palette VRAM\nr3: lower part of the palette VRAM",
3929
+ "Prepare and plan a WTE data to be loaded into VRAM.\nIt skips the texture and/or the palette if missing from the file. The texture VRAM has 128KiB of space, and palette has 16KiB.\nThe true palette VRAM offset will be upper_part*0x100+lower_part.\nWill ensure it gets copied next time PerformPlannedTextureVramTransfer is called by the game.\nWill not automatically free the data once done. That can be done with DelayWteFree, which seems systematically called in the game’s code.\n\nr0: pointer to the WTE file header loaded in memory\nr1: where the WTE texture will be loaded in the VRAM (from 0 to 0x1FFFF)\nr2: upper part of the palette VRAM\nr3: lower part of the palette VRAM",
3930
+ None,
3931
+ )
3932
+
3933
+ DelayWteFree = Symbol(
3934
+ None,
3935
+ None,
3936
+ None,
3937
+ "DelayWteFree",
3938
+ "Add a command to free the input WTE handle once all previously registered commands that would edit the texture VRAM have been executed.\nAlso nullify the structure’s two pointers.\nThe error caused by the lack of place to store the command is ignored.\n\nr0: wte handle to eventually free",
3939
+ None,
3940
+ )
3941
+
3942
+ ResetPlannedVramTransfer = Symbol(
3943
+ None,
3944
+ None,
3945
+ None,
3946
+ "ResetPlannedVramTransfer",
3947
+ "Reset the command array of input container\nDoes not reset its other field\n\nr0: the container to reset",
3948
+ None,
3949
+ )
3950
+
3951
+ PlanCopyTextureToTextureVram = Symbol(
3952
+ None,
3953
+ None,
3954
+ None,
3955
+ "PlanCopyTextureToTextureVram",
3956
+ "Add a command in the container (r1) that will be executed later by PerformPlannedTextureVramTransfer to copy part of the RAM into the texture VRAM (or free the source allocated memory depending of the specified type of command).\nCheck for overflow. If an overflow would occur, do not add the command to the container, and return -1 instead.\n\nr0: Container that contain the command list to add to\nr1: pointer to the bytes to be copied in CPU-accessible RAM\nr2: offset to copy too in texture VRAM\nr3: number of bytes to copy\nstack[0]: type of command to perform",
3957
+ None,
3958
+ )
3959
+
3960
+ PerformPlannedTextureVramTransfer = Symbol(
3961
+ None,
3962
+ None,
3963
+ None,
3964
+ "PerformPlannedTextureVramTransfer",
3965
+ "Execute the texture VRAM edition command of the input container. Does not reset it, or alter its state in any way.\n\nr0: container that contains the command list to execute",
3912
3966
  None,
3913
3967
  )
3914
3968
 
@@ -11063,7 +11117,16 @@ class JpItcmItcmFunctions:
11063
11117
  [0x1FF8000],
11064
11118
  None,
11065
11119
  "CopyAndInterleave",
11066
- "Copies data from src to dst, placing the last 4 bits of val after every 4 bits copied.\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nr0: [output] dst\nr1: src\nr2: len (in bytes)\nr3: val",
11120
+ "Copies data from src to dst, interleaving the lower 4 bits of val with every 4 bits copied (if the copied bits are nonzero).\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nFor example, for arbitrary inputs (assuming little-endian byte order)\n src[i] = {76543210 fedcba98}\n {3210} != 0\n {7654} != 0\n {ba98} != 0\n {fedc} != 0\n val & 0xF = {vwxy}\nThe output written to dst will be:\n dst[2*i] = {vwxy7654 vwxy3210}\n dst[2*i+1] = {vwxyfedc vwxyba98}\n\nIf any 4-bit nibble is 0, the corresponding byte written to dst is interleaved with 0 rather than the low bits of val. For example, if 'z' represents a 0 bit, given the inputs:\n src[i] = {zzzz3210 fedczzzz}\n val & 0xF = {vwxy}\nThe output written to dst will be:\n dst[2*i] = {zzzzzzzz vwxy3210}\n dst[2*i+1] = {vwxyfedc zzzzzzzz}\n\nr0: [output] dst (2 * len bytes long)\nr1: src (len bytes long)\nr2: len (in bytes, must be even)\nr3: val",
11121
+ None,
11122
+ )
11123
+
11124
+ CopyAndInterleave0 = Symbol(
11125
+ [0xB0],
11126
+ [0x1FF80B0],
11127
+ None,
11128
+ "CopyAndInterleave0",
11129
+ "Equivalent to CopyAndInterleave with an interleaved value of 0.\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nFor example, for arbitrary input (assuming little-endian byte order):\n src[i] = {76543210 fedcba98}\nThen the output written to dst will be (where 'z' is a 0 bit):\n dst[2*i] = {zzzz7654 zzzz3210}\n dst[2*i+1] = {zzzzfedc zzzzba98}\n\nr0: [output] dst (2 * len bytes long)\nr1: src (len bytes long)\nr2: len (in bytes, must be even)",
11067
11130
  None,
11068
11131
  )
11069
11132
 
@@ -11315,7 +11378,7 @@ class JpItcmItcmFunctions:
11315
11378
  [0x1FFA42C],
11316
11379
  None,
11317
11380
  "AiMovement",
11318
- "Used by the AI to determine the direction in which a monster should move\n\nr0: Entity pointer\nr1: ?",
11381
+ "Used by the AI to determine the direction in which a monster should move\n\nr0: Entity pointer\nr1: Boolean value. If the monster becomes terrified, this flag determines whether the 'poof' visual effect will show.",
11319
11382
  None,
11320
11383
  )
11321
11384
 
@@ -25310,7 +25373,7 @@ class JpItcmOverlay29Functions:
25310
25373
  None,
25311
25374
  None,
25312
25375
  "NoGastroAcidStatus",
25313
- "Checks if a monster does not have the Gastro Acid status.\n\nr0: entity pointer\nreturn: bool",
25376
+ "Checks if a monster does not have the Gastro Acid status.\n\nr0: entity pointer\nr1: ability ID (unused)\nreturn: bool",
25314
25377
  None,
25315
25378
  )
25316
25379
 
@@ -27582,6 +27645,15 @@ class JpItcmOverlay29Functions:
27582
27645
  None,
27583
27646
  )
27584
27647
 
27648
+ BuildMoveTargetList = Symbol(
27649
+ None,
27650
+ None,
27651
+ None,
27652
+ "BuildMoveTargetList",
27653
+ "Builds the list of targets of a given move for a given user\n\nr0: [output] Buffer where the resulting list should be stored\nr1: Pointer to entity using the move\nr2: Pointer to move data",
27654
+ None,
27655
+ )
27656
+
27585
27657
  IsHyperBeamVariant = Symbol(
27586
27658
  None,
27587
27659
  None,
@@ -27722,7 +27794,7 @@ class JpItcmOverlay29Functions:
27722
27794
  None,
27723
27795
  None,
27724
27796
  "ExecuteMoveEffect",
27725
- "Handles the effects that happen after a move is used. Includes a loop that is run for each target, mutiple ability checks and the giant switch statement that executes the effect of the move used given its ID.\n\nr0: pointer to some struct\nr1: attacker pointer\nr2: pointer to move data\nr3: ?\nstack[0]: ?",
27797
+ "Handles the effects that happen after a move is used. Includes a loop that is run for each target, mutiple ability checks and the giant switch statement that executes the effect of the move used given its ID.\n\nr0: pointer to list of targets\nr1: attacker pointer\nr2: pointer to move data\nr3: ?\nstack[0]: ?",
27726
27798
  None,
27727
27799
  )
27728
27800
 
pmdsky_debug_py/na.py CHANGED
@@ -752,7 +752,7 @@ class NaArm9Functions:
752
752
  [0x2003328],
753
753
  None,
754
754
  "TaskProcBoot",
755
- "Probably related to booting the game?\n\nThis function prints the debug message 'task proc boot'.\n\nNo params.",
755
+ "Boot the game and run the main loop. Use dynamic code dispatch to run code depending on the context (like dungeon mode, ground mode, menu mode, etc.).\n\nThis function prints the debug message 'task proc boot'.\n\nNo params.",
756
756
  None,
757
757
  )
758
758
 
@@ -3697,6 +3697,24 @@ class NaArm9Functions:
3697
3697
  None,
3698
3698
  )
3699
3699
 
3700
+ ExecuteCopyToFlatVramCommand = Symbol(
3701
+ [0x1AB0C],
3702
+ [0x201AB0C],
3703
+ None,
3704
+ "ExecuteCopyToFlatVramCommand",
3705
+ "Immediately execute the command contained in a copy_to_obj_vram_order struct, copying content as described.\n\nr0: command",
3706
+ None,
3707
+ )
3708
+
3709
+ DecodeFragmentByteAssemblyTable = Symbol(
3710
+ [0x1ABAC],
3711
+ [0x201ABAC],
3712
+ None,
3713
+ "DecodeFragmentByteAssemblyTable",
3714
+ "Decode the sprite texture stored in each fragment byte assembly entry into the dst output, until the final one is reached.\n\nr0: pointer to array of fragment byte assembly entry, final (otherwise unused) one should have byte_amount = 0\nr1: dst\nreturn: number of decoded bytes",
3715
+ None,
3716
+ )
3717
+
3700
3718
  CopyAndInterleaveWrapper = Symbol(
3701
3719
  [0x1BFF0],
3702
3720
  [0x201BFF0],
@@ -3954,7 +3972,43 @@ class NaArm9Functions:
3954
3972
  [0x201E0B0],
3955
3973
  None,
3956
3974
  "ProcessWte",
3957
- "Prepare a WTE data to be loaded into VRAM. Seems to need to be called with another undocumented function (at 0x0201e1d8 (EU))\nIt skips the texture and/or the palette if missing from the file. The texture VRAM has 128KiB of space, and palette has 16KiB.\nThe true palette VRAM offset will be upper_part*0x100+lower_part\n\nThis may or may not be the function that adds to the queue so it can be added during VBlank.\n\nr0: pointer to the WTE file header loaded in memory\nr1: where the WTE texture will be loaded in the VRAM (from 0 to 0x1FFFF)\nr2: upper part of the palette VRAM\nr3: lower part of the palette VRAM",
3975
+ "Prepare and plan a WTE data to be loaded into VRAM.\nIt skips the texture and/or the palette if missing from the file. The texture VRAM has 128KiB of space, and palette has 16KiB.\nThe true palette VRAM offset will be upper_part*0x100+lower_part.\nWill ensure it gets copied next time PerformPlannedTextureVramTransfer is called by the game.\nWill not automatically free the data once done. That can be done with DelayWteFree, which seems systematically called in the game’s code.\n\nr0: pointer to the WTE file header loaded in memory\nr1: where the WTE texture will be loaded in the VRAM (from 0 to 0x1FFFF)\nr2: upper part of the palette VRAM\nr3: lower part of the palette VRAM",
3976
+ None,
3977
+ )
3978
+
3979
+ DelayWteFree = Symbol(
3980
+ [0x1E13C],
3981
+ [0x201E13C],
3982
+ None,
3983
+ "DelayWteFree",
3984
+ "Add a command to free the input WTE handle once all previously registered commands that would edit the texture VRAM have been executed.\nAlso nullify the structure’s two pointers.\nThe error caused by the lack of place to store the command is ignored.\n\nr0: wte handle to eventually free",
3985
+ None,
3986
+ )
3987
+
3988
+ ResetPlannedVramTransfer = Symbol(
3989
+ [0x1E1D4],
3990
+ [0x201E1D4],
3991
+ None,
3992
+ "ResetPlannedVramTransfer",
3993
+ "Reset the command array of input container\nDoes not reset its other field\n\nr0: the container to reset",
3994
+ None,
3995
+ )
3996
+
3997
+ PlanCopyTextureToTextureVram = Symbol(
3998
+ [0x1E1E0],
3999
+ [0x201E1E0],
4000
+ None,
4001
+ "PlanCopyTextureToTextureVram",
4002
+ "Add a command in the container (r1) that will be executed later by PerformPlannedTextureVramTransfer to copy part of the RAM into the texture VRAM (or free the source allocated memory depending of the specified type of command).\nCheck for overflow. If an overflow would occur, do not add the command to the container, and return -1 instead.\n\nr0: Container that contain the command list to add to\nr1: pointer to the bytes to be copied in CPU-accessible RAM\nr2: offset to copy too in texture VRAM\nr3: number of bytes to copy\nstack[0]: type of command to perform",
4003
+ None,
4004
+ )
4005
+
4006
+ PerformPlannedTextureVramTransfer = Symbol(
4007
+ [0x1E230],
4008
+ [0x201E230],
4009
+ None,
4010
+ "PerformPlannedTextureVramTransfer",
4011
+ "Execute the texture VRAM edition command of the input container. Does not reset it, or alter its state in any way.\n\nr0: container that contains the command list to execute",
3958
4012
  None,
3959
4013
  )
3960
4014
 
@@ -11129,7 +11183,16 @@ class NaItcmFunctions:
11129
11183
  [0x20B3380],
11130
11184
  None,
11131
11185
  "CopyAndInterleave",
11132
- "Copies data from src to dst, placing the last 4 bits of val after every 4 bits copied.\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nr0: [output] dst\nr1: src\nr2: len (in bytes)\nr3: val",
11186
+ "Copies data from src to dst, interleaving the lower 4 bits of val with every 4 bits copied (if the copied bits are nonzero).\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nFor example, for arbitrary inputs (assuming little-endian byte order)\n src[i] = {76543210 fedcba98}\n {3210} != 0\n {7654} != 0\n {ba98} != 0\n {fedc} != 0\n val & 0xF = {vwxy}\nThe output written to dst will be:\n dst[2*i] = {vwxy7654 vwxy3210}\n dst[2*i+1] = {vwxyfedc vwxyba98}\n\nIf any 4-bit nibble is 0, the corresponding byte written to dst is interleaved with 0 rather than the low bits of val. For example, if 'z' represents a 0 bit, given the inputs:\n src[i] = {zzzz3210 fedczzzz}\n val & 0xF = {vwxy}\nThe output written to dst will be:\n dst[2*i] = {zzzzzzzz vwxy3210}\n dst[2*i+1] = {vwxyfedc zzzzzzzz}\n\nr0: [output] dst (2 * len bytes long)\nr1: src (len bytes long)\nr2: len (in bytes, must be even)\nr3: val",
11187
+ None,
11188
+ )
11189
+
11190
+ CopyAndInterleave0 = Symbol(
11191
+ [0xB0],
11192
+ [0x20B3430],
11193
+ None,
11194
+ "CopyAndInterleave0",
11195
+ "Equivalent to CopyAndInterleave with an interleaved value of 0.\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nFor example, for arbitrary input (assuming little-endian byte order):\n src[i] = {76543210 fedcba98}\nThen the output written to dst will be (where 'z' is a 0 bit):\n dst[2*i] = {zzzz7654 zzzz3210}\n dst[2*i+1] = {zzzzfedc zzzzba98}\n\nr0: [output] dst (2 * len bytes long)\nr1: src (len bytes long)\nr2: len (in bytes, must be even)",
11133
11196
  None,
11134
11197
  )
11135
11198
 
@@ -11381,7 +11444,7 @@ class NaItcmFunctions:
11381
11444
  [0x20B5744],
11382
11445
  None,
11383
11446
  "AiMovement",
11384
- "Used by the AI to determine the direction in which a monster should move\n\nr0: Entity pointer\nr1: ?",
11447
+ "Used by the AI to determine the direction in which a monster should move\n\nr0: Entity pointer\nr1: Boolean value. If the monster becomes terrified, this flag determines whether the 'poof' visual effect will show.",
11385
11448
  None,
11386
11449
  )
11387
11450
 
@@ -25883,7 +25946,7 @@ class NaOverlay29Functions:
25883
25946
  [0x2301CDC],
25884
25947
  None,
25885
25948
  "NoGastroAcidStatus",
25886
- "Checks if a monster does not have the Gastro Acid status.\n\nr0: entity pointer\nreturn: bool",
25949
+ "Checks if a monster does not have the Gastro Acid status.\n\nr0: entity pointer\nr1: ability ID (unused)\nreturn: bool",
25887
25950
  None,
25888
25951
  )
25889
25952
 
@@ -28155,6 +28218,15 @@ class NaOverlay29Functions:
28155
28218
  None,
28156
28219
  )
28157
28220
 
28221
+ BuildMoveTargetList = Symbol(
28222
+ [0x47DF0],
28223
+ [0x2324030],
28224
+ None,
28225
+ "BuildMoveTargetList",
28226
+ "Builds the list of targets of a given move for a given user\n\nr0: [output] Buffer where the resulting list should be stored\nr1: Pointer to entity using the move\nr2: Pointer to move data",
28227
+ None,
28228
+ )
28229
+
28158
28230
  IsHyperBeamVariant = Symbol(
28159
28231
  [0x482F4],
28160
28232
  [0x2324534],
@@ -28295,7 +28367,7 @@ class NaOverlay29Functions:
28295
28367
  [0x232E864],
28296
28368
  None,
28297
28369
  "ExecuteMoveEffect",
28298
- "Handles the effects that happen after a move is used. Includes a loop that is run for each target, mutiple ability checks and the giant switch statement that executes the effect of the move used given its ID.\n\nr0: pointer to some struct\nr1: attacker pointer\nr2: pointer to move data\nr3: ?\nstack[0]: ?",
28370
+ "Handles the effects that happen after a move is used. Includes a loop that is run for each target, mutiple ability checks and the giant switch statement that executes the effect of the move used given its ID.\n\nr0: pointer to list of targets\nr1: attacker pointer\nr2: pointer to move data\nr3: ?\nstack[0]: ?",
28299
28371
  None,
28300
28372
  )
28301
28373
 
@@ -740,7 +740,7 @@ class NaItcmArm9Functions:
740
740
  None,
741
741
  None,
742
742
  "TaskProcBoot",
743
- "Probably related to booting the game?\n\nThis function prints the debug message 'task proc boot'.\n\nNo params.",
743
+ "Boot the game and run the main loop. Use dynamic code dispatch to run code depending on the context (like dungeon mode, ground mode, menu mode, etc.).\n\nThis function prints the debug message 'task proc boot'.\n\nNo params.",
744
744
  None,
745
745
  )
746
746
 
@@ -3651,6 +3651,24 @@ class NaItcmArm9Functions:
3651
3651
  None,
3652
3652
  )
3653
3653
 
3654
+ ExecuteCopyToFlatVramCommand = Symbol(
3655
+ None,
3656
+ None,
3657
+ None,
3658
+ "ExecuteCopyToFlatVramCommand",
3659
+ "Immediately execute the command contained in a copy_to_obj_vram_order struct, copying content as described.\n\nr0: command",
3660
+ None,
3661
+ )
3662
+
3663
+ DecodeFragmentByteAssemblyTable = Symbol(
3664
+ None,
3665
+ None,
3666
+ None,
3667
+ "DecodeFragmentByteAssemblyTable",
3668
+ "Decode the sprite texture stored in each fragment byte assembly entry into the dst output, until the final one is reached.\n\nr0: pointer to array of fragment byte assembly entry, final (otherwise unused) one should have byte_amount = 0\nr1: dst\nreturn: number of decoded bytes",
3669
+ None,
3670
+ )
3671
+
3654
3672
  CopyAndInterleaveWrapper = Symbol(
3655
3673
  None,
3656
3674
  None,
@@ -3908,7 +3926,43 @@ class NaItcmArm9Functions:
3908
3926
  None,
3909
3927
  None,
3910
3928
  "ProcessWte",
3911
- "Prepare a WTE data to be loaded into VRAM. Seems to need to be called with another undocumented function (at 0x0201e1d8 (EU))\nIt skips the texture and/or the palette if missing from the file. The texture VRAM has 128KiB of space, and palette has 16KiB.\nThe true palette VRAM offset will be upper_part*0x100+lower_part\n\nThis may or may not be the function that adds to the queue so it can be added during VBlank.\n\nr0: pointer to the WTE file header loaded in memory\nr1: where the WTE texture will be loaded in the VRAM (from 0 to 0x1FFFF)\nr2: upper part of the palette VRAM\nr3: lower part of the palette VRAM",
3929
+ "Prepare and plan a WTE data to be loaded into VRAM.\nIt skips the texture and/or the palette if missing from the file. The texture VRAM has 128KiB of space, and palette has 16KiB.\nThe true palette VRAM offset will be upper_part*0x100+lower_part.\nWill ensure it gets copied next time PerformPlannedTextureVramTransfer is called by the game.\nWill not automatically free the data once done. That can be done with DelayWteFree, which seems systematically called in the game’s code.\n\nr0: pointer to the WTE file header loaded in memory\nr1: where the WTE texture will be loaded in the VRAM (from 0 to 0x1FFFF)\nr2: upper part of the palette VRAM\nr3: lower part of the palette VRAM",
3930
+ None,
3931
+ )
3932
+
3933
+ DelayWteFree = Symbol(
3934
+ None,
3935
+ None,
3936
+ None,
3937
+ "DelayWteFree",
3938
+ "Add a command to free the input WTE handle once all previously registered commands that would edit the texture VRAM have been executed.\nAlso nullify the structure’s two pointers.\nThe error caused by the lack of place to store the command is ignored.\n\nr0: wte handle to eventually free",
3939
+ None,
3940
+ )
3941
+
3942
+ ResetPlannedVramTransfer = Symbol(
3943
+ None,
3944
+ None,
3945
+ None,
3946
+ "ResetPlannedVramTransfer",
3947
+ "Reset the command array of input container\nDoes not reset its other field\n\nr0: the container to reset",
3948
+ None,
3949
+ )
3950
+
3951
+ PlanCopyTextureToTextureVram = Symbol(
3952
+ None,
3953
+ None,
3954
+ None,
3955
+ "PlanCopyTextureToTextureVram",
3956
+ "Add a command in the container (r1) that will be executed later by PerformPlannedTextureVramTransfer to copy part of the RAM into the texture VRAM (or free the source allocated memory depending of the specified type of command).\nCheck for overflow. If an overflow would occur, do not add the command to the container, and return -1 instead.\n\nr0: Container that contain the command list to add to\nr1: pointer to the bytes to be copied in CPU-accessible RAM\nr2: offset to copy too in texture VRAM\nr3: number of bytes to copy\nstack[0]: type of command to perform",
3957
+ None,
3958
+ )
3959
+
3960
+ PerformPlannedTextureVramTransfer = Symbol(
3961
+ None,
3962
+ None,
3963
+ None,
3964
+ "PerformPlannedTextureVramTransfer",
3965
+ "Execute the texture VRAM edition command of the input container. Does not reset it, or alter its state in any way.\n\nr0: container that contains the command list to execute",
3912
3966
  None,
3913
3967
  )
3914
3968
 
@@ -11063,7 +11117,16 @@ class NaItcmItcmFunctions:
11063
11117
  [0x1FF8000],
11064
11118
  None,
11065
11119
  "CopyAndInterleave",
11066
- "Copies data from src to dst, placing the last 4 bits of val after every 4 bits copied.\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nr0: [output] dst\nr1: src\nr2: len (in bytes)\nr3: val",
11120
+ "Copies data from src to dst, interleaving the lower 4 bits of val with every 4 bits copied (if the copied bits are nonzero).\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nFor example, for arbitrary inputs (assuming little-endian byte order)\n src[i] = {76543210 fedcba98}\n {3210} != 0\n {7654} != 0\n {ba98} != 0\n {fedc} != 0\n val & 0xF = {vwxy}\nThe output written to dst will be:\n dst[2*i] = {vwxy7654 vwxy3210}\n dst[2*i+1] = {vwxyfedc vwxyba98}\n\nIf any 4-bit nibble is 0, the corresponding byte written to dst is interleaved with 0 rather than the low bits of val. For example, if 'z' represents a 0 bit, given the inputs:\n src[i] = {zzzz3210 fedczzzz}\n val & 0xF = {vwxy}\nThe output written to dst will be:\n dst[2*i] = {zzzzzzzz vwxy3210}\n dst[2*i+1] = {vwxyfedc zzzzzzzz}\n\nr0: [output] dst (2 * len bytes long)\nr1: src (len bytes long)\nr2: len (in bytes, must be even)\nr3: val",
11121
+ None,
11122
+ )
11123
+
11124
+ CopyAndInterleave0 = Symbol(
11125
+ [0xB0],
11126
+ [0x1FF80B0],
11127
+ None,
11128
+ "CopyAndInterleave0",
11129
+ "Equivalent to CopyAndInterleave with an interleaved value of 0.\n\nIn total, the number of bytes copied from src will be len, while the number of bytes pasted will be 2 * len.\n\nFor example, for arbitrary input (assuming little-endian byte order):\n src[i] = {76543210 fedcba98}\nThen the output written to dst will be (where 'z' is a 0 bit):\n dst[2*i] = {zzzz7654 zzzz3210}\n dst[2*i+1] = {zzzzfedc zzzzba98}\n\nr0: [output] dst (2 * len bytes long)\nr1: src (len bytes long)\nr2: len (in bytes, must be even)",
11067
11130
  None,
11068
11131
  )
11069
11132
 
@@ -11315,7 +11378,7 @@ class NaItcmItcmFunctions:
11315
11378
  [0x1FFA3C4],
11316
11379
  None,
11317
11380
  "AiMovement",
11318
- "Used by the AI to determine the direction in which a monster should move\n\nr0: Entity pointer\nr1: ?",
11381
+ "Used by the AI to determine the direction in which a monster should move\n\nr0: Entity pointer\nr1: Boolean value. If the monster becomes terrified, this flag determines whether the 'poof' visual effect will show.",
11319
11382
  None,
11320
11383
  )
11321
11384
 
@@ -25310,7 +25373,7 @@ class NaItcmOverlay29Functions:
25310
25373
  None,
25311
25374
  None,
25312
25375
  "NoGastroAcidStatus",
25313
- "Checks if a monster does not have the Gastro Acid status.\n\nr0: entity pointer\nreturn: bool",
25376
+ "Checks if a monster does not have the Gastro Acid status.\n\nr0: entity pointer\nr1: ability ID (unused)\nreturn: bool",
25314
25377
  None,
25315
25378
  )
25316
25379
 
@@ -27582,6 +27645,15 @@ class NaItcmOverlay29Functions:
27582
27645
  None,
27583
27646
  )
27584
27647
 
27648
+ BuildMoveTargetList = Symbol(
27649
+ None,
27650
+ None,
27651
+ None,
27652
+ "BuildMoveTargetList",
27653
+ "Builds the list of targets of a given move for a given user\n\nr0: [output] Buffer where the resulting list should be stored\nr1: Pointer to entity using the move\nr2: Pointer to move data",
27654
+ None,
27655
+ )
27656
+
27585
27657
  IsHyperBeamVariant = Symbol(
27586
27658
  None,
27587
27659
  None,
@@ -27722,7 +27794,7 @@ class NaItcmOverlay29Functions:
27722
27794
  None,
27723
27795
  None,
27724
27796
  "ExecuteMoveEffect",
27725
- "Handles the effects that happen after a move is used. Includes a loop that is run for each target, mutiple ability checks and the giant switch statement that executes the effect of the move used given its ID.\n\nr0: pointer to some struct\nr1: attacker pointer\nr2: pointer to move data\nr3: ?\nstack[0]: ?",
27797
+ "Handles the effects that happen after a move is used. Includes a loop that is run for each target, mutiple ability checks and the giant switch statement that executes the effect of the move used given its ID.\n\nr0: pointer to list of targets\nr1: attacker pointer\nr2: pointer to move data\nr3: ?\nstack[0]: ?",
27726
27798
  None,
27727
27799
  )
27728
27800
 
@@ -2097,6 +2097,16 @@ class Arm9FunctionsProtocol(Protocol):
2097
2097
  None,
2098
2098
  ]
2099
2099
 
2100
+ ExecuteCopyToFlatVramCommand: Symbol[
2101
+ Optional[list[int]],
2102
+ None,
2103
+ ]
2104
+
2105
+ DecodeFragmentByteAssemblyTable: Symbol[
2106
+ Optional[list[int]],
2107
+ None,
2108
+ ]
2109
+
2100
2110
  CopyAndInterleaveWrapper: Symbol[
2101
2111
  Optional[list[int]],
2102
2112
  None,
@@ -2242,6 +2252,26 @@ class Arm9FunctionsProtocol(Protocol):
2242
2252
  None,
2243
2253
  ]
2244
2254
 
2255
+ DelayWteFree: Symbol[
2256
+ Optional[list[int]],
2257
+ None,
2258
+ ]
2259
+
2260
+ ResetPlannedVramTransfer: Symbol[
2261
+ Optional[list[int]],
2262
+ None,
2263
+ ]
2264
+
2265
+ PlanCopyTextureToTextureVram: Symbol[
2266
+ Optional[list[int]],
2267
+ None,
2268
+ ]
2269
+
2270
+ PerformPlannedTextureVramTransfer: Symbol[
2271
+ Optional[list[int]],
2272
+ None,
2273
+ ]
2274
+
2245
2275
  GeomSetTexImageParam: Symbol[
2246
2276
  Optional[list[int]],
2247
2277
  None,
@@ -6250,6 +6280,11 @@ class ItcmFunctionsProtocol(Protocol):
6250
6280
  None,
6251
6281
  ]
6252
6282
 
6283
+ CopyAndInterleave0: Symbol[
6284
+ list[int],
6285
+ None,
6286
+ ]
6287
+
6253
6288
  Render3dSetTextureParams: Symbol[
6254
6289
  list[int],
6255
6290
  None,
@@ -16760,6 +16795,11 @@ class Overlay29FunctionsProtocol(Protocol):
16760
16795
  None,
16761
16796
  ]
16762
16797
 
16798
+ BuildMoveTargetList: Symbol[
16799
+ Optional[list[int]],
16800
+ None,
16801
+ ]
16802
+
16763
16803
  IsHyperBeamVariant: Symbol[
16764
16804
  Optional[list[int]],
16765
16805
  None,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pmdsky-debug-py
3
- Version: 10.1.4
3
+ Version: 10.1.6
4
4
  Summary: pmdsky-debug symbols for Python.
5
5
  Author-email: Marco 'Capypara' Köpcke <hello@capypara.de>
6
6
  License: MIT
@@ -0,0 +1,14 @@
1
+ pmdsky_debug_py/__init__.py,sha256=xvXjdxEqeoQaaS6ssZYVI9jARzv5M4q6FNwA3Z6fOw4,1831
2
+ pmdsky_debug_py/_release.py,sha256=cnfdgu-Oa_b0nffWNCvtg1RLOZRee5pU17tCxZXDPrU,31
3
+ pmdsky_debug_py/eu.py,sha256=4qD0EOmoHNnRxhp-vsVxq4qDXstvNP46bbsHrYq_p8U,1162660
4
+ pmdsky_debug_py/eu_itcm.py,sha256=tPIHsz2V1JtjcpM2jrNT2d7ochcZxbOI6NBQXaSxslw,1110747
5
+ pmdsky_debug_py/jp.py,sha256=ttSCkHk6vkXeX_QkE2mBpzh-SrVYRqsp9wbCkvZS0GY,1159366
6
+ pmdsky_debug_py/jp_itcm.py,sha256=o8HHByDX9pCy62CyJfMbl6uQArBJ4LFSuzWqI9WQ3Uc,1110737
7
+ pmdsky_debug_py/na.py,sha256=0Fftp-06D2GwHbRYB35RoUAwCrDRmw5LnnZ7EsWgypo,1163617
8
+ pmdsky_debug_py/na_itcm.py,sha256=kzDPiFSSZR937xspLLgLk1Jhbl6TNonXp1LoJFI6J3A,1110747
9
+ pmdsky_debug_py/protocol.py,sha256=-pN0Vxv1ab5sSGW5nL7r0HbVIIM-NuQet3MoRs8Vgjc,340541
10
+ pmdsky_debug_py/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ pmdsky_debug_py-10.1.6.dist-info/METADATA,sha256=hGDd3wCZvq2APytpgd3_MobxAYEqK2WaZnr_XaXx8nY,1375
12
+ pmdsky_debug_py-10.1.6.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
13
+ pmdsky_debug_py-10.1.6.dist-info/top_level.txt,sha256=cqvpcJbud2s8IyBAc1MfCySwniko_6qO5LWSSxNIoXI,16
14
+ pmdsky_debug_py-10.1.6.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.3.0)
2
+ Generator: setuptools (80.3.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,14 +0,0 @@
1
- pmdsky_debug_py/__init__.py,sha256=xvXjdxEqeoQaaS6ssZYVI9jARzv5M4q6FNwA3Z6fOw4,1831
2
- pmdsky_debug_py/_release.py,sha256=8F2h9CgfGZVKysY57dtrggdbfbpRIMmOpXsAt3WQjYc,31
3
- pmdsky_debug_py/eu.py,sha256=1AaBIVyZAK01U_mv9W4h4VojJf-WLlV05BOUTcRpCPY,1158069
4
- pmdsky_debug_py/eu_itcm.py,sha256=f2zloY1eLDwIAMivQPh_JQ3yzk7NsulsyGkagwCwyvw,1106240
5
- pmdsky_debug_py/jp.py,sha256=i30i-j2epjOZpPNyEj7tZUzzFR1ObwFGlKC66K0D3bg,1154787
6
- pmdsky_debug_py/jp_itcm.py,sha256=TrUvu0pGdx8OhVEzCHkNRLiWt3NXY1_cqfKmzvnlevY,1106230
7
- pmdsky_debug_py/na.py,sha256=GeqnC2A_QRGQWnX7qEWKU6F0NwAoPcK6997ukcB-44Y,1159026
8
- pmdsky_debug_py/na_itcm.py,sha256=deHgpgNFg7hDweGl1TyIN0jVDoF_OWDW0UwLg4ZEHQk,1106240
9
- pmdsky_debug_py/protocol.py,sha256=BPehfaS9gfefIHvKCfqBpRn6Epvj-srg-igmVIFAAm8,339846
10
- pmdsky_debug_py/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- pmdsky_debug_py-10.1.4.dist-info/METADATA,sha256=bl2WgcEW5v_h15pfaku67wU0Ym-1-qrAwk1NK1yADBk,1375
12
- pmdsky_debug_py-10.1.4.dist-info/WHEEL,sha256=GHB6lJx2juba1wDgXDNlMTyM13ckjBMKf-OnwgKOCtA,91
13
- pmdsky_debug_py-10.1.4.dist-info/top_level.txt,sha256=cqvpcJbud2s8IyBAc1MfCySwniko_6qO5LWSSxNIoXI,16
14
- pmdsky_debug_py-10.1.4.dist-info/RECORD,,