Commit graph

241 commits

Author SHA1 Message Date
Andrea Odetti
e883e1b38c Add support for video benchmark.
Screen repaint is not included (as it would force vsync), so it stops at the texture update.

Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-21 20:13:56 +00:00
Andrea Odetti
a121981e5a sa2: Add support for --headless and --fixed-speed.
Headless will skip the video refresh (and the vsync).
Fixed-Speed will avoid adaptive speed.

Used together, the emulator will go at maximum speed skipping video refresh (useful for profiling).
2020-11-21 15:07:31 +00:00
Andrea Odetti
7067ad150e sa2: Make window resizable.
Ctrl-F6 will still loop between 1x ans 2x sizes.
2020-11-21 09:42:46 +00:00
Andrea Odetti
b59e7605e9 sa2: add application icon.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-21 09:35:15 +00:00
Andrea Odetti
dec8b54a9e Write more accurate audio diagnostics.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-21 09:15:46 +00:00
Andrea Odetti
6d4dd11f06 Audio: remove useless workaround 1/3 1/4 and initial silence.
Let AW's adaptive algorithm do it all.
Just be careful not writing too much to SDL as it would unsettle AW.

Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-20 20:23:10 +00:00
Andrea Odetti
48146f4c34 Keep track of actual speed to ensure emulated CPU goes at the right speed (and keeps audio on track).
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-20 15:32:35 +00:00
Andrea Odetti
8c71b946b4 Prefer mean over average.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-15 14:47:51 +00:00
Andrea Odetti
e58b547d59 Fix actual vs expected clock. 2020-11-14 20:42:27 +00:00
Andrea Odetti
7add40d913 Better logging layout.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-14 20:09:12 +00:00
Andrea Odetti
c7f8bf1280 Handle volume in SDL.
Make volume loglinear everywhere.
Reduce default volume to avoid annoying loud reset beep.

Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-14 20:08:37 +00:00
Andrea Odetti
70969a2d03 Add ability to select SDL driver.
On a Pi3 opengles2 performs better.

Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-14 11:01:05 +00:00
Andrea Odetti
e7e848917b Reduce extra verbose logging of keys.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-14 09:32:51 +00:00
Andrea Odetti
78a7c98c3e Improve SDL debug info.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-14 09:29:21 +00:00
Andrea Odetti
4840b7b0ac Improve logging diagnostics.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-14 09:14:37 +00:00
Andrea Odetti
169188b2b4 Improve stat logging.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-13 20:12:57 +00:00
Andrea Odetti
67df88d9a2 Fix std calculation.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-13 20:12:01 +00:00
Andrea Odetti
cbe10854b9 Add timers (to see what happens).
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-13 15:37:10 +00:00
Andrea Odetti
1588f1cb05 Fix -h for --help.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-13 12:00:42 +00:00
Andrea Odetti
f13816262d Clean up multithreading code and offer it via command line options.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-13 11:51:20 +00:00
Andrea Odetti
ef114f9e64 Make the mutex protect AW rather than SDL.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-12 20:48:44 +00:00
Andrea Odetti
6a16d416a4 threads 2 2020-11-12 20:33:04 +00:00
Andrea Odetti
314c647daf more threads 2020-11-12 19:51:45 +00:00
Andrea Odetti
b360d27f22 split 2020-11-12 19:31:35 +00:00
Andrea Odetti
4ff7741a41 Fix previous sdl ppp commit, too messy to revert.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-11-12 18:52:52 +00:00
Andrea Odetti
c7a8c628e4 Changes required from upstream. 2020-11-12 18:43:04 +00:00
Andrea Odetti
0dda605c36 ppp 2020-11-11 11:20:06 +00:00
Andrea Odetti
3ba2cd6d98 SDL2 add audio.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-10-20 15:32:45 +01:00
Andrea Odetti
da37dfe17c QApple fix name of video types.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-10-18 18:43:45 +01:00
Andrea Odetti
7037582907 Allow to turn the circle range of a gamepad to a square (as the Apple ][).
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-10-17 19:19:46 +01:00
Andrea Odetti
d314546b11 Paddle: make raw interface to return values in [-1,1] to ease transformations.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-10-15 16:24:20 +01:00
Andrea Odetti
e8972aa824 Add support for gamepads (hardcoded to be the first).
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-10-15 12:55:27 +01:00
Andrea Odetti
d4fa3f6a2c Remove Ctrl-Q shortcut as it interferes with emulator.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-10-12 21:01:13 +01:00
Andrea Odetti
a72d19b386 Couple of fixes from upstream AW.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-10-12 20:58:32 +01:00
Andrea Odetti
9320db8ab7 Move letters to KeyDown as opposed to text.
It is easier to handle Ctrl.

Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-10-12 20:30:23 +01:00
mariofutire@gmail.com
bc029dee97 sa2: make the keyboard "work" (no CTRL-ASCII codes for the time being).
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-10-11 20:16:07 +01:00
mariofutire@gmail.com
1400828452 Use keycode as opposed to scancode.
We honour a layout change decided by the user.

Signed-off-by: mariofutire@gmail.com <pi@raspberrypi>
2020-10-11 20:14:02 +01:00
mariofutire@gmail.com
aac2c5139a Split event handling and "video" state to separate class.
Signed-off-by: mariofutire@gmail.com <pi@raspberrypi>
2020-10-11 20:14:02 +01:00
mariofutire@gmail.com
ddea5b139e Add #pragma once.
Signed-off-by: mariofutire@gmail.com <pi@raspberrypi>
2020-10-11 20:14:02 +01:00
mariofutire@gmail.com
080198f88c Rename ClosedApple -> SolidApple.
Signed-off-by: mariofutire@gmail.com <pi@raspberrypi>
2020-10-11 20:14:01 +01:00
mariofutire@gmail.com
4ba10089c3 sa2: add button emulation
LALT = Open Apple
RALT = Closed Apple

Signed-off-by: mariofutire@gmail.com <pi@raspberrypi>
2020-10-11 20:14:01 +01:00
mariofutire@gmail.com
3e355288cb sa2: F2 = quit (line applen).
throw an exception rather than a string.

Signed-off-by: mariofutire@gmail.com <pi@raspberrypi>
2020-10-11 20:14:01 +01:00
mariofutire@gmail.com
e279fc7a5d Reindent properly.
Signed-off-by: mariofutire@gmail.com <pi@raspberrypi>
2020-10-11 20:14:01 +01:00
mariofutire@gmail.com
dab1735a69 Logging / Config replated changes.
sa2 / applen add flag to load qt init file (--qt-ini) (read only for now)
unify logging (--log)

Signed-off-by: mariofutire@gmail.com <pi@raspberrypi>
2020-10-11 20:14:01 +01:00
mariofutire@gmail.com
bc74b5fbfb Implement save-on-exit configuration flag.
Signed-off-by: mariofutire@gmail.com <pi@raspberrypi>
2020-10-11 20:13:50 +01:00
Andrea Odetti
65effc121d Add Quit on the Qt app.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-10-09 19:37:04 +01:00
Andrea Odetti
bb8269052a SDL2: add F6 (full screen) and F5 (swap disks).
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-10-09 19:31:20 +01:00
Andrea Odetti
24621373dd Better way to share data between ncurses and sdl2.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-10-09 19:13:42 +01:00
Andrea Odetti
01c059873f Let SDL2 do the refresh sync.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-10-09 11:50:59 +01:00
Andrea Odetti
274ef6a796 Fix sa2 to work with recent code.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2020-10-09 10:31:18 +01:00