astralaster / agon-light-emulator Goto Github PK
View Code? Open in Web Editor NEWEmulator for the agon light 8-bit computer
License: MIT License
Emulator for the agon light 8-bit computer
License: MIT License
Its a graphics driver dependant bug. So far it has only been reported on windows. Whenever you resize the window manually or by setting another MODE all uploaded bitmaps and the screencontent gets lost.
The current logic to convert the keycode in case the SHIFT key is pressed does not work for most symbols.
There is probably a better way to obtain the ASCII code from a key in SDL that does not depend on the keyboard layout.
I'm less than happy with the way the entire canvas is re-rendered each frame from the text data.
As soon as we add line drawing and whatnot, we cannot store the parameters of all lines drawn and re-render them each time.
Think of the triangles.bas demo that keeps drawing triangles indefinitely, where each triangle overwrites parts of previous ones.
So I would like to draw all characters, lines etc. onto one 'surface' (which may or may not be the window's own canvas) and then possibly blit this into the window's canvas each frame. This way we may be able to draw sprites on top of this when we get to that (or the cursor possibly). When scrolling we move part of the 'surface' using an appropriate blit function. Characters can be drawn by plotting each pixel (first clear the rectangle to the background colour).
The real Agon hardware draws each character as a bitmap into the frame buffer. When you update a character in the font using VDU 23, future instances will be redrawn with the updated pattern, but previously drawn characters will stay as-is.
You can use all 64 colors independently of the current mode.
When using the VDP command "23, 0, $84, x; y;" in the emulator, in mode 2 (320x200), I don't get the expected results back. I'm getting some data back, much of the screen is black, with some white and some green pixels, and I know my coordinates are correct as I'm using the same coordinates to position a sprite, but the return from this command is off. I sometimes get a green pixel back, but nowhere where I'd expect it to be. Could it be that the change of mode is causing some issues with the canvas?
This is one for the upstream component, but you probably know how to pass it on.
My FORTH for Agon uses RST.LIL in 16-bit mode (ADL=0) and this is rejected by the eZ80 interpreter. The hardware just works. There may be other programs that refuse to run just because the wrong instruction suffix (in fact a prefix byte in the binary machine code) is used on RST.
just built the emulator on windows 11 and had to manully add a step of adding the SDL lib files from https://github.com/libsdl-org/SDL/releases/download/release-2.26.5/SDL2-devel-2.26.5-VC.zip manually so that it'd build but once I had everything built and ran fine
This game does not run correctly:
https://github.com/OLIMEX/AgonLight-WPC/tree/main/ISSUE-3/SOLUTION-8-Greg-Dyke
I'm less than happy with the way the entire canvas is re-rendered each frame from the text data.
As soon as we add line drawing and whatnot, we cannot store the parameters of all lines drawn and re-render them each time.
Think of the triangles.bas demo that keeps drawing triangles indefinitely, where each triangle overwrites parts of previous ones.
So I would like to draw all characters, lines etc. onto one 'surface' (which may or may not be the window's own canvas) and then possibly blit this into the window's canvas each frame. This way we may be able to draw sprites on top of this when we get to that (or the cursor possibly). When scrolling we move part of the 'surface' using an appropriate blit function. Characters can be drawn by plotting each pixel (first clear the rectangle to the background colour).
The real Agon hardware draws each character as a bitmap into the frame buffer. When you update a character in the font using VDU 23, future instances will be redrawn with the updated pattern, but previously drawn characters will stay as-is.
Using the VDU 22
command from MOS is much more harsh than the real hardware.
If you type vdu 22, 0
it will work, but if you type vdu 22,0
or even just vdu 22
the emulator will exit.
I'm using the current windows build 0.03. (13-Jun)
When capslock is on you cannot use shift to write lower case characters.
Under Ubuntu 22.04, the caps lock key is not respected.
Hi,
great work with the Agon emulator, it looks great for now and I was able to build it without problems on my MacBook Pro M1.
I noticed that after a few minutes of usage my Mac gets super hot and I have to stop the emulator. Any idea what could cause this problem ? (BTW, same problem with the emulator built in debug and release mode)
Thanks,
Jean
Thank you for creating this emulator! I'm loving it!
It can be quite confusing to get the correct version of BBC Basic from other repos...
Pleas add the version working with the current state of the emulator as you did for MOS.bin
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.