News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: NES RoboCop with Arcade sprites  (Read 12892 times)

Spooniest

  • RHDN Patreon Supporter!
  • Hero Member
  • *****
  • Posts: 3183
  • Ain't got no berf cer-fi-ti-cate on me now
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #40 on: December 09, 2019, 05:18:44 pm »




Ohohohohohohoho

I was just goofing around, I didn't think you'd actually bother to do anything with it. :D Also, yeah, you don't see a lot of improvements to controls/gameplay and the like, that takes hard coding stuff that you can't simply hex edit in, it's kind of a pain to do. And of course, music is something only very few people know how to make for a NES game, so far as I know.
I never wanted to work in a pet shop, you know. I wanted to be...a lumberjack.

SomeOldGuy

  • Jr. Member
  • **
  • Posts: 41
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #41 on: December 11, 2019, 07:44:47 pm »
Spooniest, There's no way I couldn't use your line, it's too perfect!  ;D

SomeOldGuy

  • Jr. Member
  • **
  • Posts: 41
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #42 on: December 21, 2019, 07:51:40 pm »
Hey Everybody!

I've been trying to educate myself on how NES sprites work and could use some help.  Forgive me if I use terms incorrectly as I'm still learning. 

Looking at the picture posted below, you can see that the first frame of Robocop's walking animation (left hand side) uses 8 sprites.  If I move sprite 5 up so that it's on the same plane as sprites 1 and 2, then shift sprites 6 through 8 back a few pixels so they line up properly with sprites 3 and 4, I can ALMOST get a complete image of the Arcade version of Robocop without adding any extra sprites.

   

My first question, can someone please show me how to find Robocop's sprite attributes so I can make the changes described above?

My second question, is there a way to add the extra sprite needed to complete the image? 

Any help you guys could provide would be greatly appreciated!  ;D






Cyneprepou4uk

  • Sr. Member
  • ****
  • Posts: 305
  • I am the baldest romhacker
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #43 on: December 21, 2019, 08:18:46 pm »
Usually sprite attributes are located in RAM at $0200-$02FF. If you get rid of enemies on the screen and move your player, you can easily see his sprites starting from $0200. If you set write breakpoints, you can find where these bytes are taken from. Better set breakpoints to tile number attributes because it's likely should be written "as is" unlike coordinates and flipping, which makes it easier to find.

To add more sprites to an animation, you need to move animation's data to some free space, then add more sprite data and change pointers to that data since you have moved it somewhere else.
iromhacker.ru - NES ROM hacking tutorials for beginners. Please use Google Translate browser extension

SomeOldGuy

  • Jr. Member
  • **
  • Posts: 41
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #44 on: December 24, 2019, 02:41:36 pm »
Cyneprepou4uk, the rom has been Nflated ( Thanks KingMike! ) from 256KB to 512KB.  Would it be a good idea to start fresh, move all of Robocop's redrawn sprites to the newly created extra space, and change the pointers/sprite data?     






Cyneprepou4uk

  • Sr. Member
  • ****
  • Posts: 305
  • I am the baldest romhacker
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #45 on: December 24, 2019, 03:14:09 pm »
Maybe
iromhacker.ru - NES ROM hacking tutorials for beginners. Please use Google Translate browser extension

SomeOldGuy

  • Jr. Member
  • **
  • Posts: 41
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #46 on: December 24, 2019, 03:48:41 pm »
Maybe

This makes me think I'm on the right track.  ;D

Here's the Nflated Patch
http://www.mediafire.com/file/ipq1msufxht0wbl/RoboCop_Nflated.ips/file

You can use yychr to see how the sprites should look in-game.


December 28, 2019, 12:50:51 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Cyneprepou4uk,  I took a look at the NES Memory address you told me about ($0200-$02FF) and I think I'm getting a better understanding of sprite attributes. ;D

If you look at the picture below, starting at $0200:
70 = Byte 0, the y-axis
41 = Byte 1, the tile index number
00 = Byte 2, the sprite's attributes - 40 flips the sprite horizontal, 80 vertical, C0 both horizontal & vertical
28 = Byte 3, the x-axis 

Using this info I was able to draw a complete Robocop on the screen in-game!  Of course when I moved him, his sprites went back to normal.

     

So I'm trying to do what you instructed and create some breakpoints (breakpoints, breakpoints, breakpoints) ;)  but I'm not quite sure I'm doing it correctly.  Will you give me a little more guidance? 





                                                                                         ;D








December 29, 2019, 05:59:20 pm - (Auto Merged - Double Posts are not allowed before 7 days.)



Hey Guys! 

Can somebody out there tell me if I have these breakpoints set up correctly and if so, what they're telling me?   ;D










« Last Edit: December 29, 2019, 05:59:20 pm by SomeOldGuy »

SomeOldGuy

  • Jr. Member
  • **
  • Posts: 41
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #47 on: December 31, 2019, 07:20:25 pm »

Hey Everybody!

Check out my final patch of the year below:
http://www.mediafire.com/file/dxb8cvrs6m184mv/RoboCop_-_New_Years_Edit.ips/file

I finally figured out how to edit the targets on the bonus stage!  It looks much more like the arcade version now.  There are a few tweaks here and there but the bonus stage is pretty much complete.  ;D



And I had to add Spoonies quote cause it's awesome!  ;D



Happy New Year Y'all!  :beer:

Old Guy


;D





Cyneprepou4uk

  • Sr. Member
  • ****
  • Posts: 305
  • I am the baldest romhacker
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #48 on: December 31, 2019, 09:38:07 pm »
Quote
Can somebody out there tell me if I have these breakpoints set up correctly and if so, what they're telling me?

Write breakpoint gets hit when something is trying to be written into that address.

Breakpoints are correct, but you don't need so many, usually a single one will do if you choose it right.

Forget about $C03E routine, it clears sprite memory before re-setting sprites. Concentrate on other breakpoint hits and see where byte is read from before writing to addresses of breakpoints.

To get you started:
LDA - load byte from somewhere into register A
STA - set byte from register A into address

Read manuals about 6502 opcodes and addressing modes
« Last Edit: December 31, 2019, 09:50:45 pm by Cyneprepou4uk »
iromhacker.ru - NES ROM hacking tutorials for beginners. Please use Google Translate browser extension

SomeOldGuy

  • Jr. Member
  • **
  • Posts: 41
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #49 on: January 03, 2020, 11:01:22 pm »
Cyneprepou4uk, as always, thank you for your guidance!  ;D  I've downloaded the “MCS 6500 Microcomputer Family Programming Manual” and will look for other reference material when I have more free time.

I discovered where Robocop's sprites are in the ROM a few days ago and have been busy shifting them around like I mentioned in the previous post. 

Many of the animation frames have enough sprites (or an extra) and have been fixed.  Some, like his walking frames, require an extra sprite or two.  If you look at the ROM, his first frame (the walking frame pictured in the previous post) starts at E0B8 and goes to E0D7.  Then the same frame is drawn in reverse from E0D9 to E0F8.  There is a byte, 7F (E0D8), that separates the frame and its reverse image.

Oddly, starting at E0FE, this first frame and its reverse are repeated.  Robocop's second walking frame starts at E144.  Was this a mistake, and more importantly, can I steal these 16 sprites to use in other frames that need them?     

Between unique frames, say walking frame 1 and walking frame 2, is also the 7F byte but it's followed by 4 additional bytes.  In this case they are 34 81 4D 81.  Is this the pointer information?  It seems like 7F tells the game to stop drawing the sprites.  What are the other 4 bytes telling the game?  Is it telling the game which bank to pull the sprites from?  Do you need 4 bytes for that or does it mean more?  Can someone please explain what these bytes are used for?  Can I manipulate them to steal the extra sprites I need and finally fix Robocop?











Cyneprepou4uk

  • Sr. Member
  • ****
  • Posts: 305
  • I am the baldest romhacker
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #50 on: January 04, 2020, 02:07:46 am »
Not sure about your manual. I used this one when I was a noob.

Your game has 2 sets of sprite data for both directions independently. You can re-use any sprite data you want for another animation.

What makes you think those 4 bytes are important anyway? Don't go crazy about every byte you see. Use Code/Data Logger.
iromhacker.ru - NES ROM hacking tutorials for beginners. Please use Google Translate browser extension

SomeOldGuy

  • Jr. Member
  • **
  • Posts: 41
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #51 on: January 14, 2020, 09:22:41 pm »
Hey Everybody!  ;D

Got a HUGE update for y'all this week!   

Get the new patch here:
http://www.mediafire.com/file/nx110ztosi4tiew/RoboCop_-_Edit_6.ips/file

It took a lot of creative sprite shifting but almost all of Robocop's animations have been fixed!  There are some instances (walking up and down stairs) where he still needs an extra sprite or two but he's now mostly complete!  The coolest one has to be the gun twirling animation.  ;D






Try it out, let me know what you think and if you spot any errors that I need to correct.


 ;D

Old Guy












sics

  • Full Member
  • ***
  • Posts: 238
  • Contact me!
    • View Profile
    • Deviantart: Terwilf
Re: NES RoboCop with Arcade sprites
« Reply #52 on: January 15, 2020, 06:14:38 pm »
It looks amazing, the romhacking needs more people like you :thumbsup:

SomeOldGuy

  • Jr. Member
  • **
  • Posts: 41
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #53 on: January 16, 2020, 05:40:47 pm »
Thanks sics, I respect you as an artist and your praise means a lot to me.  ;D

Morinis

  • Sr. Member
  • ****
  • Posts: 443
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #54 on: January 20, 2020, 01:06:06 pm »
So played the patch.  Forgot how shitty of a player I am at this game so can't complement on the ED-209 as I didn't get that far :P


Just a few issues I've ran in to.



Something is going on with his leg while going up.  A sprite missing?




Same with here.  Guess this Robocop runs more on air power?  :o



....and lastly, not much of an issue.




I see on what you did there ;)









Other than that, feels better though THICC.  Very THICC.  That's all I got as I'll try to get to ED-209 and see what's going on there  :beer:

Googie

  • Hero Member
  • *****
  • Posts: 862
  • I'd like to solve the puzzle... Jiggers!
    • View Profile
    • My work in progress ROM Hacking site
Re: NES RoboCop with Arcade sprites
« Reply #55 on: January 20, 2020, 01:36:01 pm »
I'm gonna give this a spin right now, been meaning to cause I've been mad busy with other things. I'm a big fan of Robocop, hated the remake though...  :D

Spooniest

  • RHDN Patreon Supporter!
  • Hero Member
  • *****
  • Posts: 3183
  • Ain't got no berf cer-fi-ti-cate on me now
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #56 on: January 20, 2020, 06:36:13 pm »
Pretty good, but as I said before, I'd kill for a music hack for this game. It's the same theme from Stage 1 through 3, as far as I can tell -_- Yeah, yeah, it's the Robocop music. Again.

Anyhoo. I found this:



This happened when I aimed upwards with the submachinegun weapon and fired.
I never wanted to work in a pet shop, you know. I wanted to be...a lumberjack.

SomeOldGuy

  • Jr. Member
  • **
  • Posts: 41
    • View Profile
Re: NES RoboCop with Arcade sprites
« Reply #57 on: January 21, 2020, 09:05:25 pm »
Hey Everybody!  ;D

Thanks for trying out the hack guys!  Here's an up date that should fix the issue Spooniest mentioned with the sub machine gun. 

http://www.mediafire.com/file/2tfj7yst8x8f1er/RoboCop_-_Edit_7.ips/file

Hey Sin eerrrr Morinis!, yeah, unfortunately those frames you pointed out are going to require an extra sprite or two.  :o  I'm studying up on pointers now and I have a theory on how the game works, but I won't get around to testing it until this weekend.  ::)

As far as ED-209,  he's still gonna need a lot of help.  If you have any thoughts, please let me know.  Once Robocop is 100% fixed (hopefully soon  ;D)  I'll start trying to learn more about meta sprites.


Googie, lemme know what you think!  As a fellow Robocop fan, is there anything that should be added? 


Spoonie! What's up man!  Trust me, I'd kill for a little variety in the stage music too!  Or at the very least a better rendition of the Robocop theme.  Thanks for your input BTW, I think I fixed it!  ;D