This improvement adds a virtual in-game clock displayed on the status bar, along with a day/night cycling system using this clock that tints the palettes (excluding the status bar) in the overworld areas according to the hours. Tint colors and timer speed are easily customisable, everything is explained in the readme and it is easily usable for custom hacks. ASM source is included in the archive.
It can be applied to a normal Link to the Past ROM so that you would play through the whole game with this effect (though it doesn't change any event of the story), it hasn't been tested everywhere but it should work fine.
ZELDA3 TIME + DAY/NIGHT SYSTEM v1.1
===================================
Made by
JaSp
Thanks to
MathOnNapkins' "ZeldaFlow" document and help
Euclid's status bar explanations and help
d4s' help
Byuu's xkas assembler
Geiger's Snes9x Debugger
FuSoYa's zcompress utility
Last update : September, 6 2006
-----------------------------
History:
--------
v2.0:
*Major improvement: complete system re-write. The night effect works on the palettes now, and it works in all situations : layers, mosaic, HDMA warping, sub-areas...
v1.1:
*fixed the pause and save dialog box problems, time no longer increases when a dialog box is openned
v1.0:
*first release
/!\ The IPS PATCH is for an US headered ROM whereas /!\
/!\ the ASM PATCH is for an US headerless ROM /!\
This archive contains :
=======================
*readme_z3 time system.txt this readme file
*z3_time+daynight_source.asm source asm file for use with an assembler on a unheadered Zelda3 ROM
*Zelda3 Time&DayNight_v2.ips ips patch to apply to a headered Zelda3 ROM
*ZeldaGFX.bin graphics file for use with zcompress (http://fusoya.panicus.org/zelda/index.html) containing the "Time-" graphics for HUD
So, what is it ?
================
This patch adds a time control (hours/minutes) to "Zelda 3 : A link to the Past", with a Day/Night handler using this new time feature.
A time indicator has been added to the status bar, showing the hours and minutes. The format is as 24-hour clock, that means from 00:00 to 23:59.
The Day/Night works as follow : on each hour, the palette is updated and changed according to 3 tables telling how many units to substract from the original palette color.
The color units to substract are editable within the ASM source file.
The system is currently set so that 12 real-life minutes correspond to 24 in-game hours, according that the game runs at 60 fps (1 minute in the game = 0.5 real second).
This is also editable within the ASM patch.
How to use it for my custom asm hacks ?
=======================================
RAM Addresses :
Hours $7EE000
Minutes $7EE001
How does the ASM source file work ?
===================================
This file is for use with an assembler, I used xkas (http://byuu.cinnamonpirate.com/?page=utils) so it is fully compatible with this assembler.
The code is quite commented, though you may only want to just change the counter_increasing value (to have faster/slower minutes) or the color_sub_tables.
Here is a little help for the units to substract with the tables :
val BLUE GREEN RED
----------------------------
00 0000 0000 0000
01 0400 0020 0001
02 0800 0040 0002
03 0C00 0060 0003
04 1000 0080 0004
05 1400 00A0 0005
06 1800 00C0 0006
07 1C00 00E0 0007
08 2000 0100 0008
09 2400 0120 0009
0A 2800 0140 000A
0B 2C00 0160 000B
0C 3000 0180 000C
0D 3400 01A0 000D
0E 3800 01C0 000E
0F 3C00 01E0 000F
10 4000 0200 0010
11 4400 0220 0011
12 4800 0240 0012
13 4C00 0260 0013
14 5000 0280 0014
15 5400 02A0 0015
16 5800 02C0 0016
17 5C00 02E0 0017
18 6000 0300 0018
19 6400 0320 0019
1A 6800 0340 001A
1B 6C00 0360 001B
1C 7000 0380 001C
1D 7400 03A0 001D
1E 7800 03C0 001E
1F 7C00 03E0 001F
I prefer to work with hex editors
=================================
Time speed control is at 0xE8198 (headered ROM), current value is 1F.
Change it to a value as 1,3,5,7,F,1F,3F,7F,FF to keep it increasing periodically.
Color tables :
Blue is at 0x770EA
Green is at 0x7711A
Red is at 0x7714A
Two bytes per color (low byte, high byte*), 24 colors per table. Use the table above for help.
* example : 34 12 in hex will be $1234 in the game.
Contact Informations
====================
E-mail/MSN :
[email protected] (be sure to mention a related object for your mail)
Homepage (currently only for my SMB3 hack) : http://klikechange.free.fr/smb3-sud/
You are allowed to share this patch or link it anywhere, as long as the archive isn't modified and that you don't say you made it.
You are allowed to release a modified version of the asm source if you don't claim the whole code as your own.
When used in hack, credit is recommended though not necessary.
Legend of Zelda, The - A Link to the Past [U] [!]
CRC32: DD42510E
MD5: 1A74468291B02729329DD1357AFB45AF
SHA-1: 8288B4BC88052A3CF4EFFED3ACD6A498847BFB95
SHA-256: D9C69C5270B2F7EAC54F254688A43CC767FD5CB4F21FC079A0F9FBE09978EAEC