Aslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;sa=messages;u=29e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexcfcf.htmldelayedslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=29e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexcfcf.html.zxAg^ЋOKtext/htmlISO-8859-1gzip@HTue, 10 Mar 2020 07:45:23 GMT0 0PAg^[+ Show Posts - Gemini

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

Pages: 1 2 3 »
1
Battle palettes for characters are exclusive, you can change them with no issues on other entities.

2
It's been a while so don't take this as 100% sure information, but that effect should be hardcoded with the battle background ID.

3
Bad quality, but this is taken out of the EZweb version: https://www.youtube.com/watch?v=ZJewBpaU5c0

[EDIT] The battle theme: https://www.youtube.com/watch?v=cLfjj0XvS4A
This first part (i-mode OST) sounds pretty SNES as it comes. You can find a few more examples in the same channel. :3

4
This is what the i-mode Legends looks like:


Some Japanese pixel artist known as Dot Muso also made a couple mocks of that a GBA/DS port could have looked like:


Extremely hot if you ask me. :blush: Even the i-mode sound track hits you in the nostalgic guts, with its way to clone SNES sound.

5
There are definitively some very cool sprites. You'd be surprised to see how the large majority of them looks pretty bad in "HD". :happy: It'd be nice if more things could be converted with the same scripts, like characters and map tiles, but after several tries I can't ever get them to make any sense. Only a true i-mode rip would make them justice. :tongue:

6
Brief introduction
These sprites are pseudo SNES rips of FFDL, pretty much the last old school FF game we'll get for a while. They aren't 1:1 rips as they are reprocessed via Photoshop scripts to resemble as close as possible their i-mode counterparts (can't find any dumps of the game and ripping them from a paid copy seems almost impossible). Some have a few edits to feel a bit more legit (*cough* gray outline *cough*). I'm posting the reworked rips here as I don't have much of a use to them, but they may come in handy for other people's hacks.

Usage
While these sprites may look like legit SNES graphics, some of them could require extra edits to fit 16 bit limitations. As a matter of fact, most of them stay below the 16 color limit, while a few definitively exceed it, especially bosses. I didn't really change the original palettes, but actually used them to keep correct reduction and shading.

Legal issues
Since Dimensions is still on sale, I'd rather avoid posting the original sprites. If you need them for reference about how to improve the general quality or to fix flaws, just send me a private message. :P

Preview


Links
Click here for the download.

7
I actually worked directly on the SFC version only once, years ago. I think that could still be sorta done, but not without huge optimizations, like palette reorganization and better VRAM management. For example, injecting the improved battle backgrounds would required a massive palette search algorithm in order to compress 8 bit pictures to use no more than two palettes. :shadow: I do know more or less how the SFC code works, since it's what I use in IDA to decipher what the PSX counterpart does, but writing optimized code for the 65c816 definitively isn't my field of knowledge. :tongue:

8
As long as they don't break the menu layout, any mugshot should really work, even the original stuff Amano created. :wink:

Meanwhile, in the land of dragon-clones:

Cains, Cains everywhere! Slowly grabbings bits of information from the original rendering routines. I still need to figure out how the NPC status structure works exactly, but so far the result isn't too bad. :happy:

9

It took me a while to find some of the info in the GBA code, and some bits are still unknown, like the actual frame count for each sprite entry. If I can reorganize this better, along with town tile sets, most of the visuals in the game should one-up in a single blow. :cycle: Too bad I have no freaking idea how tile sets are loaded on the GBA; needs more debugging. :shadow:

 :edit:
Now working on a new rendering procedure for the field module:

This is from Baron town's map. The drawing info about NPC seems to be stored at 7E:0900 and it follows this structure:
Code: [Select]
typedef struct tagNpcRender
{
u8 unk00;
u8 id; // ? 0x20=continuos frame h-flip
u8 movement; // 00=no movement
u8 x_pos, x_tile;
u8 y_pos, y_tile;
u8 unk01[4];
u8 unk02; // doesn't do a thing
u8 move; //
u8 palette:4;
u8 flip:4; // OAM flip flags
u8 frame; // seems like a frame counter
} NPC_RENDER; // located at 0x900 in ram
I still need to identify most of this mess and also locate x/y screen coordinates, plus the actual map data in RAM. With these tasks out of the work table, I can pretty much ditch the SNES interpreter and render everything natively with improved graphics and performance. :childish:

10
According to my XML dump of the PlayStation rom:
Code: [Select]
  <Monster ID="105" Name="Balloon">
    <Stats lv="33" hp="697" boss="0" mag="0"/>
    <Attack mult="6" perc="70" base="72"/>
    <Defense mult="3" perc="60" base="4"/>
    <MagicDefense mult="4" perc="60" base="19"/>
    <Speed min="23" max="26"/>
    <Status type="0" atk_elem="0x00" atk_stat="0x0000" def_elem="0x00" def_stat="0x0039" weakness="0x20"/>
    <Gain exp="2459" gil="315"/>
    <Drops id1="176" id2="178" id3="196" id4="232" rate="1"/>
  </Monster>
Code: [Select]
  <Monster ID="87" Name="Chimera">
    <Stats lv="28" hp="700" boss="0" mag="0"/>
    <Attack mult="6" perc="90" base="80"/>
    <Defense mult="3" perc="15" base="3"/>
    <MagicDefense mult="4" perc="40" base="18"/>
    <Speed min="20" max="23"/>
    <Status type="0" atk_elem="0x00" atk_stat="0x0000" def_elem="0x47" def_stat="0x30B8" weakness="0x00"/>
    <Gain exp="1708" gil="228"/>
    <Drops id1="86" id2="176" id3="177" id4="192" rate="1"/>
  </Monster>
Code: [Select]
  <Monster ID="25" Name="BlackLiz">
    <Stats lv="25" hp="792" boss="0" mag="16"/>
    <Attack mult="5" perc="90" base="64"/>
    <Defense mult="3" perc="40" base="4"/>
    <MagicDefense mult="3" perc="60" base="15"/>
    <Speed min="21" max="24"/>
    <Status type="4" atk_elem="0x00" atk_stat="0x0000" def_elem="0x00" def_stat="0x0018" weakness="0x02"/>
    <Gain exp="1298" gil="43"/>
    <Drops id1="94" id2="94" id3="94" id4="34" rate="1"/>
  </Monster>
They are correct, apparently. :happy:

11
According to that page, this is Remedy Bomb's description:
Quote
自分がピンチになると、「自爆」で相手も
道連れにする。早いうちに一撃で倒そう
Which roughly translates to:
Quote
When in a pinch, this enemy uses "Self-destruct" in an attempt to kill its opponents. Defeat it as quickly as possible!

Sounds like a good source of information. :childish: Is that official guidebook easy enough to find or to buy? I could use some good transcription of it.

12
I am aware of the new battle sprites, however I have only some of them, most coming from TAY. For example, Cid is just TAY's recolored to have a brown beard, and Golbeza (flashback) & Fusuya are identical to their FF4 counterparts. I would have dumped the graphics myself from the game, but apparently there's no data dump anywhere on the net, probably because i-mode games can't be dumped or something (or Japanese people don't like to share these :shadow:). :hmm:

13
In terms of music my vote is for the original untouched - it's perfect! Or maybe an option?
What about sound effects? They were somewhat muffled in the PSX version, weren't they?
How exactly did TOSE manage to screw up the sound in every single of their PSX ports anyway, I wonder...
I haven't done much about sound, although I did get myself into a yet-to-be-perfected NDS SEQ tracker that plays most of the FF4 DS tunes more or less indecently. If that can be completed for good, we can use the tracker as a base to port over the SNES tunes and make them play with either original instruments or improved ones. The real challenge in this port is that TOSE didn't bother to use a tracker format for music and simply went streamed instead, locking the CD-Rom unit pretty much entirely. The other horrible gimmick they have in this port is that the entire sound library for SFX is stored inside a single, huge file always cached in the SPU RAM. In other words, they put in there a ton sound samples and made sure they would fit in 400 or so KB, butchering quality beyond redemption. :tongue: Fortunately this problem can be fixed when I'm done identifying most of the sound core aspects of the engine, so that a replacement with dynamic loading can be provided. This is how I'd store the sound fonts:
  • System samples that are always supposed to be in memory (i.e. cursor sounds, spells for menu, misc sfx from the field module);
  • Battle static samples, such as sword slashes, arrow hits, etc. In other words, a pool of samples that are always supposed to be there and cached when the battle module is running;
  • Dynamic caching of spell samples, loading along with new graphics as soon as a player finishes casting;
  • SEQ+VAG banks for music, cached as soon as a new tune starts playing.
Quote
Looking at those Golbez and Rubicant sprites reminds me of something:
You probably realize that some sprites were shrunk for the WSC/GBA versions and never made it back to their original size. Even in versions that provided enough space:



Just yesterday I found out that the game "Final Fantasy: All the Bravest" has some of them restored to full size:


SNES/GBA/Bravest
I do remember some of the sprites going down in size even in other ports, like FFOrigins, but with FF4 it's barely noticeable. Not that I wouldn't like restored size while they retain improved color smoothness. :happy: My bestiary module can already take any size of sprites, as long as they fit in 256x256 pixel VRAM pages (they always fit :finger:). Heck, I could even put some of those to break the 16 color limit, like Zeromus EZ/EG.

I would also be interested in full sprite-sheets of players, but I couldn't find myself a decent way to rip them, other than grabbing a few from S-E's website. :/

Using the original SNES music with upgraded samples gets my vote.
I'm most looking forward to the ability to pretty much freely adding "custom parts".
There are quite a few spells and commands I'd like to add.
If I can add a way to replace spell formulas and sprite effects, this is definitively going into the project. :laugh:

 :edit:
I added something new to the mix: http://www.youtube.com/watch?v=xOr3cY3LiE8
Monsters now have a description, too. It is stored right inside their bestiary data, so the descriptions cache in real time and don't sink down my memory reserved for system strings. :happy: For those who can't open YT videos, here's what the bestiary looks like right now:


 :edit:
Moar news: I started slightly rewriting part of the way the menu works in order to split submodules into separate overlays (as I was running low on RAM space :tongue:) - should be extremely useful when item/magic usage code starts to get added in. I also took some time to drop most statically defined strings (i.e. function string parameters) and I replaced them with a proper system pool; messages are stored to an external chunk of data and can be rebuilt without the need of a source recompilation or huge #ifdef's in the code. This will be somewhat useful if anybody wants to make a localized version in other languages, plus it strips away all the string padding GCC bloats the binaries with. :cycle: When I'm done with string packages, all of them will be moved to independent files that can be cached and accessed at will from the CD-Rom unit, for example from a language selector.

By way, the bestiary is pretty much complete and embellished with some FF Origins icons. ;D

I have no idea why, but it also loads much faster than its GBA counterpart, and I'm not even using compression. :wtf: Also, anybody willing to put together a nice list of monster descriptions? I'm totally not good at writing any of those - I may even end up describing Bahamut's lunar palace in detail instead of going background info on him.

And finally:

Adding the last few menus left - headaches ahead, yay! :childish:

14
I meant both, but the spell power of a monster in particular.

Damn, I'm dumb. :tongue: I found the spell power by rereading my notes and I totally forgot to copy that bit of information from the extra flags, so the spell power went completely under my nose even if it was accounted for in the parsing procedure. One more bit added to the bestiary. Now I'd really like to parse dynamically all the battle script stuff about spells and make this almost as complete as the Chrono Trigger DS bestiary. :happy:

15
I guess I'm getting kinda frustrated again by how this game stored every damn piece of information. :sleep: On to the problem:

Now, while most of it is fine in my revision of the bestiary, there is something missing: the 'Magic' attribute. I have absolutely no idea where that is stored or how it could be calculated, since it's not part of the usual stats a monster has.

Here's what Rubicante's stats look like in my XML:
Code: [Select]
  <Monster ID="187" Name="Rubicant">
    <Stats lv="50" hp="34000" boss="1"/>
    <Attack mult="8" perc="70" base="80"/>
    <Defense mult="2" perc="25" base="3"/>
    <MagicDefense mult="8" perc="80" base="37"/>
    <Speed min="38" max="38"/>
    <Status type="0" atk_elem="0x00" atk_stat="0x0000" def_elem="0x41" def_stat="0x0400" weakness="0x00"/>
    <Gain exp="18000" gil="7000"/>
    <Drops id1="206" id2="206" id3="206" id4="206" rate="0"/>
  </Monster>

Could the magic value be derived from somewhere else? Like the attack patterns and stolen items. No clue really, but I'd like this to be as complete as possible, so if anybody can help let me know. :shadow:

Meawhile I started adding more to the module itself, like the ability to switch backgrounds on-the-fly and a full scrollable list (a carbon copy of the usual bestiaries from FF Origins on). The information for the BGs is stored along with the order of the bestiary, meaning we can have the list to skip bogus entries such as scripted battles or dummy enemies. :childish:

Pages: 1 2 3 »