#Modding the MGS1 emulator
1 messages · Page 2 of 1
might not deleted by Nexus, just hidden by the author
…because the guy is distributing a PS1 game?
tbh it was a sketchy mod claiming to extract bins for emulator use and in reality it was just a rom downloader
so i don't blame him
Bruh they reported it with legitimate reason, what's wrong with that. Even people in this thread thought that mod is fishy too
no but don't you find it weird that it straight out put the whole game on it? It's like modding the whole game then just uploaded the game with modified files. I believe even mod sites have its own rules
guys i don't think this discussion should go any further lol
if anything it's slowing down modding
i think we should call it out
just to make it clear modding isn't illegal, downright sharing whole roms is
then again, let's please stop discussing this and get back to work
aight man
Modding isn't a legal grey area. It may be against terms of service, but TOS and EULAs are not legally binding.
Nobody's talking about it there.
oh um
ldksjfldks
what 💀
my goal is to actually report mods that are wrong and/or illegal bro, it's not that deep
but whatever, you do you
damn did the la le li lo lu tell you do that eh?
I don't think they were the only one to report the mod as a result.
bro we had no idea what it was doing until like, two days ago 💀
it's not like we went
"oh we knew it had pirated copies this whole time, we're just sharing it cuz we want to"
we literally made that discovery in these channels
to be more on topic, I've verified that, while the individual files in alldata.bin are compressed using PSB v2 and the alldata.bin itself is compressed using v3, you can actually compress both using any version and it still runs just fine, even though the formats aren't identical. v4 subjectively seems to be the fastest to compress and decompress but I haven't actually done a proper comparison
do we have individual tools for each version?
if so, is it possible to make a software that detects the version and uses such?
if you're using GMWare.M2 / MArchivePacker, they're capable of supporting all versions from v2 to v4 and will detect it automatically in the header (which I assume the emulator is doing as well)
ahh so we've been doing it right, got it
alldata.bin is a psb too?
dumb question actually nvm
it's an mArchive, though it isn't a dumb question because some of the .bin files are actually psb files (like meta_008_0000.bin)
I'm also putting together code to extract pngs and wav files from the textures and audio streams
about that, did we make any progress?
i see it is identified as a psb but gives no data whatsoever
other than stream files which are virtually dump files
also you can actually hear what any of the audio files sound like if you open Audacity, go to File->Import->Raw Data, and select any of the files in /system/sound/, i extracted the streams from the metadata and I just need to add on the .wav header for them to be actual wavs
the only thing i've identified is that the very end of data_008.bin is the same as meta_008.bin, and that it definitely holds the current settings, although it doesn't seem to hold it in the PSB portion of its data, and it's basically unintelligible to me
once we can get a meta_008_0000.bin that actually holds some settings, i would be very intrigued
wym?
in the dotmatrix case you mentioned, I can't actually get the game to save the dotmatrix setting inside the meta_.bin file
for me it always saves settings inside the data_.bin file in the user folder
it's interesting that the meta_.bin folder is called WinBackup though and makes me wonder if maybe the settings will save there on some crash event or something
interesting
for what i read data.bin holds the rom savefiles in cadvc and the mega drive mini
while meta.bin holds main menu settings
what does a main menu setting mean, exactly? one that's set via the main menu's options as opposed to ingame?
precisely
window size, resolution, general settings for the emulator
everything that's outside the rom file
shame that they didn't give us the options to changes those in master collection
CLASSNAME = MGS1
SCREEN_H
RSC_PATH = windata/
WINDOW_DPI_Y
SCREEN_W
WINDOW_H = 1080
WINDOW_DPI_X
CAPTION = METAL GEAR SOLID
WINDOW_W = 1920
VISIBLE
SOFTKEYPAD
EMBED_FONT
USE_DEPTH_STENCIL = 1
RSC_W
RSC_H
M_SPEC = win
FIT_MODE
FULLSCREEN_MODE = 1
FULLSCREEN_TYPE_PURE
SAFE_SCREEN_RATIO_Y
DISPLAYADAPTER_ID
PRINT_CAPABILITY
SAFE_SCREEN_RATIO_X
SOFTKEYPAD_TYPE
MOUSE_TO_TOUCHPAD
WINDOWEDGE_SIZING = 1
WINDOW_VSYNC = 1
D3D_PUREDEVICE
FULLSCREEN_CURSOR = 0
MOUSE_CURSOR
FULLSCREEN_REFRESHRATE
FULLSCREEN_LOGWINDOW
LAST_CLIENT_SIZE_ENABLED
LAST_CLIENT_SIZE_X
WEB_DATA_PATH
EXTERNAL_DATA_PATH
FORCE_TERMINATE_ON_CLOSE
LAST_WINDOW_POS_Y
LAST_WINDOW_POS_ENABLED
LAST_WINDOW_POS_X
LAST_CLIENT_SIZE_Y
BOOT_FULLSCREEN
these seem to all be features on savecfg.txt, found in the .exe
some are hardcoded in it
@craggy ingot
these are meta_008 files i got by changing the settings
self explanatory, align_left is what i got when i changed screen alignment, bg2 is what i got when i changed the emu background, etc
they all have very different footers
wonder how possible it is to get the game to read uncompressed assets on disk instead of that PSB blob
https://www.nexusmods.com/metalgearsolidmastercollection/mods/73?tab=description oh hey, it seems the mod is back, the files size is more reasonable too
Huh, he changed it quite a bit didn't he?
it also doesn't include the emulator or the supposed unpacker and just uses fullscreenizer for... something
"Will include builds for 1080p and 1440p at a later date." (when someone else susses it out x)
IF someone else susses it out. It'd be nice to upscale the image but that seems like it'd be too good to be true

I've just installed it
I still think duckstation looks best
what does the mod do this time
looks like it adds a reshade
epic

i'm trying to add a debugger to the squirrel VM because repacking that file is painful
Supposedly fixes input lag
does it use AMD Anti-Lag+
Do we have any filter mods that work on the US DLC for European copies of the game yet? 🥹
uhhh i still experience input lag
but i might have done this whole thing incorrectly anyway
i disabled some effects and i can't find where they are now, tried a reinstall and now they don't even show up in the reshade list...
@frozen heron alsoooo that bilinear filter patch isn't working for me anymore? even did a fresh install of the game and it's just not giving me the sharp pixels
does it really only work on the c drive like that github issue says? i could have sworn it worked when it was on a different drive
Good on them for trying to improve on it at least.
Don't confidently believe it was a mistake but ah well hope they're able to make something cool
i can interact with the emulator's script VM at runtime now
should be able to add the bilinear patch using a DLL instead of unpacking/repacking alldata
(and do lots of other fun stuff)
:0
ill make it public when it does something useful, atm its only interesting for nerds
breakpoints work 🙂
So that Mod is more than just a reshade, I included the file to put in the installation for a reason
It does force the emulator to run in a 4k window and eliminate input lag
Most fullscreenizers don’t work with it, but the one included does.
Not sure why other ones kill it
Also running windows vista compatibility mode and setting your monitor to 60hz removes sound stutter and frame issues
Windows vista because it forces windows to run an older sound driver that the emulator seems to like more and 60Hz obviously because it locks frames
Also I tried different frame limiting software but none of it seems to work with the emulator properly
Not to brag but my reshade is a far superior CRT filter to anything I’ve seen so far, but I’ve been building them in retroarch for the past year and I have 4 real CRTs for comparison so yeah
Only problem is Cathode has to be adjusted to each and every resolution, so that’s why I haven’t done it yet
4K only atm unless you want to go to the Cathode option and adjust it manually
And yes, it was a mistake. It happens when you stay up 48 hours writing in a language you haven’t used in 6 years. Anyway I’m trying to fix things now, just glad I found this forum.
I tried to get my buddy to check over everything and test it before release but he was busy finishing up his work on the Majora’s Mask decomp, him and his team just reached 100%
Special K wrecks the game. Already tried. Stay far away lol
Check my posts above for the lag input issue. If you re-install you have to make sure you use the replacement option and redownload all of the shaders or it won’t work right. And don’t use the bilinear filter remover and my shader at the same time because I built it with that in mind as part of the blending and actually used it to my advantage
Oh and one more thing, make sure you do NOT enable gsync or freesync. It will throw things off.
I’m mostly just trying to get this thing to a playable state which has been somewhat achieved
Pretty soon this is all going to be almost pointless because
how much less input lag is there
I’ll put it this way, before I did this I couldn’t execute the liquid punch loop. Now I can.
Just use all the settings I mention in the mod/above and it will work
It gets rid of the input lag/jumpy frames/audio stutter
I’ve noticed the audio still stutters a tad bit at times but its WAY less than right “out of the box” so to speak
@finite peak any way to increase the render resolution?
I think the better question is why would you want to?
32 bit era games look absolutely terrible at anything other than 240p or 480i
This kind of gives you a good idea though I know this is an extreme example
Don’t want to get too off topic though, to answer your question no, not with this mod, nor am I interested in it because it ruins the game imo.
native?
Yeah it’s great. Why would you want to upscale 32 bit games? They look hideous upscaled.
Um, tricky question considering it IS an emulator, but yes lol
i'll try to rephrase
is it possible to reverse engineer it enough to source code for compiling it into a pc game opposed to running it through an emulator?
because if so it can open a lot of doors to psx games
i've been wanting to do this for policenauts
yeah i know i'm on that server
OK, so to answer your question, yes, this will run natively on PC
that’s more or less the whole point of decomps
See the mario 64 or ship of harkonian (ocarina of time) as examples
yeah those are exactly my base examples
difference is that sm64 and oot were leaked source codes so it made it a lot easier
Yes, this project will do the same thing once the overlays are done
that's neat
No they weren’t
In fact I know the guy and his team who decomped them
As in real life friends from work
That was not leaked
They used the same de planking methodology that was being used on the GTA decomp before it got assaulted by rockstar
Yeah it’s pretty awesome and will probably be the definitive way to play once released, I’m excited for it!
That….isn’t exactly how that works. It would only speed things up for games that use the exact same engine. However as the AI automated tools learn more and more it may speed up the disassembly process as time goes on
why does it matter to you
I mean I’m just curious, at this point I thought it was pretty much just well known upscaling games from older generations was bad which is why most emulators abandoned it altogether
yea but how does it all change the question
sorry but im annoyed when someone asks something, and others ask why they even want that instead of this or that, or try to say why its bad or something
Oh sorry, I didn’t mean it to seem facetious. I just have no interest in that kind of upscaling anymore
I only upscale the actual output or maybe do a 2x upscale for 480i which I personally prefer but I know most don’t
That and I genuinely think there are a lot of people that still don’t know because CRTs are becoming a thing of the past
MGS Decomp is news to me! Any idea how far along that is?
Also not been following MGS1 MC modding efforts for a little while, is it possible to play in native 1080p there yet?
nope
I see I am not the only one waiting for it haha
Oh shit MM just finished? WOOT! Been hyped to see that one for a bit after OOT finished
mgs1 has been slow
i've been focusing in trying to make emulator settings but i'm on a dead end and no one seems rly interested or is in the same place i am
meanwhile i'm just making a box for a psone
im deep in mgs1 but might take a while for my efforts to bear fruit
oh shit, looks like my script injection is working
now i just need to learn how to write squirrel lol
neat, can see the files its loading
Very nice!
I get it, but I at least got it working on PC pretty decently with those settings and looking pretty good with reshade. Next I’m going to see whats possible with cheat engine
Yeah the decomp is done but not compiled into a playable state yet. Should be done roughly by April.
I’ll have my mod done in 1080p soon. I just got done with my work week so I can focus on that tonight
i might as well be called the "input lag" person tbh
but has anything in the settings been uncovered pertaining to something that could fix it at all? or lessen it?
I really dont notice any added input delay compared to the PS3 version (which does have a small bit of delay)
What im assuming people are refering to as input delay is just the analog stick issue
What resolution are you at?
i haven’t tweaked anything besides the bilinear filter btw
ah crap hold on
there, just put that in your installation folder
Used that if you want fullscreen
also make sure you use all the instructions I posted before
set your monitor to 60 hz, run in vista compatibilty mode
oh right, fullscreenizer
Yeah if you run in the actual fullscreen, you're gonna end up with input lag again
vista compatibility mode is crazy tho LOL
yeah its just because the sound driver is older and works better with that emulator
it gets rid of all the sound crackling and popping
interesting…
60 hz is because the emulator goes haywire when it runs over 60 fps for some reason
I also updated my CRT shader if you want it, but it works with the bilinear filter on so its up to you
haven't put it up on nexus yet
Not sure if we have any cheat engine experts on here but I did find the address that writes movement values to the emulators xinput
00D9147C
currently playing with it to see if I can restore analog movement
Movement Registry Address - 0227487C
appreciate it, looks like this is a problem with the game engine itself so it's probably going to require DLL injection
Are you able to load up specific .nut files with that program you're using?
yeah
can do whatever we like at this point
i'll tidy it up a bit and make some sorta release
just wanted it to do something useful for gameplay before i released it lol
Hell yeah, that'll be awesome. Should be able to load that video options menu then
4K internal resolution and framerate unlock when?
This! I think it's gonna take time though. If the game was native code like the original PC release that GOG sells it would be easier to mod I guess. But I don't think changing framerate is possible, otherwise someone would've figured out by now.
i think we're ready!
so for using the script debugger, it's a bit of a pain but i'll give some instructions. you can do it the hardcore way by just connecting to the socket and sending the packets that you can find in the source code (e.g. with some python)
but that's not great... the way it was historically used is with an eclipse plugin (attached)
it needs a very old version of eclipse which you can get here: https://archive.eclipse.org/eclipse/downloads/drops/R-3.2.1-200609210945/
and similarly, a very old version of java on your PATH, which you can find here: https://mirror.nforce.com/pub/drivers/java_jre/
extract the sqdev plugin and copy it to the eclipse directory, and when you open eclipse you should see syntax support for squirrel as well as a squirrel perspective and debug target
set up the debug target using localhost and the debugger port set in MGSM2Fix.ini, you'll also want to extract the alldata.bin and load the scripts into eclipse so you can do source-level debugging of the scripts
you need the jre-1_5_0_22 file from that link
x86 or x64 shouldn't matter as long as eclipse and java are the same
Alright cool, I’ll look into that soon
Here I was trying to fix it with cheat engine and you go and drop that lol
Probably a way better solution though
DLL can fix basically anything in theory
but when you have something like that script VM in the game it gets complicated to monkey patch things, but it should now be a lot easier as MGSM2Fix can speak the VM's language
has this got anything to do with what you want
what is the analog input problem
currently the controls only go in 8 directions like the PS1 Dpad
presuming thats the question, if not apologies for jumping in unwanted lol
the fix presumably is restoring to 360 degree motion of an analog stick
as right now in MGS1 when you try and do a quick turn or twist around you get a weird diagonal before it corrects to the right way or you cant run exactly precise
Just tested your fix. Works great so far and very easy to install. Hopefully the community finds a way to change the internal render resolution of the game, among other things. Thanks for your work!
Oh man I cant wait for the dithering effect to come back!
Added alot of dolor depth and visual noise I strongly associate to MGS1
there's a lot of analog related scripting and presumably the M2 emulator framework supports it, it's hopefully just a case of going through all the scripts and finding what needs tweaking
lots of references to an emulator log file in the scripts too, would be cool to enable that if it does anything on the retail build
g_emu_task.setRamValue() lol
i haven't really looked at the scripts much yet, was too busy getting the damn thing working
I'm no modder, but I can tell that DLL injection really helps the whole modding a lot easier
Yeah he's right
that's what I was talking about
the analog stick is currently mapped to the D pad and doesn't have real analog movement
which makes some boss fights stupidly harder than they should be
I died like 1 0 times fighting liquid which never happens
granted it was extreme but still, I don't normally have problems with that
but without full analog stick movement, ugh
or the sniper wolf fight
also very terrible
cuz the analog stick is for fast movement and the dpad is for slower more procise scope movement
working out how to call g_emu_task methods directly from C++
Very nice!
think this can spawn a settings menu to change other filters?
we got crt and dotmatrix
there are other filters in the code but i couldnt understand how they work or if they do anything ar all
the code is spaghetti tbh
trying to talk to the EmuTask directly because that seems to actually do things
can't believe how much code they wrote just to adjust settings
nice, i managed to disable the filtering in a better way
directly via EmuTask, i don't need to inject scripts now
sweet
i'm honestly very curious in knowing what the hell is 3d_mode
enabling doesn't work really
i think it needs something else
if, it's supposed to do anything
NoticeMsg__CONFIRM_CHANGE_3D_MODE
hang on
it's all in japanese
lmao
it's definitely not a finished feature if a feature at all
it looks like it was either unfinished or used in debugging
["This title supports 3D TV display.\n \nWould you like to switch the video signal to 3D display mode?"]
well that's boring
REDBLUE_GREY, REDBLUE_COLOR, FRAMEPACKING, SIDEBYSIDE
lol
i'm trying to read the code to see how are you supposed to unlock the secret wallpaper but i really can't read this
local opened = false;
if ( _input.key(KEY.RIGHT) ) {
local item_param = param[_itemKey];
if ( "secretOpened" in item_param && !item_param.secretOpened ) {
if (subitemList[ _ope_mode ].index == subitemList[ _ope_mode ].index_max()) {
if (m_secret_frame >= SECRET_OPEN_FRAME) {
item_param.secretOpened = true;
printf("(%s) Secret opened\n", _itemKey);
opened = true;
}
m_secret_frame += FRAME_KEY_REPEAT_NEXT + (FRAME_KEY_REPEAT_NEXT-1) ; // キーリピートでonになることを考慮
}
}
}
if (m_secret_frame > 0) {
m_secret_frame--;
}
return opened;
}```
this is menu_subitem_window
even if i still don't get it
hmm
it's not really working for me
nevermind i really am fucking daft
i can't get the debugger to work though
https://github.com/ajd4096/inject_gba
had no luck with this, sending in case anyone wants to give it a try
it fails to check headers
alright that does it I'm booting up retroarch and upscaling to 4k because I want to know why so many people want this feature lol
also geometry correction absolutely makes the game unplayble
I don't think modern gamers even know what they are asking for anymore lol
would be nice to get 16:9 in there though, mgs is one of the only original psx games that can do it without showing a ton of garbage hidden off screen
I don't think the MGS build of M2 has anything but PSX support compiled into the exe
you can see strings like emu_psxbase but no other platforms
yeah but it's the exact same structure as other M2 emus
so i assumed, if that thing can manage to replace the gba roms inside alldata.bin, why wouldn't it be able to replace the psx roms?
oh, yeah, well that should (eventually) be possible
we could finally play croc in the mgs master collection 😍
Wait gba? Why are there gba games?
castlevania advance collection was made by m2 aswell
both mgs and cadvc use regular roms for emulation so people modded their own roms into castlevania
But the key difference is roms vs bin images. Not to say you can’t do custom images but it’s a lot more work
Honestly id just be happy if the analog stick worked at this point lol
it only swaps the files and fixes the checksum i assume
it's not really rocket science
it is if we were to do it from scratch
squirrel sometimes uses 0 to mean success and -1 to mean failure, glad i lost some time to that one
difference between sqbool and sqresult
For me I prefer the wobbling unstable geometry with the game's look at OG lower res
But if I want to trun the game at a higher res (which defo does look appealing in its own way)
Defo get rid of the wobble and fix geometry issues
IF you forsake the aesthetics tied to MGS1 in turn for clearer visual
Might as well go all the way
I mean it literally breaks the game. You fall through the floor. You clip through walls. You can’t see lasers. It breaks the skybox. Yeah too many issues.
GOD
i think i've solved a lot of the instability i was seeing
a few issues but the major one that just twigged was the game is instantiating two VMs, not just the one
also got rid of the injection delay so things should be super reliable now
wonder why they have two script VMs
Huh, thats funny, I literally JUST did a playthru on duckstation with its PGXP geometry correction, had no issues
And Ive done it multiple times before, went deep fucking around with the game too
(I assume its PGXP geo correction method, dont know much of how the method works on Duckstation)*
Yeah I did that….what resolution you play at?
I jump thru several resolutions commonly thru it, up to the nearest 1440p neighbor
You tryna use the MC Collection roms for it? That could be the issue youre running into to?
Want to know something interesting?
Ive just emulated MGS1 countless times and had no issues that you described
Those won’t even boot even though they are the exact same image down the kb
Huh, yea something funky then
But I do really appreciate how MGS1 seamlessly works at beautiful settings on duckstation. its usually just drag and drop too
With very little issues
Its MGS2/3 emulation that gives me a headache tho LOL
Wait, two script VMs???
Have you uploaded this update? I haven’t had a chance but I’ll download all that stuff tonight and check it out
oh hey i got the scanlines to work
Wait, are those built into the emulator settings?
its an emulator function yeah
Are there any other options like color correction?
dno i'm not really interested in that sorta stuff just yet
tryna get the tech in place ykno
worry about trying to interact with the emulator before i worry about what the emulator can do
there's also a big difference between: what the emulator can do, and what they have implemented in their scripts
that's why i've been doing things this way which has took a little longer to get going
im assuming whoever implemented the emulator is not the same team that packaged it for an MGS release
but at the end of the day it's a DLL so you can do whatever you want with enough pain and suffering
could replace the whole thing with duckstation after it starts up (^:
oh man
its so stable now
doesnt crash at all while im screwing with it
theres a dotmatrix filter
i already found ab this when i was working on the bilinear patch
hoping to drop a v0.2 tonight
damn, i was so deep into this emulator a few days ago, dipped for a few days, and so much progress happened out of nowhere lol, good job @pure radish
i have a c# project that compresses, packs, and exports the alldata.bin, then unpacks and decompresses everything so i can continue editing and scripting stuff, plus converting psb to json and vice versa (keeping all streams intact), and also doing psb/json to png for the image files, and i'm most of the way towards psb/json to wav for audio
i also spent too much time on making sure the compression and packing occurs in the same order that the original alldata.bin used, so it's md5/sha1 identical if you don't change anything (which doesn't actually do anything and required a lot of extra code lol but the order they compile it in is interesting)
as a side effect of mac being my main platform atm i also made a mac port of sorts, but it's just a .app through wineskin
i was saying (im at work so i can't chat much)
lol, the 3D mode crashes the game
i tried to make a patch for the scanlines and dotmatrix filter and somehow locked myself in dotmatrix beyond reinstall
hence why i'm so invested in investigating the meta_0008 file
i believe that's what stores the values
#1168512986491670548 message
I wonder if the dotmatrix might be improved if the palette type is changed
idk it's a very shitty filter
true, in the code comment it literally says "pseudo-dot matrix" in japanese lol
same with "pseudo scanlines"
did you try turning on "data._3d_secret_opened" before using it?
not really applicable to how I tried to enable it
there's probably more things to try, it might require other prior setup
hmm, i see
btw thanks!
np
there is this possibly relevant function in systemdata_setting_screen.nut:
function SystemDataSettingScreen::set_3d_mode_default(_enable_3d)
{
local mode = M2Epi3DMode.NONE;
if (_enable_3d) {
mode = System.getStereo3DAvailable() ? M2Epi3DMode.FRAMEPACKING : M2Epi3DMode.REDBLUE_COLOR;
}
this.set_3d_mode(mode);
}
looks like it has both stereoscopic and anaglyph 3d which is pretty advanced considering the state of this emulator rn
any chance on increasing the render resolution
possibly? i dove into the (currently missing) screen settings, and one that stuck out to me was a setting called "data._40_high_resolution"
if there's support for "high resolution" that could mean the emulator has built in support for different render resolutions in general
when it has a line like
return System.getDebugBuild();
where exactly is it referring to by System?
(a nut file has that, specifically)
native code
the scripts can invoke functions in the exe
System is a native class
this is why DLL FTW
oh shit, I was wondering when that limitation was gonna pop up lol
i'll have to use your debugger to get any further with that, yeah?
it's not really my debugger it's just the public squirrel one grafted onto the game, but it can probably help you find the native closure stack object if you breakpoint it
lots of ways to do it
hmm, alright
if you build the DLL in the debug configuration instead of release it'll add loads of stack dump prints to the log
native code is in c++, yeah? i tried running the exe through DiE and saw it was a visual studio 2015 (c/c++) build
the builds I put out are in release mode though for performance
So I have a quick question
hammering the log file will probably slow shit down on weaker systems
ooh yeah i'll build it myself then
Why do the image files from the BIN not load in emulators even though they are a one for one match of the original image files from the psx disc?
they aren't a 1:1 match, they're missing a chunk at the beginning
if you read a bit around how the DLL is interacting with VM objects to set smoothing and such, you can probably just query System by name
But when I mounted and extracted the image the files were a one for one match down to the kb
you should see an OT_NATIVECLOSURE
Did I miss something or do something wrong?
yeah the size is the same but the bytes themselves are different, yk? they have 0x00s where they should have other values
once you find it you're going to need a disassembler/decompiler like IDA or ghidra tho
I’m going to check that out, is it a particular file or all different ones?
this is from a different server but this illustrates what i mean
^lol
if you patch it using that official sony header (you could literally just change those bytes manually in a hex editor) it'll run in an emulator
That’s wild, so that’s why this is emulator specific
btw thanks for the info! i'll switch over to windows and try my hand at this, i've used ghidra before thankfully
And thank you for that info, I see how I got fooled now into thinking I had extracted the BINS properly when I didn’t before
So much makes more sense now
yeah you extracted em fine, the game just patches them to be working roms when you run it, i assume to prevent piracy
even simpler way is probably to just do a text search in the exe for that function and then cross reference a bit
the code in the DLL might be useful for mapping out functions in the executable
the DLL has squirrel source code of the same version as the game itself
so it helps with identifying things
Now I gotta go an learn squirrel, great, thatll be so useful on a resume lol
lol i should've realized checking for exe strings was possible, i noticed the EXE showed up when I ran grep for 'System' and just ignored it
squirrel is the bastard child of C and lua
that's a good description, i thought it was just an offbrand c++ when i first saw it lol
if only Konami passed the roms through rot13 instead
then the 20 year old game would be really secure
how does splitting part of the rom prevent piracy
the part that they split off is compressed with lz4a, which to my knowledge literally nobody knows how to decompress outside of M2

Those bastards were so clever that when they modified the BIN, they even made sure the date didn’t change on the file
I’ll give them an A for effort
my guess is it's their proprietary spin on lz4 becuase they didn't feel like including licensing for the real thing
why use compression and for only a small part of it
why not use like
encryption
if their goal was to protect
it's weird because in addition to the sony header needed for the roms, it has a lot of other junk
there's some code in there, item names (different in each language's lz4a, of course), and a lot of other weird stuff
it has a footer which includes the string "cdrom:\MGS\MGS2.EXE" as well
Maybe it has something to do with the custom textures in the game?
interesting
Sorry replied to the wrong person lol
haven't looked at lots of stuff as you can tell lol
But I know for a fact there’s a lot of custom stuff going on
the reason why i say it's compressed rather than just in a strange format is because if you check the shannon entropy of the file it's ~8, which apparently indicates a strong likelihood of compression
based on some googling at least lol
Maybe, but what points the custom textures to the rom?
could be? there are lots of patch files, the config folders specify byte offsets for the patches to be applied and these could be the region-specific patches all compresssed into one
That’s what I was thinking, at least from a quick look at it
i should convert every image in here to png format so i can actually find out where those textures are stored, i just haven't bothered because i'm doing this on a macbook and it takes forever lol
No one games on a Mac lol
i've been running a mac only operation for this tbh, i even ported the game to mac with a wineskin, i just ssh to my windows pc when i need something specific from it
mac being linux-adjacent means some code related things are way easier imo
No I totally get it, I’m just ball busting, unix based systems are always the way to go for this stuff
I use Kali Linux on my laptop whenever I need to write anything, unless I do something small, I’ll do those edits on the windows side
i'm just now looking at the patches and it's so cool that the game has files which are literally just this
you definitely can't make that any simpler, nope
thank you M2 very cool
nut scripts to generate these would take up less space
After seeing everything I’m 99.9999% certain efficiency was not their goal
i like the number of times nut files will set a variable to a specific value and then immediately set it to a different value with no code in between
based
See the full discussion on that, I mean it literally seems to break the game but it may be a me thing, every time I try it I clip through walls and fall through the floor and it breaks the sky box
oh i didn't realize you were being literal lol
i just think the game's aesthetic was designed with the playstation's quirks in mind and it looks best when those are respected rather than when you try to paper over them
To an extent I agree with that as well, I’m against upscaling and like to use CRT filters instead
I make my own though, I haven’t found any presets that match my real CRTs but I can make ones that do
yeah i really like crt filters conceptually but most of them don't look very much like the real thing
I’m going to release some for retroarch soon just have too much going on at once, I have that one reshade up on nexus right now, until we figure out custom dlls the game is playable with that at least
I still think the reshade I did is going to have to be used judging by the look of the lackluster options in the emulator
yeah it's a shame this wasn't quite the end-all be-all release it was supposed to be but i really do appreciate people like you trying to go the extra mile on it
I like the CRT Royale NTSC Composite shader iirc, gives the feeling of a nice consumer crt without the crunchy pvm scanlines that others give
been a while since i've used retroarch though
Hey could you look over this, I want to know if I'm getting the syntax right, and yes this is very basic but I'm only just now trying to learn this squirrel stuff
// Example DLL code
#include <squirrel.h>
SQInteger myFunction(HSQUIRRELVM v) {
sq_pushstring(v, "Hello from DLL", -1);
return 1; // Number of values returned to Squirrel
}
// Exported functions table
static SQRegFunction my_functions[] = {
{"myFunction", myFunction, 0, NULL},
{NULL, NULL, 0, NULL}
};
// Entry point for Squirrel to get the exported functions
SQRESULT sqext_register(HSQUIRRELVM v) {
// Register the functions in the table
sq_pushroottable(v);
sq_registerfunctions(v, my_functions, NULL);
sq_pop(v, 1);
return SQ_OK;
}
I haven't tested it or anything yet, I just want to know if my syntax is right, or is there something I'm missing
This seems to be example code to inject DLLs with squirrel but it just looks....off, like it's too much like C
@finite peak @cerulean bough , in my experience, clipping related to PGXP correction is indeed an issue, but only if you enable CPU mode. Disable the CPU mode, and you should be good. I've only had this issue in MGS, in other games I've played CPU mode is fine. It's a bit of a shame, since CPU mode gives the most stable correction, but it's a lot better than nothing. I have a theory that enabling culling correction might help with clipping issues in MGS, but haven't tested it yet.
That's in duckstation by the way, but I'm sure it'll be the same in retroarch. Just disable CPU correction, and you're good.
When I disable CPU correction geometry correction doesn’t work
To be clear, not with metal gear solid, it does with other games
Huh, that's weird, it works for me.
Guys I did a thing!
upscaling with the CRT filter applied over it with reshade
I'm still torn it though cuz the 2d elements look meh
I think I'm going to play with it on like this for a bit just to see what this is like, upscaling may have potential maybe if custom textures were applied
Native 480p for comparison
all the 2d elements look exactly the same
For crt filters, i recommend crt-royale
Yeah I don't like CRT-royale
it's.....OK
the problem is I don't see THAT much difference between 480p and 4k
I mean it smooths the jaggies some, but that's about it
I'm debating if it's worth it to try to replace the current emulator or not
right now I'm leaning towards no but I guess we'll see as time goes on
As far as I know, if the emulator is replaced, the steam achievement stop working
Amke sure you dont have Depth Correction also on, it is absolutely fucked, hence why Duckstation gives you the double click wraning on it
I truned it on and encountered ALL the issues you had
Or CPU Mod as well like @echocat described
I love this look alot more
I always like SOME jaggies associated with MGS1
Feels more pure that way
Well thats just native
Whoops
Thats just native res or more specifically duckstation can deinterlace making games run at 480p natively
What I meant to reply for you is with DLL injection much more is possible now
If the native emulator has deinterlacing we might get 480p out of it
I dunno, I’m gonna try my hand at injecting some dlls and see what happens
Squirrel is kind of confusing for me
I’m not the greatest at this but I’m trying my best lol
that looks like C code because it is C code
as squirrel is "embedded", it's possible to interact with it from the native (C/C++) world or the squirrel world
my DLL interacts with the squirrel VM from C++, but it's equally valid to also write squirrel and inject scripts to achieve the same things
if you think about it, that's essential for what the game does - the game is an exe written in C++, it needs to be able to drive the squirrel VM in C++
looks like the code you posted injects a function into root table, which allows it to be called from squirrel code
OK I'm starting to wrap my head around this
but I have to take a break soon cuz I have this nasty habit called sleeping
I wish I could kick it but I can't lol
appreciate it! at least I have a base to work off of now
Hey nuggs I tried to use this but it made no difference visually for me. Were they set to turn on by default when installed?
it only turns off the smoothing by default
to turn the scanlines on you need to edit the ini
the smoothing might already be turned off if your game resolution is low enough
i did give it a go last night and couldn't get the smoothing turned off on my deck 
but the screen was also doing some resolution fuckery so it could just be linux things ™️
is the smoothing even turned on on the deck
I can't remember what the resolution cut off was
if the mod is genuinely not loading on deck I'll take a look
I don't even know what the game looks like with smoothing I can share an image real quick
Wait I see lines now that it's tiny. Is that supposed to be the scanlines?
easiest way to tell for me is the konami text on the main menu, if it is crisp pixels then smoothing is off, like this
Which version so we're clear on that front
im on linux if that is what you mean, using v0.2
oh NA
yeah that looks right
Just want to say, the work you guys are doing here is incredible. This game means a lot to me and you guys are doing amazing work here.
And so quickly too
i only started my mod on sunday lol
MGS1 was done the most dirty with the MC. That game holds a special place in my heart
It really was, and I figured it would have been but it was worse than I thought, the audio issues, the lack of configuration options within the emulator. They could have done so much more with it. I haven't played 2 or 3 yet but I'm happy to have MGS3 on PC finally and even though MGS2 was on GOG, it's cool to have that on Steam as well.
oddly enough works fine with the 0.2, and im using it plumbed into a monitor at 1080p
very epic mod x
yeah seems like it works on deck it's just hard to tell lol
not sure the smoothing is on by default on the built-in display
800p might be close to the cut off
hopefully we get the plugin to do more interesting things that are obvious
what res does the emu try to run at fullscreen? is it 720p?
ive had a great idea why dont i check myself
dawg that's duckstation
uhh
lol
this is called deleting the correct pause menu and seeing what happens
i deleted pause_main_mgs.nut.m out of curiosity lol
and then tried to pause
it does, but not with these options
oh wait yeah no that pause menu isn't part of the psx mgs if that's what you mean
it's not part of the master collection either
afaik there is no pause menu at all
you just load the game and that's that
you get to it on keyboard controls with.. E+M, for some brilliant reason
quite possibly the worst control system i've seen in my life
i got that up by accident once
i think you can also trigger it via the ingame settings
if you go to screen settings or summit
there's some kinda callback from the game that opens that menu
yeah there's a wrapper between the game and the emulator as seen in the disc swap
i really wanna know what it means by PAUSE_MAIN_SAVE and LOAD, does that mean it has a rudimentary savestate option?
that isn't in the finalized pause menu?
it unfortunately crashes instantly for me, and I'm not sure if that's due to it not being implemented or due to me removing pause_main_mgs.nut.m
@craggy ingot the game only saves the "saves" when you open that pause menu.
Or at least that is one of a few points it saves any new saves.
If you make a save in game like normal then force quit the game it may not keep the save, opening the in game pause menu saves the saves proper for the emulator
if that makes sense
you can test by saving in game, then when you open the "stance menu" you'll get a little auto save icon in the top right.
Normally you don't
so i'm assuming it could be that
wait that's so strange, why wouldn't they save it at the same time as you save in game lol
so it could be that me trying to run the PAUSE_MAIN_SAVE option crashes because i haven't saved in game
I'm not sure, but its not completely unheard of, emulators used to have an option to save the ingame saves, flash carts still do it as they have no idea.
That and they expect people would quit through the stance menu because theres no other way to quit, that and opening console home menus on console or your controller disconnecting on any platform open the stance menu.
So other then people on pc being able to alt-f4 it would work fine
issue is people on pc being able to alt f4. and that they don't explain it
i mean maybe?
Worth a shot if you want to.
But it could also be a unfinished feature like you said
does options actually hold the filters?
crashes as well at the moment, but i'm using a modified build so i'm thinking i'm gonna start fresh and chip away at the file I removed to see if I can get this menu open without any issues
excellent comment by the devs
banger
iconic
yeah, working on getting even more state out
im just hacking on the DLL at this point
have you committed that/are you planning to? that'd be really useful for what i'm doing atm
at some stage yeah
tryna get at native closure info
should be possible but its making life difficult for me
so
absolutely none of this did anything to reduce input lag
and lyall's bilinear filter fix did not work for me
this is on a fresh re-install btw
i can post the log if need be
log of what
that aint lyall's its mine
o
i
um
oops!
my bad, i mix up names...
OH SO NOW IT WORKS
this fuckin game
kek
the other point still stands, doing all that had no effect on input lag lsdkjfklds
the windows vista thing, 60hz monitor, fullscreenizer, the files...
no idea where any of that came from tbh
eyy!
im hooking all the native closures now
so I can log all the functions in the exe that the scripts call
and also the scripts themselves
should help find things in the exe and piece the whole thing together
got all this now
loads of these are printf
lol
wtf is it printf-ing? leftover debug messages?
appreciate the work btw
i would love to figure out the intent behind some of the leftover code here, like surely they weren't planning on adding/injecting co-op or other modes into mgs?
trying to retrieve all of the native function names, but you can see some of them here
shows where setSmoothing is implemented in the exe
its worth remembering the emulator was reused from other projects, so could just be that
isnt it just a framework that they sell
i'd think that except there's lots of mgs-specific code and they have special touches like the disk swapping feature
but it could be a base framework that they modified for sure
the native function "names" here are all still raw, yeah? or is there a string i'm missing
i do see setSmoothing() is definitely that 0xf5a2b0
squirrel has to know their names to perform the binding
ive gotten things like len() to show for the built-ins
tryna work out why setSmoothing has lost its name
are you running this on the US version?
arent they all the same version basically
the EXEs are slightly different for whatever reason even though the alldata.bin files are almost indentical minus roms
oh, thats weird
UK version
i've not really done anything toooo version-dependent though
there's a couple of function signatures but they should be fairly portable
the one good thing about the VM is once the plugin has hijacked it, you're just traversing its primitives and everything is abstracted
rather than doing lots of monkey patching and memory address crap
ive seen all the memory addresses shift massively between runs
so god knows how you'd do this any other way
between the UK and US versions there's literally just a 4 byte difference lol wtf
is that just some build ID or summit
it seems too close to the PE header to be anything of note
that's my guess lol, build time maybe but build time is also stored in the .nut files
actually no i'm misremembering, build time is stored in one of the config/psb files
doesn't matter either way ofc lol
wonder if they didn't bother with the scanlines because they look awful with that red camera in the intro cutscene inside the SDV
i have 30 hours in this fucking game already and i havent even started a save
oh god
if you resize the window to 4:3 it keeps the background
so you get bars at the top and bottom
anyway cool thing about the native closure hook is I can change parameters and return values to/from the emu
yeah 1920x1080 is literally hardcoded it's beautiful
all of the motion scripting they do depend on the canvas being 1920x1080 as well
ooh
i'm a noob at decompilation but is it standard for the function name strings to be distant from the actual code location?
yeah, executables generally have different sections
those would get marked as non-executable and such
all the constants should be together, and all data that's rewritable
hmm, that makes sense, and i don't usually see a decompiler somehow link all of the function names on its own
something like ghidra or IDA should be able to do it
i can open this for instance
and see what references each string
ooh, i see yeah
oh jeez
i think i can print the arguments to native funcs
there's some type check that occurs before the native call and I can just borrow the logic
holy shit lol, that would be insane if you could
i'm surprised you'd be able to do that before the non-native calls
also seems possible in principle
this line was more amusing to me then it should be
lmao
i'm getting used to it but i still get a kick out of files like "preload.nut" or "wipe.nut"

loll
Did you remember to use fullscreenizer and not the regular fullscreen?
oh my god
i finally have all the native function names restored in the trace
x86 assembly
not even once
this thing is crazy to look at now
so much info
my game wasnt working for a good 3 hours there lol
i dld do this
when you generated this were you only using keyboard input or pad input or both?
not entirely sure then, you're the first one to say it hasn't worked so far, what are your specs and what monitor are you using?
i did set the monitor to 60 within windows settings
As in with modification or just as is?
there's just some cmdline args lol
--window-size and --screen-size
surprised it took until now for anyone to try them
i think i know why the smoothing kicks in at a certain res
you can apply the smoothing to any layer. that includes the frontend graphics (good) and the emulator itself (not so good)
i just found yet another way to turn off the smoothing but it applies to every layer so you get jaggies at higher desktop resolutions in the launcher
i assume they turned it on to let the UI graphics upscale but that inadvertently turned it on for the emulator
at least i hope that's the reason
anyway don't turn the smoothing off for the UI, it sucks
I haven’t had time to look, my air conditioner kicked the bucket so I’ve been having to fix that lol
god the dotmatrix filter is terrible
i'd add an option to enable it but
GOD
nobody gonna use that shit
Pics or it didn’t happen
does it still look like 240p or,
nobody has made any attempt to change the psx internal render resolution yet
aaah ok ok, that's what you mean
TBH i was more bothered by it forcing 1080p in fullscreen
even if the game is 240p i'd like the window to match my desktop resolution lol
Wait I just relized, do we have a way to repack it all yet?
ill prob still add a patch for the window size to default to desktop res like lyall's fix
repack what
repacking is pretty nailed down at this point, the first bilinear removal mods was just a script that unpacked and repacked it
was dxnteisgxne specifically I think, but alot of people found little bits here and there
its worth noting alot of this stuff is probably left overs from other projects, as this emulator was not just used for this collection.
Or just good old experimentation
yeah ive been saying that repeatedly lol
i doubt the original authors had much to do with MGS
and I doubt konami's team had much to do with M2
exactly but alot of people have been making broad statements and assumptions so was just checking 🙂
hence why i never made the mod
just don't deserialize roms
deserializing roms is the issue
bc marchive can only do so much, even reserializing files does some weird binary shit where they can be either lighter or heavier in size
im going to stick the dotmatrix setting in just so I can have something for v0.3 lol
will try to get the default resolution thing sorted too
Anybody know if dithering will be possible? So far it seems like the emulator just doesn't support it. Nobody's mentioned any settings to toggle it.
dithering isn't mentioned at all in the code
nobody has reverse engineered the entire emulator stack, though
well no, no one has reverse engineered anything so far lmao
it's just not possible to say for sure within a year of release lol
development has been slow
lol
hey ive reverse engineered shit
im not looking at the emu core yet but i'm the closest to it
i at least know where it is
no yeah you've been p much the only one keeping the mgs1 emu modding active
🤣
i've been busy trying to reverse engineer meta_008 files but it got to a point where not getting any help and not finding anything meaningful about the files got me tired
in other news i'm still trying to figure out where the hell MG1 and MG2 roms are stored
but then again, someone said it might be native-ish
MG1/MG2 seem done more dirty than MGS1 imo
they're just grafted onto MGS3 like, yikes
at least MGS1 got some attention by itself
it's an emulator within a game lmao yeah
have their been any breakthroughs finding the movement control input swap to analog from dpad 8way gate 👀
nobody is actually looking
bigger fish to try at the moment
It just seems insane to me that the emu itself does not deal with with dithering at all. It's like a core function of psx emulation. I'm kinda confused. Maybe the emu was written for a specific projects that natively supported higher color depth or something. MGS has heavy color banding without dithering, which sucks.
I figured after reading through but still fun to ask. the progress from the past day seems wild enough
it may well be in there
I'm amazed you got it parseable as it is lol
people are just looking at scripts, so
the scripts don't really tell you what the emulator can do
just what someone decided to throw in the script at some stage
pasue
pasue
I see
kek
hang on i had found something earlier
the one giant line is pretty great
it feels like self racism
😮
I believe dark souls 1 had some similar issues like that when people were playing with the cut content scripts
cabt recall
it just takes someone to think of something others havn't sometimes
we're all just throwing shit at the wall and seeing what sticks
Did other m2 stuff have issues like input lag? Or was it just pixel based stuff, like castlevania? I'm sure they didn't slap a bilinear filter on castlevania lol
there hasn't been much investigation and personally i don't know what you're doing LMAO
it escapes my knowledge
i just do code man
I'll comfortable say i've got no clue what you guys are doing
I was trying to force lower resolutions to remove the filter early on.
but otherwise just found and tried to improve on stuff where i can
function is_permit_smoothing(_systemdata, emu_task, size_x, _size_y)
{
local ret = true;
// 拡大率(縦)が2倍より小さければmootihngはOFFにする
if ( abs(_size_y) < 2SIZE_BASE || abs(_size_x) < 2SIZE_BASE ) {
ret = false;
}
return ret;
}
what a meme
I'm an audio engineer and graphics artist, I don't know shit about coding. I just know if stuff looks right, sounds right or feels right. And in terms of MGS Master Collection, they don't 😅
mootihng OFF
i work in semiconductors and i know more about coding than i want to
Hey nuggs, I'm zabaniya from the github issue. Thanks once again for the answer!
In terms of audio, it's weird that all games have what sounds like compression issues when they were handled by different teams. Maybe the audio issues have something to do with the launcher? Just doesn't make sense to me, but maybe i should try the launcher bypass patch and investigate
the launcher is definitely not to blame
Yeah, otherwise, why would the the audio mods work
on PC mgs2/mgs3 have the launchers in separate executables which terminate once the real executable is launched
and mgs1 is an entirely separate code base
and mg1/mg2, well, all i can say is "haha"
That's what's weird to me, how did they mess up the ps1 audio? It isn't even a real port, maybe they messed up the audio chip emulation
yeah, will be fun to figure that one out
is M2 using entirely proprietary/custom cores? or have they based off some OSS emulator?
I'm guessing the emu was made for a specific project, and then reworked to fit mgs.
maybe that's why theres no dithering, since castlevania seems purely pixel based, no textures like mgs. maybe the emu was made for games that didn't support dithering anyways.
it's
really weird
because while all games on the master collection have the exact same launcher, MGS2, 3 and MG1+2 were all made in Unity
whereas MGS1 is just its own thing with a built in emulator
That's like extra weird? So they wrote a completely separate launcher for mgs1? It's not the most advanced launcher, but still
moreso they kinda converted the unity launcher into something like standalone C
or the other way around
it's C#
lmao that's just really weird. But i guess the trouble stems from choosing m2 for MGS1, since they had a sorta functioning psx emu
you can do native linkage
also p sure squirrel is just code for the emulator itself, not the launcher
it's definitely not .NET but
basically: squirrel in MGS1 is doing the launcher and mediation between the C++ emulator and the launcher UI
is the emulator embedded in the launcher with a different code base or whatever?
never mind answered my question
ahh
so it's the wrapper
the game main loop in squirrel is basically an event handler for the C++ stuff
it handles all the initial setup, loading assets, and UI graphics
but the game is pure C++
the squirrel handles applying patches like the button graphics fixes
there's some C++ emulator RAM access API
That's why the apps are split in on all platforms then? They never had an option to make a complete package? They basically need a separate launcher for mgs1 to make the patches work?
them being split on things like the nintendo switch is essentially arbitrary
but mgs1 is not split, it's one executable
mgs2/3 are definitely split
when you select the game in the launcher, the launcher closes and starts the real game
mgs1 is not like that
the launcher is the game
here's the thing
MGS2+3+12 launcher is essentially what gives the games the commands to run
MGS1 does not need any commands to run so it just runs on itself
what really happened is they compiled the PS3 HD collection mg1/2+mgs2/3 for other platforms
whereas mgs1 is an entirely new project
mgs1 didn't need a separate launcher as they were in total control
yeah, they give download code
that's why
yeah, that was just "virtual console" stuff lol
not a true part of the HD collection
that's why if you buy a used copy, the MGS1 code probably is already used
the reason they're split is so the games can be sold seperately. why make a version with them split and one with them together if you can just do one of those
and mg 1 and 2 were included in metal gear solid 3 as per the ps2 subsistance release
I think the ps store games were running a pretty simple emulator, upscaling to 480i, and stretching to fill the screen, with some simple display options. Still essentially 240p. They hired m2 to make it run through a launcher similar to the hd versions, which included all other games in the MC
Dumb question, but what are the params you need to use to extract figured out, didn't realize you had to use another argument.nut.m files?
I guess you're right, could have been the intention all along. I just thought a DLC-like system in a single launcher would be more efficient, but who knows with Konami
It still stayed at 4:3 I'm pretty sure, and you could enable to disable smoothing, option to decrease load times etc.
Was pretty solid from memory
Yes, that's true. Although some modes stretched it to widescreen, if I remember it right.
Or maybe that was just the scaling settings on my shitty old HD tv 😅 . Anyways, if the mgs1 master collection is tied to the launcher, will it be possible to enable/disable mods through modded launcher menus? Or will it just be ini edits like in nuggs filtering mod? Could make for a pretty decent user experience, with preview pictures and descriptions and stuff, if launcher mods are possible. Guess it's a bit early to tell.
i mean it could just be a f2p launcher with games included as dlc a la capcom/sega
alright I'm gonna be THAT guy, it's better off that way because Lyalls HD fix already works for them and with a CRT filter, there's no reason to do anything else
I'm looking just too busy right now, and my work week is about to start. Curse my need to eat and sleep and pay bills!
huh??
homie we are not talking ab visuals lmao
I mean what else do you want to do with it?
I mean....that's cool but I don't see a huge mod scene growing for mg1 and mg2 lol
trust me there is
og mg1 has a lot of translation issues and mgshd fixed them but it just looks uglier and different
sprites are not the same either
there's a lot of difference
not gonna lie, I would like to see a MG1 and MG2 where the script is completely re-written to fix continuity issues
incomprehensible noise
#modding-general message
suddenly I want it, and I didn't even want it before
being able to re-write those games......hhhmmmmm
now you have my brain turning over, I'm going to have to dig out the script I wrote for the MG1 remake I was working on ages ago
damn shame that fell apart like it did
lmao i was working on a mg1 to mgs conversion remake a few years back
just mg1 with mgs mechanics and better storytelling
also dipped
my team were a bunch of morons and reached out to konami to ask about monetizing merchandise, I told them not to tell anyone anything until the game was completely done
guess what konami did?
a script re-write on the other hand is very doable
I had a good script too, especially considering how young I was
Are these enums present in the config files? Can't seem to find them in the nut files
Getting around the codebase and memory patching with this VM is incredibly tedious
I wonder whether this is related to the PS1 controller button to digital/analog the left stick, or whatever they've implemented to make it go only in 4 directions
It absolutely is, good find!
These are just assumptions. Hard to tell without patching it and trying it in-game
Well I’m going by the fact that it’s also smack dab in the middle of analog dead zones and the analog button setting. It would be really strange if it wasn’t.
For that matter, why would there be any need for an analog to digital deadzone if it wasn’t that setting?
I’ve never heard of deadzone being used for anything outside of controls in an emulator
I’ll just say it’s a fairly safe assumption
So it's already possible to use analog stick, M2 just didn't do anything with it?
Since the game itself supports it, there is no reason why it wouldn't be possible. It's either the emulator transforming the input into dpad or something memory patching it out of the game ( 0% chance, but even then you can just memory patch the memory patch ). It's just a matter of finding where, what and how
It could be something entirely unrelated, something that is just partially related, or just entirely unused
I can apply a dirty patch through IDA if it's something that is present in the binary. Anything squirrel related will take me more time though. I'll piggyback off nuggs' extension to test it and then rewrite it in rust if it's the case. Though by the time I come to the conclusion, someone more experienced will already have found it hah
Hey nuggs, would you mind if I updated my mod on nexus with your stuff? I'll credit you and the other guys in here for it, I just want to package it in a more user friendly way and update it as more fixes are found if that's OK. I got the upscaling working and I know people keep wanting that real bad lol
Also has anyone found any fps locks? It would really help if we could lock fps
the emulator goes nutz as soon as it goes over 60
sure
wait actually I'm not so sure now that I'm looking at the comparison
you said it was just a cmd line argument right?
I ran this "C:\Program Files (x86)\Steam\steamapps\common\MGS1\METAL GEAR SOLID.exe" --3840-2160 and --3840-2160
Normally I can put that on a shortcut and it will run the command line argument but I don't think it actually worked, tried it in CMD and gave me an error
Wait, a second....did I misunderstand and you meant a command line argument in C?
OK nvm....I figured it out....but 4k I don't think is a thing lol
I tried it and all I got was a black screen
and no sound
like insta crash
what is the format for the arg