• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
April 16, 2024, 07:11:06 pm

News:

Use of ePSXe before 2.0 is highly discouraged. Mednafen, RetroArch, and Duckstation are recommended for playing/testing, pSX is recommended for debugging.


cdmage/test.evt step causing game to freeze

Started by Arimala, May 02, 2018, 12:55:06 pm

Arimala

I have play tested my entire patch all the way up to the bed desert boss fight.. The main purpose of my patch was to make most of the boss fight conditions "defeat all enemies" including the Bed Desert fight vs Balk. I have not seen any major glitches or bugs until this fight and I cannot seem to figure out what is going wrong other than the fact I know it has to do with the step involving the test.evt and cdmage.

There is nothing added into this event thats special.. all I did was change the "display conditions" part so it would show the defeat all enemies screen, but the event wont even get that far.
This is where it freezes every time, right after everyone gets poisoned and kneels down:

The music keeps playing but nothing ever happens on screen

Even when I extract a fresh test.evt from an original iso and just add 1 random custom event in(doesn't even have to be the bed desert event).. this bed desert fight will still freeze at the same spot, so the problem cant be the bed desert battle event right?

not sure if this will help...Bed Desert event:
Offset(x002C4000)
//Remove the previous line if you wish not to override the offset in CONFIG.INI.
//Remove the previous line if you wish text to compile directly after instructions.

Erase(x03,x00)
Erase(x78,x00)
Erase(x79,x00)
Erase(x7A,x00)
Erase(x7B,x00)
Erase(x7C,x00)
Camera(+00872,+00019,+00728,+00238,+02208,+00000,+04096,+00001)
WaitForInstruction(x04,x00)
UnitAnim(x00,x00,x02,x00,x00)
{63}(rAA)
Camera(+00584,-00172,+01064,+00430,+03584,+00000,+04096,+00180)
LoadEVTCHR(x01,x64,x00)
{4D}(r40)
WaitForInstruction(x04,x00)
Wait(00040)
DisplayMessage(x10,x11,x0001,x2B,x00,x00,+00006,+00008,+00000,x03)
WaitForInstruction(x01,x00)
WaitForInstruction(x34,x00)
SaveEVTCHR(x01)
WarpUnit(x03,x00,005,002,x00,x02)
Draw(x03,x00)
Draw(x78,x00)
Draw(x79,x00)
Draw(x7A,x00)
Draw(x7B,x00)
Draw(x7C,x00)
UnitAnim(x00,x01,x02,x00,x00)
Sound(x0078)
Wait(00100)
{47}(r2B00000503000001)
{48}()
SpriteMove(x64,x00,+00000,+00088,+00000,x00,x01,+00001)
WaitSpriteMove(x64,x00)
Draw(x64,x00)
AddUnit(x64,x00,x01)
RotateUnit(x2B,x00,x00,x00,x00,000)
Wait(00012)
RotateUnit(x80,x00,x00,x00,x00,000)
Wait(00006)
RotateUnit(x82,x00,x00,x00,x00,000)
Wait(00010)
RotateUnit(x84,x00,x00,x00,x00,000)
Wait(00004)
RotateUnit(x81,x00,x00,x00,x00,000)
Wait(00008)
RotateUnit(x83,x00,x00,x00,x00,000)
{63}(rCA)
Camera(+00728,+00067,+00392,+00462,+02496,+00000,+04096,+00064)
WaitForInstruction(x04,x00)
Wait(00030)
Effect(x021C,x64,005,003,x00)
DisplayMessage(x10,x92,x0002,x2B,x00,x00,+00000,+00010,-00002,x02)
WaitForInstruction(x01,x00)
DisplayMessage(x10,x91,x0003,x03,x00,x00,+00000,+00000,+00002,x03)
WaitForInstruction(x01,x00)
ChangeDialog(x02,x0004,x00,x00)
WaitForInstruction(x01,x00)
ChangeDialog(x01,x0005,x00,x00)
WaitForInstruction(x01,x00)
ChangeDialog(x02,x0006,x00,x00)
WaitForInstruction(x01,x00)
ChangeDialog(x01,xFFFF,x00,x00)
Wait(00004)
ChangeDialog(x02,xFFFF,x00,x00)
WaitForInstruction(x01,x00)
Wait(00020)
EffectStart()
UnitAnim(x2B,x00,x58,x02,x00)
Wait(00006)
UnitAnim(x2B,x00,x59,x02,x00)
Wait(00008)
Sound(x0041)
UnitAnim(x2B,x00,x5A,x02,x00)
Wait(00016)
UnitAnim(x2B,x00,x59,x02,x00)
Wait(00008)
UnitAnim(x2B,x00,x5B,x02,x00)
Wait(00006)
UnitAnim(x2B,x00,x5C,x02,x00)
Wait(00006)
UnitAnim(x2B,x00,x5D,x02,x00)
Wait(00008)
UnitAnim(x2B,x00,x5E,x02,x00)
Wait(00010)
Sound(x0030)
UnitAnim(x2B,x00,x5D,x02,x00)
Wait(00006)
UnitAnim(x2B,x00,x5C,x02,x00)
Wait(00002)
UnitAnim(x2B,x00,x5F,x02,x00)
Wait(00002)
UnitAnim(x2B,x00,x60,x02,x00)
Wait(00004)
UnitAnim(x64,x00,x6D,x02,x00)
SpriteMove(x64,x00,-00028,-00089,+00118,x00,x01,+00001)
WaitSpriteMove(x64,x00)
BlockStart()
UnitAnim(x03,x00,x66,x02,x00)
Wait(00010)
UnitAnim(x03,x00,x67,x02,x00)
Wait(00008)
UnitAnim(x03,x00,x68,x02,x00)
Wait(00010)
UnitAnim(x03,x00,x67,x02,x00)
Wait(00008)
UnitAnim(x03,x00,x69,x02,x00)
Wait(00006)
UnitAnim(x03,x00,x6A,x02,x00)
Wait(00006)
UnitAnim(x03,x00,x6B,x02,x00)
Wait(00006)
BlockEnd()
BlockStart()
UnitAnim(x2B,x00,x61,x02,x00)
Wait(00006)
UnitAnim(x2B,x00,x62,x02,x00)
Wait(00008)
UnitAnim(x2B,x00,x63,x02,x00)
Wait(00024)
UnitAnim(x2B,x00,x62,x02,x00)
Wait(00008)
UnitAnim(x2B,x00,x61,x02,x00)
Wait(00006)
UnitAnim(x2B,x00,x64,x02,x00)
Wait(00006)
UnitAnim(x2B,x00,x65,x02,x00)
Wait(00008)
UnitAnim(x2B,x00,x02,x00,x00)
BlockEnd()
SpriteMove(x64,x00,-00023,-00093,+00104,x00,x01,+00008)
WaitSpriteMove(x64,x00)
SpriteMove(x64,x00,-00019,-00089,+00075,x00,x01,+00008)
WaitSpriteMove(x64,x00)
SpriteMove(x64,x00,-00014,-00074,+00049,x00,x01,+00008)
WaitSpriteMove(x64,x00)
SpriteMove(x64,x00,-00009,-00055,+00028,x00,x01,+00007)
WaitSpriteMove(x64,x00)
SpriteMove(x64,x00,-00004,-00029,+00013,x00,x01,+00006)
WaitSpriteMove(x64,x00)
SpriteMove(x64,x00,+00000,-00002,+00000,x00,x01,+00005)
WaitSpriteMove(x64,x00)
{1C}(r02)
EffectEnd()
Wait(00020)
Erase(x64,x00)
Wait(00050)
EffectStart()
{1C}(r01)
InflictStatus(x03,x00,x02,x0C,x00)
WaitForInstruction(x43,x00)
InflictStatus(x78,x00,x02,x0C,x00)
WaitForInstruction(x43,x00)
InflictStatus(x79,x00,x02,x0C,x00)
WaitForInstruction(x43,x00)
InflictStatus(x7A,x00,x02,x0C,x00)
WaitForInstruction(x43,x00)
InflictStatus(x7B,x00,x02,x0C,x00)
WaitForInstruction(x43,x00)
InflictStatus(x7C,x00,x02,x0C,x00)
WaitForInstruction(x43,x00)
Wait(00040)
RemoveUnit(x64,x00)
DisplayMessage(x10,x91,x0007,x03,x00,x00,+00012,+00000,-00008,x01)
WaitForInstruction(x01,x00)
DisplayMessage(x10,x92,x0008,x2B,x00,x00,+00000,+00010,+00000,x01)
WaitForInstruction(x01,x00)
ChangeDialog(x01,x0009,x00,x00)
WaitForInstruction(x01,x00)
ChangeDialog(x02,x000A,x00,x00)
WaitForInstruction(x01,x00)
ChangeDialog(x01,x000B,x00,x00)
WaitForInstruction(x01,x00)
ChangeDialog(x02,x000C,x00,x00)
WaitForInstruction(x01,x00)
Sound(x0041)
UnitAnim(x03,x00,x02,x00,x00)
Wait(00020)
ChangeDialog(x01,x000D,x00,x00)
WaitForInstruction(x01,x00)
ChangeDialog(x02,x000E,x00,x00)
WaitForInstruction(x01,x00)
ChangeDialog(x01,xFFFF,x00,x00)
Wait(00008)
ChangeDialog(x02,xFFFF,x00,x00)
WaitForInstruction(x01,x00)
Wait(00030)
{1C}(r02)
Camera(+00504,-00268,+00952,+00302,+03584,+00000,+04096,+00128)
Wait(00030)
DarkScreen(x00,x01,012,064,x00,004)
WaitForInstruction(x36,x00)
Wait(00030)
DisplayConditions(x08,060)
WaitForInstruction(x38,x00)
WaitForInstruction(x04,x00)
DisplayConditions(x00,060)
WaitForInstruction(x38,x00)
RemoveDarkScreen()
WaitForInstruction(x36,x00)
{1C}(r01)
Wait(00040)
UnitAnim(x2B,x00,x03,x00,x00)
UnitAnim(x03,x00,x03,x00,x00)
Wait(00014)
UnitAnim(x81,x00,x03,x00,x00)
UnitAnim(x79,x00,x03,x00,x00)
Wait(00008)
UnitAnim(x83,x00,x03,x00,x00)
UnitAnim(x7A,x00,x03,x00,x00)
Wait(00012)
UnitAnim(x82,x00,x03,x00,x00)
UnitAnim(x7B,x00,x03,x00,x00)
Wait(00010)
UnitAnim(x80,x00,x03,x00,x00)
UnitAnim(x7C,x00,x03,x00,x00)
Wait(00014)
UnitAnim(x84,x00,x03,x00,x00)
RemoveUnit(x85,x00)
RemoveUnit(x86,x00)
{63}(rA8)
EventEnd()

//INSTRUCTION SECTION END -  TEXT START
//Message x01
{font:08}Balk{br}
{font:00}...They're all spread?{br}
{br}
Nice wind. Should be enough{br}
to float them around in{br}
the air for most of the day.{end}

//Message x02
{font:08}Balk{br}
{font:00}Uh{D11D}oh...Didn't think I'd{br}
see you here...{end}

//Message x03
{font:08}{Ramza}{br}
{font:00}What are the Shrine Knights{br}
doing here?{br}
You said, "spread"...{br}
What the hell did you spread?{end}

//Message x04
{font:08}Balk{br}
{font:00}Wanna know...?{br}
{br}
I guess I can tell you{br}
because there's nothing{br}
you can do now.{end}

//Message x05
{font:08}{Ramza}{br}
{font:00}Spill it!{br}
What did you spread?{end}

//Message x06
{font:08}Balk{br}
{font:00}This!{end}

//Message x07
{font:08}{Ramza}{br}
{font:00}Poison!?{end}

//Message x08
{font:08}Balk{br}
{font:00}That's right. I spread this{br}
to the Hokuten Province.   {br}
Any soldier who inhales this{br}
will be too sick to fight!{end}

//Message x09



I tried this with 1.91 easyvent.. until i saw there was a new version out.. so i went into 2.0, made a new custom event for the bed desert boss fight, compiled it in and imported with cdmage and it still freezes.

I have completely hit a wall with this, any help would be much appreciated.


  • Modding version: PSX

CONMAN

I think some text is missing from what you posted.  I think this post will fix your issue with this scene.  I vaguely remembered reading that a few basic events in evsp were incorrect.

http://ffhacktics.com/smf/index.php?topic=7706.160
  • Modding version: PSX

Xifanie

CONMAN is correct, you're missing text strings.

ChangeDialog goes all the way to x000E, but your last message is x0008... you're missing 6 messages.
ChangeDialog(x02,x000E,x00,x00)
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

Arimala

May 02, 2018, 09:30:27 pm #3 Last Edit: May 02, 2018, 10:25:19 pm by Arimala
oh wow.. is it really that simple? i'll check this out asap.

thanks for the quick responses like always

EDIT: IT WORKS!!! It really was that simple. thanks guys
  • Modding version: PSX