This document specifies the system requirements for halo-ce-psp, a fan-built remake of Halo: Combat Evolved that is designed from the ground up to be portable to the PlayStation Portable (PSP). The product intent is twofold and inseparable: recreate the Halo: Combat Evolved campaign experience, and do so within a form that can be hand-ported to run on 333MHz handheld hardware with a 480×272 render target and a 32MB memory budget.
The audience is the Player — someone who knows the original 2001 campaign and wants to experience a handheld-scale recreation of it, progressing through missions and combat encounters to completion. The requester, Arjun Pai, is also the builder who must ship the remake inside the PSP's memory budget; that builder role is a development-time concern rather than an in-product workflow role, and is therefore not modeled as a product persona.
The remake's low-poly, flat-shaded aesthetic is not a compromise to be hidden. It is the honest register of a PSP-bound recreation, and the product presents it plainly.
halo-ce-psp is a playable, low-poly recreation of the Halo: Combat Evolved campaign, built to ship on the PlayStation Portable. The current delivery is a custom first-party experience with two surfaces:
The sole active human actor is the Player. There is no differentiated permission model, no role-based visibility, and no account requirement: both surfaces are reachable without identity establishment, and no durable actor-specific state must be privately owned or resumed across sessions. The remake's defining constraint — that it must fit and run on a PSP — is expressed directly in the interface rather than described in prose.
The product is a game remake, not a service. Its delivery boundary is the playable campaign itself, presented through a first-party custom interface that is honest about the hardware it targets. The Landing surface is anonymous and public: it exists to establish what the remake is, who it is for, and that it is built for the PSP, before the Player commits to play. The Campaign surface is likewise reachable without identity; the Player selects a mission and plays it.
Everything the Player needs to complete the accepted goal — experiencing the recreated campaign on handheld-scale hardware — is inside these two surfaces. There is no account system, no social layer, no storefront, no multiplayer, no level editor, and no analytics dashboard. The PSP port itself is a build and deployment concern owned by the builder, not an in-product workflow; the product's responsibility toward it is to present the portability constraint truthfully and to keep the experience within the handheld's rendering and memory envelope.
No future-horizon requirements have been accepted. Anything not stated in this document is out of current scope.
FR-1 — Recreate the Halo: Combat Evolved campaign. As a Player, I should be able to play a recreation of the Halo: Combat Evolved campaign, so that I can experience the original campaign in a rebuilt form.
FR-2 — Present the remake and its PSP portability before gameplay. As a Player, I should see what the remake is, who it is for, and that it is built for the PSP, so that I understand what I am about to play before I commit to it.
FR-3 — Start and play a campaign mission. As a Player, I should be able to select a mission from the campaign board and start playing it, so that I can progress through the recreated campaign.
FR-4 — Browse and preview the campaign mission set. As a Player, I should be able to browse the campaign's missions and preview one before starting it, so that I can choose what to play next.
FR-5 — Express the PSP portability constraint in the interface. As a Player, I should see the PSP's 480×272 render target and 32MB memory budget reflected in the interface itself, so that the remake's handheld constraint is stated plainly rather than apologised for.
FR-6 — Navigate between the remake's surfaces. As a Player, I should be able to move between the Landing surface and the Campaign surface, so that I can reach the campaign and return to the entry point.
Product context. The Player knows the original Halo: Combat Evolved campaign and wants to see it recreated at handheld scale. They arrive at the remake expecting a fan-built recreation, not a fidelity showcase, and they are the sole active human role the accepted premise supports.
Primary goal. To experience the recreated campaign gameplay on PSP-compatible hardware, progressing through the game's missions and combat encounters to completion.
Distinct accepted responsibilities. The Player is the only actor who initiates play. They read what the remake is and confirm its PSP portability on the Landing surface, then commit to the campaign by activating the entry CTA. On the Campaign surface they browse the mission set, preview a mission inside the PSP-shaped frame, select and start it, and return to the board to continue.
Relevant inputs and decisions. The Player decides whether the remake is what they came for, based on the headline, the port micro-label, and the port-spec band. They decide which mission to play next, based on the mission tiles and the preview inside the PSP frame.
Interactions with other accepted participants. There are none. The Player is the only active human role; the builder role belongs to development time and does not appear in-product. No other participant awaits, receives, or is affected by the Player's actions inside the product.
Observable success. The Player reaches the Campaign surface from the Landing CTA, selects a mission, sees it preview inside the PSP frame, starts it, and returns to the board to continue through the campaign.
prefers-reduced-motion active. The ring holds one static three-quarter view; the camera no longer springs toward the cursor; scroll-linked camera work becomes ordinary page scroll.The creative direction is authoritative for this section. Muse: Bruno Simon — playable low-poly worlds, a 3D scene as the page itself, toy-box colour, chunky rounded type, physics you can feel. Headline: A playable low-poly Halo ring you drive across, built to ship on a PSP.
Colour tokens (dark mode).
| Role | Hex | Use |
|---|---|---|
| Background | #0B1014 | Deep space-navy ground — the void of the ring's night side |
| Surface | #161E26 | Slightly lifted slate panel for cards and HUD strips |
| Text | #E8F1F5 | Pale cold white, 13:1 on background |
| Primary | #FF6B4A | Warm coral-orange — Master Chief silhouette, CTA, active mission node |
| Accent | #5BE0A8 | Cool mint-teal — health/shield readouts, checkmarks, "portable build verified" badge; never decorative |
| Muted | #8FA3B0 | Metadata only; never body copy |
Proportion: 70% void navy, 20% slate panels, 8% coral, 2% mint. No blue-indigo anywhere; every value is drawn from the ring's night-side palette.
Typography. Headings: Fredoka at 600–700 weight for all display type — wide, rounded, toy-box letterforms that read as chunky low-poly geometry. Headlines set in sentence case with very tight leading (0.92) and -0.01em tracking so multi-line stacks feel like stacked blocks. Uppercase micro-labels ("MISSION 03 — TRUTH AND RECONCILIATION") in Fredoka 500 at 12px with 0.14em tracking, used as HUD chrome. Body: Nunito Sans 400/600 at generous 1.65 line-height — rounded terminals keep the reading voice friendly next to Fredoka.
Type scale (1.25 modular): 12 / 14 / 16 / 20 / 25 / 31 / 39 / 49 / 61 / 76 / 96 / 120. Display headline clamp(40px, 9vw, 120px); section heads clamp(28px, 4.5vw, 49px); body 16–20px; HUD labels 12px.
Shape language. Low-poly geometry as the whole shape vocabulary: faceted planes, hard 120° edges, gem-cut corners. Cards are 20px-radius rounded blocks with a 1px inner highlight along the top edge so they read as lit poly faces. Buttons are 14px-radius capsules with a 3px bottom lip — a physical key you press. No gradient meshes; flat fills with a single lighter facet per surface. A recurring wireframe-overlay motif: thin 1px coral lines tracing a shape's triangulation, used as section dividers and around the hero ring.
Layout. Full-bleed scene-first: the WebGL ring occupies the top 78vh of the landing page, with UI floating over it as HUD chrome in the corners rather than sitting on a document. Below, sections alternate between a 12-column grid (mission cards, port-spec tables) and single full-width colour-block bands. The Campaign page is a mission-select board: 3-across on desktop, 1-across at 375px, each tile 4:3 with the mission number oversized in its top-left corner. Navigation is a persistent bottom HUD bar on mobile (thumb-reachable, PSP-like) that becomes a top-left corner cluster on desktop — never a centred navbar.
Imagery. Low-poly 3D as the only imagery: a faceted Halo ring with visible triangulation, a flat-shaded Master Chief silhouette (helmet, shoulder pauldrons, no face), a Warthog built from ~40 quads, a Covenant Elite in flat purple, a plasma pistol as a glowing faceted wedge. All rendered in-scene in Three.js with flat materials, no textures beyond a subtle vertex-colour variation. Supporting 2D imagery is diagrammatic: top-down level maps drawn in 1px coral line, poly-count bars, a PSP outline showing the 480×272 render target.
Avoid. Any blue-indigo primary or accent (#0057FF, #2563EB, #6366F1, #7C3AED and neighbours) on a white ground; Inter, Roboto, Arial, Helvetica, Open Sans, Lato, Poppins or system-ui for headings or body; a centred headline + subtext + button + gradient-blob hero; photorealistic Halo renders, texture-mapped Master Chief, or anything implying fidelity the PSP build cannot deliver; gradient-mesh surfaces, glassmorphism panels, or frosted blur cards; a grid of identical hover-lift cards with the same shadow; marquee tickers or auto-rotating carousels that move content the user needs to read; copy that apologises for the low-poly look — the constraint is the aesthetic, stated plainly.
The public entry is a scene with type carved into its void.
A full-bleed near-black void (#0B1014) holds a low-poly Halo ring rendered in Three.js, tilted at a three-quarter angle and bleeding off the right and bottom edges — roughly two-thirds of the ring is visible, its inner curve facing the viewer, each facet catching a coral rim light against a mint-cool shadow side. The ring is not centred: its mass sits right-of-centre, and the left third is empty void.
Into that void, flush-left, the headline stacks in three tight lines — "HALO / COMBAT / EVOLVED" — in pale #E8F1F5 Fredoka at clamp(40px, 9vw, 120px), leading 0.92, tracking -0.01em. A small coral "REMAKE" tag rotated -6° overlaps the first line's baseline. Beneath the headline sits a single coral capsule CTA, "ENTER THE CAMPAIGN", with a 3px bottom lip, and beside it a mint micro-label reading "PSP BUILD — 480×272 — 32MB". A bottom-left HUD strip shows three tiny faceted icons — shield, ammo, motion tracker — at 40% opacity. A 1px coral wireframe overlay traces the ring's triangulation.
There is no centred stack, no subtext paragraph, and no gradient blob. The ring rotates continuously and the camera springs toward the cursor, so the first frame the Player sees is a world they are standing on rather than a product shot — and the PSP's numbers are already on screen, stated plainly.
Interaction Model: Animated Motion Tempo: cinematic Hero Dimensionality: webgl
Focal subject. The low-poly Halo ring, tilted at a three-quarter angle, cropped off the right and bottom edges so it reads as a world you are standing on rather than a product shot.
Input → transformation → outcome thesis. The Player's pointer position is the input; the camera springs toward the cursor (stiffness 120, damping 18) while the ring rotates continuously on its own axis; the outcome is a hero that feels physically present and hand-built, with the ring's facets shifting their coral rim light against the mint-cool shadow side as the Player moves.
Motion vocabulary. Playable physics tempo. Continuous slow ring rotation. Spring-driven camera nudge toward the cursor. Scroll drives the camera down the ring's curve rather than translating the page. Hovering a mission tile tilts it in 3D toward the pointer with slight overshoot; clicking plays a 180ms squash-and-stretch. 1px coral wireframe lines trace the geometry throughout.
Composed first frame. Void #0B1014 fills the viewport. The ring's mass sits right-of-centre, bleeding off the right and bottom edges, inner curve facing the viewer. The left third is empty void holding the flush-left three-line Fredoka headline in #E8F1F5, the coral "REMAKE" tag rotated -6° on the first line's baseline, the coral capsule CTA with its 3px bottom lip, the mint "PSP BUILD — 480×272 — 32MB" micro-label, and the bottom-left HUD strip of three faceted icons at 40% opacity.
Reduced-motion state. The ring holds one static three-quarter view. The camera no longer springs toward the cursor. Tiles lose their 3D tilt and use a 120ms opacity change. All scroll-linked camera work becomes ordinary page scroll. Every headline, label, number, card, and control remains whole and fully readable at 375px, 768px, and 1280px.
A single crafted real-time object: the Halo ring, built from flat-shaded faceted geometry with visible triangulation and no textures beyond subtle vertex-colour variation. It rotates slowly and continuously on its own axis. The camera springs toward the cursor with stiffness 120 and damping 18, and scroll drives the camera down the ring's curve. A 1px coral wireframe overlay traces the ring's triangulation. The ring is deliberately cropped off the right and bottom edges. Under prefers-reduced-motion, the scene holds one static three-quarter view and all camera motion stops.
NFR-1 — PSP portability. The remake must be portable to the PlayStation Portable. Provenance: explicit. Rationale: this is the defining hard constraint of the project; the remake is built to be hand-ported to the PSP.
NFR-2 — PSP render target and memory budget. The remake targets a 480×272 render target and a 32MB memory budget. Provenance: explicit (the PSP portability constraint) + required_inference (the concrete figures the direction states). Rationale: these are the handheld's rendering and memory envelope, and the product presents them truthfully in the interface.
NFR-3 — Low-poly, flat-shaded rendering. All imagery is low-poly 3D rendered in-scene with flat materials and no textures beyond subtle vertex-colour variation. Provenance: explicit (creative direction). Rationale: the poly counts and flat-shaded geometry are the aesthetic, not a compromise to hide.
NFR-4 — Readable text and controls at every viewport. Headlines, wordmarks, labels, numbers, cards' text, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit, and no other element covers any part of them. Provenance: explicit (creative direction). Rationale: legibility and operability are non-negotiable even where imagery, decoration, and motion are cropped, bled, rotated, or overlapped by design.
NFR-5 — Reduced-motion support. Under prefers-reduced-motion, the ring holds one static three-quarter view, tiles lose tilt and use a 120ms opacity change, and all scroll-linked camera work becomes ordinary page scroll. Provenance: explicit (creative direction). Rationale: the experience must remain usable and fully readable without motion.
NFR-6 — Anonymous access. Neither the Landing nor the Campaign surface requires identity establishment. Provenance: required_inference. Rationale: no accepted behavior creates a durable actor-specific state, commitment, entitlement, or value transfer that must remain bound to a particular participant, so no application-owned identity is needed.
NFR-7 — No differentiated permissions. There is no RBAC, role-based visibility, or permission control over shared product state. Provenance: required_inference. Rationale: the source establishes no differentiated control or visibility, and the sole active human role is the Player.
custom_ui: true).No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!