Kojima games owned: -Policenauts -Snatcher (Sega CD) -Metal Gear Solid I -Metal Gear Solid II - Substance -Metal Gear Solid III - Subsistence -Metal Gear: Ghost Babel -Zone of Enders 2: The Second Runner
Randam Hajile wrote:
Oh yeah, now that you mentioned about a collection i remembered to ask: Does anyone here know where i could get some policenauts/snatcher posters?
Cheers!
You can always just stare at the Policenauts poster in MGS2, haha.
Wow I didn't know that they were selling prototype reproductions of Earthbound Zero for so cheap. Thanks for mentioning that. I'm definitely going to buy it (too bad I was already so far through the game on my ps2 already). By the way, are there any soundtracks for the game that have redone music? I really like the music in all its 8-bit glory, but I'd really like to hear the one from the weird pink and cloudy city with real instruments.
On topic, does anyone know where I might possibly just buy a psx that will be able to play Policenauts? I'm having trouble finding one, mostly because Ebay forbids it (which is stupid, since I'm pretty sure that there's nothing illegal involved in it).
JimboKudo wrote:Wow I didn't know that they were selling prototype reproductions of Earthbound Zero for so cheap. Thanks for mentioning that. I'm definitely going to buy it (too bad I was already so far through the game on my ps2 already). By the way, are there any soundtracks for the game that have redone music? I really like the music in all its 8-bit glory, but I'd really like to hear the one from the weird pink and cloudy city with real instruments.
On topic, does anyone know where I might possibly just buy a psx that will be able to play Policenauts? I'm having trouble finding one, mostly because Ebay forbids it (which is stupid, since I'm pretty sure that there's nothing illegal involved in it).
Any chance you can pm me that info as well i have a ps1 which was able to play backups via the slot at the back but recently it just stopped working so need a new one, thanks.
Kojima games owned: Zone of The Enders Anubis: Zone of The Enders Metal Gear Solid Metal Gear Solid: VR Missions Metal Gear Solid 2: Sons of Liberty Metal Gear Solid 3: Snake Eater Policenauts (PS)
I just read slowbeef's post about how the pipelining fucked things up. while it's easy to follow when reading the description of the problem and the solution, i just admire how you think of possible solutions. when stuck up with a problem it's interesting the thought process behind the solution, not the solution itself in my opinion. the way you think of solutions (like the pipelining) reveals a highly technical expertise on the topic of assembly. which is weird because you are a web programmer unless if you dwelved deeper into the assembly world for the project or were a really mips geek at your college. i like the way of how you think around something to figure out a solution. slowbeef if you assemble all your technical posts into the hacking documentation you will release after the end of the project it would be really cool (since i have only witnessed your auto save and pipelining and maybe another one.. who knows what else lies in your quest to hack this thing up). it will be really interesting material but i am asking you as a favor to include how you thought when a particular problem arrised, the thought process involved to find what;s going on and the methodology to a solution. of course if in your post there isn't anything then i (WE) am (ARE) still greatful. also there are techicalities about other stuff not 100% related to general programming like graphics, compression issues which are more expertised. do you know these stuff because of your web programming experience, study them for the project or you get assistance from others? btw you are a web programmer and you know java. then you must do servlets and jsp (or they are doing you). i know java but in the context of those two i know shit. i didn't invest almost no time at all but from the little time i invested it was quite complicated. while java is sooo high level and thus really easy i find it tiring with all the different APIS it has. i know this is counter intuitive, how can this be a disadvantage? i am not saying it's a disadvantage but there are other api's in the official sdk, other from java but in another sdk... it's chaotic..
I do plan on writing up a big tech doc to that effect, actually. Maybe like the grand old story of how I fell into this.
Who wants another hardcore tech post?
LZO Decompression and Pipelining
That's a mouthful.
When we figured out the pipelining issue, I was a little flustered because it meant I had to redo my assembly hacks. It seems pretty easy at first - you just have to add a nop wherever there's memory access to a register used in a successive instruction. Or, in English, I have to tell the code to wait a step after it reads from memory.
But the problem with this is two-fold.
I. Branching
The MIPS does a J-Type instruction in one of two general ways. The first is a "Jump". The code looks like:
j 0x00037044
Multiply that number by 4 (in hex) and you'll get a memory location. It's where the code knows to go next. This is actually how most of our assembly hacks work - we put the code somewhere static in memory we know the game will always load it (in our case, the font file) and "hijack" a jump - meaning change the address so it goes to our code instead.
But there's also a "Branch" - two kinds:
beq r2, r3, 4
bne r2, r3, -3
Branches (branch-on-equal - beq, and branch-not-equal - bne) are conditional jumps. They only jump if two registers are equal (or not equal). It's how you do "if" in assembly.
Jumps are absolute - they jump to strict memory addresses starting from zero.
Branches are relative - they will jump a certain number of "lines" of code ahead or back.
So the problem is that I might have a branch that jumps ahead 4 lines if it succeeds. If I introduce a nop, I've added a line of code, so now the branch has to jump 5 instead. What I mean is that redoing the hacks was trickier than just throwing in nops where necessary - I also had to redo all the branches so it was still jumping to the right places.
This was okay for my hacks - they were all hand-written anyway, so they weren't too big.
But you know the LZO decompression? The thing Scarboy came up with to get around Konami's compression routine so we could modify the graphics? Well, he used a PS2 compiler to generate that assembly from C source code. He turned off optimizations so that it generated PS1 assembly.
The problem, though, is that it didn't do the pipelining correctly. And it was a LOT of code. We spent like a week working with the compiler trying to get it to pipeline without making any PS1 specific instructions. We were unable. I couldn't do it manually - there was too much code. I'm not being lazy here; redoing all the branches by hand in compiled code is bound to be error-prone. So then I got a bright idea.
If it was too challenging to figure out where to put nops and how it might affect branches that go across the new nops... and branches are relative, why not...
1. Put a nop after EVERY instruction in the LZO decompressor (ensuring all the pipelining works correctly)
2. Since all my code has grown by a static amount (it's doubled) and all my branches are relative... can't I just double them?
Well, I could and I did. And it didn't work. This was the second problem.
II. The MIPS jump delay.
Assembly doesn't exactly work like regular programming, and the big mindfucks are pipelining (you can't be assured that a line of code that comes right before another line actually finishes executing first) and the jump delay.
You can branch or jump in MIPS. They count as instructions.
Every instruction takes 1 CPU cycle - except for jumps. They take 2. So MIPS figures "since we have extra time, I might as well execute an instruction right after a jump".
So where as in most programming languages, you'd have (I'm using BASIC for clarity here):
10 PRINT "HELLO"
20 PRINT "THIS IS MARC"
30 GOTO 50
40 PRINT "HAVE SOME POETRY"
50 END
And you'd get: "HELLO. THIS IS MARC."
But the jump delay says to execute the instruction immediately after a jump. So actually, you get:
"HELLO. THIS IS MARC. HAVE SOME POETRY."
What's messed up is it's a heady concept to get over. Code usually goes top-down. Now you've got this notion of code that comes after other code, but still happens before it. (During, sorta.)
That means I can't just use nops to "double" the code in the LZO decompressor. Great. So what I do is after a branch, I make sure to take the "Next" instruction and use that instead of a nop, ensuring any jump delay code still gets executed.
So the LZO decompressor is twice as slow now, but it works in hardware, so all the telops are in English again (and all the other graphics mods are in place too). Don't worry - it's not visibly slow. It looks just as fast. But if you put it up on a profiler, it took twice as long as before, just waiting on nops.
Not the most elegant of solutions, but I think the words "elegant" and "hack" rarely ever meet anyways.
That was nice! Thanks slowbeef. Thanks for sitting down and writing a big and tiresome post dude. BTW how old are you? (we may be in a koijima forum but this doesn't imply subtle homosexuality messages )
qwerty wrote:That was nice! Thanks slowbeef. Thanks for sitting down and writing a big and tiresome post dude. BTW how old are you? (we may be in a koijima forum but this doesn't imply subtle homosexuality messages )
Well, not until you added that last part, it didn't.
qwerty wrote:That was nice! Thanks slowbeef. Thanks for sitting down and writing a big and tiresome post dude. BTW how old are you? (we may be in a koijima forum but this doesn't imply subtle homosexuality messages )
Well, not until you added that last part, it didn't.
Dude, this makes me remember that old meme about the internet rules... The Rule 27, Always question a person's sexual preferences without any real reason.
That was... strage. Comrade slowbeef must older than Yoda, for all the romhacking knowledge of the world is contained in his very soul. Keep on rocking, man.
Solfieri wrote:Comrade slowbeef must older than Yoda, for all the romhacking knowledge of the world is contained in his very soul. Keep on rocking, man.
JonnyTanna wrote:
Does the Sega Cd emulator work on your psp-2000? it doesn't work on mine..
God bless the original PSP.. I recommend that for anyone who wishes to buy a psp and emulate. It's cheaper and it's compatible with all of the emulators.
Yes, picodrive runs just fine on mine... I completed Snatcher immediately to test it
Ah, I would love to play Snatcher on my PSP... That would be so awesome!! Too bad that my PSP has a very late firmware in it. So I guess I'm out of luck.
"Treat your cardboard box with care. Take care of the box, and it will take care of you."
Kojima games owned: Metal Gear (MSX & PS2) Metal Gear 2 - Solid Snake (MSX & PS2) Metal Gear Solid (PSX & Twin Snakes for Gamecube) Metal Gear Solid 2 Metal Gear Solid 3 Metal Gear Solid Portable Ops Metal Gear Solid 4 Snatcher (Sega CD & PC-Engine CD) Policenauts (Sega Saturn & PSX) Zone of the Enders Zone of the Enders 2
The Hero wrote:Ah, I would love to play Snatcher on my PSP... That would be so awesome!! Too bad that my PSP has a very late firmware in it. So I guess I'm out of luck.
Actually, almost all firmwares can be cracked with the right know-how. The way a psp dev explained to me was that, since the first firmwares were so heavily researched and exploited and the new firmwares are all add-ons or modifications of those originals, given enough effort, NO firmwares on the psp will be safe for long. This is true for every psp SO FAR but, since the psp-go is essentially far different hardware, i wouldn't be surprised if it was damn near impossible to crack since sony blames declining psp sales on piracy when they don't seem to realize that 90% of people only buy them for the homebrew. I work at a game store and actually ask people on purchase what theyll use them for.
But yeah, back on subject, i wouldn't be surprised if your firmware could be exploited.
Check here http://pspupdates.qj.net/
The 3000 and late 2004 models cant be hacked, because of their boards. If take out the battery you can see which board you have. 8C is the latest board which cant be hacked. You just need to wait until DarkAlex makes a new Despertar Del Cementerio. You can use the Pandora Battery but it wont read the MagicStick. You can try to look for a Hack-Way which is named ChickHen but it is very dangerous because it can brick your PSP at a quite high rate. I got a 8B Board.
The people saying that the previously unhackable PSP-2000 (w/motherboard TA-088 v3) and PSP-3000 units can't run custom firmware are both wrong -- and right.
ALL PSP's with a firmware version of 5.03 or less are subject to the newly found TIFF exploit, which brought about the so called ChickHEN mod that allows the running of unsigned code on any PSP model to date. This, on the other hand, led to the development of CFW Enabler, the latest version of which allows the running of fully functional custom firmware on all PSP-2000 and PSP-3000 models -- including pops emulation. (Read: PSOne games)
There is a but, however.
Due to the changes rendered on the new PSP motherboards, the CFW installation is not permanent. Every time you fully shut down the PSP, i.e. you hold the power switch down for several seconds or take the battery out, the PSP boots into official firmware and you need to use the ChickHEN mod and CFW Enabler app in succession in order to get back to CFW mode.
So, anyone who's interested, I guess read into this? I haven't tested this myself so I can't really say anything constructive on the matter.
Kassius wrote:Actually, I don't really get Marc's retaliation as that's been to be honest one of the first questions about the game itself in the last three days. Instead the policenauts topic has been turned into the "CRT LCD Digital noisy vga rgb extravaganza."
I just wanted to make sure people understood it was a joke before it turned into some rumor. And yeah, I know we've said this before, but could you guys please keep discussion here on-topic? (PS hardware discussion is fine.) Since enough people seem bothered by it, we will start temp-banning people from now on. If we didn't it wouldn't be fair to those who have been moderated before.
Anyway, there's good news and then a bit of bad news. The good news is I'm back. The bad news is I dislocated my shoulder on my trip, which means my typing is very slow. Consequently, I work slower, which means less time for non-work projects. So my progress until I'm back to normal won't be as fast as it would be otherwise (though I'll still be moving forward).
Also, the reason we're leaving it as "1 bug till beta" is because issues continually crop up, so we'd just end up constantly jumping back and forth between statuses otherwise. Then there's the fact that my work isn't finished anyway.
driller wrote:
Due to the changes rendered on the new PSP motherboards, the CFW installation is not permanent. Every time you fully shut down the PSP, i.e. you hold the power switch down for several seconds or take the battery out, the PSP boots into official firmware and you need to use the ChickHEN mod and CFW Enabler app in succession in order to get back to CFW mode.
So, anyone who's interested, I guess read into this? I haven't tested this myself so I can't really say anything constructive on the matter.
Dont forget the risk of Bricking the PSP. Just to do that all again is nothing in comparison to f*** up your PSP if its bricked. If it is you can throw it away in the Garbage. The only way to rescue it then is to use Despertar Del Cementerio. But as long as there isnt one for the 8C and up motherboards...
Favorite Game: Shenmue I, MGS, Snatcher, Zelda: Ocarina Of Time.
Kojima games owned: Metal Gear (NES) Metal Gear: Ghost Babel (GB) Metal Gear Solid (PSX) Metal Gear Solid 2: Substance (PS2) Metal Gear Solid 3: Subsistence (PS2) Policenauts (Saturn/PSX/3DO) Snatcher (PC Engine/Mega CD) Zone Of The Enders (PS2) Zone Of The Enders 2: Special Edition (PS2) Super Smash Bros. Brawl; it counts, right? ;P
Marc wrote:Anyway, there's good news and then a bit of bad news. The good news is I'm back. The bad news is I dislocated my shoulder on my trip, which means my typing is very slow. Consequently, I work slower, which means less time for non-work projects. So my progress until I'm back to normal won't be as fast as it would be otherwise (though I'll still be moving forward).
Also, the reason we're leaving it as "1 bug till beta" is because issues continually crop up, so we'd just end up constantly jumping back and forth between statuses otherwise. Then there's the fact that my work isn't finished anyway.
Ouch, sorry to hear that.
You just take your time and get better, Marc.
Now pertaining to the topic, what do you guys think will be the best emulator to use on a PC for Policenauts? ePSXe has been known to be jumpy with the animé cutscenes (Charlie Johnson verified this). Is PCSX the recommended setup? I will be testing it on both setups and will post up their pros and cons later for other people like me who are going to play it like a classic point and click adventure (arguably the way it was supposed to be) on a PC.