All Projects → scarybeasts → Beebjit

scarybeasts / Beebjit

Licence: other
A very fast BBC Micro emulator.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Beebjit

champ
A 65C02 profiler
Stars: ✭ 17 (-79.01%)
Mutual labels:  emulator, 6502
mos6502
MOS 6502 emulator written in Rust
Stars: ✭ 25 (-69.14%)
Mutual labels:  emulator, 6502
go6502
6502 CPU emulator, assembler and disassembler written in Go
Stars: ✭ 31 (-61.73%)
Mutual labels:  emulator, 6502
Thistle
6502 based architecture for OpenComputers
Stars: ✭ 26 (-67.9%)
Mutual labels:  emulator, 6502
Pcjs.v1
PCjs Machines 1.0 (archived)
Stars: ✭ 468 (+477.78%)
Mutual labels:  6502, emulator
6502-emulator
An Understandable 6502 Emulator
Stars: ✭ 26 (-67.9%)
Mutual labels:  emulator, 6502
retro-computing
🤓🕹💾 This hobby project contains software implementations of old microprocessors and complete computer systems. I'm very interested in retrocomputing and this is how I learn about the inner workings of these old, classic and amazing computers and game consoles.
Stars: ✭ 15 (-81.48%)
Mutual labels:  emulator, 6502
Nesicide
Integrated Development Environment for the 8-bit Nintendo Entertainment System
Stars: ✭ 244 (+201.23%)
Mutual labels:  6502, emulator
Firebird
Third-party multi-platform emulator of the ARM-based TI-Nspire calculators
Stars: ✭ 374 (+361.73%)
Mutual labels:  jit, emulator
Anese
Another NES Emulator - written for fun & learning - first implementation of wideNES
Stars: ✭ 323 (+298.77%)
Mutual labels:  6502, emulator
js-nes-emulator
NES emulator in javascript.
Stars: ✭ 12 (-85.19%)
Mutual labels:  emulator, 6502
Jsnes
A JavaScript NES emulator.
Stars: ✭ 5,354 (+6509.88%)
Mutual labels:  6502, emulator
muparsersse
muparsersse a math parser for windows using just in time compilations of the expression
Stars: ✭ 14 (-82.72%)
Mutual labels:  fast, jit
Gearnes
NES / Famicom emulator for iOS, Mac, Raspberry Pi, Windows, Linux and RetroArch.
Stars: ✭ 23 (-71.6%)
Mutual labels:  emulator, 6502
Jitboy
A Game Boy emulator with dynamic recompilation (JIT)
Stars: ✭ 190 (+134.57%)
Mutual labels:  jit, emulator
Corium
Corium is a modern scripting language which combines simple, safe and efficient programming.
Stars: ✭ 18 (-77.78%)
Mutual labels:  emulator, fast
Punes
Nintendo Entertaiment System emulator and NSF/NSFe Music Player (Linux, FreeBSD, OpenBSD and Windows)
Stars: ✭ 217 (+167.9%)
Mutual labels:  6502, emulator
X6502
Yet another 6502 emulator that one day dreams of being an Atari 2600.
Stars: ✭ 220 (+171.6%)
Mutual labels:  6502, emulator
Jsbeeb
Javascript BBC micro emulator
Stars: ✭ 261 (+222.22%)
Mutual labels:  6502, emulator
Clk
A latency-hating emulator of 8- and 16-bit platforms: the Acorn Electron, Amstrad CPC, Apple II/II+/IIe and early Macintosh, Atari 2600 and ST, ColecoVision, Commodore Vic-20, MSX 1, Oric 1/Atmos, Sega Master System and Sinclair ZX80/81.
Stars: ✭ 476 (+487.65%)
Mutual labels:  6502, emulator

Welcome to beebjit! I'm Chris Evans [email protected]. Any and all feedback / suggestions very welcome. Please don't be shy!

beebjit is an emulator for Acorn's BBC Micro 8-bit microcomputer from the 1980s. For more information see: https://en.wikipedia.org/wiki/BBC_Micro

See BUILD for build instructions. See CREDITS because I didn't do this alone. See COPYING for copyright and license details. See GETTING_STARTED for quick notes on getting up to speed. See KEYS for important details on BBC keys and emulator shortcut keys. See EXAMPLES for demos of how to use beebjit's various options.

This machine is iconic, particularly if you grew up in the UK, so there are already plenty of emulators for it. I particularly recommend (and contribute to) jsbeeb: https://bbc.godbolt.org/ And to quickly get up and running with a huge catalog of original BBC games, using jsbeeb as the emulator, see: http://bbcmicro.co.uk/

So why another emulator? Aside from the cheeky answer of "because I enjoyed the journey of writing one", there are a few things that beebjit might do better for you than the other emulators. And of course there are plenty of things it will do worse.

In the "better" category, we have:

  • Speed. The JIT in beebjit does indeed refer to the compilation method known as "Just In Time". beebjit will compile 6502 code blocks into host (currently Intel x64) code blocks as it encounters them. beebjit also has various tricks to handle self-modifying code without losing much speed. On top of this, attempts are made to implement system peripherals such as audio, video, timers etc. in a way that enables the JIT'ed code to motor along. In some tests, beebjit has run the 2MHz 6502 CPU at an effective speed of well over 10GHz, although 3GHz might be more typical when running a game with full accuracy.

  • Loading original protected discs. The preservation of original BBC discs, copy protection and all, is not great. One of the highlights here is @billcarr2005's (on stardot.org.uk) work to generate FSD files from original discs. beebjit will load FSD files, and coupled to its fairly accurate Intel 8271 or Western Digital 1770 disc controller emulation, will run a large range of protected titles as they would have been originally experienced. beebjit is also capable of converting FSD files to the more standard HFE files, and reading / writing to these. Putting it all together, beebjit is capable of tricks such as loading the original protected Disc Duplicator III disc, copying the original protected Exile disc, and booting the copy -- all under emulation!

  • Terminal support. Quickly getting text in and out of an emulator can be a headache. beebjit supports a terminal mode (optionally headless), enabling the host operating system's text copy and paste mechanisms to be used. See EXAMPLES.

  • Deterministic capture and fast replay. beebjit can capture a small stream file representing the deterministic inputs required to recreate an emulation run. This file can be replayed at normal speed or extremely fast speed. Conceptually, it sorts of represents a saved state file with a saved state at every instruction. Replay can be stopped, and normal execution continued, at any point. As always, see EXAMPLES.

  • Rewind. Experimental, but if a capture is in progress, you may "rewind time" a few seconds by whacking Alt+Z. This will use beebjit's speed to replay the capture file (minus a few seconds), restarting from a power on reset. You can use this to fake being really good at Arcadians.

In the "ok" category:

  • Accuracy. beebjit is towards the upper end of BBC emulator accuracy. You should expect it to run pretty much any game you throw at it, including well-known classics (Exile, Elite, Revs etc.) and tricky-to-emulate titles such as the original Nightshade tape, and Tricky's Frogger / Scramble.

  • 6502 debugger. The built-in 6502 debugger is reasonably capable and could very quickly be extended if there is demand.

  • Model support. beebjit supports the BBC model B, Master 128 or Master Compact. There is some configurability such as extra ROMs and sideways RAM. There is no Master Turbo.

In the "worse" category:

  • Porting. Currently, beebjit was developed on Linux and there's an early port to Windows. If there's demand, this will be improved, probably by use the cross-platform SDL library.

  • GUI. There is no GUI for configuration or anything else. Currently, it's a deliberate philosophical decision. Cast your mind back to the original BBC: it dropped you at a text screen with no fancy GUI, and forced you to learn a little bit about it and interact with it, even for something as simple as starting a tape loading. Similarly, you'll need to experiment a little with the beebjit command line and options. (This decision may be grating to some. Adding some GUI assistance in the future may well happen, once a cross-platform solution, such as SDL, is selected.)

  • Peripheral support. beebjit does support the basics: discs, tapes, sideways RAM... and not much else. If you need support for co-processors, joysticks, mice or hard drives, then you are likely to be better served by a different emulator.

I hope beebjit is in some way useful or inspiring to you. If it is, do let me know. Happy beebing!

Chris Evans [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].