Patch is up (v1.01 incoming)

Talk about Kojima's hard sci-fi masterpiece.
User avatar
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

Post by Kojima_Devotee »

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. :cry:
Image
Sure, mainstream games are fun, but you haven't tried Snatcher yet.
User avatar
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

Post by JonnyTanna »

Like I said, bad marketing/publicity. I actually forgot about Tormented until I picked it up in Malaysia..
User avatar
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

Re: Current Status (4/26/09): 1 Bug Till Beta

Post by midori_fox »

off topic 2 new MGS games =D
NANTO KAWAI!
User avatar
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

Post by Fly »

midori_fox wrote:off topic 2 new MGS games =D
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.

But I'm coming from a biased perspective here.
User avatar
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

Post by Artemio »

midori_fox wrote:off topic 2 new MGS games =D
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#p33658
From the mathematical perspective, consciousness might be regarded as a second derivative of sensation.
-- Terrel Miedaner

[Junker HQ]
User avatar
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

Post by Kojima_Devotee »

I'm amazed by how quiet it has become - It wasn't even this dead during the Silent Year. :P
Image
Sure, mainstream games are fun, but you haven't tried Snatcher yet.
User avatar
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

Post by Fly »

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.
Andrigaar
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

Post by Andrigaar »

Kojima_Devotee wrote:I'm amazed by how quiet it has become - It wasn't even this dead during the Silent Year. :P
I kept up chit-chat about sidebar, but most of the people nixed that and went back to asking the questions that cannot be.
:D
User avatar
Piratero
Posts: 50
Joined: Thu Apr 30, 2009 11:14 am

Re: Current Status (4/26/09): 1 Bug Till Beta

Post by Piratero »

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!
Image
Crane
Posts: 2
Joined: Sun Jun 07, 2009 10:54 am

Re: Current Status (4/26/09): 1 Bug Till Beta

Post by Crane »

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.
User avatar
slowbeef
Policenaut Hacker
Posts: 1630
Joined: Thu Jun 19, 2008 11:55 am
Favorite Game: Snatcher

Re: Current Status (4/26/09): 1 Bug Till Beta

Post by slowbeef »

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:

Code: Select all

FIEMW (lbu)
 FIEMW (bne)
(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:

Code: Select all

FIEMW
nop
  FIEMW
(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.)
User avatar
Piratero
Posts: 50
Joined: Thu Apr 30, 2009 11:14 am

Re: Current Status (4/26/09): 1 Bug Till Beta

Post by Piratero »

Excellent post. Thanks! :mrgreen:
Image
User avatar
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

Post by akor1108 »

Whoa, sexy tech talk ahoy! Otacon would be proud of you Slowbeef and Snake is quite pleased.

This is good.
Image
User avatar
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

Post by Jack »

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,
I won't even pretend to understand the rest, but if good things are happening, that cheers me up. :D
infinityBCRT
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

Post by infinityBCRT »

slowbeef wrote:In a real chip, though, it's doing stuff in parallel, so:

Code: Select all

FIEMW (lbu)
 FIEMW (bne)
(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:

Code: Select all

FIEMW
nop
  FIEMW
(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.
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.
User avatar
slowbeef
Policenaut Hacker
Posts: 1630
Joined: Thu Jun 19, 2008 11:55 am
Favorite Game: Snatcher

Re: Current Status (4/26/09): 1 Bug Till Beta

Post by slowbeef »

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.
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.

I guess I'm confused because this actually makes it much "safer" than not doing it, unless I'm misunderstanding.
infinityBCRT
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

Post by infinityBCRT »

slowbeef wrote:
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.
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.
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.

Been years since I've done anything in machine language, I've been working with Java exclusively for the last 3 years now. ;)
User avatar
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

Post by Artemio »

infinityBCRT wrote:I've been working with Java exclusively for the last 3 years now. ;)
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]
User avatar
slowbeef
Policenaut Hacker
Posts: 1630
Joined: Thu Jun 19, 2008 11:55 am
Favorite Game: Snatcher

Re: Current Status (4/26/09): 1 Bug Till Beta

Post by slowbeef »

Artemio wrote:Couldn't be more alienated from hardware than that.
I'm a Java programmer. And our Ruby on Rails team considers me a low-level programmer nowadays.
User avatar
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

Post by Artemio »

slowbeef wrote:
Artemio wrote:Couldn't be more alienated from hardware than that.
I'm a Java programmer. And our Ruby on Rails team considers me a low-level programmer nowadays.
=)
From the mathematical perspective, consciousness might be regarded as a second derivative of sensation.
-- Terrel Miedaner

[Junker HQ]
User avatar
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

Post by akor1108 »

slowbeef wrote
I'm a Java programmer. And our Ruby on Rails team considers me a low-level programmer nowadays.
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!

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.)
Image
User avatar
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

Post by Artemio »

akor1108 wrote:slowbeef wrote
I'm a Java programmer. And our Ruby on Rails team considers me a low-level programmer nowadays.
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!
No, it only means you didn't understood a word of what we were talking about.

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]
User avatar
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

Post by akor1108 »

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!
Image
User avatar
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

Post by Artemio »

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.
From the mathematical perspective, consciousness might be regarded as a second derivative of sensation.
-- Terrel Miedaner

[Junker HQ]
User avatar
seraphssavior
Second Lieutenant
Posts: 378
Joined: Sun Jan 21, 2007 8:01 pm

Re: Current Status (4/26/09): 1 Bug Till Beta

Post by seraphssavior »

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.
Post Reply