Demo 6
This is an experimental 3D engine for the TI-83 and TI-83+ graphical calculators.
As it is an experiment it is not desperately useful, and it is likely to contain bugs that may crash your calculator. Please back up any important files before running this program.
Two binaries are provided; Nostromo.8xp (for the TI-83+) and Nostromo.83p (for the TI-83). The TI-83 binary requires an Ion-compatible shell. The TI-83+ binary requires a MirageOS-compatible shell.
Source code is not currently provided as it is currently too messy and buggy to be of use.
Usage
Select the program from the list in your shell of choice and run it. The following keys can be used to control the demo:
- General
- Clear Exit.
- Movement
- ▲ / ▼ Move forwards/backwards.
- Trace / Graph Strafe left/right.
- Mode / X,T,Θ,n Move up/down ("fly mode" only).
- Looking
- ◀ / ▶ Look left/right.
- Del / Stat Look up/down.
- Interaction
- Alpha Open/close doors.
- Options
- Y= Show/hide the options menu.
Options menu
Press Y= to show or hide the options menu. Select an option from the menu with the ▲ and ▼ keys.
Pressing Enter or 2nd will change the highlighted option.
- Show FPS counter — When enabled, this displays the number of frames rendered each second in the bottom left of the screen.
- CPU speed — Toggle between 6MHz and 15MHz on supported calculators (the regular TI-83+ and TI-83 are limited to 6MHz operation only).
- Fly mode — Enabling this mode allows you to freely move the camera up and down rather than walking around on the floor.
- Collision detection — Disabling this allows you to walk through walls.
- Render objects — When disabled, sprite objects are not drawn.
Known issues
- Performance is not especially good at the moment. Looking across the large room with the pit in the middle slows the framerate to a crawl owing to the sheer number of subsectors and lines being handled.
- Some pixels are not rendered when they should be. This is especially noticeable near the ends of steeply sloping wall edges.
- When you are very close to the edge of a wall it may get projected incorrectly (integer overflow) and you will see either a vertical line flash into view then out again or a region of the screen will appear blank.
- In "fly mode" you can fly above the ceiling and below the floor.
- If the camera is moved into a "solid" region it will be instantly pushed out into free space when near a wall. This can be triggered in normal usage (without disabling collision detection or enabling fly mode) by standing under an open door then closing it; you'll be forced into the room when the bottom edge of the door moves below your head height.
- Collision detection is not properly handled around the very ends of walls, which may cause a sudden jump in player position when you "slide" around a corner.
- The current floor height is calculated based on the point directly under the centre of the player and not taking the player's radius into consideration. This can cause an unnatural jump when you slowly walk off the edge of a raised portion of the level.