/MI-83

A Fantasy Game Console that takes inspiration from the TI-83 Calculator and combines it with features from other fantasy consoles and game systems.

Primary LanguageC#

MI-83 Logo

MI-83 Fantasy Game Console

Takes inspiration from the TI-83 Calculator and combines it with features from other fantasy consoles and game systems.

Initial prototyping done with FC-360. Process live streamed on YouTube at The Code Mage.

Supported Platforms

Windows

Display

2 Modes

  1. Home Screen (Console/Text)
  2. Graphics Screen

Resolution Options, Graphics|Home

  1. 192x128 pixels, 32x16 characters (Default)
  2. 96x64 pixels, 16x8 characters
  3. 288x192 pixels, 48x24 characters

Palette

16 Colors based loosely on the colors of PICO-8.

  1. 0x00, 0x00, 0x00 // 0 Black (Transparent)
  2. 0x36, 0x36, 0x96 // 1 Dark-Blue
  3. 0x57, 0x1E, 0x57 // 2 Dark-Purple
  4. 0x3F, 0x5E, 0x3F // 3 Dark-Green
  5. 0x7C, 0x5E, 0x40 // 4 Brown
  6. 0x46, 0x46, 0x40 // 5 Dark-Gray
  7. 0x9E, 0x9E, 0x91 // 6 Light-Gray
  8. 0xDD, 0xDD, 0xCC // 7 White
  9. 0xB4, 0x4A, 0x4A // 8 Red
  10. 0xD6, 0x68, 0x20 // 9 Orange
  11. 0xDD, 0xD2, 0x11 // 10 Yellow
  12. 0x7D, 0xCC, 0x7C // 11 Green
  13. 0x54, 0x54, 0xCC // 12 Blue
  14. 0x8F, 0x67, 0xAA // 13 lavender
  15. 0xC9, 0x5C, 0xC9 // 14 Pink
  16. 0xE5, 0xC4, 0xA7 // 15 Peach Puff

Programming:

Python (IronPython 2.7)

Systems Commands

Command Description
DispHome() Switches to the Home Screen.
DispGraph() Switches to Graphics Screen.
RunPrgm(prgmName) Runs the specified program.
GetKey(): keycode Returns the code of the last key pressed.
Pause() Waits for the user to press the [Enter] key.
GetSuppDispRes(): [dispRes] Return a list of supported resolutions.
GetDispRes(): disp_res_idx Gets the index of the current resolution of the display.
SetDispRes(disp_res_idx) Sets the resolution of the display.
GetFG(): palette_idx Gets the foreground color.
SetFG(palette_idx) Sets foregroud color from palette. Takes effect on future commands.
GetBG(): palette_idx Gets the background color.
SetBG(palette_idx) Sets background color from palette. Takes effect on future commands.

Home Screen Commands

Command Description
ClrHome() Clears the home screen.
Output(row, col, text) Outputs text value at x/y coordinates.
Disp(text) Displays a line of text.
Input(prompt): value Reads a line of text.
Menu([(tab_name, [menu_opt_1, ...]), ...]): (tab_idx, opt_idx) Displays a menu.

Graphics Screen Commands

Command Description
ClrDraw() Clears the Graphics Screen.
Pixel(x, y) Changes pixel at x/y coordinates to color at palete idx.
Line(x1, y1, x2, y2) Draws a line between points.
Horizontal(y) Draws a horizontal line along the y coordinate.
Vertical(x) Draws a vertical line along the x coordinate.
Circle(x, y, r, fill) Draws a circle centered on x/y coordinate with the given radius.
Rectangle(x1, y1, x2, y2, fill) Draws a rectangle from x1/y1 coordinates to x2/y2.
Sprite(sprite_idx, x, y) Draw a sprite from the sprite buffer to the screen at x/y coordinates.
StorePic(buf_idx) Takes a 'picture' of the current screen and stores to buffer index.
RecallPic(buf_idx) Draws the picture at the buffer index.