shmups.system11.org

Shmups Forum
 
* FAQ    * Search
 * Register  * Login 
It is currently Thu Aug 05, 2021 3:02 pm View unanswered posts
View active topics



Post new topic Reply to topic  [ 46 posts ]  Go to page Previous  1, 2
Author Message
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Fri Oct 09, 2020 9:59 pm 


User avatar

Joined: 14 Aug 2019
Posts: 498
Location: BW, Germany
Thor87 wrote:
OK so I just did a quick test, as you got me thinking about the 1 chip issue. I managed to get my working Japanese cart to boot fine on the PAL 1 chip using the adapter. So it looks like there isn't an issue with the game on 1 chips per se. It's looking more and more like the SA-1 chip is the culprit for the issues I was having. I'll do some more testing with the PAL European tour cart on Sunday.

Ah, excellent :) That should indeed eliminate the 1-chip / 3-chip motherboard difference as a factor for SA-1 patch (in)compatibility.


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Tue Oct 13, 2020 10:25 am 



Joined: 03 Oct 2020
Posts: 8
Hi @6t8k, but of an update for you.
I have done quite a few bits to try and get the PAL version to work, but to no avail. I'll go over what I have done so far.

I replaced the SA-1 chip with a chamfered edge one. Same boot crash issue where it only shows the white boxes
Swapped the ROM for the original PGA ROM to confirm SA-1 was working OK. Passed this test as the game booted and ran fine
Swapped the ROM for the working Japanese version of Gradius, and this had the exact same booting issue, stuck on the white boxes
Put the ROM chip off the PAL version onto the Japanese version and this runs fine.
Removed the RAM and inspected the pads, but everything looks fine.

So the ROM chips are both working fine on the Japanese build, the SA-1 is working fine but both dot and chamfer behave the same, and the game runs fine with the original ROM chip of PGA European tour on it. The last thing I can try is swapping the RAM off the working Japanese version and seeing if that changes things, as maybe it's a faulty RAM chip. But this has definitely got me very confused.

On the plus side all this soldering practice has really helped improve my soldering skills, which was one of my main aims of this project, so that's a win!


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Wed Oct 14, 2020 6:21 pm 


User avatar

Joined: 14 Aug 2019
Posts: 498
Location: BW, Germany
Hm, that's a pity. While sample size was small, a change in the package coinciding with a change in circuit design, in turn leading to some nuanced changes in behavior, would have been plausible. It's inconvenient if one intends to build a conversion and fishes out a non-working exemplar. But what's more important is that the patches can be improved to work with all of them, so that one wouldn't have to worry about this anymore.

Indications are that officially released ROMs that make use of the SA-1 work with all SA-1 chips. Obviously, the patches do something that official ROMs don't, but comparing the code introduced by the patches with the code of official SA-1 ROMs may be like looking for a needle in a haystack, the cause may be timing-related et cetera. So the next step would perhaps be to logic-analyze the SA-1 pins to get an idea of what happens after the SNES system is powered on, which, given the existence of different SA-1 variants, would also have its own merits with regards to emulation accuracy / preservation. Perhaps the smaller but also affected SA-1 speed test ROM could be a good starting point. The endgame would be an eventual decapsulation, imaging and analysis of the die, as has been done and is striven after regarding other chips, ideally different variants so that they can be compared. But I think chances are good that much could be learned already without this nontrivial and time-consuming procedure.


Just as a note: the old-school way of making (a good share of) games from one region work on a console from the other region, was to disable the console's CIC by lifting pin 4 of the CIC. It was brought to my attention that with SA-1 games, it's different: some exemplars of the SA-1 chip check for the presence of a CIC signal of the correct region (if it's absent or of the wrong region, they refuse to work), while others, apparently, aren't bothered about the lack of a signal and only refuse to work if they detect a signal of the wrong region. This reminded me of the old observation that "there are meant to be 2 versions of [Super Mario RPG] available, one will work on an PAL SNES with the lockout chip disabled, the other won’t. But there’s no way of knowing which is which by looking at the cart" (see here). What was actually going on was/is probably that there are multiple versions of the SA-1 chip, and more games than just SMRPG affected by that variance – but there’s no way of knowing which is which by looking at it. From e.g. your and Arthrimus' findings (all other things being equal, an official ROM worked while a patched one didn't) results that a difference in CIC signal processing did not cause the failure. But maybe differences in CIC signal processing behavior correlate with differences in patch compatibility. Merely another working hypothesis.

A faulty SRAM chip could at this point still be the cause for your PGA European Tour board, if patched Gradius III utilizes more SRAM at the beginning than the former (which should be a good bet: PGA European Tour uses an 8 kByte / 64 kBit chip, and I believe the SA-1 patches transfer quite a lot of stuff into BW-RAM at the beginning), and if only some higher addresses / cells of the chip return garbage data. Unlikely but possible.


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Sat Jan 02, 2021 12:15 am 


User avatar

Joined: 14 Aug 2019
Posts: 498
Location: BW, Germany
Vitor has released an SA-1 enhanced version of Super R-Type :)

Download: https://github.com/VitorVilela7/SA1-Root/releases
Side-by-side comparison: https://www.youtube.com/watch?v=cF7DNnyKJYU

It's the first SA-1 patch to use the SA-1 in parallel with the SNES CPU, and to use the SA-1 as the master (coordinator) of the game instead of the SNES CPU. [1] Furthermore, it only requires 32KB of SRAM. [2]


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Sat Jan 02, 2021 3:49 am 


User avatar

Joined: 16 Jan 2014
Posts: 1444
Awesome! I was asking about that specific game earlier. Will have to slap it on my SD2SNES ASAP.


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Sun Jan 03, 2021 11:01 pm 


User avatar

Joined: 16 Jan 2014
Posts: 1444
Tried the SA-1 modded Super R-Type today, its fantastic! There is no visual slowdown whatsoever in at least the first 3 levels on the default (easy) mode. Curiously though, in level 3 I noticed some audio slowdown in the music track though-- I thought it was just me at first, but I heard it several different times as I was getting my ass handed to me and playing over and over. :mrgreen: Very strange that the audio would slow down while the graphics absolutely did not. A bug / side effect of the SA-1 mod perhaps? In any case, it was brief and a non-issue for the most part. Maybe it has something to do with the new coordination hierarchy of the SA-1 vs CPU for this title.

Like Gradius 3, this game is brutal at full speed with no slowdown. Incredible achievement by Vitor.


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Mon Jan 04, 2021 12:30 pm 



Joined: 08 Aug 2020
Posts: 11
Location: Westerham UK
Josh128 wrote:
Tried the SA-1 modded Super R-Type today, its fantastic! There is no visual slowdown whatsoever in at least the first 3 levels on the default (easy) mode. Curiously though, in level 3 I noticed some audio slowdown in the music track though-- I thought it was just me at first, but I heard it several different times as I was getting my ass handed to me and playing over and over. :mrgreen: Very strange that the audio would slow down while the graphics absolutely did not. A bug / side effect of the SA-1 mod perhaps? In any case, it was brief and a non-issue for the most part. Maybe it has something to do with the new coordination hierarchy of the SA-1 vs CPU for this title.

Like Gradius 3, this game is brutal at full speed with no slowdown. Incredible achievement by Vitor.

It’s indeed quite superb. If only Irem could of treated us to checkpoints ! With the introduction of the SA 1 hacks, these titles now play like proper coin ops from the era.


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Mon Jan 04, 2021 10:49 pm 


User avatar

Joined: 14 Aug 2019
Posts: 498
Location: BW, Germany
That's interesting indeed. It has been updated to v1.1 (apparently 1.0 wasn't declared stable on original HW), do you still encounter that audio phenomenon with that? In any case, it's important that any remaining bugs get relayed to Vitor so he can analyze/fix them.

I'll sooner or later have to build myself a cart, there's no way around it. ;)


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Tue Jan 05, 2021 1:09 am 


User avatar

Joined: 16 Jan 2014
Posts: 1444
v1.1 is the one I used. I need to play the unhacked original and see if the sound does the same thing in the same area. Its a small deal really, just something I noticed.

I wonder if he'll do any more titles? Trying to think of another that could really use the treatment, he really hit the main ones it seems. Maybe UN Squadron or Axelay could use it in a few areas? Just nitpicking from here on out, those titles arent nearly as riddled with slowdown as G3 / SRT.


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Tue Jan 05, 2021 1:19 pm 


User avatar

Joined: 29 Aug 2010
Posts: 1059
Location: Fairfax, VA
Very excited to see Super R-Type getting the SA-1 treatment. Some boss moments in particular are like different fights all together now. I'll probably still play the original when it comes to trying to actually complete the game on the higher difficulties, but I love having the option to play it via the SA-1 conversion as well. Here's to hoping more slowdown-ridden games get the conversion treatment.
_________________
YouTube | Twitch | Website | STG 1CC List


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Sat Jun 05, 2021 5:31 am 


User avatar

Joined: 26 Feb 2018
Posts: 65
Location: Frederick, MD
I've tried to do this mod using the Shining Scorpion Donor PCB but haven't had any luck. I tried using the SA-1 Origin version but couldn't get it to work. I double checked my work, tested continuity on everything but no dice. The game just hangs at the hash screen. I actually tried it on a second donor board but that didn't work either. The part I'm confused on is during the padding step. After padding it to 4mb I don't understand where to find the hashsum in Ucon64. I did fix it using the --chk command.

The Checksum I get for CRC32 is 0x4c3edb9c

I ripped my own NTSC-U version. I'm wondering if this issue has to do with the padding.

I've tried the game on my 1-chip 01 North American console and my Analogue Super NT but haven't had any luck so far. I'd appreciate some advice. Thanks!


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Thu Jun 17, 2021 10:27 pm 


User avatar

Joined: 14 Aug 2019
Posts: 498
Location: BW, Germany
Danexmurder wrote:
I've tried to do this mod using the Shining Scorpion Donor PCB but haven't had any luck. I tried using the SA-1 Origin version but couldn't get it to work. I double checked my work, tested continuity on everything but no dice. The game just hangs at the hash screen. I actually tried it on a second donor board but that didn't work either. The part I'm confused on is during the padding step. After padding it to 4mb I don't understand where to find the hashsum in Ucon64. I did fix it using the --chk command.

The Checksum I get for CRC32 is 0x4c3edb9c

I ripped my own NTSC-U version. I'm wondering if this issue has to do with the padding.

I've tried the game on my 1-chip 01 North American console and my Analogue Super NT but haven't had any luck so far. I'd appreciate some advice. Thanks!

Did you replace the SRAM chip on your game PCB with a 128KByte / 1024Kbit one as needed? Which chip did you use for it?

It's not strictly necessary to correct the SNES-specific internal ROM header checksum as real hardware does not check it. I've mentioned that step mainly for orderliness' sake, you should be able to exclude it as a source of error.* The sha1 hashsum on the other hand, as used in the opening post, provides a generic and convenient way to ascertain that the contents of two files are the same. You can use the crc32 value for the same purpose here.

About the padding (I assume you're using the M27C322 EPROM), the crc32 value I get after padding to 4MB / 32Mbit does not reproduce yours, internal ROM header checksum corrected or not. Before padding, the file should have the following crc32 values/sha1sums:

After padding, the values depend on the size the ROM file was padded to.

I've just patched an original US Gradius III ROM with Gradius-III-Origin-USA-v16.bps using Flips, then expanded it to 4MB / 32Mbit using Lunar Expand, and finally corrected the internal ROM header checksum using ucon64 --chk. The resulting sha1sum is now 26ccb6525bb3461d289033bc6e47518b87997ba5 - if you're getting the same then your ROM file should be ok and ready to go onto the cart (of course assuming expansion to 32Mbit as one would do for the M27C322). For obtaining the sha1sum of a given file I've referenced other commands in the opening post like certutil for Windows or sha1sum for Linux, but you can also display it using ucon64 like so: ucon64 --sha1 path/to/your/file.

* If you need it, you can find the internal ROM header checksum near the end of ucon64's output just above the crc32 value. After expansion to 32Mbit, it should read:
Spoiler: show
Checksum: Bad, 0x71e1 (calculated) != 0x71de (internal)
Inverse checksum: Bad, 0x8e1e (calculated) != 0x8e21 (internal)

before correction and

Checksum: OK, 0x71e1 (calculated) == 0x71e1 (internal)
Inverse checksum: OK, 0x8e1e (calculated) == 0x8e1e (internal)

after correction.



Gradius-III-JPN-v16.bps and Gradius-III-USA-v16.bps (standard SA-1 patch) are by the way unchanged from the previous Gradius-III-JPN.bps and Gradius-III-USA.bps (labelled here as v1.5).


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Fri Jun 18, 2021 7:03 pm 


User avatar

Joined: 26 Feb 2018
Posts: 65
Location: Frederick, MD
6t8k wrote:
Danexmurder wrote:
I've tried to do this mod using the Shining Scorpion Donor PCB but haven't had any luck. I tried using the SA-1 Origin version but couldn't get it to work. I double checked my work, tested continuity on everything but no dice. The game just hangs at the hash screen. I actually tried it on a second donor board but that didn't work either. The part I'm confused on is during the padding step. After padding it to 4mb I don't understand where to find the hashsum in Ucon64. I did fix it using the --chk command.

The Checksum I get for CRC32 is 0x4c3edb9c

I ripped my own NTSC-U version. I'm wondering if this issue has to do with the padding.

I've tried the game on my 1-chip 01 North American console and my Analogue Super NT but haven't had any luck so far. I'd appreciate some advice. Thanks!

Did you replace the SRAM chip on your game PCB with a 128KByte / 1024Kbit one as needed? Which chip did you use for it?

It's not strictly necessary to correct the SNES-specific internal ROM header checksum as real hardware does not check it. I've mentioned that step mainly for orderliness' sake, you should be able to exclude it as a source of error.* The sha1 hashsum on the other hand, as used in the opening post, provides a generic and convenient way to ascertain that the contents of two files are the same. You can use the crc32 value for the same purpose here.

About the padding (I assume you're using the M27C322 EPROM), the crc32 value I get after padding to 4MB / 32Mbit does not reproduce yours, internal ROM header checksum corrected or not. Before padding, the file should have the following crc32 values/sha1sums:

After padding, the values depend on the size the ROM file was padded to.

I've just patched an original US Gradius III ROM with Gradius-III-Origin-USA-v16.bps using Flips, then expanded it to 4MB / 32Mbit using Lunar Expand, and finally corrected the internal ROM header checksum using ucon64 --chk. The resulting sha1sum is now 26ccb6525bb3461d289033bc6e47518b87997ba5 - if you're getting the same then your ROM file should be ok and ready to go onto the cart (of course assuming expansion to 32Mbit as one would do for the M27C322). For obtaining the sha1sum of a given file I've referenced other commands in the opening post like certutil for Windows or sha1sum for Linux, but you can also display it using ucon64 like so: ucon64 --sha1 path/to/your/file.

* If you need it, you can find the internal ROM header checksum near the end of ucon64's output just above the crc32 value. After expansion to 32Mbit, it should read:
Spoiler: show
Checksum: Bad, 0x71e1 (calculated) != 0x71de (internal)
Inverse checksum: Bad, 0x8e1e (calculated) != 0x8e21 (internal)

before correction and

Checksum: OK, 0x71e1 (calculated) == 0x71e1 (internal)
Inverse checksum: OK, 0x8e1e (calculated) == 0x8e1e (internal)

after correction.



Gradius-III-JPN-v16.bps and Gradius-III-USA-v16.bps (standard SA-1 patch) are by the way unchanged from the previous Gradius-III-JPN.bps and Gradius-III-USA.bps (labelled here as v1.5).



Thanks so much for the detailed response. I did not swap out the SRAM as I was under the impression that game already had a 128Kbyte SRAM. Seems like that would certainly cause it not to work. I'll get it replaced and report back. From there I'll dig into the Checksum.


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Thu Jul 22, 2021 9:46 am 



Joined: 28 May 2020
Posts: 32
Hey :)

First off - thanks for this guide and all the great pictures and infos posted.

I'd done Super R-Type previously because it was easier (not requiring SRAM replacing), but yesterday I finally manned up and did the real deal - Gradius 3 with SA-1 root + origin patch.

Anyway. For reference, the following worked for me:
- using SHVC-1L5B-20 donor (Mini Yonku Shining Scorpion - Let's & Go!!)
- replacing SRAM with 1024kbit module IS62C1024AL-35QLI-TR
- padding the ROM with itself 8 times for m27c322 EPROM instead of using expand tool + header fix (I believe the game won't care since it shouldn't be reading entire 32mbit ROM)
- SA-1 adapter from ThePoorStudentHobbyist - much better quality vias than what I got from an OSHPark order

Works fine. Tested by playing until I wished there were slowdowns ;-)


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Sun Jul 25, 2021 12:58 pm 



Joined: 28 May 2020
Posts: 32
Just a note on donors:

I had 1L3B donor (PGA Tour 96, 64kbit SRAM) that was PAL which would defeat the slowdown-free purpose of the mod.

Deciding to use it instead for the Super Mario RPG 50Hz hack I found that while it may have the extra SRAM pads, A13 was not connected to SA-1 pin 103. Being a 256Kbit SRAM game, this would not work.

So anyone attempting to do this with a 64kbit donor may want to connect that line on addition to the extra pads for the 1Mbit module:
Spoiler: show
Image


Top
 Offline Profile  
 
 Post subject: Re: TUT: Slowdown-free Gradius 3: Building SNES SA-1 Convers
PostPosted: Tue Jul 27, 2021 4:41 am 


User avatar

Joined: 26 Feb 2018
Posts: 65
Location: Frederick, MD
I finally had a chance to come back to this and work on it some more. I had another board to use and decided to start from scratch. I double checked everything in ucon64 and after re-patching and padding got the exact same sha1sum that 6t8k posted above for the SA1 origin patch. (Thanks again for the detailed response.)

I replaced the sram with this one.

https://www.digikey.com/en/products/det ... TR/4733138

I then burned my M27C322 chip with the correct .SFC file.

It booted to a black screen. Should I be changing the file extension to .bin? Would that effect anything?

I'm using a Flashcat USB Xport with the Dip42 adapter and have it set to 32mbit.

*EDIT*

I also tried the same thing after changing the file to a .bin and get the same result.

I also put both versions I made into my Super NT to use the copynes and came up with some interesting results.

When the .bin version is read the name is says it is "Gradaus" and is 16kb. I double checked the rom before and after burning. It is 4096kb.

The .SFC version is read with a totally garbled name but it is recognized as a 4mb file. Really strange.


Top
 Offline Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 46 posts ]  Go to page Previous  1, 2

All times are UTC


Who is online

Users browsing this forum: bahamutfan64, Harrumph, Wirewizard and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
Space Pilot 3K template by Jakob Persson
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group