øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;sa=messages;u=27e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexf953-2.htmllayedslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=27e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexf953-2.html.zx¯Lg^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpn¼(OKtext/htmlISO-8859-1gzip@øÕ¼(ÿÿÿÿÿÿÿÿÑHTue, 10 Mar 2020 08:32:06 GMT0ó°° ®0®P®€§²ð®®Lg^ÿÿÿÿÿÿÿÿ{/¼( Show Posts - Phoenix

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Phoenix

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 »
1
Final Fantasy IV Research & Development / Re: Shadowing Stat Data
« on: April 17, 2011, 08:51:47 AM »
Thanks, glad it's working. It's been so long since I've worked with it I doubt I could even answer any questions about the code anyway.  :wink:

2
Final Fantasy IV Research & Development / Shadowing Stat Data
« on: April 09, 2011, 11:04:16 AM »
At the request of Zozma, I finally found my original documentation on shadowing stat data. I've attached the text description with the hex data to paste at various offsets (FF2us v1.0 headered ROM), as well as an IPS patch that I *think* is complete. (Although it might be for my own hack, which means you might have some non-standard data.) This will should properly copy shadow data for all characters when you add or remove them.

Real life has taken over, so I don't have much time for hacking any more, and probably won't be able to answer questions about any of it. Hopefully you guys can figure it out!

:wedge:

3
Final Fantasy IV Research & Development / Re: Announcing: FF4Tools
« on: November 25, 2010, 09:00:15 AM »
No, I've been too busy with work for the last few months to even touch anything to do with hacking. Someday I might revamp it, but it'll be a long way off.

4
Final Fantasy IV Research & Development / Re: Announcing: FF4Tools
« on: November 15, 2010, 07:33:18 AM »
Hey, thanks for the compliments! I've been swamped with work lately, so I haven't been able to work on my hack much, but you make me want to get back to it. Here's hoping that I'll get some time soon!

5
I don't have time to search through the list, but I'll post my Events list again if you want to look through it. I don't list Rydia in every event she learns the spell, but I'm sure you know the events well enough that you should know when she learns it and can figure it out.

6
The red template is broken in the new version. There isn't enough space between items, making things shift to the right. Also, the "New Posts" and "No New Posts" icons aren't working on the front page.

Cheers!  :happy:

7
Dragonsbrethren, your link doesn't work -- they have hotlinking disabled.

The Leviathan event loads at (A8, 90), which is exactly where that map has it posted: just a bit southeast of the Kaipo desert.

8
Fun to watch . . . but I'm sure not so fun to play. It looks like another good idea that wasn't executed very well.

In other news, I started up my hack again last night, after a four month break of being too busy. I'm hoping to have it finished by November (which would be three years from when I started hacking FF4). I'll keep you guys posted.

 :banonsmash:

9
Final Fantasy IV Research & Development / Re: Basic Sprite editing
« on: December 24, 2009, 10:19:20 AM »
Here you go:

Code: [Select]
688D0-689CF Character Portrait Palette Data
ED5C0-EEF3F Character Portrait Graphic Data (3 bitplanes, composite, 384 bytes per class id)

10
For the location triggers, there's something I don't understand about the way they call events.

From what I understand from the doc posted by Phoenix, there are five bytes to each location trigger. The first two are the (x, y) co-ordinates of the trigger on the corresponding map. That much is easy enough to understand. Then, if the third byte is FF, it means the trigger is an event call (as opposed to being a chest or a teleporter), and the next byte is the event that will be executed. However, looking at the actual data, it must be more complicated than that.

What I mean is, if for example you look at the trigger in the Mist Village that is supposed to execute the event where the bombring activates, the code is:

Code: [Select]
08 10 FF 0C 00
I took that to mean "When the player steps on the tile at (8, 16), execute event number 12." However, event number 12 [0C] is the message "Empty."; the bombring event should be event 48 [30].

So I guess what I'm asking is, is there some table somewhere that the "0C" is indexing? And if so where?

Thanks

Sorry, another piece of information I forgot!

Code: [Select]
97460-9765F Event Trigger Pointers (tells which event each FF Location Trigger invokes, reverse and add 0x97660)
97660-9785F Event Trigger Data

The event trigger data is formatted like the NPC speech data. So basically, that "FF 0C" points to event trigger 0C, which has a series of conditionals and event calls (or just one event call, depending). My event trigger document isn't very long, so I'll just post it here (it has all the data broken down by line, which is useful):

Code: [Select]
======================================================================================
Event Triggers Phoenix Hacks
12/22/09

======================================================================================

Map tile triggers reference event triggers. The pointers for these triggers are
located from 97460 to 9765F. To find where these point, reverse the bytes and
add 0x97660. The event trigger data is located from 97660 to 9785F.

======================================================================================
FFxx = Load event xx
FEaa = If event flag aa is set...
aa = If event flag aa is clear...

Examples:
aaFFxxFFyy = If event flag aa is clear, then load event xx, else load event yy
FEaabbFFxxFEccFFyyFFzz = If event flag aa is set and bb is clear, then load event xx,
else if event flag cc is set, load event yy, else load event zz

The event trigger data, like the NPC speech data, utilizes events numbers 01-03,
which are EE message calls: "Show message [hex data xx following event call] (from bank 2)"
For example, the Old Man wandering in the town of Baron has the following data (at 99EDE-99EEA):
FE 06 FF 03 FE 0B FF 02 FF 01 03 04 05
This translates to:
Data Meaning
-------- ------------------------
FE 06 If event flag 06 is set,
FF 03 load event 03 (i.e. message call EE 02 = message 05 of bank 2)
FE 0B (else) if event flag 0B is set,
FF 02 load event 02 (i.e. message call EE 01 = message 04 of bank 2)
FF 01 (else) load event 01 (i.e. message call EE 00 = message 03 of bank 2)
03 04 05 [Hex data following event call]
======================================================================================


## Offset Pntr Data
-- ------ ---- -----
00 97660 0000 FF 0B
01 97660 0000 FF 0B
02 97662 0200 FF 00
03 97664 0400 FE 0B 09 FF 1A FF 00
04 9766B 0B00 22 FF 14 FF 00
05 97670 1000 04 FF 15 FF 68
06 97675 1500 0B FF 1C FF 1E
07 9767A 1A00 FE 06 FF 00 FF 17
08 97680 2000 08 FE 3F FF 19 28 FF 18 FF 00
09 9768A 2A00 0D FF 27 FF 00
0A 9768F 2F00 0D FF 28 FF 00
0B 97694 3400 0D FF 2F FF 00
0C 97699 3900 0E FF 30 FF 00
0D 9769E 3E00 0F FF 39 FF 00
0E 976A3 4300 13 FF 3C FF 3E
0F 976A8 4800 13 FF 3D FF 00
10 976AD 4D00 14 FF 42 FF 00
11 976B2 5200 27 FF 43 FF 00
12 976B7 5700 12 FF 45 FF 00
13 976BC 5C00 FE 11 15 FF 46 FF 00
14 976C3 6300 16 FF 47 FF 00
15 976C8 6800 1B FF 48 FF 00
16 976CD 6D00 FE 03 FF 00 FF 11
17 976D3 7300 17 FF 31 FF 00
18 976D8 7800 FF 0B
19 976DA 7A00 FE 1B 2C FF 52 FF 00
1A 976E1 8100 FE 1C 1D FF 5F FF 00
1B 976E8 8800 1E FF 60 FF 00
1C 976ED 8D00 1F FF 27 FF 00
1D 976F2 9200 1F FF 28 FF 00
1E 976F7 9700 1F FF 61 FF 00
1F 976FC 9C00 0B FF 62 FF 00
20 97701 A100 FF 65
21 97703 A300 20 FF 63 FF 00
22 97708 A800 FE 06 FF 6B FF 69
23 9770E AE00 FE 06 FF 6C FF 6A
24 97714 B400 24 25 FF 71 FE 23 25 2F FF 72 FF 00
25 97720 C000 57 FF F2 FF 00
26 97725 C500 2A FF 79 FF 00
27 9772A CA00 2F FF 7A FF 00
28 9772F CF00 FE 0C FF 7C FF 00
29 97735 D500 02 FF 51 FF 00
2A 9773A DA00 2D FF 7F FF 00
2B 9773F DF00 FE 2C 18 FF 83 FF 00
2C 97746 E600 31 FE 23 FF 4A FF 00
2D 9774D ED00 0C 26 FE 31 FF 66 0C FE 26 FE 31 FF 8D FF 00
2E 9775C FC00 FE 05 FF 93 FF 00
2F 97762 0201 07 32 FF 8B FF 00
30 97768 0801 FE 3B 3D FF C5 FE 38 3A FF A6 07 FF 8C FF 00
31 97777 1701 FF 8E
32 97779 1901 FF 67
33 9777B 1B01 33 FF 94 FF 00
34 97780 2001 19 FF 95 FF 00
35 97785 2501 FE 19 0A FF 96 FF 00
36 9778C 2C01 0A FF FE FF 00
37 97791 3101 34 FF 9A FF 00
38 97796 3601 FF 9B
39 97798 3801 FF A0
3A 9779A 3A01 53 FF A1 FF 00
3B 9779F 3F01 FF A2
3C 977A1 4101 FE 48 FF F5 FF F4
3D 977A7 4701 FF F6
3E 977A9 4901 FF A5
3F 977AB 4B01 FE 38 39 FF A7 FF 00
40 977B2 5201 3F FF A9 FF 00
41 977B7 5701 FF B0
42 977B9 5901 FF B1
43 977BB 5B01 FF B5
44 977BD 5D01 FF B3
45 977BF 5F01 FF B4
46 977C1 6101 FF B5
47 977C3 6301 FE 40 41 FF AA FF 00
48 977CA 6A01 FE 40 3B FF B6 FF 00
49 977D1 7101 FE 3D 43 FF 9E FF 00
4A 977D8 7801 47 FF D0 FF 00
4B 977DD 7D01 FF 7D
4C 977DF 7F01 FF 7E
4D 977E1 8101 FE 48 FF DD FF DC
4E 977E7 8701 FE 47 48 FF 9D FF 00
4F 977EE 8E01 49 FF ED FF 00
50 977F3 9301 55 FF FC FF 00
51 977F8 9801 FF E6
52 977FA 9A01 FF E4
53 977FC 9C01 FF EB
54 977FE 9E01 FF E8
55 97800 A001 FF E7
56 97802 A201 51 FF 04 FF 00
57 97807 A701 52 FF 05 FF 00
58 9780C AC01 FE 3B FF 00 FF 06
59 97812 B201 50 FF F3 FF 00
5A on 97817 B701 FF

Now, that should be all the information you need to edit maps! Sorry I keep forgetting things, I do it without thinking now so I forgot all the steps and how involved it was.
 :tongue:

11
Game Modification Station / Re: Final Fantasy IV Spriting
« on: December 22, 2009, 09:41:30 AM »
You'd think that ninth tile would work, but it doesn't. If you look at all the characters' "special" sprites, none of them use that ninth tile. You'd probably have to change the graphics loading routine to make it work, but I don't know where that's located.

12
can i steal that info(and the info posted above), phoenix, along with those text documents you posted a few days ago?  i'm going to sit down for a couple hours next weekend and add all the new info i can find to the archive site.  i finally got some decent hosting(read: loads of space and bandwidth), too, so it's at rb.thundaga.com now.
Feel free. Once I finish my hack I'm going to clean up all my documentation and make more sense of it. But for now, you can take whatever I post and use it for whatever you want.

Hmm... I noticed in Zyrthofar's beta editor, that in those four bytes there's quite a bit controlled. The location of course, I'm guessing it looks at that other list for Sprite Number, but here it has Walking Event, Event turns when spoken to, Walking Animation, Can Walk Through (1), Can Walk Through (2) and 3 unknown bits. You pointed me towards the NPC Palette, so I don't think that's very important and direction, now I am to guess this is readily available info. if a viewer has it, only problem is, I'm not sure where that info is.
Did you check out the NPC Placement document? That has all the information on what the bits of those 4 bytes mean. I'll put it here again (in case anyone doesn't want to download the zip file):

Code: [Select]
Byte 0: NPC
Byte 1:
bits 0-4: Starting X position
bit 5: ? (permanently deactivates NPC)
bit 6: ?
bit 7: The NPC walks
Byte 2:
bits 0-4: Starting Y position
bit 5: ? (permanently deactivates NPC)
bits 6/7: Characters can walk through the NPC
Byte 3:
bits 0-1: Direction the NPC faces
00: up
01: right
10: down
11: left
bits 2-3: Palette
bit 4: NPC turns when spoken to
bit 5: NPC moves in place even if not walking
bits 6-7: Movement speed

13
Yes, I didn't think about it, but the town tileset probably isn't set to load encounters by default. You'll need to edit the tile properties. Here's the info:

Code: [Select]
Location Map Tile Properties are located from A1000 to A1FFF.
Tiles are 2 bytes each, using the following format:

Byte 0:
bit 0: Layer 1
bit 1: Layer 2
bit 2: Same layer on opposite side (Transition or Bridge Layer)
bit 3: ?
bit 4: Closed door tile
bits 5-7: ?
Byte 1:
bits 0-2: ?
bit 3: Bottom half is in front of the character
bit 4: Load previous map at previous location (Location Trigger)
bit 5: ?
bit 6: Enemy encounters possible
bit 7: Check tile’s location in [Location Trigger Data]

Change bit 6 of the second byte to 1 to enable enemy encounters. For instance, the town tileset starts at A1400. The first tile there is 0100 (so the second byte in binary is 00000000). If you wanted encounters on this tile, you would change it to 0140 (second byte in binary: 01000000). Hopefully that should be the last piece of information you need.

14
Sorry, I forgot about the encounters. To edit those, you'll need three bits of information:

Code: [Select]
74500-74741 Probability of Enemy Encounter (byte/FF % chance)
74500-7453F For the Overworld (1 byte per 32x32 tile region)
74540 For the Underground (1 byte for the entire map)
74541 For the Moon (1 byte for the entire map)
74542-74741 For Locations (1 byte per location)
74742-74995 Enemy Encounter Indexes (reference the Enemy Encounter Tables)
74742-74781 For the Overworld (1 byte per 32x32 tile region)
74782-74791 For the Underground (1 byte per 32x32 tile region)
74792-74795 For the Moon (1 byte per 32x32 tile region)
74796-74995 For Locations (1 byte per location)
74996-74A15 Enemy Encounter Table for World Maps (1 byte per enemy set, 8 possible enemy sets per entry)
74A16-74C95 Enemy Encounter Table for Locations (1 byte per enemy set, 8 possible enemy sets per entry)

You can leave the Encounter Tables as is (unless you want to change possible enemy sets up), all you'd need to do is edit the Probability from 00 and change the Encounter Index to whichever enemy sets you wanted.

15
All the info on NPCs is in the documentation in the file. You'll have to hex edit the data yourself to change which NPCs appear where. For example, the NPC Placement data in Tomra is:

Code: [Select]
Offset: 9918B
1D 8F 15 BA
01 93 0E 7B
02 84 17 F8
03 8C 05 39
04 9B 17 39
05 9C 16 BA
00

This means that it uses NPCs 1D, 01, 02, 03, 04, and 05 of the Underground/Moon set (take a look at the NPCs document to find out which sprites and speech data these NPCs use). Probably the easiest to do is edit the sprite value and speech data of these NPCs.

Exits (like treasure chests) are also triggers. Take a look at that document. You'll have to change the (x,y) coordinates of the exit triggers to line up with the trigger tiles (the ones with the red dots or arrows).

I've gathered a little more information on the map properties (or map headers), so I'll reiterate it here:

Code: [Select]
================================================
Location Properties (A9E84-AB203) 13 bytes each
================================================
00: Battle/Spell Properties
bits 0-3: Battle Background
0: Grass 8: Magnes/Sealed Cave
1: Forest 9: Desert
2: Mountain A: Beach
3: Castle B: Land of Monsters/Sylphs
4: Cave C: Tower of Zot
5: Moon D: Lunar Subterrane
6: Ship E: Crystal Room
7: Water F: Underground
bit 4: Warp can be cast
bit 5: Exit can be cast
bit 6: Use alternate palette if available (backgrounds 0, 4, 7, 8, B, C)
bit 7: Battles have magnetic effect if event flag E1 is set
01: Map Index
02: Tileset Index
00: Airship 08: Big Whale
01: Lunar Core 09: Land of Monsters/Sylphs
02: Magnes/Sealed Cave 0A: Tower
03: Castle Exterior 0B: Giant
04: Town 0C: Lunar Subterrane
05: House 0D: Mountain
06: Castle Interior 0E: Cave
07: Crystal Room 0F: Ship
03: NPC Placement Index
04: Border Tile Index
bits 0-6: Border Tile Index
bit 7: ?
05: Map Palette Index
06: NPC Palette Index
bits 0-3: NPC Palette Indices 1 & 2
0000: Palettes 01 & 02
0001: Palettes 03 & 04
etc.
bits 4-7: NPC Palette Indices 3 & 4
same as above
07: Music Index
08: Background Index
09: Background Movement
bit 0: Background is transparent when walking under (such as lakes)
bit 1: Vertical Background Relative Movement
bit 2: Horizontal Background Relative Movement
bit 3: ?
bits 4-5: Direction
00: Up
01: Right
10: Down
11: Left
bit 6-7: Speed (Absolute Movement / Relative Movement)
00: None / None
01: Slow / Moves slowly in character's direction
10: Medium / Moves in character's direction
11: Fast / Moves opposite to character's direction
0A: Map Set From Which to Load
01: Load map from Underground/Moon set
80: Load NPCs from Underground/Moon set
0B: Map Name Index
0C: Treasure Contents Index

I'm working on adding loading the tilesets from the ROM and being able to choose the palette and some other map properties, so you'll be able to do that in the next release.

One thing you should note: if you're loading this map directly from the Overworld, you won't be able to use Tomra's map, since the index for it is in the Underground/Moon set. You could load it from another location map (because the triggers have the ability to do that) but the Overworld triggers don't. Good luck.

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 »