Skip navigation
NintendoAge
Welcome, Guest! Please Login or Join
Loading...

Warrio's Woods Differances Programmers please help.

Nov 29, 2011 at 8:18:20 PM
Xerxes (20)
avatar
(Xerxes Dole) < El Ripper >
Posts: 1019 - Joined: 01/25/2011
Ohio
Profile
I have had my Warrio's Woods prototype for about a year and I am trying to get my butt in gear and start documenting any differences. I dumped it when I first got it and I compared it at the binary to the released version. It is different but after hours of playing I haven't seen any difference. I and the person helping me (http://www.nintendoplayer.com/)  are thinking about approaching the problem from a different angle. If we could identify what the code with differences does then maybe it would be easier to document the prototype doing it differently. Sadly my 6502 knowledge is crap. I need the community's help figuring out what these differences might be doing. There are two main areas with different code 

Retail 1

Proto 1

Retail 2

Proto 2

I know context is going to be pivotal to figuring this out. I have faith that anyone who could help me figure this out will also be able to find a Warrio's Woods ROM. Thanks in advance for everyone's help.


-------------------------
 

Nov 29, 2011 at 8:28:45 PM
removed04092017 (0)
This user has been banned -- click for more information.
< Bowser >
Posts: 7316 - Joined: 12/04/2010
Other
Profile
Can you post the lines 1 before and 1 after to? And make it much bigger. Or even better, grab 6502d and use it on both files and look for those pieces of data in the ROM at the real programming changes rather than transcribing the byte code by hand.

Nov 29, 2011 at 8:38:18 PM
Xerxes (20)
avatar
(Xerxes Dole) < El Ripper >
Posts: 1019 - Joined: 01/25/2011
Ohio
Profile
I'll try 6502d and report back.

-------------------------
 

Nov 29, 2011 at 8:48:07 PM
removed04092017 (0)
This user has been banned -- click for more information.
< Bowser >
Posts: 7316 - Joined: 12/04/2010
Other
Profile
Okay cool, one of the best ways to find out what RAM if for is to play the game and see when it updates, how oftenn, and try to narrow it down what it may be used for. Hope that helps. If you need more and I can try to look into it, but I won't dive down into starting to disassemble all the code, I'm kinda busy with other stuff right now and haven't really done such a thing yet all the way through.


Edited: 11/29/2011 at 08:51 PM by removed04092017

Nov 29, 2011 at 9:04:32 PM
Xerxes (20)
avatar
(Xerxes Dole) < El Ripper >
Posts: 1019 - Joined: 01/25/2011
Ohio
Profile
OK Try 2 from 6502d I gave a bit more leway, and blued the different lines. Thanks for your advice 3gen.

Retail
000120BA: 4C9586 JMP $8695
000120BD: ADCD6F LDA $6FCD
000120C0: 4CE585 JMP $85E5
000120C3: A900 LDA #$00
000120C5: 8DAB70 STA $70AB
000120C8: AD9870 LDA $7098
000120CB: 29F9 AND #$F9
000120CD: 8D9870 STA $7098
000120D0: A900 LDA #$00
000120D2: 8DCC6F STA $6FCC
000120D5: A9FE LDA #$FE
000120D7: 8DCD6F STA $6FCD
000120DA: 8DCE6F STA $6FCE
000120DD: A900 LDA #$00
000120DF: 8D4470 STA $7044
000120E2: A9FE LDA #$FE
000120E4: 8D4570 STA $7045
000120E7: 8D4670 STA $7046
000120EA: A900 LDA #$00
000120EC: 8D8470 STA $7084
000120EF: A9FE LDA #$FE
000120F1: 8D8570 STA $7085
000120F4: 8D8670 STA $7086
000120F7: 60 RTS
000120F8: CECD6F DEC $6FCD
000120FB: 1018 BPL $18
000120FD: AECE6F LDX $6FCE
00012100: E8 INX
00012101: E8 INX
00012102: 8ECE6F STX $6FCE
00012105: BDFEAE LDA $AEFE,X
00012108: C9FF CMP #$FF
0001210A: F00C BEQ $0C
0001210C: 8DCD6F STA $6FCD
0001210F: BDFFAE LDA $AEFF,X
00012112: 8DCF6F STA $6FCF

proto
000120BA: 4C9586 JMP $8695
000120BD: ADCD6F LDA $6FCD
000120C0: 4CE585 JMP $85E5
000120C3: A900 LDA #$00
000120C5: 8DAB70 STA $70AB
000120C8: AD986F LDA $6F98
000120CB: 29F9 AND #$F9
000120CD: 8D9870 STA $7098
000120D0: F00C BEQ $0C
000120D2: 8DCD6F STA $6FCD
000120D5: A9FE LDA #$FE
000120D7: 8DCD6F STA $6FCD
000120DA: 8DCE6F STA $6FCE
000120DD: A900 LDA #$00
000120DF: 8D4470 STA $7044
000120E2: A9FE LDA #$FE
000120E4: 8D4570 STA $7045
000120E7: 8D4670 STA $7046
000120EA: A900 LDA #$00
000120EC: 8D8470 STA $7084
000120EF: A9FE LDA #$FE
000120F1: 8D8570 STA $7085
000120F4: 8D6F60 STA $606F
000120F7: A935 LDA #$35
000120F9: 8530 STA $30
000120FB: A93B LDA #$3B
000120FD: 8531 STA $31
000120FF: A9E8 LDA #$E8
00012101: E8 INX
00012102: 8ECE6F STX $6FCE
00012105: BD33AE LDA $AE33,X
00012108: C9FF CMP #$FF
0001210A: F00C BEQ $0C
0001210C: 8DCD6F STA $6FCD
0001210F: BDFFAE LDA $AEFF,X
00012112: 8DCF6F STA $6FCF

-------------------------
 


Edited: 11/29/2011 at 09:09 PM by Xerxes

Nov 29, 2011 at 9:56:34 PM
removed04092017 (0)
This user has been banned -- click for more information.
< Bowser >
Posts: 7316 - Joined: 12/04/2010
Other
Profile

Released:
000120BA: 4C9586 JMP $8695
000120BD: ADCD6F LDA $6FCD
000120C0: 4CE585 JMP $85E5
000120C3: A900 LDA #$00
000120C5: 8DAB70 STA $70AB
000120C8: AD9870 LDA $7098
000120CB: 29F9 AND #$F9
000120CD: 8D9870 STA $7098
000120D0: A900 LDA #$00
000120D2: 8DCC6F STA $6FCC
000120D5: A9FE LDA #$FE
000120D7: 8DCD6F STA $6FCD
000120DA: 8DCE6F STA $6FCE
000120DD: A900 LDA #$00
000120DF: 8D4470 STA $7044
000120E2: A9FE LDA #$FE
000120E4: 8D4570 STA $7045
000120E7: 8D4670 STA $7046
000120EA: A900 LDA #$00
000120EC: 8D8470 STA $7084
000120EF: A9FE LDA #$FE
000120F1: 8D8570 STA $7085
000120F4: 8D8670 STA $7086
000120F7: 60 RTS
000120F8: CECD6F DEC $6FCD
000120FB: 1018 BPL $18
000120FD: AECE6F LDX $6FCE
00012100: E8 INX
00012101: E8 INX
00012102: 8ECE6F STX $6FCE
00012105: BDFEAE LDA $AEFE,X
00012108: C9FF CMP #$FF
0001210A: F00C BEQ $0C
0001210C: 8DCD6F STA $6FCD
0001210F: BDFFAE LDA $AEFF,X
00012112: 8DCF6F STA $6FCF
Proto:
000120BA: 4C9586 JMP $8695
000120BD: ADCD6F LDA $6FCD
000120C0: 4CE585 JMP $85E5
000120C3: A900 LDA #$00
000120C5: 8DAB70 STA $70AB
000120C8: AD986F LDA $6F98
000120CB: 29F9 AND #$F9
000120CD: 8D9870 STA $7098
000120D0: F00C BEQ $0C
000120D2: 8DCD6F STA $6FCD
000120D5: A9FE LDA #$FE
000120D7: 8DCD6F STA $6FCD
000120DA: 8DCE6F STA $6FCE
000120DD: A900 LDA #$00
000120DF: 8D4470 STA $7044
000120E2: A9FE LDA #$FE
000120E4: 8D4570 STA $7045
000120E7: 8D4670 STA $7046
000120EA: A900 LDA #$00
000120EC: 8D8470 STA $7084
000120EF: A9FE LDA #$FE
000120F1: 8D8570 STA $7085
000120F4: 8D6F60 STA $606F
000120F7: A935 LDA #$35
000120F9: 8530 STA $30
000120FB: A93B LDA #$3B
000120FD: 8531 STA $31
000120FF: A9E8 LDA #$E8
00012101: E8 INX
00012102: 8ECE6F STX $6FCE
00012105: BD33AE LDA $AE33,X
00012108: C9FF CMP #$FF
0001210A: F00C BEQ $0C
0001210C: 8DCD6F STA $6FCD
0001210F: BDFFAE LDA $AEFF,X
00012112: 8DCF6F STA $6FCF


Edited: 11/29/2011 at 10:01 PM by removed04092017

Nov 29, 2011 at 10:02:35 PM
removed04092017 (0)
This user has been banned -- click for more information.
< Bowser >
Posts: 7316 - Joined: 12/04/2010
Other
Profile
I tried to add my message to the post but it broke the alignment. But anyway, it seems like a small optimization, maybe a bug fix of some sort? I dunno, but considering there's an RTS in there it'd make you think there'd be more changes than that in the code since that'd need a JSR to work correctly, unless they manipulated the stack manually.

Nov 30, 2011 at 1:20:06 AM
snescentral (0)
avatar
(Evan Gowan) < Eggplant Wizard >
Posts: 376 - Joined: 04/09/2008
Japan
Profile
Are there any NES emulators with built in debuggers? Generally when I look for differences between a prototype and final (in snes games), I throw in some of the bytes that are different as breakpoints.

Nov 30, 2011 at 1:23:51 AM
removed04092017 (0)
This user has been banned -- click for more information.
< Bowser >
Posts: 7316 - Joined: 12/04/2010
Other
Profile
Fceux has the best debugging tools by far, just watch the hex editor and you can step through the code too if you want, but tracking down all the right subroutines and engines to watch would honestly be a big hassle for such a small thing. Maybe this'd be a good time to learn 6502 and disassemble the game and figure it all out.

Nov 30, 2011 at 9:58:02 AM
Xerxes (20)
avatar
(Xerxes Dole) < El Ripper >
Posts: 1019 - Joined: 01/25/2011
Ohio
Profile
Is it possible that it is a JSR that is calling this code in both versions, and that the retail just directly reports back. If not, what would an RST do with no JSR to report back to? Would it be possible to add some sort of break point that made it obvious when differing code was being run, then step it through line by line to see what is going on (similar to what badinsults is saying)? This bit of code could be run very frequently or only under very rare situations. Total dissasembley is probably too big of a project for me at this point.

-------------------------
 

Nov 30, 2011 at 12:24:30 PM
removed04092017 (0)
This user has been banned -- click for more information.
< Bowser >
Posts: 7316 - Joined: 12/04/2010
Other
Profile
You'd overflow the stack if there was not a RTS from that program but there was a call to it. Maybe they just combined the 2 programs next to each other and later on there is an RTS but two things are updated at once, maybe something is a bug fix too with the different memory locations, so try to break the game every way you can think of too. If you lose track of a JSR in a program though it should break pretty quick though so I'm not 100% sure that that is even a problem.

And yes, learn how to use FCEUX and stepping through that code should be easy. Just add a breakpoint to that ROM and select when it's being executed.


Edited: 11/30/2011 at 12:25 PM by removed04092017