øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=278;area=showposts;start=720e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexf9ea.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;u=278e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexf9ea.html.zxÎåg^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ0P.UOKtext/htmlISO-8859-1gzip8:ÖUÿÿÿÿÿÿÿÿTue, 10 Mar 2020 19:25:25 GMT0ó°° ®0®P®€§²ð®Íåg^ÿÿÿÿÿÿÿÿ§-U Show Posts - chillyfeez

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 - chillyfeez

721
Oh, no, it's not designed to load a ROM into it. It simply has an output of hex that you could, theoretically, copy and paste into your ROM using a hex editor... Except no hex editor I've ever used allows you to paste "text" into the hex field. So while I use it regularly as a reference, it rarely ever had for me the practical purpose that I think Phoenix intended.
And now everything it does is available to do with FF4kster, so now I use it exclusively as a reference tool.

722
Ah, that is interesting to know, unfortunately FF4Tools no longer work for me since Phoenix's site has gone offline and I could never get the actual tool to work independent of that.
Really? It's just an HTML file (and a bunch of images). I've run it successfully on a bunch of different devices...

723
It's very difficult to see how much space is saved, but after a lot of searching, I figured it out...
First of all, I noticed that whatever I did in the over world maps, the pointers for the underworld/moon maps never changed. So the game does read which world you're in before loading map data. Underworld/moon maps always start at C712E.
Having noticed that, I then looked at the last map with its own map index in the Overworld (Phoenix's FFTools was key for this process), which is the small dock (used for underground airship docks), map DF.
So then, I counted through the pointers to find the one for DF - not hard, every two lines represents 0x10 maps.
Assuming no changes are made to the Small Dock map (thereby making it longer or shorter), the difference in pointer value before and after this process represents how much space was saved. In my case, 0x3D1 bytes, or 977.
It looks like what  FF4kster does with the extra space is... Absolutely nothing, so all data after the small dock is left exactly as is, which is why you can't just look to see how much space is saved. But the space between the end of the small dock and C712E will always be unused.


Sure, I'll be glad to help you copy Indra's sprites to make him usable. I just finished with a couple of days off and am going into the second busiest weekend of the work year, so it may take a couple of days, but if you PM me a patch with your current work in progress, I'll work on it when I get the opportunity.

724
Hey, that sounds like a cool sidequest. While I never would have thought of a forest dungeon, you're right - it is sort of a Final Fantasy standard that FFIV lacks, so good thinking!
Are you looking specifically to use already-in-game sprites for the boss? I'm not sure you'll be able to palette swap Tellah or FuSoYa. I think Character enemies have fixed palettes (that of their ally component).
you could copy Indra's sprites into one of those empty banks near the summon images, leaving spaces in the right places so that you can call a regular rectangular size (thereby not wasting a Special Size). I can help with that if you want to take that route.

So just for fun today, I played around with eliminating unseen portions of maps to see how much space I could free up. I also turned the Forest Clearing After Mist into all grass. Altogether, these are the changes I made:
Quote
Remove edge of Kaipo Oasis

Remove top two rows of Mysidia

Remove bottowm two rows of Damcyan sub basement

Extend east wing of Fabul 1F

Clear out post-mist forest clearing (make all grass)

blank out top row of mt hobbs west

blank out top row of mt hobbs east

blank out 5x10 rectangle in northeast AND bottom four rows of mt hobbs save point room

blank out top three rows of mt. ordeals entrance

blank out bottom row, top row of mt. ordeals third station

blank out bottom row, southwest 4x11 rectangle, last four spaces of next to last row and last three spaces

   of third to last row of mt. ordeals summit

remove bottom row of tower of zot 6f

remove bottom row of tower of bab-il entrance

eliminate the top 13 rows, the 9 westmost columns and the 8 eastmost columns of the bab-il crystal room

blank out southwest 6x13 rectangle in Giant of Bab-il stomach

remove bottom row of Giant Lung

blank out top three and bottom 13 rows of Two Connected Airships


By doing this, I was able to free up 977 bytes! and with the exception of the Forest Clearing and part of the East wing of the Fabul lobby, all of these changes would be entirely undetectable in normal gameplay.
Maximizing the space saved can be a little tricky sometimes. Because of how maps are written, you save the most space by overwriting the unseen spaces with repeats of whichever tile comes immediately before or immediately after (as opposed to just overwriting it with the "blank space" for that tileset).
Anyway, that amount of space is larger than the amount needed for the Dwarf castle (I think the largest map, datawise) by over 100 bytes. And I only worked with Overworld maps, so the same could theoretically be done for The Underworld/Moon, too.
So idf you're looking for more space for maps... there's some options for you. :)

725
Ah, ok. You mentioned something about a waterfall map that kept recurring and I thought maybe FF4kster was doing that thing it had been doing with dialogue bank 2 (before pinkpuff fixed it), where it recopied everything from the end of the bank over and over again every time the data ewas shortened.

726
I'm curious - what was going on with your maps, and was it clearing up space in FF4kster that broke them?

727
Sorry, what's the problem you've encountered?

Easiest way to tell where your map begins is... Figure out which map it is, then count off the pointers.
Start at B8000 (178000 in LoROM). The first line (B8000 through B800F) are the pointers for maps 00-07. Second line is 08-0F. Third line is 10-17, etc. Then reverse the pointer bytes and add to B8000 (178000 in LoROM). That's where your map starts.

728
Quote
Yikes! I wonder if I cut it close with the Serpent Road then.
Yeah, I thought about that kind of situation, too. The game must have some way of knowing, besides just Overworld/Underworld, which 10000 block to look in for map info, since pointers only indicate a place in ROM indexed a maximum of 0xFFFF bytes away, and map data actually spans almost 0x18000 bytes (which represents three different 10000s in LoROM - $17/8000 into the $19/8000s). But FF4kster allows a hacker to easily add massive amounts of data to an Overworld map without messing up anything in the Underworld or Moon sets. I did notice, when tracing map data pointers, that the game compares the current map pointer with the pointer of the next map (which is completely unrelated oftentimes) before loading map data... Maybe it's looking at several pointers to determine where the pointing leads? I may look into that at some point, simply out of curiosity.

Quote
Yes, that did work, my concern there though is that it marked a ten in a place that had already used it's 10 bit, which leads me to believe that Treasure Indexes may be generated at game file start in the best case scenario, worst case scenario though is that Treasure Indexes are set and by adding or removing chests I've screwed up some order. I really hope it's not that way.
My guess is that it has something to do with you editing and testing within an already-played save.
You could try, if you think it might help, start a new game, then as soon as C&K leave the castle, open Geiger's hex viewer and jump to 7E:171C in RAM, and change it to read: 01 65 9E 00. That will make the Enterprise appear right outside of Baron and you can fly to your dungeon without visiting any other locations first (cheat up your stats in order to assure survival).

Quote
I fear though that people will say the world then feels too "barren"
I agree. I wonder how much could be freed up just by eliminating parts of locations that are never seen...

729
Since a saved game saves whether or not a treasure has been opened, there must be a place in the first 0x1800 bytes of RAM that stores which chests have been opened (because that's what a saved game saves).
It's probably a block of 0x40 bytes (256 bits for Overworld, 256 for Underworld/Moon), and works a lot like event flags (when one is opened, a bit gets set). If we could find this, then you could manually reset all chests in your save in order to test out the chests in your challenge dungeon.
OK, so... there's a couple of things I'm looking for this morning.
I'll get right on it.

 :edit: OK, well, treasure flags were super easy to find. They're immediately after event flags - 7E:12A0 - 7E:12DF.
Set this whole string back to 00s and all of the treasures in a save will be unclaimed again.

 :edit: 2 You're mostly right about the problem with extra maps being lack of space, unfortunately. Map formation pointers are at B8000 (or B8200 with header) through B82FF, and map formation data is B8300 through CFE5F.
CFCF9 through CFE5F is empty, but that's not a whole lot of space for a map - 358 (dec) bytes, or about enough space for 3 fully furnished 10x10 rooms.
 :bah:
You'd also have to have the (Underworld/Moon) flag set in the map properties to have your map load from this part of ROM - not really a problem, but an extra thing to consider when setting up NPCs, treasures, and various other elements that use different indices depending on Overworld/Underworld.

Now, because FF4kster condenses data banks to eliminate wasted space, a ROM edited with FF4kster may have a bit more space than a vanilla ROM.
Let's see...
Nope. Looks like this is actually one place where Square was pretty efficient with their use of space.
 :lame:

Well, you know what we're gonna hear eventually from somebody if we don't preempt it: "Why don't you just expand your ROM and point to the newly-created larger space?"
That, unfortunately, does seem like the only solution that does not involve destroying or shrinking other maps, but you know as well as I that doing so would cause FF4kster incompatibility, which would sort of defeat its own purpose.
So you are stuck with the following options (as I see it):
1) find some locations that you don't need at all. The forest clearing after Rydia summons Titan comes to mind - that event could easily happen in the chocobo forest index, or, you know in a field background since there's no forest there anyway. The place in the ending where Palom is bragging to Leonora - isn't that a unique location? Well, you're much more adept at finding superfluous usage in the game than I am, but the point is - it does exist.
2) Shrink some locations' data footprints by removing what doesn't need to be there.
For example, if you take the Baron Weapon/Armor shop and remove the empty chest that's in a different Y location than the rest of them, all of the wall decorations except for the Sword, Shield and the torch in the center, the pots, table and chairs in the bottom corners, and the stools in front of the counters (replace with blank counter front), the map goes from 166 bytes to 149. Seventeen bytes isn't that much, but doing this with 256(-ish) maps could free up a lot of space.
Hey, blanking out the entire top half of the Bab-il crystal room frees up 255 bytes! Just removing the "edge" of the top, left and right of the oasis in Kaipo, which you never see (replacing it with "center" water tiles) - 31 bytes!
So this idea, while it would take a VERY long time, definitely has some potential...

730
General Discussion / Re: Wiki thread
« on: December 08, 2014, 10:55:14 PM »
Yeah, I don't see any option to create or edit pages either...

731
Final Fantasy IV Research & Development / Re: Spare NPC's
« on: December 08, 2014, 10:38:33 PM »
You can't really use "NPC1."
00 terminates the list of NPCs in each location, so if you try to place this in a map, the game will see it and stop loading NPCs.
Also, remember that the latter 256 NPCs are the NPCs for the underworld and moon. I believe it is impossible to load them in the overworld, and likewise it's impossible to load the former 256 in the underworld and moon.

732
Final Fantasy IV Research & Development / Re: Graphics info
« on: December 08, 2014, 09:07:26 PM »
This would be a great tool to have, Madsiur, and to my knowledge, I don't think pinkpuff has any plans to implement any graphics editing any time soon.

I think the answers to most of your questions are out there. I don't know all of them off the top of my head, but I'll help you dig them up, because down the road, I will could really benefit from a tool like this...

Quote
First, is there a data table with the same number of elements as there is different monsters (excluding special forms) where the palette and graphics offsets are stored?
I think you might be looking for this info:
http://rb.thundaga.com/monsters/monster_image_data_ff2us.txt
The "size" (usually, when it's not a Special Size) is actually a pointer to a two-byte rectangular measurement (byte 0 width, byte 1 height) in the table at 7015E (in ROM with header).
And the graphical pointer (the last two bytes in each entry) is used as follows:
([pointer] * 8) + 8200 = Beginning of graphical data. (Again, ROM with header)

Quote
Second, where does the monster palettes are stored?
Don't know this one, but the answer is almost certainly out there somewhere...

Quote
Third, is there some tile mapping data for regular monsters? FF6 uses 8x8 and 16x16 stencils and the tile mapping is done inside the stencil (so the tile mapping data is either 8 or 16 bytes). Is it the same for FF4?
There's no mapping, so to speak. The aforementioned table identifies a rectangular shape and the tiles fill in that rectangle from left to right, top to bottom, starting with the first tile pointed to by the graphical pointer.

And for the most part, yes, summon graphics are treated like monster graphics. The actual sprites are in the same banks of data as monster sprites, and they use the same palettes. The summons that are also enemy monsters (all of them except chocobo, Jinn, Shiva and Indra) use the same sprites as enemies that they use as summons.
A lot of summons are Special Sizes, though, and to make Shiva, Indra and Jinn enemies requires altering special size data such as the process I described here:
http://slickproductions.org/forum/index.php?topic=1890.msg19384#msg19384

733
Are those listed in the order they appear in ROM?

734
No, I haven't listed them. That would be helpful, for sure.

And that's a good idea - making only the bottom row of castles warpable, but yes, we'll see how helpful that can be. I have the next two days off... Granted I have some IRL stuff to get done, but I intend to do some hackin', so I will look into an easy method to unlock the unindexed maps. It MUST be possible.

735
Grimoire, do you want to change the physical location of the chocobo forest warp point, or the parameters? If you just want to change where it warpsto, that can be done pretty easily. Search slick for the research I did on world map triggers. They work exactly like location triggers (except no treasure chests).
If you want to change the location on the world map of the warp point, that's tougher because you'd need to change the tile to a trigger forest tile, and as you know editing the world map can be a tricky proposition with the available tools.