View Full Version : Source code for v3 released!

Nintendo Maniac
January 2nd, 2012, 07:08
RetroRalph has finally gotten around to releasing the source. Apparently he wanted to upload it to an open source site, but he just hasn't had the time.

Source only - Direct link:

1964 UltraFast + source code:

Mirrors for v3 + source code:

January 2nd, 2012, 14:45
Yay :D

January 6th, 2012, 05:24
Thanks @RetroRalph for following through with the source release, I'm curious about this diff myself.

Nintendo Maniac
January 6th, 2012, 05:47
Thanks for following through with the source release, I'm curious about this diff myself.It wasn't me who released the source, I'm only reporting and re-posting it.

January 10th, 2012, 00:07
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.

January 10th, 2012, 06:36
http://code.google.com/p/emu-1964/source/detail?r=104 <-- that should show you all the changes retroralph made for the overclocking side of the changes he made.
Retroralph pretty much removed any usage of the counter factor, the ability to overclock kinda replaces it in a way.

January 11th, 2012, 01:37
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.

January 11th, 2012, 02:12
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.

January 12th, 2012, 01:20
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.