øAslickproductions.org/forum/index.php?PHPSESSID=71nq47ttvihstpnh7b2nkare37&topic=2000.0e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index52dc.htmlslickproductions.org/forum/index.php?board=22.0e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index52dc.html.zxgGh^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈà•¤¦ïOKtext/htmlISO-8859-1gzip@øÕ¦ïÿÿÿÿÿÿÿÿWed, 11 Mar 2020 02:21:52 GMT0ó°° ®0®P®€§²ð®gGh^ÿÿÿÿÿÿÿÿº!¦ï SD3 Engine Improvement project

Author Topic: SD3 Engine Improvement project  (Read 7171 times)

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
SD3 Engine Improvement project
« on: January 09, 2015, 05:29:26 PM »
This project aims to improve the game engine and fix bugs in Seiken Densetsu 3.

Things to fix:
- Kevin powers up when attacked while in werewolf form
- Critical hits
- Hit rate
- Time does not stop while in ring menu or using abilities
- Attacks miss if 3 characters attacks the same enemy at the same time
- Power up and sabers are not properly applied
- Ring menu cannot be accessed while enemy is chain casting (is this a bug?)
- You cannot control an ally with L and R while chanting spells
- Elemental shields do nothing
- Tech points are sometimes taken from the wrong gauge or not at all (AI only?)

- Clean up ROM to free up unused space
« Last Edit: January 02, 2017, 09:16:28 AM by Jorgur »

Praetarius5018

  • Vargas
  • *
  • Posts: 88
    • View Profile
Re: SD3 Engine Improvement project
« Reply #1 on: January 10, 2015, 04:26:53 AM »
maybe a few hints for criticals

chance to crit:
Code: [Select]
$D0/CACA A9 00 00    LDA #$0000              A:0000 X:0DE0 Y:00F2 P:envmxdiZC <- determines critical chance
$D0/CACD C8          INY                     A:0000 X:0DE0 Y:00F2 P:envmxdiZC
$D0/CACE 85 1A       STA $1A    [$00:0D1A]   A:0000 X:0DE0 Y:00F3 P:envmxdizC
$D0/CAD0 A2 E3 00    LDX #$00E3              A:0000 X:0DE0 Y:00F3 P:envmxdizC
$D0/CAD3 20 10 D9    JSR $D910  [$D0:D910]   A:0000 X:00E3 Y:00F3 P:envmxdizC
$D0/CAD6 85 1C       STA $1C    [$00:0D1C]   A:0010 X:FB43 Y:00F3 P:envmxdizC
$D0/CAD8 A9 65 00    LDA #$0065              A:0010 X:FB43 Y:00F3 P:envmxdizC
$D0/CADB 22 20 06 C0 JSL $C00620[$C0:0620]   A:0065 X:FB43 Y:00F3 P:envmxdizC <- produces a random number and loads to A
$D0/CADF C5 1A       CMP $1A    [$00:0D1A]   A:0029 X:000C Y:000B P:envmxdizC <- $1A is still #$0000
$D0/CAE1 B0 18       BCS $18    [$CAFB]      A:0029 X:000C Y:000B P:envmxdizC
$D0/CAFB A5 1C       LDA $1C    [$00:0D1C]   A:0029 X:000C Y:000B P:envmxdizC

$2A holds the current attackers "base" offset, e.g. F060
$34 holds the current targets "base" offset, e.g. F0F0
don't ask me why for the attacker they start at 60 but for the target at F0

critical damage is same as Lv1 tech damage (+50% attack)
otherwise check around $D0/CAE3 to modify

maybe you wanna modify energy ball too, 50% crit rate is a bit much
Code: [Select]
$D0/E580 A0 52 00    LDY #$0052              A:4032 X:0002 Y:0007 P:envMxdizc
$D0/E583 91 34       STA ($34),y[$7F:EE42]   A:4032 X:0002 Y:0052 P:envMxdizc
« Last Edit: January 10, 2015, 03:45:10 PM by Praetarius5018 »

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: SD3 Engine Improvement project
« Reply #2 on: January 10, 2015, 10:43:10 AM »
I added some new things to fix in the first post.

maybe you wanna modify energy ball too, 50% crit rate is a bit much
Maybe. I was thinking it could simply double the chance to crit, but I will have to do some tests first.

Praetarius5018

  • Vargas
  • *
  • Posts: 88
    • View Profile
Re: SD3 Engine Improvement project
« Reply #3 on: January 10, 2015, 04:05:44 PM »
I've wasted enough time with the evasion mechanics... and my result might or not be even buggier than not changing anything.
Once a "fix" of mine crashed the game on map transition just because, was awsome...
A proper fix for the entire mechanic would be welcome.


Power Up + Saber bonus is possibly a thing of opinion. How do you want it to work?
No attack bonus from saber at all?
Only atk bonus from saber if the current attack is worse?
Stacking bonusses?

buff/debuff is $D0/D835-$D0/D863
saber atk bonus is $D0/E51F - $D0/E533
give or take a few bytes

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: SD3 Engine Improvement project
« Reply #4 on: January 10, 2015, 04:41:32 PM »
Power Up + Saber bonus is possibly a thing of opinion. How do you want it to work?
No attack bonus from saber at all?
Only atk bonus from saber if the current attack is worse?
Stacking bonusses?
It seems sabers were meant to increase the damage slightly. I don't see a reason to remove this bonus entirely.

I see two options:
- Power up replaces saber (but saber does not replace power up)
- Power up stacks with saber

Regarding Hit rate, I think it should be properly restored somehow. As of now, Agility is more or less useless. My idea at the moment is something like FinalHit% = Hit%-Evade where Hit% can go beyond 100. Evade could possibly be based on enemy level.

noisecross

  • FF5 Hacker
  • *
  • Posts: 146
    • View Profile
Re: SD3 Engine Improvement project
« Reply #5 on: January 13, 2015, 05:54:51 AM »
Are you planning also allow three human players at the same time?
I think this game only allows two of them.

Praetarius5018

  • Vargas
  • *
  • Posts: 88
    • View Profile
Re: SD3 Engine Improvement project
« Reply #6 on: January 13, 2015, 11:08:33 AM »
There has been a 3 player patch around for ages.

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: SD3 Engine Improvement project
« Reply #7 on: January 13, 2015, 11:27:44 AM »
Yeah, a 3-player patch already exists.

I did some D0 disassembly:
http://slickproductions.org/slickwiki/index.php/Jorgur:SD3_D0_Disassembly

It's neat how you can insert links into the documents. Hopefully I have some more useful things mapped out before long.

noisecross

  • FF5 Hacker
  • *
  • Posts: 146
    • View Profile
Re: SD3 Engine Improvement project
« Reply #8 on: January 14, 2015, 03:41:41 AM »
There has been a 3 player patch around for ages.

I know. And it had some bugs (i.e. in the Phantom Ship). I don't know if the patch is fully debugged now.

Anyway, let me asking that in other way. Are you kepping in mind that patch?
I am talking about avoiding the edition of addresses affected by the existing patch and tracing every possible overlap with other patches.

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: SD3 Engine Improvement project
« Reply #9 on: January 14, 2015, 12:54:08 PM »
I will try to ensure compatibility whenever possible, yes. As for whether or not I want 3-player functionality within my patch, I don't know. It would be nice to fix that ghost ship bug, but it might be out of scope for my project.

I might end up just ensuring compatibility with the 3-player patch.

Digitsie

  • Mom Bomb
  • *
  • Posts: 105
    • View Profile
Re: SD3 Engine Improvement project
« Reply #10 on: January 14, 2015, 04:19:54 PM »
Why not just incorporate the patch into your assembly so you can fix over it as needed?

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: SD3 Engine Improvement project
« Reply #11 on: January 14, 2015, 07:51:12 PM »
Well...I suppose I can do that. That's a long time from now, though.

dudejo

  • Ymir
  • *
  • Posts: 19
    • View Profile
Re: SD3 Engine Improvement project
« Reply #12 on: April 27, 2015, 08:32:36 PM »
http://www.insanedifficulty.com/board/index.php?/topic/6274-fix-only-patch/

For whoever is interested, this here's a basic bug fix patch by Praetarius.

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: SD3 Engine Improvement project
« Reply #13 on: April 28, 2015, 07:24:42 AM »
He is doing more than me, that's for sure. Too bad the ROM had to be expanded beyond 4 megs.

Praetarius5018

  • Vargas
  • *
  • Posts: 88
    • View Profile
Re: SD3 Engine Improvement project
« Reply #14 on: May 05, 2015, 12:46:16 PM »
Well, if half the requested features were actually there I wouldn't have had to...
or at least I never found them and added stuff from scratch.