no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | mgs1pcforumpost [2019/08/19 23:38] (current) – created plywood | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | =====MGS1 Forum Post Mirror===== | ||
+ | malkia on June 18, 2015 | parent | favorite | on: How Naughty Dog Fit Crash Bandicoot into 2MB of RAM | ||
+ | |||
+ | I worked on the port of MGS to PC back in 1999-2000. Here is what I've learned: | ||
+ | |||
+ | |||
+ | - Models were not " | ||
+ | |||
+ | |||
+ | - Music/Sound - this was enignma for us. We were never given their internal sound mixer, but the popular metal gear tune was " | ||
+ | |||
+ | |||
+ | - Game used overlays for the executable part. About 600kb were a main/ | ||
+ | |||
+ | |||
+ | - TCL-like language was used to script the game, the radio, traps/ | ||
+ | |||
+ | |||
+ | - So 600kb+100kb, | ||
+ | - The game used a tricky pointer hack, basically on the PSX accessing a pointer with the highest-24-bit set means read it from the CPU cache, otherwise not (or maybe the other way around). This was used for example to indicate whether the C4 bomb was planted on the ground, or on the wall instead of keeping a booblean/ | ||
+ | |||
+ | |||
+ | To work on Windows we had to ensure that we don't go above the 16mb (and the exe starts from 4MB), we also had all overlays for the game compiled-in rather than doing the swapping as the game did, but we had plenty of space even then to fit. It's possible that we might' | ||
+ | |||
+ | |||
+ | - As we couldn' | ||
+ | |||
+ | |||
+ | - On my part I'm really proud that I was able to do a global-hack where I kept the fixed-point coordinates sub-pixel precision, so our PC port did not " | ||
+ | |||
+ | |||
+ | - The other team-mates were able to get software/ | ||
+ | |||
+ | |||
+ | - Two lessons learned from it - We've put much better high-res textures for the eyes (hired someone from Texas to do it for us), when we got the idea rejected by Hideo himself (by the phone), he told us (through the interpretter) that the game during normal game-play did not have any eye-movement, | ||
+ | |||
+ | |||
+ | - Another was from my boss back then. We had to have a very strict frame-rate - I thnink 30fps otherwise some things were not properly emulated. On some older machines we had the fps going below 15fps, due to the actual renderering, | ||
+ | |||
+ | |||
+ | - Another minor tidbid. The game reffered to it's files/ | ||
+ | |||
+ | |||
+ | - Who knows how many other treasures we did not discover. In all working on it, made me love the " | ||
+ | |||
+ | |||
+ | - They had a dedicated " | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | qrmn on June 18, 2015 [-] | ||
+ | |||
+ | Fascinating insights. | ||
+ | Lots of music on the PSX used a system like that, because that's a very natural fit for the PSX SPU. Tracker " | ||
+ | |||
+ | |||
+ | What did you think of the multi-tasking kernel/DMA bit in the " | ||
+ | By the way, the VR missions mentioned above were released as a separate add-on disc in many regions (rather than the later release Integral which the PC port was). If you do happen to have an original and can't play it on a PS2/PS3 because it doesn' | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | malkia on June 18, 2015 [-] | ||
+ | |||
+ | I don't rememmber a lot of it. | ||
+ | Konami were very late with delivering their (MTS?) system that was their audio/ | ||
+ | |||
+ | |||
+ | I think at some point the " | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | qrmn on June 18, 2015 [-] | ||
+ | |||
+ | I do remember disassembling it and looking at it from the other way! (I was curious.) Pre-emptive multi-tasking kernels at that level weren' | ||
+ | You can decode the audio bits - it's just Sony's special version of ADPCM - or use a cartridge (for those PlayStations old enough to have a cartridge port) and read out the SPU memory over X-Link. You didn't even need a debug model to do it (although you did need a handy parallel port and the ability to bit-bang, or run a DOS program). | ||
+ | |||
+ | |||
+ | The CODEC used CD-XA Mode 2 Form 2 (2532-byte sector, with less error-correction layers) ADPCM-compressed streaming audio, 1 of 8 channels, at a relatively low sample rate - which works fine for speech. Lots of PlayStation games used the same basic technique for music and voices (as well as FMVs, although the bulk of that data would have been MDEC-compressed video). | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | malkia on June 18, 2015 [-] | ||
+ | |||
+ | I've got more familiar later with PS2, as I move to another studio, and was an audio programmer there (Treyarch) and had to do a lot of " | ||
+ | Oh, these were some exciting times! - the whole systems was there open for you to see (at least from the software level, and to some point HW). | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | wnevets on June 18, 2015 [-] | ||
+ | |||
+ | >- Two lessons learned from it - We've put much better high-res textures for the eyes (hired someone from Texas to do it for us), when we got the idea rejected by Hideo himself (by the phone), he told us (through the interpretter) that the game during normal game-play did not have any eye-movement, | ||
+ | Could this be part of the reason why I didnt like the look of the gamecube port as much as the PS version? | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | Retra on June 18, 2015 [-] | ||
+ | |||
+ | That's one of the appeals of classic 8-bit-style artwork: characters features are so poorly defined that it's easy for the player to mentally substitute their own perspective for the character' | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | malkia on June 18, 2015 [-] | ||
+ | |||
+ | The art in the games of Bitmap Brothers, and many other games - Star Control I/II, Heroes of Might and Magic I, II & III (all with different styles), the grotesque gothic view of Disciples ][ (beautiful!) and plenty of other 2D games. | ||
+ | For anyone that enjoys it, here is some great art done with 8-bit palette cycling (cylcing dozen or more colors to achieve animation) - http:// | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | hitchhiker999 on June 22, 2015 [-] | ||
+ | |||
+ | That's a great link, thanks! Something subtly ' | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | malkia on June 18, 2015 [-] | ||
+ | |||
+ | We've been lucky somehow I guess to discover and talk about such issues in advance. But it could be that a lot of people might not be bothered by them. Even today' | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | Jare on June 18, 2015 [-] | ||
+ | |||
+ | Hehe I always get a kick off of showing my wife Uncanny Valley examples. The other day she was really creeped by the E3 FIFA footage. I on the other hand must have developed a way of adapting, or teaching my brain what to enjoy, because I loved 48fps Hobbit despite noticing the artificialness that everyone else complains about. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Natsu on June 19, 2015 [-] | ||
+ | |||
+ | > it also uncovered things like " | ||
+ | It's pretty normal for Japanese people to write English words in katakana, especially in things like games. Many program menus are perfectly readable by English speakers if you can read katakana. It's something taught in every Japanese school, so being skilled in it makes you look intelligent. | ||
+ | It was probably closer to KONEKUTTO and METARU GIRU SORIDO though. | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | brobinson on June 19, 2015 [-] | ||
+ | |||
+ | Close, it's " | ||
+ | English loan words in Japanese are so fascinating to me. Here's an example: " | ||
+ | (The ・ is used to separate foreign words/names when a Japanese speaker would not be able to figure it out) | ||
+ | This must be how Romance-language speakers feel when they see their words modified and incorporated into English. | ||
+ | If you want to learn the Katakana syllabary, try this website I found recently: http:// | ||
+ | There' | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | Natsu on June 19, 2015 [-] | ||
+ | |||
+ | Yes, it's surprising how many things you can figure out just by being able to read hiragana and katakana. Though there are a lot of things that tend to be anomalous, like the insertion of small tsu characters in places an English speaker would not imagine a glottal stop, even assuming an English speaker who even knows what that is. | ||
+ | Sometimes it really takes imagination. I have a family member who has an arcade game labeled " | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | brobinson on June 30, 2015 [-] | ||
+ | |||
+ | >" | ||
+ | That is quite amusing! I think the hardest word I've found for Koreans and Japanese to say is " | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | mtinkerhess on June 18, 2015 [-] | ||
+ | |||
+ | That is some amazing info! | ||
+ | I found this video where you can see the effects of the sub-pixel vertex precision issue: https:// | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | malkia on June 18, 2015 [-] | ||
+ | |||
+ | Thank you for sharing this. This brings so many memories to me, as it was my first professional gig! I've put all my time into it, we were so fast back then, we've got the first level working on PC for two-three weeks. It took much more (7-8 months) to finish. At some point there was a deal whether we would allow load/save from any point in the game, but instead we proposed to include the VR Missions instead of it. | ||
+ | |||
+ | Early on due to my porting libraries I've introduced a severe bug, where the internal timer was 10x (or 100x?) faster, causing issues for loading/ | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | coolnow on June 18, 2015 [-] | ||
+ | |||
+ | Thank you so much for this. MGS is my all time favourite series and i spent countless hours on the PS1 version and also the Integral version on PC. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | nickpsecurity on June 18, 2015 [-] | ||
+ | |||
+ | Two things to take away for coding in general: clever CRC trick; dedicated optimization programmer. These might benefit other projects in the future. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | malkia on June 20, 2015 [-] | ||
+ | |||
+ | The compilers back then were horrible (gcc2 something? | ||
+ | |||
+ | The IHRA Drag Racing game (PC) version had a full simulation of the engine (valves, torque) - e.g. for any configuration it'll calculate right away the torque/gear ratio tables (okay, I was never a car buff, and my memory is very short here), but essentially there was an algorithm, which I later understood certain car-tuning services were using to adjust real cars! - I mean there were DOUBLES and lots of fortran-looking code written in " | ||
+ | |||
+ | Where we failed was trying to reuse this code on the PSX. First there was no hardware floating point, and what took 10 seconds of calcuation on PC took 45 minutes on PS1 - unacceptable. | ||
+ | |||
+ | Again our boss made a crazy idea - why we don't precalculate some values and store them on the CD - way more limited than the PC, but still something. Not sure how the values were chosen, but overall the game was not a success - one magizine rated it, as one of the worst PSX games ever... I left the project early on, as I felt it wasn't doing good (and was feeling really bad since then about it, as I felt like deserting the person that took care of me, and brought me to US) - http:// | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | nickpsecurity on June 21, 2015 [-] | ||
+ | |||
+ | I'm guessing the compilers got better with the modern game consoles? They should be great for latest since it's just multi-core x86. | ||
+ | Regarding engine simulation, that's a trip that it was useful enough mechanics were using it. Kind of disturbing they were using it though... Yeah, precalculation is kind of the goto way to deal with this sort of things for many resource- or performance-constrained systems. Always worth remembering. | ||
+ | |||
+ | I looked up the game on eBay. I can't get a consistent price because everyone starts at $10 and works down from there. Still worth somewhere from $1-9 plus shipping. Your worst project is at least helping people with bill money. Not the worst outcome. ;) | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | deadlockgB on June 19, 2015 [-] | ||
+ | |||
+ | > Hopefully he kept the original " | ||
+ | You mean " | ||
+ | Great read anyway! | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | malkia on June 20, 2015 [-] | ||
+ | |||
+ | Thank you! And thanks for the correction, but it looks like I can't correct it anymore (no more editing allowed). | ||
+ | |||
+ | |||