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

Author Topic: Advice for a SNES newb  (Read 1901 times)

lastdual

  • Jr. Member
  • **
  • Posts: 91
    • View Profile
Advice for a SNES newb
« on: March 20, 2017, 04:50:30 pm »
How difficult would it be for someone with zero knowledge of assembly (like me!) to attempt a FastROM hack for a SNES game like Gradius 3? The info here makes it look fairly straightforward:

https://wiki.superfamicom.org/snes/show/Programming+with+FastROM

However I’m pretty new at this, having only done very basic hex edits (NES) in the past.

I was playing Gradius 3 on an old version of ZSNES the other day (v1.36) and upon comparison with newer, more accurate emulators, the old release of ZSNES (before SlowROM was correctly emulated) runs the game noticeably smoother. There’s still slowdown, but the difference is considerable enough that I’d enjoy being able to get the same experience without having to resort to an out-of-date emulator.

dougeff

  • Sr. Member
  • ****
  • Posts: 358
    • View Profile
Re: Advice for a SNES newb
« Reply #1 on: March 20, 2017, 11:46:28 pm »
It could be very easy.

(Edit)
Set bit 0 of $420d.
Set Programming and Data banks to $80 or higher...with a jump long.

Search the ROM for JML and JSL opcodes, and add $80 to all the bank bytes.

I think that's it.
nesdoug.com -- blog/tutorial on programming for the NES

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 7067
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: Advice for a SNES newb
« Reply #2 on: March 23, 2017, 12:04:07 am »
If by "easy" you mean
Quote
Search the ROM for JML and JSL opcodes, and add $80 to all the bank bytes.
EXTREMELY tedious.

Still, given that Gradius III was one of the first games developed, I'd have to wonder if you'd have a bigger task than that.
The plant boss especially, holy crap is that the glitchiest sprite I've seen in a 16-bit game. That amount of flicker would've been bad even by 8-bit standards.
"My watch says 30 chickens" Google, 2018

rainponcho

  • Sr. Member
  • ****
  • Posts: 275
    • View Profile
Re: Advice for a SNES newb
« Reply #3 on: March 23, 2017, 10:20:28 am »
Old zsnes used FastRom speeds in all areas [Registers, Main Ram, Low Rom]? That might make it noticeably faster than any "FastRom" conversion.

Don't think entire rom has to be $80+ converted - just important game logic that always gets run every frame or two in-game.

A large, fast Sram can be used in place of main Ram for a speed kick.


Wondering though.. because I'd imagine a lot of snes tech experts probably already tried a Gradius III / Super R-Type FastRom approach (using intelligent logging, disassembler tools) and maybe got barely appreciable results.

And there's the curiosity whether they spin idled anytime they missed a vblank frame. 60 -> 30 -> 15. That port skips a couple frames at times. Maybe intentional though - "bullet time", "reaction time". PS2 Gradius III can be wicked hard at full speed.

lastdual

  • Jr. Member
  • **
  • Posts: 91
    • View Profile
Re: Advice for a SNES newb
« Reply #4 on: March 24, 2017, 01:10:43 pm »
Old zsnes used FastRom speeds in all areas [Registers, Main Ram, Low Rom]? That might make it noticeably faster than any "FastRom" conversion.

Yeah, that would put a damper on the project. And hearing how tedious it could be makes me want to just hire a freelancer  ;D

I did find some info here:

http://forums.nesdev.com/viewtopic.php?p=61547&sid=9731c0e47ece6753ec473a153903905a#p61547

Apparently d4s succeeded in making a similar patch for Super R-Type (though the link to it is down), and byuu reiterates the issue here:

http://forums.nesdev.com/viewtopic.php?p=33362#p33362