Dinosaur Planet: AI Slop Recomp

Dinosaur Planet: AI Slop Recomp is a native PC port of the Dinosaur Planet prototype for Windows and Linux, made by AI.

README

Dinosaur Planet: AI Slop Recomp

⚠️ This is AI slop. AI agents wrote every line of this project: the code, the fixes, the docs. It aims to be the whole prototype, playable to its end, but no human has played or tested it, so a fix may fall short where nobody has looked.

You almost certainly want Dinosaur Planet: Recompiled instead. People made it carefully, by hand. This project uses none of its code and isn't part of it. It also uses no code, assets or data from Dinomod Enhanced or the Dinosaur Planet decompilation.

Its developers ask that AI not be used on their work. So use this one only if you want to use AI on a Dinosaur Planet recomp yourself, or you're simply thirsty for slop. And please don't throw shade at its developers for that wish: everyone is allowed to wish things.

Report this one's bugs here, not to Dinosaur Planet: Recompiled. None of it is offered to the projects it builds on, which don't take AI-written code.

AI contributions are welcome and encouraged here: code, fixes and docs written by or with AI agents.

A native PC port of the December 2000 prototype of Rare's Dinosaur Planet for the N64, made by static recompilation (N64Recomp + N64ModernRuntime + RT64, with RecompFrontend's launcher and menus): the game's own MIPS code translated to C and run natively, with RT64 drawing it. Its functions, the main segment's and those of the 796 DLLs the game loads as it plays, are found in the ROM's code by tools/gen_syms.py, and the DLLs are loaded and unloaded by the game's own loader (src/game/dlls.cpp). It is not an emulator.

The repo holds no ROM, no asset from the game and no data extracted from it: you supply your own ROM, and nothing in git or CI is made from one except the function names, addresses and sizes in syms/.

Where the prototype is unfinished, what this recomp restores is inferred from the ROM's own code and data, so it may differ from other restorations of the game. Each restoration is behind a setting, Restored by default, and Original plays the ROM as it is there; docs/restored-content.md marks which of them are choices the ROM doesn't make.

Status: v0.1.4, for Windows and Linux (releases, releases/), and the same game in a browser at n64hub.com/dinosaur-planet (docs/web.md). It plays the prototype from a new game to Drakor's end and the credits, blended to your display's frame rate from the game's 30 frames a second (Graphics: Framerate Display by default, Original for the console's). AI agents have played every stretch of the story, each from its own starting point (docs/story-points.md), but never in one sitting, so a stretch may still stop you (Known issues).

Known issues

  • Expect graphical glitches: textures tiled wrong, letterbox bars where none belong, and sprites and objects that flicker.
  • A place where the game crashes, softlocks or has no way on, which the progression fixes missed or fell short at.

Report either here, saying where you were and what you did, with a screenshot for a glitch.

Progression fixes

The December 2000 prototype is unfinished: as it is on the ROM, places in it crash, softlock or have no way on, so it can't be played to its end. This recomp aims to make it completely playable and restored: every place that stops a player fixed, and the story's unfinished parts finished from what the game's own code and data already hold. Each fix is an attempt, written by AI agents from the game's own code (the patches in patches/ and the hooks in us.toml), and none has been played by a human, so report one that falls short.

A fix that restores, adding or finishing what the prototype doesn't have (a warp entry filled, an object placed, a bit nothing set now set, a scene or win that never came), is behind a General setting, Restored by default, whose Original plays the prototype as the ROM has it there. A fix of a crash, or of a plain bug in what the prototype has, is always on: an Original that crashes is no use to anybody. docs/restored-content.md sorts every fix by what shows it: the crashes, what the ROM itself shows was meant, and the choices made where the ROM says nothing.

Fixed:

  • Crashes in the game's own code: the Lunaimars of Moon Mountain Pass and Cape Claw's sand worm with no Kyte beside Krystal, the Swap Store's item beams as the player walks in, a crash after a long while in Cape Claw, where more sounds at once than an audio frame's command list holds wrote past its end, a small basket or crate carried out of the place it was found, which the game freed in the player's hands, Dragon Rock's fight with the Skeetlas, which after a minute or two drew more than the game had made room for and wrote over the models, Dragon Rock's top at its east end, where more of the level is loaded at once than the game kept room for, a swing pressed on the very frame the player comes back after a death, before the staff or sword was made, Golden Plains' portable hole spell, whose pickup made a new player every frame until the game ran out of memory, and a fall into the pit in either of Walled City's temples, which loads the city again and made an object the game no longer has, and the room past Warlock Mountain's laser hall, whose sky was freed on the frame the player came in and drawn after.
  • A scene whose camera cuts away from the player could unload the ground under him, and he fell out of the world as it ended: Warlock Mountain's "Father." scene, on the way to Walled City's spirit's release, did. The ground the player stands on now stays loaded.
  • Cape Claw's SandEels: a beaten eel that loads again, as one does when the player comes back to the sand worm, started its sound every frame until no other sound in Cape Claw could play.
  • SwapStone Hollow's white mushrooms: one of the three down under the hollow can get stuck where it stands, and caught there it vanished without counting, so only nine of the ten for the Queen Earthwalker could be brought to her.
  • The Krazoa shrines (Krazoa Shrines on Restored): all eight finished, a way into the five that have none, and their spirits taken to Warlock Mountain, Cape Claw's test, which never ended, and Walled City's shell game, which a player who stood still won as its answer time ran out. After Willow Grove's spirit, Warlock Mountain's own scene and warp point on to Cape Claw, which never came, now do. A fallen column across Warlock Mountain's way north from the pad, which shut off the releases of Walled City's, Willow Grove's and Northern Wastes' spirits, is gone while they are carried, and past the laser hall on the way to Walled City's release, the two scenes after its guards, which the first laser target hit had shut for good, now play, and a column there carries the player up to the second. Two of the fixes are always on: the pad the player arrives on in Moon Mountain Pass's shrine, which sent a player who stepped back on it nowhere, and Golden Plains' fly baddie, whose every shot made a second player who took the camera.
  • SwapStone Hollow's Tricky's run to his mother, the Queen Earthwalker (Tricky's Run on Restored): it never started. With no Tricky beside Sabre it would have crashed, which is fixed on either setting.
  • SwapStone Hollow's SwapStone could stop answering in its own corner of the hollow, and answer only outside it, after a trip through the Swap Store or the SwapStone's warp.
  • Cape Claw's Krazoa tablets (Krazoa Tablets on Restored): the third tablet, which the prototype never placed, is found where the sand worm fell, and the tablet room's last puzzle, which led nowhere, opens a Transporter to Krazoa Palace.
  • The Kamerian Dragon under Dragon Rock (Kamerian Dragon on Restored): its health ran out and the fight went on, and the fourth SpellStone, which the Desert Force Point's second place takes, was nowhere. It now dies once its health runs out and leaves the fourth SpellStone in Krystal's hands, and stays gone. Nothing led to its room: the room is the Skeetla arena at the bottom of Dragon Rock on the level's next layer, and the arena's north wall, once the arena is won, now leads into it, and the SpellStone, once picked up, back out.
  • Dragon Rock's Skeetla arena (Kamerian Dragon on Restored): it couldn't be won. The ice spell on the top's west, the only spell that puts out the arena's three lava controls, couldn't be picked up or cast, and putting the three out takes about three times the magic Krystal holds, with none to be had on Dragon Rock. And the Earth Warrior the Skeetlas eat lived through less of the fight than it takes, and the blue mushrooms on Dragon Rock that feed him couldn't be given him: Krystal's items don't list them, and he can't be picked out while the fight is on. The ice spell is now picked up and cast from the spell scroll as the projectile is, and while the fight is on the arena fills Krystal's magic, as the dragon's fight below fills it, and she gives the warrior the mushrooms from her items.
  • Dragon Rock's bottom: a wall that the top's earth call pad opens stood again once the player came down the stairs from the top's east end, shutting the way to the Skeetla arena.
  • Dragon Rock's Earth Warrior couldn't be freed: the meat from the crates on the arena's gallery, given to the sharpclaw beside them, pulls the lever that opens his shackles, but its scene looked at the lever from outside the level and left Krystal falling into the void, and the respawn took it all back. The scene now plays on the gallery and in the arena, it ends with her where she gave the meat, and walking to the arena's south side frees him.
  • SwapStone Circle's chief never gave Krystal the key to Moon Mountain Pass, so nothing after it, CloudRunner Fortress on, could be reached from a player's save: he gives it only in a later part of the circle's story, which the SwapStone's swap back to Krystal always set back. The circle now moves on to it once Diamond Bay's spirit is released, until he has given the key.
  • The story from a new game to its ending: every story value a stretch was tested from now has where a player's game sets it on the way there (docs/story-points.md, The values a point sets), and the one that didn't is above.
  • Drakor's end (Ending on Restored): the last fight is won as the ROM has it, by a hit with the staff and a walk to the Kamerian Diamond in the room below, and the end of Drakor's fall now plays the game's own credits, which nothing opened, then goes back to the title with the save as it was. The prototype started the fight again after his fall, so the game never ended.
  • The Desert Force Point's second SpellStone (Desert Force Point on Restored): Golden Plains filled its place each time it loaded, so the stone stayed carried and SwapStone Circle refused the swap back to Sabre, and nothing led up from the force point's floor to the duct that reaches the place. Golden Plains now leaves the place to the player, and a second of the force point's own lifts stands in the corridor behind the round door, under the duct.
  • CloudRunner Fortress's treasure lift (Treasure Lift on Restored): past the blasted wall the wind lift only ever blew up for a player who came from the top, holding her at the corridor's height, so the treasure caves below couldn't be reached. Stepping in from the top now lowers her to the bottom, where the levers turn it back for the way up. Once the courtyard roof is blown, it lowers her carrying a barrel too.
  • CloudRunner Fortress's baby CloudRunners (Baby CloudRunners on Restored): Kyte's mother hid five, and Kyte never found the ones waiting for her, so they never came out to be rescued. A waiting baby calls as Krystal comes near, Kyte now flies to where it hides, and once Krystal steps back it comes out for her to rescue. The one on a balcony nothing reaches waits on the hall's floor below it.
  • CloudRunner Fortress's gold perch: once freed from the courtyard's roof, Kyte only ever circled it, so she never flew to the gold perch above the courtyard when told to, and the pool over the way to the race never drained. She now flies on with Krystal once she is freed.
  • Picking up an item, a key, a crystal, a tooth or a SpellStone: the item's scene made a second Sabre and never ended, and could crash.
  • Walled City: standing on either pressure switch crashed the game, and nothing could hit the sun and moon beacons, so the city's slab door never opened.
  • BOSS TRex: the door behind Sabre shut the player out of the arena as its intro ended, standing on a floor switch never charged it, so no laser wall fired and the TRex couldn't be hurt, after its first hit the TRex circled its corners in place and never charged again, and a charge that ran on round a corner left it facing sideways, so its stunned head could lie out of reach.
  • BOSS TRex's SpellStone (BOSS TRex on Restored): beating the TRex went back to the title with no SpellStone. The third SpellStone is now carried out, through the arena's own way back to Walled City.
  • The third SpellStone (Third SpellStone on Restored): the Volcano Force Point loaded as on the first visit every time, so the SpellStone carried back from BOSS TRex had no path to open and no place to go, and Walled City never showed its Sun and Moon Stones. The force point now loads its second visit once the King has activated the stone, and hands it over there, and its third once it is placed, and Walled City its second once the third spirit is released. And the moonseeds Krystal plants in Moon Mountain Pass, which nothing in the prototype gives: once the third SpellStone is placed, Sabre finds four in the dark, wet cave under SwapStone Hollow, one for each of the pass's receptacles. Diamond Bay's flame switch stayed sunk below the ground, so the Pointback mother's second egg couldn't be reached: talking to her now raises it, and Tricky's flame lights it. Three rocks in Moon Mountain Pass's vents now move the meteor, and EC's Transporter stands once both stones are in the TRex statues' sockets.
  • Diamond Bay's light beams to the Pointback's egg took Sabre as standing on two of them from well off, so a leap between them stepped the bridge back from under him, and Walled City's temples' bridges of light let the player fall through into the pit below. The temples' symbols at the tops of their stairs stayed dark once their doors had opened, until the player left the city and came back.
  • CloudRunner Fortress's courtyard roof (Wind Bridge on Restored): its barrels stand west of the treasure shaft, and the shaft's wind, which holds an empty-handed player at the corridor's height, dropped one carrying a barrel to the bottom, so no barrel reached the courtyard and its roof, which three of them blow, kept Kyte shut in. The wind now holds a player carrying a barrel too, and with Treasure Lift on Restored it lowers only an empty-handed one.
  • CloudRunner's snow race: the race's start launches the bike out of the bay where the SnowClaw stands, and at the recomp's frame rate the edge back into it stopped the bike dead, so the SnowClaw couldn't be rammed and the race couldn't be won. The bike now rides over it as it does at 20 frames a second.
  • Krazoa Palace (Krazoa Palace on Restored): the prototype built its rooms and left them empty, and nothing past Cape Claw led on to Drakor. Its four wings now each have a door, a console and a text block, played in turn, fire, earth, water and magic, and the last door they open leads to the red Krazoa, who sends the player on to Drakor. Freeing Kyte in Cape Claw left the palace without its two Transporters; it now keeps them.
  • Walled City's way in (Walled City on Restored): the prototype never built the tasks its task list has here, so the Queen EarthWalker was missing, the city's gate stood open, and the third SpellStone was active as soon as it was won. Now the Queen waits in the corridor outside, Tricky's flame (learned from the SnowHorn in DarkIce Mines once the SnowClaw guarding it is beaten) angers the RedEye by the gate, a RedEye that catches Sabre roars and drops a tooth, ten teeth in the bowl by the arch open the gate, and the King EarthWalker activates the stone once Sabre brings it to him.

The ROM

The prototype's ROM as a big-endian .z64 of 64 MiB with MD5 49f7bb346ade39d1915c22e090ffd748 (SHA-1 cb9760b49198f7b754593a01c8ed642211caacde). No other build of the game is supported.

Options

Each option a modern port adds has a value that plays as the console does. The defaults are the modern ones.

  • Aspect Ratio (Graphics): Expand widens the world to the window, and a cutscene's bars and the screen's clear reach its sides. Original is the console's 4:3. The picture behind the boot's Nintendo and Rareware logos fills the frame's height, its sides cropped a little in 4:3 and whole with Expand.
  • HUD Placement (Graphics): the minimap and the panels at the picture's sides move out to 16:9's edges with 16:9 and the window's with Expand. Original keeps them where the console puts them. Dialogue and subtitles stay centred.
  • Free Camera (General): the right stick and the mouse turn the camera around the player, who walks by the turned view. A turned view keeps to the player's side of the walls, and the D-pad plays the C buttons in the stick's place. Original is the console's camera, which follows by itself, with the right stick on the C buttons.
  • Mouse Sensitivity (General): how far the mouse turns the camera, with left click B and right click Z. 0% is no mouse, as on a console, and leaves the pointer free.
  • Invert Camera Y (General): moving the mouse or the right stick up looks down.
  • Tricky's Run (General): Restored has Tricky run to his mother in SwapStone Hollow as the player comes near, the run the Queen Earthwalker's clue asks the player to watch. Original is the prototype as it was left: he never runs.
  • Krazoa Shrines (General): Restored makes all eight Krazoa shrines reachable and playable, has Cape Claw's test end once its baddie is beaten, and gives each spirit its release at Warlock Mountain, from what the prototype's own maps and code hold. Original is the prototype as it was left: three shrines are reached from the world, Cape Claw's test never ends, and three spirits have nowhere to go.
  • Krazoa Tablets (General): Restored has HighTop hand Krystal the first Krazoa tablet in Discovery Falls, places Cape Claw's third where the sand worm fell, keeps the tablet room until it is solved, and has the tablet room's last puzzle open a Transporter to Krazoa Palace. Original is the prototype as it was left: the first tablet comes with no scene, the third is nowhere, and the puzzle's end leads nowhere.
  • Kamerian Dragon (General): Restored lets Krystal pick up and cast the ice spell on Dragon Rock's top, fills her magic while the fight in the Skeetla arena at its bottom is on, lets her give the Earth Warrior there Dragon Rock's blue mushrooms from her items, has the arena, once won, lead into the Kamerian Dragon's room, and the dragon die once its health runs out and leave the fourth SpellStone for the Desert Force Point, which leads back out. Original is the prototype as it was left: the ice spell can't be taken or cast, the arena can't be won, nothing leads to the room, the fight never ends, an