Skip to content

elmerucr/E64

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E64

E64

General Description

E64 is a Virtual Computer System that runs on macOS and linux. Technical specifications are inspired by the Commodore 64, Amiga 500 and Atari ST. The Lua programming model is (will be) very comparable to fantasy consoles such as TIC-80 and PICO-8.

  • The core is a Lua scripting engine
  • BLITTER/VIDEO chip with a resolution of 384x216 pixels, a palette of 4096 colors (12bit) running at 60Hz, alpha blending capabilities and 32mb video ram.
  • Four SID chips (MOS 6581). Each individual SID chip runs at 985248Hz for the same pitch as the chips in the original C64 pal version. Emulation is achieved with the excellent reSID library by Dag Lem. Registers are remapped to enable big endian systems.
  • Four Analog Sound Devices capable of pure sinusoidal sound next to all common other sound waves.
  • Stereo mixing capabilities for all components.

Screenshots

Below the startup screen with stats info triggered with F10.

E64

Usage

Keyboard Shortcuts

  • ALT+B switches between nearest pixel and bilinear filtering mode
  • ALT+F switches between fullscreen and windowed mode
  • ALT+Q quits application
  • ALT+S changes intensity of embedded scanlines
  • ALT+W start/stop wav file output to settings directory
  • F10 switches stats info on/off

Technical Specifications

Work in progress...

Memory Map

Work in progress...

  • 0x010000-0x01ffff blit descriptors (64kb)
  • 0x040000-0x04ffff c64 characters (2x32kb)
  • 0x050000-0x05ffff amiga characters (64kb)
  • 0x200000-0x3fffff blitter tile RAM (2mb)
  • 0x400000-0x5fffff blitter foreground color RAM (2mb)
  • 0x600000-0x7fffff blitter background color RAM (2mb)
  • 0x800000-0xffffff blitter pixel RAM (8mb)

BLITTER

Work in progress...

SID Chips

For the big endian mapping, see picture below. It is adapted from the original Commodore datasheet. E64

TIMERS

Work in progress...

Compiling

macOS

  • Install Xcode
  • Install the SDL2 framework development library to /Library/Frameworks
  • Open the Xcode project in the ./E64 folder and build the application

Ubuntu Linux / Debian

Run the following commands in a terminal to make a debug build:

$ sudo apt install build-essential cmake git libsdl2-dev
$ git clone https://github.com/elmerucr/E64
$ cd E64 && mkdir Debug && cd Debug
$ cmake -DCMAKE_BUILD_TYPE=Debug ..
$ make

Finally, to run the application from the build directory:

$ ./E64

Windows

Work in progress...

Websites and projects of interest

  • CCS64 - A Commodore 64 Emulator by Per Håkan Sundell.
  • Commander X16 - The Commander X16 is a modern 8-bit computer currently in active development. It is the brainchild of David "the 8 Bit Guy" Murray.
  • Commander X16 emulator - Software version of Commander X16.
  • E64-Moira - Older version of E64 with an M68K core.
  • Hatari - Hatari is an Atari ST/STE/TT/Falcon emulator.
  • lib65ce02 - CSG65CE02 emulator written in C.
  • Lua - Lua is a powerful, efficient, lightweight, embeddable scripting language.
  • MC6809 - MC6809 cpu emulator written in C++.
  • Mega65 - The 21st century realization of the C65 heritage.
  • Moira - Motorola 68000 cpu emulator written in C++ by Dirk W. Hoffmann.
  • reSID - ReSID is a Commodore 6581 or 8580 Sound Interface Device emulator by Dag Lem.
  • SDL Simple DirectMedia Layer - A cross-platform development library by Sam Lantinga designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware.
  • stb - single-file public domain (or MIT licensed) libraries for C/C++
  • TIC-80 - TIC-80 is a free and open source fantasy computer for making, playing and sharing tiny games.
  • vAmiga - An Amiga 500, 1000, or 2000 on your Apple Macintosh by Dirk W. Hoffmann.
  • VICE - The Versatile Commodore Emulator.
  • VirtualC64 - A Commodore 64 on your Apple Macintosh by Dirk W. Hoffmann.
  • visual6502 - Visual Transistor-level Simulation of the 6502 CPU and other chips.

MIT License

Copyright (c) 2023 elmerucr

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published