Changing the grey Torizo facing animations during the standing part .

Started by Vener, November 28, 2017, 01:35:53 PM

Previous topic - Next topic

Vener

I think that all is in the title .

For things like that , Scyzer say to you :
1 - Change the wanted enemy index to 0 in a room (Done)
2 - Run the game in this room , with a write-check for the RAM adresse 7E:0F92 (Done)

I got this :

$AA/C6F0 FE 92 0F    INC $0F92,x[$AA:0F92]   A:2800 X:0000 Y:0000 P:envmxdizc
$AA/C6F3 FE 92 0F    INC $0F92,x[$AA:0F92]   A:2800 X:0000 Y:0000 P:eNvmxdizc
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B88F X:0000 Y:B88B P:eNvmxdizc\
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B89C X:0000 Y:B898 P:eNvmxdizc
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B8A9 X:0000 Y:B8A5 P:eNvmxdizc  (Still behind the crumble chozo PLM,and slowly blinking eyes)
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B8B6 X:0000 Y:B8B2 P:eNvmxdizc
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B8C3 X:0000 Y:B8BF P:eNvmxdizc/
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B8CB X:0000 Y:B8C7 P:eNvmxdizc\
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B8D8 X:0000 Y:B8D4 P:eNvmxdizc  (first quick eye blinking)
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B8E5 X:0000 Y:B8E1 P:eNvmxdizc
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B8F2 X:0000 Y:B8EE P:eNvmxdizc/
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B8CB X:0000 Y:B8C7 P:eNvmxdizc\
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B8D8 X:0000 Y:B8D4 P:eNvmxdizc  (second quick eye blinking)
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B8E5 X:0000 Y:B8E1 P:eNvmxdizc
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B8F2 X:0000 Y:B8EE P:eNvmxdizc/
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B903 X:0000 Y:B8FF P:eNvmxdizc\
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B90B X:0000 Y:B907 P:eNvmxdizc
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B913 X:0000 Y:B90F P:eNvmxdizc  (Wake up part)
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B91B X:0000 Y:B917 P:eNvmxdizc
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B923 X:0000 Y:B91F P:eNvmxdizc
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B92B X:0000 Y:B927 P:eNvmxdizc/
$A0/C2A3 9D 92 0F    STA $0F92,x[$AA:0F92]   A:B939 X:0000 Y:B935 P:eNvmxdizc  (Ready to start the battle)


In this case , the pointer values in A (or Y) should lead me to the tilemap pointers , with the frames values to display it .
But those values doesn't lead me to tilemap pointers but in the middle of the tilemap pointer table (i'm almost sure) . So , where is my mistake ?

Also , i wonder if in the game , the programmers have made the reverse standing tilemaps of torizo , even if they have never used it . This could avoid to make all the new tilemaps , but it's a minor question .   

PHOSPHOTiDYL

I had this bank done like six months ago, sacrificed bomb torizo to the demon compendium for eight teleport torizo.
Lost all my notes though.

You definitely only need to search the first half of this bank.
The bottom half is dori, gold boss statues, maridia tube glass, & walking torizo statues.

There's this boss hex tweak doc that I started with to break into the bank.
The torizo share most of the routines, with region checks that decide what their AI will do.

I'll post whatever I can find today.




PHOSPHOTiDYL

Looks like $AAD745 & below is nothing torizo related.
There's also $28D5 bytes @ $AA87C7 I haven't identified.
Also $06D4 bytes @ $AAB279 & $08A8 bytes @ $AAB962.

I think you found what's @ $AAB279, it might be pointing to the mass @ $AA87C7...


PHOSPHOTiDYL

Here's what I got on bank $AA. Kept going til I found the sprites in that mess of code.
Still a lot of work to be done, though it should be easier now...

$AA8A96 - $AAA4E6.

PHOSPHOTiDYL

It looks like as soon as the sprites end are the structures for the spritemaps.
The pointers to the spritemaps are in them.

I think their structure might be...
dw $0001 ;//# of gfxmaps
dw $x-coord relative to enemy,$y-coord relative to enemy,$pointer to spritemap,$pointer to hitbox.

Those will be pointed to from somewhere else.

Vener

I got this :

                     Hold in A       Hold in Y
                  /                 \/                 \
(15:388B): [30 00 12 AA][4B 81 40 00] 79 B2 AA 80 7D             1 animation per line
(15:3898): [20 00 12 AA][4B 81 40 00] B9 B2 AA 80 7D
(15:38A5): [10 00 12 AA][4B 81 40 00] F9 B2 AA 80 7D
(15:38B2): [08 00 12 AA][4B 81 40 00] 39 B3 AA 80 7D
(15:38BF): [20 00 12 AA][23 81 02 00]
Bomb Torizo opening his eyes for the first time. slowly

(15:38C7): [04 00 12 AA][4B 81 40 00] 79 B2 AA 80 7D
(15:38D4): [04 00 12 AA][4B 81 40 00] B9 B2 AA 80 7D
(15:38E1): [04 00 12 AA][4B 81 40 00] F9 B2 AA 80 7D
(15:38EE): [04 00 12 AA][4B 81 40 00] 39 B3 AA 80 7D
Bomb Torizo blinking his eyes quicker ; This cycle is repeated 2 times .

(15:38FF): [30 00 12 AA][CC C3 00 00]
(15:3907): [10 00 1C AA][CC C3 02 00]
(15:390F): [08 00 26 AA][CC C3 04 00]
(15:3917): [08 00 30 AA][CC C3 06 00]
(15:391F): [08 00 3A AA][CC C3 08 00]
(15:3927): [08 00 4C AA][CC C3 0A 00] 4D B9 23 81 10 00
Bomb Torizo Wake up part.

(15:3935): [04 00 5E AA] 71 B2 10 81 35 B9 C8 C2 D1 C2 51 B9 10 00
Bomb Torizo is ready to start the fight.

AA12: 01 00 00 00 00 00 33 8C E8 87
AA1C: 01 00 00 00 00 00 B7 8C F6 87
AA26: 01 00 00 00 00 00 3B 8D 04 88
AA30: 01 00 00 00 00 00 C4 8D 12 88
AA3A: 02 00 FB FF E8 FF 80 93 5A 88 00 00 00 00 43 8E 20 88
AA4C: 02 00 FB FF E8 FF 9B 93 6A 88 00 00 00 00 C2 8E 2E 88

AA5E: 02 00 FB FF E8 FF 9B 93 6A 88 00 00 00 00 46 8F 3C 88



87E8 : 01 00 F0 FF E5 FF 10 00 1B 00 77 C9 C2 C9         
87F6 : 01 00 F2 FF E5 FF 0D 00 1B 00 77 C9 C2 C9
8804 : 01 00 F3 FF DE FF 09 00 21 00 77 C9 C2 C9
8812 : 01 00 F5 FF DA FF 0B 00 27 00 77 C9 C2 C9
885A : 00 00 01 00 F0 FF 27 00 FF FF 37 00 77 C9 C1 C9
886A : 00 00 01 00 E0 FF 29 00 F3 FF 40 00 77 C9 C1 C9

I'm sure the tilemap/tilemap pointers are in this , but the format look complexe

Vener

I finally flipped torizo for the standing part . It was painfull !
Of course , i had also to flip the crumbling chozo PLM , which was tankfully easy to do .
But a problem remain ; the falling bit tiles when PLM crumble , they have to be fliped also .

I looked into it :

Crumbling chozo PLM $D6EA:

Instructions (02:5368 until 02:53C6)

01 00 77 98 C1 86 3B D3 B4 86   Draw  Set pre-instruction code Wait
78 00 77 98 E5 87 00 04 00 B2 AD 00 6E   Transfer stuff to VRAM
60 00 77 98 57 D3 00 00 Spawn object A993 with argument argument
30 00 77 98 57 D3 02 00
0F 00 77 98 57 D3 04 00 tile # (BUT loaded from WHERE????)
0E 00 77 98 57 D3 06 00
0D 00 77 98 57 D3 08 00
0C 00 77 98 57 D3 0A 00
0B 00 77 98 57 D3 0C 00
0A 00 77 98 57 D3 0E 00
01 00 9D 98 C7 D3 BC 86   Set music track to 6   Delete PLM

03:2993: (a projectile header , 14 bytes each)

64 A7 <Initialization code
FB 84 <Pointer of first AI to run (Run once every frame before any other part of the projectile)
4B A5 <Pointer of first graphic AI to run (Same as PLM format and enemy graphic AI)
08    <X 'radius' of hit box
08    <Y 'radius' of hit box
00 30 <8000 = Check for collisions with Samus's projectiles, 4000 = DON'T die on collision with Samus, 2000 = Disable collision with Samus, 1000 = Invisible. 0XXX = Damage to Samus
00 00 <Pointer to new graphic AI on hit contact.
FC 84 <Pointer to new graphic AI on Samus's projectile contact. (Only for normal collisions - 7EF380,X = 0000)

03:254B:

40 00 33 8E 12 83 0C 61 81 EF A8
70 00 33 8E 54 81

40 00 3A 8E 12 83 0C 61 81 EF A8
70 00 3A 8E 54 81

40 00 41 8E 12 83 0C 61 81 EF A8
70 00 41 8E 54 81

40 00 48 8E 12 83 0C 61 81 EF A8
70 00 48 8E 54 81

40 00 4F 8E 12 83 0C 61 81 EF A8
70 00 4F 8E 54 81

40 00 56 8E 12 83 0C 61 81 EF A8
70 00 56 8E 54 81

40 00 5D 8E 12 83 0C 61 81 EF A8
70 00 5D 8E 54 81

40 00 64 8E 12 83 0C 61 81 EF A8
70 00 64 8E 54 81

I assume that the stuff at 03:254B is the 8 crumbling tiles that fall , considered as projectiles , but i don't understand where those Tiles are located in the ROM  >_< i checked the entire ROM in TLP . It may be the same CRE tiles that the static chozo befor breaking , but they look a bit different :C 

I hope someone has already stuffed to this ...