Patch is up (v1.01 incoming)
- Kojima_Devotee
- J.U.N.K.E.R.
- Posts: 212
- Joined: Wed Jun 15, 2005 3:00 pm
Re: Current Status (4/26/09): 1 Bug Till Beta
Hey, thanks for the link; I had no idea Wii translations were a possibility! I was quite saddened by the fact that they weren't bringing Fatal Frame over. I guess no one bought The Tormented.
Sure, mainstream games are fun, but you haven't tried Snatcher yet.
- JonnyTanna
- Posts: 64
- Joined: Sun Jan 25, 2009 12:47 am
- Favorite Game: Killer7
- Kojima games owned: Metal Gear Series (Even down to Metal Gear Mobile)
Snatcher (all versions)
Bokatai
Zone Of The Enders
Policenauts
- midori_fox
- Runner
- Posts: 105
- Joined: Sat Mar 28, 2009 7:26 am
- Favorite Game: Damn these kind of questions....
- Kojima games owned: Metal Gear, 2
Metal Gear Solid, 2, 3, 4
MGPO
Metal Gear Ac!d, 2
Z.O.E, 2
Snatcher (rom)
Policenauts - Location: Washington State USA
- Fly
- Posts: 22
- Joined: Fri Nov 14, 2008 2:01 pm
- Favorite Game: Metal Gear Solid 2: Sons of Liberty
- Kojima games owned: Physical copies:
Metal Gear Solid, Metal Gear Solid: Special Missions, Metal Gear Solid (GB), Metal Gear Solid 2: SoL, Metal Gear Solid 2: Substance, Metal Gear Solid 3: Snake Eater, Metal Gear Solid: PO, MPO+, Metal Gear Solid 4: GotP, Metal Gear Ac!d, Metal Gear Ac!d 2, Zone of the Enders Ape Escape 3.
ROMs:
Snatcher (MSX), Snatcher (Sega CD), SD Snatcher, Metal Gear, Metal Gear 2: Solid Snake, Boktai: The Sun Is In Your Hand
WANTED HORRIBLY:
ROM of Metal Gear Solid Mobile!
Re: Current Status (4/26/09): 1 Bug Till Beta
The two-week long clocktease was totally worth it just for Big Boss wrestling on the beach bare-chested in the rain, I think. If that and the 'Love Pack' are actually in the game, I don't see how it can be bad.midori_fox wrote:off topic 2 new MGS games =D
But I'm coming from a biased perspective here.
- Artemio
- Site Admin
- Posts: 2947
- Joined: Wed Oct 06, 2004 11:33 am
- Favorite Game: Snatcher! ... no wait, Policenauts...
- Kojima games owned: http://junkerhq.net/kojima.html
- PSN: Artemio
- Wii Friend Code: 6335316353781527
- Xbox Live: JunkerHQ
- Location: Mexico
- Contact:
Re: Current Status (4/26/09): 1 Bug Till Beta
Please don't bring that here. Most of us don't like the idea of that. Discussion is at: viewtopic.php?f=20&t=2408&p=33658#p33658midori_fox wrote:off topic 2 new MGS games =D
From the mathematical perspective, consciousness might be regarded as a second derivative of sensation.
-- Terrel Miedaner
[Junker HQ]
-- Terrel Miedaner
[Junker HQ]
- Kojima_Devotee
- J.U.N.K.E.R.
- Posts: 212
- Joined: Wed Jun 15, 2005 3:00 pm
Re: Current Status (4/26/09): 1 Bug Till Beta
I'm amazed by how quiet it has become - It wasn't even this dead during the Silent Year.
Sure, mainstream games are fun, but you haven't tried Snatcher yet.
- Fly
- Posts: 22
- Joined: Fri Nov 14, 2008 2:01 pm
- Favorite Game: Metal Gear Solid 2: Sons of Liberty
- Kojima games owned: Physical copies:
Metal Gear Solid, Metal Gear Solid: Special Missions, Metal Gear Solid (GB), Metal Gear Solid 2: SoL, Metal Gear Solid 2: Substance, Metal Gear Solid 3: Snake Eater, Metal Gear Solid: PO, MPO+, Metal Gear Solid 4: GotP, Metal Gear Ac!d, Metal Gear Ac!d 2, Zone of the Enders Ape Escape 3.
ROMs:
Snatcher (MSX), Snatcher (Sega CD), SD Snatcher, Metal Gear, Metal Gear 2: Solid Snake, Boktai: The Sun Is In Your Hand
WANTED HORRIBLY:
ROM of Metal Gear Solid Mobile!
Re: Current Status (4/26/09): 1 Bug Till Beta
We're all waiting with bated breath for Comrade Slowbeef's next move, that's why.
Last edited by Fly on Sun Jun 07, 2009 2:20 pm, edited 1 time in total.
-
- Posts: 75
- Joined: Sat Sep 29, 2007 8:12 pm
- Kojima games owned: Metal Gear
Snatcher - PS/JP
Policenauts - PS/JP
Metal Gear Solid - PS
Metal Gear Solid 2: Subsitence - XB/PC
Metal Gear Solid 3: Subsitience - PS2 - Xbox Live: Andrigaar
Re: Current Status (4/26/09): 1 Bug Till Beta
I kept up chit-chat about sidebar, but most of the people nixed that and went back to asking the questions that cannot be.Kojima_Devotee wrote:I'm amazed by how quiet it has become - It wasn't even this dead during the Silent Year.
Re: Current Status (4/26/09): 1 Bug Till Beta
No point in asking for updates. The updates will come when they come.
Hopefully, I'll be able to finish the current games I'm playing before Policenauts!
Hopefully, I'll be able to finish the current games I'm playing before Policenauts!
Re: Current Status (4/26/09): 1 Bug Till Beta
Personally speaking, I'm just hoping against hope that it's out some time before the end of September, so I can play it before I have to go back to university.
Ah well, even if not, at least it'll probably be out before the next end-of-year crunch period.
And guys?
Great work.
Ah well, even if not, at least it'll probably be out before the next end-of-year crunch period.
And guys?
Great work.
Re: Current Status (4/26/09): 1 Bug Till Beta
I'm going to be quiet for a little while. Good things are happening on the backend. We actually ran into a couple of issues on hardware (and not the emulators) which was a little scary for a bit, but we were able to recover, though I'm still retooling one final hack in that regard.
Since Piratero is going to ask, the key issues are the following things emulators apparently don't account for:
- Byte alignment: I don't fully get this as the emulators respect the fact that MIPS won't load unaligned words or half-words, so it shouldn't have worked in the emulators, but it somehow did. At any rate, we had to make sure the patching we were doing led to byte aligned data blocks (i.e. all locations in memory should start at locations which are multiples of 0x04, like 0x00, 0x04, 0x08, 0x0C, 0x10, etc.) Once we figured out the problem, it wasn't a terribly hard fix.
- Pipelining: This was huge. I'll just post what I wrote to Artemio when we figured it out:
I think the problem is pipelining.
The following instruction set failed for me:
addiu r20, r0, 0x006E ; r20 = 6E, the control code
...
lbu r2, 0x0000(r16) ; read a byte
beq r2, r20, 0x0005; if the byte read == 6E, jump ahead
The branch was failing even when I knew the data was a 6E and should have been succeeding.
This fixed it:
lbu r2, 0x0000(r16) ; read a byte
nop
beq r2, r20, 0x0005; if the byte read == 6E, jump ahead
Throwing a nop in there meant the branch was now true. Why?
I think because the MIPS architecture pipelines the instructions. In an emulator "lbu" happens atomically, i.e. it definitely begins and ends before the next instruction is processed.
In a real chip, though, it's doing stuff in parallel, so:
(Fetch instruction, Instruction decode, Execute, Memory access, Writeback - in previous example, lbu is doing memory access simultaneously while bne is actually executing.)
So the branch executes (E) while the previous instruction is doing memory access (M). In other words, the branch fails because the register hasn't actually been loaded with memory yet. The nop makes it so:
(In this example, the lbu is doing a Writeback to memory - which is effectively nothing, since that only counts for a "store" instruction - while the branch executes. Memory access has now happened while the branch was decoding instructions.)
So NOW the instruction has "time" to do memory access. I rewrote the in-game text hack with some extra nops after memory reads and hoping that it magically makes it all work.
(It did. Right now, we're trying to recompile the LZO decompressor so that it will pipeline correctly in the PSX - i.e. all the modified graphics work.)
Since Piratero is going to ask, the key issues are the following things emulators apparently don't account for:
- Byte alignment: I don't fully get this as the emulators respect the fact that MIPS won't load unaligned words or half-words, so it shouldn't have worked in the emulators, but it somehow did. At any rate, we had to make sure the patching we were doing led to byte aligned data blocks (i.e. all locations in memory should start at locations which are multiples of 0x04, like 0x00, 0x04, 0x08, 0x0C, 0x10, etc.) Once we figured out the problem, it wasn't a terribly hard fix.
- Pipelining: This was huge. I'll just post what I wrote to Artemio when we figured it out:
I think the problem is pipelining.
The following instruction set failed for me:
addiu r20, r0, 0x006E ; r20 = 6E, the control code
...
lbu r2, 0x0000(r16) ; read a byte
beq r2, r20, 0x0005; if the byte read == 6E, jump ahead
The branch was failing even when I knew the data was a 6E and should have been succeeding.
This fixed it:
lbu r2, 0x0000(r16) ; read a byte
nop
beq r2, r20, 0x0005; if the byte read == 6E, jump ahead
Throwing a nop in there meant the branch was now true. Why?
I think because the MIPS architecture pipelines the instructions. In an emulator "lbu" happens atomically, i.e. it definitely begins and ends before the next instruction is processed.
In a real chip, though, it's doing stuff in parallel, so:
Code: Select all
FIEMW (lbu)
FIEMW (bne)
So the branch executes (E) while the previous instruction is doing memory access (M). In other words, the branch fails because the register hasn't actually been loaded with memory yet. The nop makes it so:
Code: Select all
FIEMW
nop
FIEMW
So NOW the instruction has "time" to do memory access. I rewrote the in-game text hack with some extra nops after memory reads and hoping that it magically makes it all work.
(It did. Right now, we're trying to recompile the LZO decompressor so that it will pipeline correctly in the PSX - i.e. all the modified graphics work.)
Re: Current Status (4/26/09): 1 Bug Till Beta
Excellent post. Thanks!
- akor1108
- Posts: 58
- Joined: Fri Aug 01, 2008 10:12 am
- Favorite Game: MGS series, Resident Evil series, Tony Hawk,
- Kojima games owned: Policenauts, Metal Gear 1 through Metal Gear Solid 4, Snatcher, SD Snatcher, MSX Snatcher, Penguin Adventure, ZOE
- PSN: MetalGearAlex
Re: Current Status (4/26/09): 1 Bug Till Beta
Whoa, sexy tech talk ahoy! Otacon would be proud of you Slowbeef and Snake is quite pleased.
This is good.
This is good.
- Jack
- Runner
- Posts: 160
- Joined: Thu May 12, 2005 7:48 am
- Location: Outside the memory of Shadow Moses, done running...
Re: Current Status (4/26/09): 1 Bug Till Beta
I won't even pretend to understand the rest, but if good things are happening, that cheers me up.slowbeef wrote:I'm going to be quiet for a little while. Good things are happening on the backend. We actually ran into a couple of issues on hardware (and not the emulators) which was a little scary for a bit, but we were able to recover,
-
- Posts: 8
- Joined: Mon Jun 08, 2009 8:43 am
- Favorite Game: Metal Gear Solid 3
- Kojima games owned: Metal Gear Solid Essential Collection (Metal Gear Solid, Metal Gear Solid 2: Substance, Metal Gear Solid 3: Subsistence Disc 1), Metal Gear Solid 3: Subsistence (both discs), Metal Gear Solid 4
- PSN: infinityBCRT
- Xbox Live: infinityBCRT
Re: Current Status (4/26/09): 1 Bug Till Beta
Hmm, but isn't this unsafe? Maybe it will work most of the time but once in a while its plausible that the memory access wasn't completed in time. I guess its not exactly easy to put in data access locks via machine language though.slowbeef wrote:In a real chip, though, it's doing stuff in parallel, so:
(Fetch instruction, Instruction decode, Execute, Memory access, Writeback - in previous example, lbu is doing memory access simultaneously while bne is actually executing.)Code: Select all
FIEMW (lbu) FIEMW (bne)
So the branch executes (E) while the previous instruction is doing memory access (M). In other words, the branch fails because the register hasn't actually been loaded with memory yet. The nop makes it so:
(In this example, the lbu is doing a Writeback to memory - which is effectively nothing, since that only counts for a "store" instruction - while the branch executes. Memory access has now happened while the branch was decoding instructions.)Code: Select all
FIEMW nop FIEMW
So NOW the instruction has "time" to do memory access. I rewrote the in-game text hack with some extra nops after memory reads and hoping that it magically makes it all work.
Re: Current Status (4/26/09): 1 Bug Till Beta
It's not exactly a timing issue like "it will take the processor 0.60 ms to read from memory." The notion is the processor can do Fetching, Decoding, Executing, Memory Read, Write simultaneously on five different instructions. If there's an instruction dependent on a load, it needs a nop to ensure it will read it. Without the nop, the memory load won't happen in time for the instruction to be executed correctly.infinityBCRT wrote: Hmm, but isn't this unsafe? Maybe it will work most of the time but once in a while its plausible that the memory access wasn't completed in time.
I guess I'm confused because this actually makes it much "safer" than not doing it, unless I'm misunderstanding.
-
- Posts: 8
- Joined: Mon Jun 08, 2009 8:43 am
- Favorite Game: Metal Gear Solid 3
- Kojima games owned: Metal Gear Solid Essential Collection (Metal Gear Solid, Metal Gear Solid 2: Substance, Metal Gear Solid 3: Subsistence Disc 1), Metal Gear Solid 3: Subsistence (both discs), Metal Gear Solid 4
- PSN: infinityBCRT
- Xbox Live: infinityBCRT
Re: Current Status (4/26/09): 1 Bug Till Beta
You know what? I was thinking of this in terms of a general programming language instead of machine language. In machine language the amount of time every instruction takes is constant and predictable whereas in programming language its not that simple due to the way the code is compiled and the thread management of the OS the program is running on.slowbeef wrote:It's not exactly a timing issue like "it will take the processor 0.60 ms to read from memory." The notion is the processor can do Fetching, Decoding, Executing, Memory Read, Write simultaneously on five different instructions. If there's an instruction dependent on a load, it needs a nop to ensure it will read it. Without the nop, the memory load won't happen in time for the instruction to be executed correctly.infinityBCRT wrote: Hmm, but isn't this unsafe? Maybe it will work most of the time but once in a while its plausible that the memory access wasn't completed in time.
Been years since I've done anything in machine language, I've been working with Java exclusively for the last 3 years now.
- Artemio
- Site Admin
- Posts: 2947
- Joined: Wed Oct 06, 2004 11:33 am
- Favorite Game: Snatcher! ... no wait, Policenauts...
- Kojima games owned: http://junkerhq.net/kojima.html
- PSN: Artemio
- Wii Friend Code: 6335316353781527
- Xbox Live: JunkerHQ
- Location: Mexico
- Contact:
Re: Current Status (4/26/09): 1 Bug Till Beta
Couldn't be more alienated from hardware than that.infinityBCRT wrote:I've been working with Java exclusively for the last 3 years now.
From the mathematical perspective, consciousness might be regarded as a second derivative of sensation.
-- Terrel Miedaner
[Junker HQ]
-- Terrel Miedaner
[Junker HQ]
Re: Current Status (4/26/09): 1 Bug Till Beta
I'm a Java programmer. And our Ruby on Rails team considers me a low-level programmer nowadays.Artemio wrote:Couldn't be more alienated from hardware than that.
- Artemio
- Site Admin
- Posts: 2947
- Joined: Wed Oct 06, 2004 11:33 am
- Favorite Game: Snatcher! ... no wait, Policenauts...
- Kojima games owned: http://junkerhq.net/kojima.html
- PSN: Artemio
- Wii Friend Code: 6335316353781527
- Xbox Live: JunkerHQ
- Location: Mexico
- Contact:
Re: Current Status (4/26/09): 1 Bug Till Beta
=)slowbeef wrote:I'm a Java programmer. And our Ruby on Rails team considers me a low-level programmer nowadays.Artemio wrote:Couldn't be more alienated from hardware than that.
From the mathematical perspective, consciousness might be regarded as a second derivative of sensation.
-- Terrel Miedaner
[Junker HQ]
-- Terrel Miedaner
[Junker HQ]
- akor1108
- Posts: 58
- Joined: Fri Aug 01, 2008 10:12 am
- Favorite Game: MGS series, Resident Evil series, Tony Hawk,
- Kojima games owned: Policenauts, Metal Gear 1 through Metal Gear Solid 4, Snatcher, SD Snatcher, MSX Snatcher, Penguin Adventure, ZOE
- PSN: MetalGearAlex
Re: Current Status (4/26/09): 1 Bug Till Beta
slowbeef wrote
Don't ever feel dejected. Here, you are respected.
Nothing is as it seems when you follow your own dreams.
Everybody has a purpose, whether or not they think it's worth it.
No one knows until they try.
You've lit the candle, don't let it die!
(EDIT: That was freestyle by the way. slowbizzle.)
Does that mean no one thinks highly of you at your job? Well, screw them! I think you are quite excellent, hardworking, smart, and also have good humor too. You were the refreshing beverage that this project needed to feel better!I'm a Java programmer. And our Ruby on Rails team considers me a low-level programmer nowadays.
Don't ever feel dejected. Here, you are respected.
Nothing is as it seems when you follow your own dreams.
Everybody has a purpose, whether or not they think it's worth it.
No one knows until they try.
You've lit the candle, don't let it die!
(EDIT: That was freestyle by the way. slowbizzle.)
- Artemio
- Site Admin
- Posts: 2947
- Joined: Wed Oct 06, 2004 11:33 am
- Favorite Game: Snatcher! ... no wait, Policenauts...
- Kojima games owned: http://junkerhq.net/kojima.html
- PSN: Artemio
- Wii Friend Code: 6335316353781527
- Xbox Live: JunkerHQ
- Location: Mexico
- Contact:
Re: Current Status (4/26/09): 1 Bug Till Beta
No, it only means you didn't understood a word of what we were talking about.akor1108 wrote:slowbeef wroteDoes that mean no one thinks highly of you at your job? Well, screw them! I think you are quite excellent, hardworking, smart, and also have good humor too. You were the refreshing beverage that this project needed to feel better!I'm a Java programmer. And our Ruby on Rails team considers me a low-level programmer nowadays.
But... Weren't you on a trip Marc?
From the mathematical perspective, consciousness might be regarded as a second derivative of sensation.
-- Terrel Miedaner
[Junker HQ]
-- Terrel Miedaner
[Junker HQ]
- akor1108
- Posts: 58
- Joined: Fri Aug 01, 2008 10:12 am
- Favorite Game: MGS series, Resident Evil series, Tony Hawk,
- Kojima games owned: Policenauts, Metal Gear 1 through Metal Gear Solid 4, Snatcher, SD Snatcher, MSX Snatcher, Penguin Adventure, ZOE
- PSN: MetalGearAlex
Re: Current Status (4/26/09): 1 Bug Till Beta
Hey...
I may not understand the situation, but at least I cared for what I thought what was going on. I tried to make Slowbeef happy! So... Artemio, you get the AWESOME benefit of my literally just written (no sh!t lie here) poem called "Party-Pooped" that had nothing to do with this moment that happened even though it conveniently did.
So... enjoy.
Everybody’s waiting
On the side of the floor debating
If it’s cool to start dancing-
Like the story of Anson’s
But…
Nobody’s moving
Or gets the moment slowly going,
Some people are already thinking
“I wish I was at home sleeping”.
There’s…
A lack of an adventure,
But I’ll still take a picture
To make a holographic render
Seem like people having fun here.
This…
Scene is way too boring.
Is anyone even enjoying?
I’d rather leave than be enduring
A game without any scoring!
Before…
This party ever started,
Someone had torn apart it
By being a party-pooper.
May be better if they farted
Cause…
Although no one likes a stinker,
At least the smell won’t linger
And we’ll save ourselves the danger
Of a monkey-poo slinger.
Let’s…
Change the air’s essence
And learn a little lesson:
The next time you invite a stranger,
Hope he doesn’t leave disgusting presents
That…
Are unneeded and unwanted
And check the guest list to see if he is on it
For if something goes wrong then-
The host will be forever haunted
By…
The ghost who left his garbage.
Now... that you've been properly schooled, I wish a good many future parties result from the completion of this project!
I may not understand the situation, but at least I cared for what I thought what was going on. I tried to make Slowbeef happy! So... Artemio, you get the AWESOME benefit of my literally just written (no sh!t lie here) poem called "Party-Pooped" that had nothing to do with this moment that happened even though it conveniently did.
So... enjoy.
Everybody’s waiting
On the side of the floor debating
If it’s cool to start dancing-
Like the story of Anson’s
But…
Nobody’s moving
Or gets the moment slowly going,
Some people are already thinking
“I wish I was at home sleeping”.
There’s…
A lack of an adventure,
But I’ll still take a picture
To make a holographic render
Seem like people having fun here.
This…
Scene is way too boring.
Is anyone even enjoying?
I’d rather leave than be enduring
A game without any scoring!
Before…
This party ever started,
Someone had torn apart it
By being a party-pooper.
May be better if they farted
Cause…
Although no one likes a stinker,
At least the smell won’t linger
And we’ll save ourselves the danger
Of a monkey-poo slinger.
Let’s…
Change the air’s essence
And learn a little lesson:
The next time you invite a stranger,
Hope he doesn’t leave disgusting presents
That…
Are unneeded and unwanted
And check the guest list to see if he is on it
For if something goes wrong then-
The host will be forever haunted
By…
The ghost who left his garbage.
Now... that you've been properly schooled, I wish a good many future parties result from the completion of this project!
- Artemio
- Site Admin
- Posts: 2947
- Joined: Wed Oct 06, 2004 11:33 am
- Favorite Game: Snatcher! ... no wait, Policenauts...
- Kojima games owned: http://junkerhq.net/kojima.html
- PSN: Artemio
- Wii Friend Code: 6335316353781527
- Xbox Live: JunkerHQ
- Location: Mexico
- Contact:
Re: Current Status (4/26/09): 1 Bug Till Beta
I never bother to read most of what you type under that nickname Marc, sorry. Even including that one above this.
I'll just add that account to my ignore list, hope you don't mind my friend.
I'll just add that account to my ignore list, hope you don't mind my friend.
From the mathematical perspective, consciousness might be regarded as a second derivative of sensation.
-- Terrel Miedaner
[Junker HQ]
-- Terrel Miedaner
[Junker HQ]
- seraphssavior
- Second Lieutenant
- Posts: 378
- Joined: Sun Jan 21, 2007 8:01 pm
Re: Current Status (4/26/09): 1 Bug Till Beta
Wait, we can do that? Because I'm not seeing a button...
Life and Death hang in perfect balance...I'm only here to tip the scales.