Ah, that was on me. I saw there was an existing entry so I approved the news post. However, it seems like you made a duplicate entry instead of updating the original page. So I just ported your newest version to the older page.
Thank you. And yeah, I got confused about this myself, which I'm wishing more people would care to be understanding about.
Has anyone been able to get it work on a 3DS? It kept crashing on me and giving me an error code. That's with using the master patch
Edit: It's not the patch. The base game gives the same error. I guess the 3DS doesn't like this game
I am guessing the emulator has issues to report. GBW3 does use IR Communication stuff, so the emulator could be having fits with that, I don't know. Oh, and GBW3 is GBC exclusive, so that may be it. Either way, maybe you could have the team behind the emulator look into the whole mess.
Of course, "25th Anniversary" is now an Artifact Title at this point, but I may as well get this started.
Some time back, I made a balance patch for Secret of Evermore to celebrate its 25th Anniversary, found here. Of course, when all is said and done, it could have been more as I indicated but deadlines weren't nice, but considering how little certain people cared anyway to even do bloody research, I may as well be doing this on my own time and hope I can showcase what I can really do with this. For starters, I did make a more detailed changelog that will of course be updated between version. Also, I did make the Wings Glitch patch so now Prehistoria Wings is not as much of a balance problem once applied properly. (Keep in mind that it still requires a non-headered US ROM, of course.) Nevertheless, there would be more I can be doing with this.
Addendum: I should post the relevant coding to look for with the Wings Glitch; Spoiler Tagging for length.
Instructions at 11CB6F to 11CB78 replaced with just 4C829E (simple JMP to $119E82, which results in effectively the the same coding) with the jump length of the BMI just before reduced to 3 from 10 and the coding after shifted accordingly, and then using 3 of the added bytes of room to add in 20669E (a JSR to $119E66, Spell Instruction $48 (2 byte Pointer is at $118048 on non-headered US so THAT should be consistent between languages at least), which inverts the spell target invulnerability flag, the culprit of the glitch) inbetween the JSL to $0C5521 and JMP to $119B5C. These addresses may be different between ROM versions, so please keep that in mind.
I will need to clarify these points: *First and foremost, I would need to know how the game handles Checksum before doing anything too active. I would be surprised if SoE has anti-piracy on the level of EarthBound, but I imagine it still has anti-piracy to some extent. It's also possible that SNES9X-RR, which is the emulator I have been using in general, also causes bad Checksum games to become messy to subtle effect. *The perfect Magic DEF on certain enemies such as Bone Buzzards and Skullclaws is actually a bug; they are supposed to have -64 Magic DEF but I hadn't realized that the calculations omits the high byte and the low byte is practically unsigned with $C0 and below. The next version will fix this, particularly with the interest of revamping the handling of Magic DEF usage by enemies. *Looking through enemy stats after getting some feedback, it turns out that overall, I had overnerfed enemy Physical DEF wanting to have enemies involve aesthetic, so methods of ignoring it (magic attacks, as well as the Axe attacks) were needlessly mitigated. They will be toned up, and I will provide a little extra something in the interest of both early game balance and aesthetic. *I have been provided feedback that Spear usage is still dominant through the 20% ATK cut on projectile attacks from the player. I will want to have the L3 attack have a lower multiplier to keep the high velocity under control without touching the Bazooka, but also, I have noted that the AI doesn't even know to keep distance from their target when using charged Spear attacks; my idea would be to have the 20% ATK cut on projectile attacks only apply with attacks from the human-controlled character, which is where I would need to look into involvement of the 2P Patch to make sure this is consistent. *There's also suggestion that I overnerfed magic a bit, when the nerfing was in interest of making sure that it would be more for utility that would encourage foraging, than an outright potential spam machine. I have no plans to reduce costs or increase any Might values, but I do have ideas for reducing the grinding needed for having new spells be in the competence zone. I won't go into detail yet, but let's just say you may be surprised by what I'm thinking. *If it's feasible, I would want to have the Charms trader in Ivor Tower Alley also provide the Armor Polish where needed so that I can have the player actually want to consider getting the Silver Sheath and justify buffing the Armor Polish's influence in the interest of promoting progression. Of course, since the Sun Stone is one of the options, I can always replace that option to give its ATK boost a bit of sense of reward by contrast, as long as the player doesn't get shafted from 100% completion for what is supposed to be a preference choice.
Naturally, this topic's creation is in interest of obtaining aid, though primarily I am thinking of testers and people who would provide transition for different versions. Hopefully, things can at least go better now that there's no more real concern of a deadline.
This is naturally late, but I did find relevant coding for values determining when the screen scrolls. As copied from my editing on Ghidra aside from cutting out a bit of inconvenient formatting:
108ebf a9 48 00 LDA #$0x48 =>LAB_108ebf+1 West 108ec2 8f 0f 24 7e STA !>$DAT_7e240f 108ec6 a9 48 00 LDA #$0x48 =>LAB_108ec6+1 East 108ec9 8f 11 24 7e STA !>$DAT_7e2411 108ecd a9 68 00 LDA #$0x68 =>LAB_108ecd+1 North 108ed0 8f 13 24 7e STA !>$DAT_7e2413 108ed4 a9 38 00 LDA #$0x38 =>LAB_108ed4+1 South 108ed7 8f 15 24 7e STA !>$DAT_7e2415 So the values you'd want to edit on the ROM would be 108EC0 for West, 108EC7 for East, 108ECE for North, and 108ED5 for South. Of course, just make sure the West and East values don't exceed 256 and the North and South don't exceed 224.
It would be nice, of course, to have the values higher for more kinetic gameplay from the easier scrolling and improved forward vision, so this was worth the trouble.
Oh, and if you're asking what I'm doing with LTTP, RL issues forcing me to have dead time where I'm back to handling SoE.
I may as well make my response. At this point, too few people will care anyway, and when EVERYBODY is refusing to be sedulous because of that, I may as well make the "25th Anniversary" part basically an Artifact Title. Granted, I will have to get Link to the Past done before doing anything too active, but I can at least share my thoughts.
-Wings glitch's existence is known about, but I'll have to figure out how to patch the glitch. I didn't want people running around Prehistoria using Pixie Dust too easily anyway, although I HAVE changed Pixie Dust's effect, but even then, PD shouldn't cost too little. -Good to know that the ingredient requirement increases do provide added challenge. Though I'm wanting to encourage exploration over grinding, so that makes me wish I could have a good way to increase the ingredient find counts reliably without breaking things. -Bone Buzzards/Skullclaws are meant to have -64 Magic DEF, not 192; I didn't look at the calculations more closely, instead being too busy being OCD about the -63 Magic DEF. Of course, I'm thinking of revamping enemies' usage of Magic DEF anyway. -I'll definitely want to look into 2P patch compatibility. I would certainly want to make sure only the human player's controlled character gets the ATK reduction to their range attacks, but the 2P patch will certainly complicate that.
I do also have other ideas that I will want to implement, at the very least a more detailed changelog as its own file to allow people to better see what exactly I'm thinking with the number crunching. I won't provide more details right now, but I can say I do at least have ideas in mind. (Also, some points about the game's checksum usage would be nice to hear about before I make any real progress.)
..? have you tried the "Unsaved stat boosts fix" and "Death-defying stat boosts fix"?
i'm not quite sure which bug(s) you're referring to based off of one sentence, but it sounds like it could be up those patches' alleys.
I was on a deadline, so I was more concerned with getting other things done. I already did close off the abuses anyway, so they wouldn't be a problem, and I wouldn't want to carelessly mess with save-related things until I was at a reasonable stage for possible backtracking given my reliance on Hex Workshop and Ghidra.
I've been more focused on both trying to advertise the patch around, unfortunately to limited effect with how practically languid the game's community is; and focusing on my new video series, which is a No Damage/Effective Minimalist Run of Zelda: A Link to the Past. (Oh, and by the way, since you're here, I did mention you in my latest video because of your Monster Stats FAQ making clear that most Dark World bosses can't be damaged by the L1 Sword's regular attack, something I found when looking for anything that could have forced getting the Master(/Tempered) Sword even with the Death Mountain Descent.) I would want to revisit the patch more actively at some point down the road, though, but I'd have to figure out how the Checksum is handled before doing anything further because I suspect it is used in the middle of gameplay in some fashion that set off a bug that I had ran across.
I'd be up for talking if reasonable in the interest of coordination. My interest was in getting something presentable released. That doesn't mean it's complete. I couldn't even remember everything that was missing. I wouldn't mind aid in addressing key issues as long as it doesn't get too pushy.
I know with Secret of Evermore the the Tactical Fatigue script, which empties the chargeup level and shuts off the pseudo intangibility flag (Character Index $14 Bit $0200, activated by charged attack usage and also deactivated sooner by an attack from the character connecting a hitbox with an enemy to trigger the Hit Roll), is at $908495. However, I would advise understanding why the recharge mechanic is around in the first place. There's a reason why plenty of enemies in SoE have an actual Evade value to prevent 100% Hit Chance without getting to 99 Hit yourself, after all.
Umm the downloads appear to be corrupted in their present state.
Okay. I have figured out how to circumvent the problem: using cloudinary.com to link to the raw files without any extension name issues like what Dropbox provides with the "?dl=" ending. The Dropbox link I have provided above is, of course, reported by the SoE Discord members to work properly for the purposes of downloading the patch, so the confusion is ultimately a mix of factors.
There shouldn't be any more issues with this once the whole thing gets through.
One of my favorite games(and better then MANA), been itching to play this recently so seems like perfect timing.
BTW: As of this writing the download link doesn't work, instead of a .zip file it's an HTML file, fix soon, this itch hurts!
Good to know with the first one. And as for the messy links, I think the DL and Readme got mixed up. I'm not sure where it happened, but if it's possible to bring it up to whoever is running the Queue, that would be appreciated. In the meantime, this should at least work: https://www.dropbox.com/s/anaynzba5n40ly1/Evermore25AnniversaryBal.zip?dl=0 (And I know this is supposed to officially release tomorrow, but even so.)
I've still never played SoE. Would you recommend playing the original, this, or another patch for a first-time player? Someday I might get to it -- thanks! Congrats on your project.
It depends. The original does still have the usual experience, although the difficulty curve is rather questionably handled. Ninakoru's balance patch focuses on adding challenge and new enemies in comparison to my own patch. My balance patch focuses on providing more kinetic and involved gameplay within improved variety. I say go with which one you feel most comfortable with.
Oh, and the user Special reported about the links being messy. I provided the link above, which should work properly and would include the ReadMe file.
What's the difference between PAL-Style and NTSC-style balancing? I'm not familiar with this.
Basically PAL-style balancing is done to improve the game, ideally without breaking intention.
May I point out real quick that the Work Car (the bulldozer) has only 5 Materials (the primary "weapon") in vanilla GBW3. PALBal increases that to 8 for a key reason: encouraging expansion. Expansion being rewarded is the way to discourage camping while making sure offense is only rewarded by flow rather than being impossible to blunt. The Work Car having better endurance in property development makes obtaining Gold easier, reducing the difficulty in buying units for sieging Bazooka soldiers which in turn punishes the Bazooka spam. What stops Work Car spam itself? Simple: it lacks any offensive power beyond an auxiliary MG, so Work Car spam is from the player asking to have their mainstay force ultimately flanked. Thus the Work Car has to be used well and yet its usage is more standardized to set up a happy medium that doesn't have too much offense's problem of removing any halfway valid point to thinking, or too much defense's lack of interaction issue.
Oh, and by the way, yes, GBW3 already has a map editor that allows row and height to each be anywhere from 20 to 50 tiles. If you want to make a competitive map with it, be sure to pay close attention to how many Factories each side gets easily, and also consider ideas like fighting over path split locations to help feed flanking and attacks on supply lines. That could help things along.
So I played through a bit more and let me tell you that Spikey Tiger's hurtbox is a load. Javelin seems to have sexy usability right now though thanks to the generous hitbox.....seriously, why isn't that available for Spikey Tiger and his dumb hurtbox. Oh right, because Spikey Tiger has to be killed to trigger the event flags that allow for getting the Javelin.
My suggestions for the melee weapons, the bow, and the whip are unchanged. However, I'd be for making sure the Boomerang and Javelin are well differentiated. Actually, come to think of it, perhaps the Boomerang could simply go ahead and half-ignore DEF while keeping its current attack power, but that's just an idea.
Also, please fix hitboxes/hurtboxes. Spikey Tiger was needlessly frustrating because of bad hit detection.
Looking at monster stats, it doesn't look like any monster stats were changed, and I'm noticing with viewing via an editor that to begin with, basically every monster has their Evade and Magic Evade at either 0 or 99 for each one. That's awfully binary. We would want monster stats to be vibrant, right? Plus the way the damage formula is handled ATM, why is (Magic) Evade needed to have *ANY* working (Magic) DEF stat?
Just played the hack last night, and I will say that the strong/weak mechanic is DEFINITELY a boon for variety. I'm definitely noticing it as early as right after being exiled from Potos, where Lullabuds surprisingly encourage weak attacks and positioning to get them under control, when strong attacks are still useful to snipe enemies like Buzz Bees.
That said, I do have my complaints about balance, and they crop up as early as Gaia's Navel. Plenty of my complaints are actually about weapon balance. The Bow has become one of the better weapons as a result of the range since it can lame out enemies every chance it gets, even outranging Chobin Hoods in all their own annoyance factor. However, I don't think it's an innate problem with the buff so much as the other weapons having key problems. I notice because the Bow has more ATK than the freaking Boomerang. With this in mind, here's what I would recommend with the weapons: *Give the Bow minimal ATK values *Buff the ATK values of the Sword, Spear, Axe, and Boomerang *Give Gloves improved recharge. Whip as well at the cost of having minimal ATK. *Have Axe ignore half the enemy's DEF value (assuming this wouldn't be stupid against the Mana Beast) *Make Javelin basically a Mighty Glacier--not sure how, though.
There's also two monsters that do need to be highlighted for needless difficulty: Green Drop (OF COURSE!) and Polterchair. Green Drops like to evade everything ever, have obnoxiously high DEF, and then simply multiply to spawn themselves. Polterchairs are just as sadistic because they can combo your entire party to an early, easy demise if given the chance, and I'm speaking having been overleveled with full equipment and still having been chained all the way from about full health for everybody. I guarantee Polterchairs will need to deal less damage so as to make their shenanigans more survivable.
Hopefully, things like this would help.
Addendum: talking to a friend on Skype, since he mentioned about charge attack usability, I thought of an idea for how that issue could be fixed if the idea can be implemented: have them ignore a fraction of the enemy's Evade, at a rate of 1/8 for each charge level. This would make it useful to charge up to higher levels because they won't care about Evade much at all.
Well I beat Mondo Mole. I was a bit overleveled but what you're supposed to do against him is still interesting enough. Since I'm leveled enough to have a decent PSI list available, I may as well provide my rebalance suggestions. Keeping in mind that I expect most of the time there aren't more than 3 enemies around in general.
As follows: -All single-target food items recovery (current) -> (5 * current / 3) -Runaway Dog drops Bread Rolls at perhaps 2/3 of the current frequency -Lifeup Alpha recovery average 80 HPs -> 60 HPs -Lifeup Beta recovery average 240 HPs -> 150 HPs -Favorite Alpha per enemy damage average 80 HPs -> 100 HPs -Favorite Beta per enemy damage average 160 HPs -> 180 HPs -Fire Alpha cost 6 PP -> 4 PP -Freeze Alpha cost 4 PP -> 6 PP -Freeze Beta cost 8 PP -> 12 PP -Freeze Beta average damage 360 HPs -> 300 HPs -Thunder Alpha per bolt damage 40 HPs -> 50 HPs -Enemy Cop's Offense 23 -> 20 (makes it MUCH easier to avoid falling below 25 HPs during that awful, AWFUL marathon; everything else about this nuisance is tame) -Enemy Cop's Defense 23 -> 25 (makes Cop not suck in Twoson) -Enemy New Age Retro Hippie's Defense 18 -> 16 -Enemy Unassuming Local Guys' Offense 23 -> 18 (probably nerf Everdred's Offense a bit too, but not too much) -Enemy Mobile Sprout's Offense 21 -> 18 -Enemy Mobile Sprout's Defense 15 -> 12
I may as well post my complaints about the balance thus far, because there's one particular instance where I get to call BS on the hack's part.
*Runaway Dogs seem to drop Bread Rolls a little more often than they should. *Okay, so Lifeup Alpha heals less now, okay. Wait, it costs only 3 PP now? That makes 80 HP healing more cost-effective than the 100 HP healing was in vanilla EB. I think it should be dropped to 60 HPs. *Single-target healing items STILL suck regardless of the above. By the time Ness has 75 HPs, relevant enemy damage generally is strong enough to cancel with freaking Hamburgers. *Shield Alpha is only really good for Frankenstein Mark II, if that, during the early game. The only enemy before Happy Happy Village who reliably deals at least 90 damage in one attack, discounting the Territorial Oaks' explosions for obvious reasons, is Everdred with his bite attack. No other enemies come CLOSE. *Enemies past Titanic Ant have a NASTY Offense spike. Enemies like Captain Strong are fine, but dealing with FOUR Cops in a row with an L12 Ness is a headache, and that's assuming you get lucky and end up with 9 Vitality (135 HPs) for L12. You can have a little as 7 (105 HPs), if you're wondering. It's a headache to avoid being below 25 HPs against those headaches, at which point Ness is just plain dead. *Agh, Mobile Sprouts, so you use Lifeup Alpha, create reinforcements of yourself, and then laugh at the idea of 1HKing with Favorite Alpha? Sorry, but you're cowards especially when you show up in pairs on the map. *Unassuming Local Guys are Demonic Spiders at this point too. Mugging, solidifying, AND high damage. Oh, and THEY RESIST PSI FAVORITE, WHAT IS THIS I DON'T EVEN! *Mugging attacks themselves also seem to have their damage output unaffected by the Shield buff even though they actually affect the Shield buff. What. *Finally, the south Twoson encounter rate is ridiculous. I even DIED FROM 150 HPS because when the 2-3 Tunnel ejected me I got dumped right into an encounter with TWO ULGs AND a Hippie. I tried to run on the spot, it failed, and I got no further turns because the ULGs kept solidifying me and paraplinked me. That needs to be fixed. And here was my Ness's stats in that bloodbath for those curious: -Level 19, Happy Happy Village equipment (don't ask) -HP: 151 -PP: 58 -Offense: 49 -Defense: 35 -Speed: 19 -Guts: 12 -Vitality: 10 -IQ: 11 -Luck: 11
It's not like the hack doesn't do good thing, but seriously, there's some balance issues aggravating the issues of an already slow start where non-healing PSI in general hasn't been given the chance to be decently useful.
As it turns out, DE is supposed to hold a number. RAM $CAAB is used to determine how many more times the thing loops.
Through a suggestion from the chat room to use a debugger, I managed to stumble upon what I did miss: while I did guess that I was missing something with the Carry Flag, I didn't guess that, as it turns out, 00:2A42's Carry Flag setting is preserved up to the next Rotate instruction. This allows the new BC to actually hold something sooner or later. A little more fiddling around with the debugger and it turns out that the whole thing turns out to be one thing: division. As it turns out, when $CAAB is finally 0, DE should have its final result being what it was divided by old BC, and BC should be holding the remainder.
Well, now this topic is unnecessary. And apologies for posting in the wrong forum. I saw "Script Help" and figured that's where I should post. Ah well. November 09, 2011, 11:12:08 pm - (Auto Merged - Double Posts are not allowed before 7 days.)Well, let's do an example, since somebody questioned this on PM:
DE = 100, BC = 20, HL = CAAB, CAA9 = 20, CAAA = 0
(Spoiler tags for length.)
Spoiler:
00:2A38 3611 ld [hl],$11 <-- DE = 100, BC = 20, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 17 00:2A3A 010000 ld bc,$0000 <-- DE = 100, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 17 00:2A3D 21ABCA ld hl,$CAAB <-- DE = 100, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 17 00:2A40 CB13 rl e <-- DE = 200, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 17 00:2A42 CB12 rl d <-- DE = 200, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 17 00:2A44 35 dec [hl] <-- DE = 200, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 16 00:2A45 281A jr z,$2A61 <-- DE = 200, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 16 00:2A47 CB11 rl c <-- DE = 200, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 16 00:2A49 CB10 rl b <-- DE = 200, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 16 00:2A4B 2B dec hl <-- DE = 200, BC = 0, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 16 00:2A4C 2B dec hl <-- DE = 200, BC = 0, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 16 00:2A4D 79 ld a,c <-- A = 0, DE = 200, BC = 0, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 16 00:2A4E 96 sub [hl] <-- A = 236, DE = 200, BC = 0, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A4F 4F ld c,a <-- A = 236, DE = 200, BC = 236, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A50 23 inc hl <-- A = 236, DE = 200, BC = 236, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A51 78 ld a,b <-- A = 0, DE = 200, BC = 236, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A52 9E sbc [hl] <-- A = 255, DE = 200, BC = 236, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A53 47 ld b,a <-- A = 255, DE = 200, BC = 65516, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A54 3008 jr nc,$2A5E <-- A = 255, DE = 200, BC = 65516, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A56 2B dec hl <-- A = 255, DE = 200, BC = 65516, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A57 79 ld a,c <-- A = 236, DE = 200, BC = 65516, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A58 86 add a,[hl] <-- A = 0, DE = 200, BC = 65516, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A59 4F ld c,a <-- A = 0, DE = 200, BC = 65280, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A5A 23 inc hl <-- A = 0, DE = 200, BC = 65280, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A5B 78 ld a,b <-- A = 255, DE = 200, BC = 65280, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A5C 8E adc a,[hl] <-- A = 0, DE = 200, BC = 65280, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A5D 47 ld b,a <-- A = 0, DE = 200, BC = 0, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 16 (Carry On) 00:2A5E 3F ccf <-- A = 0, DE = 200, BC = 0, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 16 00:2A5F 18DC jr $2A3D <-- A = 0, DE = 200, BC = 0, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 16
This didn't seem to do anything, but look again. DE has been increased. Let's keep the loop while tracking DE and CAAB: CAAB = 17, DE = 100 CAAB = 16, DE = 200 CAAB = 15, DE = 400 CAAB = 14, DE = 800 CAAB = 13, DE = 1600 CAAB = 12, DE = 3200 CAAB = 11, DE = 6400 CAAB = 10, DE = 12800 CAAB = 9, DE = 25600 CAAB = 8, DE = 51200
Now let's do the loop again, with that last line, because double 51200 is going to exceed 65535.
Spoiler:
00:2A3D 21ABCA ld hl,$CAAB <-- A = 0, DE = 51200, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 8 00:2A40 CB13 rl e <-- A = 0, DE = 51200, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 8 00:2A42 CB12 rl d <-- A = 0, DE = 36864, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 8 (Carry On) 00:2A44 35 dec [hl] <-- A = 0, DE = 36864, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A45 281A jr z,$2A61 <-- A = 0, DE = 36864, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A47 CB11 rl c <-- A = 0, DE = 36864, BC = 1, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 7 00:2A49 CB10 rl b <-- A = 0, DE = 36864, BC = 1, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 7 00:2A4B 2B dec hl <-- A = 0, DE = 36864, BC = 1, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 7 00:2A4C 2B dec hl <-- A = 0, DE = 36864, BC = 1, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 7 00:2A4D 79 ld a,c <-- A = 1, DE = 36864, BC = 1, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 7 00:2A4E 96 sub [hl] <-- A = 237, DE = 36864, BC = 1, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A4F 4F ld c,a <-- A = 237, DE = 36864, BC = 237, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A50 23 inc hl <-- A = 237, DE = 36864, BC = 237, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A51 78 ld a,b <-- A = 0, DE = 36864, BC = 237, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A52 9E sbc [hl] <-- A = 255, DE = 36864, BC = 237, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A53 47 ld b,a <-- A = 255, DE = 36864, BC = 65517, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A54 3008 jr nc,$2A5E <-- A = 255, DE = 36864, BC = 65517, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A56 2B dec hl <-- A = 255, DE = 36864, BC = 65517, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A57 79 ld a,c <-- A = 237, DE = 36864, BC = 65517, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A58 86 add a,[hl] <-- A = 1, DE = 36864, BC = 65517, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A59 4F ld c,a <-- A = 1, DE = 36864, BC = 65281, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A5A 23 inc hl <-- A = 1, DE = 36864, BC = 65281, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A5B 78 ld a,b <-- A = 255, DE = 36864, BC = 65281, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A5C 8E adc a,[hl] <-- A = 0, DE = 36864, BC = 65281, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A5D 47 ld b,a <-- A = 0, DE = 36864, BC = 1, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 7 (Carry On) 00:2A5E 3F ccf <-- A = 0, DE = 36864, BC = 1, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 7 00:2A5F 18DC jr $2A3D <-- A = 0, DE = 36864, BC = 1, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 7
Well, now BC is changed, so we may actually do something. Let's compare BC, DE, and CAAB for now. BC = 0, DE = 51200, CAAB = 8 BC = 1, DE = 36864, CAAB = 7 BC = 3, DE = 8192, CAAB = 6 BC = 6, DE = 16384, CAAB = 5 BC = 12, DE = 32768, CAAB = 4
Oh, BC is going to exceed 20, so let's see what happens again.
Spoiler:
00:2A3D 21ABCA ld hl,$CAAB <-- A = 0, DE = 32768, BC = 12, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 4 00:2A40 CB13 rl e <-- A = 0, DE = 32768, BC = 12, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 4 00:2A42 CB12 rl d <-- A = 0, DE = 0, BC = 12, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 4 (Carry On) 00:2A44 35 dec [hl] <-- A = 0, DE = 0, BC = 12, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 3 (Carry On) 00:2A45 281A jr z,$2A61 <-- A = 0, DE = 0, BC = 12, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 3 (Carry On) 00:2A47 CB11 rl c <-- A = 0, DE = 0, BC = 25, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 3 00:2A49 CB10 rl b <-- A = 0, DE = 0, BC = 25, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 3 00:2A4B 2B dec hl <-- A = 0, DE = 0, BC = 25, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 3 00:2A4C 2B dec hl <-- A = 0, DE = 0, BC = 25, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 3 00:2A4D 79 ld a,c <-- A = 25, DE = 0, BC = 25, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 3 00:2A4E 96 sub [hl] <-- A = 5, DE = 0, BC = 25, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 3 00:2A4F 4F ld c,a <-- A = 5, DE = 0, BC = 5, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 3 00:2A50 23 inc hl <-- A = 5, DE = 0, BC = 5, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 3 00:2A51 78 ld a,b <-- A = 0, DE = 0, BC = 5, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 3 00:2A52 9E sbc [hl] <-- A = 0, DE = 0, BC = 5, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 3 00:2A53 47 ld b,a <-- A = 0, DE = 0, BC = 5, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 3 00:2A54 3008 jr nc,$2A5E <-- A = 0, DE = 0, BC = 5, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 3 00:2A5E 3F ccf <-- A = 0, DE = 0, BC = 5, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 3 (Carry On) 00:2A5F 18DC jr $2A3D <-- A = 0, DE = 0, BC = 5, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 3 (Carry On)
00:2A3D 21ABCA ld hl,$CAAB <-- A = 0, DE = 0, BC = 5, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 3 (Carry On) 00:2A40 CB13 rl e <-- A = 0, DE = 1, BC = 5, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 3 00:2A42 CB12 rl d <-- A = 0, DE = 1, BC = 5, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 3 00:2A44 35 dec [hl] <-- A = 0, DE = 1, BC = 5, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 2 00:2A45 281A jr z,$2A61 <-- A = 0, DE = 1, BC = 5, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 2 00:2A47 CB11 rl c <-- A = 0, DE = 1, BC = 10, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 2 00:2A49 CB10 rl b <-- A = 0, DE = 1, BC = 10, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 2 00:2A4B 2B dec hl <-- A = 0, DE = 1, BC = 10, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 2 00:2A4C 2B dec hl <-- A = 0, DE = 1, BC = 10, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 2 00:2A4D 79 ld a,c <-- A = 10, DE = 1, BC = 10, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 2 00:2A4E 96 sub [hl] <-- A = 246, DE = 1, BC = 10, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A4F 4F ld c,a <-- A = 246, DE = 1, BC = 246, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A50 23 inc hl <-- A = 246, DE = 1, BC = 246, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A51 78 ld a,b <-- A = 0, DE = 1, BC = 246, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A52 9E sbc [hl] <-- A = 255, DE = 1, BC = 246, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A53 47 ld b,a <-- A = 255, DE = 1, BC = 65526, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A54 3008 jr nc,$2A5E <-- A = 255, DE = 1, BC = 65526, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A56 2B dec hl <-- A = 255, DE = 1, BC = 65526, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A57 79 ld a,c <-- A = 246, DE = 1, BC = 65526, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A58 86 add a,[hl] <-- A = 10, DE = 1, BC = 65526, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A59 4F ld c,a <-- A = 0, DE = 1, BC = 65290, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A5A 23 inc hl <-- A = 0, DE = 1, BC = 65290, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A5B 78 ld a,b <-- A = 255, DE = 1, BC = 65290, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A5C 8E adc a,[hl] <-- A = 0, DE = 1, BC = 65290, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A5D 47 ld b,a <-- A = 0, DE = 1, BC = 10, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 2 (Carry On) 00:2A5E 3F ccf <-- A = 0, DE = 1, BC = 10, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 2 00:2A5F 18DC jr $2A3D <-- A = 0, DE = 1, BC = 10, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 2
00:2A3D 21ABCA ld hl,$CAAB <-- A = 0, DE = 1, BC = 10, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 2 00:2A40 CB13 rl e <-- A = 0, DE = 2, BC = 10, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 2 00:2A42 CB12 rl d <-- A = 0, DE = 2, BC = 10, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 2 00:2A44 35 dec [hl] <-- A = 0, DE = 2, BC = 10, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A45 281A jr z,$2A61 <-- A = 0, DE = 2, BC = 10, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A47 CB11 rl c <-- A = 0, DE = 2, BC = 20, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A49 CB10 rl b <-- A = 0, DE = 2, BC = 20, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A4B 2B dec hl <-- A = 0, DE = 2, BC = 20, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A4C 2B dec hl <-- A = 0, DE = 2, BC = 20, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A4D 79 ld a,c <-- A = 20, DE = 2, BC = 20, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A4E 96 sub [hl] <-- A = 0, DE = 2, BC = 20, HL = CAA9, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A4F 4F ld c,a <-- A = 0, DE = 2, BC = 0, HL = CAA0, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A50 23 inc hl <-- A = 0, DE = 2, BC = 0, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A51 78 ld a,b <-- A = 0, DE = 2, BC = 0, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A52 9E sbc [hl] <-- A = 0, DE = 2, BC = 0, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A53 47 ld b,a <-- A = 0, DE = 2, BC = 0, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A54 3008 jr nc,$2A5E <-- A = 0, DE = 2, BC = 0, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A5E 3F ccf <-- A = 0, DE = 2, BC = 0, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 1 (Carry On) 00:2A5F 18DC jr $2A3D <-- A = 0, DE = 2, BC = 0, HL = CAAA, CAA9 = 20, CAAA = 0, CAAB = 1 (Carry On)
00:2A3D 21ABCA ld hl,$CAAB <-- A = 0, DE = 2, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 1 (Carry On) 00:2A40 CB13 rl e <-- A = 0, DE = 5, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A42 CB12 rl d <-- A = 0, DE = 5, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 1 00:2A44 35 dec [hl] <-- A = 0, DE = 5, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 0 (Zero On) 00:2A45 281A jr z,$2A61 <-- A = 0, DE = 5, BC = 0, HL = CAAB, CAA9 = 20, CAAA = 0, CAAB = 1 (Zero On)
Well there we go. DE and BC were, as expected, 5 and 0 respectively, the rounded down answer and remainder of 100/20.
I got files from extracting from the Battalion Wars 1 ISO because I wanted to look up its formulas for damage, ranking, etc. As it turns out, the .RES files in the folder that would hold all the data I'm looking for are bigger than the XML files. Although they might be the map layouts, I'm not sure if I can find the formulas elsewhere to begin with.
Honestly, I'm surprised RHn doesn't have anything about this sort of thing, really.
Damage calculator is neat, but it's woefully incomplete right now: *No monster regular attacks listed *Monsters do not need equipment *The defense changes for the attacker or attack changes for the defender are currently pointless *PATK Down, MATK Down, and the defender's status changes do nothing *No sign of traits like Jump Power
Another bug, one that has been around in 3.4: the shops list doesn't change until you change items.
I'm not sure what other bugs there would be. Other people may want to see. I'm not sure I'd find something that would particularly bother me.