hristoast/site/revisiting-n64-wresting-games-modern-gnulinux.html -rw-r--r-- 5.2 KiB View raw
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<h1 id="title">Revisiting classic N64 wresting games on a modern GNU/Linux</h1>

<div id="dates">
  <span>Posted: <time id="post-date">2017-03-02</time></span>
</div>

<p>
  N64 is nowhere near my favorite classic console, but I won't hesitate to agree that it is home to the best wresting video games ever made.  As it turns out, these games (particularly the Asmik ones) are <span class="bold">still</span> fun!  In this entry I'm going to talk about how I've been playing <a href="https://en.wikipedia.org/wiki/WWF_No_Mercy">WWF No Mercy</a> on Void Linux.  Although you (likely) won't be able to enjoy any of the many <a href="https://www.youtube.com/watch?v=HU_qlZh1mKI">No Mercy mods</a> that are out there, you can enjoy the very fun vanilla game with some modern enhancements like HD resolutions.  Wooooooo!
</p>

<div id="toc"></div>

<h3>The Game</h3>

<p>
  I do not endorse violating copyright laws, nor do I encourage usage of illegal ROMs.  But, if you own the N64 cart (I do) and are able to dump the ROM (I have, and am not covering this here), then get ready to enter the 64-bit squared circle!
</p>

<h3>The Nintendo 64</h3>

<p>
  The Nintendo 64 console shouldn't be too hard to find, nor should be it too expensive (or in too bad of shape..)  Controllers, on the other hand, are a different story.  Granted I've not looked too terribly hard, but the three N64 controllers I have suffer from a few issues that make then difficult to use: huge analog stick dead-zones, broken buttons, and even just not working.  I think I'm not alone in saying the controller is not the best design; that is they don't seem to stand the test of time given heavy usage, particularly the analog stick.  Thankfully, amazing folks out there have created/are creating emulators!
</p>

<h3>Mupen64Plus</h3>

<p>
  Enter <a href="http://mupen64plus.org/">Mupen64Plus</a>, my preferred way to enjoy classic N64 games!  Most distributions should have a package for it, on Void Linux you can install like this:
</p>

<pre><code># xbps-install mupen64plus</code></pre>

<p>
  This installs the <code>mupen64plus</code> binary as well as the necessary plugins required to run a game.
</p>

<h3>The Plugins</h3>

<p>
  This is where it can get tricky;  there are two (more actually, but we're working with two today) video plugins I work with, and some games work better with one while some the other.  For WWF No Mercy (and most likely the other Asmik wrestling games as well) the "rice" video plugin seemed to work the best.
</p>

<h3>Configuration</h3>

<p>
  You shouldn't need to touch the config file (which should be at <code>$HOME/.config/mupen64plus/mupen64plus.cfg</code>) except to set your controller mappings - but before you do that, make sure that your controller configuration mode (under the <code>[Input-SDL-Control1]</code> section) is zero, like this:
</p>

<pre><code>[Input-SDL-Control1]
... 
mode = 0
...</code></pre>

<p>
  Your button mappings may vary depending on the controller you use; below are the button mappings I'm using for the <a href="http://www.8bitdo.com/n64/">8bitdo N64 Bluetooth Gamepad</a>:
</p>

<pre><code>DPad R = "hat(0 Right)"
DPad L = "hat(0 Left)"
DPad D = "hat(0 Down)"
DPad U = "hat(0 Up)"
Start = "button(11)"
Z Trig = "button(10)"
B Button = "button(1)"
A Button = "button(0)"
C Button R = "button(9)"
C Button L = "button(4)"
C Button D = "button(3)"
C Button U = "button(8)"
R Trig = "button(7)"
L Trig = "button(6)"
Mempak switch = ""
Rumblepak switch = ""
X Axis = "axis(0-,0+)"
Y Axis = "axis(1-,1+)"</code></pre>

<p>
  There is <a href="http://m64py.sourceforge.net/">a GUI</a> for this, but I couldn't get it to work.  Instead, I used <code>jstest</code> to get the button IDs of the controller, and edited the values in manually.  It ended up being way less work than trying to mess with the GUI.
</p>

<h3>Controllers</h3>

<p>
  You don't have to use a replica of the N64 controller, but in my opinion it helps a lot.  Aside from most controllers (xbox, playstation) just mapping awkwardly to N64 games, the games themselves were designed to be played with that awful "claw" controller.  Consider that it could enhance your experience significantly -- especially for the WWF games.
</p>

<h3>Ready to rumble</h3>

<p>
  You should now be able to play, but the command line invocation is a bit long:
</p>

<pre><code>$ mupen64plus --fullscreen --resolution 1920x1080 --gfx /usr/lib/mupen64plus/mupen64plus-video-rice.so  --audio /usr/lib/mupen64plus/mupen64plus-audio-sdl.so --input /usr/lib/mupen64plus/mupen64plus-input-sdl.so --rsp /usr/lib/mupen64plus/mupen64plus-rsp-hle.so --emumode 2 ROM.n64</code></pre>

<p>
  I personally wrote a small wrapper script called <code>nintendo64</code> that I can call, rather than that long command line.  And if I need to change video plugins I can just make a quick edit to that script.  No big deal.
</p>

<h3>Conclusion and final thoughts</h3>

<p>
  Often times, it seems like with older video games they aren't as good as we remember them.  Well, other people say that; I don't usually find that to be the case.  And I think this is doubly true in the case of the Asmik WWF games for the N64.
</p>

<p>
  It amazes me to see others caring about these games at all, let along creating breathtaking mods for them.  Yes, now is the best time for one to enjoy WWF No Mercy!!
</p>