ROM Hack Need help with NDS CRC fix.

AikoT_T

Well-Known Member
OP
Newcomer
Joined
May 2, 2019
Messages
61
Trophies
0
Age
26
XP
85
Country
United States
Ok,

There is a translation out for Irodzuki Tingle no Koi no Balloon Trip A.K.A. Ripened Tingle's Balloon Trip of Love for the NDS.

here is the rom/iso info for the patch (the patch is made to work with the good dump.)

  • Length: 134217728 Bytes (1 Gbit) (Good Dump)
  • CRC32: C7A78A3E
  • -
  • 4089 Irodzuki Tingle no Koi no Balloon Trip (JP).nds (bad dump)
  • Length: 134217728 Bytes (1 Gbit)
  • CRC32: 5CF26E2F
  • MD5: 15F48793 09A7848D 188D09D0 3631F7CA
  • SHA1: EA4F7489 F429FC0D D2E67E28 5853B6D1 B76A5C4C

Ok, so this translation requires that you use a rom with the CRC32 hash of C7A78A3E which is that of a good dump.

But the only rom floating around the internet is the bad dump with a CRC32 hash of 5CF26E2F

The guy who uploaded the patch included an xdelta patch that fixes the crc32 from bad to good.

So, you are supposed to take the CRCfix.xdelta, apply it to the bad dump, then apply the english translation.

BUT

I want to play this on my 3DS. and even the author states that if you want to play it on a ds/3ds that i would need a compatible flashcart, well....

This game requires an AP patch, (dragging it onto DS-Scene ROM Tool)
there lies the problem. which i know can be fixed.

IF i apply the crcfix.xdelta first, DS-Scene Rom Tool won't let me apply the AP patch,
If i apply the AP patch first, i cant apply the crcfix.xdelta patch.

So,

Is there a way to edit this CRCfix xdelta patch to be able to accept a different crc32 when using it?


or


Here's what i want to do,

1. Apply the AP patch with DS-Scene ROM Tool to the bad dump (DS-Scene ROM Tool apparently doesn't recognize a crc from a good dump T_T )

2. Then change its crc32 back to that of the bad dump or good dump (probably the latter)
.

and that's it,

Then i can apply the english patch.


what part of the extracted .nds has the crc info? and at what offset is it so i can replace it with the "good" crc32?

Or, how do i use this program below? (laymens terms please :) )

This is the post i read, and may have my answer,

That CRC should be stored in bytes 2 and 3 (albeit swapped around) of the banner.bin (or if you do not want to extract/insert it then at the point that 68 hex in the header points at. I suspect those behind AKAIO just did a bit of defensive coding to stop crashes caused but wannabe hackers "signing" their work and messing things up in the process as has happened before.

http://nocash.emubase.de/gbatek.htm#dscartridgeicontitle has more on this.

The crc16 is not the standard crc16 you might get elsewhere but it is the one the DS uses a lot for saves and the like. Here are my options (hex workshop) to generate it if you can not find another.
crc16.JPG


In this case you start at 20h in the banner.bin file (probably where all the 00s finish) to the end of the file (83f hex).

That should bring your banner.bin back into the fold and with it sort your problem.


Any help would be greatly appreciated and i can provide screenshots or info if needed.

Thanks guys !! :)


Edit, this is what ds scene rom tool say for the ap patch

0069280F: 0C → 37

Can i just open the english translated game in a hex editor then insert this?
 
Last edited by AikoT_T,

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
The CRC there was dealing with a custom method that some saves use. No relation to anything here.

"But the only rom floating around the internet is the bad dump with a CRC32 hash of 5CF26E2F"
While I can't speak to that then looking at http://www.advanscene.com/html/Releases/dbdswrel.php?id=4187 (C7A78A3E , newer redump) and http://www.advanscene.com/html/Releases/dbrelds.php?id=4187 (5CF26E2F, initial scene dump)
In that case it is probably the pointless redump thing again -- when the DSi dropped all old games were put on a whitelist of known good games and all new ones had to be signed. The area used for the signature was a previously unused area of the header that older dumping tools did not care about and just zero filled. https://hackmii.com/2010/02/lawsuit-coming-in-3-2-1/ has more on things here. At one point some people got it into their heads to redump all the later releases here despite it being of no use to any current or future flash cart user, flash cart dev, emulator, emulator author, ROM hacker, historian of ROMs... unless artificially made to do so. Also why nobody really spreads the newer stuff around.

It does however mean we have some options here as it is not like it is a hack made for the v1.0 and ROM mainly available is the v1.1 scenario.

First thing I would try is forcing the input verification off on the translation patch. You might need to download the command line version of the tool and run that
http://xdelta.org/ (should be the -n command) . https://www.romhacking.net/utilities/928/ should have it if builds are not there on the xdelta site/source code place.
https://www.evanjones.ca/software/xdelta-win32.html for the older version of the xdelta software (probably not used here but in case a person searching the forum finds in the future I will include it).

Depending upon what was done in the game and what compression was involved it might break the game. If that is the case then we get to play a bit harder. You might get lucky forcing the ROM between the "versions" using a patch or regenerating the patch after having made it work.

Anti piracy on the DS is usually a simple matter as far as resulting changes and should not conflict with translation patches at the highest levels (combining two ROM hacks that want to use the same "free space" or deal with the same concepts is where it gets tricky -- anti piracy on the DS at least is usually a matter of finding the check and stopping it from happening and forcing the "yeah it is all good" outcome regardless, something which should be able to be done in place and not need extra space).

I have to go do some stuff but I did have a related discussion https://gbatemp.net/threads/ap-patch-preservation.477536/page-4#post-8498778 a little while back. The short version there is if the translated ROM only deals with altered files and the anti piracy only cares about the binaries then you should be able to make a version of each, split them into their respective files, merge the relevant changed files from each together into one new ROM and go from there.
If the binary/binaries (and overlays) are changed for both then you have to figure out a way to merge the changes, and possibly deal with compression (which is easy enough with something like https://www.romhacking.net/utilities/826/ , remember the DS binary compression, one called BLZ, is different to most normal compression used on the DS but the tools there will handle it if you use the right one), but again as DS anti piracy defeating should happen in place then that becomes easy enough.

Alternatively (and amusingly in this case I was speaking to the author of the translation in question here) you might be able to port out the anti piracy fix and apply it to the translated ROM in one way or another -- while the binary might be compressed then in RAM it is unlikely to be and thus you can figure out what goes here and make cheats to patch it in easily enough.
https://gbatemp.net/threads/zelda-s...d-patch-at-the-same-time.536974/#post-8608761
 

AikoT_T

Well-Known Member
OP
Newcomer
Joined
May 2, 2019
Messages
61
Trophies
0
Age
26
XP
85
Country
United States

Ok, this is the info i needed.

I guess i could of done a little more research, i didn't know about the history of the nds redumps,
It's good to have someones perspective instead of robotic answers sometimes :)

Now the next part, (and a little embarrassing if i may add)

I got sick of trying to figure it out, so i applied the crcfix xdelta patch, then applied the translation patch, then put it on my sd card, because, yolo. **cringe**

And it works fine without an ap patch, so all this hustle and bustle was for nothing T_T

I'm guessing something in the crc patch or the translation patch has code for patching AP, or simply overwrote it, but i dont think either of the 2 patches take up the same space as the ap check,
i may be wrong. ( usually am XD )

BUT,

I am going through that site that hosts hack and translation patches and this might come in handy later, (thank you)
(I'm doing all 1500+ translation patches)

Here is a question i dont know the answer to though.

Chinese bootlegs.

So there are translations for some chinese bootleg nes games, like tomb raider, or pokemon diamond, or zelda.

I was able to apply the the patches, i believe the crcs matched, but they wont play, at least on fceumm(spelling)
virtuanes, and one other emu i have on my 3ds.

Is there a trick to these bootleg games to work on emus? example:

  • Gu Mu Li Ying (NJ066) (Ch).nes
  • File SHA-1: A4994922E69139B21DD69FF931E86C291F5AF04C
  • ROM SHA-1: 1ECD8A6950B2A4343277C6BC005937FAB5024AAF
or

The Legend of Zelda: San Shen Zhi Li
  • Country: China
  • Rom File: Zelda (ES-1096)(Ch)[!].nes
  • ROM/File SHA-1: 6E07687F9E45A4E79D5E95A34537C76F2485AF11

I had to go to waixing's site via "thewaybackmachine" as geocities.jp just shut down in march :/
And obtaining these ROMs by normal means resulted in mismatched sha-1 hashes
I'm not sure how these bootlegs are dumped, any tips?

Edit: rest assured your reply above wasn't in vain, this is useful info, and isnt really on any forums, at least on the surface,
(the thread i quoted you from was what, 10 years ago? kek )
 
Last edited by AikoT_T,

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
NES stuff is a different matter and I don't know full specifics of the Chinese "bootlegs"*.

*if they were released in the English speaking world then it would probably be called homebrew or a ROM hack depending upon what was done but if it comes from Chinese speaking places the bootlegs it is, probably a historical thing or a merging of terms (bootleg is more commonly associated with arcade games. That is getting off topic so I will leave it with linking this video).

For a general overview though. The base NES hardware is terrible. To expand it to support more memory, some extra hardware, in some cases types of saves and more good stuff that allows devs to do more then they use so called mappers. Emulators and flash carts in turn have to support these. The Chinese speaking homebrew/bootleg types often made their own mappers which not all devices support -- typically PC emulators will but flash carts and emulators for embedded devices (which would include the likes of the 3ds) have more limited options. This is why you might see a list of mappers supported in emulator readmes.

Even more fun is hackers have since taken to doing mapper conversion hacks for NES games (gains you more space, and access to extra hardware not present for the original game), though as these are mostly common known mapper to other common known mapper it is less of a problem here.

I don't know what the original Chinese homebrew/bootleg/ROM hacks used, what the translation crews might have converted it to and what the 3ds emulators might support.

To that end my money is split between mapper issues and you not feeding it the correct version of the initial ROM.
 

Ryccardo

Penguin accelerator
Member
Joined
Feb 13, 2015
Messages
7,690
Trophies
1
Age
28
Location
Imola
XP
6,911
Country
Italy
I'm not sure how these bootlegs are dumped, any tips?
To complete what FAST6191 said, remember the NES console can interact with the black magic object called game card only by selecting an address (which in the case of the NES gives different results depending on whether the CPU or GPU are given the same address) and (trying to) read or write to it - and the same is true for dumpers

Since (CPU side) the interface is limited to accessing (49120 = 65535 minus console's RAM and other interfaces like controller data) bytes, anything larger requires extra electronics in the card to shift (part of) this 49 kB window around (and sometimes do similiar things GPU side, or any other arbitrary processing) - the complete set of card's electronics (minus security chip, roms, and ram) is called the mapper, and each one is operated somewhat differently, so dumping correctly (and later playing) a game requires figuring out its logic first* - which, (surprisingly for a pirate game when most licensed ones don't), may in fact have some obfuscation logic in the form of non-obvious conversions being applied to the data in ROM

* the GBA did not use mappers for the most part - but it did in some cases, and the official blog of the mGBA emulator has a nice case report of how to figure out an unknown mapper
 
  • Like
Reactions: AikoT_T

AikoT_T

Well-Known Member
OP
Newcomer
Joined
May 2, 2019
Messages
61
Trophies
0
Age
26
XP
85
Country
United States
EDIT:
I don't know what the original Chinese homebrew/bootleg/ROM hacks used, what the translation crews might have converted it to and what the 3ds emulators might support.

To that end my money is split between mapper issues and you not feeding it the correct version of the initial ROM.

Edit: you were right.
It turns out that the set 'GoodNES [v3.23b]' has all of these Chinese bootlegs. and everything plays now.

Well, at least this thread might help others who come across it :)

=============

in some cases types of saves and more good stuff that allows devs to do more then they use so called mappers. Emulators and flash carts in turn have to support these.

This is why you might see a list of mappers supported in emulator readmes.

i will educate myself more on mappers.
I know the Famicom Disk System uses MMC1 mappers.

The Chinese speaking homebrew/bootleg types often made their own mappers which not all devices support

Yeah... the good ol chinese gaming community... T_T
I've ran into their horrible 3DS dumps, its impossible to get a clean dump from them
(some games can only be found at baidu, but they NEVER dump their games correctly, so we can't get the titlekeys. T_T )


Even more fun is.....
Useful.

I don't know what the original Chinese homebrew/bootleg/ROM hacks used, what the translation crews might have converted it to and what the 3ds emulators might support.
To that end my money is split between mapper issues and you not feeding it the correct version of the initial ROM.

Probably the latter. I'm not sure, I will recheck. EDIT: solved this problem above in first quote)
(it's sad i can build 3ds rom hacks, and edit firmware req. and region in hex, but i cant figure out an 8-bit ROM... T_T )



Thank you for sharing this info.

The part where you said "first, figure out its logic" made this a little more clear, along with all the info about mappers.

Thank you so much for helping me figure this out, i really appreciate you guys.

You guys remember what it was like when you were a caveman and you first learned how to grunt to communicate rather than throw your shit at others yeah?
:toot:
 
Last edited by AikoT_T,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Veho @ Veho: Cool.