FFX Remake

Under construction.

Newest beta version (Late May, 8+4 chapters):
Newest FFX ups file

Use the above link (on FE8 U) if you don’t mind a few bugs that I haven’t found yet. (8 semi-tested chapters, 4 wip ones.)

(If you’ve previously played this hack, hold off for now on play testing for a few days as I re-balance the combat.)

Last fully-playtested release (Apr 24, 2020, 5 chapters):
FFX ups file
Use on FE8 U

I wanted to share my demo/progress on my romhack. It has about 5 maps.

VisualBoyAdvance-M_AOHS16E5io
Random battles. I am not a coder; this code is bad. But random enemies of the 4 that I’ve set it to spawn do in fact spawn… my hope in that posting this is that someone may like the idea and try to create a better way of doing this.

VisualBoyAdvance-M_SXTpFQd2gh

VisualBoyAdvance-M_JIIZYPtmYr

VisualBoyAdvance-M_uaxf1mMew2

VisualBoyAdvance-M_IFVrDZHwf0

VisualBoyAdvance-M_pDSj6PHXPy

There are many bugs. But I think I’ve removed the gamebreaking ones for now.

List of some things:
4 custom enemies that look pretty bad
5 imported midi
mid-chapter save house
random battles
main character portraits that could be improved upon
certain weapons to use debuffs if the debuffs patch gets fixed (limited to 3 debuffs right now) (eg. Wakka has Dark Shot that lowers enemy skill by 5 if he deals damage to them.)

I want to create an adaptation of final fantasy 10. Please support the official release. This version may not follow events exactly as they happened in FFX; most of the game suits a fire emblem remake pretty well, but I condensed and changed some of the early game events to fit FE.

If anyone is interested, I would love to have help with this.

Warning: PSP cannot emulate this romhack properly (due to sound, I believe). But VBA and a real gameboy advance seem to do just fine.

Example of a bug I need to fix:
Change AI of Rikku in ‘New Shores’. Supposed to move towards escape point after first talk event (and cause a game over), but seems to be creating blank enemies (?). Not sure why.

P.s. I hate mountains. Besaid Island nearly killed me.

Original demo file

FFX ups file

12 Likes

actually incredible

2 Likes

An unorthodox and novel approach to the engine for sure, but I enjoyed running through what you had. The temple dungeon in particular was good fun~

I’ve never played FFX but if it’s simple graphical conversions you need, feel free to DM me and I might be able to help out a little in that department.

4 Likes

Here’s an album of the character art:

I’m using the halfbody patch to have bigger faces (it was intended for halfbodies, but I just like bigger faces :slight_smile: ) so I’ve included the template for that.

Note that there are already icons for the characters in the original game that can be found on their finalfantasy fandom page. Here’s a link to yuna’s page, for example.

I’ve never messed around with gimp2 or images that much before this. Characters need to face left, which is easy enough, but having a near-white or black outline around the characters looks ugly. I’ve spent some time improving some of them, but I’m not that well-versed with image editing. I’ve also messed up a few times and cut off part of a character’s hair or similar. Reducing to 16 colors is also difficult to make look great, I’ve found this online image editing site to be helpful.

I’ve also been trying to import enemies from this sprites for final fantasy tactics webpage. I edited and imported the 4 enemies and then realized you can have enemies a bit taller than 16 pixels (eg. fe8 gargoyles, though it means enemies overlap slightly), so I want to try that out when I get to creating more enemies. Flans I pulled from somebody’s fanart, and frogs from a FFT status effect. By making their head move a couple pixels and back, I made them into very nooby animations. Haha.

I think it would be cool to have some custom classes from the final fantasy series: perhaps other rom hackers would want to use them too.

I’m not too well versed in graphics, so any advice or help is appreciated.

Also I need to start making a credits list of where I’ve pulled various assets.

We have truly peaked. Society cannot know greater blessings.

2 Likes

Not until someone Uses All the FE8 extentions to make an actual FE8 Remake… In FE8

2 Likes

Well, this is certainly unique.
It’s rough around the edges but the concept is very interesting.
Well done so far.

The formatting is turning out to be more challenging than I thought, so sorry there. I did my best to scale and color crush the collection for you here (https://imgur.com/a/uQpDbX3). I use Photoshop and its color reduction tool, since it allows for a mix of hand and automatically picked colors.

Honestly for just starting out your map sprites and graphics seem alright since you’re communicating the ideas well enough through them.

3 Likes

This looks amazing. I’ve tested putting Rikku’s large portrait in for cutscenes on my local copy and it looks way better than what I was doing.

Only problem I’m having is that when I resize the image, image editing software seems to want to adjust some colours, which makes it exceed 16. So I just need to figure out how to prevent that, as I need to crop and resize for the small versions of the portraits.

Because the stats menu character portrait is something like 80x80, I have a small version of character art for that along with their 32x32 map portrait preview, and then for cutscenes I use the 128x112 portrait (or whatever size it is, 128x128 with borders by the head). You’ve perfectly adjusted the original images to fit this format, so thank you so much. Do you know of a tool that keeps to the same colours when resizing images? I don’t have photoshop unfortunately.

I hate to bother you with more, but if you can I would be very thankful if you’d do the same for these four characters in this album below.
https://imgur.com/a/sk2xLmQ
I’d already put in two of them and included my version - Seymour has luxurious blue hair, but it had to go. Jecht (with the sword) has this awkward outline around him, so I also included a more recent rendition of his character art that might be more suitable. You might also be able to make Cid look a little better than I did, if you want to try.

If you can’t be bothered with any of this, that’s totally okay - I just prefer your higher quality renderings of the art to mine.

Again, thank you very much for helping. :smile:

Edit: Do you have a slightly bigger version of Tidus (blonde fellow)? He gets cut off slightly / looks smaller/shorter than Rikku.


It looks a lot nicer without the borders around them like before, but Tidus is a bit small.
If you don’t have a bigger version I can just scale everybody else down a little bit when I figure out how to not adjust colours when scaling. Thanks!

An FFX remake? Definitely unique, might as well give it a shot.

Prologue
  • Game speed / text speed not defaulting to fast is mildly annoying - you should install the essential fixes if buildfiles, or whatever febuilder’s equivalent of them are.
  • Why is Auron a Ross Trainee? Seems like a very odd choice
  • Graphics on the item screen are corrupted somehow
  • Default descriptions on Tidus/Auron
  • Enemy’s description is ‘There are no messages for this menu item’
  • Swoop weapon description
  • Death quotes are incorrect aside from the Sin spawn. The flan had one, even.
  • There are no combat animations?
New Shores
  • The ‘it’s so high up’ event glitches out the enemy map sprite
  • I didn’t see any blank enemies, but an enemy did spawn ontop of Rikku.
  • Are Tidus and Rikku both supposed to have Locktouch as a personal skill?
  • Not a fan of whatever patch you’re using to make levelups faster. I often don’t have time to see what stats someone got.
Besaid Island
  • Coeurls tink against Wakka and can barely touch Tidus.
  • Why do the frogs have void curse?
  • Dark Hit doesn’t seem able to counter even though it’s 1-2, is this intentional? If so its description should state that.
  • Wakka’s mug glitches out while trading
  • I get that Wakka is supposed to be high accuracy low damage but his damage is a bit too bad, he’s not really useful compared to Tidus. He also has strong riposte while being unable to counter
  • And a random encounter flan is the first thing to have battle animations
Besaid Island pt2
  • Heh, a save point. Neat.
  • Tidus has B lances, Wakka has E swords and D lances. Doesn’t hurt anything I guess, but it’s kind of jarring to see on the stat screen.
  • The event when you get close to Besaid Village is a bit odd - Wakka runs into the village in the event, then he’s right back where he was before.
Besaid Village + Temple
  • Text skip in the first few lines of dialog.
  • Not being able to visit the houses is odd, maybe you should use the ‘closed house’ tiles if they’re not supposed to do anything.
  • Armory has glitchy graphics, not that I have any gold anyway. Vendor too (which has the same items as the armory?)
  • Besaid temple is a mapchange puzzle? Neat.
  • A few more text skips after that
  • Tidus/Wakka have the ‘Neimi recruits Colm’ talk conversation.
  • Is this the end of the hack? If so I’d suggest having a text box pop up telling the player that. Or is there something I’m supposed to do here? I don’t remember the early game of FFX that well.
  • It would probably make more sense for Lulu to be a female mage instead of an Ewan pupil.
  • Yuna and Lulu have vanilla descriptions.

Pretty rough in its current state, but definitely an interesting idea. I gotta compliment you on trying to do something different with the fe8 engine, and I think it could work out with some more work.

On Random Encounters
  • Random encounters, huh? Interesting idea, though I’d probably do them differently - like by loading into a minimum size map with some randomly generated enemies, and then taking you back to the overworld after you win. That’d make it feel more like final fantasy (you go from wandering around the area to a battle mode), and allow random encounters to have more meaningful Fire Emblem gameplay.
  • Big maps, lot of walking around. This would be another advantage to separating random encounters and the ‘world map’ - you could have just Tidus moving around on the world map, it’d be faster/less of a pain.
  • Technically this shouldn’t be too hard to implement, you’d just have to LOMA into the battle map then use whatever fe8 uses to generate skirmish enemies. Once the enemies are dead, just LOMA back. The only problem I can think of is that you’d have to store Tidus’ location before the random battle, and move him back to it afterwards.
  • And by problem I mean ‘this would be a pair of trivial ASMCs’. I could make them for you if you want to do things this way, though if you use febuilder I don’t know how you’d install and use them because I don’t use febuilder to hack with.
2 Likes

You’re welcome! I updated the album with the other images and a larger Tidus. Restored Seymour’s beautiful blue hair.

Jecht’s haloing/outlines are unfortunate and not really certain why they’re showing up so clearly. For whatever reason I’m not getting them to clean easily, and manually takes time, so there’s a lot of quick versions/tests in there for you.

If you have an image editing program with “Color Mode” and have it set to “Indexed Color”, you should be able to force any compression/adjustments to use the current palette and not create extra colors.

2 Likes

Ah excellent, a remake of the best Final Fantasy game.

Just please don’t make me dodge 200 Boltings or have to ride a Chocobo under an excruciating time limit.

(this post is not a joke)

@feels
Thank you kindly once again! This is a huge help; I really don’t know what I’m doing with graphics. I appreciate the explanation and I’ll be putting these all in soon.

@Zeta
Thanks for all of the feedback - it’s quite helpful. I’ve responded to most of it and spoiler tagged the TL;DR sections I think.

The end of the hack demo is “To Kilika”, on a boat with a couple talk events that then brings up a “thank you for playing” type message. You didn’t really miss anything; just you can go back through Besaid island (with a couple shortcuts), get Kimhari, and depart from the beach.

Wall of text

Besaid island’s beach should have a “depart” option after clearing Besaid temple.

Besaid village also has a “depart” option on the path when you enter.
Both of these should be made more obvious. I’ll add event tiles as another way to notice them, and for Besaid’s beach I’ll put Cid there as an NPC

Auron -
Here are the placeholder classes I’ve planned for each main char.

Promotion Branches

FEBuilderGBA_Ir3ym3QCb8

FEBuilderGBA_517Z6daiRs

FEBuilderGBA_BRFC9YujSO

FEBuilderGBA_dkjHnPRZWZ

FEBuilderGBA_IbrZZB8ry4

FEBuilderGBA_oCjOSKf60L

FEBuilderGBA_srrspmhkPS

Kimhari, for example, can promote straight to a general to stay relevant, or can gain ~10 extra levels as a knight (and have a slightly better final class).

Maybe Auron should start as tier 2, but without having planned much of the combat yet, I figured I’d leave it be for now.

Text speed is intentional somewhat, as I have some messages where a character says something and immediately leaves after the chat has loaded (with just the slightest pause, but not ‘A’ input).
Many of these glitches are things I’ve noticed and would like to fix - I appreciate the list of them. But it’s been a lot of hard work to get it to this point, so I wanted to see if anyone was interested in collaborating on this project.

Custom combat animations are beyond the scope of what I intend to do personally. But I would like custom enemies, so I was just intending to turn off animations altogether. I usually have animations off when I play these games, but those crit animations are pretty cool, haha.

Dark Hit is intended to not counter. Ideally, I’d like to have you automatically re-equip your main “weapon” after attacking. This way “Dark Hit” becomes a special skill that you use. Because I couldn’t figure out how to do that, the backup plan is to just make them so you can’t counter after using for a turn. You are right that it is basically useless right now.

Lots of text

In fact, the whole of the combat is very basic and needs to be expanded. I’m not fully sure how to go about that; I wanted to decide on my combat system more fully before properly balancing the game. It should just be pretty easy, hopefully. You could also just run away from enemies that are particularly annoying (eg. Flans before you get Lulu might be a pain).
Frogs are extra weak, so I made them give no xp. Again, combat system is preliminary, so needs to be balanced later.

A number of graphical glitches occur due to the “halfbody” patch that I am using. On the one hand, it makes portraits look great as they can be that much bigger, but my lack of detail using it is causing glitches in the trade screen, during some talk events, and on the item screen. Not sure which of these I can fix myself.

No descriptions have really been done yet. I’d rather power through the more important aspects of a game first, but I would like to eventually fill in the gaps. It’s taken a lot of trial and error to have my events go off as intended, and there are probably more errors with them. You can attempt to loot chests extra times, for example, though they provide no extra loot.

Tidus should ideally have the ability to open chests but not doors. Unsure if there’s a skill for that. Rikku should have an advantage against traps and locks, as well as bonus damage against Machina. Or Tidus should be able to get treasure some other way than chests.

Levelups will be made longer. Flans are an edit of the summoner class, while other custom enemies are of villagers. Death quotes haven’t been altered; but flans the unit are an edit of the unit Gerik… oops, they should not have a death quote, lmao. Large maps should have save points imo.

Ideally what I’d like to do with the combat is to have relatively easy random encounters (assuming you take advantage of each character’s strengths: use Wakka against fliers, Lulu against Flans, etc.) but to have stronger boss enemies (with a separate battle theme and perhaps boss icons), some scripted range events and some as a low encounter rate.

I would like the “player phrase” message to be faster. Or even better, if there are no enemy units, immediately refresh a unit after moving.

Your idea of using a separate map is really interesting. I think that could be really fun and might be easier to code challenging battles. I do like sticking to one map, though, as I feel it’s more immersive for world-building. I’ll see if I can figure out a way to try out your idea for random battles… maybe I can use a mix of both.

Currently my version of random battles is quite problematic and I’d like to improve it. It punishes you for using multiple characters, as each character can spawn an enemy each time they move. I don’t want to encounter players to rescue hold all their units each map. If a couple of enemies spawned at once, it might be more fun. What could be cool is to have Tidus the only one walking around, and then load your allies when a battle initiates. I only know how to do this by pushing the ally the spawns a tile or two in a random direction: they’d then clip into mountains and things. 1 tile works, but 2 is a problem.

I’d also like to have “Preemptive strike” where the AI is set to do nothing for a turn, then attack. This could be based randomly on your speed + luck. Didn’t want to over complicate things just yet, but having both that and “Ambush” is fun. Perhaps “Ambush” enemies should be weaker than “Preemptive strike” enemies. This is just a matter of a quick AI change and more if statements, so I haven’t bothered for now.

Scratch all of those plans. I’m going to start coding the Chocobo Race minigame in the Thunder Plains. :smiling_imp:

1 Like

Ah, I see the depart thing now. I was expecting an Escape prompt, since the hack has generally used those so far.

More stuff then
  • The boss that spawns on the mountain is stuck there, because it can’t move on peaks.
  • Things do get pretty crazy with 5 units, all of the ambushes.
  • And that’s the end of the hack (for now)

irt Auron - it’s mostly jarring seeing him as a trainee (when he’s supposed to be really experienced), and as an axe class (when he uses katanas). Using a map sprite with a large sword would be more recognizable as Auron, you could check around the repo https://drive.google.com/drive/folders/1jiiTpNXgAlr4lZBh8d-nJFdO-Jus5VXV for something suitable.

You should really have an A press, this is called a text skip and it’s fairly annoying. No reason not to let the player read the message and press A.

That’ll require custom asm.

You could just lower the class relative power on their class, that’d mean they give some exp but not much.

Here have some descriptions:

descriptions

Auron:
A man of few words. He conceals a mysterious past.

Tidus:
The star Blitzball player of the Zanarkand Abes. Upbeat, but resents his father.

Rikku:
A cheerful Al Behd girl with fast fingers. Skilled with machina.

Lulu:
A childhood friend of Yuna’s. Cynical, but cares for her friends.

Kimahri:
An outcast of the Rhonso race. Fiercely protective of Yuna.

Wakka:
Captain of the Besaid Aurochs blitzball team. Childhood friend of Yuna and Lulu.

Yuna:
A summoner on a pilgrimage to defeat Sin. Kind but naive.

They might not be perfect given that I haven’t played FFX in ages, but a lot better than having the descriptions of fe8 characters.

Could just not display the ‘player phase’ message unless enemies exist. Would require custom asm either way, though.

I dunno, it’s pretty jarring to have monsters just kind of show up from mid air like that. Whereas the ‘transition to battle screen’ thing is a long accepted JRPG trope. Though in the end its your hack.

I think that’s going to be hard to make work well, part of the reason I suggested just loading into a new map.

Like I said in the previous post, I’d be willing to make some custom asm to help with the random battles. Maybe some other things like not displaying the player phase message if there are no enemies, but no promises on that (I have too many projects of my own).

1 Like

Thanks for the explanations! I’ll be working through these points on my hack in the near future.

And thanks for the character descriptions. Posting this 3-week WIP hack was really just intended as a crude demo to get feedback on some of my ideas. If I am going to alter the random battles, I want to do that earlier rather than later! :slight_smile:

I have no clue about ASM - I’ve only used FEBuilder for a few weeks. My main coding goal is to not accidentally overwrite essential game data. So any help with that stuff is fantastic.

I’ll post some updates when I’ve tried out random battles as separate maps.

Any idea on if it’s possible to save a unit number in a memory slot and load units based on that memory slot number?
Right now random battles are poorly coded such that I can’t call the same event with different parameters.

  • Load unit A5 to import stats / items from
  • Create unit _ _ at coordinates your were travelling to with default characteristics
  • Import stats
  • Delete unit A5
  • Move new unit randomly 1 square so you don’t overlap

I couldn’t figure out another way to do this. The special “monsters” thing might work for loading into a battle map, though. I would have used that characteristic if I could find a way to change a unit to that mid-map. I can revert their “drop last item” trait, but couldn’t find a way to turn enemies into a randomized monster class with an event.

Thanks everybody for the advice and encouragement! :smile:

Take a look at how the Tower of Valni / Lagdou Ruins does random enemies. Or Melkaen Coast. At a quick glance it doesn’t seem that complicated.

This is what I’ve been messing around with today. Making notes to remember & share!

Yuna, you’re looking a little different :scream:

Because the max size of unit map animations can be 32x32, it is very easy to import high quality animations from final fantasy tactics. The colours above are messed up because I’ve exceeded 16 colours so it’s been automatically reduced. Most enemies fit pretty well into 32x32 as they mostly have whitespace around them to make each block 48x48.

No editing is needed for a number of frames.

  • Download sprite sheet. Add ibm2451 to credits. Crop to 240x240
  • Open in GraphicsGale (#1). Select 5 by 5.
  • Create a new project (#2) sized 32x480. Enable View -> Show Custom Grid and Snap
  • Select box below for 32x32 grid
    Gale_0Cr97uuCqo
  • Copy each frame of #1 into your project
    For the bomb, it was the following frames to use:
    Hover map animation (32x96 image)-
  • Frame 6, 2, 7
    Moving map animation (32x480 image)-
Extra work of angling frames and cropping anything that goes outside the 32x32 box
  • 4, 5, 4, 8 (Sideways walking… not perfect)
  • Frame 11 x4: All angled 22 degrees:
    • Normal, + 1 angle drag, Normal, -1 angle drag
  • Frame 15 x4: All angled 35 degrees:
    • Normal, + 1 angle drag, Normal, -1 angle drag
  • Select Hover (last segments of your moving map animation 32x480 image) - Frame 1, 2, 3

I believe I got it backwards in the gif image above, so I’ve noted down the (hopefully) correct ones here. Some of it is very easy as long as you are okay with large enemies.

This is way better than doing it with ms paint like before. If I can figure out an optimized routine of which frame to use where and what exact edit to do on certain frames, then I could probably do this for a bunch of enemies fairly efficiently. Tails might be cut off when moving up, and the walking animations might not be perfect, but I’d like to share whatever I come up with when I’m done. If people dislike the large enemies they can always scale down my port of the enemies. There’s a thread for sharing these when I’m done some millennia in the future.

2 Likes

It is beyond impressive to me what you are doing with the map sprite and even the concept itself good job. Though i would recommend not having more than one 32x32 map sprite. That will burn through Oram and make maps with multiple different map sprites glitch out.

1 Like

Thank you kindly for the warning. Lenh explained to me about OAM and seeing it in the emulator. I don’t want level design to be limited by this, so I’ll look into using smaller enemies. It might be cool to have the occasional big one, though. Thanks!

Long Post

Current thing I’m struggling with is using MNC3 232A0B00 //Goto next chapter without world map or save screen.[Chapter_ID:0xB Ch10 Revolt at Carcino]
As it isn’t used in the main game for most chapters, it crashes the game for many chapters that you load, or instead loads the skirmish for that chapter if one exists. Yes, I have world map skip patch enabled, and in every case using MNC2 where it saves between makes it work correctly.

Of course I don’t want it to save before each battle, so I wanted to figure out how to do this. I asked 7743 about it and he said:

This is because you are using MNC3.
MNC2 can solve the problem, but MNC3 doesn’t seem to solve the problem.
This has to decrypt ASM.
I didn’t notice because I don’t use MNC3 (Go to next chapter without world map or save screen).
It is recommended to use MNC2 instead of MNC3 as it takes time to decrypt ASM.

So unfortunately it seems I cannot do this method.

The next thing I’m going to try is simply using LOMA 20250000 //[Chapter_ID:0x0 Prologue] but I worry this means all the code needs to be written on each chapter with random encounters, rather than neatly keeping it all within the battle chapter. This could be problematic, as then my over world can’t be a ‘rout the enemy’ or ‘defeat boss’ map, as when all enemies of a random battle are defeated, it’ll return to the original map. Well, maybe if I have two conditional flag events that check if the other flag is set, and skips the event if so, and one of them calls the end event, then it might work…

I also suspect that LOMA doesn’t work for loading the chapter stored in a memory slot, as it only takes 2 digits instead of 4. Which would then mean inefficiently coding the return event to each specific chapter, rather than calling the same global event. I can do that, just it is poor code and I’m just starting to learn how to write better events. As the ‘monster’ designation overwrites items given to the unit, I’ve written an event that gets the unit and its coordinates and silently gives them an item based on their class, then randomly moves them to a free coordinate of my choosing. This way I can use more than just the monster classes and their default equipment.

Once I can get it to load a map with a random enemy and return, I can then do things to randomize it, such as tile changes or coordinates of units, and so on. Though I do need to figure out if I can save coordinates to another slot than memory B, as silently giving items based on class needs to do it via coordinates as well, and my memory slot B is therefore overwritten.

Thought I’d post and see if anyone happens to have ideas on how to make this work better, or what to be wary of.

Thanks all!

Edit: Indeed, Loma cannot read a chapter ID from a memory slot, and it also causes glitches when being used this way. Most chapters loaded via loma automatically become “defeat all enemies” and crash the game upon completion of said objective. I will test if it works okay if I set a seize and rout always event for every chapter used to do nothing. Doesn’t work.

If not, then using LOMA means I need to have the save screen after each battle, which I’m not sure is ideal. The final thing I could do is simply pretend it’s another map being loaded by executing tile changes, but this feels like a very cumbersome solution and would require a ton of tile changes inputted on every map.

LOMA breaks things in general, but has not broken anything immediately for the following maps (hexadecimal, so not ch #):
0, 1 (But unsure about these as I’ve made many edits to them and thus don’t want to set this as my battle map)

Will crash the game after defeating all enemies and displays “Rout enemy”:
2-14, 17,18, 20-21

Displays “Defeat Boss”
15, 16, 22, 23 (Final battle maps)
19 Landing at Taizel