Skip to content

Commit

Permalink
Added readme (#12)
Browse files Browse the repository at this point in the history
  • Loading branch information
emoon committed Feb 9, 2024
1 parent f71aafc commit 8cf451f
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 3 deletions.
Binary file added bin/quaesar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
65 changes: 65 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Quaesar /ˈkweɪ.zɑr/ ![ci](https://github.com/theblacklotus/quaesar/actions/workflows/ci.yml/badge.svg)

<img src="https://raw.githubusercontent.com/theblacklotus/quaesar/readme-update/bin/quaesar.png">

Quaesar is an emulator based on [WinUAE](https://github.com/tonioni/WinUAE), aimed primarily at demosceners and demo developers. First off, Quaesar does not intend to replace WinUAE; it should be viewed as an alternative within a very specific niche.

So, what sets Quaesar apart?

* Fully cross-platform: Runs on Linux, Windows, and macOS, based on the latest WinUAE code, and runs full CI on GitHub for all platforms.
* Focuses on specific Amiga platforms only: A500(+)/A600, A1200, A1230, A1260, which are the most popular platforms for demos. Features such as graphics card support have been or will be removed.
* The primary target is A500 512/512, which is the default configuration with accurate emulation settings.
* Still possible to configure options such as memory and CPU from the command line if needed.

## 🔍 Status

It's very early days for the emulator. Currently it starts up and can display the kickstart screen, but not much can be done currently. The next steps are to implement basic commandline parsing so kickstart, floppy image, etc, can be passed in.

## ✨ Coming features

* No configuration UI. Running should be as easy as `quaesar file.adf / file.exe`.
* Simple command-line options to tweak faster CPU, memory, when needed.
* Built-in debugger (both console and UI window).
* Warp mode (run the emulator as fast as possible) until user code starts running. This will enable a fast startup/shutdown cycle.
* A single press of ESC will exit the emulator.
* Much more coming later!

## 🏗️ Build

Quaesar uses [CMake](https://cmake.org) to configure the build step. See each platform below for the required steps needed.

### Windows

Visual Studio (with the Windows SDK) needs to be installed and the Community edition works fine. Currently Visual Studio 2019 and 2022 is being tested, but older versions may work also.

1. Run or double click `scripts\open_vs_solution.cmd`
2. Build the solution and start it as with any other program.

### Linux

Linux version depends on CMake and SDL2. Each distro has various ways on installing, but this is how Ubuntu/Debian would do it. Ninja build here is optional, but recommended.

```
apt-get install libsdl2-dev cmake ninja-build
```

To build (using Ninja)

```
mkdir output && cd output && cmake .. -G Ninja && ninja
```

To build (using make)

```
mkdir output && cd output && cmake .. && make -j$(nproc)
```

### macOS

The steps for macOS are identical to Linux, except you usually use [Homebrew](https://brew.sh) to install packages.

```
brew install sdl2 cmake ninja
```

19 changes: 19 additions & 0 deletions scripts/open_vs_solution.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
@echo off

setlocal

set "OUTPUT_DIR=..\output"

# check if build folder exists (i.e we are running from the root dir)
if exists "build" (
set "OUTPUT_DIR=output"
)

# check if output folder exists, if not create it
if not exists %OUTPUT_DIR % (
mkdir %OUTPUT_DIR %
)

cd %OUTPUT_DIR%
..\bin\windows\bin\cmake .. && start quaesar.sln

6 changes: 3 additions & 3 deletions src/dummy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -930,8 +930,8 @@ int graphics_init(bool) {

struct vidbuffer* buf = &avidinfo->drawbuffer;

int width = 1280;
int height = 720;
int width = 754;
int height = 576;

buf->monitor_id = 0;
buf->pixbytes = (depth + 7) / 8;
Expand All @@ -948,7 +948,7 @@ int graphics_init(bool) {
buf->bufmem_lockable = true;

// Create a window
s_window = SDL_CreateWindow("QUAEsar",
s_window = SDL_CreateWindow("Quaesar",
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
width, height, 0);

Expand Down

0 comments on commit 8cf451f

Please sign in to comment.