Users browsing this thread: 1 Guest(s)
Event edit questions

#1
Posts: 169
Threads: 19
Thanks Received: 2
Thanks Given: 15
Joined: Jul 2015
Reputation: 2
Status
None
I'm trying to figure out camera movement, and other things. Fiddling with the introduction scene -- the "Long ago, the War of the Magi..." is giving me some info but it's still unclear how some things work.

This is the byte sequence for the camera while the 1st bit of text, "Long ago [...] ceased to exist", is being displayed over the Narshe peak --

30 04 9E 9E 86 FF

30: Begin action queue for character $30 (Camera)
04: ???
9E: Move vehicle/entity down 8 tiles
0E: Move vehicle/entity down 8 tiles
86: Move vehicle/entity down 2 tiles
FF: End queue

Firstly, i'd like to know what the second byte (04) does; it's not included in the event dump file by Imzogelmo.

Second, how does the movement bytes work? I've changed the last one (86) a few times and the effects were as follows:

84        Move vehicle/entity UP 2 tiles
85        Move vehicle/entity RIGHT 2 tiles
86        Move vehicle/entity DOWN 2 tiles
87        Move vehicle/entity LEFT 2 tiles

What is the logic here? It's like adding 01h changes the movement direction by 90° clockwise. But that doesn't explain much.

Any ideas?
  Find
Quote  

#2
Posts: 378
Threads: 94
Thanks Received: 17
Thanks Given: 26
Joined: Jul 2013
Reputation: 11
Status
Charmed
The byte after Begin Action queue tells the game how many bytes does it have to read for the actions of the selected actor. This is because some bytes can do different things weither they're in an action queue or not.

90 outside an action queue unlocks the Bum Rush, but inside an action queue it moves vehicle/entity up 5 tiles.

So 04 tells the game there are four bytes (three + FF, end of queue) the game has to consider as action queue. There are variations.
04 tells the game to continue with the following code without waiting for it to finish. 84 (80 + number of bytes action queue is long) would tell the game to wait till the action queue is finished before continuing with the rest of the code. 00 + "number of queue bytes long" is useful if you need to have a two or more characters moving at the same time.

For the second question, I don't think there's too much relation between adding 01 to the resulting action. When I event edit I just search in the dump "up 5" or "right/down 3". It does the trick better than trying to memorize. I still don't know what byte to put to make a character face left. I always check it out.


Step forward, spriters! We are also responsible to make hacks look new and fresh, we are no less important than code or ASM hackers! CHARGE!!
Quote  

#3
Posts: 169
Threads: 19
Thanks Received: 2
Thanks Given: 15
Joined: Jul 2015
Reputation: 2
Status
None
I see, the 80+number of bytes explains a lot. And you're right about the movements, it didn't cross my mind to just find existing examples. Thanks, I'm learning a lot...
  Find
Quote  

#4
Posts: 127
Threads: 8
Thanks Received: 21
Thanks Given: 12
Joined: Jan 2012
Reputation: 13
Status
None
Code:
Movement (80-9F):
 100nnndd
 ___ _ __
  |  | |__ d: direction (0: up, 1: right, 2: down, 3: left)
  |  |____ n: number of steps (1 is added to this, so 1-8 steps possible)
  |_______ always 100

Movement table in tiles:
1      2      3      4      5      6      7      8
------------------------------------------------------
80     84     88     8C     90     94     98     9C   | Move character up
81     85     89     8D     91     95     99     9D   | Move character right
82     86     8A     8E     92     96     9A     9E   | Move character down
83     87     8B     8F     93     97     9B     9F   | Move character left
from the wiki: https://www.ff6hacking.com/wiki/doku.php...ions_80-ab

this is originally documented in ff3info.txt by Yousei
  Find
Quote  

#5
Posts: 169
Threads: 19
Thanks Received: 2
Thanks Given: 15
Joined: Jul 2015
Reputation: 2
Status
None
Great timing, I was just stating to mess with movement. That table looks really handy.

To make sure I understand, to make a character move I need to insert the move command inside an action queue for that actor, right? Like

00 83 C0 89 FF

00: actor in slot 0
83: 3 byte action queue with precedence/priority
C0: slowest movement speed
89: move 3 tile to the right
FF: end queue

Is that correct?
  Find
Quote  

#6
Posts: 2,549
Threads: 98
Thanks Received: 147
Thanks Given: 159
Joined: Aug 2009
Reputation: 52
Status
Nattak\'d
That is correct yes.
Quote  

#7
Posts: 81
Threads: 4
Thanks Received: 6
Thanks Given: 6
Joined: Nov 2009
Reputation: 14
Status
Weakness
(06-02-2016, 02:18 PM)Kugawattan Wrote: For the second question, I don't think there's too much relation between adding 01 to the resulting action. When I event edit I just search in the dump "up 5" or "right/down 3". It does the trick better than trying to memorize. I still don't know what byte to put to make a character face left. I always check it out.

I do the same thing. No sense really in memorizing the commands per se; if you use it enough you will naturally remember it, and if not, that's OK because that's why God created the Ctrl+F sequence. Smile


I appreciate the prayers and good wishes. Those who don't know, I was diagnosed with stage 4 melanoma in 2019, and I have done well with the treatment, but eventually treatments stop working and you change.  I recently had a seizure at work, now I am healing but not able to work or really do much at all. The focus is just to get better. Again, thanks for the support and if I can help you I will.  I've forgotten more about this game than most people should ever learn, lol.
  Find
Quote  

#8
Posts: 169
Threads: 19
Thanks Received: 2
Thanks Given: 15
Joined: Jul 2015
Reputation: 2
Status
None
I'm having a bit of a problem -- after the intro event plays out, I can't seem to give the player control of the character. The game just crashes.

I might as well post the code for what I did, it's not much really



Code:
INTRO, SIEGFRIED


6B 60 34 1B 07 C0 (load mt.kolts map, outside)

B0 0A 50 2F B1 (add blue tint to screen)

B0 08 52 2F B1 (add blue tint to sprites)

3D 00 (create actor 00)

41 00 (make visible actor 00)

00 84 D5 1B 05 FF (set position for actor 00)

00 82 07 FF (action queue: face left)

59 02 (fade in)

38 (prevent camera from following character)

95 (pause)

95 (pause)

4B 01 80 ("It is not here. Gone, yet again.")

94 (pause)

00 82 23 FF (action queue: forwards, head left)

93 (pause)

4B 02 80 ("Hmm? No, it's no purpose. Be at ease.")

00 82 01 FF (action queue: face forwards)

92 (pause)

4B 03 80 ("We must depart for the city. Our stock is nearly spent.")

00 83 C1 8A FF (action queue: move down 3 tiles, slow speed)

94 (pause)

4B 04 80 ("I will find you, creature.")

40 00 00 (assign properties to actor 00)

3F 00 01 (add actor 00 to party)

3C 00 FF FF FF (set party)

46 01 (set party 01 as current party)

00 82 D7 FF (center screen on actor 00)

39 (allow camera to follow character)

FE

What is missing here...? I thought I had everything covered.

If it matters, this code starts at CC/985F. It replaces the "Long ago, the War of the Magi..." sequence.

EDIT: m06 helped me solve it, thx dude
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite