Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Vmunix: Difference between revisions

From San Francisco Rush Wiki
Created page with "<code>vmunix</code> is the name of the executable file that holds the bulk of the game code on most of the Atari/Midway HDD based games. Normally found in the <code>CODE</code> folder, Rush 2049 and its variants load this file into memory after the filesystem has been mounted, and execution jumps over to it starting with the the controls calibration screen. The normal test menu is also present in this file, while the boot ROM hosts the <code>QA DIAGS</code> menu that can..."
(No difference)

Revision as of 04:58, 15 July 2025

vmunix is the name of the executable file that holds the bulk of the game code on most of the Atari/Midway HDD based games. Normally found in the CODE folder, Rush 2049 and its variants load this file into memory after the filesystem has been mounted, and execution jumps over to it starting with the the controls calibration screen. The normal test menu is also present in this file, while the boot ROM hosts the QA DIAGS menu that can be accessed even if the HDD is not present.

Using these patches assumes you know how to use a hex editor and how to extract CODE/vmunix from the HDD or how to find the file on the drive directly.
Improper patching will result in glitches or game crashes, and linked machines with mismatched patches will result in race desyncing.

2049SE vmunix hacks
Disable game ID check at boot (no IOASIC PROBLEM mismatch error) 0x4906A: 0x40 → 0x00 (BEQ $v0, $0, $80048FFC → B $80048FFC)
Fix mixed up dip switch definition for VGA/Medium Resolution in DIP SWITCH TEST 0x133614: 0x6C → 0x48
0x133618: 0x48 → 0x6C
Fix mixed up dip switch definition for diagnostics types in DIP SWITCH TEST 0x133660: 0xF8 → 0xDC
0x133664: 0xDC → 0xF8
Disable autolink between machines (will cause reverse button tire squeal to play until cursor is moved once) 0x71C57: 0x10 → 0x14 (BEQ $v0, $0, $80071BFC → BNE $v0, $0, $80071BFC)
Disable tire squeal when pressing reverse on track selection 0x71C68: 0x64F0010C → 0x00000000 (JAL $8007C190 → NOP)
0x71C6C: 0x04080424 → 0x00000000 (ADDIU $a0,$0,$804 → NOP)
Disable linked timer continual reset when waiting on a player, even if that player chose a different track 0x71598: 0xFCCC010C → 0x00000000 (JAL $800733F0 → NOP)
0x7159C: 0x2D200000 → 0x00000000 (DADDU $a0,$0,$0 → NOP)
0x715A0: 0x42CD010C → 0x00000000 (JAL $80073508 → NOP)
0x715A4: 0x10270424 → 0x00000000 (ADDIU $a0,$0,$2710 → NOP)

0x71660: 0xFCCC010C → 0x00000000 (JAL $800733F0 → NOP)
0x71664: 0x2D200000 → 0x00000000 (DADDU $a0,$0,$0 → NOP)
0x71668: 0x42CD010C → 0x00000000 (JAL $80073508 → NOP)
0x7166C: 0x10270424 → 0x00000000 (ADDIU $a0,$0,$2710 → NOP)
Force enable debug switch in dlevels (Gives 700 second timer) 0x38248: 0x02004230 → 0x00000000 (ANDI $v0,$v0,$0002 → NOP)
Disable auto abort from sitting still for too long 0x6F638: 0x08 → 0x98 (ADDIU $v0,$0,$8 → ADDIU $v0,$0,$98)
0x6F64A: 0x4050 → 0x4304 (BEQL $v0,$0,$8006F728 → BGEZL $v0,$8006F728)