What's new

Source code for v3 released!

weinerschnitzel

Surreal64 Nut
Thanks @RetroRalph for following through with the source release, I'm curious about this diff myself.
 
Last edited:

weinerschnitzel

Surreal64 Nut
I should have been more clear, oh well.

I notice that all counter factor settings are pushed back to 1. Wouldn't it be better to force a counter factor of 1 if and only if we are modifying DOUBLE_COUNT? Seems like it would be a better way to go to keep ini settings working.
 

weinerschnitzel

Surreal64 Nut
Right, I understand that counter factor is not needed any more. Though it may be deprecated, there are significant improvements with current counter factor tweaks. With the new overclocking feature, many if not all games with adjusted counter factors will have a less than optimal experience.

It is just as possible to maintain the same level of compatibility while allowing for an optional overclock. Saves an ini overhaul, too.
 

death--droid

Active member
Moderator
Counter Factor (CF)

1964 does not emulate the timing of the N64 to cycle-accuracy. For this reason, the CF is a hack which has been added to 1964 so that the user can customize the timing rate. The Counter Factor is so named because there is a register called COUNT which is constantly incremented as the Nintendo64 runs. This register is used by the operating system of a game to control cyclic events and thread switching. In a multithreaded operating system, the OS needs to know how much processing time to give to different threads, and the COUNT register is used to compute elapsed time. So, changing the behavior of the COUNT register via CFs will give you different results. For example, you will notice that as you increase the CF, video may be choppier because producing graphics (display lists) is given a lower thread priority than other running processes. The "factor" is a multiple which increases the Program Clock by a factor of n (1-8), specified by the user. The default is CF3, which is reasonable for most ROMs. If you have a very fast machine (above Pentium III 600 MHz), CF1 will be a more enjoyable experience with smoother frame rates for many ROMs.

While a few games such as WaveRace and Super Mario 64 work best at CF=2, most of the time you will want to use an odd CF value. In most cases, the ini file is configured for a reasonable experience.

While a game is running, you can alter the CF by pressing CTRL+#, where # is a value from 1 to 8. In the Status Bar you will see the CF indicator change. By design, this change will not be saved to the ini. If you wish to save a CF setting to the ini, you need to edit the CF for the game from the ROM Properties dialog.

Sooooo in short, the overclocking is pretty much a reimplementation of the counter-factor system but we are actually controlling the amount of cycles used instead. Implementing the ability to set the overclock as per say per rom instead of having one overall setting.
 

weinerschnitzel

Surreal64 Nut
Thanks for the explanation, deathdroid. I'll still go about my own implementation for the XBox port. Will chime back here if I have something to share in that regard.
 

Top