Users browsing this thread: 1 Guest(s)
Day/Night cycles in FF6

#11
Posts: 121
Threads: 11
Thanks Received: 6
Thanks Given: 0
Joined: Jan 2013
Reputation: 7
Status
None
Even if this doesn't work on the overworld, this is still an amazing start. I can't wait to see where people take this.
  Find
Quote  

#12
Posts: 831
Threads: 41
Thanks Received: 16
Thanks Given: 12
Joined: Nov 2009
Reputation: 18
Status
None
(12-28-2013, 09:36 PM)Lockirby2 Wrote: I'm pretty sure that it can't work on the overworld without some serious hacking. It's not event hacking anyways, so I can't really do it yet.

On a similar note, I tried once to do an event in which celes would be kicked out of a certain town to the world map. Since this event was planned to be narrated (like a memory), the world map needed to be loaded with the yellow tinting of the map/screen in order to make it look like as if someone's remembering the event.

Long story short, the world map does not allow you to recolor it.

Lockirby, your work is impressive. Have you thought about adding a red/orange-ish color to the map to make it look like an actual sunset before the evening/night? It would look awesome wonder if there's any way to make it transition between morning, afternoon(sunset) and evening.
Quote  

#13
Posts: 826
Threads: 11
Thanks Received: 22
Thanks Given: 13
Joined: Nov 2011
Reputation: 16
Status
Double
When I post the code, it will actually be quite easy for you (as an event hacker) to modify the colours and change it to what you want, provided you know the values for which colours you want to use. You can also tint the screen as deep as you want at each interval. In my video, I tint the screen to colour 9B once at each of the first four intervals (cumulatively) and twice at the last two. The only small issue is that there might be a moment where the screen flickers to its normal colour before it gets re-tinted (if you're tinting it to different colours), which might be noticeable if the colour is dark. I haven't tested it though, so it may look fine. I should look at that tomorrow.

You will also be able to change the transition time pretty easily, as long as you know how the timers work. I purposely left it faster than I'd use it in a finished hack because it was easier to test, and I thought the demonstration video was better that way.

On a side note, I rewrote part of the code so that it uses an extra variable, but it's now much easier to work with NPC dialogue that depends on the time of day. It used to take 54 bytes (ouch) for the dialogue that occurs when you talk to the little girl (with three possibilities, depending on the time), but now it only takes 24, and is far easier to understand.


Confused Moogles FTW
Quote  

#14
Posts: 264
Threads: 12
Thanks Received: 4
Thanks Given: 2
Joined: Oct 2009
Reputation: 6
Status
Lucky-Girl
This is particularly impressive. Very good job.

If I had this system, I'd probably set it up so 1 minute in real time is 1 hour "in world" time, so 24 minutes would be a whole day cycle.

That's just what I think, though.


"The doom and gloom is justified.
A couple of people are going to die.
Even though you can turn back the time,
you're always a moment too late!"
  Find
Quote  

#15
Posts: 826
Threads: 11
Thanks Received: 22
Thanks Given: 13
Joined: Nov 2011
Reputation: 16
Status
Double
Ugh, I seem to have hit a bit of a snag. It appears that whenever the timer stops, and you return without fading out the screen, the NPC with the highest number (in the LE) randomly faces upwards. This makes it so that many shop NPC's, for instance, will randomly turn upwards whenever the code darkens the screen and then returns.

This happens even with timers that were used in vanilla, but the NPC's that face upwards aren't visible anyways when these timers are called, or the screen fades out at some point before the timer returns from its code. However, if I do something like delete the five other NPC's in the house on solitary island, the timer there causes Cid to face upwards when it expires.

There are ways around this, but it often requires making an extra NPC to fill the highest slot. As you can imagine, when most hacks fill their NPC counter to the brim, this isn't much of a solution.

I haven't given up hope about this, but I'm not really sure what the problem is. It really just seems to me like the developers did something silly with the timers and didn't catch it through sheer luck.


Confused Moogles FTW
Quote  

#16
Posts: 2,570
Threads: 99
Thanks Received: 160
Thanks Given: 170
Joined: Aug 2009
Reputation: 52
Status
Nattak\'d
Damn, that is a strange one. I'm guessing refresh objects command doesn't do anything to help this either? As far as I know the 45 Refresh Objects command doesn't do anything even though it's constantly used in the event script... Do the NPC get stuck facing up forever or until the timer resets or do they go back to normal upon re-loading the map? And it affects all present NPCs on the map?


We are born, live, die and then do the same thing over again.
Quote  

#17
Posts: 826
Threads: 11
Thanks Received: 22
Thanks Given: 13
Joined: Nov 2011
Reputation: 16
Status
Double
I didn't try Refresh objects this time. I have thrown it in many times before when I wasn't sure what to do, but it has never helped me before. I'll try it again though.

It doesn't affect all NPC's on the map; it only messes with the NPC that has the highest number in the LE (if there's 10 NPC's, NPC 10 will turn upwards). I think it works the exact same way as if I were to turn that NPC upwards by putting CC in their action queue. NPC's walking around will only turn upwards for a second, because they're still moving, and they'll continue walking as normal afterwards. If I leave the map and come back, the NPC's are in their normal position.


Confused Moogles FTW
Quote  

#18
Posts: 2,570
Threads: 99
Thanks Received: 160
Thanks Given: 170
Joined: Aug 2009
Reputation: 52
Status
Nattak\'d
Just throwing out guesses here; maybe try setting this bit in your entrance code:
1B6 B6:6 Maintains the state of NPCs (after a battle, for instance)
C0 B6 81 B3 5E 00

= C0 If ($1E80($1B6) [$1EB6, bit 6] is set), branch to $CA5EB3 (simply returns)

It's used for NPCs that are on a set 'track', but maybe it would stop the NPC from looking up in this case, hopefully.


We are born, live, die and then do the same thing over again.
Quote  

#19
Posts: 826
Threads: 11
Thanks Received: 22
Thanks Given: 13
Joined: Nov 2011
Reputation: 16
Status
Double
I just tested those...they didn't help unfortunately. I am actually returning by branching to CA5EB3 with the C0 command already. I'm surprised that doesn't get rid of the problem, because that should just return directly to the game without returning anywhere else first. I have a feeling that the timer code itself is the issue, and I can try looking into it, but I'll have to learn some ASM to do that I think...


Confused Moogles FTW
Quote  

#20
Posts: 763
Threads: 83
Thanks Received: 56
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
Wow, this is a really cool concept. I was always a fan of Day/night in Dragon Warrior III, then when it made its return in Pokemon Gold/Silver i was really happy about it. Being able to put something like that in FF6 would be really handy. Writers will have to make sure there are careful not to say something needs to be completed that day or something while the day/night mechanic still works. Is there an event-based off switch?

If you wanted to waste a TON of time with menial event hacking you could have the townspeople walk home at night and shops close up.

Ideally I'd like towns to be state-based and static, while the overworld is where time moves on, but as you said, that is not really event-based.
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite