Comments (5)
The internal rom name of "Yuyu no Quiz de GO!GO!" is one character too long so it overwrites the byte that the Cart Reader uses to identify lorom or hirom with "!". "!" is 0x21 in hex which is used for hirom games so that's why the OSCR thinks it's a hirom game and dumps incorrectly.
Something similar has happened with Krusty's Super Fun House (U) 1.0 & Contra 3 (U): https://github.com/sanni/cartreader/blob/master/Cart_Reader/SNES.ino#L1003
A special case needs to be added for "Yuyu no Quiz de GO!GO!" something like this:
else if (strcmp("3BB0", checksumStr) == 0) { // Detect invalid romType byte due to too long ROM name (22 chars)
romType = LO; // Yuyu no Quiz de GO!GO!
}
from cartreader.
If you choose Force Cart Type from the same menu as Read ROM, and choose LoRom, does that not work?
from cartreader.
It does not, it reports back something different. What it reports back is as follows:
Checksum.... EEC0!= 3BB0
Invalid Checksum
CRC32...93A8BC26 -> Not Found
from cartreader.
That’s good to know, thanks for the insight @sanni ! I’ll test it when I get home from work later this evening and let you know how it goes. Taking a look at the code, I have no doubt that it’ll work.
My next curious question is, is there a way to simplify this so that instead of there being multiple instances of “special cases” that this becomes a case of “if over 21 characters, shorten”? Or (and this may be a huge but messy suggestion) is there a way to possibly read the cartridges in the sense of reading it and/or changing the data to show the cartridge label, for example SHVC-YY?
from cartreader.
Following up on this, I added the lines as follows:
romType = snesHeader[0xFFD5 - headerStart];
if ((romType >> 5) != 1) { // Detect invalid romType byte due to too long ROM name (22 chars)
} else if (strcmp("3BB0", checksumStr) == 0) {
romType = LO; // LoROM // Krusty's Super Fun House (U) 1.0, Contra 3 (U), Yuyu no Quiz de GO!GO!
} else if (romType == 0x35) {
romType = EX; // Check if ExHiROM
} else if (romType == 0x3A) {
romType = HI; // Check if SPC7110
} else {
romType &= 1; // Must be LoROM or HiROM
}
Added the line as intended above the "romType = LO" and just changed the descriptor for the LoROM line to include Yuyu. Just to decrease any added clutter.
The game backed up just fine and loads in emulators no problem. Thanks for the help, Sanni! I'm not sure if my suggestion earlier made sense or not, it was more of a "driving to work" thought than anything. Maybe it makes sense or is too complicated.
from cartreader.
Related Issues (20)
- SNES: can't fully dump Retro-Bit/JNNEX multi-rom repros HOT 6
- Batman Forever (Sega Genesis) not dumping padding correctly HOT 6
- Arcadia dumping incorrectly HOT 4
- setupCFI not declared in this scope HOT 2
- Can't find #define in Cart_Reader.ino HOT 3
- Updating HW3-Alter results in black screen
- N64 saves HOT 4
- N64 Carts show "Gamepak Error" when trying to read HOT 6
- purpose of snes.ino "boolean altconf"? HOT 2
- "Sketch too big" with all modules enabled HOT 8
- Unable to flash SF NP Memory casettes in 13.4 HOT 2
- 13.5 ignores LCD color in config.txt HOT 1
- U1 is missing on the Schematic HOT 6
- Option Menu for FLASHING SUPER CIC HOT 1
- Progress bar when erasing Flashrom HOT 3
- All Configurations via Menu HOT 1
- Support for Evercade HOT 7
- genesis batman forever and turrican cannot be dumped properly HOT 23
- 26L6420 flashing settings HOT 14
- Can't flash Chinese repros HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cartreader.