Massassi Forums Logo

This is the static archive of the Massassi Forums. The forums are closed indefinitely. Thanks for all the memories!

You can also download Super Old Archived Message Boards from when Massassi first started.

"View" counts are as of the day the forums were archived, and will no longer increase.

ForumsDiscussion Forum → Jedi Knight issues
12345678910111213
Jedi Knight issues
2019-07-20, 1:56 AM #401
[Unable to find specified attachment]

Star Wars: TODOA - formerly known as The Truth of the Destruction of Apocalopolis - available for download on ModDB.
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2019-07-20, 1:58 AM #402
Question: Does anyone remember if Battle of Toprawa II is supposed to have one or two endings? I've never been able to get any other ending than the bad one (where Kyle gets captured at the end), but looking at the COGs implies that a good ending was at least planned...
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2019-08-06, 12:10 PM #403
Anyone?
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2019-08-06, 1:19 PM #404
That's a negative, Big Poppa. Over and out.
2019-08-08, 3:57 AM #405
A MotS level without lots of colored lighting?
SnailIracing:n(500tpostshpereline)pants
-----------------------------@%
2019-08-08, 5:24 AM #406
I'm quite sure that MotS would have received zero colored lighting remarks if it had been named Unreal or Forsaken. Maybe even Quake 2.
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2019-08-08, 5:50 AM #407
(It would've also received comments like "what's with the Jedi in this sequel to Quake")
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2019-08-09, 6:41 AM #408
That said, I'm almost quite confident that I will die of a heart attack which will be caused by any of these:

1) Someone making an "oh no, MotS has colored lighting" remark
2) Someone referring to JO or JA solely as "Jedi Knight"
3) Someone failing at Latin and pronouncing Deus Ex as "do sex"
4) Something BSP related (say, a truck having the license plate BSP-444 driving over me or something)
5) gbk actually releasing a JK level project
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2019-09-07, 12:50 AM #409
I also like how Friend14's advice is "don't get rid of Windows 7" http://www.jkhub.net/forums/viewtopic.php?t=3535
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2019-09-07, 11:52 PM #410
Nice, JKGFX2019 seems to have reached 1k in downloads, even though the JkGfxMod activity has generally waned off (for instance, no one has filed new issues on Github since July). The JKNUP texture pack is also at a nice 1.5k.

Even MOTSGFX2019 has an impressive-for-MotS d/l count of 349.

WOW, YOU GUYS
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2019-09-08, 1:03 AM #411
Outstanding issues are all either fairly minor or major enough that I can’t commit to fixing them. It’s a pretty good sign that no others have been filed.
2019-11-14, 7:38 AM #412
I just got around to finally trying JkGfxMod, it's definitely working as I am seeing the HUD scale. However, I'm not getting any improvement in FPS. I'm getting just 27 FPS at 4k on a Radeon VII on Linux using steam+proton.

No CPU core is going above 30% so it's not being CPU limited.

I'm only using JkGfxMod for now, no textures or JKGFX2019 as I wanted to find the source of the issue. Here#'s my jkgm.json:

Code:
{
    "resolution": [ 3840, 2160 ],
    "fullscreen": true,
    "correct_game_aspect_ratio": false,
    "correct_menu_aspect_ratio": true,
    "hud_scale": 4.0,
    "max_anisotropy": 2.0,
    "antialiasing": {
        "type": "MSAA",
        "samples": 2
    },
    "enable_bloom": true,
    "enable_ssao": true,
    "enable_parallax": true,
    "enable_texture_filtering": true,
    "enable_posterized_lighting": false,
    "command": "jkoriginal.exe"
}
TheJkWhoSaysNiTheJkWhoSaysNiTheJkWhoSaysNiTheJkWho
SaysNiTheJkWhoSaysNiTheJkWhoSaysNiTheJkWhoSaysNiTh
eJkWhoSaysNiTheJkWhoSaysNiTheJkWhoSaysNiTheJkWhoSa
ysNiTheJkWhoSaysNiTheJkWhoSaysNiTheJkWhoSaysNiTheJ
k
WhoSaysNiTheJkWhoSaysNiTheJkWhoSaysNiTheJkWhoSays
N
iTheJkWhoSaysNiTheJkWhoSaysNiTheJkWhoSaysNiTheJkW
2019-11-14, 7:50 AM #413
What happens if you disable SSAO?

Edit: Other people have reported performance issues on AMD cards. Jkgfxmod has to use a more naive implementation of SSAO for a few technical reasons, so it's a lot tougher on bandwidth than what modern games do. I don't have an AMD card so I can't test, but there's a decent chance this SSAO is a bad case for AMD cards.
2019-11-14, 8:14 AM #414
Originally posted by Jon`C:
What happens if you disable SSAO?

Edit: Other people have reported performance issues on AMD cards. Jkgfxmod has to use a more naive implementation of SSAO for a few technical reasons, so it's a lot tougher on bandwidth than what modern games do. I don't have an AMD card so I can't test, but there's a decent chance this SSAO is a bad case for AMD cards.



Thanks for the suggestion, I tried disabling ssao and setting everything else to false, null for antialiasing, it is still limited to 28 FPS. I also forced my GPU into high performance mode to stop it downclocking and I get a GPU load of 0-4% with occasional jumps up to 53%.

It doesn't even change when looking straight down at the floor which makes me think there's something limiting it. If I run at 640x480 or 1920x1080 it's constant 60fps which makes me think it cold be vsync being applied incorrectly at 4k.

If so, the issue is wine/proton and not JkGfxMod.

edit: Perhaps it is just the resolution, it's bizarre that it's not showing high GPU or CPU usage but:

2560x1440 => 60fps
3000x1440 => 60fps
3440x1440 => 49fps

(tested using windowed mode as I don't think my monitor supports these) so the drop of seems to happen after about 3000 width.
TheJkWhoSaysNiTheJkWhoSaysNiTheJkWhoSaysNiTheJkWho
SaysNiTheJkWhoSaysNiTheJkWhoSaysNiTheJkWhoSaysNiTh
eJkWhoSaysNiTheJkWhoSaysNiTheJkWhoSaysNiTheJkWhoSa
ysNiTheJkWhoSaysNiTheJkWhoSaysNiTheJkWhoSaysNiTheJ
k
WhoSaysNiTheJkWhoSaysNiTheJkWhoSaysNiTheJkWhoSays
N
iTheJkWhoSaysNiTheJkWhoSaysNiTheJkWhoSaysNiTheJkW
2019-11-26, 7:47 AM #415
While I admit that there's some loss in texture color depth in JkGfxMod, these days I can't look at something like this (TODOA TC, 2012):

[Unable to find specified attachment]

... without being extremely annoyed that it didn't already look like this (Star Wars: TODOA, 2019) back in early 2010 when the mod was first released:

[Unable to find specified attachment]
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2019-12-25, 9:06 AM #416
I have the same issue as Ni in 4K. Can't seem to break 49fps.

i9-7980XE, 2x2080ti, Windows 10 Pro
gbk is 50 probably

MB IS FAT
2019-12-25, 12:00 PM #417
48 FPS is the engine cap, so if you’re reliably getting that framerate you aren’t missing much anyway.
2019-12-25, 9:53 PM #418
To me, JK feels a lot smoother and more fun at high FPS on a high refresh rate monitor, like any other game. I don't know what the engine cap involves, but I would personally recommend surpassing it for gameplay reasons.

I have had trouble with the FPS in JK myself, though. At one point, I was confused as to why my FPS was getting capped at 60 in the game despite seemingly doing everything to circumvent the cap. I can't remember how I finally got around it, though.
Looks like we're not going down after all, so nevermind.
2019-12-25, 10:45 PM #419
The simulation timestep is 1/48th of a second. JK doesn't interpolate between frames, so rendering faster than that effectively duplicates frames. The scene is rendered again but all of the objects including the camera (but not the first person weapon mesh) are in the same position as the last frame.

JK's approach causes judder both above and below 48 fps, as it will either double or drop every n-th frame to make up the time, respectively. Very high framerates mean less average error per frame (so less judder). But it just makes the game converge on what you'd get if you were locked to 48 fps. It's not any smoother.
2019-12-26, 2:15 AM #420
I don't completely understand that, but does it mean that 144 FPS at 144 Hz (for example) should feel the same as 48 FPS in JK? Because the framerate is high enough to perhaps decrease judder to an unnoticeable level (even though it still exists since you're going above the 48 FPS) but there isn't any less stutter from the high framerate since the engine is capped at 48 FPS.
Looks like we're not going down after all, so nevermind.
2019-12-26, 9:52 AM #421
At 144 Hz each in-game frame will be rendered 3 times, so there shouldn’t be any judder. But the game is still running at 48 FPS internally.
2019-12-26, 12:33 PM #422
That makes sense. Thanks Jon`C!
gbk is 50 probably

MB IS FAT
2019-12-26, 12:47 PM #423
Glad to be of help, NoESC
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2019-12-26, 8:08 PM #424
Originally posted by Jon`C:
At 144 Hz each in-game frame will be rendered 3 times, so there shouldn’t be any judder. But the game is still running at 48 FPS internally.

Does this mean that 48 and 144 FPS at 144 Hz should feel identical when playing JK?
Looks like we're not going down after all, so nevermind.
2020-02-23, 2:35 PM #425

🤠️👍️
JKGR
2020-02-23, 4:29 PM #426
now that's what I call a jedi knight issue
2020-02-23, 11:13 PM #427
Oh yes.

Now, if JkGfxMod fixed the FGR-reported "1st/3rd person translucency issue" and if a separate OGG injector could be made for JK (which would bypass all the remaining GOG/Steam installation issues), well, I think then it'd be more or less ready.

Also, someone should make a hi-res/JKE-style 3D model of WeeGee so that I'd feel motivated enough to make a more stable version of JKGFX2019. Wink wink.
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2020-02-24, 12:22 PM #428
Originally posted by saberopus:
now that's what I call a jedi knight issue

the fact I'm still modding JK in 2020 is definitely an issue
JKGR
2020-02-24, 2:37 PM #429
A Jedi Knight issue:

[https://ia600505.us.archive.org/BookReader/BookReaderImages.php?zip=/17/items/PC_Zone_50_May_1997/PC_Zone_50_May_1997_jp2.zip&file=PC_Zone_50_May_1997_jp2/PC_Zone_50_May_1997_0000.jp2&scale=16&rotate=0]
Looks like we're not going down after all, so nevermind.
2020-02-24, 4:42 PM #430
Oooh anyone remember MDK?
2020-02-24, 5:54 PM #431
look what has become of JK these days. ugh.
JKGR
2020-02-24, 10:23 PM #432
What the hell was that
Looks like we're not going down after all, so nevermind.
2020-03-19, 11:34 AM #433
Alright, thanks to Jon helping me out with WeeGee the droid, I finally got around to updating JKGFX2019 and MOTSGFX2019 - or EMJK and EMSith as I'm referring them to these days:

https://www.moddb.com/mods/jkgfxmod/downloads/motsgfx2019
https://www.moddb.com/mods/jkgfxmod/downloads/jkgfx2019

That said, an occasional bug still remains where the muzzle flashes are already activated when you switch to the weapon in question, so you have to fire the weapon once to get rid of the extra flash. If anyone wants to take a look at the COGs and maybe fix it, that'd be moist appreciated!
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2020-03-19, 5:39 PM #434
ok
JKGR
2020-03-20, 2:55 AM #435
!

Thanks again, man - updated versions of the mod (also including the slightly retextured WeeGee) are now on ModDB

[Unable to find specified attachment]
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2020-03-20, 9:37 AM #436
That said, there's still the rather major (mostly visual-wise) issue of JK and MotS not maintaining the proper saber measurements and proportions (as seen in the picture above) when the level starts OR when the player respawns - sometimes both issues occur, sometimes only one of them. And the solution that doesn't work well on my machine doesn't work on others.

So my current workaround solutions involve changing some of the level-specific COGs to force those proportions, and in the case of MotS it gets even weirder because at times Mara gets an orange saber in two of her levels but not in any other one if only the player COGs are modified...

In any case, currently the installation instructions go like this:

JK - Install EMJK first, then extract the files from this zip
MotS - Install EMSith first, then extract the files from this zip
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2020-03-21, 11:26 PM #437
I'm trying to get this to work: https://www.moddb.com/mods/jedi-knight-neural-upscale-texture-pack

I have the jkgfxmod working, I think. I am running this under linux with wine. I'm using `wine inject.exe` and the game starts and runs. I had to disable "ssao" because with it enabled I only get ~20 fps, but with it disabled I'm getting 60. I downloaded the texture pack, extracted it, and then copied the "jknup" directory to my jk installation directory/jkgm/materials/. I don't see any difference in textures at all. I must be doing something wrong, any ideas? I ran it with logging enabled and am pasting the log below.

Code:
main.cpp|271|debug> Attaching renderer to process
main.cpp|280|debug> Finished attaching renderer to process
main.cpp|69|debug> CreateWindowExA hook called
main.cpp|86|debug> Detected main window creation
main.cpp|180|debug> Called ChangeDisplaySettingsW
opengl_state.cpp|436|debug> Loading OpenGL assets
material_map.cpp|84|debug> Loading material map...
material_map.cpp|24|debug> Mapping materials from JK Neural Upscale Pack (jkgm/materials/jknup/metadata.json)
material_map.cpp|106|debug> Material map loaded
main.cpp|30|debug> DirectDrawEnumerateA hook called
main.cpp|21|debug> DirectDrawCreate hook called
ddraw_impl.cpp|203|debug> DirectDraw::SetCooperativeLevel(Exclusive Fullscreen)
ddraw_impl.cpp|206|debug> DirectDraw::SetCooperativeLevel(Normal)
main.cpp|21|debug> DirectDrawCreate hook called
ddraw_impl.cpp|203|debug> DirectDraw::SetCooperativeLevel(Exclusive Fullscreen)
ddraw_impl.cpp|203|debug> DirectDraw::SetCooperativeLevel(Exclusive Fullscreen)
ddraw_impl.cpp|206|debug> DirectDraw::SetCooperativeLevel(Normal)
main.cpp|30|debug> DirectDrawEnumerateA hook called
main.cpp|21|debug> DirectDrawCreate hook called
ddraw_impl.cpp|203|debug> DirectDraw::SetCooperativeLevel(Exclusive Fullscreen)
ddraw_impl.cpp|206|debug> DirectDraw::SetCooperativeLevel(Normal)
main.cpp|21|debug> DirectDrawCreate hook called
ddraw_impl.cpp|203|debug> DirectDraw::SetCooperativeLevel(Exclusive Fullscreen)
ddraw_impl.cpp|203|debug> DirectDraw::SetCooperativeLevel(Exclusive Fullscreen)
ddraw_impl.cpp|206|debug> DirectDraw::SetCooperativeLevel(Normal)
ddraw_impl.cpp|203|debug> DirectDraw::SetCooperativeLevel(Exclusive Fullscreen)
main.cpp|112|debug> CreateDIBSection hook called
main.cpp|112|debug> CreateDIBSection hook called
ddraw_impl.cpp|203|debug> DirectDraw::SetCooperativeLevel(Exclusive Fullscreen)
ddraw_impl.cpp|203|debug> DirectDraw::SetCooperativeLevel(Exclusive Fullscreen)
ddraw_impl.cpp|203|debug> DirectDraw::SetCooperativeLevel(Exclusive Fullscreen)
ddraw_impl.cpp|203|debug> DirectDraw::SetCooperativeLevel(Exclusive Fullscreen)
vidmem_texture.cpp|57|debug> Loaded texture with signature 1b175125a0d279d12257636198f0a021
vidmem_texture.cpp|57|debug> Loaded texture with signature 5aa3b0de65dc1d39ca38c0fe29a86804
vidmem_texture.cpp|57|debug> Loaded texture with signature afbb683c17c8ebe8a6e09f01be1de6bb
vidmem_texture.cpp|57|debug> Loaded texture with signature 563ad131268feb129b409690a5f28201
vidmem_texture.cpp|57|debug> Loaded texture with signature 88b39cc72fe5e423f668ce7e4c1b09ac
vidmem_texture.cpp|57|debug> Loaded texture with signature 0d21cf9007e07f15ec7ec03cf81a2178
vidmem_texture.cpp|62|debug> Found replacement
vidmem_texture.cpp|57|debug> Loaded texture with signature 72230b5c3bc4a9a42c0ce20ec5299119
vidmem_texture.cpp|57|debug> Loaded texture with signature 0eb4a41c5f1862bd44e49cb03cdc4b68
vidmem_texture.cpp|57|debug> Loaded texture with signature 7aefa40410dafc76f4a58ff78afd1ebb
vidmem_texture.cpp|57|debug> Loaded texture with signature 7d999662fb118109543fc2abf54052a1
vidmem_texture.cpp|57|debug> Loaded texture with signature 28eea8a0076e8a6f38565943c56b3cf5
vidmem_texture.cpp|57|debug> Loaded texture with signature 554b4692234e4ce19594cd3875ea7d90
vidmem_texture.cpp|57|debug> Loaded texture with signature 56b605c7f9d59bc454b139a21d32c951
vidmem_texture.cpp|57|debug> Loaded texture with signature 40e4684edbba617afe7414150012da18
vidmem_texture.cpp|57|debug> Loaded texture with signature d4ea5e390b476c4a0c34f778a8c61d9d
vidmem_texture.cpp|57|debug> Loaded texture with signature 4be92b24df9f244f14fa5aee6715f0d4
vidmem_texture.cpp|57|debug> Loaded texture with signature da614f799b3a8fd7cc5d684e75b4ad2d
vidmem_texture.cpp|57|debug> Loaded texture with signature 3d64f76689cca2260bbc6ad42ad13169
vidmem_texture.cpp|57|debug> Loaded texture with signature e442fadb3382c1c80796b0389204c2d1
vidmem_texture.cpp|57|debug> Loaded texture with signature 7aa479d771fdc71624fca9f2a865ba7f
vidmem_texture.cpp|57|debug> Loaded texture with signature 8d52b595acb0318e1975cec0b3ac7f1a
vidmem_texture.cpp|57|debug> Loaded texture with signature abc22ae9414c220969c3fb1b389a674f
vidmem_texture.cpp|57|debug> Loaded texture with signature 25502a9a6f4ef14aa9eef12f705b645f
vidmem_texture.cpp|57|debug> Loaded texture with signature 099cd2ab8efaf4d8dce6771e8b42601f
vidmem_texture.cpp|57|debug> Loaded texture with signature 2d77240892dcc9a4d44fd2955794b650
vidmem_texture.cpp|57|debug> Loaded texture with signature 00a75e724b1c7ec6cb4d91c7674111d4
vidmem_texture.cpp|57|debug> Loaded texture with signature 8246b2ad7868ef47af212809e4814095
vidmem_texture.cpp|57|debug> Loaded texture with signature 33ec1c71ad40af7fc9a54831cf1e96b6
vidmem_texture.cpp|57|debug> Loaded texture with signature 755113a57aac114c50cc4e0ac960d9e1
vidmem_texture.cpp|57|debug> Loaded texture with signature 04dff993cbb43f2141b8b51c1647dea2
vidmem_texture.cpp|57|debug> Loaded texture with signature 0b499e9fa92c2c6a3c531edd60c321a7
vidmem_texture.cpp|57|debug> Loaded texture with signature 3169358cd1115e5aa1d4aec0bab805ae
vidmem_texture.cpp|57|debug> Loaded texture with signature f473b5f8135487c06844c2446b399f61
vidmem_texture.cpp|57|debug> Loaded texture with signature 666dae0499e7ce9450aa138f8a3c43b8
vidmem_texture.cpp|57|debug> Loaded texture with signature 0e1d9b6a4809824339accad47e1d542b
vidmem_texture.cpp|57|debug> Loaded texture with signature 117e5871c84d87d692f0f659c8ead1a8
vidmem_texture.cpp|57|debug> Loaded texture with signature 45817d6f8da03d45c69d67b1fb38c400
vidmem_texture.cpp|57|debug> Loaded texture with signature a329c95067dc31c07cfbe10c92f8223e
vidmem_texture.cpp|57|debug> Loaded texture with signature 76553d505760c2eda69d32aea39f947a
vidmem_texture.cpp|57|debug> Loaded texture with signature c759a6443fe2cf4d508f5ba7b33a7194
vidmem_texture.cpp|57|debug> Loaded texture with signature d823205a88d869d2192e90fd0d996c59
vidmem_texture.cpp|57|debug> Loaded texture with signature bd85c907b4ef701f39a12f840544af6e
vidmem_texture.cpp|57|debug> Loaded texture with signature bea56d6dd482de0aad78b6e974e12ac0
vidmem_texture.cpp|57|debug> Loaded texture with signature 944f1067b7b5b21fc4caac3eb25b0e50
vidmem_texture.cpp|57|debug> Loaded texture with signature f67d21492de5016a36cd9a534db50be9
vidmem_texture.cpp|57|debug> Loaded texture with signature f395ae957216657179210b040bcdf49a
vidmem_texture.cpp|57|debug> Loaded texture with signature e4b317ea8917b1ec63d2dfe113b637e6
vidmem_texture.cpp|57|debug> Loaded texture with signature 5bde7ec4b7d4bd1b9abd83976f72738d
vidmem_texture.cpp|57|debug> Loaded texture with signature 1aef446f7d4872b1e21c33243144a500
vidmem_texture.cpp|57|debug> Loaded texture with signature 38c62ea0a4e683a32016a9851658cd9a
vidmem_texture.cpp|57|debug> Loaded texture with signature 03b566b12a3d9a827df367942556670c
vidmem_texture.cpp|57|debug> Loaded texture with signature 818a43c4d47f34c4fd15a99447c52f99
vidmem_texture.cpp|57|debug> Loaded texture with signature 68a71aaf90d97329745563e2edbbb0b0
vidmem_texture.cpp|57|debug> Loaded texture with signature f2a8f6c3723a3255342a0ab724c5e6ce
vidmem_texture.cpp|57|debug> Loaded texture with signature a081f5d290054ee7f22ee4f9c9794d34
vidmem_texture.cpp|57|debug> Loaded texture with signature 1b3e48089f18723be0371dbbb750036e
vidmem_texture.cpp|57|debug> Loaded texture with signature ff8fe22aca62a7c521170e29677c7491
vidmem_texture.cpp|57|debug> Loaded texture with signature 510d26227170d3c04b461aeeee745209
vidmem_texture.cpp|57|debug> Loaded texture with signature e60843445610a3cb72a32e386aac61c6
vidmem_texture.cpp|57|debug> Loaded texture with signature b12b19e0187728e9613592cc0d957d2f
vidmem_texture.cpp|57|debug> Loaded texture with signature 7a88d0b1137e387bc17616d9b3a9bfc8
vidmem_texture.cpp|57|debug> Loaded texture with signature 8e958fc34fcecff73fbe6ab2ae25c67f
vidmem_texture.cpp|57|debug> Loaded texture with signature 23a7a022ffb0c911e7cd81edda976388
vidmem_texture.cpp|57|debug> Loaded texture with signature bcb84253988f077c47def92fddd31bf0
ddraw_impl.cpp|203|debug> DirectDraw::SetCooperativeLevel(Exclusive Fullscreen)
2020-03-21, 11:40 PM #438
Make sure the directory is jkgm/materials/jknup (i.e. the files aren't loose)

Make sure your brightness is set to 0 in-game.
2020-03-22, 8:43 AM #439
Originally posted by Jon`C:
Make sure the directory is jkgm/materials/jknup (i.e. the files aren't loose)

Make sure your brightness is set to 0 in-game.


Thanks Jon`C! setting brightness to 0 in the game fixed it. The materials directory was set up correctly.

The game looks really amazing now, and it seems to be running flawlessly on my mobile nvidia card. I think previously during development of this mod I couldn't get it to work with the nvidia card, only the native intel graphics card, but then it was too slow. Now it's running at a solid 60fps and looks awesome.

Why does the brightness setting make a difference?
2020-03-22, 6:31 PM #440
Originally posted by Brian:
Why does the brightness setting make a difference?


https://github.com/jdmclark/jkgfxmod/issues/4#issuecomment-492505287
12345678910111213

↑ Up to the top!