Warn­ing! Your devicePixelRatio is not 1 and you have JavaScript dis­abled! (Or if this mes­sage is not in a red box, your brows­er doesn't even sup­port ba­sic CSS and you can prob­a­bly safe­ly ig­nore this warn­ing. You'll en­counter way more sub­op­ti­mal things in that case...) Since HTML is as brain­dead as it can get, pix­el graph­ics might look off with­out javashit workarounds. Try to get a non-HiDPI screen or en­able javashit for best re­sults.

Need for Speed 4: High Stakes (PlayStation)

Cre­at­ed: 1756774243 (2025-09-02T00:50:43Z), 4468 words, ~19 min­utes

Tags: , , , ,

This post is part of se­ries nfs: 1, 2, 3:HP (W, PS), 4:HS (, PS, ), 5:PU (W, PS), MCO, 6:HP2

Boxart frontJXL (JPEG JXL) (343.5 KiB) JPEG (392.4 KiB)Boxart backJXL (JPEG JXL) (543.8 KiB) JPEG (613.1 KiB)

(Source)

To (prob­a­bly) no­body's sur­prise, af­ter NFS3 I de­cid­ed to try NFS4 on PlayStation too. Un­like 3, there are big­ger changes com­pared to the Win­dows ver­sion here, in­clud­ing a com­plete­ly dif­fer­ent ca­reer mode, and way less con­tent. But first, the in­tro as usu­al.

Un­like with NFS3, here the in­tro video is al­most ex­act­ly the same as the Win­dows ver­sion, no dif­fer­ent EA lo­go this time. How­ev­er, it has a Dol­by Sur­round©®℗🄯™℠¤$€§‰¶〒🚽⚠⚄⅋ⓗ⾞⛂e̸͍̫̘̖͉̳͖͐́ť̷̙͕̲̙̺̘̭͖͊̌c̵̣̠͌͆͒̅͋̉̿͗͒̇͒̕̕͘. lo­go, and it's dif­fer­ent from NFS3's lo­go! It al­so has the po­lice chop­per which I didn't meet in this game, but I can't say I know all the ins and outs of the pur­suit mode of this in­stall­ment. And that's all about the in­tro.

Technicalities#

Af­ter NFS3 PS ar­ti­cle, I'm go­ing to start with tech­ni­cal shit again, be­cause it's a mess. But be­fore I can even dig in­to it, how to get the game? I saw Need for Speed: High Stakes (Com­plete Edi­tion) post­ed on the (back at Christ­mas half-dead) CDRomance site. One of the few (maybe on­ly) mod for con­sole NFSs! It com­bines cars from var­i­ous re­gion­al re­leas­es, some new tour­na­ments, and a bunch of small mod­i­fi­ca­tions/fix­es. I could no longer down­load it, but I could still down­load the orig­i­nal game, and the patch from NFSMods. It comes with some wang­blows on­ly patch­er exe, which I didn't even try to run it as ap­pears to be a stan­dard xdelta3 patch. So get xdelta3 in­stalled on your com­put­er some­how (on Gen­too, it's dev-util/xdelta:3), un­pack both the orig­i­nal game and patch it:

xdelta3 -d -s $ORIGINAL_BIN $XDELTA_FILE $OUTPUT_BIN

For ex­am­ple, in my case it was:

xdelta3 -d -s Need\ for\ Speed\ -\ High\ Stakes\ \(USA\).bin nfshs_ce_v2a/nfshs_ce_v2a.xdelta nfshs_ce_v2a.bin

Please note the patch on­ly patch­es the .bin file, not the .cue. Don't try to use the orig­i­nal .cue, the file size is dif­fer­ent, but for­tu­nate­ly DuckStation can open the .bin file di­rect­ly. If you can't trust your­self, sim­ply delete the .cue file (and the orig­i­nal .bin too, if you don't in­tend to ever play it).

About DuckStation, I'll re­fer to what I wrote in the NFS3 post, I used al­most the same set­up. I've de­creased over­clock­ing, this game looks more op­ti­mized, and with 400% the menu an­i­ma­tions look way too fast. Some­thing like 250–300% works.

Then on­to the bad news. I went to the set­tings, and I no­ticed there isn't an op­tion for rear view mir­ror. Eeeh?! Why!? Se­ri­ous­ly... is this GTA or what!? Then I went to the con­troller set­tings. I could choose be­tween pre­set A, B and C. NFS1, 2 and 3 on PS had cus­tom bind­ings, 4 not. You have to choose one of the lay­outs de­signed by brain­lets and live by them. Ex­cept, of course, this is an em­u­la­tor, I remap the but­tons how­ev­er I want.

So I se­lect­ed pre­set B, the on­ly one with an ana­log brake/ac­cel­er­ate in­put, then I remapped them on­to a more fa­mil­iar lay­out in DuckStation... but then I couldn't use the menus, aargh! But let's see, DuckStation has in­put pre­sets, so I made two pre­set, one for the menu, one for the race, looks per­fect, let's find the short­cut to switch be­tween pre­sets... There's no. Huh? Re­al­ly no? What's the fuck­ing point of fuck­ing pre­sets then if you can't switch be­tween them!? Ap­par­ent­ly, if you put your game in­to a li­brary (what­ev­er it means, I just want to run duckstation bin_file, leave me alone with that stu­pid GUI deigned for peo­ple with room tem­per­a­ture IQ), you can set pre­sets on a per-game ba­sis. Well, cool, the way I use DuckStation, every­thing is per game...

So a few ta­ble flips lat­er, I went back to my in­putor (mir­ror), which I orig­i­nal­ly wrote to fix the stu­pid­ness of Wine and NFS6, to fix this crap. Since it has a Tur­ing com­plete con­fig­u­ra­tion for­mat (an eu­phemism for not hav­ing a con­fig­u­ra­tion for­mat at all, you just have to write a Lua pro­gram), I wrote a lit­tle script which can change be­tween two pre­sets, and do­ing some crazy re­bind­ings (like map­ping the two sep­a­rate trig­ger ax­es to a sin­gle Y ax­is). To change be­tween pre­sets, just press the PS but­ton, I al­so added some very rudi­men­ta­ry sup­port to change the DualShock's led col­or based on the pre­set. But of course do­ing this is not enough, in­putor grabs the evdev de­vice, but ap­par­ent­ly SDL likes to talk to the HID de­vice di­rect­ly (and poor­ly), so you'll need some­thing like

export SDL_GAMECONTROLLER_IGNORE_DEVICES=0x054c/0x09cc

if you have a DualShock 4. Tweak as nec­es­sary if you have a dif­fer­ent con­troller. Why do I have to write at least one script, tool, hack, or workaround every time I want to play a fuck­ing game!? I don't know how peo­ple who can't code func­tion these days.

Any­way, I al­so set up DuckStation to tog­gle widescreen hack on PS but­ton, so I can have menus in 4:3, and races in widescreen, in an al­most per­fect har­mo­ny. Ex­cept when it de­syn­chro­nizes, so I al­so changed the script to be able to press the PS but­ton with­out trig­ger­ing a pre­set switch (hold right stick to the right, an in­put I've not used).

The doom of career mode#

So af­ter the tech­ni­cal­i­ties, let's look at the game, which is noth­ing like the Win­dows ver­sion. There you had a sep­a­rate ca­reer and ar­cade mode, the on­ly con­nec­tion be­tween them was you could un­lock some items in ar­cade mode by fin­ish­ing ca­reer events. Here, you can't even start a nor­mal ar­cade race with­out do­ing some ca­reer shit. You se­lect Sin­gle Race, se­lect num­ber of op­po­nents, se­lect track, se­lect car... no, you can't ac­tu­al­ly se­lect your car. You can on­ly se­lect cars in your garage, which is emp­ty when you start. All you can do is go to car deal­er, and from the 20000 un­spec­i­fied units of mon­ey you have, you can buy a Mer­cedes SLK 230 or a BMW Z3 Road­ster 2.8, which both cost ex­act­ly 20000. Every­thing else is more ex­pen­sive, and you don't earn mon­ey from sin­gle races, you need to do the ca­reer events. So let's check the race types, as they're quite dif­fer­ent from the Win­dows ver­sion:

Car0JXL (140.7 KiB) PNG (198.3 KiB)Car1JXL (49.89 KiB) PNG (72.66 KiB)Car2JXL (119.2 KiB) PNG (169.4 KiB)

So ca­reer play. Af­ter you bought your first car, you'll have 0 mon­ey on your ac­count, and the on­ly way to make mon­ey at this point is to com­plete the first Tour­na­ment (you can't start lat­er tour­na­ments as you don't have the re­quired car, and spe­cial events need mon­ey to en­ter). Like the Win­dows ver­sion, you have dam­age (even though the dam­age mod­el is even more, how to put it, sim­plis­tic), and in ca­reer events you have to pay for re­pairs. The big dif­fer­ence is here you don't get a menu where you can se­lect what you want to re­pair, re­pair costs are au­to­mat­i­cal­ly de­duct­ed from the mon­ey you earn. I have no idea what hap­pens if you go neg­a­tive, but at least here you get some mon­ey af­ter each race (like in NFS5), not just when com­plet­ing the event, and if you're not too bad, these per race earn­ings will be usu­al­ly enough to pay for re­pairs. Fur­ther­more, if you fin­ish a race with­out any need for a re­pair, you get a safe dri­ving bonus. Un­for­tu­nate­ly, it's stricter than NFS5's "don't scratch the car" chal­lenges, and like in the Win­dows ver­sion of NFS4, bumps still dam­age your car, so don't ex­pect to get this bonus too of­ten. The rest is more-or-less the same as on Win­dows, af­ter each race you earn some points, then at the end of event, place­ments are de­ter­mined by the points. Win­ning events can un­lock oth­er events, tracks or cars. But com­pared to the Win­dows ver­sion, this whole thing felt much short­er. In the Win­dows ver­sion you have 11 tiers with 2+3+4+1+5+4+1+5+5+1+1=32 cir­cuits al­to­geth­er (don't ask me to al­so sum up the tracks you have to race). In the orig­i­nal PlayStation ver­sion, you have 6 tour­na­ments and 6 spe­cial events, but the patch adds 4 more spe­cial events—still on­ly 16 events, half of the Win­dows ver­sion. But con­sid­er­ing the Win­dows ver­sion was pret­ty bor­ing to­ward the end, this is not nec­es­sar­i­ly a prob­lem. Oh, and the best part: no hy­per an­noy­ing High Stakes races! I mean, I get it, with­out au­to-save they lose their sub­stance, but un­less you're a huge masochist, you'll save scum any­way.

Career0JXL (95.32 KiB) PNG (155.9 KiB)Career1JXL (126.2 KiB) PNG (177.6 KiB)Career2JXL (55.90 KiB) PNG (92.05 KiB)Career3JXL (49.52 KiB) PNG (71.53 KiB)

Then tracks. Just like with NFS3, in the PSX ver­sion you have to un­lock more tracks than on Win­dows. But here's the bum­mer: you don't have the tracks from NFS3, on­ly have the new tracks from NFS4. And un­like the PS ver­sion of NFS3, no ex­clu­sive tracks ei­ther. So even though you have less ca­reer events, you'll still get bored rac­ing the same tracks again and again. Al­so, my pet peeve, track pre­sen­ta­tions, will be pret­ty short this time, as there are no track pre­sen­ta­tions here. Not even a slideshow like in NFS5.

Track0JXL (144.8 KiB) PNG (191.7 KiB)Track1JXL (51.69 KiB) PNG (88.64 KiB)

On­to the ac­tu­al game­play. First, here you on­ly have non-ro­tat­ing map. I per­son­al­ly pre­fer it to the ro­tat­ing one, but it's way too zoomed out—you see the whole track, so it's pret­ty use­less to check up­com­ing turns. For­tu­nate­ly I didn't need it af­ter com­plet­ing the PTSD-in­duc­ing Win­dows ca­reer mode... If you pause the race, up­on re­sum­ing the mu­sic restarts from the be­gin­ning. In the end I solved this prob­lem by mut­ing the game's mu­sic and play­ing some­thing else from the me­dia play­er. There's no dy­nam­ic mu­sic any­more, and I've heard the NFS4 sound­track enough times to not miss a thing. Plus this way the mu­sic doesn't mess with the Dol­by TMblahblah de­coder.

Car han­dling didn't seem as weird as in the PS ver­sion of NFS3, but maybe it's just Stock­holm syn­drome speak­ing from me. AI, es­pe­cial­ly traf­fic AI, is wild­ly dif­fer­ent. In­stead of they just go­ing round the track on a fixed path like if they were some slot cars, they re­act to you, they try to over­take the slow­er ve­hi­cles in front of them (and caus­ing an ac­ci­dent many cas­es). They're just way more chaot­ic, and al­so more fun, when their bull­shit doesn't cost your race.

Plus some words about tour­na­ments. First, if you skip a race, you don't re­ceive any re­ward, un­like the Win­dows ver­sion. So you bet­ter fin­ish all the races, no skip­ping over them. Sec­ond, when you fin­ish a tour­na­ment, since the game doesn't au­to save, you have to do it man­u­al­ly. For­tu­nate­ly the game help­ful­ly asks if you want to save the game, se­lect­ing yes brings you to the save menu, where it will take ages to scan your mem­o­ry card, and when done with it, it'll au­to­mat­i­cal­ly se­lect the con­tin­ue op­tion. Not the save. Con­tin­ue. You have to press down and cir­cle. If you spam cir­cle, it won't save. You have wade through the op­tions menu to go back to save again. (╯°□°)╯︵ ┻━┻

Fi­nal­ly some race footage af­ter I com­plet­ed the ca­reer mode. Se­lect­ing the penul­ti­mate tour­na­ment where you can race with 911, Di­a­blo SV or F50, then en­ter­ing with a Sky­line? On a track which is full of speedy straights? Rac­ing against ex­pert AI op­po­nents with up­grad­ed cars? What can go wrong? Ap­par­ent­ly, noth­ing, the Sky­line is a great car, even if not the fastest. And they on­ly in­clud­ed this car in the Japan­ese re­lease, EU/NA/Aus­tralia on­ly got garbage west­ern cars. Pa­thet­ic.

(Sound­track: Ec­to­plague - Pol­ter­geist Pan­de­mo­ni­um and Necro­mancer - Tyrant (feat.Ec­to­plague) from Dark­synth. Al­so sor­ry for the cut at the end of the video, I stopped record­ing be­fore I re­al­ized I want­ed to in­clude the post-race menu.)

Cheats#

I'll start with some pref­ace. There is a cham­pi­onship called GT Rac­ing Cham­pi­onship. To en­ter, you have to buy a car which costs 500k. The max­i­mum amount you can win at this point is 175k from In­ter­na­tion­al Su­per­car Se­ries. So I'll have to re­peat that shit 3 times? Come on! In­stead I made a copy of the mem­o­ry card, en­tered a spe­cial event and im­me­di­ate­ly can­celed it to lose some mon­ey, and made a save and com­pared the two in a hex ed­i­tor, and it found like 6 dif­fer­ences. I've fig­ured out what is ought to be the mon­ey from the changes, changed it, restart­ed the game... and it re­vert­ed to the de­fault set­tings. Huh? Go­ing to the save op­tions, it says save is cor­rupt. Per­fect. There must be some kind of check­sum on the save. Sigh.

Menu0JXL (106.0 KiB) PNG (159.4 KiB)Menu1JXL (119.7 KiB) PNG (168.3 KiB)Menu2JXL (85.31 KiB) PNG (145.5 KiB)Menu3JXL (55.53 KiB) PNG (94.65 KiB)Menu4JXL (58.02 KiB) PNG (97.79 KiB)Menu5JXL (59.43 KiB) PNG (91.24 KiB)Menu6JXL (41.06 KiB) PNG (74.93 KiB)Menu7JXL (51.96 KiB) PNG (94.62 KiB)Menu8JXL (84.63 KiB) PNG (121.7 KiB)

So an­oth­er at­tempt, there's an Infinite Cash In Account cheat, which gives you a lot of mon­ey. Not ac­tu­al­ly in­fi­nite, but prac­ti­cal­ly in­fi­nite. It must be pos­si­ble to some­how mod­i­fy it to give a san­er amount of mon­ey, right? This cheat cor­re­sponds to the GameShark code of 80115DA6 0FFF. Mean­ing­ful, right? Not? Aww, poor guy, I feel you. So I went search­ing, but find­ing how GameShark codes work on the in­ter­net can be a bit prob­lem­at­ic, as you'll usu­al­ly find hun­dreds of re­sults for cheats for ran­dom games, but not much about what the codes mean. One site I found is EnHacklopedia which have the list of codes, but a prob­a­bly more re­li­able way is to read the com­ments in DuckStation's cht­db.txt (warn­ing, 3.7 MiB file!). It'll tell you:

;* 80XXXXXX YYYY - 16-Bit Constant Write, Poke $80XXXXXX with 0xYYYY  **COMMON**

So this code is writ­ing 0x0fff or 4095 to some ran­dom mem­o­ry ad­dress. But I def­i­nite­ly got more than 4095 mon­ey en­abling this cheat. Turns out this on­ly writes the up­per 16 bits of a 32 bit num­ber (and PlayStation is big en­di­an!). So af­ter some cal­cu­lat­ing, I end­ed up with a mod­i­fied code of 80115DA6 0009, this will give you some­where be­tween 589,824 and 655,359 de­pend­ing on the low­er 16 bits. Enough to buy the car.

But, dur­ing this whole process, some­thing hap­pened. I im­port­ed the cheats from CE's zip file in­to DuckStation. When I looked through the cheat list, I found in­ter­est­ing items. Like, Increase Track Detail. Why didn't I know about this? Force Dashboard View. Huh, what? Looks like this game ac­tu­al­ly had a dash­board view, it's just not ex­posed on the UI. Try­ing it I can kin­da un­der­stand, the graph­ics qual­i­ty is ridicu­lous­ly low, you can't look back and it's bug­gy on mir­rored tracks... but still bet­ter than what the vanil­la game gives you. There's al­so a hood cam, sim­i­lar to what you have in Un­der­ground and lat­er edi­tions, but I didn't use that too much.

Race0JXL (1.054 MiB) PNG (1.739 MiB)Race1JXL (1.701 MiB) PNG (2.577 MiB)Race2JXL (1.237 MiB) PNG (2.247 MiB)Race3JXL (2.160 MiB) PNG (3.247 MiB)

Hot Pursuit#

Orig­i­nal­ly I didn't want to write much about this mode as I large­ly ig­nored this mode when play­ing NFS4, but then of course I went on months long hia­tus while writ­ing this post, so I need­ed some re­fresh­er on the game, so I tried this mode.

First you have to chose whether you want a so­lo race (so just against the po­lice), or a du­el where you have a rac­er op­po­nent, oth­er than the po­lice. Then you can se­lect a skill lev­el, from be­gin­ner, in­ter­me­di­ate and ex­pert. At first, learn­ing from PS NFS3, I chose the eas­i­est dif­fi­cul­ty, and it was still pret­ty hard. Maybe not as in bad as in NFS3, but it's still bull­shit, and you'll need a cou­ple races to some­what get used to it. But when I could more-or-less man­age my­self on the be­gin­ner on the eas­i­est track (Land­strasse), I tried the ex­pert. I was ex­pect­ing some Ra­bi-Ribi BEX Loop 10 0% items kind of in­san­i­ty, but nope. In fact, I didn't no­tice any dif­fer­ence. The same bull­shit be­fore and af­ter, the RNG is just way too in­sane for the dif­fi­cul­ty set­ting to have any vis­i­ble ef­fect.

Hon­est­ly, I'm not sure what to write about this mode. It's more or less the same as NFS3, if you slow down a tiny bit while a po­lice is near, they catch you, if you scratch the road­block, they catch you, and a lot of times get­ting caught the first time ends the race. The on­ly fun thing the PS ver­sion has is Lo­cal Po­lice in track set­tings, where rac­ing in a non-Eng­lish speak­ing coun­try (ap­par­ent­ly Eng­land and Scot­land are non-Eng­lish speak­ing coun­tries), the po­lice will speak in the lo­cal lan­guage in­stead of Eng­lish. Which, in prac­tice, means Ger­man on Land­strasse (shouldn't it be Land­straße?) and French on Route Adonf (which prob­a­bly should be Route À Donf, and I'm a bit sur­prised there's no ô in it...). And while Ger­man sounds way more badass, the track sucks, so here is me try­ing to race against the cops on Route Adonf.

(Sound­track: Re­vizia - Kar­ma and Thy Night'85 - Night Ma­neu­vers from Dark­synth)

One fun­ny fea­ture of the CE patch is al­low­ing you to race against the po­lice on the race tracks. Again, prob­a­bly a cut fea­ture, as I don't think oth­er­wise the game would have the AI paths need­ed for po­lice on these tracks (the why is a good ques­tion though).

In­stead, the more im­por­tant ad­di­tion is the be the cop mode from the Win­dows ver­sion. On­ly seems to avail­able in so­lo mode, where you can se­lect a cop car, and of course, it's al­so com­plete­ly dif­fer­ent. It's "cin­e­mat­ic"! Or in Eng­lish, long and use­less, un­skip­pable cutscenes all the way. Se­ri­ous­ly, with­out DuckStation's fast for­ward, I'd kill my­self be­fore com­plet­ing one race. When you start the race, you'll see a long cutscene about the po­lice spot­ting a speed­ing dri­ver, re­spond­ing to a re­port, or such. Then, de­pend­ing on the dif­fi­cul­ty, on be­gin­ner you have 4 min­utes, on in­ter­me­di­ate 3, and on ex­pert 2:30 min­utes to catch the dri­ver. If you run out of time, it's game over, oth­er­wise you suc­cess­ful­ly caught one rac­er, you get 45 sec­onds bonus and a new dri­ver to catch. And re­peat, in­clud­ing an­oth­er long ass cutscene. This time how­ev­er you on­ly get 40 bonus sec­onds for catch­ing him, then 35 and so on. Af­ter catch­ing the 10th dri­ver (when your bonus would de­crease to 0 sec­onds), the race ends, and I think this is the win­ning con­di­tion. Ac­cord­ing to the wi­ki, you can un­lock some po­lice cars like this, but I didn't both­er too much with this mode.

Here's a video of what this mode looks like. I've left the two first cutscenes in, the rest I sped through us­ing fast for­ward, and it's still over 8 min­utes. I'm play­ing on be­gin­ner dif­fi­cul­ty here, be­cause I couldn't be both­ered to record 10 races be­fore I get one where I don't fail. Be­cause here, un­like the nor­mal pur­suit, the dif­fi­cul­ty mat­ters. Not just be­cause you have less time, but the op­po­nent's dif­fi­cul­ties in­crease too. Here you can see many cas­es where I eas­i­ly over­take a rac­er (and some­times go a bit too far), in ex­pert dif­fi­cul­ty they all go flat out. Still, it is def­i­nite­ly doable, but it's pret­ty tight—botch up a sin­gle ar­rest, and you'll like­ly run out of time, even if not im­me­di­ate­ly.

(Sound­track: Bad­don - Mecha, Glitch Black - Left to Bleed and Rot, Oc­cams LASER - The night­shift and Vec­tor Sev­en - Tyger's Claw from Dark­synth)

As a side note, com­pare this video with night mode in NFS3. You can race dur­ing the night with­out cos­play­ing as a blind dri­ver! Woohoo! (Even though, it's more like sun­set than night...)

Al­so as­sists. As a cop you can ask for 3 kind of help: back up, road block, spike belt. Now in re­al­i­ty, ask­ing for the lat­ter two will evoke a re­sponse among the lines of "no avail­able units". Even the back up on­ly re­al­ly works on be­gin­ner dif­fi­cul­ty, on hard­er dif­fi­cul­ties you usu­al­ly get the same re­jec­tion. Now, at 5:27 in the video, you see a case of suc­cess­ful­ly man­ag­ing to re­quest a road block—I have no idea why did I press that but­ton, but here is it. I think the pur­pose here is to be on­ly able to ask for help af­ter the pur­suit went on for a while, but in this case you're al­ready dan­ger­ous­ly close to run­ning out of time: on be­gin­ner you have 7:45 to catch 10 dri­vers or 46 sec­onds on av­er­age, on ex­pert 6:15/37 sec­onds. If you have to wait a half minute to ac­ti­vate an as­sist, you're al­ready toast.

How wide can it get?#

(Sor­ry for the ty­po­graph­ic crime over there.)

In the mean­time, I got an ul­tra­w­ide mon­i­tor with 32:9 as­pect ra­tio (it's like two 16:9 mon­i­tors next to each oth­er, ex­cept no bezel be­tween the two) with a res­o­lu­tion of 5120x1440 (which I still have to look up in xrandr out­put every sin­gle fuck­ing time). How­ev­er, I'm on­ly go­ing to in­clude a few screen­shot here, no video, as

  1. My cur­rent set­up is un­able to record a video at this res­o­lu­tion with any mean­ing­ful FPS.
  2. You most like­ly don't have a mon­i­tor to watch this at it's na­tive res­o­lu­tion any­way.
  3. It's more like a bugfest than an ac­tu­al­ly work­ing so­lu­tion. It still didn't stop me to play through the whole game in this mode though.
  4. Even these screen­shots broke my pipeline.

Let's talk about the last point first. For screen­shots, in DuckStation con­fig I en­abled In­ter­nal Res­o­lu­tion screen­shots, which means my screen­shots came out as 13651x3840 gi­gan­tic im­ages. Nor­mal­ly I com­press PNG im­ages on this site with zopfli, us­ing 500 it­er­a­tions. I care­less­ly tried to do the same with these PNGs–I killed zopflipng af­ter 37 hours. Let's try with 1 it­er­a­tions first... 169 min­utes 52 sec­onds. Uh oh. 2 it­er­a­tions? 172 min­utes 33 sec­onds. So each every it­er­a­tions adds about 160 sec­onds... so with 15 it­er­a­tions it should be done in about 3.5 hours, right? Well, wrong. I made the above mea­sure­ment on my lap­top, us­ing a sin­gle thread on an oth­er­wise idle sys­tem, while I ran the re­al en­cod­ing on my desk­top com­put­er, in par­al­lel. So sin­gle thread­ed tur­bo boost no longer ap­plied, and it wasn't idle. The first im­age fin­ished af­ter 4 hours 35 min­utes. It was the one I used to make the pre­lim­i­nary mea­sure­ments, ap­par­ent­ly I man­aged to choose the im­age which is the fastest to en­code. The last im­age fin­ished af­ter 7 hours 25 min­utes. I hope you're fuck­ing grate­ful for the measly 10% re­duc­tion in file sizes this caused. (ノಠ益ಠ)ノ彡┻━┻

Then I al­so had a prob­lem was cjxl. I re­al­ized at the be­gin­ning that I prob­a­bly shouldn't use the glac­i­er pre­set, as it takes 1–1.5 hours to com­press a nor­mal full-HD im­age, so I went in­to libjxl's source, and re­duced the num­ber of tri­als a bit. Then I start­ed the process... and it ran out of mem­o­ry in 18 min­utes. I have 128 GiB RAM... Argh, let's try again with 16 threads... then it ran out of mem­o­ry af­ter an hour. 12 threads? OOM in 3.5 hours... At this point I re­moved even more tries, us­ing what looked like op­ti­mal pa­ra­me­ters for oth­er screen­shots here, to a mere 8 tri­als. I al­so fixed the fan­tas­tic fea­ture of cjxl where af­ter it finds the op­ti­mal pa­ra­me­ter to com­press the im­age, it re­com­press­es the im­age again. Be­cause ap­par­ent­ly us­ing more than 10 GiB of RAM for a sin­gle en­coder state is OK, but keep­ing a sin­gle 20 MiB com­pressed im­age in RAM is too much. It was al­ready an­noy­ing with full-HD im­ages, here it was un­bear­able where a sin­gle try takes hours. Any­way, with this set­up I was able to com­press each of the im­age in about 3.5 hours. And not par­al­leliz­able, since a sin­gle cjxl ate al­most my en­tire RAM.

The re­sults? But be care­ful be­fore click­ing on a thumb­nail, un­less your brows­er knows JXL im­ages (which is prob­a­bly on­ly Pale Moon at the time of writ­ing, as Mozil­la is too busy suck­ing Jew­gle's dick), you're click­ing on 17–22 MiB im­ages (JXL im­ages are on­ly 7–9 MiB)!

Wide0JXL (8.104 MiB) PNG (21.01 MiB)Wide1JXL (8.826 MiB) PNG (17.92 MiB)Wide2JXL (7.896 MiB) PNG (16.34 MiB)Wide3JXL (7.601 MiB) PNG (15.65 MiB)Wide4JXL (7.393 MiB) PNG (16.34 MiB)Wide5JXL (9.000 MiB) PNG (17.80 MiB)

The thing is, at 16:10, this game is pret­ty much still per­fect. Mov­ing ob­jects at the very side of the screen some­times dis­ap­pear, but un­less you're look­ing for it, it's bare­ly no­tice­able. At 16:9, you can see the track geom­e­try dis­in­te­grat­ing at the side of the screen at times. At 32:9, the left and right third of the screen is in a con­stant miss­ing geom­e­try state. It's so bad, it's good.

Oh and some ran­dom trail­ing rant. This new mon­i­tor can do more than 60 FPS, so I just tried to record with 60 FPS, but I got a lot of du­pli­cate frames. I looked at DuckStation's FPS counter, and saw it's still stuck at 59.81—59.82 FPS. Even with­out V-sync, on­ly speed­ing up em­u­la­tion seems to pro­duce more FPS (but en­abling it speeds up every­thing, so it's no good). Look­ing through DuckStation's source code, I re­al­ized PlayStation ran at ((44100 * 0x300 * 715909) / 451584) / (3413*263) FPS (or 53693175 / 897619 or about 59.8173), and DuckStation em­u­lates this. So then I tried to record at 53693175 / 897619 FPS (OBS GUI doesn't al­low you to spec­i­fy such a big nu­mer­a­tor, you have to ed­it the con­fig file), which came out as 19321 / 323 FPS in the MKV file (close enough I guess?), but the video is still not smooth. (┛◉Д◉) ┛彡┻━┻ Now nor­mal­ly DuckStation's frame graph looks sta­ble, but there are oc­ca­sion­al spikes, but I can't have both frame graph and record­ing with­out a frame graph, so I have no idea if it's just record­ing is over­load­ing the com­put­er or OBS is a piece of shit, but at this point I stopped car­ing. Al­so this is why the three videos in this ar­ti­cle were record­ed at three dif­fer­ent FPS val­ues...

Files#

FileDescriptionSize
fd808d-nfshs_ce_v2a.zipComplete edition patch6.288 MiB
Total6.288 MiB

This post is part of se­ries nfs: 1, 2, 3:HP (W, PS), 4:HS (, PS, ), 5:PU (W, PS), MCO, 6:HP2