Please login or register.

Login with username, password and session length
Advanced search  


Please use .png instead of .bmp when uploading unfinished sprites to the forum!

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.

Topics - Xifanie

Pages: [1] 2 3 ... 13
Hacking/Patching Tools / FFT Hack Template Spreadsheet
« on: January 01, 2017, 02:16:12 AM »
FFT Hack Template Spreadsheet

Download the latest version (0.02b)
Download "FFT File List.txt"

What is it?
It's an Excel spreadsheet LOADED with new functions to help you to create and test your ASM hacks in the most user-friendly environment I could think of. You can also easily import your old hacks and it will be nicely reformatted for you, allowing a smooth transition to this tool.
It will forever change the way you make ASM Hacks!

  • Windows OS
  • Microsoft Excel 2007+ (non-negotiable, forget about alternatives)
  • *pSX 1.13 (to use the "Save to Savestate" function)
  • *FFTText Editor spreadsheet (to use the Load "FFTText function")
  • *ISO Manager (to create your own "FFT File List.txt")


Getting Started
  • Get yourself familiarized with each sheet's functions
  • Open up the "Add-Ins" toolbar/ribbon
  • Click the Configuration icon and configure away!
  • Import an existing XML and look at branches/jump's formulas; use the same format for your own hacks. The colours are optional.
  • Try out essential functions such as "Insert Line(s)"
  • ASM Away!
  • Use the "Analyze Code" function to detect and fix console-breaking errors
  • Test your ASMs faster with "Save to ISO" and "Save to Savestate"
  • Finally, release as XML (Save to .xml) and share for everyone to use your hack

Known Bugs
  • Unable to properly parse XMLs containing ASM and not opcodes stored as Hex (Glain.xml)

1.02b - Initial Release

Hacking/Patching Tools / Location Names Spreadsheet
« on: December 29, 2016, 08:29:18 PM »
Just something I'm tossing out there that I made in an hour or so...

This spreadsheet allows you to alter the width/height of location name graphics among other things.
Useful if you are translating the game or just making your own total conversion mod.

Note: This spreadsheet is using an experimental spreadsheet template, and there might be bugs. However, from what I know, all the buggy features would not be accessible anyway in this case, but there might be bugs happening if you don't properly configure your settings. So, before you try saving to xml/savestate/ISO, make sure you press "Configure"!
PS: All the functions are located under the Add-Ins tab/ribbon.

Tutorials and Learning / ASM Hacking Myths
« on: November 22, 2016, 06:32:58 PM »
ASM hacking is hard
It usually is. It is exceptionally rare that it will be easy, but with our existing documentation, it can make things a lot easier (especially for ability formulas).

For some people, ASM Hacking is more than hard... it's trying to reach the moon.

ASM hacking is like programming
It depends on what you're trying to accomplish, but generally speaking, no. Many hacks only change one or two bytes. That is literally a quarter/half or one instruction. That's not coding; it's altering existing compiled code. Most of the time, you will be figuring out which register is used for what, how you can access different values, and which routines holds the preferable code to alter for your needs.

Most hacks, especially simple ones, tend to be 0.5-5% coding. Bigger ones, like my Ability Requirement Hack v2, Soldier Office Upgrade, Synth Shop and so on, are about 60% coding.

I can understand how a video game works by asking others about it
To some extent, you can. In terms of ASM hacking, you need the logic to be able to figure this shit out yourself. If you can't, you will struggle immensely and waste everyone's valuable time trying to teach you something that cannot be taught.

Do you think I'm being harsh? The reality is that ASM hacking involves a lot of debugging. Let's put it this way:
  • Understanding how video games work is like trying to get out of a rainforest having a GPS on hand. It's still going to suck, but you have some hope.
  • Not understanding how video games work is like trying to get out of a rainforest with a map drawn by a child. You'll wish you were dead.

But I know I can figure this out!
You would need more than just your average level of motivation.
You would need unbreakable dedication.
You will pull all your hairs out in the process.

And even then, I can't guarantee you'll make it.

If I don't make my hacks, who will?
Likely no one. I know this is a tough one, because ASM Hacking is excessively draining and not many people can do it.
However, just because you have little hope of accomplishing anything yourself in terms of ASM Hacking...
It does not give you the right you complain about your lack of ASM Hacks.
It does not give you the right to assume that someone is going to ASM for you when all you do are FFTPatcher and FFTTactext edits. (Seriously, ASM Hackers are very rare; even if you event, the chances are slim)
It does not give you the right to complain about WotL's lack of ASM hacks.

Be thankful for the hacks that already exist.
Be thankful for future hacks (or in the making).

Final Thoughts
I personally favour making hacks that benefits a lot of people; not just a single project. That is why me and others do not take requests. No one wants to make a hack for some random guy who has no idea what he's doing with questionable motivation, while only he could have a use for that hack.

Event Editing / Notepad++ Event Syntax Highlighting
« on: November 20, 2016, 11:53:28 PM »

How to add it:
  • Download the attached file
  • In Notepad++, Select Language/Define your language...
  • Then click the Import button near the top left and choose FFT_Events_UDL.xml

How to use it:
  • Select Language then FFT Events at the very bottom

How to make it auto-load with defined file types:
  • In Language/Define your language... there is an Ext. box. You can just type the extension there. I already added evt, so ideally you should name your event files *.evt
  • You could always set it to .txt, but I don't recommend it unless you plan to use notepad++ exclusively for FFT events

Warning: If you only ever use event.txt and want to use event.evt instead, you'll have to edit your event compiler's CONFIG.INI accordingly.


This topic will be updated when I can think of something to add

War of the Lions Inherent Limitations:
  • All the new items cannot be made available outside of Multiplayer in any fashion. (Balthier's equipment was hardcoded, you will not be able to reproduce it)
  • The ability/spell quotes cannot be re-enabled
  • Even with the slowdown fix, the abilities' audio is distorted
  • Inability to remove the Onion Knight/Dark Knight special requirements (jobs mastered & kill count)

PSX   WotL   Hacking Feature
:v/:xAcceptable amounts of community support
:v/::v/:Can edit job/ability/item flags
:v/::v/:Can edit skillsets/poaching/move-find items/propositions
:v/::v/:Can edit the game's text
:v/:xHas tool(s) to make editing text a lot easier
:v/::v/:Can edit existing cutscenes (events)
:v/:xCan write a new story (Missing tools for WotL)
:v/::v/:Can change Spritesheets and their SHP/SEQ
:v/:xCan import new Spritesheets larger than the original's size (The bottom portion of spritesheets is always compressed... This is a big deal.)
:v/::v/:Can import new formation sprites
:v/:xCan re-link formation sprites to other slots (Missing tools for WotL)
:v/::v/:Can edit existing maps
:v/:xCan increase the filesizes of maps
:v/::v/:Can edit ability animations (Effects)
:v/:xCan create, move and resize files around the ISO
:v/:xCan use PSX compatible ASM hacks (99.9% of ASM hacks; i.e. all the cool features)
:v/:xASM code documentation (extensive, even)
:v/:xASM: New/Altered ability formulas
:v/:xASM: Soldier Office Upgrade
:v/:xASM: Make Charge, Elemental, Jump skillsets act as regular skillsets
:v/:xASM: Synthesis Shop
:v/:xASM: Different requirements than "sword is equipped"
:v/:xASM: Only get randoms when you desire them

Recruitment / So you want to be a bugtester/betatester
« on: October 21, 2016, 12:04:19 AM »
What is a casual bugtester/betatester?
One in, usually, hundreds or thousands of people testing the game/software.
The sheer volume of testers allows to easily spot bugs even if testers really suck at their job: i.e. finding bugs and reporting them so that they can be fixed.
As a reward, people tend to get reduced subscription costs or even get the game/software for free.
Usually, they don't give two fucks about reporting bugs, and just want the early access, and well, the reward is always welcome.

What is a professional bugtester/betatester?
Someone who goes through a game or uses a software actively attempting to break it.
They, at the very least, have a basic understanding on how video game works. This is very important to know what to try to break. Trying to think about something the programmers missed.
They have to write very detailed reports on how the bug was achieved, if it could be reproduced and so on.
They are paid in money for their work (yes, it is work, pretty boring usually), and will likely keep the material they were testing.

Where do we stand?
Fixing bugs on the way, here and then, reported by people who feel like reporting them is far from an ideal solution, but it's all anyone on FFH ever had access to, because quite frankly, having one person being a casual bugtester and not reporting anything is really of no help. So far, as far as I am concerned, we've had less than a handful people apply for a position of bugtester for JotF (I doubt any other mod ever had that "luxury"), and 100% of them never reported back.
From our perspective, they're just a bunch of people who abused our trust and only wanted to play the mod before everyone else. We don't need them.
We can't afford to have a thousand betatesters; we might as well not even try to fix the damn game before releasing it and call a public release a "betatest". We just want our mods to be as bug-free as possible when first released. Modding consumes a lot of time and most people can't commit themselves to that. Like I said, we've never had a proper bugtester here on FFH, and having one would be so very welcomed! But if you're not... please don't waste our time and abuse our trust.

Thank you.

Hacking/Patching Tools / ISO Manager v1.00b
« on: September 27, 2016, 04:33:22 PM »
ISO Manager

What is it?
It allows you to create a completely new File Index for PSX CD Images (not just FFT), Import/Export files, and automatically associate Files and their Sectors + Filesizes to data locations inside the game.

Microsoft Excel 2007+

Download the latest ISO Manager
as with all programs in beta, your files might unexpectedly get corrupted; so make sure to backup first


Edit various property values of your ISO

Easily manage your file index; remove files and directories or create up to a million!

Having a hard time finding free space for your new files? Just check the Space Management sheet

Manage vital information for FFT! Easily add your own maps, SP2 files for any sprites or even Effect files

Automatically update your GNS files with the proper links to their texture/polygon files!
(Less trouble for our dear mapmakers)

And of course, a nice ASM table for our ASMers!

News / FFT Version field added
« on: September 16, 2016, 03:35:11 PM »
We often assumed that if you were not mentioning that you were planning to mod WotL, that you wanted to mod the PSX version. Unfortunately, nearly every user would just assume that we magically knew they wanted to mod WotL, and it led to huge wastes of time, frustrations and so on. We don't exactly want to reply to 90% of topics by asking which version they want to mod either.

So, I decided to add a field on your profile; just follow this link and you will see it at the very bottom:;area=forumprofile
You only need to change it if you are using the WotL version (every existing account has been defaulted to the PSX version). This will allow us to know which version of the game you want to edit without having to nag you about it. Unfortunately, this likely won't work with old users because too many will not bother to edit that field even if they do use WotL. Thankfully, we more or less know who's using which version over time.

As for new users, they will be forced to choose one or the other, but it would still be nice to mention it in your help posts, because I still haven't figured out how to make the option appear in forum posts.

If you want to see which version someone else is using, you can do so by viewing their profile — it will be displayed at the bottom, above their signature.

The Lounge / Most emotional video game moments & Ruined ones
« on: June 21, 2016, 01:07:53 PM »
I'd like to see what everyone thinks about which games have the strongest emotional moments... scenes that you can't help but cry every damn time.
Quite a few games have pretty emotional moments, but for a few reasons I somehow can't get myself emotionally involved; I don't understand why I block that way, it's like I can't take the game seriously or something.

My list of most emotional video games moments

Legend of Mana

Valkyrie Profile


Unfortunately, these are the only ones I can think of right now... but those first two are always the ones I go back to if I need a powerful emotional release.

My list of worst ruined moments

Final Fantasy IV


Use any format you want, but do use spoilers.

Hacking/Patching Tools / FFTPatcher Helper
« on: May 09, 2016, 10:26:22 PM »
What does this do?
It rips data from your FFT Image... then will give you loads of useful information:
  • Which Effects are tied to which Ability, and a list of those that aren't
  • Where Abilities are used (Skillset, Job Innate R/S/M, Weapon strike, Ability cast) and a list of the unused ones
  • Where Inflict Statuses are used (Abilities, Weapon strikes), and a list of those which aren't used on top of pointing out every duplicate entry
  • Which Item Attributes are tied to which Item, and a list of those which aren't used on top of pointing out every duplicate entry

You need my FFTText Editor to be able to import text into this spreadsheet.

How to use
  • Click Load FFTText, then select your "FFTText Editor.xlsm"
  • Patch your .fftpatch to your FFT Image
  • Click import and select said FFT Image

Tutorials and Learning / Editing Effects' Palette and Graphic
« on: May 06, 2016, 05:38:41 PM »
Why this tutorial?
To show people how change the graphics and palettes of Effect files (ability graphic animations)


For every user:
  • An image editing program such as GraphicsGale or Photoshop (or even MSPaint if you are that masochist)
  • CDMage or cdprog
  • HxD (or any Hex Editor of your choice)

For 32bit Windows users:

For 64bit Windows users:


Getting started
Visit This page contains very important information used through this tutorial. Also, make sure you grab the .BMP version of the Effect file you want to edit.

Editing the file
Just change the colors and graphics as you want... unless you know what you're doing, do not change the dimensions, and if the wiki page states that the Effect file is "4bpp Multi-CLUT", do not use any color other than the first 16. Feel free to edit the colors; but don't use them in the graphical area.

For the sake of this tutorial, we will be using this "Bloody Sword" edit I made:

Reducing colors while maximizing quality (optional)
* This is a lot more for 8bpp effect files than 4bpp; since you only have 16 colors per palette, chances are, using this method won't change a damn thing, in fact, it could become a hindrance

What it comes down to, is the TIM files that will be generated for 8bpp effects are in fact 15bpp + 1 byte for the transparency channel, but indexed. 15bpp means 5 bits per color. So instead of the usual 0 to 255 Red, you'll have 0 to 31 Red. Or, if you prefer, 0-8-16-24-32-and so on... i.e. in increments of ~8. Unfortunately, the best way, by far, to achieve this, is using Photoshop. So, if you don't have Photoshop, sorry because I don't know how any other way to do this.

Assuming you were working with a .psd (and you should), save your file as a BMP, but select 16bit (which is really the 15bpp I mentioned earlier).

Next, open that BMP in Photoshop. Then, we want to reduce it to 8bpp, so head over to "Image"/"Mode"/"Indexed Color"

Make sure "Preserve Exact Colors" is checked! Otherwise, new colors will be generated, and there WILL be conflict, making similar colors becoming the same when creating a TIM out of it, and you WILL lose quality. Otherwise, just adjust the Dither and its % as you wish.

Just save as a 8 bit BMP and you're good to go!

Creating a 4bpp BMP (optional)
* This section is only necessary for Effect files that have a "4bpp Multi-CLUT" color depth, and only if the Graphic was altered.

Creating a TIM file
WARNING: If your Effect file's color depth is "4bpp Multi-CLUT", and you want to import a new graphic, you will need to create a 4bpp TIM file. However, if you edited the colors beyond the first 16 (i.e. the other palettes) and want to import those changes, you will need to create a 8bpp TIM file. Obviously if you want both new palettes and new graphics, you will need to create the two; a 4bpp and a 8bpp TIM.

Simply use TIM Utility with the right settings as displayed below. You can preview your file using the "Preview..." button; if it doesn't display properly, something's wrong. If everything looks good, close the Preview window and click "Convert...".
4bpp: For 4bpp files (Graphic)
8bpp: For 8bpp files and 4bpp files (Palette)
Translucent except black
Transparent for black
Write Type: TIM

Importing the new Palette (optional)
* If your Effect file's color depth is "4bpp Multi-CLUT", use the 8bpp TIM file that you created for these steps. If you only edited the first 16 colors, you can instead use the 4bpp TIM file with the range 0x 14 to 0x 33.
  • Open your TIM file and the E???.BIN file in HxD
  • In the TIM file, select 0x 14 to 0x 213 (Use "Select Block..." [ctrl+e] to help)
  • Copy (ctrl+c)
  • In the BIN file, Goto (ctrl+g) to the "Palette Offset" specific on the wiki page for that Effect
  • Paste Write (ctrl+b)

Importing the new Graphic (optional)
* If your Effect file's color depth is "4bpp Multi-CLUT", use the 4bpp TIM file that you created for these steps
  • Open your TIM file and the E???.BIN file in HxD
    • 8bpp: In the TIM file, select from 0x 220 all the way to the end of the file (Use "Select Block..." [ctrl+e] to help)
    • 4bpp: In the TIM file, select from 0x 40 all the way to the end of the file (Use "Select Block..." [ctrl+e] to help)
  • Copy (ctrl+c)
  • In the BIN file, Goto (ctrl+g) to the "Graphic Offset" specific on the wiki page for that Effect
  • Paste Write (ctrl+b)

Finishing steps
  • Save your edited BIN file
  • Import it using CDMage/cdprog
  • You is done!

Advanced hacking notes
Let's say your file changed filesize... Normally you'd use the wiki, where I was nice enough to compile a list of all the offsets for you guys, but here is how it is actually calculated:

  • Graphic Start: File Size - ( Image Width × Image Height ÷ 2 )
  • Palette Start: Graphic Start - 0x204
  • Graphic Start: File Size - ( Image Width × Image Height )
  • Palette Start: Graphic Start - 0x404

PSX FFT Hacking / Steam Job Wheel Discussion
« on: February 17, 2016, 02:31:10 PM »

You might have heard that I'm making a job wheel hack, allowing to replace any generic job with a special job under given conditions, and even forbid them.
The hack currently allows making Bard/Dancer not gender restricted anymore if you wish, and auto-masters any job that replaces Mime (because there is not RAM allocation for the learnt abilities flags).

I'm also considering adding the option to have more auto-mastered jobs past Mime. Of course, they would have no requirement, which is a downside (it would be possible, but I'd rather not use a lot of precious SCUS space). I'm reluctant to add this because of all the trouble involved, and its usability into regular mods.

I also wish to add the ability for monsters to change job, but I want to hear people's opinions about this. My wife and I thought about it; it could be job level based, yes, but also plain regular level based... for example: Chocobo (lvl 1), Black Chocobo (lvl 25), Red Chocobo (lvl 60). It might not be possible to please everyone, but I want to find a good middle ground. So everyone's opinion would be welcome.

Hacking/Patching Tools / FFTText Editor (last update 2016/01/06)
« on: January 01, 2016, 12:09:22 AM »
FFTText Editor v1.00

Easily locate text, in this convenient, neatly ordered editor!

See live what your text looks like in game, along with line lengths! (minus font colours)

Lots of settings!

What is this?
This tool allows to conveniently edit a .ffttext file generated by FFTacText, then generate a new one to load in FFTacText and easily + quickly generate/update your It is used by many of my tools to directly fetch text data for my hacks so that you know what is what without typing everything yourself.

  • Microsoft Windows
  • Excel 2007 or higher (with macros enabled)

  • Extract Altima_8.ttf from to C:\Windows\Fonts
  • Open FFTText Editor.xlsm
  • Check out the tutorial in the next post


War of the Lions Hacking / Duplication trick fix
« on: October 29, 2015, 07:51:29 PM »
I still don't know after all these years, because apparently no one can be bothered to test...

Which version of the duplicate bug was fixed? Or was it both?

Version 1: Requires Dual Wield, only works on dual-wieldable items (fewer than those even). You have to pay to acquire the item. Only 1 time per unit per Fitting Room entry.

Version 2: Requires nothing. Works on any weapon or shield. The item is automatically added to your inventory's stock. Only 1 time per unit per Fitting Room entry.

Instead of trying to explain the methods myself, I'll just link a video which covers both:

Tutorials and Learning / Slow ppf-o-matic? Read this!
« on: September 27, 2015, 05:42:35 PM »
It is taking you hours to patch a ppf file?

I've decided to investigate and finally once and for all get rid of this issue.
It turns that ppf-o-matic just hates fragmented ISOs. But don't worry: there's a very simple to fix. You just need the right program. It's called "Defraggler" and it allows to completely defragment individual files.

1. Download, Install and Open Defraggler

2. Open your FFT Image

Now just wait for it to complete...

3. Patch away!
The process should be way faster now. Enjoy!

Recruitment / Yes! We'd love your help, but...
« on: August 09, 2015, 10:43:45 AM »
I'm making this topic not because we have too many talented people available, but rather, the lack of dedicated and talented people applying.

As project leaders, we know we can do shit.
So when someone is proposing to help, which means a potential of countless hours of work lifted from our shoulders, it sounds awesome! Thank you! Except... the vast majority of people require us to babysit them only to see them quit after a few days. This happens very often and it is incredibly tiring.

I understand that some people have very valuable information that not many are knowledgeable about, but there are tutorials for almost anything. Please look up tutorials and get your hands dirty before saying you'll do anything for us! (spriting, eventing, ASM Hacks, etc.)
Unless you played with those things beforehand, you have no idea what you're in for.

So please, if you're only going to make us waste our time, just cut it short, try those tutorials and see for yourself how much work modding really is.
And if you do get past those tutorials and are still willing to help? Good! This proves you have dedication, and you are exactly the type of person we are looking for.
Our time is precious, we have busy lives, and modding is a heavy commitment. Consider the possibility that while trying to help us, you might slow us down. Show us that you're not all talk! Please!

Yes! We'd love your help, but...

→ → → Tutorial Link Index ← ← ←

PSX FFT Hacking / Ability Requirement Hack 2 - Code it yourself!
« on: August 09, 2015, 10:16:51 AM »
Ability Requirement Hack 2
The infamous ARH comes back, better than ever!
Upgraded from v1.1

Requires Excel 2007+

Code it yourself!
ARH2 removed all tables and you are pretty much forced to ASM in the requirements that you want. It is, however, as friendly as possible for coding that I could think/manage inside of Excel's limitations. Why did I do this? People kept requesting different things for the ARH, and ultimately, bending to everyone's needs would have created needlessly huge data tables, consuming absurd amounts of space when most people hardly use any of the ARH's capabilities. Now with all that junk gone, the ARH was trimmed down from the equivalent of 831 Kanji space lines, down to ~350 Kanji lines + 22 SCUS lines, including major upgrades.

A Bonus Abilities skillset
Its main new feature is a skillset innate to every unit in the game, the "Bonus" skillset, which can contain ANY regular action ability in the game (i.e. not chemist/draw out/charge type abilities). All you have to do is configure the requirements for those abilities.

Available AI abilities recalculated on new turns
Before, the only way these could be recalculated was if the unit used equip change or had a piece of equipment stolen/broken. Now, at the start of every turn, and during them, abilities recalculate their conditions, so that requirements of status based nature and the like aren't Player only abilities anymore.

Vanilla requirements are already coded in!
This probably isn't a consolation to many people, but Swordskills and Limit Breaks have their requirements already set up like they were in vanilla. If anything, at least it shows you how to code it yourself.

Some custom routines just for you~
Just use some very convenient routines that I made myself to very quickly determine if an ability will be enabled or not. I figured other routines were pointless due to how few lines they would actually require without much complexity involved.
  • Count # of Skillset ID Equipped
  • Count # of R/S/M ID Equipped or Innate
  • Count # of Item ID Equipped
  • Get First Weapon's Type
  • Get Weapon(s)'s Elemental Attack
  • Get Item Types

A convenient spreadsheet
Of course, it isn't perfect, but you have options to save directly to your pSX quicksave to see the results of your coding LIVE, immediately.
You can also copy the xml's contents with a single click, on top of functionality like bookmarks to save your positions in code.

Many thanks to Chotokukyan!
Without his extensive notes on the wiki, who knows how many more frustrations I would've faced...
or if I would have even finished this hack!

Currently unavailable for download as important fixes are pending

PSX FFT Hacking / Free SCUS space?
« on: July 29, 2015, 02:06:01 PM »
Ok, so basically I trimmed a routine from 1120 lines to 677... which took hours. Then I was curious to see which routine would call upon this one because I could never breakpoint the damn routine. Turns out only one routine does... and that one doesn't seem to have a reference.

The routine in question is at 0x8002705C.

I could not find 5c700280 (0x8002705C) in the entire ISO.
I could not find 179C000C (jal 0x8002705C) as a properly aligned word in the entire ISO.

Am I missing something? We're talking about a LOT of potential free space.

Of course, there are probably more like these, but I just gotta make sure I'm not wrong first.

Spam / Undeniable Rules of JRPGs
« on: July 06, 2015, 03:16:25 AM »
If a game doesn't follow these rules, it is not a true Japanese RPG. Feel free to add your own!

1) You need a doctorate's degree to manage sewers
2) Your first boat trip will not go well
3) You will be thrown in a prison cell and escape (easily)
4) At least one town will be destroyed

News / WotL on Android
« on: June 06, 2015, 02:27:11 AM »

It happened! We don't know how easy it will be to mod yet, but just letting out the news that the release is now official!

Thanks to Aadarm for pointing it out.

PS: Of course, it comes with all the issues from the iOS release... given that they "patched" the slow effect issue, I don't have a clue how hard it would be to revert the fix (will probably never happen), on top of adding Archaemic's slowdown removal.

Pages: [1] 2 3 ... 13