11 March 2016 - Forum Rules

Main Menu

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.

Show posts Menu

Topics - LucasRCD

Original title: A thread about documenting peculiar findings in Lufia: The Ruins of Lore

I really don't have a better and more straightforward name for this project of mine. This all started with me just wanting to rip the game's monster sprites, since The Spriters Resource has no such rips yet. Then this evolved into me just trying to document a bunch of things about the game, trying to see how things work. I've come to find a couple of very interesting things!

I've been keeping track of things in a text file, which started out as merely a bestiary template, then got expanded with other things. I'll just put the non-template part of the file below.

EWRAM 02038E7C = Received EXP at the end of battle (4 bytes)
EWRAM 02038E80 = Received Gold at the end of battle (4 bytes)
EWRAM 0203D1E0 = Eldin's current EXP (4 bytes)
EWRAM 0203D1E4 = Eldin's EXP until next level (4 bytes)
EWRAM 0203D20C = Eldin's current JP (4 bytes)

EWRAM 02032CA0 = Text is written on the status screen in here?

EWRAM 0203D5C6 = DM 1's JP level

EXP formula: Each enemy gives out individual EXP. At the end of battle, the accumulated EXP is summed together, then extra EXP is added at the end, equivalent to accumulated EXP/5. Doesn't apply to bosses.

EWRAM 02037E20 = Enemy 1's stats
EWRAM 02037B90 = Enemy 2's stats
EWRAM 02037CD8 = Enemy 3's stats
EWRAM 02037F68 = Enemy 4's stats

006D7490 and below = Enemy stat compendium

HP | AP | ATK | DEF | AGL | INT | MGR | Family | Type |

Family (1 byte) Type (1 byte)

00 = Bird       00 = None
01 = Beast      01 = Fire
02 = Bug        02 = Water
03 = Sea        03 = Wind
04 = Dragon     04 = Earth
05 = Demon      05 = Light
06 = Holy       06 = Dark
07 = Plant
08 = Object

A couple of fun miscellaneous things I found out about this game. Some confirmation for these would be nice:

-The game has a very extensive debug mode, much more in-depth than the Lufia II one. It was thanks to it that I was able to kickstart my sprite ripping project.
-Dekar has unused swimming and sleeping sprites, the former implying he was supposed to be switchable into at some point.
-I think all party members have an alternate attack animation that's not used? It generally looks like a dash attack, from what I've seen, I need to investigate this more. Maybe I just haven't experimented enough with Skills to determine if they're actually unused or not.
-The attack animation for Dobens and Hellhounds seemingly don't play in full in-game, but play in full when viewed through debug mode. Their tails shoot like a gun, Hellhounds shooting twice.
-Jellies and Neo Jellies have unused animations. The former have one that's of them teleporting, I think? Their sprite becomes blank at the end of it. Neo Jellies split into smaller ones, resembling golden versions of the regular Jellies.
-Gratze Soldiers and Commanders have back sprites, which are fully animated as well, implying you were supposed to be able to capture them! Maybe the thought of capturing other humans was considered too morbid during development.
-There are technically Job Points in the game, both for party members and Disc Monsters, silently awarded at the end of battle, but they're never actually visibly shown.
-All bosses and the aforementioned Gratze Soldiers/Commanders have their own monster compendium entry! Their stats are stored right below their entries, and the bosses in particular tend to have unique descriptions that are never seen in-game, meaning at some point the monster compendium worked in a completely different way! In its current form, it only shows descriptions of captured monsters, of which there are 198 IIRC. Some bosses have blank descriptions though, like Ragule and the Ancient Cave bosses.
-Speaking of Ancient Cave bosses, there's a completely unused and fully functional boss! Its name is Golden Lord, a golden version of the Jelly Lord. It's located right before Shinju, the third to last Ancient Cave boss. Its HP is higher than Shinju's. Why would they decide to scrap a perfectly fine boss like that? This is why. Its moveset consists of Grand Cross (strongest Light element attack), Ice Breath (which does what it shows in the video), and Rejuvenate (heals 400 HP, similarly to Meditate, another move used by other Ancient Cave bosses). Since you only have one party member for the Ancient Cave, Disc Monsters not counting as other party members, being frozen counts as being dead for game over purposes. It was likely cut because of how unfair the frozen status is for the Ancient Cave in general, I'm pretty sure no enemies capable of inflicting frozen status are included within the battle formations for the Ancient Cave.
-Monster catch rates and levels are stored completely separately from the rest of their stats. Where could they be stored at? No idea.
-This game has the potential for a lot of MissingNo. tier stuff. I've spent way too much time messing around with Disc Monsters to get results like these.

That is all for now, I think. Since I'm fresh meat to this sort of thing, take some of my findings with a grain of salt.

October 23, 2020, 12:20:15 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Update: I've begun doing proper breakpoints, and I'm documenting my findings. I tried my best to explain things with my severely limited knowledge.

EWRAM 02038E7C = Received EXP at the end of battle (4 bytes)
----> 08013A7A = Jumps into here upon killing an enemy in battle (adds)
  \-> 03007C90 = Then increments this
----> 0801418A = Jumps from 08013A7A to here upon killing the last enemy in battle (bl)
  \-> 03007C30 = Then increments this once, then two more times, after jumping below each one, incrementing one time after each jump
----> 080141F4 = Then jumps here from 0801418A (mov)
----> 0801425E = Then jumps here from 080141F4 (str)

Maybe some of you can decipher what I meant when I wrote descriptions for these.

October 24, 2020, 08:18:49 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

Another update: Updated thread's title. I'm gonna be using the gained knowledge and documentation to hopefully be able to create an enhancement hack. It's gonna take forever for it to get off the ground, but I'm already too far down to come back out.

I've got a couple of plans for changes to the game in this hack:

-A visible JP counter on the status screen, right next to EXP, plus visible JP rewards at the end of battles.
-Save tiles in the middle of dungeons like in past games. This one will require graphic editing and learning how to alter dungeon maps and tile properties, plus learning about and documenting the save routine used by priests. For this to work, somehow I'll need to make it so stepping into these tiles will bring up the save screen, but also make it so it doesn't go back to the main priest menu, where there's three options: Save, Cure, and Remove. Maybe there's a way to isolate this routine.
-Allowing Bau to get Jobs. Bau gets AP growths but has no use for them. Dekar doesn't get AP, ever, as a comparison, and they both fulfill similar roles. Granted Bau is strong enough to not necessarily require skills learned from Jobs, but he's just so boring to use comparatively.
-Fixing the collision in that one screen in Mera Volcano, where you can get out of bounds thanks to misplaced exits.

Wish me luck.
Is it allowed to create a thread about documenting findings, address stuff, maybe even unused content, from a specific game, even if it doesn't technically qualify as a hacking project? I'm slowly getting myself accustomed to messing around Lufia: The Ruins of Lore with a hex editor, and I've discovered how to alter monster stats, among other things.

I've been personally keeping track of important memory addresses and am working on a comprehensive bestiary on all the game's monsters, I thought it'd be useful for me to share my findings, for whoever else would be interested in potentially participating in hacking this niche GBA RPG. Because I most certainly won't be able to accomplish everything by myself, I can tell you that much.

I could potentially make something out of this, even if it's as simple as a "hard type" hack where enemy stats are souped up and movesets adjusted, if that would be the bare minimum requirement to make a thread in there.
What started out as me just going back to finish a GBA RPG, Lufia: The Ruins of Lore specifically, has turned into me first starting a graphics ripping project, then into delving into the game's code itself to try and document findings.

I only have mGBA to do the things I've been doing, and I heard it's not the best emulator for the job. I legit want to learn ASM just to hack this game, because fiddling with a memory editor and a hex editor aren't cutting it. Any pointers for how I could do anything? Like at all? Maybe emulator recommendations while we're at it?

There's one thing in specific I want to implement, that would be a nice way to start: The game has a Job system, with Job Points and all, the same system being used for Disc Monsters and their learnsets, but they're not visibly shown for whatever reason. I know where the value for JP earned is stored, in WRAM, at least for Disc Monsters. What I wanna do is make it so it's displayed after battle alongside EXP, and on the status screen as well.
Man, I had forgotten how slow this game is. It's a far cry from how the earlier games played. Battles are quite well animated, but I think the game suffers from it. There's just so much windup to every animation, and they play so slowly! Due to how slow battles play out, I had given up a playthrough I was doing years ago. I just couldn't do it.

Sometimes I wish I had the knowledge to just improve games like these by the magic of ROM hacking, because I don't think there's anything fundamentally wrong with the combat system. Like if I could, I'd remove or at least shorten the windup between animaations and between turns, and speed up animations by at least 2 times. This is the kind of improvements the game desperately needs, and I think that may have contributed to it being poorly received more than anything.

This game has a lot of potential that I think was wasted because the end product is such a slog to play. Oh well, maybe someday this will be remedied, whether it be from an improvement hack or if Square Enix somehow ends up remaking the game.

It's weird how this is my first time actually being active in here, despite being registered for like 4 years, but I digress.