Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SMS Updates #1002

Merged
merged 1 commit into from
Jul 30, 2024
Merged

SMS Updates #1002

merged 1 commit into from
Jul 30, 2024

Conversation

andy-miles
Copy link
Contributor

  1. SMS cart size detection algorithm is updated based on bank count instead of multiples of detected cart size from the header.
  2. SMS cart size detection is only invoked if the "TMR SEGA" header is parsed for non-JP carts.
  3. Manual selection of ROM size is now present in the SMS/GG menus to allow for manual override as detection algorithm does not work correctly for Cloud Master and Penguin Land US SMS carts.
  4. SG-1000 Operation menu now allows for reset instead of relying on a power cycle.

Notes:

I think a better long-term solution is to implement a CRC on the first 8 KiB + database lookup for SMS/GG/SG-1000 to determine the correct ROM size (or something similar to how NES/Famicom auto mapper detection works). This is especially true as not all carts have the "TMR SEGA" header value. For now, this update allows for anyone to manually specify the ROM size regardless of the detection algorithm being invoked to address edge cases.

Testing (HW5):

I've tested manual setting of ROM size on the problematic carts:

OSCR HW5 V14.0

[+] SMS/GG/MIII/SG-1000

[+] SMS/MarkIII raphnet

[+] Set ROM Size

[+] 128 KB

Selected Size: 128KB
Press Button...

[+] Read ROM

Saving to SMS/ROM/UNKNOWN/675/...
ROM Size: 128KB
[*******************]
CRC32... F97E9875 -> Penguin Land (USA, Europe).sms
OSCR HW5 V14.0

[+] SMS/GG/MIII/SG-1000

[+] SMS/MarkIII raphnet

[+] Set ROM Size

[+] 256 KB

Selected Size: 256KB
Press Button...

[+] Read ROM

Saving to SMS/ROM/UNKNOWN/667/...
ROM Size: 256KB
[*******************]
CRC32... E7F62E6D -> Cloud Master (USA, Europe, Brazil) (En).sms

Tested working auto-detect US SMS carts:

OSCR HW5 V14.0

[+] SMS/GG/MIII/SG-1000

[+] SMS/MarkIII raphnet

[+] Read ROM

SMS Header:
 
Name: TMR SEGA
128KB
 
Press Button...

Saving to SMS/ROM/TMR SEGA/677/...
ROM Size: 128KB
[*******************]
CRC32... 327A0B4C -> Paperboy (USA, Brazil) (En).sms
OSCR HW5 V14.0

[+] SMS/GG/MIII/SG-1000

[+] SMS/MarkIII raphnet

[+] Read ROM

SMS Header:
 
Name: TMR SEGA
128KB
 
Press Button...

Saving to SMS/ROM/TMR SEGA/678/...
ROM Size: 128KB
[*******************]
CRC32... B746A6F5 -> Global Defense (USA, Europe, Brazil) (En).sms

1. SMS cart size detection algorithm is updated based on bank count instead of multiples of detected cart size from the header.
2. SMS cart size detection is only invoked if the "TMR SEGA" header is parsed for non-JP carts.
3. Manual selection of ROM size is now present in the SMS/GG menus to allow for manual override as detection algorithm does not work correctly for Cloud Master and Penguin Land US SMS carts.
4. SG-1000 Operation menu now allows for reset instead of relying on a power cycle.
@sanni sanni merged commit 487ea97 into sanni:master Jul 30, 2024
5 checks passed
@andy-miles andy-miles deleted the sms_updates2 branch November 28, 2024 16:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants