News: 11 March 2016 - Forum Rules

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.


Messages - MKnightDH

Pages: [1] 2
1
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.

The readme file isn't viewable from the the hack page, I think you need to upload it.

Done now.

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.

2
Somehow, the News submission was Approved ahead of the actual file submission itself, so I will provide the ZIP file from my Google Drive for anybody who is an early bird, and also in case the file submission is messy:
https://drive.google.com/file/d/1zRhH-11DOMxUyP2lXQ_3d4-mVbEl_CXO/view?usp=sharing

Enjoy.

3
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.
Spoiler:
Spell Instruction $46:
11cb6a ae b4 0e     LDX   !$0xeb4
11cb6d 30 0a        BMI   $LAB_11cb79
11cb6f b9 14 00     LDA   !$0x14 ,Y
11cb72 1a           INC
11cb73 1a           INC
11cb74 99 14 00     STA   !$0x14 ,Y       Next instruction
11cb77 38           SEC                   
11cb78 60           RTS                   
11cb79 a9 8a cb     LDA   #$0xcb8a        "It didn't work!"
11cb7c 85 22        STA   <$0x22           
11cb7e a9 91 00     LDA   #$0x91           
11cb81 85 24        STA   <$0x24           
11cb83 22 21 c5 8c  JSL   !>$DAT_8cc521   Signal to play next quick message
11cb87 4c 5c 9b     JMP   !$0x9b5c        Ending instruction

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.

4
Personal Projects / Re: Secret of Evermore Scroll Hack
« on: January 16, 2021, 10:39:22 pm »
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:

Code: [Select]
          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.

5
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.)

6
..?  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.

7
Newcomer's Board / Re: Eliminating recharge time in SoM and SoE
« on: September 30, 2020, 07:16:03 pm »
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.

8
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.

9
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.)

Haha, "non-malicious feedback welcome", nice.

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.

10
News Submissions / Re: ROM Hacks: Game Boy Wars 3 PAL-style balancing
« on: January 19, 2018, 05:16:55 pm »
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.

11
Personal Projects / Re: Secret Of Mana Gameplay Improvement Hack
« on: December 15, 2016, 01:55:08 am »
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?

12
Personal Projects / Re: Secret Of Mana Gameplay Improvement Hack
« on: December 11, 2016, 05:41:46 pm »
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.

13
News Submissions / Re: ROM Hacks: MOTHER 2 DELUXE RELEASED
« on: August 14, 2015, 10:48:26 pm »
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 think that should cover it.

14
News Submissions / Re: ROM Hacks: MOTHER 2 DELUXE RELEASED
« on: August 13, 2015, 04:33:11 pm »
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.

15
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.

That should prove my point.

16
Programming / Trying to figure out an algorithm's purpose. (Z80 coding.)
« on: November 08, 2011, 09:45:25 pm »
http://pastebin.com/JSuYJAb7

Note about my notes: 0?,C,B,17 are held in CAA8 through CAAB in order. Ignore the 0?, it's actually there to handle an outside process.

I have been trying to figure out what the algorithm is for, but so far, no luck. Any ideas?

17
Programming / Reading .RES files.
« on: May 07, 2011, 02:32:04 pm »
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.

18
Personal Projects / Re: Lazy Shell v3.5b - Super Mario RPG Editor
« on: April 24, 2011, 02:27:57 pm »
q0zi, you might want to get an IM service like Skype. That way, you could regularly contact the people you would need to.

(For the record, my Skype ID is mknightdh. I'd be up for providing advice on game balance.)

19
Personal Projects / Re: Lazy Shell v3.5b - Super Mario RPG Editor
« on: April 11, 2011, 03:53:12 am »
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.

20
Personal Projects / Re: Fire Emblem (NES) Translation
« on: March 05, 2011, 05:35:11 am »
Cleric already can be promoted, though it requires a Guidance Ring. They can gain EXP too, by surviving combat rounds, which invites Thief grinding.

The other classes you mentioned, though, are SOL without a balance hack or something.

Pages: [1] 2