#Modding the MGS1 emulator
1 messages · Page 13 of 1
I'm seeing a theme forming. @red cradle what's your GPU?
I have the same glitch with a 5700XT
AyyyyyMD
well that's going to be a bugger to sort
i havent had an AMD GPU in 10 years
maybe 99999999 too big lol
but apparently needs to be bigger than the window size (???)
one sec
it seems to be the layer size that is causing issues, not the render res
i'll add some ini options to override it
won't put this on github straight away
ill just put it here so ppl can test
nice idea, so it won't have too many hotfixs on github lol
So under [Internal Resolution]
you can specify LayerHeight = num and LayerWidth = num
see if changing that helps on AMD
lol test it with Nvidia gpu, now it have the screen cut off situation again
hmmm if this works for amd users, maybe you have to release two versions for AMD/Nvidia
Do I drop that file and replace old one and add those lines to the .ini?
yup
you'll have to play with the values you set them to
try and see if you can find numbers that work without the image being cut off
That may apply to steam deck too, right?
I believe it uses amd
thats true
fwiw, this is one of the settings I didn't really understand - it seemed to control what the emu reports as the layer position / size to the M2 rendering library (which handles everything, like the squirrel menus)
some of the values control a relative offset
but sorta.. not really
OK, setting those values to my native res kinda works but the right side of the image gets cut off.
basically its confusing and they have strange side effects
yeah, that's the bit I definitely don't get
because I had that issue too until I set it to my native res
but seems some people have the issue with it set to native res, so I changed it to 99999999
and then AMD had issues
try slightly bigger than native res, like 2x
this option doesn't really change anything in the emu internally, it doesn't affect what the PSX side is going to do
its purely for their compositing stuff
"layer" is their terminology - everything that has graphics is a layer
Got it working! Set it to 1440p and looks okay.
what's your native res?
maybe we should just set it at 1440p for everyone :S
seems very arbitrary though
what happens if your native res is 4K
I did notice some suspicious hardcoded values in their code here
I saw a 2560 and thought it was something I patched in ages ago
but nope, it really does have 2560 in it
My native res is 1080, so I just put in the values 2560x1440
But, widescreen still doesn't work.
even with the ingame setting set to 16:9 or fullscreen?
Oh, and only issue I have is that the save load screen doesn't show some text. Look:
Rest seems to work fine.
widescreen seems to work on my end, outside of the underwater camera issue
Is the widescreen setting tied to the in-game widescreen option?
So I have to enable it in-game?
yup
Ah, time to test some more. Will report back.
widescreen in the ini just turns on the "widescreen hack" to correct aspect ratio
but it will only do that if you switched to widescreen ingame
yeah can do that if 1440p works for everyone (???)
can't spend huge amounts of time here for another week or so
but I can do a quick fix
Good news and bad news.
Widescreen works if I enable it in-game as well.
But, cutscenes seem off in both 16:9 and 4:3. It's like they are offset or something. The intro with the submarine I can't see it.
damn
Codec calls look fine.
is this set to fullscreen or 16:9?
Tried both. Widescreen works fine but cutscenes have that issue (in 4:3 as well).
I suppose they are rendering at 1440p and not being downscaled properly.
It's like the image is zommed-in.
Okay, so played around some more with the res settings. No need to put it at 1440p to solve the black right side issue.
Set it to this and looks fine!
LayerWidth = 0
LayerHeight = 1080
wtf..
Figured the issue of right side cutting of must have been the width, and bingo.
Cause vertically the screen looked okay.
However, cutscenes still messed up so it wasn't a scaling issue.
Can only see top part of submarine.
Played a bit and found no issues with intro graphics, menus or codec calls. Only thing messed up seem to be cutscenes and the text on loading screen.
Those issues aside, game looks really good at native res. It only needs geometry correction and this will be the best way to play MGS1. Hopefully you can iron out the remaining issues. I will test any potential fix you provide.
With the internal res scaling disabled, the cutscenes work fine.
lmao
so it's not caused by the GTE, definitely a side effect of the res bump
and it's only some scenes in the cutscene
because inside the submarine is fine
its just outside
lemme try something
Correct. Noticed that too. But who knows how many cutscenes are broken.
lmao that shaky blue line
for dramatic effect
yeah that's probably gonna need some separate fix
it's not really something bugged on my side it just needs separate fixing
I don't know where the logs at 
and then i'll use this if that doesn't fix it
okay i get that same corner issue, will try the file
ah! well
what happens if you set the layer to 2560 1440?
still cut off, but not by too much now
i could try 8K? 😭
do it
roll a 4294967296 sided dice
we have no idea what it's actually doing with this number atm
you won't believe this

still doing the memory card text thing tho
did you try this for the #1168512986491670548 message ?
OH maybe i should do that then
also what GPU / display resolution?
AMD Radeon RX 6750 XT at 1920x1080
in the game dir, "MGSM2Fix.log"
it has shitloads of info
yea that didn't fix it,
horror game
LayerWidth = 0 LayerHeight = 1080 won't do huh...
this suddenly became 10x more interesting lol
i should figure out what these actually do
will be next week tho
Shadow Moses.exe
i can send a log if that'll help at all
....wait do AMD users not have the black bars at the top/bottom of the screen?
would you like one of this result or of the 8k scaling
Getting up to send both old log and attempt to see fix on deck
well
there's one at the bottom?
but not the top
Hm, same. Will try something when I get home, maybe it's trying to scale the viewport to my native resolution (4k) instead of my actual resolution (1440)
for me fullscreen and 16:9 completely fills the entire screen no bars
and the 4:3 options just have the background at the sides and nothing at the top
there's still a black bar at the bottom in widescreen tho, but it seems to work just fine regardless
Add this to the internal resolution section in the .ini (below the widescreen line): LayerWidth = 0
LayerHeight = 1080
i did
That works fine for me. The remaining issues probably need separate fixing.
that resulted in this
setting that to 8K values fixed it enough for me
Is your native res 1080?
Here's log before the layer fix. Going attempt to use new version and grab log it something comes up
I have no issues with codec at all.
does 8K values work for everyone...
Are you using the fix nuggs provided earlier and replaced the one in the game directory?
yes
Well, everything works for me except the cutscene issue and some text not showing in the load screen.
write correctly under [Internal Resolution] for LayerHeight = num and LayerWidth = num?
also make sure not confused the value for Height and Width, since the order is not Width and Height like [External Resolution] in ini lol
Default values work, all i did was change true to borderless and enable internal res
try this
Theres black bars top and bottom but works otherwise
Will do hang on
holy 8k
what a crock of shit
Shit shouldve grabbed log first
Applying the .asi changed nothing for me. Codec missing numbers and save files missing names
If you figure out the cutscene issue, I will test again.
that is also not going to be fixed any time soon
I need to know if 8K works so I can release a hotfix
I cannot work on this much for another week
Log here if you need outside of the other visual stuff it works for me.
The black bar on bottom of the screen looks like the game is too high up? Copyright text looks higher than usual
ffs lmao
Maybe people can send their logs to GitHub and open an issue on your repo, you could get to it whenever you are free? Would be much more organized but idk
i just want to get it to a serviceable state
"you can see most of the game" is serviceable imo
text and shite is noise rn
All these error reports kinda overwhelming I can only imagine
It was bound to happen since everyone's setup is wildly different 
A Rule of thumb would be to test your code on multiple pc’s if you are able 
i don't have access to any
Damn
Maybe for now you could put a disclaimer saying experimental
the whole project is experimental
Lol
Experimentallier than usual
Experment of an expermental project 
You are working miracles with what you have. We should be grateful this is even possible. If only Konami did it themselves. I mean if you figured out a way the developers with all the code knowledge should have an easier time.
it's the stress that fucks me up lol
And with less experience working with the stuff no less. Literally carrying the game
The black bars is present whether I use internal res or not. Lemme hook this up to a TV
black bars seems like their problem not mine
it happens even without M2Fix
but only for some people
seems like the very different results on different machines is caused by them but made even worse by me
Think this is how game companies feel when they release alpha testing?
I get small black bars on top and bottom even without the mod enabled so it's a game issue.
now you know why I have a lot of sympathy for konami
this stuff is hard, okay?
makes me wonder is the game's native res a true 4:3? or it's much more less wide
I bet.. learning the ins and outs of an obscure emu without the source code seems like a real pain in the ass.
Same results when monitor is changed to TV. I don't think the problem's with that?
^ maybe this is the issue
pixel perfect and standard aren't the same, so I think you might be right
Got another rig to test this out
though they are the same if you enable the res hack atm
It's already pixel perfect made with love 
I see why game dev/modding is a nightmare now, i don't think i have the needed patience. You're a saint nuggs.
Konami still hasn't fixed DLC going to steam store ;;
Any chance this will work on US version?
nevermind found it
any software development is a total shitshow tbf
even my day job rn is a nightmare LMAO
The 8k without ini asi the internal res works out of the box
This is for a Cyberpower PC which uses AMD
Same issues reported but otherwise internal res works
ugh, what a deflating day
problems here are just irritating because i released too early and can't really work on it much for a bit
problems at work I'm going to blame on my predecessors for dreadful design
yeah fuck it I haven't even worked on this thing before and it sucks
I might be responsible for MGS1 being fucked but I'm not responsible for the shambles at my day job
you aren't responsible for mgs1 being fucked you're responsible for making it the best it can be despite not having the resources 
Yeah I mean it's pretty damn commendable what you've done nuggs. You may as well be a full-fledged emulator dev at this point
the defaults for that layer stuff is the "8K" values 7680/4320 but you can add LayerWidth/LayerHeight if that doesn't work for you
nobody has complained about the 8K values yet sooo
must be better than 99999999
anything else will have to wait now
Got it too.
will open a report for it on the git
yeah as long as the report isn't like https://github.com/nuggslet/MGSM2Fix/issues/14 send them that way
might be one of the worst github issues ive ever seen
no offense if the person who posted it is in here
it might as well just say ¯_(ツ)_/¯
Oh yeah! Now this works properly
i dont wanna be rude
💀
When alt-tabbing, the game closes.
has anyone else actually ever seen that
(i have not)
I haven't, no, that was a few days after patch 1.4.0 released though so perhaps they were just on an old mgsm2fix version and it was acting up for them?
hard to gauge what the issue is without logs
i've only had that happen once earlier today, i think that's when i was trying some of the things to get the black crop to go away
i can also confirm the issue with underwater stuff and cutscenes is happening with me too, so i guess it's just a wider issue with others
woofed, even
i'm gonna open a pr in a sec for ya adding an issue template so people actually know what they have to post when they open reports lol
its quite funny tho

steam year in review 2024 is gonna be wild
that's a mood lmao.
ohhhh, it's integral with the black bar at the bottom
UK version doesn't have it
interedasting
it's probably because pal tv's were taller back in the day
576 vertical compared to 480
and the collection doesn't take this into account
so it squeezes us into the pal aspect ratio
for some reason
its definitely supposed to handle it properly
code is there to do it
bro the soldiers throw grenades into vents
i only just discovered this
goty.
hmm
it's quite playable like this really
issues arent tooooooo bad
reflection / water effects prob the worst issue
water ur just blind
revolver ocelot cutscene is a bit screwy too
not every part of it
just certain bits
Just replace everything with revolvers when he appears
https://www.youtube.com/watch?v=XVmqWMi_-fM literally this
Till the very end, Liquid believed Ocelot was obsessed with Revolvers...
And he was right.
Interactive WebGL version:
https://parametricavocado.itch.io/revolver
Written and Voiced by Tom Schalk.
Programmed and Animated by Me.
Check out and support Tom's stuff:
WEBSITE: www.TomSchalkArts.com
TWITTER: @TomStheVoice
TIKTOK / INSTAGRAM: @tschalk1...
oh no journalist noticed you lol
nuggers, nuggerers, nuggerins:
nuggerances
raided the emulator and improved it
talking about MGS1 widescreen, I just saw this proof of concept, wtf
https://vxtwitter.com/timsoret/status/1755008546855383152
I built a proof of concept with The Last Night's rendering tech, which would be perfect to faithfully bring PSX classics to new audiences with their crisp original art, except in 16/9 4K HDR 60fps.
【QRT of G…
💖 89 🔁 19
hmm.. maybe they used the og assets for their engine to test it
those who make shaders can achieve good things
This is super impressive but following up with this is weird as hell lmao
Like it looks great but I dunno how he considers this somehow more preservationist than a straight emulation
look at this beautiful ass bug report
I thought that in TR remaster you can change between old and new graphics with a press of a button
Yeah you can
And it's being done by Aspyr who do fantastic remasters of games from that era
I think he fell for some ragebait or something
Yeah maybe
It looks good too. Like how I remember it vs how it actually was
lol I thought something is wrong while testing the CN ppf with this update, I just noticed that you change the Advanced options from "GlobalRAM = / GlobalCDROM = " to "DisableRAM = / DisableCDROM = ", I'm so used to set these options all false, but this time around you have to set them all true.
Sorry for the really long delay on responding but I'm finally over the rona. Yeah so the thing is, you can upscale it to 4k, but the GUI just completely breaks.
I feel personally attacked by this lol
And guys I'm going to say this one more time, if you want a higher framerate for MGS1, black frame insertion with the windowcast core does wonders for the game

time to answer this M2 question once and for all!
Imagine how this fella would look at 4k. You'd be doing god's work nuggs
There's a RE3 mod for it (in case you didn't know):
https://www.nexusmods.com/residentevil32020/mods/25
This is cool but on paper but I hate when people see shit like this and say "This is what rereleases should be." Like no, you want some unreal engine shit, not preservation.
lmao
I only need the v1.2.2 one really
the 3.4gb one has an entire RAM dump in it
including all DLLs
v1.2.2 is my reference for everything
lots of them had resolution patches that arent needed anymore
yes
Colonel's speaking to you nuggs?
W indeed
I tink press shortcut save and load screenshoot or savestate?
Nuggs do you reckon you'll have much luck ironing out the issues with your recent resolution discoveries?
depends if you include the enhancements or just bugs
at this point I've only really investigated one enhancement (PGXP and similar) and it's looking like a solution will be quite bespoke, but perhaps Psy-X & REDRIVER2 can be used for inspiration
"generalised" PGXP in the form that you find in duckstation extensively relies on the CPU telling on itself, but that model doesn't work in M2 because the critical paths are accelerated with native code
the Psy-X implementation demonstrates a different model where the game cooperates rather than the CPU, and that might be more applicable if the accelerators are better understood
as for the bugs, I haven't really investigated them, haven't had much time the last few days
so it's not really in anyone's interest for me to come to a verdict on the bugs given I have about as much information as everyone else atm
it's known that the game uses Psy-Q so I have high hopes for Psy-X being further useful (at the moment I just use Psy-X for its GTE so I can implement the widescreen hack)
m2engage and Psy-X share a lot of ideas, m2engage acts a lot like a compatibility layer rather than a general emulator
I don't have any evidence indicating that these things are intractable and impossible, so hopefully all a matter of time, but that's just absence of evidence not evidence of absence
I mean really, most of the code is not running on the virtual CPU, vast majority is running natively and just making sure the CPU sees the "results" of most expensive operations for the small amount of simulated MIPS code left
calling these things emulators is a bit of a lazy criticism in the way that people describe them... the effort here is staggering for someone to cast it aside with cheap derogatory remarks
Fix Buffer Z 😮
nominative determinism
Aptronymous Stoner PS1 emulator man
nuggs is not real, it is an emulation of human hardware
fungals where its at, shame it didn't stay there for me
I haven't had the time to be a fungal fella in a hot minute but it's always a fun time
Especially Russian glowcaps

alright, completed all primary objectives so can return to my favourite side quest soon
Overpowered level now
okay this face is fucking hilarious to me
he chewed a bee
Snake when eating a lemon
lol
based on the work Nuggs has done I think he is probably able to identify the cause of those
He looks like Joe Pesci
how it feels to chew 5 gum
his senses certainly seem stimulated
yeah, this is probably just tangled up in the PGXP stuff, it's geometry that needs correcting I would guess
it's a precision error
that's "enhancement" not "bug fix"
cutscenes & underwater / text on some machines / screen alignment are the "true bugs"
helps a ton that we have the GTE replaced, makes it much easier to work with that side of things for PGXP
probably going to approach each of these in my usual random fashion so don't expect linear progress, i'll jump around to different things a lot
but they'll all get looked at
https://new.reddit.com/r/metalgearsolid/comments/1aq2zdc/they_did_it_they_actually_did_it_modders_broke/ reddit people are excited about the MGSM2Fix new update
Makes a nice change to the usual "What order should I play the series in" that gets asked every 2-4 hours
Also the obligatory daily "which snake is your favorite?", and "who would win in a fight between these snakes?"
Yeah it sounds like this was well worth the effort, good job.
Interesting about the geometry misalignments.
aight its been 4 months, promoting MGSM2Fix to a faster hard disk 
hard disk? 💀
nah it's soft
nah it did go from a spinning platter to solid state
the old disk is so slow it takes seconds to spin up
Are you getting an m.2 drive while you're at it?
8tb lol
mostly just assign things to drives based on the bandwidth requirements and the likelihood of thrashing write cycles
you must have all the nuget libraries downloaded

but if I totalled up the delays due to the slowest disk in the universe, idk
maybe starts to be non-negligible by this point
also tbf when I created the project I had no idea it would have legs
I think my favourite one was on Gamefaqs going back about 18 years now, where someone unironically asked who would win between Metal Gear Rex and Optimus Prime.
At a certain point you should just tell them to start in a bad order if they can’t use common sense
time paradox, because he knows it will turn out well, have a coffee
started exploring replacement of the GPU with Psy-X since it has PGXP bits & presumably dithering, a little bit more hairy than the GTE but looking broadly feasible
omg just hearing the word dithering makes ecstatic!
That's a halfway house towards just replacing the emulator behind the frontend, right? Wouldn't it be easier to put duckstation behind it?
Or do you relish the challenge?
I mean, there's the launcher...the achievements...
Less of a halfway house
like a 0.0001x-way house
integrating duckstation would be like 1000x the work involved in what I'm trying
the GPU is not the M2 rendering stack
it's specifically the PSX-GPU component
I doubt I will use PsyX_render
that will become very complicated
I'd guess if we touch the renderer it's some small patches, not replacing it
PsyX is nice because it quacks like M2, similar conceptually
and it has very few dependencies so it's easy for me to chop bits in
with M2 you've got a basic instruction set simulator for the game logic, attached to a compatibility layer which is comprised of 100% native code... if we just glance over the small amount of instruction set simulation it's doing, it's just a compatibility layer
also, it's not necessarily the case that these things will stick around longer-term, they're useful as low-ish effort learning experiments to figure out wider M2 stuff overall
could end up doing it and then ultimately go a different way
but if it "works at all" then it'll at least be kept in some form for posterity
learn a hell of a lot more by poking the bear than just staring at it
Roger. My mistake.
Plugins system is nice
analogue pocket
alright I'm done collecting metal gear shit
Metal Gear Shit, also MGS lol
it's come in one of those bloody plastic containers you see around "graded" stuff
...and it's staying there
the only other thing I have with one of those is a copy of skullmonkeys
that one feels slightly redundant
plastic case to ensure the plastic case doesn't get scratched
at least this is defending a box made of card
Metal Boy Solid
Umm good point.
Speaking of puns. Maybe they were wrong calling the third installment Metal Gear Solid, since Solid does not exist yet. And you need Metal Gear Liquid and Metal Gear Eva, and Metal Gear Otakon
I guess the new Metal Gear Delta is a good change
metal gear evangelion? 
It can't be!
im basically decomping the GPU here
well, at least to begin with
i need to get it to the point where it's broken out such that I can even use the PsyX primitives
in essence, obv PsyX doesn't implement the hardware interface since you're just expected to call the GPU funcs directly
it should "just" be reg read / write and a couple other bits
It sounds like a smart approach tbh
Can't build a house (that lasts, that doesn't have issues) unless you dig the foundations first 👍
I also wonder if you might stumble upon anything else while doing that, it might expose something
Or give you new insight into how certain things work
I'm wondering what could be achieved, that other emu's haven't achieved before, besides modding. If game logic could be severed from framerate, 60+ fps could probably be achieved, but I'm sure we won't see that until the decomp is finished. As it is now, it seem that PGXP, dithering and CPU overclock are the only key elements separating this version from Duckstation.
Speaking of mods, have anybody made any mods for this version yet? I haven't seen any so far.
Mods are possible from what I read, the tools are also available to mod mgs1, so… idk maybe no ideas ?
Wonder what the limits of injecting mods are... Probably mainly textures i would guess
..no Thomas the Tank Engine helicopter fight 😦
i hope vol2 has some M2 stuff
$3,000 bounty to whoever replaces Volgin with Shrek
lol model importing is something all games are missing..
One day…
should be able to just dump tomorrow onto this stuff
been a while since I got a whole day at it
gawd, IDA can make pretty ugly pseudocode when it wants to
{
if ( gpu->State == 2 )
{
and it just goes on
no goto, no foreach, no switch
yeah it's very afraid of concocting a switch if it doesn't have the hard evidence of a jump table
but this code was prob a switch statement in the original src
i have the GPU primitive command flow implemented, so I guess somehow need to stuff the command params into the primitive structs for PsyX
? lmao
hmm...
Issue Summary: MGSM2Fix & Game Version Number: Log Files: Reproduction:
I guess I can kind of do the GPU stuff in parallel to begin with
leave the normal GPU in place and snoop on it
IDA has made such a pigs ear of this function that I'm using Ghidra instead
nice, the decomp'd GPU read is equivalent, so I can play the game
ohhh
ohhhhhh
the text issue happens for me on integral now
maybe its just related to the alignment issue
interesting
good if you're getting the errors yourself though, i wonder what caused those issues
like it seems weird to me that the game would mostly work with your resolution bump, but then randomly small parts (eg. snake's face) will be messed up
it's because it doesn't support that GPU opcode
it makes sense for that one
the ones that are missing are ones I would have to supplement as I'm attaching it to a "real" emulator
since this is really designed to build a PSX game from source for PC, you wouldn't need to use those under its intended usage
anyway since I caught a whiff of fixing some of the bugs I'm looking at that now for a bit
I didn't realise some of them weren't actually related to your system, it's actually just that integral is borked
Interesting
And some are related to things like individual resolution/system though you reckon?
i shoulda really tested it better but got carried away lol
Nah, IIRC you were at the mercy of one or two dudes in here screaming at you to hurry up and release it 😂
yeah, the stuff facing the host GPU is all kinds of screwy on different GPUs
but
nobody has complained about those issues since v2.1
so maybe the random values we pulled out of our collective arses work for everyone
I'll try and understand that better at some point but, not while there are real issues to solve
I think everyone is now seeing the same issues and it just depends on which game version you've selected
the european releases are likely all working quite well and just have the cutscene issues
I think I'm near a fix for the integral issues
you are truly a legend 
seems like that's the alignment sorted
it was kind of trying to do the right thing
it had determined the vertical offset should be 8 via (256 - 240) / 2
but that needs scaling up
by the resolution multiplier
anyway, that does mean the solution I had for text issues on the european release won't work for integral
so I might as well bin it and find a better way
why do I get confused between height and width ALL THE TIME doing this stuff
is it just me or is that image still squashed vertically?
maybe that's how the logo is normally
perhaps, this likely isnt the final presentation as I'm still tracking down the text issue which is probably related
but it is ..closer
definitely seems like its supposed to have these borders
coz it'd be even more work to remove them
Ffs lmao
if it doesnt work anymore then what the hell am I doing working on resolution issues haha
Wide snake breaks the game obviously
i really need to refactor this project at some point
its a hell of a mess coz it just ballooned in ways i didnt expect
Said every programmer ever.
hmm, I've designed better things in the past
I think this is due to foresight being almost impossible, there's like a fog of war
dunno what is even possible until its done
Tu, tu, tu, tu tu tu
oh gawd I found a hack that fixes the text on integral but
it cannot stay lol
blink and you'll miss it
what
368
where did this number even come from
PSX-SPX
but that's not the number M2 used
M2 uses 384
well that's an oddity, wonder what happened there
i wonder what the 16 difference is?
it wouldn't be related to the different aspect ratios between integral and OG would it?
the european releases (at least) switch into that 384 mode in some menus (save select & codec)
but integral does not
that's essentially what's buggered up the text in integral
my workaround in v2.0/v2.1 was to not change any of this stuff for the 384 mode
and I cannot for the life of me find some other "reasonable" way to detect things to leave alone, so
I think I'm probably just going to have to solve the actual problem
because I doubt mainstream emulators have hacks like waiting for the 384 mode lol
so when you launch a european release with m2fix currently it's actually hopping back to 384 temporarily in certain situations
but the end result is the same because they're just drawing bitmaps anyway
i'm hoping a fix for "the actual problem" might cover things like the mosaic effect not using the correct pixel data
so you see a cell wall-coloured blur
it all sounds like symptoms of the same underlying disease
sounds like there's some subtle bypass of the usual GPU flow that results in some pixel coords not being scaled correctly
as for why the value differs from PSX-SPX, god knows
didn't somebody say that the game isn't even displaying at the correct aspect ratio even without m2fix
maybe typo lol
it'd help a lot if I had the Psy-Q accelerators reversed but that stuff is extremely weird and I haven't made much sense of it yet
even just matching up the functions to the Psy-Q headers is difficult, it's-it's... oh
penny just dropped maybe there lol oops
those very strange accelerated PCs (almost like vectors) are not called by simulated MIPS code, they're just known addresses that the game-specific Psy-Q accelerators vector to
is my guess
the big chunk of code they removed from each game
alright pretty sure I know how to ID those now then
that'll help a lot because I can then use the MGS decomp to understand the difference in the draw calls used and follow that through m2engage
I wonder if they have anything using that VRAM pointer in the CPU object
CPU is not meant to have VRAM mapped (physically), but... M2
my horrific integral hack (in the absence of the 384 hack) was to snoop the command buffer under the assumption that the GPU doesn't do much work for the broken screens, so it should be reasonably stable and consistent
and... I guess it was, but it's not a proper solution soo
can just about catch the effect of that when it switches display geometry between screens in this #1168512986491670548 message
just monitoring what was most recently popped from the command buffer at the end of the frame p much
yeah i was wondering what i was missing from that video
it's a really weird situation by the sounds of it
can see the screen nyoom off to the top left after the save is selected
anyway, that can definitely be fixed, it's just a case of finding a fix where you can still look at yourself in the mirror afterwards
oof, im here at last
best thing to do with the time I've got tonight is to attempt this and label stuff in my IDA database I reckon
it will be useful no matter what happens
holy SHIT
EA Desktop is the least robust piece of software ive ever encountered
i am CERTAIN
the thing refuses to reinstall because it thinks its already installed but it isnt
proud of my guys on the Origin team for the grift, but holy hell
WHY DOES THIS THING HAVE 20 EXECUTABLES
THERE IS NO RATIONAL REASON
when you have nothing to do so you just invent work
has nobody fucking said "whoa stop"
who goes out of their way to write code to prevent reinstalls
turns out littering my C drive with multiple copies of the software so that the "EADestager" can move the correct one into the original location while logging its attempts to do so didn't make the fucking thing work properly in the slightest
What the fuck EA
Origin should've stayed i don't care if it's outdated, at least it made sense
None should've stayed tbh...
Also nuggs, idk if it'll help, but there's another group that did a decomp of another PS1 title Legend of Dragoon
happy to have a look (especially if it was ported to PC)
lmao in NO sense is EA Desktop installed rn
no registry keys
Origin come back I miss you
"Are you having problems installing or uninstalling a program?"
oddly, both
I have:
C:\EA Desktop
C:\EADesktopDev
C:\outdatedEADesktop
C:\StagedEADesktop
C:\StagedEADesktop.zip
just what in the fuck are they doing
all this to EXTRACT A ZIP FILE
for shits and giggles, you checked HKEY_LOCAL_MACHINE/SOFTWARE/Electronic Arts/EA Desktop, right?
it was definitely worth it for the new ui 
doesnt exist
oh wait, yeah it does
weird that Revo didnt spot that one
alreet, lets see if it can recover from this
dae remember EA Download Manager
those were the days
the days of buying DLC and not actually getting it
oopsie
holy shit I can sign in
all you have to do: reinstall Windows
LMAO
now they don't let you set the install path
because installing it to C:\ root turns your disk into an active warzone
it defaults to: C:\Program Files\Electronic Arts\EA Desktop\EA Desktop\
because obviously it needs to dump all its unnecessary bullshit to C:\Program Files\Electronic Arts\EA Desktop\EADesktopDev\ & C:\Program Files\Electronic Arts\EA Desktop\outdatedEADesktop\ & C:\Program Files\Electronic Arts\EA Desktop\StagedEADesktop\ & C:\Program Files\Electronic Arts\EA Desktop\StagedEADesktop.zip
just keeping all these launchers up to date is insane
i could pay someone full time to keep all the software on my machine up to date
https://youtu.be/uqVPry0kJgE?si=IgPpDCGKhbpuX06r
Here's a video on the preview of Dragoon on PC. It also has some comparison with PS1. I don't think it's out for the public yet but they've made a lot of mileage out of this game, including more work on archer characters and a whole new playable character
In this video, we preview some of the ways video rendering is being improved with Severed Chains. Footage shown here should be treated as an early preview - it will look even better as SC progresses.
Donate to Severed Chains: https://ko-fi.com/monoxide
Donate to Fandom services in general: https://ko-fi.com/drewniverse
Severed Chains is a PC ...
Yeah I remember being forced to use EA app for Mass Effect Remastered
And thinking the exact same
Absolute DOGSHIT software
ABSOLUTE dogshit
Never again. Never, ever again
I just about ceremoniously burned my hard drive once I was finished with it
The AI app is a fucking nightmare
It refused to let me play Titanfall 2 because I previously installed it through Game Pass, even though I'd uninstalled the Game Pass version like a year prior. It took me like two hours to fix it
It also won't let you have both the regular EA app and EA Play installed simultaneously for no fucking reason
nuggs at work right now
ideaman
I returned to social life and lost my mind, I hope to be a fictional character again
my hangovers are so bad man
its hilarious
my brief flirt with alcoholism years ago has had a lasting impact on drinking on rare occasions
i go to these work events to mingle but it means i have to basically take the following day off sick
you're given a lifetime drinking budget at birth... spend it wisely
I just hope that I can release a game for the next generation of Nintendo console. And write again for the love of art, because art heals you 😌
What the
oh god, I was out tonight, drinking with people younger than me... I already know the consequences. Tomorrow is ruined, I'll be in pain, and I've got important stuff to do
Try the gamepass app
you're probably alright until you've had a stint of about a year total drinking on a daily basis for the purposes of getting drunk, but once it's gone, it never recovers
it reached a point where the withdrawal far outweighed any perceived benefit I felt from sedating myself, it was very easy to quit after that
there's a name for it which currently escapes me
where the withdrawal doesn't take as long as you'd expect for it to reassert itself
ah, kindling effect https://en.wikipedia.org/wiki/Kindling_(sedative–hypnotic_withdrawal)
Kindling due to substance withdrawal is the neurological condition which results from repeated withdrawal episodes from sedative–hypnotic drugs such as alcohol and benzodiazepines.
Each withdrawal leads to more severe withdrawal symptoms than in previous episodes. Individuals who have had more withdrawal episodes are at an increased risk of very...
I can manage a night on the odd occasion in a social context but if it creeps to two nights I'm right back in the thick of it
I think it basically just means my hangovers are like a person twice my age lol
excitotoxicity can get to fuck
trying to sleep and being startled awake by minor seizures... nope
Alcohol is real bad for you in the long run, and since we all want you alive and well for our own selfish MGS-mod purposes, I implore you to take up cannabis instead 😆
lol
i basically never touched grass 
vaping and diphenhydramine are all i do nowadays
the latter is a very strange habit to have, but ive heard others who share my mental afflictions reporting similar affinity for it
LOL Cannabis has been my go to vice since Alcohol and Vaping
Helps keep me focused when working but also really helps unwinding
And sleeping LOL
Just keep usage light to avoid turning to a stoner

booze and weed is all a kip needs 
You'll cowards don't even smoke crack
Daaamn, sounds like a rough one 
finally looking at this again
now I understand why they deleted that huge code section
they actually place trampolines in there
god, this is fucking complicated
there's yet another table that maps psyq functions to "command IDs", and the table is used to generate those trampolines
the trampolines call into that magic 0xFFF0 address which is like the main kernel accelerator entry vector
kernel vector then dispatches it to the correct library by once again redirecting the control flow to an individual library's entry vector
its all the layers of indirection lol
its not actually that complicated I guess but it's impossible to track it all in your head
might need to write some script to traverse it for me
for instance: <993DCh, 1>
800993DC in integral is InitHeap, which seems legit
i need like
a script that pulls the function declarations from the decomp, traverses multiple layers of all this bullshit and names the implementation in my DB
huh
hmm
seems like it should be quite easy to replace some libraries with psyx if they all go via this kernel_vector thing
low 8 bits are function ID, high bits are library ID so can filter out ones for e.g. libgpu or libgte
I think I am already hooking kernel_vector
nice nice
libgpu 0x10 seems important m8
ohhh
that might explain one of the bugs haha
the thing that had me confused for a while here is not realising that they'd extended this PSX BIOS mechanism substantially
oh man
libgpu 0x10 is very interesting
I need to create yet more hooking tech for the psyq library func tables
so that's a job for l8r tonight
I seem to exclusively write code for replacing different structs containing func pointers in this project lol
ur quite the hooker 
oh while I was away I realised I don't need to invent more ways to hook these
I can make do with what I've already got
Nice
lmao
touched a nerve have I
The patriot are on their way
im not exactly sure why my reimplemented version of that function causes this to happen
the function is tiny
so I must be missing something subtle in all that stupid control flow stuff
interesting
it's cool that I'm on the right lines with the text bug and such tho
means that some of the "theory" is correct (if you can even call it a theory)
alroot
what the fucks going on here then
maybe im off by one and replacing the wrong function lel
oh, yes, i am
LMAO

whys it so hard to count man
ok so the thing the game calls is 0x510, and 0x50f is LoadImage, so what is 0x510
it does even more control flow dance here
at least this shit makes sense now
Imagine if we... had one of the OG devs here
my mind inevitably goes there on any project like this that I do haha
"if I could just ask X"
though I wouldn't ask anything related to this now
i just need a symbol table for psyq in integral atm
then I can figure it all out
which should be possible with the decomp... in theory
aha
might have something
hahah
what I actually ended up reimplementing was GetTPage
now things get a bit interesting
jumps to this
what the fuk
im amazed this works
im more amazed at the idea that the source code could be considered maintainable
its like a state machine that increments the program counter and uses that to store the current state
address & 3 and you can see it stepping byte by byte
I created a stub binding for psyx gpu:
so I guess eventually I need to plumb it through to what i've just discovered in m2engage
cpu->Reg[29] -= 24;
(cpu->Write32)(cpu, cpu->Reg[29] + 16, cpu->Reg[16]);
(cpu->Write32)(cpu, cpu->Reg[29] + 20, cpu->Reg[31]);
(cpu->Write32)(cpu, cpu->Reg[29] + 24, cpu->Reg[4]);
(cpu->Write32)(cpu, cpu->Reg[29] + 28, cpu->Reg[5]);
(cpu->Write32)(cpu, cpu->Reg[29] + 32, cpu->Reg[6]);
(cpu->Write32)(cpu, cpu->Reg[29] + 36, cpu->Reg[7]);
I assume this is a MIPS stack push/spill implemented in x86...
mad
alright very good sense in how it all works now but its batshit, but very cool
basically having to do this trek for each function from decomp through to the HLE
libgpu calls libetc
this is wild bro
Figure it may be worth tossing here for future stuff to look into
https://youtu.be/DI2d9XWMKic
'Metal Gear Solid: Master Collection Vol.1' is slowly being patched into an acceptable state, but there's still some issues. Most notably, the audio reverb settings are inaccurate to the original. I made this video in the hopes of brining these issues to Konami's attention so that they will be addressed in a future patch.
I also made recommenda...
Konami themselves are working on this
I wonder if all of these shenanigans are due to hardware/limitations at the time? It was 1997~1998, after all
nah its purely a software thing
the BIOS has this mechanism whereby you can call a couple of RAM entrypoints with a function ID and that ends up running BIOS routines according to the specified function ID
M2 seem to have picked it up and ran with it, and made it even more complicated and powerful
they were like "well, what is RAM really" and made these entrypoints "virtualise" a huge amount of code in like a single PC increment
its like what you might consider HLE
so the "BIOS entrypoints" in RAM now facilitate both BIOS routines and a lot of the PsyQ libraries
there's just a lot of redirects, what you have is basically:
after the game code there's a big library block of PsyQ functions (which are erased with FF bytes in MGS m2engage)
the emulator places game-version-specific accelerators over those functions to handle them with x86 native code
those accelerators jump to another accelerator which is not game specific
they then call into the "BIOS entrypoint" area in RAM (which for m2engage also handles PsyQ libraries, this is the extension)
that then figures out which library component is needed, kernel or e.g. libgpu/libgte from PsyQ
dispatches it to the "accelerator" for that library and splits out part of the function ID which represented the actual function within the library and not the library number
that looks up the associated function in a table, runs the handler for it (which does this magic virtual PC stuff in some cases, kinda like a state machine)
then all of that is unravelled back to the actual game code
if you've seen how most e.g. 3DS emulators work
generally they don't care for the low level implementations of various services, its not simulating instructions for the entire OS
its kind of similar here but the design is a bit batshit
im amazed the code was clean enough to reason about and make sense of (I actually wonder how much of this is auto-generated and not written by humans)
idk how familiar we all are with the concept of a program counter but
basically here the program counter can actually point to anything
it can point to truly simulated MIPS code or essentially point at x86 native code
so some parts of RAM don't contain code that will be simulated, it ends up being treated as a magic address where a native function runs instead
that's not the truly mad part however
the mad part is specifically the design of the replacement libraries extending the BIOS mechanism and using PC increments as a literal state machine
im just hella impressed lmfao
we can probably recover a MC german ISO with some of this knowledge now
since those initial game-version-specific accelerators somewhat reveal the quirks of that build
anyway, im going to try and prioritise the text/cutscene issue
tho, pretty sure i needed to figure out all this shit whatever i wanted to do
I assume that PSX BIOS mechanism is inspired by real PC BIOS of the day (but not sure)
i know actually nothing about PC BIOS
it seems like slightly odd design to have stumbled across without prior art
and yeah i'll leave that one to konami for the time being
while they're still actively fixing stuff it's not really worth the free time investment to duplicate their work
analog was fair enough, we got a few months out of it, and probably adding it to m2fix and the subsequent online reporting is what made them realise it was missing
the timing when they acknowledged the issue is a bit sus
Haha, I thought it was just them leaving the big thing until last. Has taken them a while after all. You reckon they didn't even realise initially though?
yeah
it would've been easier for them to actually do it, rather than do what they did
if you arent super duper familiar with playing the game, its easy enough for these things to happen
especially since analog wasnt so widespread on ps1
i don't think they would've suddenly decided to start developing it 2 months ago out of the blue
and just whining about it on forums is likely to be read as "why not 4K 1000fps"
seeing it demonstrated in their own product... and in the news...
they definitely know what we're doing (hdfix and m2fix at least)
how can they not, it's in the news
we've literally bumped their steam reviews for them etc
there was a period where the reviews were just full of mentions of the mods
maybe they should just open source it (^:
also i wont complain if theyre offering contract work :^)
💩
ngl I think ur asking for trouble working on current-gen emulation
I remember feeling quite nervous when that project was originally announced
bad omen
doesnt the actual console facilitate piracy in basically the same way as the emulator at this point
nintendo should consider suing nintendo
i get a feeling they don't have the strongest case here and are just hoping yuzu has no money
¯_(ツ)_/¯
they didn't even leave a GitHub issue first, how impolite
Didn’t they also try and go after Dolphin? Dont think this will go anywhere
I mean it starts with a pretty corrupt definition of what an emulator is
are these the best legal minds in the business? cmon
if that's so, what do they deliver as part of Nintendo Switch Online 
that sort of thing generally makes you more vulnerable to legal shite
they can argue ur profiting
Nuggs thinking
Man, I wish they would hire you 😆
i could only do part time im not quitting the day job just yet 😛
definitely not to work in the video game industry, yikes
this stuff is fine as a side gig
looks awful as your main breadwinner though
speak of the devil https://twitter.com/jasonschreier/status/1762463887369101350
BREAKING: PlayStation is laying off around 900 people across the world, the latest cut in a brutal 2024 for the video game industry
working for smaller companies is much better jeez
Yea Nintendo went after Dolphin
But that was mostly cause Dolphin was on the Steam Store
It was just to block it going up
This Yuzu shit also seems to be happening because Yuzu charges to get their latest version of their emulator
Nintendo probs doesnt like that idea, since it means Yuzu profits over situations like TotK leaking early
Actually, to clarify on the Dolphin situation, Capcom did a review of Dolphin's code for some reason, Capcom then informed Valve that there were private keys being distributed, Valve then reached out to Nintendo themselves to see if they were okay with everything, and Nintendo's lawyers told Valve that the Dolphin devs would have to come to an agreement with Nintendo before release (which being an emulator, would never actually happen cause nintendo), and that response from Nintendo legal was forwarded from Valve to Dolphin's devs. There was never a C&D or DMCA actually filed.
Yea so less of Nintendo actually pursuing any actual action
But more so putting pressure
So Dolphin didnt hit Steam as a result
Meanwhile GBA getting an emulator before the console's release
The thing with emulation was that a legal action did take place back in the late 90s and emulation won. It was what set in stone that emulation is fine.
It's certantly weird they went after yuzu now when we're like 7 years into the console's lifespan lol
Also chose yuzu, not Ryujinx. Yuzu is more actively against piracy, if a game is leaked they make damn sure no work on the emulator is done to improve the leaked game. Ryujinx doesn't give a shit on the other hand...although they may go after them next if they get a result from taking down yuzu
Companies can sue whenever.
Atlus sued RPCS3, the only thing they got out of it was the removal of mentions of Persona 5 on the RPCS3 website. Although I think those are back now, so it was just a waste of time in the end lol.
I'm surprised they care with the Switch being their most popular console, even if it's already being very well emulated(based on the time it took to get here vs release)
I'll probably read more of the doc but something stood out for me there:
"Nintendo also offers a paid subscription service on the Nintendo Switch, which gives users access to over one hundred legacy titles from the Game Boy, Game Boy Advance, NES, SNES, and N64 consoles. In short, the ability to play older Nintendo games on newer Nintendo devices is an important market for Nintendo today and going forward"
I think the aim is not just Switch emulation, but emulation in general, regardless of how old the console emulated is.
If they manage to take down yuzu, likely they'd go after the others next.
Also they make another point that dumping the games from the console you own is also illegal.
Yuzu literally get an update back when the TotK leaked 2 weeks early
That made the game run WAYYYY better
And ofcoruse it was an early access build LOL Which you have to buy into
It wasn't official, at least the pull requests were denied. You had to look for modified builds elsewhere
Im sure thats the exact situation why Nintendo is going after em
I literally bought the early access version for that exact reason

Worked like a charm
I remember some things working but they were not specifically for TOTK. I know non official builds were made to make the game run better
Any pull request was denied on github and even mentioning TOTK running on some builds in their discord server would get you banned lol
Im guessing the issue of contention is the fact Yuzu charges for that early access build
I wouldnt be shocked if this thing settles with Yuzu stopping that
You can compile the early access build, it's open source
And there are places to get it for free. They're not even against you doing that, but they won't exactly help you solve issues if you didn't donate to their patreon
Im not tryna attack or antagonize the issue but
If Nintendo has issues with Yuzu specifically, thats most likely the point of contention
We probs wont even see the result of it beyond whatever it settled behind closed doors
And how Yuzu reacts, IF they have to publicly react in anyway
Such as restructuring things like their patreon
The true preservation game
LMAO why did Capcom review Dolphin's code on behalf of Nintendo
This is the first time I'm hearing of Capcom being involved and I can't find any article mentioning them lol
Well that blew up, huh? If you follow emulation or just gaming on the whole, you've probably heard about the controversy around the Dolphin Steam release and the Wii Common Key. There's been a lot of conclusions made, and while we've wanted to defend ourselves, we thought it would be prudent to contact lawyers first to make sure that our underst...
I think the blogpost should clarify everything
is there any PsyQ documentation available
coz christ
the API a bit of a mess innit
just stumbled into the vsync code

yeah, this is all recompiled shite isnt it
no way they wrote this
hehe llvm go brrr
i think im on to something
bit hard to explain without a video
epilepsy warning on this one
now this might look like a load of old shit
but note which scene is completely missing here
Submarine establishing shot?
yeah, the one that completely breaks with the internal res bump
gonna follow this and see where it leads
too many debug prints here i cant see shit captain
need to turn some off lol
now there's less epilepsy and the sub shows, and only that has epilepsy
and this is achieved in a completely different way lol
im closing in
I do not own claim to own this material. This song is being uploaded for promotional purposes only. See The Social Network in theaters October 1st!
This will help you

https://psx.arthus.net/sdk/Psy-Q/DOCS/ got the docs

how'd this get released 
Woah
Awesome progress there Nuggs but also super interesting document there
Hopefully there's some... ahem... nuggets in there that can help
but really, my first glance at that PDF looks like it's some fairly confidential internal discussions and possibly very pertinent to your current situation
working on the decomp puts you at the same amount of risk
Maybe a lot of these things are more due to the PSX hardware and less so due to the zany antics of Japanese game devs?
Just spitballing, I have no idea. But wondering if people that have worked on PSX games/with the hardware might have some insight
I remember back in the day there was a thing called "Net Yaroze" where Sony sent out special dev Playstation units for regular people to build games with
oh yeah probably if someone has genuine PSX emulation experience they could sort these things quicker than I can
The Net Yaroze (ネットやろうぜ, Netto Yarōze) is a development kit for the PlayStation video game console. It was a promotion by Sony Computer Entertainment to computer programming hobbyists which launched in June 1996 in Japan and in 1997 in other countries. It was originally called "Net Yarouze", but was changed to "Net Yaroze" in late 1996. Yarōze m...
probably won't help as i doubt it's as deep as the stuff you're doing
but maybe some docs along those lines would help
yeah all im looking for is some decent API docs coz the C headers don't have any
and shit has cuhrazy naming

gonna shoot through 1220 pages of this
Just a casual 1220 pages of deeply complex machine-level code 😂
In all seriousness though, it actually looks pretty well laid out and explained. Hope it helps.
Don't burn out!
This function needs the ISO 9660 file system to run properly. Call _96_init() to initialize the system and
_96_remove() to exit the system.
oh well that explains the fucking 96 in the name

this is very useful, already learned a few things that weren't really explained anywhere else
it ends up being pretty clean to replace m2engage playstation sdk funcs
i don't think i actually need this one tho, i only have it because i cant count
http://playlists.net/members/jokkesamen (Spotify Playlists)
https://www.youtube.com/user/joaped/videos (My Youtube Prank Site)
https://www.facebook.com/TheMasterOfSounds (Facebook Page)

classic
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⡀⠄⠄⠄⠄⠄⠄⠄
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⡀⠄⠄⠄⠄⠄
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⠄⠄⠄⠄
⣿⣿⣿⠟⠋⠁⣀⣀⡈⠙⣿⣿⣿⣿⡿⠿⠿⠿⠿⢡⣤⣄⡈⠙⢧⠄⠄⠄
⣏⣉⣀⣠⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠷⠶⠶⠤⣉⠙⠷⣼⣇⠄⠄
⠿⠿⠿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⡀⠄⠄⣿⣿⣶⣈⠙⣄⠄
⣿⣷⡶⠶⠶⠶⠒⠂⠄⠈⣽⣿⣿⣿⣿⣿⣿⣿⣿⣆⠄⣿⣿⣷⡶⠖⠄⣶
⣁⣤⣴⣶⣶⠾⠟⠛⠛⢛⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⠄⣿⣿⣿⣓⠂⠄⣤
⠟⢛⣉⣥⣤⣶⡶⠛⢋⣉⡴⢟⣙⠶⣋⣿⣿⣿⠿⠛⠄⠛⠻⢧⡙⠾⢂⣄
⣾⣿⣿⡿⠓⣀⠐⠲⠞⣡⣶⠟⢁⣴⠽⠛⣉⣠⣶⣿⣿⣿⣶⣤⠉⣠⣌⠻
⣿⣿⣫⣶⣾⣿⡟⣠⣤⣤⠄⣀⣤⣤⣴⣾⣿⣿⣿⣿⣿⣿⡿⢋⡄⢻⣿⣷
Ignoring the bugs, lack of analog, etc., are all the intentional changes made to MGS1 in the MC version now reversed by MGSM2Fix at default settings? None are unaccounted for?
havent seen anything missing, there's almost certainly more differences though, just nobody noticed
Thanks, nuggs. You're a champion.
alreet



