Skip to content

Activision's Little Computer People inside a (Docker) container.

Notifications You must be signed in to change notification settings

4ch1m/LittleContainerPeople

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Little Container People

Activision's Little Computer People inside a (Docker) container. 🕺 🐕 🏠

LCP

Content

Concept

               ┌────────────────────────────────────────────────────────────┐
               │ LCP Container                                              │
               │                                                            │
┌─────────┐    │   ┌──────────────┐    ┌────────────┐    ┌──────────────┐   │
│ Web     │    │   │ (HTML-based) │    │            │    │              │   │
│ Browser │    │   │ VNC Viewer   │    │ VNC Server │    │ C64 Emulator │   │
│       ◄─┼────┼───┼─►     ▲    ◄─┼────┼─►        ◄─┼────┼─►     ▲      │   │
└─────────┘    │   └───────┼──────┘    └────────────┘    └───────┼──────┘   │
               │           │                                     │          │
               ├───────────┼─────────────────────────────────────┼──────────┤
               │           │                [ LCP game binary ] ─┘          │
               └───────────┼────────────────────────────────────────────────┘
                           │
---------------------------│----------------------------------------------------------------
(optional)                 │
                 ┌─────────┼─────────────────────────────────────────────┐
                 │ LCP CareService Container                             │
                 │         │                                             │
                 │   ┌─────┼────────────────────┐    ┌───────────────┐   │
                 │   |                          |    |               |   │
                 │   | Automated Browser Action |    | Cron Schedule |   │
                 │   |                        ◄─┼────┼─              |   │
                 │   └──────────────────────────┘    └───────────────┘   │
                 │                                                       │
                 └───────────────────────────────────────────────────────┘

Ingredients

  • Web Browser: Any HTML5 capable web browser.
  • Container OS: Debian
  • VNC Viewer: noVNC
  • VNC Server: x11vnc
  • C64 Emulator: VICE
  • Browser Automation: Puppeteer
  • Cron Scheduler: Debian Cron-Daemon

Requirements

Instructions

  • Clone this repository:
    git clone https://github.com/4ch1m/LittleContainerPeople.git

  • IMPORTANT:
    Place your D64-binary of LCP into the cloned directory and name it lcp.d64.
    (The tape version can also be used; see "Customization" below.)

  • Execute:
    docker-compose up
    (This will build and start the container(s).)

  • Open a web-browser and navigate to http://localhost:8080.

  • You should see the output of VICE in your browser.
    (Note: It may take a few seconds until VICE finished loading the disk/tape; so be patient.)

  • Enjoy! 🤓

Customization

Simply create an .env file right next to the docker-compose.yml file and set the values as needed.

"lcp" container
  • LCP_BIN: The file that gets auto-loaded by VICE upon container start (default: "lcp.d64").
  • LCP_PORT: The port under which the web interface can be reached (default: "8080").
  • LCP_VICE_OPTS: Additional options/settings for the VICE emulator (default: "-VICIIfilter 0").

e.g.

LCP_BIN=lcp.t64
LCP_PORT=8181
LCP_VICE_OPTS=-speed 500

"lcp_careservice" container

This is an optional sidecar container that can help to keep your LittleContainerPeople alive without having to actively interact with it all the time.

Every fifteen minutes the service will send these three keyboard commands to the running LCP instance; covering the essential physical needs of your LCP:

  • Ctrl + F (:hamburger: send food)
  • Ctrl + W (:cup_with_straw: fill watertank)
  • Ctrl + D (:canned_food: send dogfood)

(Prevents the LCP of getting sick. 🤢)

Additionally, a random activity from this list will be sent:

  • Ctrl + A (:alarm_clock: alarm clock)
  • Ctrl + C (:phone: make phone call)
  • Ctrl + P (:wave: patting)
  • Ctrl + R (:cd: send a record)
  • Ctrl + B (:closed_book: send a book)

(Should improve the overall mood of your LCP.)

If needed, you can configure the target URL which the careservice connects to:

LCP_CARESERVICE_TARGETURL=http://yourhost:8181

(Should only be relevant if you host the lcp and lcp_careservice containers on different machines.)

You can disable this feature completely by commenting out or removing the according lines in docker-compose.yml.

Links