[Tinymux] Ontime bug in Win32 TinyMUX

Stephen Dennis brazilofmux at gmail.com
Tue Mar 7 11:50:26 EST 2006


I'll explain in detail in detail in a moment.

By moving the Win32 netmux.exe into the cygwin folder, you are just
using Cygwin shell to launch the Win32 executable, but otherwise, it
will do exactly what it did separate from Cygwin.

That your characters, text, and passwords didn't transfer indicates
that either it was using disk-based on one end and memory-based on the
other or you didn't unload to a flatfile.

I'm working through a time bug on the Win32 side on late-model AMD
processors with someone else. After awhile, on their game, they were
able to see time run backwards -- not just jump backwards, but
continuously tick backwards second-by-second. It has to do with
GetPerformanceCounter() and GetSystemTimeAsFileTime(). TinyMUX
develops a linear relationship between the two, and AMD processors as
well as some motherboards with certain South Bridges glitch
GetPerformanceCounter() which can flip or the linear realtionship. The
On For column shows 0:00 because the value is negative.

So, which processor are you using?

I'm working through the GetPerformanceCounter() issue, and at
worst-cast, would provide a configuration option that disables it's
use.

However, to transfer your database, remember that ./Startmux looks
muxconfig.vbs for the following:

    gamename = "netmux"

It then forms netmux.conf from this and passes this name to
TinyMUX.exe. Inside netmux.conf, the following lines are important:

    output_database    data/netmux.db.new
    game_dir_file         data/netmux.dir
    game_pag_file       data/netmux.pag

Attribute names, and object anchors are saved in netmux.db.new, and
all your textual information is stored in netmux.pag and netmux.dir.
You need to unload to a single, flat file before transfering the
database elsewhere. From within mux2.4/game/data, do the following:

    db_unload netmux netmux.db.new netmux.db.flat

The above command will combine the information from the above three
file into a single file, netmux.db.flat).

On the Cygwin side, what you do depends on whether you compiled the
game as memory-based or disk-based. By default, it builds itself as
disk-based, so with netmux.db.flat, do the following:

    ./db_load netmux netmux.db.flat netmux.db

That should create netmux.db, netmux.pag, and netmux.dir.

If you compiled the game as memory-based, then copy or rename
netmux.db.flat to netmux.db.

Only copy the database, config files, and text files between Win32 and
Cygwin. Please don't copy random parts from the Win32 side to the
Cygwin side. It will just create problems.


Brazil


More information about the Tinymux mailing list