What's new

n64 tech help requested

n00by duddy

New member
hello,

basically I need to know how to calculate crc1 and crc2. What address ranges and how each boot code affects this calculation

I need it to finish a n64 header tool

regards
 

zilmar

Emulator Developer
Moderator
crc1 & 2 are straight from the header .. offeset 0x10 and 0x14 I believe.

how they are caculated are based off the cic chip and checked during booting if they are not correct the game does not boot.
 
OP
N

n00by duddy

New member
crc1 & 2 are straight from the header .. offeset 0x10 and 0x14 I believe.

how they are caculated are based off the cic chip and checked during booting if they are not correct the game does not boot.

Thank zilmar but I mean how to actualy perform the calculation for the crcs so that you can check them against the internal crcs
 

zilmar

Emulator Developer
Moderator
no idea .. you might check dextrose, they might have something. I have never had the need to check if they are not correct. Cause if they are not then the game will not boot.

When I have created test roms, there was a program that set it for cic-nus-1/2 values. For other cic chips then I would run them under emulations and see what it is saying the value should be, and change my code I created to have that value in the header.
 

MIO0

New member
There is source code for computing the checksums posted here as an attachment. You can study it to learn the algorithm.

I see that you want this info for a program you are making. Note that the souce code I linked to is under the GPL, so don't use the code in your program unless you are willing to relese your program under the GPL.
 

smcd

Active member
Actually, unless he modifies it he can simply provide the part that is under the GPL - there is no obligation to release his entire program. (disclaimer: I am not a lawyer but have read several discussions on the GPL)
 

MIO0

New member
Having GPL'd code, modified or not, anywhere in a program requires the program's author to release the entire program under the GPL, even if the GPL'd code is used as a library. The GPL was specificly designed not to allow authors of proprietary programs to take advantage of GPL'd code.

The LGPL, on the other hand, allows non LGPL'd programs to link to LGPL'd code, unless the LGPL'd code is intermixed with the rest of the program. It is for libraries that the author is willing to allow proprietary programs to use.
 

smcd

Active member
Ah.. hmm - if you use the gpl code and modify it into a dll (dynamic linking then) you could release the source of your modifications and keep the rest of the app proprietary I'd think, since the derivative work would be open source and your application would only be accessing it in a non-static way thus it isn't actually "included?"
 

smcd

Active member
Thanks for the clarifications. I'd browsed their site and several other forums and found conflicting answers.
 
OP
N

n00by duddy

New member
Thanks you very much.
I'm not using the code, just the algo, so it's ok I don't need to post my source code. The gameheader has been released btw.

See you!!
 
OP
N

n00by duddy

New member
The tool is programmed and mostly complete
It can check N64 roms header checksum against real checksum
You can use it to verify that your roms are good
Download it @ No-Intro Forums
 

Top