#Modding the MGS1 emulator

1 messages · Page 15 of 1

kindred chasm
#

Or in mgs1's case, the location to it's installed .exe and ask you to run it once

timid hemlock
#

MC collection contains the ROMS, so it would be the obvious choice as a base for the mod

pure radish
#

yeah, it'd be nice to use it as a frontend for a native port instead of emulating a PSX too

#

all the assets are there for every version and it'd be quite elegant to replace the emu

humble ravine
#

The day a decomp releases.... It will become a national holiday

#

Or at the very least; a bank holiday Monday

timid hemlock
#

Yeah, I'm very excited for it... But it'll take some time. When the decomp finishes, someone's gotta make a port. It'll probably be years before we can really play it.

glad frost
#

I think the biggest concern would be if it was charging money, like Yuzu. And really popular at that. Could be wrong though

#

That's kinda crazy to hear there's already plans beyond the resolution mod though haha.

pure radish
#

yeah, theres shitloads to do

#

plans and ideas are a lot cheaper than completing them lol

glad frost
#

haha

#

true

pure gazelle
#

Nvm

pure radish
pure radish
#

ffs lmao

hearty dirge
#

Gotta love the “issues”

pure radish
#

seem to treat bugs as literal bugs that have crawled inside their computer rather than flaws in software that even occur on my own machine

hoary pier
#

This quim024 fellow made a Github account JUST to comment on M2Fix issues asking if there's a workaround lmao

#

Like no dude, if there was a solution then it would be part of the mod

pure radish
#

we have Top Men working on it

#

(ive been taking a break from all this but will be back soon)

fringe shore
#

Just wondering, did Konami update the controls for default steam input yet? I downloaded the latest M2Fix and the controller workaround (thanks for all your hard work btw, this version is awesome now that widescreen and internal resolutions work!) I noticed yesterday it said I was using the official controller layout and not the one I seemingly downloaded before.

#

Because in that case the workaround may no longer be needed

#

But maybe im just not remembering right

#

Just tried it with a controller I never used before and it seems to be working. Unless this is because I have that layout in the controller_config folder

frozen heron
#

hey guys, long time since i haven't been here, since konami already patched pretty much all i worked on, have we figured out how to mod roms yet?

pure radish
#

there's a mod system in M2Fix for applying custom patches to the game

#

wholesale replacing the ROM with e.g. a different game, it's known how to do it but I haven't got round to it yet

#

that would be most useful for restoring the original German release

#

which is effectively a different game

glad frost
glad frost
fringe shore
#

Sweet thanks for confirming!

pure radish
kindred chasm
pure gazelle
#

lol customized control would be insane

glad frost
#

Konami acknowledges that the upscaling method used with the collection was "inadequate," and the graphics are disappointingly at the same resolution as on the original hardware.

pure radish
#

would definitely free up some bandwidth on my side if they took care of that lol

#

this is not quite clear enough language for me to abandon ship tho

copper goblet
#

I find it funny they use "upscaling" to describe it though

#

not wrong, but not appropriate either 😛

glad frost
#

yeah it's a bit curious

#

i'd be surprised if it was the same thing you're doing, i'm imagining something simpler

#

i should watch the video and see if it shines any more light

#

in either case i imagine it would take a long time seeing as they have other issues they want to tackle first like controls etc

copper goblet
#

Even though the general public understands upscaling as the other thing now

glad frost
#

Can just imagine old mate Tanaka-san here in the office like "Nagguzu-san, sugoi ne"

#

MISUTAA NAGGUZU-SAN, MAKE MANY FIX OUR GEEMU. PUREEZU, HERUPU FOR UPSCEERINGU

#

sorry that was a bit racist wasn't it

#

looks like a perfectly personable fellow

#

haha, i'm watching it now, they open with "We received many harsh criticisms from our fans at release, we are truly sorry" 🤣

pure radish
#

please understand

meager ice
#

It sounded like the resolution was just misunderstanding what fans wanted

pure radish
#

what do fans want

meager ice
#

Not 720p in 2023

#

Very confusing you see

pure radish
#

ohh i completely forgot about that

#

yeah, i guess that's what they meant

meager ice
#

I'm surprised they thought people would be content with that honestly

#

If they actually did that is

glad frost
#

as you can see the top one is markedly different, still just being investigated compared to the rest which are actually being worked on

pure radish
#

keyboard controls

#

MGS1 is designed for an octopus to play it

meager ice
#

Maybe they won't suck anymore

pure radish
#

its like playing twister

meager ice
#

2 and 3 are worse with all the action going on

kindred chasm
#

You'd need to be Psycho Mantis to play all the MGS games on keyboard

hoary pier
hoary pier
#

But we're also five months after launch and that hasn't changed so I dunno what the deal is

meager ice
#

Huh. That is really strange

#

They didn’t say the platform the issue was on was it?

kindred chasm
#

Imagine konami is investigating 8k 144fps because of steam forums

#

They mentioned the issue was for all platform

hoary pier
#

But as it is right now the super obvious 720p on PC is probably the biggest issue

meager ice
#

Doing it that way is probably just the better way for everyone probably

kindred chasm
#

Real talk 4k support is just a meme. It's not going to go well if yall seen BFClassic Collection.

hoary pier
#

That's a different game with different visuals and with issues not really related to resolution

#

I don't really get the comparison

kindred chasm
#

That's in regard to 4k, not resolution

hoary pier
#

4k is resolution

kindred chasm
#

Classic Collection upscaled all textures to 4k. Consequence is 60GB filesize on a game normally at 5GB

#

Textures

hoary pier
#

Well textures don't need to be literally at 4k; the games wouldn't even run on most hardware if that were the case. The issue with BF Classic Collection is a lack of compression as well

kindred chasm
#

Can't just increase the scaling without touching textures either, otherwise what's the point

hoary pier
#

Many games get HD remasters with nice textures that aren't 60GB

kindred chasm
#

Yeah, because they aren't upscaled to 4k

hoary pier
#

The game not being blurry as shit on a 4k screen

#

I've played the game in 4k with the HDC textures and it looked fine enough. Just double or quadruple the size of the textures and I don't think anyone would complain. I think you're really overestimating how much space textures take up on other games

cerulean bough
#

Yea you really dont need to touch the textures, they look fine

#

The big issue is the weird effect scaling with resolution

#

Curious now

#

If Konami fixes it, will they also fix the effect scaling issue with it

#

Or just ignore that and let use bump the resolution regardless LOL

north estuary
#

We have a bug here

#

when under water, the camera gets glitchy and Zoom

meager ice
#

Did you change the internal resolution?

glossy thorn
glad frost
#

there's an added layer of confusion though because nugg's current project does increase the internal resolution which for all intents and purposes might be seen as an increase in the resolution of the textures (my description might be off)

#

which, on that note, is probably why @north estuary is having troubles - that resolution mod isn't finished. It's 'meant' to still have bugs

keen wharf
#

I'm sure the rendering resolution will remain 720p for 2 and 3 but they'll change it so that the games don't run in 1280x720 exclusive fullscreen anymore.
There is still some upscaling happening when playing those games as they are but it's the one your PC does automatically when playing in a lower than native resolution lol

#

It can look bad depending on your setup though. By default it's just bilinear filter but you can disable the smoothing when scaling and it can give a pixelated look to the game which can look pretty bad for games like MGS2 and 3.
In other cases it may not scale to your screen at all, it would just leave it in a box

glad frost
#

That makes the most sense, otherwise they're talking remaster territory basically

keen wharf
#

The problem now is that articles are jumping to the idea they'll actually increase the rendering resolution, so most people would now assume we have upcoming 4K support for all games

#

To be fair, it doesn't help that Konami is being a bit vague about it.
They stated the upscaling method is "inadequate" but what exactly do they mean by fixing it?

glad frost
#

yeah it's hard to say

#

media gonna media though

north estuary
#

1080p

pure radish
#

yea it's a known issue

#

internal res boost is basically a preview feature atm

#

it works a little bit better on the PAL versions of the game, but still not perfect

north estuary
#

Damn

#

Well, take your time, i'm sure you'll be able to fix it.

hearty dirge
#

😐

dusty radish
#

yah idk about that...

hoary pier
indigo quartz
pure radish
#

i know the audio system in M2 has a bunch of configurability, not sure how much of that they're using

#

this might be something like the bilinear filter and scanlines where the options were always there, just not quite used in an ideal way

#

I haven't toyed with any of it though

#

didn't they flag it as a known issue?

#

probably worth someone reporting it (politely), they usually tell you if they already know about it

#

probably also needs someone to make sure what the hardware behaviour is first lol

#

guess I could stick it in my ps2 slim

#

basically has a ps1 onboard

#

yeah fuck it why not

#

casually have a ps2 slim on my desk

#

this is really interesting actually

#

how the game should actually look/sound/play

#

component cables, OSSC, wireless controller, hacked PS2, the works Pepenga

#

the dithering is definitely missing

#

looks great on real hw

#

wow i even have analog input working HotPeepoHappy

indigo quartz
#

analog! that's so advanced!

#

your setup doesn't have dithering? was that only the original ps1 hardware?

pure radish
#

it does, i meant the MC release doesnt

#

yeah it doesnt sound like that on my ps2 lol

#

the dithering looks so much better on real HW than I've seen out of duckstation, though

#

but it is all going through an analog signal into an ossc so might be more to do with that

indigo quartz
#

so how does the audio compare to MC?

pure radish
#

MC is bugged and the video is correct

#

sounds like the reverb is broken and is just emitting noise

#

(in MC)

indigo quartz
#

cool thanks for checking

indigo quartz
pure radish
#

huh

#

weird, i saw a reply from them once that basically said they knew about an issue already

indigo quartz
#

Sure it was the same issue? It could be that "Jennifer" just hit the wrong response template.

zinc ferry
kindred chasm
#

Poor Jennifer's not paid enough for this job

indigo quartz
#

There's a skybox bug? What is it?

hoary pier
#

Basically ever since the Substance release the intro cutscene for the Plant chapter has no skybox

#

While Sons of Liberty's sky is actually really impressive and pretty

#

So many people are so used to the Substance sky now that they don't even know there's anything wrong but seeing them side by side it's actually kinda sad it's not there now

glad frost
#

Wow yeah looks like ass by comparison

keen wharf
hoary pier
#

It ruins the continuity a bit too being so dark, since the sun has fully risen by the time Raiden takes the elevator to the roof of Strut A

pure radish
dusty radish
pure radish
#

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⠀⠀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⡀⠂⢁⠠⠁⠈⠄⠀⠂⠁⠀⠀⢀⣤⣤⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣶⣶⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⠐⠀⡀⠂⠁⠀⠀⠀⠀⣀⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢀⠀⡀⠂⠀⠀⠀⡀⠄⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣀⣀⡀⠀⢀⠀⠀⠄⠀⡁⠀⣠⢞⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢿⢿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢧⣫⠄⠀⠂⠀⠂⡀⠁⢀⣰⣏⣾⢿⣿⣿⣿⣿⡿⠿⣿⣿⣿⣿⣿⠿⠿⣿⣿⡇⣼⣴⠈⡿⠟⠻⠟⠿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⡳⣜⢳⡄⠀⠁⡀⠄⣠⠞⡟⣽⣞⣿⣿⣿⣿⣿⣷⣦⡈⠁⠀⠀⠀⢠⢠⣤⢦⣱⡿⣿⡄⢀⢠⡄⠀⣀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣳⡹⣞⡼⡀⠀⢠⣼⣯⡞⣾⣳⢯⣿⣿⣿⣿⣿⣿⣿⣿⣦⣗⡥⣴⣒⣿⣿⣿⣿⣷⣿⡆⠸⢮⣈⢀⣠⢠⡰⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢧⡽⢮⡽⢩⣴⣿⣿⢏⣼⣳⠽⣮⡝⢿⣿⣿⣿⢿⣟⢻⡹⠌⣳⢕⣻⣻⣿⣿⣿⣿⣿⡇⠬⠛⣦⡑⢎⡹⠓⠀⠆⠀⠀⠀⠀⠀⠀⠀⠀
⣷⣹⢫⣴⣿⣿⣿⣇⡾⢧⣏⡟⣶⣹⢣⠙⡿⣜⡳⢎⣳⣴⣿⣿⣤⣌⣁⠛⠻⠿⣿⣿⠃⠀⣠⣾⢷⡈⠄⠁⡀⢫⡀⠀⠀⠀⠀⠀⠀⠀
⣧⣿⣼⣿⣿⣿⣿⣽⣹⢳⡮⡽⣖⢧⣏⢇⣿⣧⣛⡽⣩⡹⣌⢯⠭⣬⠱⡓⣆⠆⡄⢡⣀⠳⢈⠛⠦⠕⠀⠀⠄⢡⢲⠀⠀⠀⠀⠀⠀⠀
⣿⣿⣿⣿⣿⣿⣿⢲⡭⢷⣹⢳⡝⡾⡜⢫⠴⠃⠀⠈⠉⠙⠛⠻⠻⠿⢿⣿⢮⡽⣎⡵⣎⠷⠫⠒⠁⠊⠀⠰⣁⠂⡍⡆⠀⠀⠀⠀⠀⠀
⣿⣿⣿⣿⣿⣿⣏⢷⡹⢧⢏⡷⣹⢓⡱⢡⠒⠞⢶⣣⢦⣤⡀⠀⠀⠀⠀⠀⠈⠉⠉⠈⠀⠀⢀⡠⢴⠠⠄⠂⠜⡒⠤⢹⠀⠀⠀⠀⠀⠀
⣿⣿⣿⣿⣿⣿⢎⡷⡹⡭⢞⡼⣱⢋⡆⠰⣋⠖⡡⢜⡉⠚⠻⠿⢿⣶⣷⣶⡶⠤⡤⢶⣶⢺⡵⠋⠀⠀⠀⠀⠘⠤⠑⢨⡇⠀⠀⠀⠀⠀
⣿⣿⣿⣿⣿⡟⣮⡱⢏⡼⢣⠞⣥⢋⡖⡱⢌⢎⡱⢊⡜⣩⡑⢆⠆⣌⠡⣄⠲⠰⡑⢢⢈⠁⢀⠠⠀⡐⠀⡀⠀⠌⢂⠄⡟⠀⠀⠀⠀⡀
⣿⣿⣿⣿⣿⡟⢦⣙⢮⡱⣋⠞⡴⢩⠲⡍⢎⠦⣱⡉⢖⣡⠚⣌⠞⡤⢓⠤⣃⠣⠜⡠⢊⠌⡄⢂⠡⢀⠂⢀⠀⠌⡀⠂⠂⠀⠀⠀⠀⡔
⣿⣿⢘⣿⣿⡟⢦⡙⢦⢃⠧⡙⡔⢫⡑⢎⡱⢚⢤⡙⢆⠎⣕⠪⡜⡰⣉⠖⡡⢚⠰⡁⢎⠰⡈⠄⠂⠄⡈⠄⠠⠀⠀⠀⢀⡀⠀⠀⢨⣗
⣿⡟⠸⣿⣿⣿⡀⠜⣢⠋⠖⡱⢌⠣⡘⢢⠱⣉⠦⡙⣌⢚⠤⡓⢬⠱⢌⡒⠡⢎⠰⡁⢎⠰⠁⡌⠐⠠⠐⠈⠀⠀⠀⠀⠈⠙⠷⣶⣼⣯
⣿⣇⡘⣿⣿⣿⣷⡈⠄⡉⠆⠱⢈⠂⡑⢂⠳⢌⠲⠱⡌⢎⠲⣉⠦⣉⠦⡘⢡⠊⡔⢡⠊⠔⡡⢀⠁⠂⠄⠁⠀⠀⠀⠠⢀⣤⡀⠈⣿⣿
⣿⢁⠂⢻⣿⣿⣿⣷⡄⠐⠈⠐⠀⠂⠄⠡⢊⠌⡱⢃⡜⠬⡑⠢⢆⡡⢆⡑⠢⡑⢨⠐⠌⣂⠁⠂⠌⠀⠀⠀⠀⠀⠀⣐⣾⣿⣿⣶⣿⣿
⠛⢊⠀⠘⣿⣿⣿⣻⣞⠥⡄⠀⠀⠀⠀⠀⠀⠘⠠⠡⢈⠆⠡⠃⢆⠐⡂⠌⢡⠐⠡⠈⠐⠀⠈⠀⠀⠀⠀⠀⠀⣠⢞⣼⣿⣿⣿⣿⣿⣿
⠁⠀⠀⠀⢹⣿⣳⣟⢾⡹⣜⡡⠂⡔⠀⠀⠀⠀⠀⠁⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⢤⡞⢥⣾⣿⣿⣿⣿⣿⣿⣿
⠀⠀⠐⡀⠨⢳⣟⣮⢏⡷⢎⡵⢩⠰⣁⠂⠄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⢤⡲⢯⡹⢮⢉⣾⣿⣿⣿⢟⣿⣿⣿⣿
⠀⠀⢀⠀⢀⢡⡻⣜⢯⡞⣱⢎⡇⠳⡄⢣⠐⡀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⢄⢢⠳⣜⡲⣝⡣⣟⢡⣿⣿⣿⢟⣵⣿⣿⣿⣿⣿
⠀⠀⠀⢂⠀⠂⣗⢯⢞⡵⣋⠶⣉⠗⣌⢣⡘⢄⠂⠄⠀⡀⠀⠀⡀⠀⢄⡐⢠⢃⡜⢬⢣⡛⡴⢳⡌⠗⢡⣿⡿⢛⣵⣿⣿⣿⣿⣿⣿⣿

woeful flare
#

yeah

dusty radish
cerulean coral
#

I am stuck

dusty radish
pure radish
dusty radish
pure radish
#

alright im back

#

tl;dr i had something else i had to do and i decided i couldnt do any MGS stuff until i finished it....... and then i procrastinated that thing for over a month anyway

#

(i am also having an ADHD assessment rn)

sick osprey
pure radish
#

I'm in the UK and I think the options are doing it via the NHS and sitting through an enormous waiting list, or go private

#

I've gone private for mine

pure gazelle
#

Anyone knows a way to stop steam closing MGS1 game when tabbing out?

pure gazelle
#

I got a big ass monitor hmm 🤔 some part of a screen cut off haha damn it when going to window mode

pure radish
#

ive never had that happen once

#

are we sure its not crashing?

#

would be worth having a postmortem debugger set up to see if something explodes

#

i always run in borderless window though

copper goblet
#

Always good to have one laying around period, if you have the space

#

Found a bug in a MOD before caused by the STEAM overlay because of recent changes since the mod is old, just had to disable the Steam part of the mod

timid hemlock
#

MGS2 and 3 got bumped to 1.5.1 just now. Small patch. Nothing for MGS1.

meager ice
#

Yeah it was for controller rumble

#

MGS1 didn’t have that issue so Konami decided to flip it the bird

pure radish
#

we got a 1.5.00000000000000000000000000000000000000000000000000001 though

#

(when they fixed steam input)

hearty dirge
#

Beggars can’t be choosers

pure gazelle
pure radish
#

ill see if i can reproduce it if i switch to exclusive fullscreen

red cradle
#

https://www.youtube.com/@LLRTV/videos hmmm looks like this channel hasn't release the so-called 3rd Person View Mod yet, they really gonna milk the video contents huh? Also I saw this comment lol

pure radish
#

it'd have been quicker for literally anybody in this chat to do it all by themselves

#

hes milked that shit more than ive milked my entire project

#

hopefully got enough time to ramp-up again this weekend

#

its been a lil bit so need to get some momentum again

#

hard to put the odd spare hour into it when things arent so fresh it needs to be more time rly

pure gazelle
glad frost
#

yeah it's better when you can give it enough time to get into the flow huh

wanton salmon
#

Just tried using mod on ultrawide with fullscreen setting, overall looks good, but most of the cutscenes are broken, I dunno maybe this is just my problem

pure radish
#

hahahahaha wow

#

thanks for sharing that, i didnt see anyone post a screenshot ultrawide

#

i tried to make sure the widescreen hack would work at any aspect ratio, glad it kinda does

#

the cutscene thing is a known issue, happens even at 16:9

wanton salmon
#

As updates come out, I will check how it will work and inform you

#

But in my case it even worked like Widescreen Hack if I turn Screen setting to fullscreen

#

3440x1440 btw

uneven comet
cerulean bough
#

All MGS content creation is just milking views more often

#

And yes, most video essays, especiall if theyre a 5 hour analysis, are milking it hardcore

glad frost
#

I reckon we should start a lil' coffee fund donation for Nuggs

timid hemlock
glad frost
#

:pog:

pure radish
#

thx guys ❤️

chrome path
#

Video from 15 years ago.

#

The game controls as if it's top-down still, and all motion is relative to north. Pressing down invariably snaps you south.

pure gazelle
pure radish
#

no

humble ravine
#

Mans committed

uneven comet
#

I wanna try it out

chrome path
#

800A DBB0 0020

#

Supposedly only works with NTSC.

#

Is a gameshark format code.

#

Can't help you more than that.

#

It's called "Funny Camera"

uneven comet
#

ayooo

#

im about to dump this bad boy and try it out

uneven comet
chrome path
#

He's also messing with the FOV.

#

You can find that value by experimenting with the SCOPE's zoom.

uneven comet
#

somebody called him out and he was like “it takes time to make these videos just wait” but he posted more videos and its been about a month since he said that

#

he posted MGS2 and RE4R

#

dude is milking the fuck out ofnit

chrome path
#

Ignore him.

zinc ferry
#

no it's been 5 months lmao

red cradle
#

ironic

pure radish
pure gazelle
chrome path
#

Cheat engine. Or, it's just not the master collection.

pure radish
#

we need to get gameshark codes working in MC

#

there is some unused cheat system already in MC but its not gameshark

pure gazelle
#

Hmm 🤔

uneven comet
pure gazelle
#

seem only MGS1 carsh me alot

#

I haven't even made it past at beginning for some reason

#

even in window mode

glad frost
#

Are you using the prototype resolution-increase mod from nuggs? If so that's not finished yet

pure gazelle
#

Nah, I don't so I found out there is a ini files in there to mess with borderless / window mode I turn both of them on and no issue now

pure radish
#

32-bit too

#

can we port to it? 🙂

red cradle
#

It's time

pure radish
#

huh, it uses d3d9 rather than d3d11

pure radish
#

all my m2engage signatures from MGS1 are broken in Contra, only the MSVC runtime signatures work so it essentially starts up a plugin that does nothing

#

i doubt there's much actual code change, i just need better signatures

#

lmao. god damn

#

so again squirrel here is compiled with slightly different options

#

somewhere in between MGS1 and bonus content

#

i'll prob get it going, shouldn't take long i've already done it twice

#

its very easy to tell coz the struct offsets differ and integer sizes are doubled

pure radish
#

hmm this makes things somewhat interesting

#

as I can't change the integer sizes statically because MGS1 needs the smaller ones

#

maybe I can do something creative with operator overloading to minimise squirrel code change

#

this all works so far because bonus content is 64bit so they can be differentiated statically, but i don't fancy distributing two separate 32bit builds

pure radish
#

bruh windows can't even do some kinda "fat ELF" thing, but hey I think I got sqrat working

glad frost
#

me, reading this

#

(but still excited to hear the inside progress updates)

pure radish
#

yeah its just a little bit awkward to support and ideally I want to do it without confusing people even more with 3 separate downloads

#

2 is bad enough

#

but there isn't any way around having at least 2 coz windows forbids any concept of mixing the x86 modes

#

by "fat ELF" i'm saying it would be nice if 32bit and 64bit versions could coexist within the same DLL file and the correct one is loaded according to the EXE

#

how does windows always narrowly miss greatness

#

maybe I could have like

#

M2Fix.asi + M2Fix64.asi + M2Lib{A, B, C}.dll

#

where the latter contains the squirrel 3rd party stuff compiled differently for each flavour, matching the supported games

#

but it's still confusing that we use d3d11.dll both 32-bit and 64-bit for MGS1 and BC

#

for the ASI loader

#

I wonder if there's another import MC uses that we could differentiate along

#

that would be a path to just one release zip that could be extracted to any game

#

but dunno if windows craps itself if it tries to import 32bit when 64bit and vice versa, or whether the wrong DLL gets ignored

#

would depend on it getting ignored and going on to find the system DLL

pure radish
#

you know what I reckon there might be more m2engage on steam published by konami

#

yeah, castlevania is too

#

both anniversary and advance

#

all 3 on sale rn

#

im going to hope that these 3 are most similar

pure radish
#

yeah, they are at least self-similar thank god

#

we don't have 5 variants we have 3

pure radish
#

MC imports dinput8.dll, wonder if I can have e.g. 64-bit d3d11.dll and 32-bit dinput8.dll

#

oh wow, yeah that works

#

both games seem happy and loading the mod

#

interesting food for thought, that

#

even this works, no errors, loads all the correct stuff

#

so MGS1 + Bonus could be done with a single zip already without recompiling anything, lol, lmao

#

too good to throw that away for castlevania/contra so I'll have to think some more about the integer sizes over there

pure radish
#

lol, can't even depend on the EXE name anymore

#

contra, and both castlevanias are just "game.exe"

pure radish
#

alright... now it looks at the folder name as well

#

which is set by steam soo

pure radish
#

so assuming if I can resolve the squirrel integer sizes issue the release would have to contain: d3d9.dll, d3d11.dll, dinput8.dll, MGSM2Fix32.asi and MGSM2Fix64.asi... but it should be possible to extract all of that to any game and have it work

pure radish
#

man

#

that integer size thing is such a headfuck of a problem to solve

#

it can obviously be done but whats the easiest / neatest strat

glad frost
#

Haha, I wish I could help

#

does sound like a bit of a pain considering MC has the bonus content which as you mentioned is 'separate' and sounds like it requires an additional fix

#

but yeah also as you said, easy enough to bundle them up with a readme on how to extract appropriately

#

tbf most people probably only care about having the main game 'fixed', unless i'm misunderstanding

pure radish
#

can templates be used for this

pure radish
#

I think templates are the right tool - moved squirrel itself over to templates where I can specify the size of integers to use

#

<never used templates in anger before>

#

and this is definitely "in anger" because it spans the whole code base

pure radish
#

i have returned

#

i think I mostly managed to convert the project earlier but there's a bunch of unresolved linkage I need to sort out, I guess I need to explicitly instantiate some templated stuff

#

i have faith now that it'll probably work out, just need to persevere

#

C++ creates so much code churn, fuckin hell

#

change one thing without it having side effects on the rest of the source challenge

pure radish
#

1>MGSM2Fix.vcxproj -> F:\MGSM2Fix\Release\MGSM2Fix.asi
1>Done building project "MGSM2Fix.vcxproj".
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

#

waaaw

#

carnage

glad frost
#

fuck

#

so how do you handle that?

pure radish
#

the idea is all the squirrel stuff is templated now, so I can differentiate the class/struct layouts at compile time and send each game to the correct specialisation

#

"all" I have to do now is stare at both games and work out where the size differences are and reflect that in the code

#

but that requires less changes to the source than actually transforming all of squirrel into templates lol

#

never really worked quite this heavily with templates before... kind of stunned the proof of concept seems to work

#

ive basically given myself the tools to support both at the same time, just need to actually... support both at the same time now

pure radish
#

anyway, kind of just doing this to warm up again and refresh memory

#

it might seem low priority and silly but i have to get on the magic carpet somewhere lol

glad frost
#

yeah warmup time is surprisingly necessary i've found with coding

#

i mean mine is chump shit by comparison, like basic webdev stuff, javascript etc

#

but similar concepts

pure radish
#

yeah even taking notes won't really help me recover from breaks, working memory is way too abstract for that

#

i'd come back to find even the notes are incomprehensible so i rarely bother lol

#

sort of just have to "do anything" and let the neurons go brr

#

recovering the context to things is hard

glad frost
#

yeah true

glad frost
#

Does the resolution increase with M2 fix work on OG MGS1 or only on Integral?

#

Even in it's current state i mean, not necessarily the end product

pure radish
#

works on any version

#

to be precise it's implemented for the psx system in m2engage

#

so if we loaded other roms for w/e reason it would work there too, and any other m2engage psx title if i ported to it

#

the differences in contra/castlevania are actually seemingly just padding for a certain squirrel class, not integer size (actually struct, everything is struct in squirrel even though it has member functions)

#

I still needed to do all the templating work to differentially implement it, but should be considerably less risky now

#

makes slightly more sense that this happened between game releases now

#

the thing that still boggles my mind is the extra SQObject reference stored in the SQVM, but only on 32-bit builds of m2engage, the 64-bit builds don't have it

#

it's not in the original squirrel source

#

I don't even think it's used - I think I tried assigning it / observing it in memory and it was of no consequence to anything

#

but that is not padding, as it has a non-zero initialiser for a null object (0x100001)

pure radish
#

I've got a couple of things I want to try and do before I return to the GFX stuff: basically get contra/castlevania up and running and then evaluate Sqrat and see if it's useful for cleaning up my code

#

Sqrat I already got building (before I fucked around templating squirrel, but updating Sqrat to handle the templates should just be a copy paste job)

#

C++ is so shit man, why does one change require updating 10000 lines of code

#

last weekend I was literally just copy pasting <things in these brackets>

#

some of the situations it really boggles the mind as to why there isn't any inference for it

glad frost
#

Sounds like one of those situations where there's a bunch of mundane labor that has to be powered through before the actual rewarding work can begin

pure radish
#

yeah i describe it as 'manual labour'

#

don't know if i invented that description for some coding work or stole it from someone else 😛

pure radish
#

the fucking mod has the sq_open function eliminated

#

hahahahah

#

these are looking correct now

#

I'll probably change the template to use an enum rather than a typename but

#

yeah, the sizes match now

#

so in theory... it just works

#

yeees, progress

humble ravine
#

Any luck in fixing the stretched HUD?

pure radish
#

not even trying lol

#

currently not on my radar

#

other emus don't give you that and for good reason, its all SW rendered to the screen

#

bitmaps

#

would need a romhack for every single game version

#

you can completely destroy the GPU and still get the HUD elements 😛

pure radish
#

where the fuk is the padding

#

i need to find a better function to compare lol

pure radish
#

oh shit

#

signs of life

#

what the absolute fuck is going on with SQObject lmao

#

very specifically just this one struct is causing all the issues

#

its doing stuff tho

#

its so close lol

#

plays the intro sequence but crashes once its supposed to display the menu

#

oh

#

oh!

#

I got it!

#

wait

#

did I

#

lmao

#

its at the menu but I think its doing nothing now

#

bbl

pure radish
#

this is actually just asserting in squirrel lol

#

object of unexpected type

#

it's printf

#

hahahahaha

#

now it works

#

ok well, good

#

how do I fix printf

#

game is trying to print something that breaks my mod

#

this is the fmt: "key=0x%08x: start_pad_bits=0x%08x, connected=0x%08x, inputNum = %d -> start_pad_id = %d"

glad frost
#

wow

#

this is some absolute hackerman shit lol

#

progress though!

pure radish
#

looking like some heap bullshit

#

M2Fix has to use the heap allocators in the game, not its own version compiled into the mod as every DLL has its own copy of the standard library

#

basically because Squirrel has to reallocate buffers that were already allocated by the game

#

what seems to work for MGS1 isn't working for Contra for certain sizes of reallocation (seems to be small ones)

#

perhaps not calling the right function after all

pure radish
#

lmao

#

contra does lots of printf("")

#

thx

#

cool, got it working

#

need to port the borderless patch and such - doubt I'll get much hassle from that

pure radish
#

yay, borderless and external res stuff working

#

lets give this a quick test on castlevania

pure radish
#

going thru to convert the template from typename to an enum and wow... this almost looks sane now

pure radish
#

I think I have Sqrat working with the templates... now how do you use Sqrat xD

#

hopefully thats all the boring shit done

#

should be much easier in future to port to other games with their own quirks... can just reuse the mass of stuff I added for contra/castlevania from now on

pure radish
pure radish
#

frankly astonished this all works

glad frost
#

My god

pure radish
#

got that all into a git commit somehow

#

going to try and work in some custom post-build stuff to the project (would be nice if it could build the x86 and x64 artifacts and then zip them up for me)

pure radish
#

cool, new release packaging:

#

a single zip being able to support all the games in one is cute tbh

glad frost
#

yeah that saves you a bit of hassle down the line i guess, for any future updates

pure radish
#

its a nicer user experience too tbh

#

if its just one download and extracting the whole lot to any game just works

pure gazelle
#

What are you working on?

zinc ferry
pure gazelle
#

Ahh

pure radish
#

yeah, any of these will be supported soon:

#

Count Dracula is once more back from the dead...Join the fight against Evil in the Castlevania Advance Collection, a compilation of timeless action-exploration masterpieces!In addition to the three legendary Castlevania games that were first released in the early 2000s, this collection also includes Castlevania: Dracula X and some never-before-s...

Price

$19.99

Recommendations

1364

▶ Play video
#

they go on sale for quite cheap

#

LOL

#

just found even more m2engage games

#

I doubt I'll rush over to them, probably just these 3 in the immediate future, want to make some MGS progress

#

Taito's Darius series began with the titular arcade game, Darius, in 1986 and comprises numerous side-scrolling shooting games released in arcades, many of which were later ported to game consoles.G-Darius is the 4th arcade game in the Darius series of horizontally-scrolling shooting games, which sees the Silver Hawks battling against huge, spac...

Price

$29.99

Recommendations

107

▶ Play video

Darius is one of the pioneers of arcade side-scrolling shoot 'em up games, first released in 1986 in a custom, 3 screen cabinet featuring in-seat bass speakers to deliver the impact of the game direct to the player! The aquatically themed, giant robotic fish bosses and Zuntata-composed soundscapes captured the hearts and minds of arcade goes eve...

Price

$44.99

Recommendations

107

▶ Play video

Ray'z Arcade Chronology, collects the entire acclaimed 'Ray' series of 90s arcade-classic, vertically scrolling shooting games, along with enhanced HD versions of the two 3D titles, into a single, definitive collection!Title lineupRayForceRayStormRayStorm neo-HDRayCrisisRayCrisis HDThe series is known for its lock-on laser, an elegant combinatio...

Price

$49.99

▶ Play video
#

there's also this which has some bastardised m2engage-style filesystem, but I highly doubt its fully m2engage: https://store.steampowered.com/app/2291020/ANONYMOUSCODE/

This is the latest work by STEINS;GATE creator Chiyomaru Shikura, in collaboration with returning staff from the Science Adventure Series.2037. Nakano, Tokyo. Pollon Takaoka and his best friend Cross Yumikawa make a living as a pro hackers wherever they can; wherever hasn't been affected by the "Sad Morning" disaster that occurred February 6th, ...

Price

$59.99

Recommendations

250

▶ Play video
#

so we've got scope for more stuff in future but yeah just contra/castlevania until I make some MGS progress

#

(I need to actually buy these others first, and im gonna wait for a sale lel)

#

anyone know what consoles these original games are from? some 3D-looking stuff there, wonder if we're getting more PSX or summit

#

all I did to find these is google: "steamdb windata alldata"

pure radish
#

tbh the best thing would be for the steamdb guys to recognise m2engage as an engine/middleware in their database, they're identifying unity/unreal/etc now

#

and its not hard to detect if you have the depot keys (aka a purchase)

pure radish
#

ohhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh what

glad frost
#

Colonel, we have a small problem

north estuary
pure radish
#

ok i know whats going on now

#

i think

#

glad i did this otherwise i would've probably gone on a wild goose chase

#

the bugged scenes seem to be snatching defeat from the jaws of victory, incredible

#

kind of an amazing clue

glad frost
#

This is all very intriguing

pure radish
#

sorry for being a bit terse, I was still trying to draw my own interim conclusions from what I was seeing

#

but essentially I figured out how to get renderdoc to work with MGS1

#

and I think what we can see from those two images is

#

first of all, the issue that isn't particularly interesting: there's not enough VRAM in the display viewport

#

but that doesn't explain why shit is fucked up

#

because there's always not enough VRAM, even in gameplay where it works fine

#

and that brings us nicely to the 2nd image, which is from a frame that is normally fucked up and you can only see a tiny part of the water

#

it seems quite clear that under some circumstances, the d3d11 driver isn't using any information from the display viewport in VRAM, and in other cases it is

#

because shortly after it renders the sub, it bulldozes the entire image with VRAM content

#

but that stage doesn't occur in gameplay

#

so there's probably two bits to this: work out what controls this switch in rendering behaviour (mostly academic but worth knowing), and then try to extend the VRAM viewport dimensions (and that will probably also require increasing VRAM size)

#

it seems like that might work, because it's already scaled the image properly - that's why we only see a tiny bit of the upper left corner

#

it just cuts off because the viewport has been exhausted

#

but it's definitely worth knowing why it ignores VRAM in gameplay and other cutscenes

#

that would present a "quick fix" which is to just make it ignore VRAM always (which would get the upres quickly working but would probably look not-as-intended)

#

there must be a reason for it behaving in this way, a rationale

#

and finding the source of that might explain it

#

I'm assuming it's because of deficiencies in the d3d11 backend that leads to a completely inaccurate image where it doesn't reflect PSX effects

#

because the ocean around that sub is looking hella blended and smooth

glad frost
#

It's actually really interesting with that explanation. Very curious what could be the source of that

timid hemlock
# pure radish because the ocean around that sub is looking hella blended and smooth

Looks like the water/wobble effect is broken, maybe it has something to do with the framebuffer. Most of the blur effects in mgs1 are framebuffer based. The wobble effect in that scene also distorts the colorbanding of the background, making it seem much less blended and smooth. I'm sure the image above would look correct if the effect was present. Also, the aspect ratio sort of zooms out, making the colorbanding of the background gradiant less noticable.

timid hemlock
#

I'm also seeing some geometry errors in the submarine model, which is something you typically see if PGXP is enabled. Don't know if you are experimenting with that or not, but it looks a bit like it. Probably a z-buffer thing. So I would say the image looks correct, except for the missing blur/wobble effect, the geometry errors and the zoomed out aspect ratio 🙂 I don't know much about it, but the framebuffer might be broken due to not having access to VRAM, or because the image resolution exceeds the arbitrary VRAM limit. Don't know how the emulation works, but I'm pretty sure the framebuffer needs VRAM to function properly, so maybe the d3d11 backend breaks rendering because it breaks the framebuffer.

pure radish
#

yes, that sounds like GFX programmer speak

#

clueless

#

framebuffer is indeed what I meant lol

pure radish
#

games man. working on them is so multi-disciplinary haha

timid hemlock
#

heh, yeah it's complex. You're doing a great job dude, it's pretty interesting to follow

zinc ferry
#

The stealth camo effect is entirely framebuffer dependent iirc if you need another thing to test that takes advantage of it

glad frost
#

wow, that's valuable info

#

I'm curious, how is it that Duckstation can do widescreen for MGS with the hud intact/non-stretched, but with M2Fix it's a different story?

#

or am I totally wrong about that

cerulean bough
#

Because Duckstation is an entire platform developed by an emulation genius

#

With modularity to incorporate tons of great PS1 emulation techniques learned the past two decades

#

The creator went on to revamp PCSX2 and greatly increase the performance and accuracy of that one too

pure radish
#

yeah im not an "emulation genius" im a feeble semiconductor engineer

#

basically thats it

timid hemlock
pure radish
#

its not impossible to fix it lol

#

there is just no universal silver bullet like there is for geometry

#

doing it generically in another emu such that it works for every game would be difficult

#

in M2 we have an easier time because it only really needs to support MGS

#

but it still requires more effort than geometry

#

at the moment im more worried about actual bugs

dusty radish
#

aye it's that time of year, gonna be seeing the wasps n stuff soon....

pure radish
#

with geometry you've got a dedicated hardware block for computing all the 3D stuff (the GTE) so can simply put your tweaks in over there without messing with the game at all, the game temporarily sees the "wrong answers" but by the time it's all scaled up to the emulated aspect ratio it looks correct

#

but the HUD is just bitmapped and there's no obvious way to filter out exactly the things you're interested in

glad frost
#

Yeah that makes sense in terms of priorities for sure

#

I actually haven't used duck station so wasn't even sure if that was the case haha

pure radish
#

other people are free to work on M2Fix btw lmao

#

im not proprietorial over it, feel free to raise PRs

#

I'd be glad to have less on my shoulders

#

(you will be credited well)

#

if someone wants the HUD scaled properly pls do it

glad frost
#

I wish I had a clue how, sadly I'm just a chump on the sidelines feeding off the results

#

Maybe someone else here has the skills though

#

that'd be rad if you had some help

pure radish
glad frost
#

lmao

#

no can haz 😆

pure radish
#

this is in Windows headers lol

hollow rock
#

Wait, that's actually real. I thought you were taking the piss

indigo quartz
#

Has anyone worked on getting all English text from the NA release into Integral?

#

Like item descriptions and menus and such?

glad frost
#

That would be pretty sweet. I'm guessing it's trickier than it seems at first

red cradle
#

since both JP and EN dub voice clips length is the same it seems

pure radish
#

if something like the CN patch is possible it should be doable

#

im really surprised it hasnt been done already because so many people want it and its so obvious an idea

glad frost
#

actually yeah that's a really good point

pure radish
#

they'd be the best people to ask for advice, seems like they really knew their way around modding the game so asking them to write up their workflow and what tools they used might be helpful

#

looking at the data from their patch I was just very impressed at their knowledge of the game

#

I wouldn't know where to start recreating that, but I'm not a ROM hacker

pure radish
#

what the FUCK

#

this is the syntax

#

template syntax is just total lottery

#

I was trying to do "root.GetValue<int>" and confused as fuck as to why it wasn't allowed

#

IntelliSense gives up with this template stuff beyond a certain point

#

understandable

pure radish
#

yeah the sqrat stuff simplifies so much code lol

#

bit of working out how to use it but it can definitely be used and super beneficial

pure radish
#

Sqrat::Object _emu_task = root.GetSlot(_SC("g_emu_task"));
Seems like the correct thing to do... then you can do _emu_task.template Cast<typename *>(); but no idea what the thing I'm supposed to cast to should look like, yet

#

IntelliSense has just unalived itself with Sqrat though!

#

won't even tell me what functions I can call, I have to guess (or search thru the headers by eye)

#

it'd be nice if I could just declare a class, cast the object to it, and not provide the member function implementations because they're implemented over Squirrel (for which Sqrat should be generating the required call sequence)

#

how to express that is a mystery (like most advanced C++)

zinc ferry
#

I actually started working on an eng integral patch a few months ago.

https://www.dropbox.com/scl/fo/2wtrzam3tdrpgh28hnnve/AG6MEFzb-M5rfimLs9APMa8?rlkey=5gzzyzv59r5afc8yavidqfu0i&dl=0

Use makepsxiso to extract all the data from the CDs
https://github.com/iseeeva/metal
https://github.com/Joy-Division/tools-mgs
These to edit stuff

Use makepsxiso to rebuild the iso file
Then use ppf studio to generate the delta patch

GitHub

Metal Gear Solid 1 PSX Tools. Contribute to iseeeva/metal development by creating an account on GitHub.

GitHub

Contribute to Joy-Division/tools-mgs development by creating an account on GitHub.

pure radish
#

great stuff

#

probably worth putting it on github or summit to encourage help

#

i'm hoping if I find some way of using sqrat it will encourage m2fix contributions because a lot of what makes the code confusing will disappear

#

so while its a temporary headfuck for me its worth it if it works out

hearty dirge
#

The greater good

meager yacht
#

https://youtu.be/ywWwUuWRgsM
I wonder if something like this could be done with PS1 games

Introducing "static recompilation," a process that turns a ROM into a native port before you can say "Kooloo Limpah"
The MM Recomp: https://github.com/Mr-Wiseguy/Zelda64Recomp
Wiseguy's official trailer: https://www.youtube.com/watch?v=GIp7C2ro2T8
Dario's social feed: https://twitter.com/dariosamo
Many thanks to Wiseguy and Dario for providin...

▶ Play video
timid hemlock
#

That pretty insane. Almost too good to be true

pure radish
#

is this just like what Rosetta does on Mac

#

(havent seen the video yet)

hearty dirge
#

Pls do

#

Perhaps a certain game with a fox and dinosaurs could be used

pure radish
#

if there was anything that desperately needed a decomp, over any other game

#

other games want decomps

#

the dinosaur game NEEDED a decomp

#

instead all we got was a discord server full of children

#

like 1% as many personality disorders here than in that place

#

(a bit of self deprecation: I am part of that 1% morphcool)

#

some amount of people with PDs can be tolerated... when everyone has one it descends into chimps throwing their own shit real fast

hearty dirge
#

Damn that sucks to hear, I was really hoping more could have been done with that project

pure radish
#

same

#

the place was so toxic it became impossible to remain enthused about it lol, im not the only one who ended up feeling that way either

#

many such cases

#

once it's lost the zeitgeist due to something like that, yeeeah

#

its possible to stay enthused about projects for ages, it's really just 'people' who have the ability to take that from you

hearty dirge
#

A lot of people became disillusioned and worked just halted honestly. Oh well, maybe one day with a new group of people something can happen.

#

I’m glad you found something else that interested you to work on though

pure radish
#

yeah its weird, its quite low profile considering some of the stuff I worked on in the past but it really captured my interest lol

#

I wouldn't have gotten this far without the squirrel stuff being used in MGS, thats what really got my interest

#

its a great foot-hold

cerulean coral
#

Mi ingles se fue de savatico

glad frost
#

question about the M2fix resolution thing - i may have set it up wrong, or more likely I'm completely misunderstanding what it should result in. But the display is just a 4:3 box in the middle of the screen - big thick black borders on the side, and thin borders on top/bottom.

I'm guessing this is right? or did I set it up wrong. For some reason I thought it was like actually fullscreen and also widescreen

zinc ferry
glad frost
#

i think i've tried with it set to true and set to the display width (some youtube video guide i saw today said to do that - i thought it was weird but gave it a shot)

glad frost
#

but I'm guessing now the youtube might be wrong and the 'widescreen' should be 'true' and not a number

sick osprey
glad frost
sick osprey
glad frost
#

Yeah, 16:9, hence 2560 width and 1440 height

#

uhh... I just realized it was at 2160 for some reason, d'oh

#

aside from that, are there any other changes? is "widescreen" supposed to be 'true' or a number?

sick osprey
#

Like this but yeah
The resolution numbers can also be replaced with 0 which will use your desktop's native resolution.
I'm not sure why the video tutorial has you change the numbers manually considering they're set to 0 by default I believe.

glad frost
# sick osprey

Regardless of setting it to 'true' or a number, it results in this:

sick osprey
# glad frost

Try loading a save? I'm not very familiar with the actual widescreen modification in the game but I think much of the ui is currently unsupported in regards to displaying in widescreen.

#

The widescreen aspect of the m2 fix is pretty new and is being improved still.

glad frost
#

yeah true

#

i mean i can set it to 'widescreen' within the game menu itself, but that's just stretched

sick osprey
glad frost
#

uhh, dont think i've ever done that before. If anything, just right click to set admin permission.

sick osprey
#

I'm case something didn't save?

glad frost
#

Ahh I see what you mean

#

yeah it's saving properly

sick osprey
#

I'm gonna have to hand this one off unfortunately, sorry.
Best of luck to you, but it's getting late and I'm not sure what else it could really be in all honestly.

glad frost
#

Appreciate the help!

glad frost
#

I'm guessing, that since i tried several settings with the same result, that this is actually how it's meant to be currently.
(it's the same in-game aswell FWIW)

pure radish
#

it is expected that you have to use the ingame settings too, it interacts with them

#

this is how it will always be

#

so basically you enable the resolution boost in the ini (and widescreen hack if you want)

#

then you set the ingame screen settings however you like (4:3 or widescreen or whatever)

#

the widescreen hack only turns on for actual widescreen screen settings, so it does nothing when the ingame setting is 4:3

#

in some cases there will be borders at the left and right sides (naturally when not 16:9 or fullscreen on non-16:9 monitors)

#

for NTSC games there is a small border at the top and bottom - but it's like that even without M2Fix

#

I'll look at removing that since some people don't like it, but its very deliberately there in the official release

glad frost
#

Ah yeah I did remember the vertical borders might just be a "thing"

The widescreen settings in game though, even when enabled, just stretch the whole image (eg not just the HUD but also the in game display too).

Whereas I was under the impression it should only be stretching the hud, not the entire display

pure radish
#

I'm not sure why you're confused about this

#

you need the widescreen hack enabled in the .ini for it to not stretch geometry

#

any bitmaps currently get stretched regardless

#

the only reason to have widescreen off in the .ini is if you want geometry to be stretched in 16:9+ mode

#

it definitely works lol

#

on left is with .ini widescreen = false, on right is .ini widescreen = true

#

those are steam screenshots with no cropping, its using the fullscreen ingame setting

#

obv these are on a PAL version as there is absolutely no border on a 16:9 monitor here

#

I would expect that right screenshot to be achievable for you on a PAL version with .ini both Enabled = true and Widescreen = true under Internal Resolution and the ingame screen mode set to 16:9 if on a 16:9 monitor otherwise fullscreen

glad frost
#

Once I get it working I'd be happy to do a more verbose description of the ini

though at the moment, even with .ini widescreen = true and in-game set to 'fullscreen', i get the left image. If that makes sense

#

IE - as far as I can tell, I'm doing what I should be, but it still stretches the display

#

You know what? It is working after all

#

the problem was that it doesn't take effect until you return to the game

#

i.e. - changing it from 'pixel perfect' to 'fullscreen' in-game will stretch the display immediately / make the change immediately, BUT the M2Fix doesn't 'kick in' until you exit the menu and go back to the live game

#

so initially it still appears stretched, and the user thinks 'man this is still stretched, bummer'. It's only upon exiting the menu and returning to the game that it resolves itself and proporitions itself appropriately

#

Alright well glad that's resolved at least 😅

red cradle
#

https://www.youtube.com/watch?v=nL2gwPBSSPk bruh they even didn't publish the mod guide for 1, straight to 2 instead, and it's for the old pc version lol

Welcome to the ultimate Metal Gear Solid 2 experience! Dive into the iconic Plant Chapter like never before with this immersive 3rd Person Mod, bringing new life to an already legendary game. Witness the brilliance of Hideo Kojima's vision in stunning 4K resolution and silky-smooth 60 frames per second.

In this full playthrough, we embark on a ...

▶ Play video
pure radish
#

jesus

#

sry I am temporarily distracted by a thing at work that has got into my head to such an extent that I'm volunteering overtime to finish it haha

#

it was something nobody asked for but I latched onto the challenge

#

shouldn't take too long as I have it done but there are quite frustrating build issues on some hosts to fix wah

glad frost
#

damn

#

what an achiever

pure radish
#

hopefully I can get it sorted today otherwise what are they paying me for kek

glad frost
#

Well I mean... if it's volunteer overtime... they uhhh.... aren't 😅

pure radish
#

oh my god i think I did it

#

some mega hacks involved

#

real career-defining hacks here

humble ravine
#

Nuggs I have a potential project for you I think might be within your domain. It’s outside of MGS. Will DM you.

pure radish
#

sounds interesting and probably quite doable

#

i don't want to pick something else up at the moment though

#

so for these framebuffer effects

#

is the strategy normally that the internal framebuffer size isn't actually changed

#

like the PSX doesn't gain more VRAM

#

like that's looking pretty fixed innit

#

so it's potentially more that parts of the graphics stack are picking up the resolution adjustment where I don't want them to

#

rather than having to change more things I need to change fewer things

#

I mean I have to remember that this is an unusual emulator lol

#

it makes sense that this doesn't change for normal emus

#

as they aren't running x86 versions of playstation libraries

#

all the bits involved here are allowed to cheat and conspire

#

it may be possible in this case to take a different approach

#

since they've basically done the hard work of replacing the PSX libraries in the game code

#

whereas duckstation has to work for everything

#

but just getting it to not freak out in whichever way is easiest would be best to at least prove understanding lol

#

whatever is painting those pixels in the framebuffer is getting fed the "upscaled" values where, in the path of least resistance, I think I don't want that

#

depending on how it handles the framebuffer effects that might mean it basically just looks exactly like a non-upscaled image for those broken cutscenes but it'd be a start, the ingame stuff should be unaffected and still upscaled

#

im glad i have like a million hooks into the GPU now lol, getting going again isnt as much work

floral dock
pure radish
#

I'm not sure I can even solve it like this

#

I think I have to fuck with the actual GPU shaders

#

everything I try on this end is just robbing Peter to pay Paul

#

I see that Duckstation shaders have to compensate for the resolution scale

#

M2's are obviously not doing that

#

would explain why I'm not having much luck lol

pure radish
#

hmm, how can I prove I need to fuck with shaders

#

I really want to get this issue sorted soon coz its become an anchor grinding the overall project to a halt lol

#

what is going on with the shaders here anyway

#

there's D3D shader bitcode and also GLSL shader sources embedded in the EXE

#

is the GLSL just a leftover and the D3D stuff the compiled version that is actually used?

#

ill stick the GLSL stuff up

#

so there's these two - only thing I've done is add newlines and indentation

#

are these even doing anything

#

one of them seems used by the UI and the other by the game

pure radish
#

right nvm

#

one is just a vertex shader the other a fragment shader

#

lol

#

wish I knew even 101 level graphics programming

#

its upsetting how you can spend most of your life mastering one aspect of this field and then have that be utterly untransferable to another lol

glad frost
#

I guess gfx programming is a bit more complex overall though (according to a video about it that was popular last week which I didn't actually watch)

pure radish
#

its a whole different paradigm for sure

#

this would be a lot easier if i'd ever made a game lol

glad frost
#

From what I gather, it sounds as if you're having to reach out and find some kind of 3rd party solution or something similar in order to get it working? Or are you just kind of seeing how they did it/how it's done 'normally'?

pure radish
#

yeah just seeing how it's done normally

pure radish
#

so it's very clear to me that this is a PSX VRAM copy sent to my host GPU

#

identical

#

this is all one single "texture"

#

you don't end up copying an identical arrangement like that by accident

pure radish
#

wow

#

I'm trying to get a GP1 write replacement in

#

very simple function

#

but my replacement just causes a black screen

#

wonder if there's a clue in here

pure radish
#

oh

#

I had the __fastcall in the wrong fucking place

#

(void (__fastcall *)

#

instead of (void (* __fastcall)

#

i wasnt trying to solve that for 4 hours btw lmao

#

their extra GPU cmd doesn't seem to be used by the game

#

good, its the most complicated to reimplement

glad frost
#

Ahhh, syntax errors, they get the best of us 😆

pure radish
#

its valid syntax

#

it just has completely different semantics haHAA

#

there's lots of gfx code I'm clearly not even finding/looking at

#

searching over the same few functions ad nauseam is unlikely to show me anything I haven't already seen

#

i can clearly see what is going wrong it's just finding the correct place to tweak it

#

what the fuck

#

i just captured a frame in renderdoc with the resolution scaling turned off

#

each framebuffer looks quite different

#

the one on the left seems to be host GPU generated

#

but its in the PSX VRAM

#

wheres all the logic for this shit man lol

#

must be not seeing 90% of it

#

i refuse to believe this is all of it

#

"build_rep_image"

#

what the fuck is a rep image

#

i kinda have to assume its at a PSX-level since I think the higher level stuff, the idea is it works for any emulated platform across their entire codebase

#

nuking build_rep_image gets something like this

#

what can that possibly mean lmao

#

aint anybody who knows computer graphics in here

#

unfortunately thats one of the few functions with a name

glad frost
#

Fuck

#

This is a conundrum alright, mgiht be worth thinking about reaching out to other communities to find people who have experience with computer gfx stuff who might shed some light

pure radish
#

i wonder if there's a smarter way of tracking it down

#

i have a habit of falling into tunnel vision at times and end up being inefficient at some tasks

#

gfx stuff is not responsive to many of the tricks I usually pull lol

#

like I can't just stare at the data in a hex editor

#

so what are the appropriate tools

glad frost
#

Yeah I see what you're saying

#

I have no idea, but it sounds as if there's 'something else' that handles the gfx

pure radish
#

Disk.cpp(171): MDiskFileReadTask::ReadRequest(): cannot find file [system/script/init.nut.m].

#

lol

#

at least I can debug the actual process now

#

got this far without ever having been able to debug the game

#

i wonder if time travel debugging now works

zinc ferry
# floral dock

Eli5 / similar issue (from what I'm gathering):

MGS3's depth of field/blur effects aren't actually missing - they were overlays hardcoded to look correct at 512x384, but when the game is scaled up to higher resolutions (720p/beyond) the blur ALSO gets scaled up - making it super duper sharp to the point where it looks like the effect doesn't exist anymore. Gotta figure out what needs to be scaled, and what is supposed to stay static to look right.
(1st shot is PS2, 2nd is HDC/MC)

#

And this one is HDC/MC set to run at PS2 resolution, the effects look correct again.

pure radish
#

here it seems what's going on is there are some scenes where the emulator ignores framebuffer effects (which work fine upscaled) and some where it doesn't (which causes it to look super zoomed in)

#

well, that certainly slows the game down

#

still full black screen lol

#

wonder how big a recording of everything the process ever does up to a broken scene will be

#

this man just wants to write code but I insist this gets resolved first

#

2 FPS

#

correction, 1 FPS

#

thank fuck my day job is easier than this

#

got this far lol

glad frost
#

lol damn

#

so i guess you gotta leave that running, and hopefully since the intro plays first anyway, hopefully that'll be enough?

pure radish
#

the time travel stuff unfortunately doesn't look like it wants to work, it fails when I stop recording

#

what I need to be able to do is visualise framebuffers in memory

#

and use memory watchpoints

#

I can easily do the latter but dunno how to conveniently and quickly do the former

#

maybe I should try debugging via Visual Studio itself now debugging is an option

#

it'll integrate well with M2Fix even if the game is a bit of a black box from VS perspective

cerulean coral
#

lalilulelo

cerulean coral
sick osprey
pure radish
#

there are lots of D3D shaders in the EXE, but two are referenced specifically by the emulator renderer, and seem strongly associated to some GLSL (I assume the two D3D shaders are just compiled versions of that GLSL)

#

disassembling those two is probably not going to achieve much, if indeed they are just what the GLSL suggests

#

unless I can achieve something by monkey patching them

#

im not sure what all the other D3D shaders are for, but they don't seem referenced by the emulator renderer, so

#

maybe they just get pulled in via some dependency and aren't really used all that much

#

seems like those two are the critical ones

#

for the ones I have GLSL for, that is just embedded in the EXE for some reason, even though it uses a compiled D3D version normally

#

the build of m2engage goes to great pains to make sure the D3D versions stay associated to the raw GLSL, so it's very clear which GLSL is represented by which D3D bytecode

#

that is, for these two - if you search for the D3D shader "magic" / signature value you'll find a lot more in there but not convinced the emulator is using them

#

(and those ones don't appear to have GLSL associated in the same way)

cerulean coral
#

I was curious if anyone had extracted the Sound Scope of the player from the PS1 bios.

cerulean coral
#

oh you continue with M2, the lack of money has kept me busy with a personal project and I don't spend much time here anymore, but it is very entertaining to discover more things about those emulators. If one day I have good money I will donate something fair to you

Honestly, no one has ever messed with an emulator as much as they did with the Snes emulator for PS2. I found the way M2 worked interesting, as did the patches for the SourNext versions of Resident Evil, but it takes a long, long time. Good on your progress, especially since you're alone in it.

Lately I'm also interested in making maps for Source (L4D2), and .nut is used for events and logic

pure radish
#

yeah i don't really project hop

#

if i have free time of the hacking variety its spent here lol

cerulean coral
#

time eater (good music)

pure radish
#

see! things are happening 😛

pure radish
#

would be nice to integrate this into Visual Studio itself, but it works!

pure radish
#

I may not simultaneously reverse engineer MGS1 and play F1.

#

I literally do code hacking on my simracing setup.. guess I have to close IDA

#

stupid

zinc ferry
# pure radish I have pushed the Contra/Castlevania support with Squirrel templating chaos (par...

Opened a PR to add the new supported stuff to the readme so people know. :>
https://github.com/nuggslet/MGSM2Fix/pull/31

May want to update the repo's About section to mention it too.

GitHub

Updated to mention support for Contra & Castlevania, removed analog support section as 1.5.0 added it natively. Updated list of known issues so people hopefully (we all know they won't lol)...

pure radish
#

still waiting for those other games to go on sale 😛 would be neat if we could solve the framebuffer FX bug and support basically everything on steam in the next release

#

not gonna rush the next one after the last release, I want it to be an irrefutable improvement

pure radish
#

we can all wait a few days this time! 😛

zinc ferry
#

Contra / Castlevania?

pure radish
#

nah there's some more, hang on a sec

zinc ferry
#

Oh I'm guessing the other M2engage games

pure radish
#

Taito's Darius series began with the titular arcade game, Darius, in 1986 and comprises numerous side-scrolling shooting games released in arcades, many of which were later ported to game consoles.G-Darius is the 4th arcade game in the Darius series of horizontally-scrolling shooting games, which sees the Silver Hawks battling against huge, spac...

Price

$29.99

Recommendations

109

▶ Play video

Darius is one of the pioneers of arcade side-scrolling shoot 'em up games, first released in 1986 in a custom, 3 screen cabinet featuring in-seat bass speakers to deliver the impact of the game direct to the player! The aquatically themed, giant robotic fish bosses and Zuntata-composed soundscapes captured the hearts and minds of arcade goes eve...

Price

$44.99

Recommendations

108

▶ Play video

Ray'z Arcade Chronology, collects the entire acclaimed 'Ray' series of 90s arcade-classic, vertically scrolling shooting games, along with enhanced HD versions of the two 3D titles, into a single, definitive collection!Title lineupRayForceRayStormRayStorm neo-HDRayCrisisRayCrisis HDThe series is known for its lock-on laser, an elegant combinatio...

Price

$49.99

▶ Play video
#

believe these should all work with some small effort

#

and some seem to be 3D which makes things very interesting

#

I know how to add support for these where GFX upscaling stuff (like any GFX stuff) is totally new to me, so

#

this is just a mechanical process of me bringing up M2Fix

#

i'd very much like the next release to sort the framebuffer FX issue (it is "MGS focused" after all) and maybe add these if they go on sale

#

someone asked me if I would remove MGS from the name "MGSM2Fix" - maybe, but after it has matured a lot (so that would include fixing all the MGS issues)

#

it's definitely MGS focused until there are no more MGS issues

#

getting Contra/Castlevania to work was about proving the general idea worked elsewhere

#

ultimately me personally I am here for MGS1 😛

#

so even if I include other stuff I want MGS1 on Steam to be great

zinc ferry
#

Dang just missed the sale by 2 weeks, both G-Darius & Rayz Arcade were half off

pure radish
#

Easiest thing to do is search like "windata" on Google but filter it to steamdb

#

/ alldata

#

but yeah I missed them too after I discovered that trick 😛

#

I'm sure it'll come around again eventually, steam sales are like every other day

red cradle
#

#1168512986491670548 message I guess the next thing can look into is the nes one, see if it can add ips patch support

glad frost
#

Steam Summer Sale should be right around the corner

#

I'm guessing - probably wrong, but guessing - that you could still get it working on MGS first and then 'easily' apply it to those other games later though? If they all share that functionality

pure radish
#

I remember looking at some other patch format and concluding for some reason that PPF was a very good fit for us

#

not sure whether I looked at IPS or xdelta

#

but some aspect of one of them would be somewhat more challenging to support

#

the good thing about the M2Fix patch system is it just depends on Squirrel, doesn't get into the bowels of the emulator core like the upscaling work

#

but yeah I wishlisted those games, waiting for a sale

#

got contra/castlevania on a sale

glad frost
#

Ahh nice

#

yeah the summer sale (biggest of the year alongside xmas) should be end of june, so not that far

pure radish
#

I do have one trait: idiotic levels of perseverance

pure radish
pure radish
pure radish
pure radish
#

hahahahahah

#

they rolled back the volatile changes from C++20

#

committee-designed monstrosity

#

all the arm flapping around standard compliant code yet not a single compiler implementing the entire standard verbatim without caveats

#

F

glad frost
#

woah

#

holy shit

pure radish
#

this game produces some mean looking photo renders

humble ravine
#

You on the Nurburgring?

pure radish
#

Spa

#

top of Eau Rouge (actually Raidillon 😂)

#

its alright, polyphony just happened to add my favourite car of all time to the game

#

it belongs on pornhub really

humble ravine
#

NSX?

#

I’m holding for a M3 touring

pure radish
#

yup NSX 😄

#

massive NSX sucker here

#

lowkey my GT7 balance was skint so I paid in like £15 for this

#

NO regrets

#

its alright, when they inevitably bring the game to PC I'll sell my PS5

humble ravine
#

I’ll keep an eye out for you 😎

pure radish
#

I need to get an NSX framed on my wall

#

at the moment I have Pillars of Creation on canvas

glad frost
#

yeah fuck that does look nice

#

been reminiscing about GT recently 😆 what version is this?

#

hopefully they bring it to steam as they are with their recent games

pure radish
#

GT7 on PS5

humble ravine
pure radish
#

I think I'm all in on canvas tbh

#

lots of wall space here

#

the pillars of creation canvas is bigger than my TV

#

I think I got that (and so big) to get a sense of perspective every day

red cradle
#

https://fxtwitter.com/nanoplasm/status/1798912657594232969 wow, this is the first time of me seeing model swapping for MGS1

https://github.com/virusek20/mint interesting project
"MINT is a CLI archive manipulation and model / texture conversion program for Metal Gear Solid."

Posting this incredible model swap of MGS1 done by virusek20 (who does not have Twitter) and asked me to share! This is a fully playable mod that lets you play as Solid Mint, and took 5 weeks of reverse engineering to set up.

#Fantography #ミントLIVE

▶ Play video
GitHub

MGS Import .NET Tool. Contribute to virusek20/mint development by creating an account on GitHub.

glad frost
#

oh god, it's over... waifu catgirls in MGS mgnGTFO

red cradle
#

I mean we finally have a new tool to do model / texture conversion

#

I recommend to them Nuggs's MGSM2Fix, so they can convert the mod into ppf format patches

woeful flare
#

well shit

#

no PS1 versions have been tested

red cradle
#

oh oops

#

welp, don't know if the PC/GOG texture and model file structure is the same as the PS1 one, but I get it why they want to test it with PC/GOG since it's easily accessible to the files

glad frost
pure radish
#

"am I getting the most from my Visual Studio Professional subscription", my work laptop asks

#

im not paying for it m8

#

wish I could get the company to pay for an IDA Pro + Hex-Rays decompiler licence

scenic kelp
#

I totally bought my IDA Pro copy mgnWave

#

Though I did buy Binary Ninja since it was like 70€ as a student

scarlet harbor
#

Question from a newbie: why is the 4:3 ratio cropped at the top and bottom?

#

Is there a way to get rid of that? I’m playing on Steam Deck

pure radish
#

yeah, don't play an ntsc version of the game

#

tbh getting rid of that only recently crossed my radar as its existence is very very deliberate and i didn't know any better lol

#

the pal versions don't have it

#

will try to get rid of it before next release, don't anticipate any major difficulties there

pure radish
#

oh god, I had a 60gb time travel debugging dump

#

lol

#

found a way to make the bars even worse so pretty sure I can do the reverse

pure radish
glad frost
#

There are times I've said I wish I could assist somehow, to speed things along.

#

this is not one of those times

willow sequoia
#

Hello! I'm trying to fix a big MGSM2fix problem

willow sequoia
#

Basically w/ internal resolution

glad frost
#

it isn't finished yet btw, if you mean the cutscenes

willow sequoia
#

codec numbers wont light up

#

the camera doesnt stick on you when underwater

#

save file name wont load but still playable

pure radish
#

seems that goes to the next part of the gfx stack

#

so maybe there's a clue somewhere in there

#

im still very unclear how the different bits of the gfx stack link together

#

it hasnt revealed itself in the usual obvious way that I stumble upon things when I reverse stuff

#

if its as simple as tweaking some of the parameters sent into that command queue that would be nice

pure radish
#

gw_dx11.cpp:1528: should not be reached

pure radish
#

oh boy

#

what is cmd12

#

thats promising

#

managed to turn all the broken scenes into black screens but everything else is fine

#

I guess it's responsible for doing the framebuffer copy

#

by just rejecting cmd12 and not submitting it to gw

#

the args sent with cmd12 are correct as I'd expect (12, 0xf, 0x140, 0xe0, 0x140, 0x1)

glad frost
#

hmmmm

pure radish
#

whooooooooeeea

#

what the fuck lmao

scenic kelp
#

agreed

pure radish
#

the gfx corruption you can generate while doing this stuff xD

#

things rendered on my computer screen that i didn't think possible

#

sure did just get it to crash in d3d11.CreateDirect3D11SurfaceFromDXGISurface

#

its starting to look like everything at this layer in the gfx stack is behaving correctly and I do actually have to start looking at gw/MDisplay

pure radish
#

hm, i could definitely do with better tooling to dig into this

#

took me a decade to figure out how to write those tools for non-gfx though lol

pure radish
#

ive never been so blind despite dealing with graphical data

red cradle
#

If I understand correctly, currently you're testing with the ui position offset stuff?

pure radish
#

nah, trying to fix the bugged cutscenes which are due to the renderer switching into a mode that emulates the PSX framebuffer effects

#

I need some sorta way to point something at a buffer in memory to visualise the contents

#

I can't turn 1s and 0s into pixels in my mind lol

pure radish
#

its interesting that there's one function within "gpu_draw" which is the underlying "gpu_get_dimension"

#

that is the only one that doesn't receive the native resolution boost

#

if I change what it returns, suddenly it renders in a tiny 224p box in the top left corner

#

if I don't, then it looks like it does in the current M2Fix release

#

that function is essentially responsible for submitting a command buffer to "GW"/"MDisplay"

#

so I think I have to start looking at the layer above

#

it'd probably help if I had less of a bee-line focus on the results and just focused on understanding the graphics stack for a bit

#

simply changing the stuff that goes into the command buffer just leads to weird corrupted shit at most

#

god damn I wish there was a serious engine/gfx programmer that I knew haha

#

I think my observations mean that "gpu_draw" is the wrong place to look (which is the PSX layer) and I need to look closer towards the stuff that turns it into native rendering

#

I'd really like to confirm that though, by visualising the PSX framebuffer