Author Topic: Touhou Hisoutensoku AIManager + th123_ai - Soku Enhanced AI  (Read 9956 times)

qMyon

  • Chill - just chill
  • Keepin' it vanilla smooth
Touhou Hisoutensoku AIManager + th123_ai - Soku Enhanced AI
« on: October 28, 2011, 02:40:47 PM »
I did see an earlier request for a harder AI for Hisoutensoku, so after some searching, I found this:
http://coolier.sytes.net:8080/th_up4/index.php?id=2655
It's a program which downloads different enhanced AI files from a server on the Internet and enables them to be used in the game.

This tool does not appear to be compatible with the English patch, as it specifically searches for th123.exe, not th123e.exe.

To run it under Hisoutensoku version 1.10, create a text file in the same folder as AIManager and name it SWRSAddr.ini. Copy the following text in and save.

[SWRSName]
SWRS_WINDOW_CLASS=th123_110a
SWRS_WINDOW_TEXT=東方非想天則 ~ 超弩級ギニョルの謎を追え Ver1.10a


[SWRSAddress]
SWRS_ADDR_WEATHER   =   0x008971C0
SWRS_ADDR_DISPLAYWEATHER   =   0x008971C4
SWRS_ADDR_WEATHERCOUNTER   =   0x008971CC
SWRS_ADDR_STAGENUMBER   =   0x008971CE
SWRS_ADDR_TIMECOUNT   =   0x008985D8
SWRS_ADDR_GAMEDATAMGR   =   0x008985DC
SWRS_ADDR_CHAROBJHEADOFS   =   0x40
SWRS_ADDR_CHAROBJTAILOFS   =   0x48
SWRS_ADDR_OBJLISTMGR   =   0x6F8
SWRS_ADDR_OBJPROJOFS   =   0x54
SWRS_ADDR_PBATTLEMGR   =   0x008985E4
SWRS_ADDR_COMMMODE   =   0x00898690
SWRS_ADDR_PNETOBJECT   =   0x008986A0
SWRS_ADDR_1PKEYMAP   =   0x00898940
SWRS_ADDR_2PKEYMAP   =   0x0089912C
SWRS_ADDR_STAGENUMBER2   =   0x00899D0C
SWRS_ADDR_BGMNUMBER   =   0x00899D0D
SWRS_ADDR_LCHARID   =   0x00899D10
SWRS_ADDR_RCHARID   =   0x00899D30
SWRS_ADDR_SCENEID   =   0x008A0044
SWRS_ADDR_ACTIVEFLAG   =   0x008A0F88
SWRS_ADDR_LCHAROFS   =   0x0c
SWRS_ADDR_RCHAROFS   =   0x10
SWRS_ADDR_LPROFOFS   =   0x04
SWRS_ADDR_RPROFOFS   =   0x24
SWRS_ADDR_POINTXOFS   =   0xEC
SWRS_ADDR_POINTYOFS   =   0xF0
SWRS_ADDR_SPEEDXOFS   =   0xF4
SWRS_ADDR_SPEEDYOFS   =   0xF8
SWRS_ADDR_DIRECTIONOFS   =   0x104
SWRS_ADDR_ACTIONIDOFS   =   0x13C
SWRS_ADDR_FRAMECOUNTOFS   =   0x144
SWRS_ADDR_IMAGESTRUCTOFS   =   0x150
SWRS_ADDR_IMAGENUMBEROFS   =   0x0A
SWRS_ADDR_FRAMEFLAGSOFS   =   0x4C
SWRS_ADDR_ATTACKFLAGSOFS   =   0x50
SWRS_ADDR_MOTIONSTRUCTOFS   =   0x158
SWRS_ADDR_HITAREAOFS   =   0x5C
SWRS_ADDR_HPOFS   =   0x184
SWRS_ADDR_HITSTOPOFS   =   0x196
SWRS_ADDR_ATTACKAREACOUNTOFS   =   0x1CB
SWRS_ADDR_HITAREACOUNTOFS   =   0x1CC
SWRS_ADDR_HITAREA2OFS   =   0x1D0
SWRS_ADDR_ATTACKAREA2OFS   =   0x220
SWRS_ADDR_ATTACKAREAOFS   =   0x320
SWRS_ADDR_HITAREAFLAGOFS   =   0x334
SWRS_ADDR_AIRDASHCOUNTOFS   =   0x49B
SWRS_ADDR_REIPOWEROFS   =   0x49E
SWRS_ADDR_MAXREIPOWEROFS   =   0x4A0
SWRS_ADDR_REISTOPROFS   =   0x4A2
SWRS_ADDR_TIMESTOPOFS   =   0x4A8
SWRS_ADDR_CORRECTIONOFS   =   0x4AD
SWRS_ADDR_COMBORATEOFS   =   0x4B0
SWRS_ADDR_COMBOCOUNTOFS   =   0x4B4
SWRS_ADDR_COMBODAMAGEOFS   =   0x4B6
SWRS_ADDR_COMBOLIMITOFS   =   0x4B8
SWRS_ADDR_SPEEDPOWEROFS   =   0x4D0
SWRS_ADDR_HIHISOUOFS   =   0x526
SWRS_ADDR_LIFERECOVERYOFS   =   0x528
SWRS_ADDR_ATTACKPOWEROFS   =   0x530
SWRS_ADDR_DEFENSEPOWEROFS   =   0x534
SWRS_ADDR_GRIMOREOFS   =   0x560
SWRS_ADDR_WINCNTOFS   =   0x573
SWRS_ADDR_CARDGAUGEOFS   =   0x5E4
SWRS_ADDR_CARDCOUNTOFS   =   0x5E6
SWRS_ADDR_HANDCARDBASEOFS   =   0x5EC
SWRS_ADDR_HANDCARDMAXOFS   =   0x5F0
SWRS_ADDR_SELECTCARDOFS   =   0x5F4
SWRS_ADDR_CARDCOUNT2OFS   =   0x5F8
SWRS_ADDR_SKILLLEVELMAPOFS   =   0x6C4
SWRS_ADDR_KEYMGROFS   =   0x750
SWRS_ADDR_KEYMAPOFS   =   0x38
SWRS_ADDR_UTHIWAOFS   =   0x834
SWRS_ADDR_DEFENSEDOLLOFS   =   0x840
SWRS_ADDR_ATTACKSTICKOFS   =   0x844
SWRS_ADDR_RYUUSEIOFS   =   0x84E
SWRS_ADDR_DROPWATEROFS   =   0x850
SWRS_ADDR_DROPWATERTIMEOFS   =   0x852
SWRS_ADDR_SAKUYAWORLDOFS   =   0x890
SWRS_ADDR_PHILOSOPHEROFS   =   0x890
SWRS_ADDR_PRIVATESQOFS   =   0x892
SWRS_ADDR_ORRERYOFS   =   0x892
SWRS_ADDR_MPPOFS   =   0x892
SWRS_ADDR_FIELDREDOFS   =   0x898
SWRS_ADDR_FIELDPURPLEOFS   =   0x89A
SWRS_ADDR_KANAKOOFS   =   0x89C
SWRS_ADDR_SUWAKOOFS   =   0x8A0
SWRS_ADDR_DIAHARDOFS   =   0x8A0
SWRS_ADDR_KOKUSHIOFS   =   0x8A0
SWRS_ADDR_FIELDRED2OFS   =   0x8B2
SWRS_ADDR_TENSEITIMEOFS   =   0x8B4
SWRS_ADDR_TENSEINUMOFS   =   0x8B6
SWRS_ADDR_TEKETENOFS   =   0x8D6
SWRS_ADDR_MUNENOFS   =   0x924


;未使用
SWRS_ADDR_NETUDPOFS   =   0x3BC
SWRS_ADDR_ADRBEGOFS   =   0x4C8
SWRS_ADDR_TOADDROFS   =   0x3F8
SWRS_ADDR_TENSEIONOFS   =   0x8B8
SWRS_ADDR_BTLMODEOFS   =   0x88
SWRS_ADDR_LPROFNAME   =   0x008734C0
SWRS_ADDR_RPROFNAME   =   0x00873CAC

Steps to use:
1. Unpack the archive into your Hisoutensoku directory. I think it still works from anywhere, but just play it safe.
2. Run AIManager.exe. The checkboxes in the window that has now opened represent the characters in the game. Ticking a checkbox will cause only AI files for the ticked character to be shown in the list. Double-click on an entry in the list to select the AI for a character. Even though it's all in Japanese, the character each AI is for should be displayed in the fourth row in the URL. Each AI only works for one character, as far as I know.
3. Before clicking OK, open Hisoutensoku. Create a profile and name it whatever you wish, or use an existing one. Assign controls to that profile so that they don't conflict with the ones you're using.
4. Click OK for the AIManager dialogue box. A new window should open, with its title bar reflecting where you are in Hisoutensoku, e.g. Start Menu, Character Select
5. Create a vs Player match. Unfortunately, this tool does not work with other modes. Assign the profile you made earlier to the Player 2 slot, and assign the character whose AI you chose to the Player 2 slot.
6. Start the match, and watch the computer gain new levels of competency. The in-game difficulty settings now have no effect, so don't bother with changing them.

If anyone is able to actually read what the bottom row of buttons in the manager does, please share it with the rest of us.