11 March 2016 - Forum Rules
Started by joe73ffdq, April 05, 2018, 06:38:32 PM
Quote from: joe73ffdq on April 05, 2018, 06:38:32 PMFinally, after several weeks of plugging away at this, I got everything organized the right way. All the data is presented in disassembly form, which made it much easier then how I was doing it before.There are 2 banks, 04 and 06, where almost all of the found data is. The full rom disassembly is left unmarked. Then there is an index, and one for detailed info.Characters - Exp, Stats, Equip, MagicEnemies - Stats, Skills, Formations, Zones, PalettesShop and TreasureText for - starting names, items, equipment, magic, enemiesJust about all I want to find has been found. The Item drops for Evil Clown and Saber Lion still havent been found yet. Power for all healing and fire spells have been found, except for the 3 fire breath attacks. The next things I would like to find is enemy drops, and see if I can find enemies assigned. I would like to create a blue and red dragon, among a few other ideas. Now with the ability to normalize all the equipment, there will be more varied options, also expanding what can be found in chests. I also want to remove sacrifice and surround, and add healall for poc, and hustle for pom. The last thing I would like to try and figure out, is HP past 256 for characters and enemies. There is a location in ram for this, and if I can find the zero page instruction, then writing new code to add this in, would really expand the options quite a bit. In DW1 I, found a way to change the damage resistance for Erdricks and magic armor. I took the ASL and expanded it to 3 ASL's. Now every armor can have x16 resistance options, by choosing between ASL, LSR, and NOP, on those 3 bytes. That was my best accomplishment, with total new code of about 225 bytes. I need to find the bank switch in DW2, which I haveent looked for, but it should be similar to DW1 MMC1. There is roughly 80K free space, with the US release being expanded to 256, from the original 128. I am getting a little bit ahead of my self, but when I understand the code, I can branch upon it, even though I have no idea how to write a whole new instruction.I will admit, that I struggle more with concentration, then I do understanding the code. Using a hex editor all these years, and now I found the mix of good methods. Organize the notes, scan through the disassembly, look for things in fceux, and then use HxD.With all that said, here we finally have, a good foundation for further disassembly of DW2, now that I finally set it up in an organized manner.Original thanks to AlexKC, who found the initial data back in 2011. Special thanks to gameboy9, who was finding code left and right 2 years ago, when he was helping me on my DW2 thread Then there are the many people here that have helped me quite a bit. Disch and King Mike in particular, who always give a full scale analysis, and precise direction to find the code I am looking for One last thing here, that I was wondering if someone knew about. DragonWarriorX overworld editor sort of works. There is a full interface that edits everything perfectly fine, and even marks coords and location entrances as well. When you try to open the game, all the graphics and tiles are a garbled mess. So it partially works...If anyone is interested in helping look for code, that would be awesome Now I am finally ready to start the writing process. Starting with Character stats, exp, and magic. Equipment and then enemy stats, abilities, formations, and zoning. Then shop and treasure last.https://www.dropbox.com/preview/Public/DW%202%20Disassembly.zip?role=personal
Quote from: Chicken Knife on July 08, 2019, 03:32:59 PMThanks for posting this abw and for all the work that went into it. I'm sure it will be of some help when I eventually strive to restore the cross shaped background tiles in Hargon's Castle--eventually meaning when I shift my brain out of script writing and back into hacking.
Quote from: abw on July 08, 2019, 09:20:15 PMOhh, the maps... those were not stored anything like the way I was expecting, which explains why it was hard to find the map data by searching for hex values in the ROM.Instead of storing the map itself, the game stores instructions for building the map. For instance, when entering Leftwyne, it starts by filling the map with grass tiles, then adds a rectangular blob of sand from ($12, $10) to ($16, $16), adds a blob of trees from ($09, $0F) to ($0C, $16), and goes on a tree-drawing spree (and by "drawing" I mean taking its tree-planting pen, touching it to the map in one spot, dragging it around for a while to make shapes, picking it up and moving it to a new spot, and then touching down again to continue drawing more shapes), part of which overwrites the bottom-right corner of the sand blob it drew earlier. After that it switches to whatever that dark green grass is supposed to be (bushes? clover? long grass? I dunno), and repeats the process for each of the different map tile types. Of the 35 sand tiles from that first blob, only 15 survive not being overwritten by other tiles . Once it's done with the background and base layer, it proceeds to add in the roofed sections and switch the tile IDs for vertically adjacent horizontal wall tiles to the vertical wall tile. All of this is done in bits, not bytes, with the width of a map co-ordinate calculated based on the map size, the width of a tile ID set by #$02 + the high 2 bits of the 3rd byte of map data, and map control codes being 1 or 2 bits wide. Oh, and the map drawing system maintains its own separate stack in cartridge RAM. The action all starts at $02:$AB89 if you want to take a look for yourself; I only got partway through documenting the code before walking away in disgust calling it quits for the day.Or in other words, map editing is going to be so much more complicated than it needed to be .
Quote from: abw on July 08, 2019, 09:20:15 PMand by "drawing" I mean taking its tree-planting pen, touching it to the map in one spot, dragging it around for a while to make shapes, picking it up and moving it to a new spot, and then touching down again to continue drawing more shapes
Quote from: Chicken Knife on July 08, 2019, 09:37:00 PMBut how difficult would it be to locate the section of code that controls that castle layout and essentially replace it with the related code from the Japanese version?
Quote from: Cyneprepou4uk on July 09, 2019, 11:59:17 AMI like that explanation of yours
Quote from: abw on July 09, 2019, 08:43:41 PMGood idea, but in this case it looks like it won't work. After spending a few minutes comparing against the Japanese ROM, both the way the map data is stored and the code for drawing maps appear to be completely different than in the English ROM despite generating basically the same thing on screen. At this point I'll refrain from guessing as to why the map system was changed between versions.Thanks!
Quote from: Chicken Knife on July 09, 2019, 10:38:51 PMHow could you not realize why it was changed? Clearly the Japanese system wasn't convoluted enough so they had to remedy the matter.
Quote from: Chicken Knife on July 08, 2019, 03:32:59 PMI'm sure it will be of some help when I eventually strive to restore the cross shaped background tiles in Hargon's Castle
Quote from: abw on July 11, 2019, 10:50:36 PMI put some more time into documenting the map code and updated bank 2 on the wiki with the results. I also dumped the map for Hargon's Castle 1F, rewrote the instructions for drawing that part of the map, and inserted the new instructions. The end result seemed to work out pretty well!
Quote from: Esco on July 12, 2019, 03:50:10 AMI will never understand why someone hasn't just created a nes or snes level DW engine by now. It's simple enough and this game is very easy to reproduce on something like Unity.Also, and I'm pretty sure I'm alone here, this game is my absolute favorite in the series! So difficult and relentless, yet you can still get to Rhone without dying once if you know what you are doing and without grinding to insane levels. Now getting thru Rhone without a single death while getting hit by defeats, explodets, enemies with criticals and the occasional sacrifice thrown at you from a gold batboons? Different story.... but still doable.
Quote from: abw on July 07, 2019, 04:04:59 PMHmm, this is a bit of a necro-post, but it does seem like the most relevant thread around...Following some recent text-based work on Dragon Warrior II including a complete translation and helping out with two separate script update projects, I created a full disassembly of Dragon Warrior II and have been puttering away at documenting it in my free time for the past couple of months. I've made a fair bit of progress, but there is still a long way to go, and since I know there are a few other people interested in looking at this (and maybe contributing to it?), I decided that rather than sitting on this until it's "done" (whatever that means ), I ought to post what I've got on the wiki (https://datacrystal.romhacking.net/wiki/Dragon_Warrior_II::ROM_map/ASM), so this is simply an announcement to say that I've done so!
0x011523|$04:$9513:8D 61 01 STA $0161 ; current monster ID0x011526|$04:$9516:A2 00 LDX #$00 0x011528|$04:$9518:20 D6 9C JSR $9CD6 ; write monster name in A (+ monster number within its group in X, if > 0) to $61190x01152B|$04:$951B:CE D8 60 DEC $60D8 0x01152E|$04:$951E:D0 0D BNE $952D 0x011530|$04:$9520:A6 A8 LDX $A8 0x011532|$04:$9522:CA DEX 0x011533|$04:$9523:D0 04 BNE $9529 0x011535|$04:$9525:A9 54 LDA #$54 ; String ID #$0054: [cardinal #] [monster(s)][line]appeared.[end-FC]0x011537|$04:$9527:D0 06 BNE $952F ; control flow target (from $9523)0x011539|$04:$9529:A9 53 LDA #$53 ; String ID #$0053: And [cardinal #] [monster(s)][line]appeared.[end-FC]0x01153B|$04:$952B:D0 02 BNE $952F ; control flow target (from $951E)0x01153D|$04:$952D:A9 01 LDA #$01 ; String ID #$0001: [cardinal #] [monster(s)],[end-FC]; control flow target (from $9527, $952B)0x01153F|$04:$952F:20 CA 9C JSR $9CCA ; for A < #$60, display string ID specified by A; for A >= #$60, display string ID specified by A + #$A0
Quote from: Chicken Knife on July 12, 2019, 12:41:24 PMI'm..... so excited to see this that I'm about to call my boss and tell him I have a family emergency and need to leave work immediately.
Quote from: Chicken Knife on July 12, 2019, 12:41:24 PMWhile there are numerous games in the DQ series that I absolutely adore for various reasons, I agree that 2 stands out proudly. It puts off new players like no other game in the series but there is something incredibly satisfying in replaying it for someone like me who goes through the same rpgs 20 times or more. (while totally ignoring an ever growing pile of ones I need to play)
Quote from: Choppasmith on July 15, 2019, 12:37:06 PMI was a little curious about monster counts in battle. [...]I'm assuming it works like this:One Enemy/group= Just String 54 is usedTwo Groups= String 54 and 53 is used togetherThree (or more) groups: Start with String 1, then 54, then 53Is that right? 3 Group battles are kind of hard and uncommon to pull up in game so it's hard to test.
Page created in 0.130 seconds with 19 queries.