#Modding the MGS1 emulator

1 messages ยท Page 22 of 1

pure radish
#

how hard is it to load a gif

#

no one wants this shit

#

just point my browser at a gif file

#

its that easy

dawn flare
#

Yeah. Tried sending it to you directly, but no luck there either

pure radish
#

its working again now

dawn flare
pure radish
#

want me to replace the first gif with this?

dawn flare
#

If you think it's appropriate

#

I tried to mimic what you had already

pure radish
#

its a refresh

#

done

dawn flare
#

How'd you make the gif for the codec?

#

I have the video file, but it looks pretty ass

pure radish
dawn flare
#

That's what I used for the first one

#

Cool, it retains the codec scanlines after giffification

pure radish
#

is the only way to remove the top/bottom borders in other emulators to crop it?

#

or do they do something more clever

#

they don't somehow get it to render 256 lines, presumably?

#

yerp

#

quite clearly

#

ok good

#

would be a lot to patch in the ROM to do it any other way it seems

pure radish
#

oi oi

#

maybe i found a way to remove the borders

#

that was fairly straightforward

pure radish
#

cool, thats working really nice now

red cradle
#

wow another quick fix

pure radish
#

bit too soon for a 3.1 ๐Ÿ˜›

#

let's get a few more features first

#

i mean if i could do that in 15 minutes they could do it in 30 seconds

#

now I wonder if we can get PAL to 60hz and then everything is equal

dawn flare
pure radish
#

oh yeah i generally make everything optional

dawn flare
#

I thought so, but wanted to put it out there in case you were considering locking it in

pure radish
#

there are some things that aren't optional but there is really no reason not to have them

#

i.e. the new monitor sleep fix

dawn flare
#

Righto

pure radish
#

got part of the 60hz thing

#

the audio is now slower

#

which makes sense

dawn flare
#

Was the audio pitched down on the pal release to account for that?

#

I.e. now the audio is back to the "correct" pitch/speed?

pure radish
#

no it just stutters a bit

dawn flare
#

Oh, that's kinda gross

pure radish
#

well i assume it would come out in the wash if i got the video timing correct

#

i have 60hz audio and 50hz video

#

so of course it has to do something

indigo quartz
#

I'd contribute to a bounty for that. Especially if it could be a patch and not just a mod for MC.

red cradle
pure radish
#

they must be patching the resolution

#

which kinda needs doing everywhere

#

the way the rendering works here means we kinda don't care about that

red cradle
#

oh I see, my first thought is that why would they want to play the lower fps version lol

pure radish
#

yeah i think a lot of those patches are old and intended for analogue TVs

rancid hare
pure radish
#

ive found whats clearly the logic for video timing

#

now to make sense of it

dawn flare
#

Are you looking forward to trying to figure out the chaff grenade reverb and midi instruments from issue 37? Lol

pure radish
#

mh it surely can't be as hard as learning graphics was for me

#

graphics has always been my kryptonite

dawn flare
#

Luckily, you're almost done with esoteric graphics shit

pure radish
#

well ive crossed the rubicon now

#

i "get it"

#

well, enough of it for the steam release of MGS1

#

so now its not so bad

dawn flare
#

Yeah

pure radish
#

if ( a2 % 6 != 5 )

#

๐Ÿค”

dawn flare
red cradle
#

I wonder if the konami stuff still bypass the 3.0 release, and still fiddled with snake rendering. lol

dawn flare
#

I don't think we're getting another MC1 patch, except maybe to unbork the framerate for Switch 2

dawn flare
#

(I assumed they were talking about a future patch, but I could be misunderstanding)

red cradle
#

#1168512986491670548 message

#

but yeah, a mod patch that involed snake's model

pure radish
#

the 3.0 upscaling is basically "post-processing" during a timely pipeline stage

#

whatever they did with snake will still apply

#

because that happens much earlier in a frame

dawn flare
#

Aaaaah

red cradle
#

#1168512986491670548 message I remember the issue the modder has back then is this

pure radish
#

lol, gore

red cradle
#

#modding-general message so I guess that issue will still exist in 3.0? lol

pure radish
#

i would expect so

red cradle
#

damn, hope can find a way to breakthrough

pure radish
#

i don't really think just making the thing work like any other emulator is "breakthrough" stuff

#

otherwise we might as well just replace it with duckstation

#

just reverting all the stuff that makes MC MC is kinda weird imo

red cradle
#

oh so it's the emulator's problem, sad

pure radish
#

its not the mod

#

they injected that model without ketchup

#

because ketchup requires that no file grows in size

#

you can remove M2Fix and see that bug

#

there is genuinely some quirk or "optimisation" they put in place for the rendering, perhaps specifically of snake, who knows

red cradle
#

huh weird, I think they did make a ppf to try, or I remember wrong

pure radish
#

they did, but it didn't load because of what i said

#

it shifted the remaining contents of the disk

#

so at that point, everything became a patch and the ppf was huge

#

and that overwhelmed the game's patch system which wasn't really designed to patch the entire disk

red cradle
#

ah I see

pure radish
#

so they went into the alldata and repacked that with a new iso

#

so nothing to do with M2Fix

#

what M2Fix does in 3.0 is very precise, so i would expect that bug to be preserved, just appear in higher resolution

#

maybe some day we find the cause, there are like 1000 game accelerator hooks though, so it's like finding a needle in a haystack to figure out what is going on

#

would really need some very clever tools to process the accelerator hooks alongside a "normal" emulator to observe the effect of each, and probably with reference to the decomp to understand what they're actually achieving in laymans terms

#

oh hey

#

i got the PAL games running at 60hz

#

now the 60hz sound doesnt stutter, as the video is synchronised with it

dawn flare
#

Oh hey

#

You're just nailing it

#

Dat dopamine rush

pure radish
#

now i need to change the keyboard bindings

#

gotta do something I want for a change

pure radish
#

do we have more M2 games coming?

dawn flare
#

"Colonel, why didn't you tell me about Nightstriker Gear?

#

Oh, I didn't see the OG above lol

#

At least we have until August to worry about it

rancid hare
#

There's a few games they're working on

dawn flare
#

Ooo, new bug with contra controls

pure radish
#

if that's caused by M2Fix i have one guess

dawn flare
#

Yeah, no idea if it's new, or if the increased interest caused an existing unknown to get noticed

pure radish
#

i suspect the latter

#

if im right

#

project didnt really have a proper release with that support before, even tho it was somewhat there

#

and well we just relaunched it

pure radish
#

aight I have a way to remap keyboard buttons

#

just need to write something to actually do that remapping

pure radish
#

wow, escape brings up the pause menu

#

wild

pure radish
#

god that is so much nicer

#

i didnt even know what most of the buttons were originally bound to

#

theyre that obscure

#

now i know where everything is instantly

#

H? U? 9? 0? seriously

#

now i have to learn the new bindings and unlearn the rubbish ๐Ÿ˜„

#

we should also add XInput support

#

oh hey the censor now samples the correct colours

pure radish
#

mashing these keys would normally pause as its fucking E and M

rancid hare
#

"I don't think anyone ever imagined squirrel would be running an emulator"
https://youtu.be/PUTRvF7slYs?si=ow5Vr1V3tVUNJ3Ec

I managed to port an NES emulator to Portal 2's scripting engine.

Thank you for watching!
This project is available on GitHub: https://github.com/p2r3/smolnes-nut
Join our Discord server! https://p2r3.com/discord

All music used is from the Portal 2 OST in this order:

  • Some Assembly Required
  • Technical Difficulties
  • Robot Waiting Room 6
  • Yo...
โ–ถ Play video
#

lol

pure radish
#

so working pretty well

pure radish
#

lets see

pure radish
# pure radish

i really want this to be more configurable but also dont want to reinvent the wheel if there's just some library i can borrow

#

i guess it also depends on whether i bother with xinput

#

sticking them in the .ini is gonna make the .ini a vexing parse

#

especially if there's conditional logic like i have

#

maybe i just need to let people express it in a squirrel script since i have a virtual machine in the mod

#

a way to load random squirrel scripts is probably something i should have anyway

#

but hey at least i can cope with the bindings now

#

lol i see where this is going

#

yeah they used squirrel for vscript

#

im surprised it still gets used for things

#

its not maintained by a large team, just one guy

#

and it hasnt been updated in ages

#

lua is more commercially palatable i'd have thought

#

maybe we should port his emulator to replace the one in bonus content

#

soon we need to look at PGXP again

#

best to do it soon while stuff is fresh in mind

pure radish
#

found (well, rediscovered) good PGXP inspiration

#

probably will base on this

#

just seems the tidiest

hoary pier
#

No idea if this is a known issue or if it's something on my end, but it seems like switching between "Normal" and "Pixel Perfect" is doing nothing when keeping internal resolution disabled

pure radish
#

does it happen without the mod

#

the mod shouldn't be in control of that in any way if internal resolution is disabled

hoary pier
pure radish
#

interedasting

#

I'll take a look

hoary pier
#

And if I enable internal resolution and set it to something like 480p, it works. If I manually set it to 240p it also technically works but gives me a brand new black bar on the right side (black bar is there both on normal and pixel perfect)

#

Uh ignore my second monitor lmao

rancid hare
#

@pure radish Windows defender is now flagging MGSM2Fix.

hoary pier
#

Oh wait am I just stupid

#

Yeah I think I'm stupid lmao

#

240 divides evenly from 1440

#

Ignore my whole complaint

#

I forgot how to math

pure radish
#

!ml means machine learning based detection

pure radish
#

managed to get it back down to 8

#

stupid game

#

we can spend weeks trying to circumvent this or we can add features

#

the project is in active development so what's the point doing it for one build when we have to do it again in a few weeks for another

#

it never flags for me, presumably because it originated on my machine

#

fix: build it yourself

#

I wonder if it being signed would help, what's the cheapest Windows signing cert

#

these tend to get flagged as "potentially unwanted software" as well and I mean that describes Windows itself doesn't it

#

hopeless

#

might as well just ban everything using VirtualProtect

#

wonder if encrypting the rdata section would help if it matches things like strings ๐Ÿ˜›

#

basically have to think like a malware dev which is surely not the idea

pure radish
#

whoa

#

i didn't know you could run while holding the gun by holding the crouch button

#

still learning stuff about this game after 25 years

#

that's goofy

dawn flare
#

Yeah!

humble ravine
#

Reckon stretched HUD is fixable or is that a bit ambitious?

pure radish
#

well it looks like the HUD is a single drawcall

#

nvm, its two

#

but right after one another

#

and its handled differently to the world

#

no IASetPrimitiveTopology/RSSetState/OMSetDepthStencilState/OMSetBlendState preamble

#

i assume you would do the same thing the GTE widescreen hack does

#

horizontally "compress" this so that when its stretched again its correct

#

or maybe defer (ha) the rendering of it until the emulator has stretched it according to the screen size

#

basically make it part of the emulator, not part of the game

#

then no scaling needs done i think

#

so would just capture the drawcall and prerequisite state but don't issue it to GPU until later

#

that might get freaky with the emulator pause menu, would need to see

#

not impossible to do it though

#

i guess that is one benefit of working on this emulator

#

other emulators don't have that feature coz they have to work with every game

#

but here we just care about MGS1

#

i'm trying more and more to make the code portable (or at least modular)

#

e.g. the upscaling code doesn't know about PSX specifics, it just assumes the emulator has this behaviour of reconstructing the virtual VRAM and thus is too small or too big for the internal resolution

#

that means it could be easily adapted for an M2 title for a different console, etc

#

one of the benefits of the rewrite

#

the upscaling code queries the current game and its "machine" for that information rather than just assuming MGS1 PSX

#

lets see

#

what happens with the pause menu and hud interaction

#

ah it'd be fine i think

#

it stretches the emulator for widescreen, then draws the pause menu

#

so right after that stretch happens draw the hud

#

then the pause menu is still over it

#

the hard part will be reliably detecting the hud drawcalls

#

detecting the stretch point is easy

#

this is worth a go if i can work out detecting the hud drawcalls

#

there has to be a way, they're submitted differently

#

so the game is special-casing them

#

it knows they are for hud

#

its not just drawing a list of totally random shite

#

hmm, maybe i have a way

#

there are 3 drawcalls like this

#

one is for the absolute background layer, the floor and some walls

#

you never see a drawcall like that again until the hud

#

so ignore the first one and you have the hud drawcalls

#

and reset that state on each frame

pure radish
#

lets see if these heuristics work

#

that can work!

#

on 2&3, need to save all the d3d11 state and not submit it

#

then wait until later to submit it

#

just not submitting it should turn off the HUD

#

lets try that first

#

nope it just breaks everything lol

#

why tho

#

seems like it should work

#

but that just doesnt end up on screen

#

ah that works though

#

oh wait

#

i know why it prob doesnt work

#

silly bugger

#

there we go, no hud

#

so now need to capture the state for each drawcall and then draw it later

pure radish
#

wasnt quite what was intended but

dawn flare
#

Holy shit, this stuff is wild

pure radish
#

how so?

#

this can prob work if i fuck around with it enough

#

i might have to actually deep-clone the vertex buffers rather than just holding onto the pointer

#

trying to make this generic too, so you can capture a drawcall state and replay it later

#

i suspect i have to change the scissor rects too, so the first version that works will probably put the HUD in the wrong place

#

but thats ez when we get to that point

dawn flare
#

That's all

pure radish
#

oh

hoary pier
#

Crazy how far MGS1 MC has come since that guy who uploaded the whole game with a different emulator on Nexus and pretended he did something

pure radish
#

total conversion mod, you see

#

but yeah the work that has gone into just getting a footing in MGS1MC is enormous

#

you can tell by the amount of code and the size of the .asi haha

#

okey, arguably further from what i want on screen but i think its actually closer in reality

#

that looks like the right size, pre-widescreen stretching, of the game's render view

#

oh hey

#

now its back

#

nice to see ya

#

thats unstretched as well

#

so my idea seems sound

#

its in the wrong place as i expected but that's easy to sort

#

now why has the actual map content gone

#

oh, i think i know why

pure radish
#

now its centred properly

#

just need the map

#

that does not seem to be in the right place

#

is that 0,0? kinda seems like it

#

yes, just ended up in the abyss it seems, why doe

#

everything else is fine

#

and has survived transplantation

#

ok well now its at least on screen again

#

how hard can it be to get that inside that box

#

idk why it put it there lmfao

#

can i get it scaled properly first before i worry about moving it

pure radish
#

i have it correctly sized now but in the wrong place

pure radish
#

man

#

why is it that its the "easy" bit that always turns into a farce

#

this clearly almost works lmao

#

cool, right place right size but the scissor isn't correct

#

wait, no its not the right size

#

hmm

#

ohhh

#

0,0 on the map is the player

#

so left and above the player is negative coordinates

red cradle
#

wow this might be the first time seeing the hud isn't stretch in widescreen mode, I see it's still position in the original coordinates, wonder if these can lock in to the corner of the game screen

pure radish
#

oh, maybe im a dumb dumb

#

i was never gonna line that up

#

i think I do need to do a deep-copy of a subresource

#

but thankfully, not a big one

#

not the entire vertex buffer

#

wow is this my first time ever using dynamic_cast

#

oh

#

i was wondering why my game was crashing

#

thought it was my fault

#

nope!

#

steam crashed

#

jesus christ

#

not the first time that has happened

#

i start thinking i've broken the mod but no the game just crashes if steam isnt running

pure radish
#

basically draw the HUD twice, one for the left side and one for the right side

#

but have it set up so conveniently one side gets cut off each time

#

then just align each side at will

#

its great we can do all this without going near the PSX stuff

#

and an emulator that works for any game can't really do it either

#

ah, can't use RTTI here (I guess missing stuff in the base game) but thankfully there is ID3D11Resource::GetType()

red cradle
#

I imagine it becomes quite easier to control the elements in game now with the current project code

pure radish
#

yeah there's good tools to work with it at any level

#

PSX, if that's easier

#

Squirrel, if that's easier

#

D3D11, if that's easier

#

i chose D3D11 for the HUD because i could clearly see how it was being isolated to its own stage

#

i would prefer doing "ROM-level" mods the least, aka modding the actual game

#

PSX emulator core is OK

#

Squirrel is better

#

D3D11 is annoying to start with but eventually it makes sense

#

it just makes you feel stupid

#

god these keyboard binds are so much better

#

im going to keep saying it

rancid hare
# pure radish

Curious, how granular can you adjust the radar? Is it one single object, or can you shift the individual parts?

I ask because it's a known legacy bug that the guard view cones are incorrectly offset 1 pixel up and 1 pixel left

pure radish
#

its basically individual lines and dots

#

not sure how the cones look yet

#

there's the moneyshot

#

man this is turning out to be a rad way to play the game isnt it

red cradle
#

yeah, still there are a lot of elements in game that might need to make them non stretch

pure radish
#

like what?

red cradle
#

title menu, codec, etc

pure radish
#

they should be easy now i can do this

#

this is probably the hardest one

red cradle
#

yeah, one thing at a time

pure radish
#

"alignment" "scaling" "sizing" wasn't really the problem

#

i just had to backup the state of constant buffers at the point in time of the drawcall

#

then i didn't have to do anything (besides centering it, like with the item and map frame)

#

i think i'll try and move things further to the left and right edge next

#

i have an idea how that might work

#

but this is at least something

pure radish
#

double HUDs

#

you can see where this is going

#

look where the left side menu ends up

pure radish
rancid hare
#

Sweeet

pure radish
#

๐Ÿ˜›

#

draw the HUD twice is such a funny trick

#

draw it twice and cut it off in the middle of the screen

#

then each side can be aligned accordingly

#

genius

#

and again you don't need hardcoded offsets for this

#

you can just say, okay the game is 4:3 and with y internal height, so how many extra horizontal pixels are there

#

divide by two and you have the left side and the right side

#

im hoping i can rewrite the upscaling to use the "drawcall bundle" stuff i wrote for this

#

we are going to make this the best way to play the game boys

humble ravine
pure radish
#

told ya i solved the hard problems xD

#

the important postfix to that statement is that i solved them in a way that pays dividends in future

#

i made the problems harder

#

but these are the results

#

lets see how the cones of vision work, then

#

oh quite clearly i see what you mean

#

they're anchored to the top left corner of the player

#

clearly that is the origin

#

i guess it makes sense when the player is 4 pixels?

#

you have to pick one

#

but it's not really 4 pixels anymore

#

i like this emulator

#

calling it an emulator is a bit of a disservice really

#

its more like an interpreter

#

since most of the logic is native code

#

its more of a native port than i think people give credit

#

but when it comes to like, game scripting, that is interpreted MIPS playstation code

#

im achieving all this without even thinking about the playstation

#

basically they are simulating the GCX interpreter in the PSX game

#

everything else is native

#

this is like

#

arguably the best version of MGS1 to mod on PC

#

everyone sleeping on it

#

GOG would be way harder if you ask me

#

and you wouldn't get every version of the game that way

#

the limit is basically there is only one of me

#

lmfao that is quite egotistical in hindsight but like, we've had 2 years to find someone else

#

ยฏ_(ใƒ„)_/ยฏ

#

its open source you can hardly accuse me of being proprietorial

#

goml

#

i would love for someone else to contribute extensively to M2Fix but

#

hasn't happened yet

#

maybe it's more likely now the source isn't a housefire

#

kinda incentivised me reworking it to be more sane

red cradle
#

https://youtu.be/BsJ-b1BpA0Y?t=2437 in that case I guess it's not impossible to do something like remove the black bars during the cutscenes in widescreen mode, something like this, oh I guess the subtitles need to un-stretched too lol

metal gear solid 1 ps1 all cutscenes hd full game movie 4K solid snake otacon colonel campbell meryl liquid snake sniper wolf ocelot

โ€ข Instagram: https://www.instagram.com/kouteshi
โ€ข Twitter: https://twitter.com/Kouteshii
โ€ข Twitch: https://www.twitch.tv/kouteshi

โš ๏ธ I used a Widescreen Patch and I also removed the black bars/letter...

โ–ถ Play video
rancid hare
pure radish
#

tbh understandable, if i didn't start the project i would've been unable to work on it either

#

the intel ASM hooks were nice at the time but

#

none of them were essential and could be refactored slightly using safetyhook

#

that... isn't quite what it was before, but... the effect is equivalent

#

required some thonking

#

but the outcome is no intel-specific asm blocks, so

pure radish
dawn flare
# pure radish

Amazing! Are there any issues like boss health/o2 bars or timers (escape sequence) that cross the centerline?

#

Oh, torture sequence might too

#

Oh, would be nice to have either corner-anchored or the normal 4:3 framing for the hud

red cradle
#

oh man, actually there are quite some ui elements that can do the non-stretching treatment in MGS1, excited

dawn flare
#

Yeah, there's a bunch

dawn flare
rancid hare
#

sweet, microsoft processed 3.0 a lot quicker than estimated - the defender false+ is now fixed

pure radish
#

that's just what i chose for now

#

so if it needs to be more clever we can do that

#

it's definitely something that needs extensive playtesting

#

i killed the second map render, so it's basically just the leftside inventory and map "border"

#

since the "map content" is its own thing separate to the inventory and map border

#

if we deleted the map border vertices, there wouldn't even be a need to use a scissor rect

#

im just glad that in principle it works haha

#

we take the drawcalls, stash them, and unstash them later in the frame

#

the HUD is now part of the emulator

#

but it's proof of the tech of "stashing" a drawcall

#

we steal the HUD and do what we like with it, whenever we want

#

not sure what it means for stuff like the main menu, yet

#

is it really better to not stretch that? and have the left and right side of the screen black?

#

i want to refactor the "upscaling" pass to use this

#

basically it should just push a "custom" drawcall to the queue and let it play out

#

it's like:

#

so whenever you use this system, the current state is preserved and restored later

#

meaning it should handle the pipeline restoration automatically where the upscaler currently has bespoke code for

pure radish
#

the only thing this doesn't "automate" is the render target, quite deliberately

#

"where something goes" is kinda fundamental to most of its use-cases

pure radish
#

looks like user error?

#
Enabled = false
Height = 1080
#

fun

pure radish
#

LMAO

#

forgot about that

#

man, i do some shit

pure radish
#

if you want to see "some shit"

#

this was needed for the EGS Castlevania

#

and we're surprised it gets detected by AV when there's batshit things like this going on xD

pure radish
#

bro is flabbergasted

dawn flare
#

That a good boi

dawn flare
#

@pure radish apparently none of the Castlevania games have remappable keyboard input

#

Which uh, is bullshit

#

I can't even

pure radish
#

wot

#

i genuinely dunno what you mean

#

are you saying they're like MGS1 and you cannot bind keys on the keyboard?

#

why is that uniquely "bullshit"? i think it's pretty bullshit in MGS1 as well

#

am i missing something that means this is a bigger deal for Castlevania?

#

hopefully whatever i do for input remapping works for every game

dawn flare
#

You can at least apparently remap the controller

pure radish
#

i probably wouldn't have bothered if the MGS1 bindings made a lick of sense

#

but, they don't, so here we are

dawn flare
#

Yep

pure radish
#

just hilarious the 'U' key is relevant for gameplay

dawn flare
#

I just wanted to flag that the weird-ass unmappable controls aren't limited to just MGS1

pure radish
#

how is anyone supposed to figure that out? mash every key and see what happens?

pure radish
dawn flare
#

I'm also trying to be vocal when I stumble across M2 issues that aren't related to MGSMC, since I assume almost all the feedback you're getting is for MGS

pure radish
#

yeah, you're being helpful, no complaints here ๐Ÿ˜›

rancid hare
#

throwing this over here so i remember. looks like the built-in analog support has range issues (which i confirmed earlier); i don't recall that being an issue with the mgsm2fix analog implementation from pre 1.5.0

pure radish
#

interesting

#

i kept the code for the old analog mod

#

it's technically still in there

#

maybe i can update it to use the new steam controller layout

cerulean coral
#

how to hook in c++ ๐Ÿค”

#

Limit comment ๐Ÿ’€

pure radish
pure radish
dawn flare
#

Spun up Integral to take a peekaboo, and noticed some jank during the elevator intro. Not sure if it's native, or M2Fix related, but figured I'd throw it out there...

pure radish
#

Details?

dawn flare
#

Just trying to grab some screenies ๐Ÿ™‚

#

The second time the dive gear is shown on the elevator, the texture on the vest warps (looks like I clipped it close enough so you only see the one in the video). Snake's face (and other bits) Z-fights during the title drop, the post processing as the elevator stops seems.. off

#

Look at the right elevator rail there

#

You can see the z-face there as well

#

There's some weirdness on the external panning shots of the cliff face in the clip too, like there's a bend in the display. It's hard to describe, and could just be the normal post processing for the wind/snow/shake.

Edit: I don't notice this one in the clip now that I play it back, so could be false alarm.

pure radish
#

aren't you just describing the lack of PGXP?

dawn flare
#

Could be

hoary pier
#

Yeah I think that's always happening, you just can't really see it at 240p

pure radish
#

geometry being goofy is very much expected without PGXP

#

that is what PGXP is intended to solve

dawn flare
#

Cool! I've heard folks talking about it, but wasn't really clear on exactly what it did

pure radish
#

yeah basically the PSX has a hardware device that handles geometry calculations but its imprecise

#

(the GTE)

#

PGXP fixes the precision problem

dawn flare
#

Yeah, I did some looking after you'd mentioned it this morning

#

Glad it's probably already in the works, rather than a new issue to dig through

pure radish
#

so "accurate" emulation requires modelling the "imprecision", but it's not ideal to have the imprecision particularly when upscaled

dawn flare
#

Right

pure radish
#

but personally, i like the wobbly stuff

#

especially in MGS1

#

the wobbly stuff haunts my dreams

dawn flare
pure radish
#

the cutscene where you overhear a conversation near the start of the game

#

man

#

nightmare fuel for a 7 year old

dawn flare
#

"I'm going to get into this Hind now!"?

pure radish
#

"i moved the darpa chief to the second floor basement"

#

that one

dawn flare
#

Oh that one lol

pure radish
#

the wobbly graphics enhanced that so much that even if i had Alzheimer's I would remember it

#

that's the entire reason i convinced my dad (RIP) to buy the full game after i played the demo like 20 times

dawn flare
#

โค๏ธ

pure radish
#

and here we are today! m2engage modding supremo

#

life is funny

dawn flare
#

Yeah!

#

Anyone set up with Reshade for scanlines on MGS1? Would love to hear settings etc

pure radish
dawn flare
#

Look @pure radish, I am a potato.

#

un potat

pure radish
dawn flare
#

Usually per week

pure radish
#

impressive

dawn flare
#

"Impressive Snake!"

hoary pier
#

I think I have it looking pretty nice

dawn flare
#

Pretty good!

#

Thank you, that'd give me a good starting point

hoary pier
#

What's your monitor resolution?

pure radish
#

that does look damn good tbh

dawn flare
#

1920x1080, plus Deck (1280x800)

pure radish
#

im not a massive fan of the upscaling stuff im doing and kinda prefer that look personally but

hoary pier
#

Ah okay, yeah you'll have to tweak it since I configured it for 1440p

dawn flare
pure radish
#

yeah i am just here as the facilitator lmao

hoary pier
pure radish
#

that sometimes means i will be implementing stuff i won't personally like

#

can't say i wasn't committed to it given it was my active task for a year

dawn flare
#

lolol

hoary pier
#

People complained about it being 240p over any other issue, it was kinda something people would expect you to "fix" unfortunately

pure radish
#

yeah it was priority #1 for a lot of people

hoary pier
#

Though imo it being kept in 240p was good, just about everything else was the problem

pure radish
#

the mod couldn't be taken seriously or have any value to a lot of people without it

#

fixing the keyboard bindings was my payment

#

total fucking mess unmodded

hoary pier
#

That goes for the whole collection at launch really

pure radish
#

i feel like 2&3 were in better shape but maybe that's just me having lower standards given it was the first way to really play them on PC

#

whereas with 1 there are many, many options

dawn flare
#

Yeah, I'd agree there

pure radish
#

so M2Fix has a hard job of making it a good way to play 1

#

rather than just "a way to play 1"

#

but hey we're giving it a bloody good go

#

i said i wasn't going to abandon it ๐Ÿ˜›

#

people got pissed off at the rate of progress but like

#

the pace of life changes a lot when you finish school

#

and that's not really something you can predict in advance for how much it flips everything over

#

i can't really afford to switch to another project, i just about have the bandwidth for one

#

this is all the hobby programming i can really do now

#

like people got mad about a few months of no activity

#

mate that felt like a week in my head

#

it's fucky

#

hopefully 3.0 shows i am committed ๐Ÿ˜›

#

idk just the internet you have to remind yourself that you're mostly interacting with teenagers lmfao

#

suddenly im not in that category anymore and i am 30

dawn flare
#

lolol babby

pure radish
#

its unfortunate bro

#

you suddenly hit 30 and think "man maybe i should finally get my shit together"

#

oh well, another 10 years where i don't have to think about it

dawn flare
#

YEEEEEAH

#

cries in late-30s

pure radish
#

lets just pretend i hit 20 rather than 30

#

i feel more like 20 than 30

#

but i was uh a late bloomer tbh

#

have i even bloomed? not sure

pure radish
#

i was dreading the big three zero

#

when it was still twenty something i could excuse myself

#

in your 20s you're supposed to be a tit

#

that's the whole point

dawn flare
#

See, in your 30s, you're still a tit, but also now your back hurts.

pure radish
#

i haven't experienced that yet, my back seems to be made of titanium

#

very lucky

#

normally that starts as soon as you leave school xD

#

must continue to invest in good chairs

dawn flare
#

Meeeee too

pure radish
#

i wouldn't have expected you to be older than me, so congrats

#

i have clearly become Punished Snake from past relationships

#

a shame that for your apparent mental age that your telomeres are still fucked

#

eukaryote moment

#

imagine being a eukaryote

#

oh well everyone in this chat might live to 110

#

and then we will reminisce about a game that released basically when we were all born

#

on discord which will definitely still exist then

dawn flare
#

Oh 100%

dawn flare
#

None of this fancy spinning disk crap

pure radish
#

mate i inherited my dad's mega drive

#

my pride and joy

#

it's literally on my desk at all times

#

(in a dust cover)

#

had capacitors replaced

dawn flare
#

Mine was the same with my NES, though it's in pieces right now.

pure radish
#

it's in immaculate condition

#

sometimes needs a bit of percussive maintenance

#

but

#

what device didn't from that era

dawn flare
#

Oh for sure

pure radish
#

i tried the Metal Gear port to Genesis the other day

dawn flare
#

I picked up a Genesis last year, I still need to take some time and clean it up

pure radish
#

astonishingly good

#

this is a launch day unit

dawn flare
#

Nice

pure radish
#

same with the Mega CD attachment

dawn flare
#

At some point I need to dig up a working 32x

#

Luckily, with the Everdrive, I don't need to worry about the CD

pure radish
#

dude was a hardcore gamer before he impregnated my mum ig

dawn flare
#

A real one. o7

pure radish
#

no joke he is the entire reason im here and have the day job i have

#

died wayyyy too young

#

pancreatic cancer

#

universe tried to kill us once but it has to kill us twice

dawn flare
#

๐Ÿซ‚

#

I'm sure you're doing him proud

pure radish
#

i can die happy now 3.0 is out xD

#

anyone can improve on 3.0

#

2.2 was a mess

#

just getting to the point where i've opened the door is satisfying enough for me

#

anything now is a bonus

#

i previously tried similar in the star fox adventures / dinosaur planet community as some here seem to know

#

and boy are there some egos over there

#

i kept all my stuff closed source there because "the guy" was desperately trying to coerce me into open sourcing it

#

funny how it's just open source here from day one

#

and i love that it is

#

community is way more chill here

#

"the guy" btw also having his own entire reimplementation of the engine and huge social media profile, he wanted to own my stuff, 100%

#

spidey sense walked me out of that one

#

i am a simple man and am happy to open source stuff as long as i get credited for it

#

and so i am here

#

you're all my backup option

#

because SFA / DP (particularly DP) severely needs attention

#

when the entire game is a leaked development build and not a finished title, it's really begging for it

#

the day that leak dropped i remember everyone trying to figure out how you're actually supposed to progress, it was hilarious

#

we had a bunch of twitch streams and people spying on each other

#

it was the opposite of a game holding your hand, every progression step was obscure as fuck and you also had to avoid crashes

#

opening a door by smashing tumbleweed was 10/10

#

stuff was blatantly like "this is the trigger during development, we'll work out the actual trigger by release"

#

but then Miyamoto moment

dawn flare
#

As someone who loves preservation, I do hope you'll go back to SFA/DP eventually.

#

Nuggs-san doesn't have to mod Metal Gear.

pure radish
#

meh, it's the place where I was accepted ๐Ÿ˜›

#

when you're not welcome somewhere, what are you going to do besides leave

#

I wasn't good enough for the DP community apparently

#

however the MGS1 community found me very useful

#

it goes like this

#

I'm not the only one, the guy who started the decomp had a similar falling out with "the guy"

dawn flare
#

It helps that you come across like a normal rational person

pure radish
#

so it's not like "if everyone else is the problem you're the problem"

dawn flare
#

relatively well adjusted

pure radish
#

in this case we all agreed he was problematic

dawn flare
#

You interested in working with the decomp at all?

pure radish
#

if two people independently have concerns that their work is going to be stolen, no smoke without fire

#

it was the same kinda spidey sense as "maybe I won't walk through that alleyway as I may get mugged with a knife"

pure radish
dawn flare
#

Totally fair!

pure radish
#

"i have a very particular set of skills" to quote a movie

dawn flare
#

See, if I just nudge you into learning romhacking, then we don't need a bounty for integral :p

#

Lol

pure radish
#

i like opening the doors to modding but i am shit at modding

#

the upscaling is basically my greatest achievement

#

in terms of practical usable outcome

#

i love working in the unpractical space, so i come up with all sorts of shit that nobody cares about

#

then i have to justify it by bolting on a practical feature like upscaling

#

so people are like yay upscaling but not "yay x86 hooking revolution"

#

but im kinda equally excited about both

pure radish
dawn flare
#

Heyoooo

dawn flare
pure radish
#

and man we tripped together on shrooms and had a true "heart to heart" so im not sure what she was expecting

pure radish
#

those tools started life before the upscaling was even working, but the upscaling is the demonstration

#

3.0 is proof of the underlying tech

#

i wouldn't have really been able to hook a million D3D11 functions on the 2.x framework

#

now it's so clean you don't even have to think about what you're doing, a chimpanzee could do it

#

some of the stuff I invented here should really just be part of safetyhook itself

dawn flare
pure radish
#

well there's some fairly modern C++ going on

#

it's my playground for that sort of thing

#

I think we're pinned on C++17 at work so I don't get to try the newer language features at work ๐Ÿ˜›

#

(it was C++11 until last year, so yikes)

#

a "module"? what is that

#

certified module moment

#

i think only MSVC has relatively functional module support, GCC and LLVM are somehow actually behind MSVC

#

but FunctionTraits combined with safetyhook is OP

#

M2Fix uses it for basically dynamic dispatch of the hook's original code respecting the calling convention

#

which matters a lot in M2 games because they use multiple calling conventions in anger

#

the emulator core is usually fastcall but the squirrel stuff is cdecl, and then stuff like d3d11 is obviously stdcall

#

that's what i mean by "this should be in safetyhook"

#

safetyhook requires that you manage hook objects and know which calling convention is correct, but i abstracted those details out here

#

and if i can do that in such little code it should just be upstreamed tbh

#

but the entire point of the project at this point is for me to probe what is/isn't possible

#

this might not have worked out, but it did

#

and now we are all enjoying the benefit of that for upscaling ๐Ÿ˜›

#

there would have been other ways for sure, but this is extremely clean

#

it's been an interesting lesson in x86 tbh coz previously i had zero experience there, i mostly worked on RISC stuff

dawn flare
#

Simple and clean is the way that you're making my code tonight

#

I want you to know my eyes are both slightly glazed over, and also ๐Ÿ‘€

pure radish
#

and then there is the 32bit vs 64bit thing that M2Fix also has to handle

#

coz for some reason all the PSX m2engage titles are 32bit but everything else is 64bit

#

and i386 and AMD64 are surprisingly quite different

#

tbh this is probably the most complicated thing i've worked on coz it requires basically everything i know

#

it is not trivial at all

#

maybe there's a simpler way to do what i've done but it'd be much less elegant

#

this is actually harder than my day job

#

my day job is making sure the beep boop silicon tapes out on time

#

but M2Fix is like quantum physics

#

I'm the code owner of an emulator at work and it's still easier to work on than m2engage xD

#

one thing pays my bills, the other does not

red cradle
pure radish
#

I'm melting

pure radish
#

you can achieve it anyway via ketchup so

#

but maybe should at least try to disable achievements

dawn flare
#

lolol

#

they deletted

pure radish
#

thats not even a hard boss fight as well

#

its probably the easiest lol

#

wait until he gets to rex

dawn flare
dawn flare
pure radish
#

ninja

#

even ocelot is harder coz you have no health

#

we currently have a heatwave here so dont expect too much from me for a few days

#

i just shut down in the heat

#

glad i got the release out when i did xD

dawn flare
#

All good!

#

I actually have a hard time with Ninja

#

But also, I tend to go a while between replays, so I forget the patterns and some of the more specific tactics

pure radish
#

me when hot

cerulean coral
#

Pera que mi gato se despierte para que veas su epico maullido de agonia

pure radish
#

I wish I could fall asleep

dawn flare
#

I wish you could too, buddy

#

It's what, midnightish?

pure radish
#

3am

dawn flare
#

Gross

#

Work tomorrow?

pure radish
#

yup

#

if it can't be done it can't be done, I tend to make up the hours somehow

#

I'm trying to just be comfortable enough to not want a bullet through my head, but that's not comfortable enough for sleeping still ๐Ÿ˜›

#

again it's the UK where objectively it's not that hot but all the housing stock should be fucking demolished

#

It's like sitting in a car that's been left in the sun all day

#

I'm so low testosterone I have hot flashes as well ๐Ÿ˜›

#

I can be comfortable in one spot and then it spikes again

pure radish
#

only one more day of it...

#

I also purchased a ~ยฃ15 fan today and felt like an idiot doing so because of the total lack of preparation

#

when you purchase consumer goods because the alternative is summoning an ambulance

#

I got back as if I'd been in the shower but didn't bother with a towel and then had to panic assemble the fucking thing

#

this planet is not inhabitable

#

but also separately: the British Isles definitely are not because houses were built for the last ice age

dawn flare
#

Yeeeeeah

#

Definitely consider some kind of portable AC for next year. Try and get one in the spring, before they get scarce

#

Even if it's just for the bedroom to keep you and the cat cool

pure radish
hoary pier
#

Saw Jimmy Carr live in my city last year, very funny British man

humble ravine
#

He lives in the same area as me. See him around coffee shops sometimes but has a bit of a weird energy

pure radish
#

weird energy is his entire thing

pure radish
#

post about me? Pepenga

#

I officially have this diagnosis which if you know the NHS that's not trivial to achieve

pure radish
pure radish
#

tbf it's my primary illness

#

rationally you wouldn't do this shit

#

oh man i just cannot wait for the temperature to crater tomorrow

#

get owned, sol

dawn flare
#

Hahahaha computer programmer

pure radish
#

tbf it is basically a disorder

#

i rewired my entire brain to get as good as i am

#

but the consequence is im autistic now

#

and cannot interact with humans

pure radish
#

I already forget how this works

#

C++ moment

#

I will just assume that it does, and past me was smart

rancid hare
#

lol, now the x86 version of the asi loader dll is also getting flagged as a virus. no winning this game

pure radish
#

sufficiently advanced template code is indistinguishable from alien communication

pure radish
#

it's actually? their problem? and not ours?

rancid hare
pure radish
#

if they want to flag everything that basically uses VirtualProtect, they might as well remove it

#

like, I get it, but I would expect detection to be more advanced such that false negatives are more likely than positives

#

if you're just going to run grep on a PE and feed that into an LLM you're fucking stupid

#

these people at Microsoft are paid btw

#

what did they do on Friday

#

other than make things even more egregious

pure radish
#

my day job just involves a bit too much host platform tithe payment so I am easily frustrated by this crap

#

bro we didn't even notarise our Mac builds also oopsie the timestamp server is down

#

can we release software or what

#

my day job has recently incorporated the novel invention of waiting the usual 5 hours only for Apple to shart, meaning the whole thing needs restarting until I added literal retry loops

#

also: no.

#

imagine being able to distribute software

#

wow that's only what we had 10 years ago

#

also Mac is barely an operating system so they're gatekeeping a food bank basically

#

I will now shut my mouth

pure radish
#

oh my god

#

is it over

#

will I stop drinking fluids only to immediately sweat them back out

#

this planet fucking sucks

pure radish
pure radish
dawn flare
#

How's the temp over there?

humble ravine
dawn flare
#

Warm, but not terrible

pure radish
#

imma move to the north pole

dawn flare
#

Become Canadian

pure radish
#

ooh

dawn flare
#

We own le arctic

#

Except for the Fox Archipelago, off the Alaskan coast.

#

Huh

I never did another MGS1 playthrough to get the Stealth Camo. I should probably do that and wrap up my achievements.

pure radish
# dawn flare Become Canadian

an appealing idea but I'd need to find a partner over there, solo visa stuff seems difficult even if you're qualified

#

if the stars aligned I would probably do it which is not something I understood before

#

Canada is prob more my vibe

pure radish
#

we're down to 19 degrees here today which is closer to my speed laugh

#

still stupid warm indoors

hoary pier
pure radish
pure radish
#

alright hello

#

sorry i had a work party followed by concert the following day

#

i am back

pure radish
#

aha i remember what i was doing

#

trying to refactor the upscaling pass in terms of the "generic" stuff i wrote for the hud

#

then i need to fix a couple issues with the hud

red cradle
#

no problem, you deserved that short break from the 3.0 release

pure radish
#

im kinda surprised this antivirus stuff is still dragging on

#

you'd have thought in the few weeks since release the vendors coulda done some work

#

oh no they di'n't

#

it was RIGHT THERE

#

remember how bad the MC game names were before they changed them

#

Konami presents MGS MC MGS 1 sponsored by Doritos or whatever

dawn flare
#

WHAT ARE YOU EVEN DOING

#

Actually that's correct. Because the 2020 release of MSFS is just "Microsoft Flight Simulator"

pure radish
#

yes but it sucks

#

rename the game

#

they're still updating it

dawn flare
#

The year was only added later to differentiate it from 2024

#

Also, what's your setup?

pure radish
#

3080 & 5800X3D

dawn flare
#

I meant if you had any flight sim peripherals

pure radish
#

oh

dawn flare
#

srry, I am eepy

pure radish
#

I have more simracing gear than flight gear, just a T16000M kit

dawn flare
#

I wish I'd gotten into sim racing, but alas

pure radish
#

I can't quite uninstall 2020 because 2024 being entirely cloud based has broken more than I'd like

dawn flare
#

I don't have the drive space for 2020 anymore

#

I should just uninstall DCS

pure radish
#

just wish we at least had the option to download 2024 or at least some of it

#

it can't be an order of magnitude larger in 4 years

#

I could throw a terabyte disk at it if need

#

ยฏ_(ใƒ„)_/ยฏ

#

Call of Duty is bigger than 2020 xD

#

my Assetto Corsa install is like 500gb also

#

stoopid

#

i think that's even with compression

dawn flare
#

I feel like you can now

pure radish
#

though I should run the compressor again its been a while

#

what

#

download 2024?

dawn flare
#

Yeah, I think the latest SU added the ability to manually dl at least aircraft. Lemme look.

pure radish
#

there is too much stuff in my life to pay attention to

dawn flare
#

All gouda

#

Oh, my DCS is only 320GB

pure radish
#

๐Ÿค

dawn flare
#

My problem is 6GB of VRAM is just not quiiiiiite enough for 2024

pure radish
#

no idea how it performs on xbox

dawn flare
#

Huh. There are tabs for Streamed/Installed, but I don't see how to actually install

pure radish
#

that's how it was on release as well

dawn flare
#

Yeah. I must have imagined it

pure radish
#

frustrating that it could in theory be supported

#

you can see it managing all these virtual packages in the game data area

#

how about we stop with the virtual shit

pure radish
#

ohhhh

#

i bet this fixes my nonsense

#

hmm not quite

pure radish
#

oh

#

im

#

stupid

#

the stuff is working fine this is just one of the HUD bugs i have to fix

#

i was trying to fix it with the wrong mental context lol

#

the bug was in my brain

#

alrighty then

#

back to fixing the hud

#

thats cool tho

#

means i can express the upscaling pass as just

pure radish
#

eyy there we go

#

fixed a few hud bugs with one fix

#

there's a really reliable trigger for detecting the hud drawcalls

#

are all scissor coordinates non-zero

#

from there capture the next 2 drawcalls

#

basically only one of them is as messy as this

#

working well now

pure radish
#

that was quite worth doing, makes it a bit harder for me to screw up DirectX

pure radish
#

previous method was quite glitchy and the hud broke at some angles in first person

pure radish
#

i should really make D3D11 a base class and then have like "D3D11forMGS1" for the tweaks

#

the upscaler can probably stay in the base class as I think it's generic enough that conceivably another game might use

#

when you start reordering game-specific draw calls that's not rly the case

#

no other game has the MGS1 HUD kek

pure radish
#

oh yeah, i can actually do that now

#

since only the deferred/immediate thunks need to be static

#

the underlying implementation can be made virtual

pure radish
#

oof

#

it is now slightly too hot again for me to think

#

good news is this is peak temperature of heatwave #2

#

try again tomorrow wah

#

can we shoot the sun into the sun

plain hemlock
# pure radish

holy shit did you fix the stretched HUD? maybe im not in the know enough but to my knowledge i dont think ive ever seen anyone fix that before on any version
its really funny to me that even the GOG port never got a fix for that

pure radish
#

workin on it yea

#

works well enough for a silly video now

#

no one has had this kind of foothold in MGS1 yet tbh lol

#

power we have now is quite insane

#

and really enabled by MC being the way it is

pure radish
#

waow is the temperature dropping in here

pure radish
#

as when you open an item menu, the drawcall with the non-zero scissor vanishes

#

presumably because it's the map one

#

but its ok, seemingly i can just check if scissor was actually set for that specific drawcall and ignore the values

#

now can i set a breakpoint while also holding a key down in the game