DragonAtma's mods: Gemfire, Romance of the Three Kingdoms II, 7th Saga, and more

Started by DragonAtma, November 30, 2020, 04:12:55 PM

Previous topic - Next topic


In general, the closer two languages are (and the closer they are to english), the better google translate is. English <-> French is very good, while english <--> Japanese isn't. Pages *used* to be at least somewhat translatable by google translate (e.g. Fraxy homepage and reference manual were somewhat readable, even though they are japanese [as its creator is japanese]), but apparently they broke it somewhere.

As for 7th saga, we're up to 144 monsters (this includes alternate entries for Doros/Gariso/Gorsia, as well as enemy apprentices; skipping those puts us at 132 monsters); that should give us a good variety in enemies. All but twelve two of them have graphics; the Wyvern and Knight families have been fully upgraded from 8 colors to 16, as have half of the Plater family.

Update: https://postimg.cc/6892m81g (not everyone wants gifs on their board)
In memory of my beloved cats, Anastasia (9/30/06-9/18/17, illness) and Josephine (1/19/06-9/23/17, cancer).
My mods: Romance of the Three Kingdoms II, Gemfire, 7th Saga, and more


Yes, I'm still modding; don't worry.


I do need to look for a coder, though; if nobody shows up soon, I'll make a help wanted ad, as I'm rapidly approaching the point where I need one for more progress. Ditto for rotk2 testers, as it's essentially done and merely needs testing before I release it (I do NOT want to send it back in beta again).

In memory of my beloved cats, Anastasia (9/30/06-9/18/17, illness) and Josephine (1/19/06-9/23/17, cancer).
My mods: Romance of the Three Kingdoms II, Gemfire, 7th Saga, and more


So it's a bit ironic that slidelljohn returned today (technically yesterday); I dug out one of my projects a couple days ago and finally reached a showable state.

Yes, that's an Ogre Battle randomizer. There's a lot of work to be done (so far all it randomizes is base and gain for hp/str/agi/int, plus number of attacks), but I can certainly make progress on it... when I'm not working on my 7th saga mod!

EDIT: I should add that a few more things are done (all six resistances, attack str/int, attack melee/targeted/hit-all, and a dummy class name), but they haven't been added (and the class names are very random, such as naming a 4/5/2/3 Evil One replacement "CASTER"). Balance isn't there either; it's slightly balanced (higher tiers are designed to be stronger, as are large units), but it's probably as unbalanced as Lich and Princess.

(January 13)

New 7th saga modding rule: my future recolorings will not be as complex as the spider family.

Yes, it *seemed* simple, but when you take twelve legs and three frames (EDIT: this is only one frame; the other two are the attacking frames) into account it went from simple to "simple".

(January 16)

So I've been making progress with my OB randomizer.

Yes, Lans is a ninja werewolf frying one of Usar's troops as his standard unit watches.

Does anyone have a list of how many frames each OB class has? The randomizer is more than willing to glitch out, and IIRC frame/attack mismatches are a prime reason for that.
In memory of my beloved cats, Anastasia (9/30/06-9/18/17, illness) and Josephine (1/19/06-9/23/17, cancer).
My mods: Romance of the Three Kingdoms II, Gemfire, 7th Saga, and more


Has it really been close to three months? I've been somewhat sidetracked by non-RHN projects, but I do find the time to work on modding when I get the chance.


So I started copying 7th Saga data over to the game:

Unfortunately, a lot of progress will need a coder; slidelljohn's data is certainly useful, but unless I'm missing something obvious, there are some gaps (e.g. he listed the changes he made to weapons and armors, but not how to apply them). I don't know SNES programming, so I'll need some assistance to make things work.


Unfortunately, I haven't been having much luck with my Ogre Battle randomizer. The main issue is that I don't know how many frames each class and attack has (using an attack that takes more frames than the class has is a one-way trip to freezeville), so I have no way of telling which attacks work for which classes. The small numbers of classes means that (with luck) I can finish Warren's Castle, but the first real stage simply has too many ways the game can freeze or reset. Yes, I've adjusted the battle sprites (58586/58712 -- I use decimal because it makes python easier), both animations (130133/130355), and both steps (58967/59070).

The other issues is that (for some reason) Samurai graphics are inevitably a bit scrambled:

Once again, I'll need coding assistance to make things work.


I also returned to another old project:

Yes, Gemfire is finally getting a hard normal mode! Fortunately, I can handle most of the modding without assistance. The Delegate command is no doubt bugged (just like the Darro mod), but I can handle the rest.
In memory of my beloved cats, Anastasia (9/30/06-9/18/17, illness) and Josephine (1/19/06-9/23/17, cancer).
My mods: Romance of the Three Kingdoms II, Gemfire, 7th Saga, and more


That OB randomizer seems interesting! I'd love to see more OB hacks and similar things out there! :D


Sorry my friend for disappearing. Unfortunately I haven't really been able to work on any of my projects
due to things going on in my life right now. Here is a little something that might interest you in 7th saga.


This has some missing data that isn't in Dr. Fails guide. Enemy encounter formations and where you fight those
enemy encounters. Not all enemy encounters have been documented yet but they are easy to find and I will post them when
I finish documenting the data. I might have some other data documented that you could probably use and if you are looking for
other data let me know and I'll see if I have it.


Ah, thanks you! Now I can resume working on my mod.

There are a few more changes I'd like to to make, but I don't want to eat up too much of your time. But if you're interested:
(1) I'd like to change the equipment count (100-161 are weapons, 162-209 are armors, 210-252 are accessories), but I don't know what values to change.
(2) I want to smooth out levelling up; Levelup for a stat would be int((basegain + rand[0..15])/8). That way, stat gains can be adjusted by an eighth of a point instead of a full point.
(3) Since the current magic effect formula sucks (when your magic passes the enemy's magic, the odds of success drop from ~80% to ~20), I'd like to change the success rate to (Pow*YouMag/DefMag)-DefRes. As a bonus, it lets us make some effect spells more likely to work than others.
(4) Right now, while armor may have seven different resistances, weapons are simply a ball of power and nothing else. Therefore, ideally I'd like to give all weapons an accuracy value and change the accuracy of regular attacks to (50 * AttSpeed / DefSpeed) + (weapon acc – 128), capped 10-98%. This would requires giving every weapon an accuracy value (or repurposing one of the last two bytes of weapon data; I don't think we every figured out what they did).

Again, don't feel pressured to help out; these changes are fully optional.


Not shown: Kamil dying horribly because enemies still have vanilla stats.

Palette data will be needed sometime (you did mention having it in the gamefaqs topic), but it can be put off for now, as new monsters in a slightly garbled palette are not the end of the world, and updated monster graphics (8 -> 16 colors) is just a luxury.

And whatever you're dealing with in life, may it turn out better than you hope.
In memory of my beloved cats, Anastasia (9/30/06-9/18/17, illness) and Josephine (1/19/06-9/23/17, cancer).
My mods: Romance of the Three Kingdoms II, Gemfire, 7th Saga, and more


I'm not sure if you want all of the color palettes or a palette for a certain enemy
but here are all of the color palettes that I have in my documents. I haven't looked
at these in awhile so there could be more.

Now if you are looking for a color palette for a certain enemy I do have these.

This is the line of code that loads the color palette for enemies:
$C2/8FE6 A7 53       LDA [$53]  [$C1:2B60], $C1:2B60 = hermit color palette.

If you set a break point on $C2/8FE6 you should be able to find any color palette.
Color palettes are one of the easiest things to find and I recommend downloading
vsnes because that will help you a lot. I can show you how to use it.

Color palettes are stored in wram at 7e:2000-7e21ff before they are transferred to

Can you give me more details for (1)? Like current count to count you are looking to have.
I don't really understand (2) and I might not be able to spend time on this one. Ill need
some more examples.
(3) sounds interesting and Ill look into the formula.
(4) sounds like data tables need remapping and unfortunately I'm not ready for that yet but I do plan on
doing some remapping. Some of those unused bytes are probably used and I need to finish disassembling
the rom to make sure those bytes are unused. I did figure out that the 1st unused byte for enemies
is for a fortitude stat which the details are on my last post on my 7th saga page.

I do have some time later today to work on some stuff but I'm probably still not going to be very active
on here for awhile. I have a lot of things going on in my life that I need to get situated. I'm thinking
after the summer or sometime around the end of the year Ill start being really active on here again.

I really like what you did with the enemies adding the extra colors and I hope you continue. I'm going to
see about developing a enemy editor to make it easy to add new enemies and edit existing ones.


By color palettes I mean "From xD0000 to xD1000 is the table of monster palettes, with sixteen bytes for each monster's palette" or something. I'll both take a look at the files you linked to and try out the break point method; if I can't get either one to work, I'll let you know.

(1)  Going by Dr. Fail's guide, there are tables for items (0x006C94-0x007017), weapons (0x00639D-0x00659A), armor and accessories (both 0x00659B-0x006C93). All items have an item number, which determines which category it's in (in vanilla 7th saga, anything from 0x00-0x63 is an item, 0x64-0x96 is a weapon, and 0x97-0xFF is armor or accessory). There are a lot of blank spaces, but even using the blank weapon/armor slots isn't quite enough. Fortunately, there's a lot of blank space nearby (xEC75 to xF9FF), so tables should be movable if needed.

You'd also have to show me where to adjust what item numbers are item/weapon/armor/accessory, but Weapon&ArmorSplitPatch.txt from your data shows that you've done that before.

Finally, if I need to cut a couple items to stick with the current maximums, I can; right now my plans have 60 weapons, 47 armors, and 42 accessories, but I can cut back on both if needed.

(2) When an apprentice levels up, vanilla checks their base gain and adds between 0 and 2 (or, more likely, adds between 0 and 1 twice). For example, Wilme (base 4 attack) would gain between 4 and 6 attack, with 5 the most common. I wish to change that a bit:
...Start with the base gain.
...Add between 0 and 15
...Divide by 8, dropping fractions.
For example, suppose Kamil has has a base gain of 18 speed (this may change). It'll add between 0 and 15 (giving a value between 18 and 33) and then dividing by 8 (giving a value between 2.25 and 4.125; after dropping the fraction that gives between 2 to 4, with 3 most likely). The advantage to this is that we can adjust stat gains by 1/8 of a point instead of a whole point (and I'm sure you've seen the gap between fast and slow apprentices!)

(4) If remapping tables doesn't work, I can try adjusting the last two values; if they have no apparent effect, then table remapping should be unnecessary, as we could simply grab a value form the weapon table. I do know that they're 2-byte  decimal values and are a bit odd:
* Swords go up from 20 for starter sword to 1400 for SWInsa, then are 0 for all eight post-SWInsa swords (everythign form Barluca to the final boss).
* Axes go from 20 for the starter axe to 2000 for the AXFear, then are 0 for the last three axes.
* Rods/Staffs, claw, and fists are always 0.
* Knives/saber are 140, 200, and 1600.
I'll take a look at them on my own time, as the unusual numbers suggest that they simply may not be used.

And if life needs your attention, I fully understand.
In memory of my beloved cats, Anastasia (9/30/06-9/18/17, illness) and Josephine (1/19/06-9/23/17, cancer).
My mods: Romance of the Three Kingdoms II, Gemfire, 7th Saga, and more


"From xD0000 to xD1000 is the table of monster palettes"
I'm not sure how.  c1:2b60 is the hermit color palette.

Give me a few hours and I'll look into the equipment. The issue with changing the equipment is there could be routines that rarely load and a complete disassembly of the rom is needed so I can scan the code to make sure everything for equipment loading is properly modified so there won't be any bugs. I do have most of the rom disassembled but I can't go through all of the code anytime soon.  I'll definitely do a little digging into this by running a few traces and let you know what I find.


xD0000 to xD1000 was just an example; I probably should have gone with "from xABCDE to xFGHIJ", as obviously it can't be there. ;)
In memory of my beloved cats, Anastasia (9/30/06-9/18/17, illness) and Josephine (1/19/06-9/23/17, cancer).
My mods: Romance of the Three Kingdoms II, Gemfire, 7th Saga, and more


Ah, I see now.

I think this might be what you need for the weapons/armors:

$C2/7CD2 E2 20       SEP #$20                A:87A9 X:0980 Y:0002 P:eNvMxdizC
$C2/7CD4 64 40       STZ $40    [$00:0040]   A:87A9 X:0980 Y:0002 P:eNvMxdizC
$C2/7CD6 C9 64       CMP #$64                A:87A9 X:0980 Y:0002 P:eNvMxdizC //checks if a weapon
$C2/7CD8 90 0E       BCC $0E    [$7CE8]      A:87A9 X:0980 Y:0002 P:envMxdizC
$C2/7CDA E6 40       INC $40    [$00:0040]   A:87A9 X:0980 Y:0002 P:envMxdizC
$C2/7CDC C9 97       CMP #$97                A:87A9 X:0980 Y:0002 P:envMxdizC //checks if armor #1
$C2/7CDE 90 08       BCC $08    [$7CE8]      A:87A9 X:0980 Y:0002 P:envMxdizC
$C2/7CE0 E6 40       INC $40    [$00:0040]   A:87A9 X:0980 Y:0002 P:envMxdizC
$C2/7CE2 C9 B5       CMP #$B5                A:87A9 X:0980 Y:0002 P:envMxdizC //checks if armor #2
$C2/7CE4 90 02       BCC $02    [$7CE8]      A:87A9 X:0980 Y:0002 P:eNvMxdizc


Ah, thanks.

I've been thinking about changing the HPCatcher/MPCatcher formula, but I can't exactly ask you to add it when I haven't finalized the new formula. XD

I also plan to add more spells (nothing fancy; just improved versions of current spells, such as Fire 3 and Ice 3), but I still have a ways to go. Ideally I'll also give apprentices a max of 24 spells (or 32 if its feasible, although I don't currently plan on going past 24).

Adding more enemy drop lists would be nice, but that's optional.

I thought about displaying all defensive stats for armor when it's highlighted, but other things are higher priority. Don't worry, when I'm ready for discussing it I'll provide some mockups (as I did for RoTK2 coding suggestions on gamefaqs).
In memory of my beloved cats, Anastasia (9/30/06-9/18/17, illness) and Josephine (1/19/06-9/23/17, cancer).
My mods: Romance of the Three Kingdoms II, Gemfire, 7th Saga, and more


You're welcome my friend! :)

When I reconstruct the 7th saga rom I going to make it to where you can have up to 255 spells and items. Each enemy will have its own drop set. Enemies will have gold and experience separate so one isn't multiplied by the other to get the amount. I'm also going to create a menu system similar to final fantasy 6 so you will be able to see all stats for armors. I'm not 100% sure but I might be able to add a extra party member and enemy's in battles but more research needs to be done before I attempt something like that. In order to add the extra enemies and party members I'll probably have to double the vram.  When vram is doubled you can have extra sprite tables that you can quickly switch to. You normally have 2 sprite tables in vram setup with a maximum of 2 tables usable at any given time but with doubled vram you get a lot more tables that are usable but still limited to 2 at any given time. I still need to create a demo that shows exactly how this feature works because it's a game changer for the snes hacking scene.

I'm not sure if you seen my decompressed 7th saga hack I made but it frees up a tremendous amount of wram so I don't have to worry about needing to find any empty space to make larger tables for extra items, spells, party members, number of enemies in battles..... . I'm actually in the process of remaking the 7th saga decompressing hack so it will be perfect and I'll upload it to romhacking.net


Yes, I use the decompressed version for my mod because it's easier to deal with. Remember, I'll be replacing the 8-color monsters with 16-color monsters, and that's a bit hard to do if they're compressed. ;)

I generally go with nearby empty space, but if any empty space is usable, any empty space is usable.

For now I'll stick to two PCs, as three allies just feels... not 7th Saga. As for monsters, going with four or more may only be feasible if you space enemies based on physical size (just like modern fonts!). Of course, I can keep monsters relevant for longer if I can use groups of four or more; as you've seen, I plan on having crabs me weak enough that even a level 1 character can face 2-3 of them and still win.
In memory of my beloved cats, Anastasia (9/30/06-9/18/17, illness) and Josephine (1/19/06-9/23/17, cancer).
My mods: Romance of the Three Kingdoms II, Gemfire, 7th Saga, and more


Awesome! Glad the patch is being used for something. I think you are the second person I know of that started putting it to use. Although I don't recall any noticeable bugs in the decompression patch I made it does still need to be rebuilt. I didn't really do things in a clean way that I'm happy about. I'll see what I can do to get the new decompression patch completed so I can upload it on here. I think there are other things that are 8 colors as well like npc's.

Since you are using the decompression patch did you notice the speed difference when you go in and out of towns/building/dungeons? It should load them a lot quicker. The other benefit of that patch is you get more tile options for enemies and playable characters. I think you get up to 255 tiles compared to the normal 32, 64, 96 options.


I didn't notice a speed difference, but keep in mind that I didn't look for one. I've been playing games since the Commodore 64, plus some games have long wait times (e.g. Skyrim), so I'm less sensitive to loading times than most people.

More tiles are certainly nice, but that may be put off until a later mod. Not even the sky rune apprentice is as threatening as Feature Creep!

EDIT: Speaking of feature creep, I have two small requests that I've been meaning to ask but don't think I have. Can you remove the Elnard levelling and the 255 caps for speed and magic? I understand there are mods for both of them, but I don't know if they're compatible with each other or with decompressed 7th saga, nor do I know if they're compatible with future coding, so I thought I'd bring them up here.
In memory of my beloved cats, Anastasia (9/30/06-9/18/17, illness) and Josephine (1/19/06-9/23/17, cancer).
My mods: Romance of the Three Kingdoms II, Gemfire, 7th Saga, and more


I could remove them but it's not something I can put time into.
Whenever I reconstruct 7th saga I'll look into the elnard leveling but that's probably the only time I'll do that. Removing those 255 caps is my work. I still have the source codes in my computer somewhere. Unfortunately I really didn't like raising those stats. I'm actually going to lower the other stats to 255 and I'm going to use some of ff6's formulas for stats. I really liked the way ff6's system was.  Some of these things you are interested in is not hard to do they are just time consuming. Do you know any snes asm? I can show you some things if you want to learn.

I know you want to change something with the spells algorithm. Can you give me a way that I test the algorithm? Like can I set esuna stat and hermit stat to a certain amount in the beginning of the game and cast ice spell to see what you are talking about. Depending on how the algorithm is I may or may not edit this.


Unfortunately, I don't really know any snes coding. I can mess with pointers, but that's about it.

If you don't have the time to check elnard levelling removal or 255 cap removal, I understand; I'll take a look at the mods when it's feasible.

While FF3's method (no natural stat gain, level-based damage formula) certainly works (especially if you don't start at level 1), it just doesn't feel 7th Saga-ish. Besides, if you equip the correct stat-raising espers, you run the risk of breaking 65536 and overflowing. ;)

I actually did some testing on spells in openoffice, both damage and (as of today) effect. Here's a copy: https://www.mediafire.com/file/55o3d7v4dtron13/7th+saga+magic+formula.ods/file
If you prefer to test the damage formula in the game itself, 0x007018-0x0072F3 contains the spell data (courtesy of Dr. Fail's faq); 12 bytes per spell, with the first two bytes being the spell's power. I still prefer the openoffice method, though, as it's quicker and easier.


(May 1) Since I had no luck with a total Ogre Battle randomizer, I started work on a partial randomizer. Classes are the same (at least for now), but enemy units (not counting the boss unit) are randomized -- this is in Usar's stage:

As you can see, having only two palettes makes things look a bit odd, but with luck I'll find a copy of FinS's palette fix (and get permission to use it, of course!). It's still in alpha, but I don't see any issues at the moment (aside from the palette issue).
In memory of my beloved cats, Anastasia (9/30/06-9/18/17, illness) and Josephine (1/19/06-9/23/17, cancer).
My mods: Romance of the Three Kingdoms II, Gemfire, 7th Saga, and more