Author Topic: [FF7PC-98/Steam] Smoother 60FPS Battles (v0.9)  (Read 50881 times)

obesebear

  • Administrator
  • No life
  • *
  • Posts: 2999
  • Karma: 20
  • King of Model Importing
    • View Profile
    • Modders Haven
[FF7PC-98/Steam] Smoother 60FPS Battles (v0.9)
« on: 2010-06-17 04:13:55 »
Up to date as of 22 October 2014
Download HERE v0.93

Model animations... 100%

Limit Break animations... 100%

Camera animations... 95% (Thanks to NFITC1. Still a few camera movements at 30fps. )

Texture animations... 100%

Battle Interface... 99% (Still needs a few tweaks)

Summons... for some reason the fix for the textures messed up the summons.  Hopefully it's an easy fix


The alternative to what I've just done is to alter a whooping 1,918 individual functions MANUALLY. I made a list (dynamically, of course) and thought I'd better save it for posterity. If anyone (or a group of anyones) is diehard enough to tackle this, here are the 3D handlers that I've identified:
Code: [Select]
425D29
425FC4
42782A
439C6B
439EE0
43AF1B
43CC4D
43CD0C
43CDE0
43D17E
43D4DF
43D654
43D73E
43D892
43D984
43DB31
43DC8D
43DEB0
43E028
43E2B5
43E50C
43E85E
43E962
43EA59
43F2AE
43F4A6
43F59C
43F65E
43F74D
43FB75
43FE07
44009F
4401BD
4402D5
4403CB
4404FE
440651
44084A
440A6C
440C22
440CF5
440DEC
440ECD
440FFE
441166
441375
44166B
44184D
4419A7
441D63
44209C
442179
442B67
44357D
443668
443756
44385E
443A2F
443D29
444093
444256
444531
44469C
44487B
4448D6
4453DC
44593F
445BA0
445DAF
4461B0
44656B
446926
446F2B
4474D5
447C2A
447CB8
448152
4482F1
448422
4488D2
448B4B
448BA6
44939C
4494FA
449752
4498F1
449CD7
449DD3
449F98
44A159
44A2F5
44A7D2
44B975
44BCBD
44C0C5
44D9A3
44DBC8
44E3D3
44E56B
44E6E9
44E80D
44EDC0
44FF63
4500BD
450999
450F42
451381
451628
45199B
451CA4
4522AD
453450
453FBF
45500C
4550D0
455219
45542E
45556B
455BC0
455E16
455F8B
457148
4572F6
4575CF
457714
4578F0
457C60
458C9B
458D86
4593A2
459446
4595C7
45994C
459A3F
459B12
459C95
459DFD
459F23
45A091
45A18F
45A3B3
45A5EB
45A6A6
45A998
45ABAA
45AF39
45B0CF
45B487
45BA2C
45BC85
45BD42
45BE58
45C263
45FF5C
460303
460A1D
4615A1
4617A7
461DCF
46245F
462B07
4632AE
46338E
463F42
46406E
464960
464A6A
464BAD
464F0D
465655
4657AA
46596D
465A29
465CB3
465E51
466063
4664A9
46652D
466604
466807
466A7A
466CD2
467256
4673AA
46758D
467987
467BA8
467C8B
467ED4
468015
468216
4688A2
4698EF
469A7C
469BE5
469F3A
469FB3
46A0A1
46A156
46A7BF
46A890
46A989
46AB00
46B175
46B40D
46B571
46B5F3
46BA0B
46C9F2
46CB5D
46CCC8
46CE36
46D177
46D32C
46D45D
46D647
46D7BE
46D8F4
46D9C8
46DDFA
46DF65
46E0BA
46E2EA
46E461
46E57A
46F22D
470031
4700F7
47025A
470438
4707CC
470B8E
470EEF
471023
4711A1
47148B
471722
471922
471B90
471C61
471D99
4720CF
4722FD
47256C
4726C5
47288A
472B3D
472C4B
472D7A
473013
47310F
4731AD
4738DE
473CC2
474C71
474D1C
47518A
475687
475777
47588D
475989
475BB7
475CB1
475E9C
47605F
476186
4763C5
476513
476672
478031
478DB6
478EDF
479AB2
479EAA
47A15A
47A52D
47B00A
47BC2C
47BECB
47C177
47C3BF
47C516
47CAAC
47CF84
47D37B
47D49D
47D726
47E725
47E7F3
47E919
47EE9E
47F310
47F50F
47F7C7
47FA51
480946
480B3A
480D91
480DF9
4813BF
4813FB
481437
4815BD
4817C6
481867
481B5A
481BE8
481E7C
4821E0
482245
482285
4823E4
4825E0
4834B4
483866
484A16
4854F4
4855A5
4858AA
4859AA
485E6A
485F5B
48615F
4862B6
4864EB
486670
48685C
48697C
486A35
486BDF
486E18
486FA0
487277
487842
487A2C
487BD2
487C73
489CF0
489F45
48A074
48A952
48AA61
48AC5E
48AD3C
48AF40
48B2C0
48B7C0
48BBFC
48C75D
48D7BC
48DA7A
48E2CD
48E6BD
490234
49036D
490679
490755
49081F
490ABC
490DE5
490F2A
4915E9
491738
4918F1
491B0E
491E24
4923AB
49258F
4926E5
492816
49299C
492C4C
492F27
493133
49346B
493775
49389F
493A11
493C9D
493F49
494091
494773
494D62
494F26
4951A0
4952A8
4953D9
495510
49680C
4969FA
496AC1
496CC5
497086
4971EF
497310
497417
49757A
4976D0
497A37
498A96
4990FE
499227
499388
499540
499823
499A1A
499C33
499E6D
499FEF
49A0B9
49A1E9
49A323
49A55B
49A7AB
49AC0A
49ADEC
49B12C
49B16D
49B206
49C37C
49C6E4
49E356
49E558
49E6F3
49E93A
49EB06
49ED0A
49EEE7
49F10E
49FB87
49FBF7
49FF2E
4A0F52
4A1F8A
4A27CC
4A2BE5
4A2D0E
4A30C6
4A3362
4A3689
4A3A2E
4A3E2B
4A401B
4A4171
4A425F
4A43F5
4A46E7
4A499F
4A4BE6
4A4D7C
4A4EEA
4A4F7B
4A584D
4A5D3C
4A6CB8
4A792C
4A7A03
4A7AC8
4A8431
4A89BB
4A8B86
4A911A
4A942F
4A953F
4A9627
4A9908
4A9C32
4AAAAF
4AAC51
4AACE8
4AB110
4ABA85
4ABCB0
4ABDF1
4ABF6A
4AC1E7
4AC354
4AC4F1
4AC8E1
4ACAEA
4ACC4F
4ACF67
4AD4B6
4AD5CD
4AD6F9
4AD79A
4ADA7C
4ADD05
4ADEB3
4AE03C
4AE3D2
4AE76E
4AE989
4AEA8C
4AEC56
4AF0C8
4AF424
4AF6F4
4AF8E8
4AF9C7
4AFC2F
4B0050
4B060B
4B06DC
4B07EC
4B092D
4B0AE6
4B0D93
4B16A8
4B1985
4B1F12
4B24F7
4B25F2
4B275D
4B2914
4B2B75
4B2D5C
4B2E2D
4B3130
4B3410
4B3552
4B377D
4B39F2
4B3E72
4B3EF3
4B4045
4B4191
4B439D
4B4470
4B4584
4B47B7
4B4CA1
4B53D9
4B56DA
4B5BE3
4B5EE0
4B615A
4B63A4
4B65A8
4B7614
4B7969
4B79E1
4B7A97
4B7BA7
4B809D
4B81A2
4B8950
4B8A95
4B8F89
4B997F
4B9B4F
4BA03F
4BA8C1
4BA9EA
4BAE74
4BB0DF
4BB335
4BBA5C
4BBB24
4BC2BD
4BC383
4BC3F6
4BC9AD
4BCA54
4BCC25
4BCCC7
4BD41F
4BD4C1
4BDE58
4BDF67
4BE08C
4BE80C
4BE9D5
4C0D63
4C1185
4C12DC
4C14AB
4C16AD
4C1BA2
4C218F
4C22F5
4C2D5F
4C2E4B
4C3198
4C362B
4C3757
4C3A07
4C3BEF
4C3DD7
4C406D
4C40E5
4C4372
4C44C2
4C4A6B
4C4E1D
4C51E1
4C5290
4C53D6
4C5507
4C56FF
4C5B5B
4C5CDE
4C6036
4C62DC
4C650A
4C694D
4C69A8
4C6F42
4C740B
4C79A7
4C7BA8
4C7D7A
4C833D
4C854A
4C86CF
4C8B10
4C8CC8
4C8F74
4C8FB5
4C9104
4C9535
4C965F
4C972E
4C98E7
4C9C02
4C9DA2
4CA64A
4CAC85
4CB226
4CB30D
4CB71D
4CB897
4CBF80
4CC18A
4CC3FC
4CC5B0
4CC68F
4CC7E8
4CC9D0
4CCB85
4CCC74
4CCDCD
4CD275
4CD374
4CD54A
4CDB55
4CDC54
4CDE29
4CE487
4CE5F8
4CE780
4CE9EA
4CEB73
4CEE2A
4CF15B
4CF3C5
4CF6D2
4CFBE5
4D021E
4D03EC
4D05B6
4D08E6
4D0A5A
4D0CB5
4D107B
4D1910
4D1F07
4D202A
4D219B
4D23F6
4D2584
4D2BC7
4D2CEA
4D2EB4
4D31FC
4D33D1
4D3A37
4D3B36
4D3CA8
4D3FDD
4D4291
4D48C6
4D49C2
4D4B5D
4D4BEE
4D4D64
4D5070
4D54B2
4D594C
4D68FB
4D69A6
4D7044
4D7174
4D72D0
4D7549
4D78B9
4D7AD0
4D7DAA
4D7FDF
4D8177
4D8376
4D9314
4D9502
4DA086
4DA182
4DA516
4DA6DF
4DAD5C
4DB00F
4DB15F
4DB26E
4DB4D2
4DB9D6
4DBA78
4DBBF2
4DBE48
4DC10C
4DC2BF
4DC7D7
4DCA51
4DCBC4
4DCD24
4DD0BD
4DD4A6
4DD548
4DD79E
4DD891
4DDA44
4DDE9F
4DE119
4DE273
4DE51E
4DE9BC
4DEA5E
4DECB4
4DEDAA
4DEF5D
4DF3B8
4DF632
4DF78C
4DFAFD
4DFEE6
4DFF8B
4E01E1
4E02E5
4E0498
4E08F3
4E0B6D
4E0CE0
4E0FA7
4E1200
4E12C3
4E13D9
4E1E98
4E24B7
4E259A
4E2DF3
4E3338
4E3436
4E3A44
4E3D51
4E401E
4E44C6
4E45A9
4E48D4
4E4B3B
4E4F06
4E50CA
4E5962
4E6128
4E62A5
4E647D
4E666E
4E6AB7
4E6FEC
4E71D2
4E73AF
4E75DC
4E7875
4E81F0
4E9292
4E9390
4E95AC
4E9D1D
4EA0F2
4EA2F4
4EA4D5
4EA6A0
4EAAF1
4EAC64
4EAEFF
4EB7AE
4EBA53
4EBC95
4EBD86
4EC0B2
4EC7FC
4ECC66
4ECFAB
4ED04F
4ED320
4ED575
4ED7B0
4EDAA9
4EDFFE
4EE236
4EE493
4EE9AD
4EEA51
4EED22
4EEF77
4EF1B2
4EF4C1
4EF537
4EF5B8
4EF7DB
4EF87F
4EFB50
4EFDA5
4EFFE0
4F02D9
4F0460
4F082B
4F08CF
4F0BA0
4F0DF5
4F1030
4F133F
4F1479
4F1906
4F1A20
4F1B3A
4F1F5B
4F1FFF
4F22D0
4F2525
4F2760
4F2A59
4F2C35
4F32FD
4F3608
4F37DD
4F3A6E
4F3CFF
4F3DD0
4F3FB0
4F419F
4F44AB
4F454F
4F4820
4F4A75
4F4CB0
4F4FBF
4F5104
4F540B
4F54AF
4F5780
4F59D5
4F5C10
4F5F09
4F6117
4F6450
4F6649
4F67CE
4F697D
4F6C2B
4F6CCF
4F6FA0
4F71F5
4F7430
4F773F
4F7824
4F79BF
4F7C2B
4F7CCF
4F7FA0
4F81F5
4F8430
4F8729
4F880E
4F89A9
4F8C15
4F8CB9
4F8F8A
4F91DF
4F941A
4F9713
4F9A4D
4FAAAC
4FB1D9
4FB293
4FB3FC
4FB963
4FC52C
4FCC1C
4FCD1D
4FCE71
4FD128
4FE6CC
4FE7C5
4FE9B0
4FEACE
4FEF5A
4FF1E2
4FF311
4FF5F2
4FF82E
4FF912
4FFC9A
50001F
500110
500313
50046C
50057F
*500C458B
500FCC
50124E
501377
501637
5025B3
50265E
5033F5
5039E5
5047CA
504D72
504F7D
505BC3
505D5F
505E2E
505F0E
506350
5066C7
5069BA
506D87
506E9D
50701D
5071F7
5073C3
50749F
507792
5078D8
507CA4
508BED
508EB4
50907E
50921E
5093BE
5095F5
509692
5096F3
509B10
50A9E0
50ACDA
50AE60
50B07D
50B1A3
50B2F7
50B483
50B5F0
50B6D6
50BA36
50BE48
50C0F0
50C221
50C6EE
50C7BF
50C8ED
50CAAB
50CF60
50D372
50D5F5
50D726
50DBFF
50DCD0
50DDFE
50DFC5
50E493
50E8CF
50E9A0
50EB76
50EDAE
50EFAB
50F25D
50F3BB
50F461
50FA5B
50FEE2
50FFB3
51012A
51040D
51080D
5108DE
510A0B
510C49
510E08
5110E0
51137C
5115AA
511634
511942
511E2A
512297
51235E
5124D5
5127B4
512A9F
512BB4
5137E9
513BAD
513CC7
513D9A
514131
514243
5143AE
514506
514B07
515238
516297
516ACF
516D3F
516E13
5170BE
5171E3
51731A
5174DD
5177D5
5178F9
517C7A
517DBB
518006
518147
5188F3
518AFF
518C07
518E2D
519224
519336
51962A
519754
519A1B
519E16
519EE9
51A063
51A3EA
51A621
51ABC8
51AD17
51AE91
51AFF7
51B3AA
51B67D
51B8F7
51BA1A
51BED9
51C6E5
51CBD3
51CCFC
51CE76
51CF89
51D0DE
51DACA
51DCE1
51E068
51E3B3
51E83D
51E980
51EA73
51ED97
51F011
51F142
51F6EE
51F811
51F9C6
51FC31
51FD56
51FF77
520406
520746
520BE3
520D7C
521027
5213D1
521967
521AD2
521C4C
521DB2
52216B
5225E7
522721
52289B
522C58
522F57
5230EE
52336D
5234E1
5239A8
523D85
523F1C
52419B
52431D
5247F0
524C23
524EB7
5252E2
525635
525756
5259CD
525B1F
525CCE
525FFA
526564
5266C3
526957
526B4D
526C20
526EB8
526FD0
5274E2
527776
527932
527D94
5280B2
5282CE
52840C
52876E
52882E
5288FB
528A27
528C64
528E2A
5292E7
5295A2
529715
52A001
52A0E6
52A1B9
52A440
52A773
52ABE9
52AD2D
52AE50
52B09D
52B337
52B468
52BA70
52C020
52C16B
52C2A5
52C9BC
52CC90
52CF15
52D010
52D727
52DC0C
52E026
52E160
52E231
52EBE8
52EEC2
52F017
52F2C0
52F65C
52F725
52F837
52FEFC
5300D1
5303A7
5306DC
53079A
530AFC
530C16
530E1D
530F03
5311EB
531526
53177B
531C10
531DD5
5320CA
532188
53237D
5325A7
53268D
532963
532C56
533005
533199
533370
533A52
533B9E
53411D
5344DE
534566
534639
53484D
534C3A
534CCE
534DA1
534FB5
535132
5351D4
535463
5358E0
5359B1
535B28
535D77
536301
536595
5369A0
536DD4
537068
537427
537507
537BC3
537D63
538315
53858E
538650
538C6F
538D77
538F0E
539174
539590
539883
539A19
539C68
53A418
53A69C
53A76D
53A83E
53A981
53AACD
53AC28
53B14D
53B407
53B8BA
53BB4E
53BD44
53BE17
53C0C1
53C20E
53C2B0
53C53F
53C9A5
53CA76
53CBCF
53CE53
53CF69
53D553
53D646
53DBB3
53DC61
53E282
53E5A1
53E6FC
53E8B1
53EB44
53F05E
53F3B8
53F489
53F840
53FCE6
540015
5400A8
54064E
540863
540C60
5411B3
5412CC
5416D9
5419AF
541C9A
541DB9
54286E
542BAE
542C7F
542E4A
5432EE
54362F
543908
543A2B
543BBE
543EC7
5440D9
544473
5446DD
544D43
544F03
54513F
54542D
545A90
545C50
545E8C
546163
546298
54660E
546846
546E86
546FD0
547204
547358
5476B0
547B94
547D56
547F3C
54809A
5483E6
5486E2
548829
548980
548C5E
548F5A
5490D1
549228
549542
549A43
549BD0
549F21
54A416
54A54D
54A846
54B28B
54B9E3
54BB02
54BC4F
54BE05
54BF09
54C19F
54C28A
54C3F0
54C735
54CA88
54CE7B
54CF4C
54D3BC
54D531
54D840
54DA23
54DAF6
54DE0A
54E065
54E2FE
54E637
54E887
54EE3A
54EF7D
54F0F6
54F409
54F76C
54F8B5
54FBA0
54FFC9
55011D
550297
55073B
55097F
550DE3
551261
55140F
5515BF
551A1C
551CCC
551F0C
551FDD
552349
5524CE
55280F
552911
552B04
552C14
552E2B
5531D7
5532E0
5533BA
5537DF
553B88
553DC1
553EB6
55415C
55439C
55446D
5547D9
55495E
554C9F
554DA1
554FD0
55533F
555448
55552B
5558BA
555B0F
555BE0
5562CC
556895
5569E3
556B1B
556E35
556F4A
5571C5
5574FE
55765E
55788B
557AE8
557BAA
557E58
557FC5
55848F
5585BD
558882
558C04
559033
559188
559259
559586
55991A
5599ED
559C82
559EA2
55A2F8
55A3C6
55A4D4
55A883
55AC15
55ACFF
55B1A3
55B477
55B6C7
55BBBE
55BEE1
55C06D
55C17D
55C53B
55C777
55C841
55CAF7
55CE9E
55CFFC
55D0DD
55D378
55D6E0
55D7B7
55DB98
55DF5F
55E037
55E493
55E671
55EA0A
55ECA0
55F284
55F42E
55F641
55F932
55FB3C
55FC37
55FEF2
5600BE
56020D
5602FC
5604E5
560741
5609DB
560C32
56149A
56163E
561737
561908
561C87
561FAF
5624A5
562C60
563DC5
563FBD
564191
564515
56470F
564844
564A3B
564B8F
564CF6
564E37
5650B3
565484
565789
565882
5659BD
565B9F
566007
5661A0
566287
566871
566E61
567538
5676E3
5678A5
567E44
568371
56850F
568ECD
5691FE
5693E3
5695CC
569CAB
569FDA
56A9FA
56AA3B
56AB98
56B17C
56BA62
56C307
56C40E
56C828
56D252
56D817
56D97E
56DB52
56DD32
56E65A
56E81E
56EA1D
56EBC7
56EE42
56EFFE
56F143
56F3F6
56F496
56F6F0
56F9FD
570120
570244
570417
570531
570688
570996
570AD6
570C89
570E24
570FFD
571468
5716B2
57185C
571A48
571B06
571CFB
571F66
57202A
572912
572A9F
572CE0
572DE7
573291
5733A4
573642
57380A
5738C8
573B8B
573E87
573F6D
57421B
5744BE
57461C
574901
574CC7
574E71
575168
575341
575BEB
57687A
576A84
576BD6
57708E
5775FF
577714
57784F
5779BD
577C0E
5782AF
578378
578B17
5794CD
5797B1
5797EF
579A97
579BF3
579D4B
57A082
57A7DE
57AA55
57ACAF
57AE6E
57B02D
57B712
57BECD
57C1DD
57CCE3
57D4CA
57D696
57D89B
57DA93
57E35E
57E52B
57E7D6
57E9D4
57EBD2
57EDD0
57EFA7
57F13B
57F356
57F44C
57F775
57F942
57FB05
57FCC8
57FE36
57FFDF
5804D4
58059D
580D0C
580F3E
581195
58173E
581B7C
581E5D
582657
582924
582B41
584744
58488B
584A5E
584C4F
584E14
585412
585B73
58608A
58729B
5873FA
5875FD
58782F
587A50
587E7E
588205
588A54
589005
58932B
589461
589D38
589FAE
58A629
58A9C2
58AC59
58AF5D
58B285
58B5E9
58BABA
58C02E
58C10C
58C7BC
58CB08
58CF89
58D210
58D3E1
58D605
58D7AF
58D952
58D9F6
58DB74
58DD8B
58DE82
58DFFA
58E24F
58E60D
58F6E3
58F78E
58FC1B
590811
590931
590A54
590B8E
590D8A
590FC4
59134F
5917D5
592063
592271
5923F4
592538
592A36
593A95
5940B2
594C07
594D82
595092
5953FD
595601
595791
59588C
595A05
596702
5968E3
596B7E
596DA5
597206
598101
598846
5988DC
598997
598E29
599004
599C3D
599EA3
59A07B
59A498
59A6F2
59A7D0
59AB54
59AC9D
59AD7F
59AFBC
59B4B0
59C50F
59CAC1
59CF9F
59E2CF
59E3A3
59F2E8
59F555
59F707
59FBA0
5A033B
5A05CE
5A0839
5A0F69
5A10ED
5A14B5
5A160A
5A19FA
5A1B55
5A1E93
5A2010
5A2200
5A23EE
5A26D3
5A2923
5A2B08
5A2C45
5A2D8E
5A303F
5A322C
5A3D8A
5A3F8C
5A40DD
5A4359
5A4504
5A48F6
5A4D2F
5A4E6D
5A506E
5A53F7
5A54C8
5A5651
5A58A3
5A638E
5A6451
5A655A
5A67C7
5A69E1
5A6B1E
5A6D37
5A71B0
5A75E9
5A7727
5A7928
5A7CB1
5A7D82
5A7EEE
5A8063
5A8301
5A855B
5A86B8
5A89D6
5A8AC3
5A93A9
5A9477
5A95F5
5A9774
5A9B98
5A9C58
5A9D25
5A9EA5
5AA136
5AA341
5AA9FA
5AAD5C
5AAE1C
5AAEE9
5AB018
5AB255
5AB5CD
5AB8F5
5ABC71
5AC142
5AC547
5AC85E
5ACA50
5ACBD0
5ACD77
5ACFDA
5AD15A
5AD428
5AD4F3
5AD6C1
5ADC6E
5ADE78
5AE014
5AE30B
5AE5DE
5AE8C5
5AEAD6
5AED55
5AEEF5
5AF02D
5AF26C
5AF48E
5AF6C5
5AF8AA
5AFA7F
5AFB3D
5B0112
5B01FD
5B0716
5B1775
5B1E95
5B2636
5B29AD
5B2BA6
5B2D0A
5B2F18
5B310F
5B3354
5B3549
5B3709
5B3837
5B3B2F
5B3CAA
5B4017
5B415C
5B44C8
5B483A
5B4A76
5B50D2
5B58C9
5B5B1E
5B5BEC
5B5CE1
5B5F30
5B619E
5B635B
5B6633
5B671D
5B69AF
5B6DA3
5B6FAD
5B7323
5B74FA
5B75D2
5B786B
5B7C6A
5B7E00
5B8175
5B824D
5B840B
5B86BA
5B891C
5B8ABD
5B8BC2
5B8C8A
5B8F7D
5B9141
5B9295
5B935D
5B95F9
5B992E
5B9A26
5BBA82
5BBD24
5BC21F
5BC48C
5BC812
5BCAAA
5BDA0F
5BEA3C
5BEB68
5BFB91
5BFCCC
5BFD93
5C0BA5
5C0E4B
5C1B81
5D3601
5D4331
5D442F
5D45CA
5D4817
5D4A58
5D5072
5D552D
5D602A
5D699C
5D6B5B
5D6CB6
5D6F0E
5D705F
5D7226
5D73D8
5D7542
5D75E6
5D7778
5D792E
5D7B24

As far as I can tell that's inclusive. Ignore then 8-digit one. I don't know what that is or where it came from. Not only this, but there are likely multiple edits per method. On the flip side there are probably some that don't need any modification at all. That likely comprises less than 5% of them.
There are also 2D effect handlers, but not near as many. Less than 125.

If you don't know what this means then don't worry about it. Just accept the fact that interpolation of 2D/3D effects is FAR AND BEYOND anyone's dedication to this game. Feel free to prove me wrong though.
If you're curious about how to alter these PM me and I might try to explain. Be warned it's extremely technical and requires knowledge of x86 assembler and how the battle render engine works.

Proof of Concept Videos
http://www.youtube.com/watch?v=D6ziBsBNSfI
http://www.youtube.com/watch?v=rx3DHs4iMzA

« Last Edit: 2014-10-22 17:46:53 by obesebear »

sl1982

  • Administrator
  • No life
  • *
  • Posts: 3553
  • Karma: 22
  • GUI Master :P
    • View Profile
Re: Running FF7 at 60fps
« Reply #1 on: 2010-06-20 05:42:35 »
I will ask Borde about it, next time i see him online if you guys like. He maybe to busy to do anything but he might tell you where or if it can be done

Don't worry about it. I took care of it.

edit: Here is a video if anyone is interested of the battles running in 60fps. Fraps does drop the frames down a bit when recording but you get the idea. Interpolated animations were created with a modified version of kimera i made.

http://www.youtube.com/watch?v=D6ziBsBNSfI
« Last Edit: 2010-06-27 01:33:12 by sl1982 »

sl1982

  • Administrator
  • No life
  • *
  • Posts: 3553
  • Karma: 22
  • GUI Master :P
    • View Profile
Re: [WIP] Running all of FF7 at 60fps
« Reply #2 on: 2010-08-04 03:27:42 »
Just a little experiment with interpolating the sprites. Opinions please.




NFITC1

  • No life
  • *
  • Posts: 2298
  • Karma: 32
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Battles playing at 60fps
« Reply #3 on: 2011-03-11 20:25:21 »
Since a moderator necro'd this I'll follow suit. :)

It literally occurred to me this morning. You don't specifically need a camera editor, just something that will extend the camera's duration for things. That would take no more than a single pass through the camdat files and increasing/decreasing all the "steps/frame pauses" for all relevant codes. That I could probably cook up pretty quick. Enter the current fps, desired fps, the camdat file to process and you'll get the camera flowing the way it should! I'm going to give this a go real quick. Should be pretty easy. It's just picking out the codes and modifying the correct bytes. I'm pretty sure I found them all already. Let me take a crack at this.

Aali

  • No life
  • *
  • Posts: 1185
  • Karma: 36
    • View Profile
Re: Battles playing at 60fps
« Reply #4 on: 2011-03-12 01:16:19 »
.s files can be edited to include more frames but they wont play. The duration of those animations seems to be hardcoded.

sl1982

  • Administrator
  • No life
  • *
  • Posts: 3553
  • Karma: 22
  • GUI Master :P
    • View Profile
Re: Battles playing at 60fps
« Reply #5 on: 2011-03-12 13:30:06 »
Perhaps when they actually play can be edited? Say for example they play on frame 20 right now and we get them to play at frame 60 instead? It wouldnt totally solve the problem but it would help.

Aali

  • No life
  • *
  • Posts: 1185
  • Karma: 36
    • View Profile
Re: Battles playing at 60fps
« Reply #6 on: 2011-03-12 14:00:14 »
Thats also hardcoded. It can be fixed of course but it entails reprogramming every single spell effect in the game.

Your best bet with spell effects is probably to pretend the game is paused for 3 frames, advance one frame, rinse and repeat.

And yes, I am working on that as we speak.

NFITC1

  • No life
  • *
  • Posts: 2298
  • Karma: 32
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Battles playing at 60fps
« Reply #7 on: 2011-04-08 03:20:13 »
I've been meaning to get back to this. Stupid addictive duodecim.......

The "solution" I came up with isn't perfect,but the only thing I can think of to so with this is to add wait periods to make the camera last as long as the animation. This has drawbacks though. Consider something simple like Matra Magic. The camera is supposed to follow the missiles from the caster to the target by performing XX transitions between looking at the caster and looking at the target. If that transition takes more than 64 frames, then the transition increment can only go to 255, then it'll have to wait the rest of the frames at the destination before the next transition takes place.

Say a transition is supposed to take 100 frames. If your increasing the fps from 15 to 60 then the new desired transition time would be 400 frames from point A to point B. But it can only really be increased to 255 transitional frames and made to wait the remaining 145. That will make the transition much faster, but it will be focusing on what it should focus on when it should focus on it.

That said, in order to do this, it requires splitting each camera script by type, editing them, then reconstructing the cam files From scratch. That's not as simple as it might sound because there are actually scripts that aren't used and there are lots of duplicate pointers.

There is no better solution unfortunately. In some cases we could calculate where the camera should be after 255 transitions between point A and point B, but there are some scripts with transitions between relative locations like "caster_center" and "target_center" that wouldn't work like that. Not unless we knew more about how it all works.

NFITC1

  • No life
  • *
  • Posts: 2298
  • Karma: 32
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Battles playing at 60fps
« Reply #8 on: 2011-10-13 19:06:48 »
Well, if you can't increase the script's wait, make the game wait longer. If the F5 handler was changed from

Code: [Select]
005C2A95 PosCamF5:
005C2A95                 movsx   edx, [ebp+arg_0]
005C2A99                 imul    edx, 0Eh
005C2A9C                 xor     eax, eax
005C2A9E                 mov     ax, word_BE10F8[edx]
005C2AA5                 mov     ecx, [ebp+var_18]
005C2AA8                 mov     edx, [ecx+4]
005C2AAB                 movsx   ax, byte ptr [edx+eax]
005C2AB0                 movsx   ecx, [ebp+arg_0]
005C2AB4                 imul    ecx, 0Eh
005C2AB7                 mov     word_BE10FA[ecx], ax
005C2ABE                 movsx   edx, [ebp+arg_0]
005C2AC2                 imul    edx, 0Eh
005C2AC5                 mov     ax, word_BE10F8[edx]
005C2ACC                 add     ax, 1
005C2AD0                 movsx   ecx, [ebp+arg_0]
005C2AD4                 imul    ecx, 0Eh
005C2AD7                 mov     word_BE10F8[ecx], ax
005C2ADE                 jmp     loc_5C3C57

to something like:

Code: [Select]
005C2A95 PosCamF5:
005C2A95                 movsx   edx, [ebp+arg_0]
005C2A99                 imul    edx, 0Eh
005C2A9C                 xor     eax, eax
005C2A9E                 mov     ax, word_BE10F8[edx]
005C2AA5                 mov     ecx, [ebp+var_18]
005C2AA8                 mov     edx, [ecx+4]
005C2AAB                 movsx   ax, byte ptr [edx+eax]
005C2AB0                 imul    ax, 4
005C2AB3                 movsx   ecx, [ebp+arg_0]
005C2AB7                 imul    ecx, 0Eh
005C2ABA                 mov     word_BE10FA[ecx], ax
005C2AC1                 mov     ax, word_BE10F8[ecx]
005C2AC8                 add     ax, 1
005C2ACC                 movsx   ecx, [ebp+arg_0]
005C2AD0                 imul    ecx, 0Eh
005C2AD3                 mov     word_BE10F8[ecx], ax
005C2ADA                 jmp     loc_5C3C57
005C2ADF                 nop
005C2AE0                 nop
005C2AE1                 nop
005C2AE2                 nop

Then we'd be a lot closer. That's just forcing the wait counter to be four times as large as the script wants. This would also have to be done for the Focus Cam F5 handler and any other op that wants a increment of some sort. The problem is this solution isn't as wonderfully modular as altering the scripts themselves.

NFITC1

  • No life
  • *
  • Posts: 2298
  • Karma: 32
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Battles playing at 60fps
« Reply #9 on: 2011-10-24 20:43:06 »
NTFIC1 i eagerly await your modified ff7.exe

*sigh* I have GOT to stop suggesting things. :(

For my own personal record I'll submit the following:

Cam Progress:
Position:

D8 - 0x5C3E6F; 100
E2 - 0x5C27DA; 100
E3 - 0x5C3E6F; 100
E4 - 0x5C3E6F; 100
E5 - 0x5C3E6F; 100 (I hope I'm not breaking these)
E7 - 0x5C352D; 100
E9 - 0x5C33B9; 100
EB - 0x5C31F8; 100
F5 - 0x5C2A95; 100 (this was a long one. Most others shouldn't be so bad)

-That didn't take as long as I thought. Still, there are a good number of changes that were made. Mostly it involves optimizing code and adding a harmless* imul ezx, 4 command in there.

Focus:
D8 - 0x5C52F8; 100
E2 - 0x5C4BAF; 100
E3 - 0x5C52F8; 100
E4 - 0x5C52F8; 100
E5 - 0x5C52F8; 100
E8 - 0x5C4963; 100
EA - 0x5C4800; 100
EC - 0x5C4651; 100
F5 - 0x5C4253; 100

I'm pretty sure those are all the cam ops that use delays or step increments. I don't know where the animation scripts are handled yet, but I'll look for them after I'm done with the camera parts and test them. I have a nice little dif file that shows what I changed from -> to if anyone is interested in trying it out.

* I say "harmless" because I think the register is completely cleared before the value is loaded. More modern processors will probably handle it correctly. Oddly enough, the game loads a byte value into a word-sized register chunk then stores that word-sized register chunk into another value that is modified later. Basically what I added was removing a redundant re-indexing (those are freaking everywhere) and shift some commands down and add a [dword-register] *= 4 command in there. The problem would be if the loading a byte into a word-sized chunk would result in clearing the register or not. If it does then there's no problem. If the upper part of the register still holds a value then the *4 could result in an overflow if the upper word is greater than 3FFFh. It doesn't look like that can happen in any of these cases, but it's now more vulnerable to error and possible BSOD-ing.

Take D8/E3/E4/E5's handler:
Code: [Select]
xor    eax, eax
mov    al, [edx+ecx]
mov    ecx, 0xC05FF4
imul   eax, 4
mov    [ecx], eax

This is actually completely safe by virtue of fuzzy logic. eax was cleared before manipulation so the upper part is empty.

Now take E2's:
Code: [Select]
xor    ecx, ecx
mov    cx, 0xBE10F8[eax]
mov    edx, [ebp+var_8]
mov    eax, [edx+4]
movsx  cx, byte ptr [eax+ecx]
mov    edx, [ebp+var_4]
imul   ecx, 4
mov    [edx+4], cx

The problem is in line five when it moves a byte-sized value to the word-sized register. Does the entire word get reset? Very likely. In fact, the entire ecx SHOULD only contain that value at the end of that statement. Since it's only moving a byte, it can't be larger than 255 and multiplying by four would yield no more than 1020 to be stored in that spot (which is the current camera script position).
« Last Edit: 2011-10-27 18:23:06 by NFITC1 »

NFITC1

  • No life
  • *
  • Posts: 2298
  • Karma: 32
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog

NFITC1

  • No life
  • *
  • Posts: 2298
  • Karma: 32
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Battles playing at 60fps
« Reply #11 on: 2011-11-22 03:33:06 »
You should probably change your name then.
 
 :P

Anyways it is the opening and closing battle camera pans. They run at the proper speed but get cut short.

I noticed that when I was showing off that tech demo. There might still be a duration counter that I'm missing. The battle timer begins so far into the initial camera motion. If there is a trigger for that it'll have to be moved down in each script. Try changing the battle mode to 'wait' and see if that makes a difference. I've long thought that the command for making the battle timer wait rests in the animation, but it might be in the cam scripts.
In reference to a prior post of mine, it could be DA, DB, DC, or F1 of the position cam or DB or DC of the focus cam codes. I should extract all the init cam scripts and see if I can find some commonality that they all share. They're all in the exe if someone wants to beat me to it.

Update:
It looks like E6 is also used to create increments in both the position and focus scripts. That won't affect all the scripts, but it would affect some.
« Last Edit: 2011-11-22 18:54:00 by NFITC1 »

Aali

  • No life
  • *
  • Posts: 1185
  • Karma: 36
    • View Profile
Re: Battles playing at 60fps
« Reply #12 on: 2011-12-03 21:08:32 »
I wrote these tools to help me read and edit .s files, maybe you can put them to good use. Simply adding more frames to the animations just caused it to cut out early when I tried it but maybe you can figure that out.

sptdump.c: .s file -> text format
Code: [Select]
#include <stdio.h>
#include "spt.h"

int main(int argc, char *argv[])
{
FILE *f;
struct spt_header header;
int i;
int j;

if(argc < 2)
{
printf("usage: sptdump <file>\n");
exit(1);
}

f = fopen(argv[1], "rb");

fread(&header, sizeof(header), 1, f);

printf("File type: %p\n", header.file_type);
printf("Version: %p\n", header.version);
printf("Number of SPT entries: %i\n", header.num_spt_entries);

printf("\n");

for(i = 0; i < header.num_spt_entries; i++)
{
struct spt_entry entry;

fread(&entry, sizeof(entry), 1, f);

printf(" SPT Entry %i: %p, %i\n", i, entry.field_0, entry.num_spt_struc_183);

for(j = 0; j < entry.num_spt_struc_183; j++)
{
struct spt_struc_183 struc_183;

fread(&struc_183, sizeof(struc_183), 1, f);

printf("  %i: %p %5i %5i %5i %5i %5i %5i 0x%04x %3u %3u %3u %3u\n", j, struc_183.flags, struc_183.x, struc_183.y, struc_183.field_8, struc_183.field_A, struc_183.texture_page, (struc_183.field_E & 0x3F) << 4, struc_183.field_E >> 6, struc_183.w1, struc_183.w2, struc_183.h1, struc_183.h2);
}
}

return 0;
}

sptbuilder.c: text format -> .s file
Code: [Select]
#include <stdio.h>
#include <string.h>
#include "spt.h"

const char file_type[] = "File type: ";
const char version[] = "Version: ";
const char num_spt_entries[] = "Number of SPT entries: ";

int main(int argc, char *argv[])
{
FILE *f;
FILE *of;
struct spt_header header;
int i;
int j;
char line[4096];

if(argc < 3)
{
printf("usage: sptbuilder <infile> <outfile>\n");
exit(1);
}

f = fopen(argv[1], "r");

of = fopen(argv[2], "wb");

if(!f)
{
perror("input file");
exit(1);
}

if(!of)
{
perror("output file");
exit(1);
}

while(1)
{
fgets(line, sizeof(line), f);

printf("%s", line);

if(!strncmp(line, file_type, sizeof(file_type) - 1)) sscanf(strstr(&line[sizeof(file_type)], "x") + 1, "%hhx", &header.file_type);
else if(!strncmp(line, version, sizeof(version) - 1)) sscanf(strstr(&line[sizeof(version)], "x") + 1, "%hhx", &header.version);
else if(!strncmp(line, num_spt_entries, sizeof(num_spt_entries) - 1)) sscanf(&line[sizeof(num_spt_entries) - 1], "%i", &header.num_spt_entries);
else break;
}

printf("Done parsing headers\n");

header.field_2 = 0;

fwrite(&header, sizeof(header), 1, of);

for(i = 0; i < header.num_spt_entries; i++)
{
struct spt_entry entry;

printf("Parsing SPT entry %i\n", i);

fgets(line, sizeof(line), f);

printf("%s", line);

strtok(line, ":,");

sscanf(strstr(strtok(0, ":,"), "x") + 1, "%hx", &entry.field_0);
sscanf(strtok(0, ":,"), "%hi", &entry.num_spt_struc_183);

fwrite(&entry, sizeof(entry), 1, of);

for(j = 0; j < entry.num_spt_struc_183; j++)
{
struct spt_struc_183 struc_183;
int tmp1;
int tmp2;

printf("%i\n", j);

fgets(line, sizeof(line), f);

printf("%s\n", strtok(line, ":"));

//printf("%s\n", strtok(0, ":"));

sscanf(strstr(strtok(0, ":"), "x") + 1, "%x %5hi %5hi %5hi %5hi %5hi %5i %p %3hhi %3hhi %3hhi %3hhi", &struc_183.flags, &struc_183.x, &struc_183.y, &struc_183.field_8, &struc_183.field_A, &struc_183.texture_page, &tmp1, &tmp2, &struc_183.w1, &struc_183.w2, &struc_183.h1, &struc_183.h2);

struc_183.field_E = tmp2 << 6;
struc_183.field_E |= tmp1 >> 4;

fwrite(&struc_183, sizeof(struc_183), 1, of);
}
}

fclose(of);

return 0;
}

spt.h: data structures used in both programs
Code: [Select]
#ifndef _SPT_H_
#define _SPT_H_

struct spt_header
{
unsigned char file_type;
unsigned char version;
unsigned short field_2;
unsigned int num_spt_entries;
} __attribute__((__packed__));

struct spt_entry
{
unsigned short field_0;
unsigned short num_spt_struc_183;
} __attribute__((__packed__));

struct spt_struc_183
{
unsigned int flags;
short x;
short y;
short field_8;
short field_A;
unsigned short texture_page;
short field_E;
unsigned char w1;
unsigned char w2;
unsigned char h1;
unsigned char h2;
} __attribute__((__packed__));

#endif

Kranmer

  • Freak
  • *
  • Posts: 747
  • Karma: 6
    • View Profile
Re: Battles playing at 60fps
« Reply #13 on: 2012-04-13 10:42:30 »
Of course that's all Greek to me.
Well it appears to be C, it should be easy to compile to EXE with a compiler like Mingw,
try installing mingw and msys (both free programs) to the default directory of C:\Mingw
then run mingw from your startmenu and you should get a command box, then copy and paste all the text in those code boxes into TXT files and use the filenames provided sptdump.c,sptbuilder.c,spt.h
then put these 3 files into your
C:\MinGW\msys\1.0\home\USERNAME
folder.
Then in the command line type
GCC -c sptdump.c -o sptdump.o
then press enter then type
GCC sptdump.o -o sptdump.exe

then you will have sptdump.exe then do this for sptbuilder

GCC -c sptbuilder.c -o sptbuilder.o
press enter then
GCC sptbuilder.o -o sptbuilder.exe

then you will have sptbuilder.exe and sptdump.exe files. And that should do it. hope this helps.
NOTE: in the line C:\MinGW\msys\1.0\home\USERNAME where it says USERNAME it should your windows username, so for me its Kram since i log into windows with that username.

NFITC1

  • No life
  • *
  • Posts: 2298
  • Karma: 32
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Battles playing at 60fps
« Reply #14 on: 2012-05-15 20:35:01 »
Unfortuanately, I must confess I'm complety at a loss here Obesebear. It would seem reasonable for limit break animations to be stored togheter with the other battle animations, but as long as I know, noone around here has found a trace about them. My information could be outdated, though, I've been away for quiet a while.

I don't think animation length can be automatically adjusted by the game engine. All other animations have a fixed framerate. But then again, who knows.

I thought limit break animations were contained with the magic animations. Pushing some magic anims beyond a certain number seemed to support that theory. Their effects range from 00h - 4Eh. I don't know where these are stored, but it doesn't seem like they're stored in the animation of the actors themselves. They're likely in the magic.lgp somewhere and made to specifically reference bones of the actor.

Kranmer

  • Freak
  • *
  • Posts: 747
  • Karma: 6
    • View Profile
Re: Battles playing at 60fps
« Reply #15 on: 2012-06-13 18:56:10 »
I did create a DLL a while ago to allow switching of FPS between values via hotkeys, I haven't had chance to fully test it (i did give it to pitbrat to test but i haven't been on IRC for a while so i haven't had chance to ask him how good/bad it worked).
So if you want to test it, it should allow you to switch between a lot of different FPS values (similar to the speedhack but different because this DLL only sets the FPS for what you choose, so if you choose to run battles at 60fps it will only run battles at 60fps and the field and stuff will stay the same where as the speedhack speeds up the whole game regardless)
So this will make it easier so you won't have to hex edit your EXE (i can make 1 just for battles if need be).
You can get it here
http://www.mediafire.com/?ee02tw422kfml2m
this is also a all in 1 DLL so it also includes other stuff like my AnyCd, load saved games, Always Run, Interface Switcher (only for use with menu overhaul) and move while talking.
here is a list of what the hotkeys are (so to set battles to 60FPS just press and hold the B button on your keyboard then press number 6 on your keyboard (using the top numbers NOT the side keypad))
Code: [Select]
WORLD MAP FPS CONTROL
W+1 = 15FPS
W+2 = 22FPS
W+3 = 30FPS
W+4 = 40FPS
W+5 = 45FPS
W+6 = 60FPS
W+7 = 80FPS
W+8 = 100FPS
W+9 = 200FPS
W+0 = 400FPS

FIELD FPS CONTROL
F+1 = 15FPS
F+2 = 22FPS
F+3 = 30FPS
F+4 = 40FPS
F+5 = 45FPS
F+6 = 60FPS
F+7 = 80FPS
F+8 = 100FPS
F+9 = 200FPS
F+0 = 400FPS

BATTLE FPS CONTROL
B+1 = 15FPS
B+2 = 22FPS
B+3 = 30FPS
B+4 = 40FPS
B+5 = 45FPS
B+6 = 60FPS
B+7 = 80FPS
B+8 = 100FPS
B+9 = 200FPS
B+0 = 400FPS

M+1 = Move While Talking V1 (glitched cloud but works at events)
M+2 = Move While Talking V2 (Doesn't work correctly at some events)
M+3 = Access Menu While Talking
M+4 = Highwind land on dark parts of the map or in forest's (Don't use on other vehicles only on highwind)
M+0 = Undo Move While Talking, Access Menu While Talking and Highwind landing

CTRL+F3 = Always Run Off
CTRL+F4 = Always Run On

CTRL+F5 = FFX Normal Interface
CTRL+F6 = FFIX Normal Interface
CTRL+F7 = FFX 9999 Interface
CTRL+F8 = FFIX 9999 Interface

CTRL+L = Load anywhere (press twice in field or once if in the in-game menu) NOTE: DO NOT USE THIS WHILE ON THE WORLD MAP (you can load saves on the world map just don't press CTRL+L on the world map)

FF7AnyCDv2 Built in
NOTES:
1. Set the FPS before you go into the desired part, so set the battle FPS before going into battle, Set the world map FPS before going to the world map, Set the field FPS while on the world map or in battle.
2. To run at over 60FPS you may need to disable Vsync in Aali's Driver and in your graphics card driver's control panel.
« Last Edit: 2012-06-13 19:01:24 by kranmer »

ficedula

  • No life
  • *
  • Posts: 2104
  • Karma: 13
    • View Profile
    • http://www.ficedula.co.uk
Re: Battles playing at 60fps
« Reply #16 on: 2012-07-13 13:28:53 »
As far as the field, I don't think we have anything that lists which animation is used by whom.   Though we could manually make a spreadsheet with each animation listed, then use Makou Reactor to go through each scene to find out which .hrcs are using which animations.

If you download Ifalna, there's a file in there (ifalna.filter) that lists for each HRC file, what field animations it thinks are associated with it.

It was generated based on parsing the field files, and this was done over 10 years ago when the format wasn't understood so well, so no guarantees it's totally accurate; but, it shouldn't be too far off.

DLPB

  • No life
  • *
  • Posts: 5383
  • Karma: 107
  • The King of the Rumbling Spires
    • View Profile
Re: Battles playing at 60fps
« Reply #17 on: 2012-08-12 15:41:09 »
I sent my findings to Dziugo, who in his god like knowledge of assembly showed me where it is going wrong.  So now Cait's reels work properly at 60fps, the way they did with PSX. 

I can't get anywhere with Tifa's slots, but assuming he has the time, I am sure Dziugo will!

To correct Cait's slots for use at 60fps:

Quote
0x6e2138: mov byte ptr [00DC3B6C],04
0x91eacc: set to 20

In ff7.exe this is simplified as:
002E153E: Set to 04
0051D4CC: Set to 20

I will look at Battle Arena slots myself.  Don't want to pester people too much :)


Borde

  • Freak
  • *
  • Posts: 898
  • Karma: 24
    • View Profile
Re: Battles playing at 60fps
« Reply #18 on: 2012-09-08 21:10:33 »
I'm impressed by the amount of progress this project has seen since the last time I checked. Great job guys.

As for my end, I finally have good news. After spending countless hours checking and rewriting my encoding/decoding functions,I found out what went wrong... at a completly different place. Turns out I was ignoring the root rotation. It was suposedly ignored by the game, but looks pretty damn clear it's not. That was also the reason why Cid's fleeing animation was wrong.

Borde

  • Freak
  • *
  • Posts: 898
  • Karma: 24
    • View Profile
Re: Battles playing at 60fps
« Reply #19 on: 2013-01-01 10:14:25 »
I think I solved all the problems regarding animations interpolation, so at least that's one less problem. The new version of Kiimera allows you to interpolate automatically all the animations in the game so there is no need to process one by one any more, either.

We still need to get effects interpolated. Anyone has information about them?

EDIT: Aali has been researching about effects and found out pretty much everything is hardcoded into the EXE. That means that getting interpolated effects implies finding all the functions used by effects and modifying them to work at the new framerate. I'm sorry to say I think the future of this mod looks very grim...
« Last Edit: 2013-01-13 00:34:47 by Borde »

obesebear

  • Administrator
  • No life
  • *
  • Posts: 2999
  • Karma: 20
  • King of Model Importing
    • View Profile
    • Modders Haven
Re: Battles playing at 60fps
« Reply #20 on: 2014-07-13 20:08:28 »

Project work is picking up again.

It was pretty defeating spending all that time interpolating the models only to find out they were messed up and completely unusable.  However, I recently quit my job, and after skimming this old topic it seems that everything (aside from those damn animation files) is in place to make this a reality.

I'm currently reinstalling FF7 and will begin work on it today.  But first this thread needs to be purged of all the old unhelpful information and I need to find a link to "multi.dll" that DLPB made.  I also couldn't find info on the limit break animations, but I know they were found and posted about somewhere...

Covarr

  • Covarr-Let
  • Administrator
  • No life
  • *
  • Posts: 3277
  • Karma: 58
  • The Great Redarr.
    • View Profile
Re: Battles playing at 60fps
« Reply #21 on: 2014-07-13 20:14:12 »
and I need to find a link to "multi.dll" that DLPB made.
You might have an easier time with HextLaunch. It can launch any app and inject as many DLLs as you want. In the long run I think it'll be easier to use, at least for testing and development, than multi.dll.

DLPB

  • No life
  • *
  • Posts: 5383
  • Karma: 107
  • The King of the Rumbling Spires
    • View Profile
Re: Battles playing at 60fps
« Reply #22 on: 2014-07-13 20:21:57 »
Yeah, multi.dll has been retired.  HextLaunch combines 3 of my tools into 1 :)

Also, the reels were fixed by Dziugo.  So that is ready for the day everything is sorted :)

obesebear

  • Administrator
  • No life
  • *
  • Posts: 2999
  • Karma: 20
  • King of Model Importing
    • View Profile
    • Modders Haven
Re: Battles playing at 60fps
« Reply #23 on: 2014-07-13 20:24:35 »
Great!  Trying to update the first post with all the correct, up-to-date, important information.  If there's something I missed or is wrong do let me know.  Like, I need to get rid of those manual .exe edits now.

DLPB

  • No life
  • *
  • Posts: 5383
  • Karma: 107
  • The King of the Rumbling Spires
    • View Profile
Re: Battles playing at 60fps
« Reply #24 on: 2014-07-13 20:26:48 »
Tifa, Cait's limit slots, battle square slots updated... 100% (Pretty sure Dziugo and DLPB got this taken care of)


<

Yup.  It's sorted.  Dziugo worked his magic.  I have the values needed for that.