News:

11 March 2016 - Forum Rules

Main Menu

NES RoboCop with Arcade sprites

Started by SomeOldGuy, November 02, 2019, 05:54:49 PM

Previous topic - Next topic

SomeOldGuy

Thanks Xander max  ;D

How's work on your Mighty Street Fighter hack going?  I'm really looking forward to that one!

Been working on Robocop's cutscenes lately.


The original scene from the game has a lot more text compared to mine, so after my text has completed writing to the screen the text sound effect keeps playing.  Does anybody have any advice on how I might be able to fix this? 

Also, does anyone know how to change the duration of time each scene is displayed on screen?

Old Guy

    ;D
Good times create weak men, weak men create hard times.  Hard times create strong men, strong men create good times...

Cyneprepou4uk

There should be some control byte at the end of the text to tell the game to stop writting. I presume you just replaced unused text with spaces.

Search for a duration counter in ram and change the value that gets written there. Code can be found with a write breakpoint.

SomeOldGuy

#82
Well, this is the hex for the screen I want to edit.  My game on the left, original on the right.



...and this is what I've been able to figure out so far.

FF – I thought signaled the start of a new screen followed by screen coordinates.  This doesn't seem to be the case though.  For example at 0x00115b – the "Prime Directives" text doesn't show up on it's own screen.

FE - Starts a new line of text, again followed by screen coordinates.

7F - tells the game to stop drawing sprites but I don't see a byte here to stop drawing text.  The last line of text seems to be followed by FF except for the example above.  I tried writing FF at 0x001151 and it didn't do anything, the sound keeps playing.   

I'm not sure what the bytes from 0x000fb7 – 0x000ff9 are.  Duration counter data?
Good times create weak men, weak men create hard times.  Hard times create strong men, strong men create good times...

ShadowOne333

Are you familiar with pointers and such, SomeOldGuy?

It's neat to see you trying to figure out how the TBL and the control codes work for the game, but for actual new and larger text, you might require reporting the text itself.

If you don't know how, I could try helping out there.

Xander max

Quote from: SomeOldGuy on August 13, 2020, 10:07:34 PM
Thanks Xander max  ;D

How's work on your Mighty Street Fighter hack going?  I'm really looking forward to that one!


Old Guy

    ;D

Thank you for your interest!  The Hack is a little slow, it was testing other concepts and working with creativity in an uncompromising way in several hacks at the same time.  Take a look, I did a lot of things but they are all at an early stage. www.youtube.com/channel/UCdGHNhopquBMifjhdNSWQTA

SomeOldGuy

Hey Shadow!

Feel free to correct me, but this is how I understand pointers.



I believe this is what is referred to as a Pointer table ( 0x00E010 – 0x00E0B3).  These are the pointers for all of Robocop's sprites.





A4 80 is the pointer for Robocop's first frame of animation.  80 represents 0x00E0, add 10 to A4 and we get 0x00E0B4

81 = 0x00E1, 82 = 0x00E2, etc.





At 0x00E0B4 we have two more pointers, A8 80 and C9 80.





A8 80 ( 0x00E0B8 ) is Robocop facing forward and C9 80 ( 0x00E0D9 ) is Robocop facing backwards.

I'm not sure how pointers for the text work in this game.  Any guidance you could provide would be greatly appreciated.  ;D


Dang Xander! You do have alot going on. That Metal Slug hack looks really cool!  :thumbsup:

Good times create weak men, weak men create hard times.  Hard times create strong men, strong men create good times...

ShadowOne333

Oh actually you seem to have quite an understanding of pointers already.
Text pointers usually work in a similar way to that.
2 bytes for each text entry (where the text begins)
Simply locate where a certain text is, and what it's starting address is in the ROM.

Then substract 0x10 and convert it to NES address to find the 2 byte pointer.
Pointers are usuallu within the same bank as well.
If you have doubts, post a pic of the TBL loaded and where a certain text you want to relocate is found at, so I can give you a working example.

edwinmusic

Quote from: SomeOldGuy on July 18, 2020, 04:33:26 PM
Hey Guys!

Working on Level 2!

If y'all want the patch, let me know  ;D  !!!!!






AWESOMEEEE! GREST!  O' RE AMAZING SOMEAGUYOLD!   :thumbsup: :D

cartridge_rom


SomeOldGuy

Hey cartridge_rom!

I was working on the junkyard stage but don't have much time to dedicate to the project right now.  :-\


Good times create weak men, weak men create hard times.  Hard times create strong men, strong men create good times...

verme

This is certainly one of the coolest projects in progress!
I wish you luck!

Noside

Man, this is getting the legit arcade port the NES game deserved, heck, once again, Dataeast couldn't even do it themselves, you guys are awesome!

SomeOldGuy

What a difference a year makes!  Hard to believe it's been that long since the first post. 

Thanks verme and Noside!  I'm trying my best to at least make the game look good!  ;D
 
Check out the latest patch below.  Warning, it's still very much a WIP.
 
 
http://www.mediafire.com/file/br1aa1wtqn1ovbx/RoboCop_-_Edit_14.ips/file


Try it out and let me know what ya think!

Old Guy  ;D
Good times create weak men, weak men create hard times.  Hard times create strong men, strong men create good times...

Noside

I just played the latest patch and is fantastic! I love how everything looks from the enemies, backgrounds and bosses, sorry to sound like a parrot repeating things lol but, this is the Arcade port everyone wanted for the NES, I'm aware this is still a w.i.p but this is awesome! keep up the good work, cheers! :beer:

SomeOldGuy


Noside, thanks for the feedback, I really appreciate it!  ;D

Yeah, I wonder why they didn't attempt an arcade port back then.  Obviously the NES is capable and I imagine a proper port would have sold a whole lot more copies than the game they released.  Surely the artist that worked on the game wanted to deliver a good product.  Maybe they just didn't have the time, talent, or tools (Photoshop is a huge help).  Guess we may never know.  I'll keep plugging away at the project as I get free time and maybe one day I can finally deliver the port we wanted as kids!  :beer:


Worked on replacing the flapping lips animation today and went with a static image.  I think it looks better, how about y'all?

Good times create weak men, weak men create hard times.  Hard times create strong men, strong men create good times...

Noside

Dude, the static image gives the arcade feeling so well, sick! I love it!

ShadowOne333

Quote from: SomeOldGuy on November 07, 2020, 06:55:57 PM
Noside, thanks for the feedback, I really appreciate it!  ;D

Yeah, I wonder why they didn't attempt an arcade port back then.  Obviously the NES is capable and I imagine a proper port would have sold a whole lot more copies than the game they released.  Surely the artist that worked on the game wanted to deliver a good product.  Maybe they just didn't have the time, talent, or tools (Photoshop is a huge help).  Guess we may never know.  I'll keep plugging away at the project as I get free time and maybe one day I can finally deliver the port we wanted as kids!  :beer:


Worked on replacing the flapping lips animation today and went with a static image.  I think it looks better, how about y'all?



That looks great!
I do have one suggestion though.
Are you still able to use the beige/pink palette from the original cutscene?
Maybe you could play around with the attribute table of that screen to still give Robocop his skin tone for his mouth section, to give it more eye-candy to the scene and still have it be closer to the arcade.

SomeOldGuy

I'm glad you like it Noside;D   I'm trying to pack in as much imagery from the arcade game as I can. 

Hey Shadow!  Thanks man, I appreciate it.  ;D  I have been experimenting with tygerbug's method of editing name tables recently, so it may be possible to edit the skin color for his mouth.  I'll see what I can do and report back here, may need to wait on a tutorial by sics though.  It's amazing what those guys have been doing with Street Fighter.  I'd love to know their methods.       
Good times create weak men, weak men create hard times.  Hard times create strong men, strong men create good times...

sics

#98
I don't think you need to wait for the tutorial, the Robocop screens are handled in a simpler way than the Hummer ones, so distributing its pallets should not be a complicated task.

I will omit how to customize the screens and what is the process to edit the overlay sprite, by time and because surely you handle that information better than me:


The first thing you should locate are the palettes, which as a general rule are usually found at the end of the data on each screen and in this case it is not the exception since they are found from 0x05d50:

Note: I am not sure I fully cover the palette data, I did it very quickly.

In this case, as you can see, I have replaced all the data with $E4:


The information necessary to color 4 independent sectors of the screen is stored in each of these values:


Luckily thanks to the NES Palette Table Calculator, there is no longer any need to do the calculations manually, for example, the palette with which I colored this screen is the following:



(Distribution of pallets)

On the other hand, the dark gray areas are those that, although they exist, it is not possible to see when running the game, since despite the fact that each screen has a resolution of 256x240 it can only be viewed 256x224.

In addition, the space marked with the question marks is a sector that, although technically it would be reached by the color distribution, this does not exist:


Also, as you may notice, all the palettes are written in sequence. Knowing all this, it is only a matter of calculating the new color distribution and applying it  :thumbsup:

Edit: Observing the screenshots with the naked eye, I can say that it is more than likely that the color configuration starts from the visible area of the screen and the configuration that I have described responds more to the bad programming of the first bootegles Hummer.
Linktree  | Better a small finished project than a thousand giant ideas stuck in your system.

CryinOnion

Greetings from Barcelona!

You may have to pay a high price for excellence, bro: Your work is SO GOOD that you will probably have to redo ALL the sprites and backgrounds, as there is a strong contrast between what is improved and what is not!

But judging by the passion (and technical skill) shown so far, I think that's a price you'll be glad to pay ;)

Solid candidate to 'Best Hack of the Year'(2020 or 2021, no hurry if the work is still of the same quality).