Post subject: Jurassic park 2 (U)
Joined: 10/3/2005
Posts: 1332
I'm optimistic, but I have my doubts that this would make a good run. So, I made a silly demo of the first 2 levels. Any interest in seeing more of this?
Joined: 5/17/2007
Posts: 48
I've worked on a video for this on and off, I think it could be good.
Player (100)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
I had a casual go at a couple levels to see if it'd spark any further interest for me. Raptor Attack Smv Protect the Gallimimus Smv
Player (100)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
Smv (Raptor Attack + Emergency Stage) I decided to start a serious run, here's a WIP that completes the first level and emergency stage. I'm on the fence about continuing this because I'm worried that ~40 mins of gameplay could get repetitive fast. So tell me what you think. Is it entertaining/boring? Edit: I improved the Smv a bit. In particular, I optimized jumping onto/falling off of vines so that the 2 characters are never separated by more than 4 frames. I also made the parts where I shoot enemies more entertaining.
Joined: 2/26/2007
Posts: 1365
Location: Minnesota
Is there anything more to this game than run right and shoot stuff? I played the first level a couple of months ago; all I remember are raptors being dicks to dodge. It was nice to see the raptor's asses kicked and the neat ladder climbing trick -- but I don't think 40 minutes of shooting up ladders and not getting hit by raptors would be entertaining. I hope more people chime in, so you don't have just one opinion.
adelikat wrote:
I very much agree with this post.
Bobmario511 wrote:
Forget party hats, Christmas tree hats all the way man.
Joined: 3/18/2006
Posts: 81
Location: Finland
Oh, finally someone touches this game. I would like to see TAS made out of this one. I never finished on console when I was a kid, since most of those emerengy levels are/were quite nasty. Ofc, now I have completed it, but would like to see TAS versoin being made :)
Player (118)
Joined: 5/13/2009
Posts: 700
Location: suffern, ny
I like the animation of climbing up the ladder. i would continue, you might find something that couldmake it entertaining.
[19:16] <scrimpy> silly portuguese [19:16] <scrimpy> it's like spanish, only less cool
Player (246)
Joined: 8/6/2006
Posts: 784
Location: Connecticut, USA
I had a good laugh at the two dudes getting a little too close when shimmying along the rope, and when the hand spazzes on the computer (I'm assuming you did that).
Player (100)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
Cool to see some support. It's quickly become apparent to me that TASing platformers is an epic headache of trial and error without the help of some lua scripting, so if I am to continue this project, all my energy will be going into that for a while. Here's some preliminary information I've found, and a very basic lua script I'm working on. I'm not even sure if I'm using the correct addresses yet. Horizontal Position 1 byte unsigned 7EB017 (varies periodically from 0 to 256, increases by 2 when running right, increases by 1 when moving on rope) 4 byte signed/unsigned 7EB016 Vertical Position Undetermined Horizontal Speed 2 byte signed 7EB01E (varies from 0 to 512 in increments of 128, constant value of 256 on ropes, negative when running left) Download Position.lua
Language: lua

function Default() local XPos = memory.readdword(0x7EB016) local XSubPos = memory.readbyte(0x7EB017) local XSpd = memory.readwordsigned(0x7EB01E) gui.text(180,20,"X Position") gui.text(230,20,XPos) gui.text(164,30,"X Sub Position") gui.text(230,30,XSubPos) gui.text(191,40,"X Speed") gui.text(230,40,XSpd) end gui.register(Default)
I really, really suck at lua scripting right now, I can't even get a simple "for" loop to work. I'll probably need to put in some serious time brushing up on programming language, but I'm also hoping someone with more programming expertise can help me out a bit.
Player (246)
Joined: 8/6/2006
Posts: 784
Location: Connecticut, USA
I just learned how to use for loops! Hit me up if you need help. I can definitely find / script some stuff for you.
Player (100)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
I'm posting some information I collected, though it's formatted like submission comments, so it will probably look a bit odd. Also included an updated script me and Electrospecter are working on. Speaking of which, Electrospecter is my hero. ========================== !!Introduction Jurassic Park 2: The Chaos Continues is one of those games I enjoyed as a child, and so it holds a lot of nostalgia factor for me. Naturally, seeing as there’s no run of the game currently published, I decided to take on the challenge of TASing this game. For the most part, the run is surprisingly easy to optimize. *No horizontal acceleration *Jumping doesn’t affect horizontal speed *Only subpixel values involved in x position are 0 and 128 *Corner boosting always has the same effect frame-wise *Almost no RNG to speak of *Almost no lag to speak of *Very easy game to hex edit *Fairly trivial to synchronize 2 player input *Ladders can be ascended at a uniform pace equal to your maximum jump speed Basically, so long as you run right for justice, dispose of enemies in your way, climb ladders properly, and corner boost whenever possible, you will achieve an optimal time. However, producing this run was far from trivial because of the efforts to make the run as entertaining as possible. __Optimizing Entertainment__ Below is a list of ways I attempt to make the run as entertaining as possible. *Hit some enemies on the earliest frame possible *Hit other enemies on the latest frame possible *Shoot human enemies with tranquilizer weapons, even though they do no damage *Time shots to create cool sounding firing sequences *Use a variety of burst shooting and continuous shooting *Use multiple weapons on the same enemy *Jump on the earliest/latest frame possible while achieving a corner boost *Making the most out of idle time (eg/ T-Rex auto-scroller fight) !!Frame Data *Running = 2 pixels / frame *Corner boost by jumping onto a block = 9 pixels *Corner boost by falling off a block = 5 frames *Time to partially charge cattle prod = 35 frames *Time to fully charge cattle prod = 70 frames !!Weapon Firing Restrictions Unfortunately you cannot fire weapons indefinitely in this game. There is a limit to how many bullets can appear on-screen at any given time, and it varies based on the weapon chosen. *Default weapons: 3 bullets *Rapid firing weapons: 5 bullets *Power weapons: 1 bullet In general at least 2 bullets must impact an enemy before firing can re-commence. An exception is the tranq bazooka where you can fire again 3 frames after the first missile has visually impacted the enemy. __Combinations__ Below are the weapon firing combinations I’ve determined. *Default + 4 rapid-fire / shotgun *2 Default + 3 rapid-fire / shotgun *3 Default + 2 rapid-fire *Rapid fire + 2 default / shotgun *2 Rapid fire + 1 default / shotgun *3 Rapid fire (no combination) *Shotgun + 2 rapid-fire *Bazooka + 2 default/ 4 rapid-fire / shotgun The rules governing this behavior are quite simple. Basically, each bullet fired has a certain value, and the maximum value allowed at any given point is 5. Below is a list of each individual weapon’s value. *Default: 1.5 *Rapid-fire: 1 *Shotgun: 3 *Bazooka: 5 In addition, when you fire a bullet and switch weapons, the already fired bullet takes on the same value as the weapon you have equipped. This is what allows the freedom to fire a bazooka shot followed by 4 rapid-fire shots, for instance. Normally the bazooka shot has a value of 5, but by switching to a rapid-fire weapon, it changes to a value of 1, thus allowing for another 4 rapid-fire shots to reach the maximum of 5. __Weapon Damage__ *Default: 2 *Rapid-fire: 2 *Shotgun: 15 (5 / hit) *Bazooka: 14 *Partially charged cattle prod: 8 *Fully charged cattle prod: 16 __Enemy HP__ *Bat/little orange pests: 4 *Generic enemy: 6 *Generic black enemy: 10 *Grenade throwing enemies: 14 *Bazooka enemy: 20 *Flamethrower enemy: 22 *Blue outfit enemy: 42 *Dilophosaurus: 12 *Green raptor: 10 *Brown raptor: 22 *Grey raptor: 42 ========================== Now for the code. At the moment it shows things like character position (+sub-pixel pos), speed, player/enemy hp, and weapon usage. The enemy hp is very bugged at the moment, but this should be fixed soon enough. Download Jurassic Park 2.lua
Language: lua

while true do xpos = memory.readword(0x7EB017) xsub = memory.readbyte(0x7EB016) ypos = memory.readword(0x7EB01B) ysub = memory.readbyte(0x7EB01A) xspd = memory.readwordsigned(0x7EB01E) yspd = memory.readwordsigned(0x7EB022) xpos2 = memory.readword(0x7EB07C) xsub2 = memory.readbyte(0x7EB07B) ypos2 = memory.readword(0x7EB080) ysub2 = memory.readbyte(0x7EB07F) xspd2 = memory.readwordsigned(0x7EB083) yspd2 = memory.readwordsigned(0x7EB087) weapon = memory.readbyte(0x7EB040) bullets = memory.readbyte(0x7EB033) weapon2 = memory.readbyte(0x7EB0A5) bullets2 = memory.readbyte(0x7EB098) HP = memory.readbyte(0x7EB03F) HP2 = memory.readbyte(0x7EB0A4) camx = memory.readword(0x7E006A) camy = memory.readword(0x7E006C) gui.text(209,47,"XSpd: "..xspd) gui.text(209,57,"YSpd: "..yspd) gui.text(138,47,"XPos: "..xpos) gui.text(138,57,"YPos: "..ypos) gui.text(183,47,": "..xsub) gui.text(183,57,": "..ysub) gui.text(134,37,"X2Pos: "..xpos2) gui.text(183,37,": "..xsub2) gui.text(48,2,""..HP) gui.text(201,2,""..HP2) local i for i = 0, 40 do enmyx = memory.readword(0x7EB146+i*0x65) enmyy = memory.readword(0x7EB14A+i*0x65)-10 enmyHP = memory.readbytesigned(0x7EB161+i*0x65)-1 HPx = enmyx - camx HPy = enmyy - camy if enmyHP > 0 then gui.text(HPx,HPy,""..enmyHP) end end if weapon == 0 then gui.text(43,24,"/ 3") gui.text(34,24,""..bullets) if bullets == 3 then gui.text(57,24,"X","red") end end if weapon == 1 then gui.text(43,24,"/ 5") gui.text(34,24,""..bullets) if bullets == 5 then gui.text(57,24,"X","red") end end if weapon == 2 then gui.text(43,24,"/ 3") gui.text(34,24,""..bullets) if bullets == 3 then gui.text(57,24,"X","red") end end if weapon == 3 then gui.text(43,24,"/ 3") gui.text(34,24,""..bullets) if bullets == 3 then gui.text(57,24,"X","red") end end if weapon == 4 then gui.text(43,24,"/ 5") gui.text(34,24,""..bullets) if bullets == 5 then gui.text(57,24,"X","red") end end if weapon == 5 then gui.text(43,24,"/ 1") gui.text(34,24,""..bullets) if bullets == 1 then gui.text(57,24,"X","red") end end if weapon2 == 8 then gui.text(211,24,"/ 3") gui.text(202,24,""..bullets2) if bullets2 == 3 then gui.text(225,24,"X","red") end end if weapon2 == 9 then gui.text(211,24,"/ 5") gui.text(202,24,""..bullets2) if bullets2 == 5 then gui.text(225,24,"X","red") end end if weapon2 == 10 then gui.text(211,24,"/ 3") gui.text(202,24,""..bullets2) if bullets2 == 3 then gui.text(225,24,"X","red") end end if weapon2 == 11 then gui.text(211,24,"/ 3") gui.text(202,24,""..bullets2) if bullets2 == 3 then gui.text(225,24,"X","red") end end if weapon2 == 12 then gui.text(211,24,"/ 5") gui.text(202,24,""..bullets2) if bullets2 == 5 then gui.text(225,24,"X","red") end end if weapon2 == 13 then gui.text(211,24,"/ 1") gui.text(202,24,""..bullets2) if bullets2 == 1 then gui.text(225,24,"X","red") end end snes9x.frameadvance() end
Player (100)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
This is probably the most entertaining sequence in the game: The T-Rex Jeep fight. Link to video Smv (T-Rex fight at frame 23000) Again, feedback is appreciated. Note that I kill off P1 because it allows for a better jump at the end (has to do with screen transition). I’m mostly concerned about the missile shots causing noticeable lag, and the movement looks a bit spastic in 30 FPS. And, for the amount of time I put into this, I’m not thrilled about it. I’d be glad if someone more capable took over this project as I’m finding platformers to be an absolute pain to optimize.
Joined: 10/23/2009
Posts: 545
Location: Where?
I loved the fight. Keep going, you're on the right way I think. I'll watch surely the finished run.
Joined: 2/26/2007
Posts: 1365
Location: Minnesota
I looked away and looked back and saw the T-rex shooting a bullet from his head. Made me lolwut
adelikat wrote:
I very much agree with this post.
Bobmario511 wrote:
Forget party hats, Christmas tree hats all the way man.
Joined: 3/18/2006
Posts: 81
Location: Finland
Ok, that was something that I wasn't expecting :D You are doing great job so far. Keep up the good work
Player (100)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
2 new stages completed. I'm about 2900 frames ahead of the SDA speedrun, and that run is around 43 minutes long, so I'm roughly 1/4 of the way done. Link to video Smv I was expecting the 2nd emergency stage to be a total bore, but I actually found it better than raptor attack due to higher enemy density. I'm thinking of changing the order in which the levels are beaten. This would only cost a few frames in the title select menu, and hexing isn't much of an issue. Here's a rough breakdown of each level beaten in order. EM = Emergency mission. Raptor Attack: Spooky base EM1: Jungle T-Rex Carnage: Jungle EM2: Spooky base Blockage: Military base EM3: Military base High Ptera: Large cave EM4: Outback Seek and Destroy: Firey Cave EM5: Jungle Protect the Gallimimus: Outback EM6: Large cave Destroy Biosyn Headquarters: Spooky base Disarm the Bombs: Fiery Cave In this order, the first half of the game lacks variety. Here's how I'd consider mixing it up: Protect the Gallimimus: Outback EM1: Jungle Seek and Destroy: Fiery Cave EM2: Spooky Base T-Rex Carnage: Jungle EM3: Military Base High Ptera: Large Cave EM4: Outback Raptor Attack: Spooky Base EM5: Jungle Blockade: Military Base EM6: Large Cave Destroy Biosyn Headquarters: Spooky base Disarm the Bombs: Fiery Cave I'm putting Protect the Gallimimus first because I think it is the most exciting mission in the game TAS-wise: Huge enemy density of low hp enemies to prey upon. I'd put T-Rex Carnage 2nd, but then there'd be 2 consecutive jungle missions.
Player (100)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
Good news and bad news: While I did make some more progress, I'm officially abandoning this run. I have my fingers crossed that someone else will tackle this beast. Progress below: Link to video Halfway through Protect the Gallimimus I took my own advice and made a new smv that starts at Protect the Gallimimus. I make it through half the mission, and honestly I'm stoked at how this turned out. I tried out a new idea, which is to have 1 character jump at a time while they are overlapping, and it adds a lot to the idle running moments. It's very time consuming to figure out these sequences, and is probably a lot easier to handle afterwards via hex editing. Another neat trick is to shoot indefinitely at running enemies. Since bullets impact so quickly at close range, the 5 bullet limit of rapid fire weapons is basically ignored. In addition, tranquilizer weapons knock the enemy backwards, so you can load pellets into moving enemies for quite a long time. Another thing, at one point I slow down to shoot a landmine. This doesn't actually cost any time because I can corner boost back to the right edge of the screen. The remaining level designs not yet seen in my WIPs are pretty cool. Here's some quick screenshots of Blockade, High Ptera and Seek and Destroy to show you what I mean: So yeah, if anyone wants to take this up, they can use the 4.5 levels I've worked on. Hex editing is very straightforward since the game has basically no RNG or lag to speak of. In fact, the game as a whole is very easy to optimize. The bigger challenge is varying weapon usage, particularly on human enemies.