Forum Replies Created
-
AuthorPosts
-
July 7, 2013 at 3:55 am in reply to: 1st Annual DoaE Assembly Coding Conference (Destiny-con) #45701
ludmeister
ParticipantIt was a very enjoyable time. We'll have to do this again next year (if not sooner) :P
When all else fails... manipulate the source code.
ludmeister
ParticipantAt the start of the Dong Zhuo campaign, my army was led by:
Liao Hua
Chengyuan Zhi
Song Yong
Sun Gan
Song Ren
How this group will not fall like wheat before Hua Zhong is beyond me… 8O
When all else fails... manipulate the source code.
ludmeister
ParticipantWell… I've noticed that only one of the IDs work for those items that have the same names. The rule of thumb that I found was that the first ID is the one that should be referenced. However, in the Gullwing example I believe I used ID 28… bah, I'm not able to check on that right now; I'm out of state and don't have my notes. Grrr! :oops:
EDIT- Oops. Rather, I think I always used the last ID whenever there were multiple IDs for the same name. I don't remember there to be any exceptions. I used 0x30 for Resurrect, and 0x38 for Power Pill, if memory serves.
When all else fails... manipulate the source code.
ludmeister
ParticipantYou'll probably get real tired of hearing me say it, but I'm loving all the amazing progress you're making on tactics. Are these screens just mockups, or are these tabs functional? This will make tactic editing much more accessible. As for your GUI, I'm not sure it needs to be much more streamlined; after all, you're taking something that's fairly complex and putting edit-capability into the common person's hands. I think what you've designed does that.
I apologize that I haven't written a nitty-gritty post on the expanded equipment list yet. Hopefully after this Sunday I'll get a chance to do that. It'd be awesome for expanded equipment to get a tab in DoaE as well!
When all else fails... manipulate the source code.
ludmeister
ParticipantAwesome Zhang Lu! Thanks for playing and sharing your thoughts. I've never tried to use several of the officers that you used for long stretches so that was very cool to hear about that. I will be very interested to hear about how a Shu-officer-boycott run goes for you! In fact, I think I will try that soon, to satisfy my curiosity.
When all else fails... manipulate the source code.
ludmeister
ParticipantMiDKnighT–
Thank you for the great feedback; it is most appreciated! I just got back from another of my out-of-state business trips, so I had been away from the modding scene for a bit; our company is getting ready for an important convention and one my projects is an integral part of that conference.
Yeah, Yuan Shao's Revenge and Flames of Wu have been very inspirational to me, and have helped push me to do more with the Remix, for sure. It's kind of a neat alliance… you, Sonic, and I: for Sonic, it is all about the story and the multimedia experience, and he is exceptional at weaving a storyline into a finished mod that has that professional feel. With your assembly chops (and the DoaE knowledge base) you could probably hack most any new feature into the game (obviously within reason, but still!) And for me, it's all about the smoothness of the gameplay, and pacing of advancement, and maximizing player options within the specified limits of the game's engine.
If you, Sonic, and I ever combined on a DoaE mod that was outside of the Three Kingdoms historical scope, and perhaps had a more fantastical setting, that really does have the capacity to be a great mod. I especially think your new Tactic classes has incredible possiblities there: that could be adapted (with more ASM wizardry of course) to allow for character customization and Class selecting. That would be awesome… choose your own starting hero! :sunny: Of course, the DoaE recruitment feature has Dragon Quest Monsters written all over it!
Anyway, thanks for documenting your run. And I'm sure we'll track down that bug sometime… it can't hide from us forever :unibrow:
When all else fails... manipulate the source code.
ludmeister
ParticipantDo you feel the pacing is too slow? In part, the reason behind the steep curves is that I wanted to give players the chance to recruit the officers they wanted, without borking the difficulty level. I also wanted the endgame to be a challenge, because it has seemed to be the consensus that Remix v2.0 was too easy at the end (and not just because of the Evade/Thwart exploit).
When all else fails... manipulate the source code.
ludmeister
ParticipantI'm certain that the problem here, in $8939, is that it's pulling Y from $018d. That "0a" is supposed to be a textual space!
When all else fails... manipulate the source code.
ludmeister
ParticipantQuote:Which is looking up a pointer by look at 87BA,Y and finding 2D. This is almost certainly the wrong location. Either the 87BA is wrong or the Y is wrong. I'm gonna set a breakpoint on 855C to see if I can find the answer.I was looking a little at this code today, and it looks as though Y is the variable that drives an "On…goto" construct (if you knew BASIC back in the day). There's a list of pointers that are called, based on the value of Y. Here's a snapshot of 0x207c9 to 0x207e0. This is because we're working with page 08:
Code:4E85 CF87 D987
E387 F387 0D88 5588 7288 8588 BF88 0F89
202DSo, valid values for Y are:
- 00- Pointer = $4e85
- 02- Pointer = $cf87
- 04- Pointer = $d987
- 06- Pointer = $e387
- 08- Pointer = $f387
- 0a- Pointer = $0d88
- 0c- Pointer = $5588
- 0e- Pointer = $7288
- 10- Pointer = $8588
- 12- Pointer = $bf88
- 14- Pointer = $0f89
It looks as though Y was 16 (or 20, 2a or 3a!)… Instead, this statement pulled a bogus pointer. So, yah, I'm wondering how Y got set to > #14.
When all else fails... manipulate the source code.
ludmeister
ParticipantQuote:Anybody mess with $C7?I feel pretty confident that I have not. Most of my changes have not required me to make use of zero page memory, and I when I did I changed a byte which I knew was going to be assigned directly later. For instance, $10-$15.
Here are some of the places I've found that execution first halts, when Breaking on Bad Opcode:
08:827f
00:00c6 ?!
00:2d2e
02:8304
I'm stumped as of right now. There is one thing I can think of though… Page 1F and 3F may not be absolutely identical. Could that be an issue?
When all else fails... manipulate the source code.
ludmeister
ParticipantPardon the double post. Server blip.
EDIT: I'll "redeem" this post by reporting… I pasted page 1F to 3F and I still get the same issues as I posted before. Back to the drawing board. I'll try tracing. I've got a save state that I know is in danger of crapping out.
Success! Here's a dump of what happens when it errors at $2d24, starting at the beginning of the little subroutine that you mentioned, MiDKnight:
Code:$8278:20 AC 86 JSR $86AC A:01 X:3A Y:0E S:1A P:nvUbdIzc
$86AC:A5 C7 LDA $00C7 = #$00 A:01 X:3A Y:0E S:18 P:nvUbdIzc
$86AE:F0 0B BEQ $86BB A:00 X:3A Y:0E S:18 P:nvUbdIZc
$86BB:A0 05 LDY #$05 A:00 X:3A Y:0E S:18 P:nvUbdIZc
$86BD:B1 CC LDA ($CC),Y @ $08D6 = #$00 A:00 X:3A Y:05 S:18 P:nvUbdIzc
$86BF:0A ASL A:00 X:3A Y:05 S:18 P:nvUbdIZc
$86C0:90 09 BCC $86CB A:00 X:3A Y:05 S:18 P:nvUbdIZc
$86CB:A0 02 LDY #$02 A:00 X:3A Y:05 S:18 P:nvUbdIZc
$86CD:B1 CC LDA ($CC),Y @ $08D3 = #$00 A:00 X:3A Y:02 S:18 P:nvUbdIzc
$86CF:C8 INY A:00 X:3A Y:02 S:18 P:nvUbdIZc
$86D0:11 CC ORA ($CC),Y @ $08D4 = #$00 A:00 X:3A Y:03 S:18 P:nvUbdIzc
$86D2:F0 22 BEQ $86F6 A:00 X:3A Y:03 S:18 P:nvUbdIZc
$86F6:A0 05 LDY #$05 A:00 X:3A Y:03 S:18 P:nvUbdIZc
$86F8:B1 CC LDA ($CC),Y @ $08D6 = #$00 A:00 X:3A Y:05 S:18 P:nvUbdIzc
$86FA:29 7F AND #$7F A:00 X:3A Y:05 S:18 P:nvUbdIZc
$86FC:91 CC STA ($CC),Y @ $08D6 = #$00 A:00 X:3A Y:05 S:18 P:nvUbdIZc
$86FE:20 2D 89 JSR $892D A:00 X:3A Y:05 S:18 P:nvUbdIZc
$892D:A0 00 LDY #$00 A:00 X:3A Y:05 S:16 P:nvUbdIZc
$892F:B1 CC LDA ($CC),Y @ $08D1 = #$8D A:00 X:3A Y:00 S:16 P:nvUbdIZc
$8931:85 D4 STA $00D4 = #$00 A:8D X:3A Y:00 S:16 P:NvUbdIzc
$8933:C8 INY A:8D X:3A Y:00 S:16 P:NvUbdIzc
$8934:B1 CC LDA ($CC),Y @ $08D2 = #$01 A:8D X:3A Y:01 S:16 P:nvUbdIzc
$8936:85 D5 STA $00D5 = #$12 A:01 X:3A Y:01 S:16 P:nvUbdIzc
$8938:88 DEY A:01 X:3A Y:01 S:16 P:nvUbdIzc
$8939:B1 D4 LDA ($D4),Y @ $018D = #$0A A:01 X:3A Y:00 S:16 P:nvUbdIZc
$893B:AA TAX A:0A X:3A Y:00 S:16 P:nvUbdIzc
$893C:A9 01 LDA #$01 A:0A X:0A Y:00 S:16 P:nvUbdIzc
$893E:18 CLC A:01 X:0A Y:00 S:16 P:nvUbdIzc
$893F:65 D4 ADC $00D4 = #$8D A:01 X:0A Y:00 S:16 P:nvUbdIzc
$8941:91 CC STA ($CC),Y @ $08D1 = #$8D A:8E X:0A Y:00 S:16 P:NvUbdIzc
$8943:A9 00 LDA #$00 A:8E X:0A Y:00 S:16 P:NvUbdIzc
$8945:65 D5 ADC $00D5 = #$01 A:00 X:0A Y:00 S:16 P:nvUbdIZc
$8947:C8 INY A:01 X:0A Y:00 S:16 P:nvUbdIzc
$8948:91 CC STA ($CC),Y @ $08D2 = #$01 A:01 X:0A Y:01 S:16 P:nvUbdIzc
$894A:8A TXA A:01 X:0A Y:01 S:16 P:nvUbdIzc
$894B:60 RTS A:0A X:0A Y:01 S:16 P:nvUbdIzc
$8701:29 F0 AND #$F0 A:0A X:0A Y:01 S:18 P:nvUbdIzc
$8703:D0 03 BNE $8708 A:00 X:0A Y:01 S:18 P:nvUbdIZc
$8705:4C B8 87 JMP $87B8 A:00 X:0A Y:01 S:18 P:nvUbdIZc
$87B8:20 4E 85 JSR $854E A:00 X:0A Y:01 S:18 P:nvUbdIZc
$854E:8A TXA A:00 X:0A Y:01 S:16 P:nvUbdIZc
$854F:0A ASL A:0A X:0A Y:01 S:16 P:nvUbdIzc
$8550:A8 TAY A:14 X:0A Y:01 S:16 P:nvUbdIzc
$8551:C8 INY A:14 X:0A Y:14 S:16 P:nvUbdIzc
$8552:68 PLA A:14 X:0A Y:15 S:16 P:nvUbdIzc
$8553:85 D4 STA $00D4 = #$8D A:BA X:0A Y:15 S:17 P:NvUbdIzc
$8555:68 PLA A:BA X:0A Y:15 S:17 P:NvUbdIzc
$8556:85 D5 STA $00D5 = #$01 A:87 X:0A Y:15 S:18 P:NvUbdIzc
$8558:B1 D4 LDA ($D4),Y @ $87CF = #$20 A:87 X:0A Y:15 S:18 P:NvUbdIzc
$855A:AA TAX A:20 X:0A Y:15 S:18 P:nvUbdIzc
$855B:C8 INY A:20 X:20 Y:15 S:18 P:nvUbdIzc
$855C:B1 D4 LDA ($D4),Y @ $87D0 = #$2D A:20 X:20 Y:16 S:18 P:nvUbdIzc
$855E:85 D5 STA $00D5 = #$87 A:2D X:20 Y:16 S:18 P:nvUbdIzc
$8560:86 D4 STX $00D4 = #$BA A:2D X:20 Y:16 S:18 P:nvUbdIzc
$8562:6C D4 00 JMP ($00D4) = $2D20 A:2D X:20 Y:16 S:18 P:nvUbdIzc
$2D20:91 1E STA ($1E),Y @ $011A = #$82 A:2D X:20 Y:16 S:18 P:nvUbdIzc
$2D22:11 00 ORA ($00),Y @ $0026 = #$00 A:2D X:20 Y:16 S:18 P:nvUbdIzc
$2D24:F8 SED A:2D X:20 Y:16 S:18 P:nvUbdIzcIt appears that $8d and $8e are major players in this, as this is supposed to be a pointer to the next subroutine… if I'm reading the code right.
When all else fails... manipulate the source code.
ludmeister
ParticipantQuote:Lud, would you be willing to do an "expanded shops" enhancement since you've already been tinkering with that stuff?Sure. Is what I have done acceptable (standardizing item shops), or are you looking for something a bit more robust?
Quote:Also have you looked at the DoaEditor code?No, but I intend to look at it tonight or tomorrow. I confess to a bit of trepidation at the prospects of editing it… especially since the map/text stuff is totally over my head, though I can't imagine that I'd be working with that code anyway. And, I'm sure it'd be an educational experience!
When all else fails... manipulate the source code.
ludmeister
ParticipantQuote:I loved the idea of each officer having their own tactics but being able to completely shut down an opponent with Ji Mian + Ce Mian wasn't good. That's why I made them mutually exclusive later on.Yeah, that was totally broken. However, I had a couple of times when the enemy did that to me… I had to hold on for dear life ("I can see you… Kirk. Can you see me?… Once more unto the breach!"… "Reverse engines! All astern! Back off! Back off!"… "Incoming!…" … "Captain! She's packing quite a wallop. Shields weakening!") . Moral of the story: Evade/Thwart the enemy before they do it unto you… ?
Quote:Seems like there's something new every town!In the games that I love, I've found that those games find a way to make it so you're always looking towards a few different objectives at once (for instance, reaching the next experience level, devising a better magical nuke, purchasing something cool, upgrading skills, hunting a bad guy who needs his teeth kicked in, solving a puzzle, etc). If you have too few objectives at any one time, you tend to lose interest and get bored, and if you have too many (or if one objective is too hard or too far in the future) you tend to get frustrated and throw your controller/keyboard in anger. The best games, also, seem to allow you a certain number of rewards per hour (maybe 3 to 6) so that you feel like you are always making progress, and never stagnating.
See video game pacing is like science :hook: I like making games fun.
For instance: here's a particular rage-inducing tendency that SquareSoft games seem to implement a lot: treasure and skills that you can miss, and once you miss receiving them, they are Gone Forever. Especially if, when you realize that you missed the reward, you find that it was a case of Guide Dang It… in other words, how the heck was I supposed to know that was located there, or that I needed to do that to get it?!
Okay, [/rant]. But that was fun :sunny:
Quote:For the new weapons, we'd really need a shop expansion making all shops sell the same amount of items as Chang An.What I did, was I mapped out six different item shop merchandise lists, and rearranged the shop pointers. The item shops were, in effect, standardized, with 5 items in each list. For the fifteen or so weapon shops in the game, I was left with enough space to allow at least seven weapons/armor in each shop! So I didn't have to move the shop data anywhere new, just got creative with the space that I had :thumright:
Quote:Gold gains would really be an even bigger player.Yeah. To that end, I reduced the price of almost all items, especially towards the beginning of the game, to allow you to buy stuff early on. Also, I think that the random drops can mitigate the need for gold a bit, since you don't have to purchase as many usable items, and sometimes the odd piece of equipment drops that you will immediately want to use. That's a rarity, but if you are attempting to recruit an officer and are grinding a bit, that's when this tends to happen.
When all else fails... manipulate the source code.
ludmeister
ParticipantSkirmish, and especially Duel and Berserk make strong but less intelligent officers very useful. I especially love, in the Shu/Wu areas, how Berserk actually breaks through the Vanish tactic! That finally fixes one major issue with Remix v2.0– you could load up on highly intelligent officers and walk through the game. Now, you gotta be careful of which tactics each officer has to offer; there are some very useful tactics that are replaced in high-Int repertoires that other officers may still keep.
When all else fails... manipulate the source code.
ludmeister
ParticipantMiDKnighT–
I think that the new Tactic profiles and new attributes are great! The weapon and the tactic profile name which show on the status screen are a great touch, and it's getting to the point that I can't believe that this game we are working on is a friggin NES game. There are SNES and even PC games that don't have this much thought being put into them. How much are they paying you to do this, MiDKnighT? :mrgreen: JK… but this is truly top-notch stuff.
My personal thought (on the two lists, one for tactics learned, and one for enemy tactics used) is that I'm not sure that we'd need more than 27 or 28 different enemy personalities, so it makes sense to me to just consolidate the two lists. Let's face it, this is far more customization in tactical abilities than we ever have had possible, and I can't see myself needing any more micromanaging of how officers use their tactical slots beyond the new tactical progressions and STR/INT/other stat thresholds for learning them.
On a semi-unrelated note, are officers going to be restricted to one weapon type? Or is there going to be a potential range of weapons for officers to use (with <none> being a possibility for proficiencies 2 to n)?
And for someone who isn't as well-read on the actual bios for the officers on this period and relies on others for scholarship, and intuition for my stat-modding, is there a place where I could find weaponry/tactical preferences for the officers of this period? Especially if we are opening the field so that officers can have such varying abilities and attack strategies, I'd like to know that I'm actually not assigning bogus preferences to officers (if such preferences were recorded and are known).
When all else fails... manipulate the source code.
-
AuthorPosts