Question about Sonic & Knuckles + S1/S2/S3

General No-Intro related discussions.
Post Reply
Posts: 2
Joined: 19 Feb 2021 00:11

Question about Sonic & Knuckles + S1/S2/S3

Post by gordonfish »

Hi, I was looking at the three ROMs for S&K+S1, S&K+S2-RevA (see #1 below), and S&K+S3, (see table at #2 below) and I noticed that while the ROMs that I had of S&K, and the three main Sonic The Hedgehog games all matched the checksums listed in the DAT, my S&K locked-on images did not, which were created some time ago.

So I compared those three with ones I obtained that matched the No-Intro checksums which are just straight concatenations (see #3 below) and found that the ones I had, produced using Sonic the Hedgehog HackingWiz Pro's S&K lock-on tool, had the bytes at address 0x000003B5 set to 0x02 where the No-Intro-matching ones had 0x01.

This stirred up an old memory about how that byte is 0x02 when a game is locked-on to S&K and 0x01 without.

This brings me to my question. Should that byte be 0x02 in those locked-on Sonic ROMs, or is the straight concatentation of the In-Intro set more desirable, perhaps under the assumption that software emulators and more recently, FPGA systems, should be setting that at run-time like a real Genesis/Mega Drive would?

I assume the latter as the value would be 0x01 on a real Sonic & Knuckles cartridge, with and without a cartridge connected to it, so I believe that the On-Intro ROMs would match the combined memory block that a real system would see upon powered on and loading the game.

That would then means that tools like Sonic the Hedgehog HackingWiz Pro were compensating for less than perfect emulators, especially older ones, that wouldn't load correctly (most likely just loading S&K by itself) unless 0x02 was set in the ROM.

Am I on the right track, or is there something else that I'm not considering?

* * *

[1] Question about Sonic & Knuckles + Sonic The Hedgehog 2 (World)

In a hex editor, I saw that S&K+S2 uses, for the 0x200000 to 0x2FFFFF block, S2-RevA, and not S2 as the name (see [2] below) would suggest.

I'm wondering if the name/filename in the DAT database should be updated to reflect that it uses the 'Rev A' version of Sonic 2 and not the earlier final Sonic 2 release?

[2] Legend

Code: Select all

In Post       DAT Name                                              SHA1 Hash

S&K+S1        Sonic & Knuckles + Sonic The Hedgehog (USA, Europe)   A3084262F5AF481DF1A5C5AB03C4862551A53C91
S&K+S2-RevA   Sonic & Knuckles + Sonic The Hedgehog 2 (World)       6CD0537A3AEE0E012BB86D5837DDFF9342595004
S&K+S3        Sonic & Knuckles + Sonic The Hedgehog 3 (USA)         CFBF98C36C776677290A872547AC47C53D2761D6

S1            Sonic The Hedgehog (USA, Europe)                      6ddb7de1e17e7f6cdb88927bd906352030daa194
S2            Sonic The Hedgehog 2 (World)                          14DD06FC3AA19A59A818EA1F6DE150C9061B14D4
S2-RevA       Sonic The Hedgehog 2 (World) (Rev A)                  8BCA5DCEF1AF3E00098666FD892DC1C2A76333F9
S3            Sonic The Hedgehog 3 (USA)                            75e9c4705259d84112b3e697a6c00a0813d47d71
S&K           Sonic & Knuckles (World)                              88d6499d874dcb5721ff58d76fe1b9af811192e3

[3] No-Intro S&K Locked-on with other main Sonic games.

The No-Intro S&K+S1, S&K+S2-RevA, and S&K+S3 are just a concatenation of the following (in the order as written):
1) S&K + S1
2) S&K + S2-RevA + a 256KB image on the original S&K cartridge that is -not- in the S&K ROM itself
3) S&K + S3
Without any modifications, as each size-matching block in a hex editor matches the checksum for those individual games.
Post Reply