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

Author Topic: [Technical] Forcing CONTRA III (SNES) to completely SKIP top-view levels  (Read 5136 times)

cospefogo

  • Full Member
  • ***
  • Posts: 167
  • "Take this silver dagger to save your neck."
    • View Profile
    • Fliperamas
Hej, guys!

Is there someone capable to help me with this hack?
To completely "remove" the two top-view Mode7 levels?
When I say "remove" I mean to SKIP them while playing.
Once you complete the first level, you go straight to the third one.

Do you think is it possible?
A friend of mine sent me some memory addresses that correspond to both levels, or something like that, however he was not able to set up a "routine" to skip the levels.

I need to find this info on my notes, though.

Regards!
C.
"Replicants are like any other machine - they're either a benefit or a hazard.
If they're a benefit, it's not my problem."

Bregalad

  • Hero Member
  • *****
  • Posts: 2752
    • View Profile
Do you think is it possible?
I think this is possible. It'd be more a cheat than a ROM hack though.

cospefogo

  • Full Member
  • ***
  • Posts: 167
  • "Take this silver dagger to save your neck."
    • View Profile
    • Fliperamas
Something like a GameGenie code?
Oh, if so, I have a tool to patch permanently cheat codes into my roms.
This could be awesome!
"Replicants are like any other machine - they're either a benefit or a hazard.
If they're a benefit, it's not my problem."

Cyneprepou4uk

  • Hero Member
  • *****
  • Posts: 530
  • I am the baldest romhacker
    • View Profile
I think he means that these changes are considered as cheat category rather than a hack that would be accepted by rhdn standarts.

Anyway, when original game tries to change values in those addresses that correspond to levels you don't want to play on, you need to catch that moment and replace values with values from the next level.

Or you can just enable cheats with necessary values before entering unwanted level, and then disable them when level will be skipped.
iromhacker.ru - NES ROM hacking tutorials for beginners. Please use Google Translate browser extension

Solid One

  • Full Member
  • ***
  • Posts: 123
  • Silent Fighter
    • View Profile
BTW, it's interesting to mention that, in the GBA port of Contra III, all top-view levels were replaced by common 2D ones, inspired by Contra Hard Corps from Sega Genesis. It'd be interesting to see a Contra III SNES hack that does the same (and at least it definitely won't be considered cheat).

cospefogo

  • Full Member
  • ***
  • Posts: 167
  • "Take this silver dagger to save your neck."
    • View Profile
    • Fliperamas
I think he means that these changes are considered as cheat category rather than a hack that would be accepted by rhdn standarts.

Oh, I see.

But guys, you must agree with me...

Although the top-view Mode7 levels were great
by the time SNES Contra III was launched,
today they look pretty bad and unnecessary.

The other levels aged so well...
They keep awesomely great!

* * *

About Contra III on GBA, I was really unaware of the different levels!
Thanks for pointing that! I will take a look.
"Replicants are like any other machine - they're either a benefit or a hazard.
If they're a benefit, it's not my problem."

nesrocks

  • Hero Member
  • *****
  • Posts: 685
    • View Profile
    • nesrocks.com
I don't agree, I like the top view levels and they are really, really quick to complete, so it's never a problem for me. And I like variation in my games, I mean, I like Battletoads. I understand it though that it may not please some people.

I had no idea the GBA port had new levels for Contra III though, that sounds very interesting!

cospefogo

  • Full Member
  • ***
  • Posts: 167
  • "Take this silver dagger to save your neck."
    • View Profile
    • Fliperamas
(...) are really, really quick to complete, so it's never a problem for me.(...)

Ha ha ha!
They are really bothering nowadays.
And in the past they were not a problem for me too...
But today. Oh my. What a U-G-L-Y thing they are!
"Replicants are like any other machine - they're either a benefit or a hazard.
If they're a benefit, it's not my problem."

Bregalad

  • Hero Member
  • *****
  • Posts: 2752
    • View Profile
Quote
Although the top-view Mode7 levels were great
by the time SNES Contra III was launched,
today they look pretty bad and unnecessary.

The other levels aged so well...
They keep awesomely great!
Apparently is has been a tradition in the Contra series that in each game level 2 and another later level need to be made with a strange perspective.

And I like variation in my games, I mean, I like Battletoads.
Who doesn't ! That being said, all Battletoads levels are side view, some with perspective and some without. It's not like Contra games.

slidelljohn

  • Sr. Member
  • ****
  • Posts: 326
    • View Profile
To skip level #2 try this custom code.

At 00/b6ff

Put this
22 00 ff 01

At
01/ff00

Put this
c9 02 00 d0 01 1a 22 9f b9 00 6b

At
00/b79e

Put this
22 10 ff 01

At
01/ff10

Put this
E6 86 a5 86 c9 02 00 f0 f7 6b

cospefogo

  • Full Member
  • ***
  • Posts: 167
  • "Take this silver dagger to save your neck."
    • View Profile
    • Fliperamas
Re: [Technical] Forcing CONTRA III (SNES) to completely SKIP top-view levels
« Reply #10 on: August 29, 2020, 08:38:03 am »
Thank you!

I asked for a friend's help with it.
I will report back here later.

 :thumbsup: :happy:
"Replicants are like any other machine - they're either a benefit or a hazard.
If they're a benefit, it's not my problem."

slidelljohn

  • Sr. Member
  • ****
  • Posts: 326
    • View Profile
Re: [Technical] Forcing CONTRA III (SNES) to completely SKIP top-view levels
« Reply #11 on: August 29, 2020, 08:50:52 pm »
Here is a patch for it:
http://www.mediafire.com/file/hrsy2b7qplm88ae/file

Code: [Select]
step #1

Disassembly: original code
$00/B6FF 22 9F B9 00 JSL $00B99F[$00:B99F]

Disassembly: modified code
$00/B6FF 22 00 FF 01 JSL $01FF00[$01:FF00]

Disassembly: new code
$01/FF00 C9 02 00    CMP #$0002             
$01/FF03 D0 01       BNE $01    [$FF06]     
$01/FF05 1A          INC A                   
$01/FF06 22 9F B9 00 JSL $00B99F[$00:B99F]   
$01/FF0A 6B          RTL                     

Code: [Select]
step #2

Disassembly: original code
$00/B79E E6 86       INC $86    [$00:0086]   
$00/B7A0 A5 86       LDA $86    [$00:0086]

Disassembly: modified code
$00/B79E 22 10 FF 01 JSL $01FF10[$01:FF10]   

Disassembly: new code
$01/FF10 E6 86       INC $86    [$00:0086]   
$01/FF12 A5 86       LDA $86    [$00:0086]   
$01/FF14 C9 02 00    CMP #$0002             
$01/FF17 F0 F7       BEQ $F7    [$FF10]     
$01/FF19 6B          RTL                     

This is how I added the modifications and saved it:

Download this:
https://dl.smwcentral.net/11501/SNES9Xdebugger.zip

original code


modified code


Anytime you want to save the modified code just hit the save rom
button in the hex editor that is included in the debugger. You can
do it my friend! ;)

cospefogo

  • Full Member
  • ***
  • Posts: 167
  • "Take this silver dagger to save your neck."
    • View Profile
    • Fliperamas
Re: [Technical] Forcing CONTRA III (SNES) to completely SKIP top-view levels
« Reply #12 on: August 29, 2020, 09:21:22 pm »
Oh, thank you, slidelljohn!

It is super simple... All I ever did was basic HEX EDIT and ROM tile graphic modification (using YYCHR and similar tools). As soon as I get home I will try this patch.

Thank you AGAIN.
C.
"Replicants are like any other machine - they're either a benefit or a hazard.
If they're a benefit, it's not my problem."

slidelljohn

  • Sr. Member
  • ****
  • Posts: 326
    • View Profile
Re: [Technical] Forcing CONTRA III (SNES) to completely SKIP top-view levels
« Reply #13 on: August 30, 2020, 06:35:10 pm »
You’re welcome!  :)
Did it work?

It is super simple
Yes, it is simple. It doesn’t seem so hard to do when you see
how it’s done. Hopefully you will take the necessary steps to
skip the next one on your own. Anything you can’t figure out
just ask the right questions on what you’re trying to figure out and I’m sure someone will help you. You probably didn’t get the help you were looking for because when you asked:

Is there someone capable to help me with this hack?
It was more like:
Is there someone capable to do this hack for me?

Also stuff like this isn’t what the help wanted ads section is for.
This should probably be in the romhacking discussion page.

cospefogo

  • Full Member
  • ***
  • Posts: 167
  • "Take this silver dagger to save your neck."
    • View Profile
    • Fliperamas
Re: [Technical] Forcing CONTRA III (SNES) to completely SKIP top-view levels
« Reply #14 on: September 02, 2020, 12:55:13 pm »
Oooooh!

Thank you SO much.
It worked flawlessly.

The only thing I could yet change to eradicate the existence of those two awful top areas would be to CHANGE the number of the subsequent levels. Change 3 to 2, 4 to 3, etc etc.
Do you think it is doable?

About my help request, I was a bit shy to just "ask someone to do something for me"... a bit "not-polite", perhaps.  :angel:
"Replicants are like any other machine - they're either a benefit or a hazard.
If they're a benefit, it's not my problem."

slidelljohn

  • Sr. Member
  • ****
  • Posts: 326
    • View Profile
Re: [Technical] Forcing CONTRA III (SNES) to completely SKIP top-view levels
« Reply #15 on: September 08, 2020, 01:31:58 am »
Yes.
It is super simple. ;)

In that hex editor for the snes debugger I posted change
rom to ram.

00:0086 Is the same as 7e:0086

00:0086 is where the value is stored for the current level

create a savestate right before you kill the 1st boss

kill the 1st boss and watch that value change at 00:0086 as it’s going to the next level

reload savestate kill 1st boss again and change the value at 00:0086 to something like 01, 02, 03..... and see what happens

You need to run a trace before the value at 00:0086 changes to catch the code that you need to edit

If you don’t know how to trace the code then thats when you come back here and say:

How do I run a trace to catch the code?

And someone will say.........


I can show you the path but it is you who must walk the path
my friend ;)

You can do it :)
« Last Edit: September 08, 2020, 03:53:01 am by slidelljohn »

slidelljohn

  • Sr. Member
  • ****
  • Posts: 326
    • View Profile
Re: [Technical] Forcing CONTRA III (SNES) to completely SKIP top-view levels
« Reply #16 on: October 11, 2020, 11:21:04 pm »
@cospefogo
Hey, my friend! Just checking in to see if you did anything with contra to
"CHANGE the number of the subsequent levels"? If not, I could finish the code
for you.

cospefogo

  • Full Member
  • ***
  • Posts: 167
  • "Take this silver dagger to save your neck."
    • View Profile
    • Fliperamas
Re: [Technical] Forcing CONTRA III (SNES) to completely SKIP top-view levels
« Reply #17 on: October 13, 2020, 09:52:10 am »
Oh dear SlidellJohn!

I must confess I did not have the time. Well, time we always have, but in the end we need to use it in different things, most of the time. Sometimes wisely, sometimes not.  :happy: I have been playing (suffering is a better term) in Hollow Knight on PS4 and also spent a lot of days configuring RetroArch on my almost defunct OUYA.

I would be super happy if you could do that for me... if possible, of course.

Thanks!!!

PS. I have been studying a lot of Japanese on DuoLingo app as well  8)
"Replicants are like any other machine - they're either a benefit or a hazard.
If they're a benefit, it's not my problem."