11 March 2016 - Forum Rules
Started by SomeOldGuy, November 02, 2019, 05:54:49 PM
Quote from: SomeOldGuy on November 11, 2020, 08:55:33 PM...and here he is with a flesh colored face. Shadow, you were absolutely right, the image looks a lot better now using the skin color for his mouth. Thanks for the suggestion. sics, that was an excellent explanation, thank you. I think this may open up some possibilities for the other cutscenes. Great job on Street Fighter by the way. Loved the way the title and character select screens came out. You and Xander max make a good team.Thanks CryinOnion! This is definitely a passion project. I don't mind spending time on it because I'm having fun, I'm sure you can relate. I'm still amazed that I can edit these old games and play them on my NES. Can't promise when it will be completed but all sprites and backgrounds will be changed.
Quote from: Queue on November 29, 2019, 12:17:07 AMIn his debugger pictures, do you see the following?Code Select Expand07:E30D: A9 10 LDA #$1007:E30F: 85 34 STA $3407:E311: A9 38 LDA #$3807:E313: 85 35 STA $3507:E315: A9 30 LDA #$3007:E317: 85 36 STA $36andCode Select Expand07:E9EF: A9 0F LDA #$0F07:E9F1: 85 34 STA $3407:E9F3: A9 1C LDA #$1C07:E9F5: 85 35 STA $3507:E9F7: A9 3C LDA #$3C07:E9F9: 85 36 STA $36The values on the left are the addresses for the code, followed by the literal bytes that make up the code, then the human-readable (dis)assembly, and it's the LDA #$?? values you want to change. You should recognize the second set of values at least (0F 1C 3C).If nothing else, you could use that data as a guide for what to search for to change:A9 0F 85 34 A9 1C 85 35 A9 3C 85 36and change the 0F, 1C and 3C to the colors you want (and likewise for the first set of code that sets the damaged colors, where you'd instead be replacing 10, 38 and 30).
07:E30D: A9 10 LDA #$1007:E30F: 85 34 STA $3407:E311: A9 38 LDA #$3807:E313: 85 35 STA $3507:E315: A9 30 LDA #$3007:E317: 85 36 STA $36
07:E9EF: A9 0F LDA #$0F07:E9F1: 85 34 STA $3407:E9F3: A9 1C LDA #$1C07:E9F5: 85 35 STA $3507:E9F7: A9 3C LDA #$3C07:E9F9: 85 36 STA $36
Quote from: SomeOldGuy on November 11, 2020, 08:55:33 PM...and here he is with a flesh colored face.
Quote from: Xander max on December 22, 2020, 08:34:45 PMhow to find the exact location inside the debugger
Quote from: Cyneprepou4uk on December 23, 2020, 10:57:21 AMWhen breakpoint pauses emulation, right click hereIt will open Hex Editor in ROM File view at the wanted location.Another way is to copy C608, Ctrl + G to it in NES Memory view, right click on the byte, select Go Here In ROM File.Another way is to set "ROM offsets" checkmark in debugger, manually copy ROM address, then Ctrl + G to it in ROM File.And one more way is write down several bytes on the left of the instructions, then Ctrl + F them in ROM File.
0F 32 26 16 0F 22 12 02 0F 0F 0F 0F 0F 0F 0F 0F0F 22 12 02 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F
0F 32 26 16 0F 22 12 02 0F 3A 2A 1A 0F 3B 2B 1B0F 22 12 02 0F 27 17 07 0F 23 16 04 0F 37 2A 05
B64D:A2 00 LDX #$00 ; Beginning of sprites.B64F:BD 54 BC LDA $BC54,X ; $BC54 = 0x19C64.B652:9D 00 02 STA $0200,X ; Byte 0 = Y position.B655:BD 55 BC LDA $BC55,X ; $BC55 = 0x19C65.B658:9D 01 02 STA $0201,X ; Byte 1 = Tile ID.B65B:A9 00 LDA #$00 ; Same attribute for all.B65D:9D 02 02 STA $0202,X ; Byte 2 = Attribute.B660:BD 57 BC LDA $BC57,X ; $BC57 = 0x19C67.B663:9D 03 02 STA $0203,X ; Byte 3 = X position.
B666:E8 INX ; Increment X 4B667:E8 INX ; times to accountB668:E8 INX ; for next sprite.B669:E8 INX ; Check if 15 sprites/B66A:E0 3C CPX #$3C ; 60 bytes reached.B66C:90 E1 BCC $B64F ; If not yet, go back.
B65B:20 C0 BF JSR $BFC0B65E:EA NOPB65F:EA NOP
BFC0:BD 56 BC LDA $BC56,XBFC3:9D 02 02 STA $0202,XBFC6:60 RTS
QuoteIn addition, it appears that there's additional code to load additional data for other parts of the scene - maybe? So, there might possibly be additional code that you'll also need to manipulate. However, again, there seems to be free space for you to work with, so hopefully, you'll be able to work it out.
QuoteAs for the additional time for the code to perform the jump and the return back, not only once but multiple times for all of RoboCop's sprites in that part of the scene, efficiency could be improved if you were able to shift everything forward at that point by one byte so that you could just fit in the "LDA $BC56,X" line where the original code already is; however, unless you have a disassembly to work with to make this a much easier and quicker process, it might not be worth your time and effort to manually shift everything through the hex editor, and have to account for manually adjusting branch lengths like the one at $B66C, as well as any JSR and JMP jump sources and destinations. Unless inefficient code causes you a headache, I would avoid the headache caused by all of the extra work for what really amounts to little reward or appreciation.
QuoteSorry again if this post is inaccurate or incomplete (and as a result, unhelpful), and/or difficult to read through because it was verbose, like my code: "consuming much time".Perhaps it can still be some sort of starting point towards a solution. We can only hope so, anyway.In any case, I believe that, ultimately, you can do it in the end! Do it for RoboCop!Best of luck with your project!
Quote from: SomeOldGuy on January 17, 2021, 05:00:46 PM
Page created in 0.100 seconds with 19 queries.