From f184b291673e68ea0da537e7821d46373b6ce1ae Mon Sep 17 00:00:00 2001 From: ferris Date: Thu, 17 Jan 2019 20:20:35 +0100 Subject: [PATCH 01/13] Use 12 bits only for background x and parallax This is documented in the hardware, but since they're stored in DRAM, I just treated them as 16 bits before. Enforcing this fixes Space Invaders - the last game before we reach 100% compatibility :) Something to note here is this _only_ covers the x and parallax window attributes; none of the other ones. Before enforcing size on any of the other ones I'd like to come up with some video hardware fuzzing tests. --- rustual-boy-core/src/vip/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rustual-boy-core/src/vip/mod.rs b/rustual-boy-core/src/vip/mod.rs index f0d2ccf..926368a 100644 --- a/rustual-boy-core/src/vip/mod.rs +++ b/rustual-boy-core/src/vip/mod.rs @@ -725,8 +725,8 @@ impl Vip { logln!(Log::Vip, " mode: {}", mode); logln!(Log::Vip, " l, r: {}, {}", left_on, right_on);*/ - let x = self.read_vram_halfword(window_offset + 2) as i16; - let parallax = self.read_vram_halfword(window_offset + 4) as i16; + let x = ((self.read_vram_halfword(window_offset + 2) as i16) << 6) >> 6; + let parallax = ((self.read_vram_halfword(window_offset + 4) as i16) << 6) >> 6; let y = self.read_vram_halfword(window_offset + 6) as i16; let bg_x = self.read_vram_halfword(window_offset + 8) as i16; let bg_parallax = self.read_vram_halfword(window_offset + 10) as i16; From 9bcb6b93fca11a5b8ea749f14829763aa3e9b8fa Mon Sep 17 00:00:00 2001 From: ferris Date: Thu, 17 Jan 2019 20:23:01 +0100 Subject: [PATCH 02/13] Update README for 100% compatibility --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6bee08e..48dc3d7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Rustual Boy -[![Build Status](https://travis-ci.org/emu-rs/rustual-boy.svg?branch=master)](https://travis-ci.org/emu-rs/rustual-boy) [![Build status](https://ci.appveyor.com/api/projects/status/ec29vne6uuh7tjtu/branch/master?svg=true)](https://ci.appveyor.com/project/yupferris/rustual-boy/branch/master) [![rustualboy.com](https://img.shields.io/badge/www-rustualboy.com-red.svg)](https://rustualboy.com/) [![Compabitility](https://img.shields.io/badge/compatibility-97%25-yellowgreen.svg)](https://github.com/emu-rs/rustual-boy/blob/master/README.md#known-game-compatibility) [![Chat on discord](https://img.shields.io/badge/chat-on%20discord-7289DA.svg)](https://discord.gg/65j9YMA) [![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)](https://github.com/emu-rs/rustual-boy/blob/master/README.md#license) +[![Build Status](https://travis-ci.org/emu-rs/rustual-boy.svg?branch=master)](https://travis-ci.org/emu-rs/rustual-boy) [![Build status](https://ci.appveyor.com/api/projects/status/ec29vne6uuh7tjtu/branch/master?svg=true)](https://ci.appveyor.com/project/yupferris/rustual-boy/branch/master) [![rustualboy.com](https://img.shields.io/badge/www-rustualboy.com-red.svg)](https://rustualboy.com/) [![Compabitility](https://img.shields.io/badge/compatibility-100%25-green.svg)](https://github.com/emu-rs/rustual-boy/blob/master/README.md#known-game-compatibility) [![Chat on discord](https://img.shields.io/badge/chat-on%20discord-7289DA.svg)](https://discord.gg/65j9YMA) [![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)](https://github.com/emu-rs/rustual-boy/blob/master/README.md#license) ![Rustual Boy](media/logo.png) @@ -12,9 +12,9 @@ The name "Rustual Boy" is a [portmanteau](https://en.wikipedia.org/wiki/Portmant ## Status -Rustual Boy is currently able to emulate [the majority of commercial Virtual Boy titles](https://github.com/emu-rs/rustual-boy/blob/master/README.md#known-game-compatibility), as well as many homebrew ones. It supports basic video/audio output and keyboard input, and also a simple CLI debugger. It runs on Windows, MacOS, Linux, and likely some other platforms Rust supports. +Rustual Boy is currently able to emulate [all commercial Virtual Boy titles](https://github.com/emu-rs/rustual-boy/blob/master/README.md#known-game-compatibility), as well as many homebrew ones. It supports basic video/audio output and keyboard input, and also a simple CLI debugger. It runs on Windows, MacOS, Linux, and likely some other platforms Rust supports. -While Rustual Boy's core emulation is nearly complete [compatibility-wise](https://github.com/emu-rs/rustual-boy/blob/master/README.md#known-game-compatibility), and in some respects is already one of the more accurate VB emulators available, the project is still young, and needs some time to mature. Particularly, its user interface is lacking (read: virtually non-existent), and there are some known (and probably unknown) stability/compatibility issues. Also, performance isn't fantastic yet, but the emulator should be playable at least. +While Rustual Boy's core emulation is complete [compatibility-wise](https://github.com/emu-rs/rustual-boy/blob/master/README.md#known-game-compatibility), and in some respects is already one of the more accurate VB emulators available, the project is still young, and needs some time to mature. Particularly, its user interface is lacking (read: virtually non-existent), and there are some known (and probably unknown) stability/compatibility issues. Also, performance isn't fantastic yet, but the emulator should be playable at least. That said, these things are bound to improve with time, and everyone is encouraged to [grab a build](https://github.com/emu-rs/rustual-boy/releases) or [build the emulator](https://github.com/emu-rs/rustual-boy/blob/master/README.md#building-and-running), give it a shot, and [report any bugs/feature requests](CONTRIBUTING.md)! @@ -49,7 +49,7 @@ Games marked 💖 and 💔 are all included in the compatibility metric. | Panic Bomber | 💖 | 💖 | | | Red Alarm | 💖 | 💖 | | | SD Gundam Dimension War | N/A | 💖 | | -| Space Invaders Virtual Collection | N/A | 🚫 | Lazers aren't visible on most of the screen in "Virtual 3D" mode | +| Space Invaders Virtual Collection | N/A | 💖 | | | Space Squash | N/A | 💖 | | | Teleroboxer | 💔 | 💔 | Small audio glitches during screen transitions after demo mode wins games | | V-Tetris | N/A | 💖 | | From 0e68e0f5738b3ef30fe38a98d81a8b68ed8c40be Mon Sep 17 00:00:00 2001 From: ferris Date: Thu, 17 Jan 2019 20:39:25 +0100 Subject: [PATCH 03/13] Update licenses/readmes/versions to 0.3.0 --- LICENSE-APACHE | 2 +- LICENSE-MIT | 2 +- doc/README | 2 +- rustual-boy-cli/Cargo.lock | 2 +- rustual-boy-cli/Cargo.toml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/LICENSE-APACHE b/LICENSE-APACHE index a9cffd2..d08c5b3 100644 --- a/LICENSE-APACHE +++ b/LICENSE-APACHE @@ -186,7 +186,7 @@ APPENDIX: How to apply the Apache License to your work. same "printed page" as the copyright notice for easier identification within third-party archives. -Copyright 2016-2018 Jake Taylor +Copyright 2016-2019 Jake Taylor Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/LICENSE-MIT b/LICENSE-MIT index 5e1fcc6..7733140 100644 --- a/LICENSE-MIT +++ b/LICENSE-MIT @@ -1,4 +1,4 @@ -Copyright (c) 2016-2018 Jake Taylor +Copyright (c) 2016-2019 Jake Taylor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated diff --git a/doc/README b/doc/README index 36b3c93..9112c88 100644 --- a/doc/README +++ b/doc/README @@ -12,6 +12,6 @@ but it depends on a number of libraries which carry their own copyright notices and license terms. These libraries are normally all linked static into the binary distributions of Rustual Boy. See LICENSE-THIRD-PARTY for more info. -(C) 2016-2018 Jake "ferris" Taylor and the Rustual Boy contributors +(C) 2016-2019 Jake "ferris" Taylor and the Rustual Boy contributors https://rustualboy.com/ https://github.com/emu-rs/rustual-boy diff --git a/rustual-boy-cli/Cargo.lock b/rustual-boy-cli/Cargo.lock index ff31b8d..e8add8e 100644 --- a/rustual-boy-cli/Cargo.lock +++ b/rustual-boy-cli/Cargo.lock @@ -317,7 +317,7 @@ dependencies = [ [[package]] name = "rustual-boy-cli" -version = "0.2.0" +version = "0.3.0" dependencies = [ "clap 2.27.0 (registry+https://github.com/rust-lang/crates.io-index)", "combine 2.5.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/rustual-boy-cli/Cargo.toml b/rustual-boy-cli/Cargo.toml index 84c8667..d21dc8f 100644 --- a/rustual-boy-cli/Cargo.toml +++ b/rustual-boy-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rustual-boy-cli" -version = "0.2.0" +version = "0.3.0" authors = ["ferris ", "The Rustual Boy contributors"] description = "A CLI frontend for rustual-boy-core" readme = "README.md" From 615f908132526881adfff40cf72f6f9b89cea8dd Mon Sep 17 00:00:00 2001 From: Zachary Dremann Date: Thu, 16 Jul 2020 22:19:18 -0400 Subject: [PATCH 04/13] Make a cargo workspace --- rustual-boy-cli/Cargo.lock => Cargo.lock | 2 ++ Cargo.toml | 7 +++++++ 2 files changed, 9 insertions(+) rename rustual-boy-cli/Cargo.lock => Cargo.lock (99%) create mode 100644 Cargo.toml diff --git a/rustual-boy-cli/Cargo.lock b/Cargo.lock similarity index 99% rename from rustual-boy-cli/Cargo.lock rename to Cargo.lock index e8add8e..5a5dcb6 100644 --- a/rustual-boy-cli/Cargo.lock +++ b/Cargo.lock @@ -1,3 +1,5 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. [[package]] name = "alsa-sys" version = "0.1.1" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..ad5b3f0 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,7 @@ +[workspace] + +members = [ + "rustual-boy-cli", + "rustual-boy-core", + "rustual-boy-middleware" +] From be6ecb49292d3b28f0e005e06ceed79ef77a24e1 Mon Sep 17 00:00:00 2001 From: Zachary Dremann Date: Thu, 16 Jul 2020 22:50:10 -0400 Subject: [PATCH 05/13] Update clap --- Cargo.lock | 57 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5a5dcb6..e669fef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11,8 +11,11 @@ dependencies = [ [[package]] name = "ansi_term" -version = "0.9.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "ascii" @@ -35,11 +38,6 @@ name = "bitflags" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "bitflags" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "bitflags" version = "1.0.0" @@ -52,14 +50,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "clap" -version = "2.27.0" +version = "2.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "atty 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "textwrap 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "vec_map 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -321,7 +319,7 @@ dependencies = [ name = "rustual-boy-cli" version = "0.3.0" dependencies = [ - "clap 2.27.0 (registry+https://github.com/rust-lang/crates.io-index)", + "clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)", "combine 2.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "cpal 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", @@ -368,7 +366,7 @@ dependencies = [ [[package]] name = "strsim" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -383,7 +381,7 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.9.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -424,11 +422,30 @@ name = "winapi" version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "winapi-build" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "x11-dl" version = "2.14.0" @@ -441,14 +458,13 @@ dependencies = [ [metadata] "checksum alsa-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9013f855a808ab924a4c08b5c1ec9bd6b04fdb2295b4d570fb723e0ed2802a4f" -"checksum ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "23ac7c30002a5accbf7e8987d0632fa6de155b7c3d39d0067317a391e00a2ef6" +"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum ascii 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ae7d751998c189c1d4468cf0a39bb2eae052a9c58d50ebb3b9591ee3813ad50" "checksum atty 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "21e50800ec991574876040fff8ee46b136a53e985286fbe6a3bdfe6421b78860" "checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" -"checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" "checksum bitflags 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5cde24d1b2e2216a726368b2363a273739c91f4e3eb4e0dd12d672d396ad989" "checksum byteorder 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff81738b726f5d099632ceaffe7fb65b90212e8dce59d518729e7e8634032d3d" -"checksum clap 2.27.0 (registry+https://github.com/rust-lang/crates.io-index)" = "260aa209e1e7165920b6925d508cd73674a4adeb4086197385968c70ecd14947" +"checksum clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129" "checksum combine 2.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1645a65a99c7c8d345761f4b75a6ffe5be3b3b27a93ee731fccc5050ba6be97c" "checksum coreaudio-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "22ec432725379967f9014b481afcb7c07a4fb154d836d3711730972ea91675ea" "checksum coreaudio-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "31231897622a4cd14cb211af6f26d6fcf0c78078fa60c586ce9db8f0b581cd44" @@ -482,13 +498,16 @@ dependencies = [ "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" "checksum sdl2 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63066036ad426250ac56d23e38fd05063b38b661556acd596f4046cc92d98415" "checksum sdl2-sys 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b48638b7882759f3421038fcd38ad5f1ea19b119d80c99f1601933004629e34d" -"checksum strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d15c810519a91cf877e7e36e63fe068815c678181439f2f29e2562147c3694" +"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" -"checksum textwrap 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0b59b6b4b44d867f1370ef1bd91bfb262bf07bf0ae65c202ea2fbc16153b693" +"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" "checksum time 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)" = "d5d788d3aa77bc0ef3e9621256885555368b47bd495c13dd2e7413c89f845520" "checksum unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "bf3a113775714a22dcb774d8ea3655c53a32debae63a063acc00a91cc586245f" "checksum user32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6717129de5ac253f5642fc78a51d0c7de6f9f53d617fc94e9bae7f6e71cf5504" "checksum vec_map 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "887b5b631c2ad01628bbbaa7dd4c869f80d3186688f8d0b6f58774fbe324988c" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" +"checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" +"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum x11-dl 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "326c500cdc166fd7c70dd8c8a829cd5c0ce7be5a5d98c25817de2b9bdc67faf8" From 97b6095c7ab37e4422bcf29574c1718d5f9a348b Mon Sep 17 00:00:00 2001 From: Zachary Dremann Date: Thu, 16 Jul 2020 23:21:23 -0400 Subject: [PATCH 06/13] Update minifb version --- Cargo.lock | 610 ++++++++++++++++++++++++++------ rustual-boy-cli/Cargo.toml | 2 +- rustual-boy-cli/src/emulator.rs | 7 +- 3 files changed, 509 insertions(+), 110 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e669fef..fb231a5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,10 +2,10 @@ # It is not intended for manual editing. [[package]] name = "alsa-sys" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -28,19 +28,19 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "bitflags" -version = "0.7.0" +name = "autocfg" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bitflags" -version = "1.0.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -48,6 +48,24 @@ name = "byteorder" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "cast" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "cc" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "clap" version = "2.33.1" @@ -55,13 +73,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "atty 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "vec_map 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "cloudabi" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "combine" version = "2.5.2" @@ -76,9 +102,9 @@ name = "coreaudio-rs" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "coreaudio-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -86,7 +112,7 @@ name = "coreaudio-sys" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -94,16 +120,29 @@ name = "cpal" version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "alsa-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "coreaudio-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", "ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "dlib" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libloading 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "encoding" version = "0.2.33" @@ -162,20 +201,9 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "fuchsia-zircon" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "fuchsia-zircon-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.2.0" +name = "fuchsia-cprng" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", -] [[package]] name = "futures" @@ -183,21 +211,18 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "gcc" -version = "0.3.54" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "gdi32-sys" -version = "0.1.1" +name = "getrandom" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "kernel32-sys" -version = "0.1.4" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -205,37 +230,62 @@ dependencies = [ ] [[package]] -name = "kernel32-sys" -version = "0.2.2" +name = "lazy_static" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] [[package]] name = "lazy_static" -version = "0.2.9" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.32" +version = "0.2.72" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "libloading" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "maybe-uninit" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "minifb" -version = "0.9.2" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.54 (registry+https://github.com/rust-lang/crates.io-index)", - "gdi32-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "kernel32-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "orbclient 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)", - "user32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "x11-dl 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cast 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)", + "orbclient 0.3.27 (registry+https://github.com/rust-lang/crates.io-index)", + "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-client 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-cursor 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-protocols 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "x11-dl 2.18.5 (registry+https://github.com/rust-lang/crates.io-index)", + "xkb 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "xkbcommon-sys 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "nix" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -279,13 +329,18 @@ dependencies = [ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "once_cell" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "orbclient" -version = "0.3.12" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "redox_syscall 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", - "sdl2 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", + "sdl2 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -293,18 +348,179 @@ name = "pkg-config" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "ppv-lite86" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "proc-macro2" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "quote" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rand" -version = "0.3.17" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_chacha" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "fuchsia-zircon 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", + "ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_hc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_isaac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_jitter" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_os" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_pcg" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_xorshift" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "raw-window-handle" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "redox_syscall" -version = "0.1.31" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -312,7 +528,23 @@ name = "redox_termios" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "redox_syscall 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -324,7 +556,7 @@ dependencies = [ "cpal 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", - "minifb 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", + "minifb 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustual-boy-core 0.1.0", "rustual-boy-middleware 0.1.0", ] @@ -343,39 +575,76 @@ dependencies = [ "rustual-boy-core 0.1.0", ] +[[package]] +name = "scoped-tls" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "sdl2" -version = "0.30.0" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", "num 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", - "sdl2-sys 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "sdl2-sys 0.32.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sdl2-sys" -version = "0.30.0" +version = "0.32.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "semver" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", + "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "smallvec" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "strsim" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "tempfile" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", + "remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "termion" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -388,34 +657,93 @@ dependencies = [ ] [[package]] -name = "time" -version = "0.1.38" +name = "unicode-width" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "unicode-xid" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "vec_map" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "wayland-client" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "downcast-rs 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "nix 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", + "scoped-tls 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-commons 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-scanner 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-sys 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "unicode-width" -version = "0.1.4" +name = "wayland-commons" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "nix 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-sys 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] -name = "user32-sys" -version = "0.1.2" +name = "wayland-cursor" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-client 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-sys 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "vec_map" -version = "0.8.0" +name = "wayland-protocols" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-client 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-commons 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-scanner 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wayland-scanner" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "xml-rs 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wayland-sys" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "dlib 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "winapi" @@ -448,27 +776,58 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "x11-dl" -version = "2.14.0" +version = "2.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "xkb" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "xkbcommon-sys 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "xkbcommon-sys" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "xml-rs" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + [metadata] -"checksum alsa-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9013f855a808ab924a4c08b5c1ec9bd6b04fdb2295b4d570fb723e0ed2802a4f" +"checksum alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b0edcbbf9ef68f15ae1b620f722180b82a98b6f0628d30baa6b8d2a5abc87d58" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum ascii 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ae7d751998c189c1d4468cf0a39bb2eae052a9c58d50ebb3b9591ee3813ad50" "checksum atty 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "21e50800ec991574876040fff8ee46b136a53e985286fbe6a3bdfe6421b78860" -"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" -"checksum bitflags 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5cde24d1b2e2216a726368b2363a273739c91f4e3eb4e0dd12d672d396ad989" +"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" +"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" "checksum byteorder 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff81738b726f5d099632ceaffe7fb65b90212e8dce59d518729e7e8634032d3d" +"checksum cast 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4b9434b9a5aa1450faa3f9cb14ea0e8c53bb5d2b3c1bfd1ab4fc03e9f33fbfb0" +"checksum cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)" = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518" +"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" "checksum clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129" +"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum combine 2.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1645a65a99c7c8d345761f4b75a6ffe5be3b3b27a93ee731fccc5050ba6be97c" "checksum coreaudio-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "22ec432725379967f9014b481afcb7c07a4fb154d836d3711730972ea91675ea" "checksum coreaudio-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "31231897622a4cd14cb211af6f26d6fcf0c78078fa60c586ce9db8f0b581cd44" "checksum cpal 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7c7ea57dd9260ee9faaccbf629648c4a00cf56a090dc26ebaf13ddbfe932261d" +"checksum dlib 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b11f15d1e3268f140f68d390637d5e76d849782d971ae7063e0da69fe9709a76" +"checksum downcast-rs 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" "checksum encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" "checksum encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" "checksum encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" @@ -476,38 +835,75 @@ dependencies = [ "checksum encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" "checksum encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" "checksum encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" -"checksum fuchsia-zircon 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f6c0581a4e363262e52b87f59ee2afe3415361c6ec35e665924eb08afe8ff159" -"checksum fuchsia-zircon-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "43f3795b4bae048dc6123a6b972cadde2e676f9ded08aef6bb77f5f157684a82" +"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" "checksum futures 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "05a23db7bd162d4e8265968602930c476f688f0c180b44bdaf55e0cb2c687558" -"checksum gcc 0.3.54 (registry+https://github.com/rust-lang/crates.io-index)" = "5e33ec290da0d127825013597dbdfc28bee4964690c7ce1166cbc2a7bd08b1bb" -"checksum gdi32-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "65256ec4dc2592e6f05bfc1ca3b956a4e0698aa90b1dff1f5687d55a5a3fd59a" -"checksum kernel32-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e014dab1082fd9d80ea1fa6fcb261b47ed3eb511612a14198bb507701add083e" +"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -"checksum lazy_static 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c9e5e58fa1a4c3b915a561a78a22ee0cac6ab97dca2504428bc1cb074375f8d5" -"checksum libc 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)" = "56cce3130fd040c28df6f495c8492e5ec5808fb4c9093c310df02b0c8f030148" -"checksum minifb 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c8bfb9de609fe3084d81318aecc0cb9b2473434dc0d7e0cadd0f5ea4864e2a5b" +"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" +"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +"checksum libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)" = "a9f8082297d534141b30c8d39e9b1773713ab50fdbe4ff30f750d063b3bfd701" +"checksum libloading 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2cadb8e769f070c45df05c78c7520eb4cd17061d4ab262e43cfc68b4d00ac71c" +"checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" +"checksum minifb 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0c2407444bc74256b6f2c6fe3d8cfe0af591f5680b501e751078a96992808aa0" +"checksum nix 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363" "checksum num 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "a311b77ebdc5dd4cf6449d81e4135d9f0e3b153839ac90e648a8ef538f923525" "checksum num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "d1452e8b06e448a07f0e6ebb0bb1d92b8890eea63288c0b627331d53514d0fba" "checksum num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)" = "7485fcc84f85b4ecd0ea527b14189281cf27d60e583ae65ebc9c088b13dffe01" "checksum num-traits 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "99843c856d68d8b4313b03a17e33c4bb42ae8f6610ea81b28abe076ac721b9b0" "checksum ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2c49021782e5233cd243168edfa8037574afed4eba4bbaf538b3d8d1789d8c" -"checksum orbclient 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)" = "6e5d8d9900998fb4b9394e27058aa22a6d3509fb67dd860f74ba0507d4406943" +"checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" +"checksum orbclient 0.3.27 (registry+https://github.com/rust-lang/crates.io-index)" = "f8b18f57ab94fbd058e30aa57f712ec423c0bb7403f8493a6c58eef0c36d9402" "checksum pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903" -"checksum rand 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "61efcbcd9fa8d8fbb07c84e34a8af18a1ff177b449689ad38a6e9457ecc7b2ae" -"checksum redox_syscall 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)" = "8dde11f18c108289bef24469638a04dce49da56084f2d50618b226e47eb04509" +"checksum ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" +"checksum proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa" +"checksum quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" +"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" +"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" +"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" +"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" +"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" +"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" +"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" +"checksum raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0a441a7a6c80ad6473bd4b74ec1c9a4c951794285bf941c2126f607c72e48211" +"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +"checksum redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)" = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" -"checksum sdl2 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63066036ad426250ac56d23e38fd05063b38b661556acd596f4046cc92d98415" -"checksum sdl2-sys 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b48638b7882759f3421038fcd38ad5f1ea19b119d80c99f1601933004629e34d" +"checksum remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +"checksum scoped-tls 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" +"checksum sdl2 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d051a07231e303f5f719da78cb6f7394f6d5b54f733aef5b0b447804a83edd7b" +"checksum sdl2-sys 0.32.6 (registry+https://github.com/rust-lang/crates.io-index)" = "34e71125077d297d57e4c1acfe8981b5bdfbf5a20e7b589abfdcb33bf1127f86" +"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +"checksum smallvec 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3757cb9d89161a2f24e1cf78efa0c1fcff485d18e3f55e0aa3480824ddaa0f3f" "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" +"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -"checksum time 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)" = "d5d788d3aa77bc0ef3e9621256885555368b47bd495c13dd2e7413c89f845520" "checksum unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "bf3a113775714a22dcb774d8ea3655c53a32debae63a063acc00a91cc586245f" -"checksum user32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6717129de5ac253f5642fc78a51d0c7de6f9f53d617fc94e9bae7f6e71cf5504" +"checksum unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" "checksum vec_map 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "887b5b631c2ad01628bbbaa7dd4c869f80d3186688f8d0b6f58774fbe324988c" +"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +"checksum wayland-client 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a42cb608953ec8e132c7f53fde722cca9bfbf8b2071d685dbbb8df2b567fee8b" +"checksum wayland-commons 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8caa2f106138cf71358c6a9e84468e4406069cec93cbd6dbfce92225fc175932" +"checksum wayland-cursor 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d774f69a6a4a9eac6d1a29cea45a4750ee7f997520421b2068f099a11b4cbba" +"checksum wayland-protocols 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f784a990d5fa6d846fa93eb8d3bb744ff1e6ec60c7f785b0a0ee2f1a1f20bee9" +"checksum wayland-scanner 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f45ddc08a8078f3efa96b5f413268cc9c53b30712891de081fbc1d5846fbc736" +"checksum wayland-sys 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)" = "80f9fc64f9045ad5ff491886a9460437655353e8be73c1b3f29f569342553319" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum x11-dl 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "326c500cdc166fd7c70dd8c8a829cd5c0ce7be5a5d98c25817de2b9bdc67faf8" +"checksum x11-dl 2.18.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2bf981e3a5b3301209754218f962052d4d9ee97e478f4d26d4a6eced34c1fef8" +"checksum xkb 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aec02bc5de902aa579f3d2f2c522edaf40fa42963cbaffe645b058ddcc68fdb2" +"checksum xkbcommon-sys 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fa434980dca02ebf28795d71e570dbb78316d095a228707efd6117bf8246d78b" +"checksum xml-rs 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a" diff --git a/rustual-boy-cli/Cargo.toml b/rustual-boy-cli/Cargo.toml index d21dc8f..3a0f69a 100644 --- a/rustual-boy-cli/Cargo.toml +++ b/rustual-boy-cli/Cargo.toml @@ -20,7 +20,7 @@ log-core-all = ["rustual-boy-core/log-all"] [dependencies] encoding = "0.2" -minifb = "0.9.0" +minifb = "0.17.0" cpal = "0.4.4" futures = "0.1.1" rustual-boy-middleware = { path = "../rustual-boy-middleware" } diff --git a/rustual-boy-cli/src/emulator.rs b/rustual-boy-cli/src/emulator.rs index 6d25792..d2d6c88 100644 --- a/rustual-boy-cli/src/emulator.rs +++ b/rustual-boy-cli/src/emulator.rs @@ -1,4 +1,4 @@ -use minifb::{WindowOptions, Window, Key, KeyRepeat, Scale}; +use minifb::{WindowOptions, Window, Key, KeyRepeat, Scale, ScaleMode}; use command::*; @@ -74,6 +74,9 @@ impl Emulator { title: true, resize: false, scale: Scale::X2, + scale_mode: ScaleMode::AspectRatioStretch, + topmost: false, + transparency: false }).unwrap(), virtual_boy: VirtualBoy::new(rom, sram), @@ -142,7 +145,7 @@ impl Emulator { if let Some(frame) = video_frame_sink.into_inner().into_inner().into_inner() { let frame: Vec = frame.into_iter().map(|x| x.into()).collect(); - self.window.update_with_buffer(&frame); + self.window.update_with_buffer(&frame, 384, 224); if self.mode == Mode::Running { // We only want to update the key state when a frame is actually pushed From 905f2e2386b94bbd1ab8fc70fef7b03f434e2847 Mon Sep 17 00:00:00 2001 From: Zachary Dremann Date: Fri, 17 Jul 2020 00:43:58 -0400 Subject: [PATCH 07/13] Update cpal to 0.12.0 --- Cargo.lock | 386 ++++++++++++++++++++++++++--- rustual-boy-cli/Cargo.toml | 2 +- rustual-boy-cli/src/cpal_driver.rs | 113 ++++----- 3 files changed, 411 insertions(+), 90 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fb231a5..dec32bf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,8 +1,19 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +[[package]] +name = "alsa" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "alsa-sys 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "nix 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "alsa-sys" -version = "0.1.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", @@ -38,11 +49,35 @@ name = "autocfg" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "bindgen" +version = "0.53.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cexpr 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "clang-sys 0.29.3 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "bitflags" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "bumpalo" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "byteorder" version = "1.1.0" @@ -61,11 +96,29 @@ name = "cc" version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "cexpr" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "cfg-if" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "clang-sys" +version = "0.29.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "clap" version = "2.33.1" @@ -97,37 +150,46 @@ dependencies = [ "byteorder 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "core-foundation-sys" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "coreaudio-rs" -version = "0.7.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "coreaudio-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "coreaudio-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "coreaudio-sys" -version = "0.1.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "bindgen 0.53.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cpal" -version = "0.4.6" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "coreaudio-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "alsa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "coreaudio-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "js-sys 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", - "ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "mach 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "nix 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "web-sys 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -220,6 +282,19 @@ dependencies = [ "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "glob" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "js-sys" +version = "0.3.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "wasm-bindgen 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "kernel32-sys" version = "0.2.2" @@ -231,12 +306,12 @@ dependencies = [ [[package]] name = "lazy_static" -version = "0.2.11" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "lazy_static" -version = "1.4.0" +name = "lazycell" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -244,6 +319,15 @@ name = "libc" version = "0.2.72" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "libloading" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "libloading" version = "0.6.2" @@ -252,11 +336,40 @@ dependencies = [ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "lock_api" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "log" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "maybe-uninit" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "memchr" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "minifb" version = "0.17.0" @@ -276,6 +389,18 @@ dependencies = [ "xkbcommon-sys 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "nix" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "nix" version = "0.17.0" @@ -288,6 +413,15 @@ dependencies = [ "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "nom" +version = "5.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "num" version = "0.1.40" @@ -320,15 +454,6 @@ name = "num-traits" version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "ole32-sys" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "once_cell" version = "1.4.0" @@ -343,6 +468,35 @@ dependencies = [ "sdl2 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "parking_lot" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "parking_lot_core" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "pkg-config" version = "0.3.9" @@ -531,6 +685,19 @@ dependencies = [ "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "regex" +version = "1.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "regex-syntax" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "remove_dir_all" version = "0.5.3" @@ -539,6 +706,11 @@ dependencies = [ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "rustc_version" version = "0.2.3" @@ -553,7 +725,7 @@ version = "0.3.0" dependencies = [ "clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)", "combine 2.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "cpal 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cpal 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", "minifb 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -580,6 +752,11 @@ name = "scoped-tls" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "sdl2" version = "0.32.2" @@ -615,16 +792,44 @@ name = "semver-parser" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "shlex" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "smallvec" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "smallvec" version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "stdweb" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "strsim" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "syn" +version = "1.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "tempfile" version = "3.1.0" @@ -656,6 +861,24 @@ dependencies = [ "unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "thiserror" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "thiserror-impl 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "unicode-width" version = "0.1.4" @@ -671,6 +894,11 @@ name = "vec_map" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "version_check" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "void" version = "1.0.2" @@ -681,6 +909,55 @@ name = "wasi" version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "wasm-bindgen" +version = "0.2.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-macro 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bumpalo 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-shared 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-macro-support 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-backend 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-shared 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.65" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "wayland-client" version = "0.25.0" @@ -745,6 +1022,15 @@ dependencies = [ "dlib 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "web-sys" +version = "0.3.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "js-sys 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "winapi" version = "0.2.8" @@ -810,22 +1096,28 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] -"checksum alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b0edcbbf9ef68f15ae1b620f722180b82a98b6f0628d30baa6b8d2a5abc87d58" +"checksum alsa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "44581add1add74ade32aca327b550342359ec00191672c23c1caa3d492b85930" +"checksum alsa-sys 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d5a0559bcd3f7a482690d98be41c08a43e92f669b179433e95ddf5e8b8fd36a3" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum ascii 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ae7d751998c189c1d4468cf0a39bb2eae052a9c58d50ebb3b9591ee3813ad50" "checksum atty 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "21e50800ec991574876040fff8ee46b136a53e985286fbe6a3bdfe6421b78860" "checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" +"checksum bindgen 0.53.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5" "checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +"checksum bumpalo 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" "checksum byteorder 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff81738b726f5d099632ceaffe7fb65b90212e8dce59d518729e7e8634032d3d" "checksum cast 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4b9434b9a5aa1450faa3f9cb14ea0e8c53bb5d2b3c1bfd1ab4fc03e9f33fbfb0" "checksum cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)" = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518" +"checksum cexpr 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27" "checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +"checksum clang-sys 0.29.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a" "checksum clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum combine 2.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1645a65a99c7c8d345761f4b75a6ffe5be3b3b27a93ee731fccc5050ba6be97c" -"checksum coreaudio-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "22ec432725379967f9014b481afcb7c07a4fb154d836d3711730972ea91675ea" -"checksum coreaudio-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "31231897622a4cd14cb211af6f26d6fcf0c78078fa60c586ce9db8f0b581cd44" -"checksum cpal 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7c7ea57dd9260ee9faaccbf629648c4a00cf56a090dc26ebaf13ddbfe932261d" +"checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" +"checksum coreaudio-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f229761965dad3e9b11081668a6ea00f1def7aa46062321b5ec245b834f6e491" +"checksum coreaudio-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d6570ee6e089131e928d5ec9236db9e818aa3cf850f48b0eec6ef700571271d4" +"checksum cpal 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ba08f6cef6ecc4058a6c458b6b692ded275b5e80f67230387237ba3e187d593" "checksum dlib 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b11f15d1e3268f140f68d390637d5e76d849782d971ae7063e0da69fe9709a76" "checksum downcast-rs 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" "checksum encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" @@ -838,21 +1130,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" "checksum futures 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "05a23db7bd162d4e8265968602930c476f688f0c180b44bdaf55e0cb2c687558" "checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" +"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +"checksum js-sys 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)" = "52732a3d3ad72c58ad2dc70624f9c17b46ecd0943b9a4f1ee37c4c18c5d983e2" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" "checksum libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)" = "a9f8082297d534141b30c8d39e9b1773713ab50fdbe4ff30f750d063b3bfd701" +"checksum libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" "checksum libloading 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2cadb8e769f070c45df05c78c7520eb4cd17061d4ab262e43cfc68b4d00ac71c" +"checksum lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" +"checksum log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" +"checksum mach 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" "checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" +"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" "checksum minifb 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0c2407444bc74256b6f2c6fe3d8cfe0af591f5680b501e751078a96992808aa0" +"checksum nix 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3b2e0b4f3320ed72aaedb9a5ac838690a8047c7b275da22711fddff4f8a14229" "checksum nix 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363" +"checksum nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" "checksum num 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "a311b77ebdc5dd4cf6449d81e4135d9f0e3b153839ac90e648a8ef538f923525" "checksum num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "d1452e8b06e448a07f0e6ebb0bb1d92b8890eea63288c0b627331d53514d0fba" "checksum num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)" = "7485fcc84f85b4ecd0ea527b14189281cf27d60e583ae65ebc9c088b13dffe01" "checksum num-traits 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "99843c856d68d8b4313b03a17e33c4bb42ae8f6610ea81b28abe076ac721b9b0" -"checksum ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2c49021782e5233cd243168edfa8037574afed4eba4bbaf538b3d8d1789d8c" "checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" "checksum orbclient 0.3.27 (registry+https://github.com/rust-lang/crates.io-index)" = "f8b18f57ab94fbd058e30aa57f712ec423c0bb7403f8493a6c58eef0c36d9402" +"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" +"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" +"checksum peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" "checksum pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903" "checksum ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" "checksum proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa" @@ -875,29 +1178,46 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" "checksum redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)" = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" +"checksum regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" +"checksum regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)" = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" "checksum remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +"checksum rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" "checksum scoped-tls 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" +"checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" "checksum sdl2 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d051a07231e303f5f719da78cb6f7394f6d5b54f733aef5b0b447804a83edd7b" "checksum sdl2-sys 0.32.6 (registry+https://github.com/rust-lang/crates.io-index)" = "34e71125077d297d57e4c1acfe8981b5bdfbf5a20e7b589abfdcb33bf1127f86" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +"checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" +"checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" "checksum smallvec 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3757cb9d89161a2f24e1cf78efa0c1fcff485d18e3f55e0aa3480824ddaa0f3f" +"checksum stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e" "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" +"checksum syn 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)" = "936cae2873c940d92e697597c5eee105fb570cd5689c695806f672883653349b" "checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +"checksum thiserror 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)" = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08" +"checksum thiserror-impl 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)" = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793" "checksum unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "bf3a113775714a22dcb774d8ea3655c53a32debae63a063acc00a91cc586245f" "checksum unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" "checksum vec_map 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "887b5b631c2ad01628bbbaa7dd4c869f80d3186688f8d0b6f58774fbe324988c" +"checksum version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +"checksum wasm-bindgen 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)" = "f3edbcc9536ab7eababcc6d2374a0b7bfe13a2b6d562c5e07f370456b1a8f33d" +"checksum wasm-bindgen-backend 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)" = "89ed2fb8c84bfad20ea66b26a3743f3e7ba8735a69fe7d95118c33ec8fc1244d" +"checksum wasm-bindgen-macro 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)" = "eb071268b031a64d92fc6cf691715ca5a40950694d8f683c5bb43db7c730929e" +"checksum wasm-bindgen-macro-support 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)" = "cf592c807080719d1ff2f245a687cbadb3ed28b2077ed7084b47aba8b691f2c6" +"checksum wasm-bindgen-shared 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)" = "72b6c0220ded549d63860c78c38f3bcc558d1ca3f4efa74942c536ddbbb55e87" "checksum wayland-client 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a42cb608953ec8e132c7f53fde722cca9bfbf8b2071d685dbbb8df2b567fee8b" "checksum wayland-commons 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8caa2f106138cf71358c6a9e84468e4406069cec93cbd6dbfce92225fc175932" "checksum wayland-cursor 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d774f69a6a4a9eac6d1a29cea45a4750ee7f997520421b2068f099a11b4cbba" "checksum wayland-protocols 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f784a990d5fa6d846fa93eb8d3bb744ff1e6ec60c7f785b0a0ee2f1a1f20bee9" "checksum wayland-scanner 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f45ddc08a8078f3efa96b5f413268cc9c53b30712891de081fbc1d5846fbc736" "checksum wayland-sys 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)" = "80f9fc64f9045ad5ff491886a9460437655353e8be73c1b3f29f569342553319" +"checksum web-sys 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)" = "8be2398f326b7ba09815d0b403095f34dd708579220d099caae89be0b32137b2" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" diff --git a/rustual-boy-cli/Cargo.toml b/rustual-boy-cli/Cargo.toml index 3a0f69a..210352b 100644 --- a/rustual-boy-cli/Cargo.toml +++ b/rustual-boy-cli/Cargo.toml @@ -21,7 +21,7 @@ log-core-all = ["rustual-boy-core/log-all"] [dependencies] encoding = "0.2" minifb = "0.17.0" -cpal = "0.4.4" +cpal = "0.12.0" futures = "0.1.1" rustual-boy-middleware = { path = "../rustual-boy-middleware" } rustual-boy-core = { path = "../rustual-boy-core" } diff --git a/rustual-boy-cli/src/cpal_driver.rs b/rustual-boy-cli/src/cpal_driver.rs index f963029..c18a71c 100644 --- a/rustual-boy-cli/src/cpal_driver.rs +++ b/rustual-boy-cli/src/cpal_driver.rs @@ -1,9 +1,6 @@ #![allow(dead_code)] -use cpal::{EventLoop, Voice, UnknownTypeBuffer, default_endpoint}; - -use futures::stream::Stream; -use futures::task::{self, Executor, Run}; +use cpal::traits::{HostTrait, DeviceTrait, StreamTrait}; use rustual_boy_core::sinks::{AudioFrame, SinkRef}; use rustual_boy_core::time_source::TimeSource; @@ -11,9 +8,9 @@ use rustual_boy_core::time_source::TimeSource; use std::borrow::Cow; use std::sync::{Arc, Mutex}; use std::iter::Iterator; -use std::thread::{self, JoinHandle}; -use std::cmp::Ordering; +use std::cmp::{self, Ordering}; +use cpal::SampleFormat; pub type CpalDriverError = Cow<'static, str>; @@ -80,20 +77,11 @@ impl TimeSource for CpalDriverTimeSource { } } -struct CpalDriverExecutor; - -impl Executor for CpalDriverExecutor { - fn execute(&self, r: Run) { - r.run(); - } -} - pub struct CpalDriver { ring_buffer: Arc>, sample_rate: u32, - _voice: Voice, - _join_handle: JoinHandle<()>, + _stream: cpal::Stream, } impl CpalDriver { @@ -102,25 +90,37 @@ impl CpalDriver { return Err(format!("desired_latency_ms must be greater than 0").into()); } - let endpoint = default_endpoint().expect("Failed to get audio endpoint"); - - let compare_sample_rates = |x: u32, y:u32| -> Ordering { - if x < sample_rate && y > sample_rate { - return Ordering::Greater; - } else if x > sample_rate && y < sample_rate { - return Ordering::Less; - } else if x < sample_rate && y < sample_rate { - return x.cmp(&y).reverse(); + let host = cpal::default_host(); + let output_device = host.default_output_device().expect("Failed to get output device"); + + let rate_sample_rate_range = |x: &cpal::SupportedStreamConfigRange, y: &cpal::SupportedStreamConfigRange| -> Ordering { + let sample_rate = cpal::SampleRate(sample_rate); + if x.max_sample_rate() < sample_rate && y.max_sample_rate() >= sample_rate { + Ordering::Less + } else if x.max_sample_rate() >= sample_rate && y.max_sample_rate() < sample_rate { + Ordering::Greater + } else if x.max_sample_rate() < sample_rate && y.max_sample_rate() < sample_rate { + x.max_sample_rate().cmp(&y.max_sample_rate()) } else { - return x.cmp(&y); + // Both max >= sample_rate, rank a lower minimum higher than not + x.min_sample_rate().cmp(&y.min_sample_rate()).reverse() } }; - let format = endpoint.supported_formats() - .expect("Failed to get supported format list for endpoint") - .filter(|format| format.channels.len() == 2) - .min_by(|x, y| compare_sample_rates(x.samples_rate.0, y.samples_rate.0)) + let supported_config = output_device.supported_output_configs() + .expect("Failed to get supported config list for output") + .filter(|config| config.channels() == 2) + .max_by(rate_sample_rate_range) .expect("Failed to find format with 2 channels"); + let supported_config = if supported_config.max_sample_rate().0 >= sample_rate { + let min_sample_rate = supported_config.min_sample_rate().0; + supported_config.with_sample_rate(cpal::SampleRate(cmp::max(min_sample_rate, sample_rate))) + } else { + supported_config.with_max_sample_rate() + }; + let config = supported_config.config(); + let channel_count = supported_config.channels(); + let buffer_frames = (sample_rate * desired_latency_ms / 1000 * 2) as usize; let ring_buffer = Arc::new(Mutex::new(RingBuffer { @@ -132,54 +132,55 @@ impl CpalDriver { samples_read: 0, })); - let event_loop = EventLoop::new(); - - let (mut voice, stream) = Voice::new(&endpoint, &format, &event_loop).expect("Failed to create voice"); - voice.play(); - - let mut resampler = LinearResampler::new(sample_rate as _, format.samples_rate.0 as _); - + let mut resampler = LinearResampler::new(sample_rate as _, config.sample_rate.0); let read_ring_buffer = ring_buffer.clone(); - task::spawn(stream.for_each(move |output_buffer| { - let mut read_ring_buffer = read_ring_buffer.lock().unwrap(); - match output_buffer { - UnknownTypeBuffer::I16(mut buffer) => { - for sample in buffer.chunks_mut(format.channels.len()) { + let err_handler = |err| eprintln!("Error occurred in output stream: {}", err); + let out_stream = match supported_config.sample_format() { + SampleFormat::I16 => output_device.build_output_stream( + &config, + move |dst: &mut [i16], _cb_info: &cpal::OutputCallbackInfo| { + let mut read_ring_buffer = read_ring_buffer.lock().unwrap(); + for sample in dst.chunks_mut(channel_count.into()) { for out in sample.iter_mut() { *out = resampler.next(&mut *read_ring_buffer); } } }, - UnknownTypeBuffer::U16(mut buffer) => { - for sample in buffer.chunks_mut(format.channels.len()) { + err_handler, + ), + SampleFormat::U16 => output_device.build_output_stream( + &config, + move |dst: &mut [u16], _cb_info: &cpal::OutputCallbackInfo| { + let mut read_ring_buffer = read_ring_buffer.lock().unwrap(); + for sample in dst.chunks_mut(channel_count.into()) { for out in sample.iter_mut() { *out = ((resampler.next(&mut *read_ring_buffer) as i32) + 32768) as u16; } } }, - UnknownTypeBuffer::F32(mut buffer) => { - for sample in buffer.chunks_mut(format.channels.len()) { + err_handler, + ), + SampleFormat::F32 => output_device.build_output_stream( + &config, + move |dst: &mut [f32], _cb_info: &cpal::OutputCallbackInfo| { + let mut read_ring_buffer = read_ring_buffer.lock().unwrap(); + for sample in dst.chunks_mut(channel_count.into()) { for out in sample.iter_mut() { *out = (resampler.next(&mut *read_ring_buffer) as f32) / 32768.0; } } }, - } - - Ok(()) - })).execute(Arc::new(CpalDriverExecutor)); - - let join_handle = thread::spawn(move || { - event_loop.run(); - }); + err_handler, + ), + }.expect("Failed to create stream"); + out_stream.play().expect("Failed to play output stream"); Ok(CpalDriver { ring_buffer: ring_buffer, sample_rate: sample_rate, - _voice: voice, - _join_handle: join_handle, + _stream: out_stream, }) } From cd4d781b6dc567d5e212e010f33328e3f6f6a353 Mon Sep 17 00:00:00 2001 From: Zachary Dremann Date: Fri, 17 Jul 2020 00:46:51 -0400 Subject: [PATCH 08/13] Remove now unused futures crate --- Cargo.lock | 7 ------- rustual-boy-cli/Cargo.toml | 1 - rustual-boy-cli/src/main.rs | 2 -- 3 files changed, 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dec32bf..5146abd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -267,11 +267,6 @@ name = "fuchsia-cprng" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "futures" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "getrandom" version = "0.1.14" @@ -727,7 +722,6 @@ dependencies = [ "combine 2.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "cpal 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", "minifb 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustual-boy-core 0.1.0", "rustual-boy-middleware 0.1.0", @@ -1128,7 +1122,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" "checksum encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" -"checksum futures 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "05a23db7bd162d4e8265968602930c476f688f0c180b44bdaf55e0cb2c687558" "checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" "checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" "checksum js-sys 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)" = "52732a3d3ad72c58ad2dc70624f9c17b46ecd0943b9a4f1ee37c4c18c5d983e2" diff --git a/rustual-boy-cli/Cargo.toml b/rustual-boy-cli/Cargo.toml index 210352b..8b79c72 100644 --- a/rustual-boy-cli/Cargo.toml +++ b/rustual-boy-cli/Cargo.toml @@ -22,7 +22,6 @@ log-core-all = ["rustual-boy-core/log-all"] encoding = "0.2" minifb = "0.17.0" cpal = "0.12.0" -futures = "0.1.1" rustual-boy-middleware = { path = "../rustual-boy-middleware" } rustual-boy-core = { path = "../rustual-boy-core" } clap = "2.0.0" diff --git a/rustual-boy-cli/src/main.rs b/rustual-boy-cli/src/main.rs index eb1eaf5..4b21ef9 100644 --- a/rustual-boy-cli/src/main.rs +++ b/rustual-boy-cli/src/main.rs @@ -2,8 +2,6 @@ extern crate minifb; extern crate cpal; -extern crate futures; - #[macro_use] extern crate clap; From 527a52a216092cc090922504d9a66257c9d0b91a Mon Sep 17 00:00:00 2001 From: Zachary Dremann Date: Mon, 13 Jul 2020 21:47:49 -0400 Subject: [PATCH 09/13] Replace ... with ..= --- rustual-boy-core/src/interconnect.rs | 48 ++++++++++++++-------------- rustual-boy-core/src/vip/mod.rs | 40 +++++++++++------------ rustual-boy-core/src/vsu/mod.rs | 12 +++---- 3 files changed, 50 insertions(+), 50 deletions(-) diff --git a/rustual-boy-core/src/interconnect.rs b/rustual-boy-core/src/interconnect.rs index 471b7ea..0a785ca 100644 --- a/rustual-boy-core/src/interconnect.rs +++ b/rustual-boy-core/src/interconnect.rs @@ -37,8 +37,8 @@ impl Interconnect { pub fn read_byte(&mut self, addr: u32) -> u8 { let addr = addr & 0x07ffffff; match addr { - VIP_START ... VIP_END => self.vip.read_byte(addr - VIP_START), - VSU_START ... VSU_END => self.vsu.read_byte(addr - VSU_START), + VIP_START ..= VIP_END => self.vip.read_byte(addr - VIP_START), + VSU_START ..= VSU_END => self.vsu.read_byte(addr - VSU_START), CCR => self.com_port.read_ccr(), CCSR => self.com_port.read_ccsr(), CDTR => self.com_port.read_cdtr(), @@ -53,13 +53,13 @@ impl Interconnect { 0 } SCR => self.game_pad.read_scr(), - GAME_PAK_EXPANSION_START ... GAME_PAK_EXPANSION_END => { + GAME_PAK_EXPANSION_START ..= GAME_PAK_EXPANSION_END => { logln!(Log::Ic, "WARNING: Read byte from Game Pak Expansion not yet implemented (addr: 0x{:08x})", addr - GAME_PAK_EXPANSION_START); 0 } - WRAM_START ... WRAM_END => self.wram.read_byte(addr - WRAM_START), - GAME_PAK_RAM_START ... GAME_PAK_RAM_END => self.sram.read_byte(addr - GAME_PAK_RAM_START), - GAME_PAK_ROM_START ... GAME_PAK_ROM_END => self.rom.read_byte(addr - GAME_PAK_ROM_START), + WRAM_START ..= WRAM_END => self.wram.read_byte(addr - WRAM_START), + GAME_PAK_RAM_START ..= GAME_PAK_RAM_END => self.sram.read_byte(addr - GAME_PAK_RAM_START), + GAME_PAK_ROM_START ..= GAME_PAK_ROM_END => self.rom.read_byte(addr - GAME_PAK_ROM_START), _ => panic!("Unrecognized addr: 0x{:08x}", addr) } } @@ -68,8 +68,8 @@ impl Interconnect { let addr = addr & 0x07ffffff; let addr = addr & 0xfffffffe; match addr { - VIP_START ... VIP_END => self.vip.read_halfword(addr - VIP_START), - VSU_START ... VSU_END => self.vsu.read_halfword(addr - VSU_START), + VIP_START ..= VIP_END => self.vip.read_halfword(addr - VIP_START), + VSU_START ..= VSU_END => self.vsu.read_halfword(addr - VSU_START), CCR => self.com_port.read_ccr() as _, CCSR => self.com_port.read_ccsr() as _, CDTR => self.com_port.read_cdtr() as _, @@ -84,13 +84,13 @@ impl Interconnect { 0 } SCR => self.game_pad.read_scr() as _, - GAME_PAK_EXPANSION_START ... GAME_PAK_EXPANSION_END => { + GAME_PAK_EXPANSION_START ..= GAME_PAK_EXPANSION_END => { logln!(Log::Ic, "WARNING: Read halfword from Game Pak Expansion not yet implemented (addr: 0x{:08x})", addr - GAME_PAK_EXPANSION_START); 0 } - WRAM_START ... WRAM_END => self.wram.read_halfword(addr - WRAM_START), - GAME_PAK_RAM_START ... GAME_PAK_RAM_END => self.sram.read_halfword(addr - GAME_PAK_RAM_START), - GAME_PAK_ROM_START ... GAME_PAK_ROM_END => self.rom.read_halfword(addr - GAME_PAK_ROM_START), + WRAM_START ..= WRAM_END => self.wram.read_halfword(addr - WRAM_START), + GAME_PAK_RAM_START ..= GAME_PAK_RAM_END => self.sram.read_halfword(addr - GAME_PAK_RAM_START), + GAME_PAK_ROM_START ..= GAME_PAK_ROM_END => self.rom.read_halfword(addr - GAME_PAK_ROM_START), _ => panic!("Unrecognized addr: 0x{:08x}", addr) } } @@ -98,8 +98,8 @@ impl Interconnect { pub fn write_byte(&mut self, addr: u32, value: u8) { let addr = addr & 0x07ffffff; match addr { - VIP_START ... VIP_END => self.vip.write_byte(addr - VIP_START, value), - VSU_START ... VSU_END => self.vsu.write_byte(addr - VSU_START, value), + VIP_START ..= VIP_END => self.vip.write_byte(addr - VIP_START, value), + VSU_START ..= VSU_END => self.vsu.write_byte(addr - VSU_START, value), CCR => self.com_port.write_ccr(value), CCSR => self.com_port.write_ccsr(value), CDTR => self.com_port.write_cdtr(value), @@ -121,12 +121,12 @@ impl Interconnect { logln!(Log::Ic, " Game Pak Expansion Waits: {}", if value & 0x02 == 0 { 2 } else { 1 }); } SCR => self.game_pad.write_scr(value), - GAME_PAK_EXPANSION_START ... GAME_PAK_EXPANSION_END => { + GAME_PAK_EXPANSION_START ..= GAME_PAK_EXPANSION_END => { logln!(Log::Ic, "WARNING: Write byte to Game Pak Expansion not yet implemented (addr: 0x{:08x}, value: 0x{:02x})", addr - GAME_PAK_EXPANSION_START, value); } - WRAM_START ... WRAM_END => self.wram.write_byte(addr - WRAM_START, value), - GAME_PAK_RAM_START ... GAME_PAK_RAM_END => self.sram.write_byte(addr - GAME_PAK_RAM_START, value), - GAME_PAK_ROM_START ... GAME_PAK_ROM_END => { + WRAM_START ..= WRAM_END => self.wram.write_byte(addr - WRAM_START, value), + GAME_PAK_RAM_START ..= GAME_PAK_RAM_END => self.sram.write_byte(addr - GAME_PAK_RAM_START, value), + GAME_PAK_ROM_START ..= GAME_PAK_ROM_END => { logln!(Log::Ic, "WARNING: Attempted write to Game Pak ROM at 0x{:08x}", addr - GAME_PAK_ROM_START); } _ => panic!("Unrecognized addr: 0x{:08x}", addr) @@ -137,8 +137,8 @@ impl Interconnect { let addr = addr & 0x07ffffff; let addr = addr & 0xfffffffe; match addr { - VIP_START ... VIP_END => self.vip.write_halfword(addr - VIP_START, value), - VSU_START ... VSU_END => self.vsu.write_halfword(addr - VSU_START, value), + VIP_START ..= VIP_END => self.vip.write_halfword(addr - VIP_START, value), + VSU_START ..= VSU_END => self.vsu.write_halfword(addr - VSU_START, value), CCR => self.com_port.write_ccr(value as _), CCSR => self.com_port.write_ccsr(value as _), CDTR => self.com_port.write_cdtr(value as _), @@ -158,12 +158,12 @@ impl Interconnect { logln!(Log::Ic, "WARNING: Write halfword to WCR not yet implemented (value: 0x{:04x})", value); } SCR => self.game_pad.write_scr(value as _), - GAME_PAK_EXPANSION_START ... GAME_PAK_EXPANSION_END => { + GAME_PAK_EXPANSION_START ..= GAME_PAK_EXPANSION_END => { logln!(Log::Ic, "WARNING: Write halfword to Game Pak Expansion not yet implemented (addr: 0x{:08x}, value: 0x{:04x})", addr - GAME_PAK_EXPANSION_START, value); } - WRAM_START ... WRAM_END => self.wram.write_halfword(addr - WRAM_START, value), - GAME_PAK_RAM_START ... GAME_PAK_RAM_END => self.sram.write_halfword(addr - GAME_PAK_RAM_START, value), - GAME_PAK_ROM_START ... GAME_PAK_ROM_END => { + WRAM_START ..= WRAM_END => self.wram.write_halfword(addr - WRAM_START, value), + GAME_PAK_RAM_START ..= GAME_PAK_RAM_END => self.sram.write_halfword(addr - GAME_PAK_RAM_START, value), + GAME_PAK_ROM_START ..= GAME_PAK_ROM_END => { logln!(Log::Ic, "WARNING: Attempted write to Game Pak ROM at 0x{:08x}", addr - GAME_PAK_ROM_START); } _ => panic!("Unrecognized addr: 0x{:08x}", addr) diff --git a/rustual-boy-core/src/vip/mod.rs b/rustual-boy-core/src/vip/mod.rs index 926368a..fdb1136 100644 --- a/rustual-boy-core/src/vip/mod.rs +++ b/rustual-boy-core/src/vip/mod.rs @@ -214,14 +214,14 @@ impl Vip { pub fn read_byte(&self, addr: u32) -> u8 { let addr = addr & 0x0007ffff; match addr { - VRAM_START ... VRAM_END => self.read_vram_byte(addr - VRAM_START), - CHR_RAM_PATTERN_TABLE_0_MIRROR_START ... CHR_RAM_PATTERN_TABLE_0_MIRROR_END => + VRAM_START ..= VRAM_END => self.read_vram_byte(addr - VRAM_START), + CHR_RAM_PATTERN_TABLE_0_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_0_MIRROR_END => self.read_vram_byte(addr - CHR_RAM_PATTERN_TABLE_0_MIRROR_START + CHR_RAM_PATTERN_TABLE_0_START), - CHR_RAM_PATTERN_TABLE_1_MIRROR_START ... CHR_RAM_PATTERN_TABLE_1_MIRROR_END => + CHR_RAM_PATTERN_TABLE_1_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_1_MIRROR_END => self.read_vram_byte(addr - CHR_RAM_PATTERN_TABLE_1_MIRROR_START + CHR_RAM_PATTERN_TABLE_1_START), - CHR_RAM_PATTERN_TABLE_2_MIRROR_START ... CHR_RAM_PATTERN_TABLE_2_MIRROR_END => + CHR_RAM_PATTERN_TABLE_2_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_2_MIRROR_END => self.read_vram_byte(addr - CHR_RAM_PATTERN_TABLE_2_MIRROR_START + CHR_RAM_PATTERN_TABLE_2_START), - CHR_RAM_PATTERN_TABLE_3_MIRROR_START ... CHR_RAM_PATTERN_TABLE_3_MIRROR_END => + CHR_RAM_PATTERN_TABLE_3_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_3_MIRROR_END => self.read_vram_byte(addr - CHR_RAM_PATTERN_TABLE_3_MIRROR_START + CHR_RAM_PATTERN_TABLE_3_START), _ => { let halfword = self.read_halfword(addr & 0xfffffffe); @@ -237,14 +237,14 @@ impl Vip { pub fn write_byte(&mut self, addr: u32, value: u8) { let addr = addr & 0x0007ffff; match addr { - VRAM_START ... VRAM_END => self.write_vram_byte(addr - VRAM_START, value), - CHR_RAM_PATTERN_TABLE_0_MIRROR_START ... CHR_RAM_PATTERN_TABLE_0_MIRROR_END => + VRAM_START ..= VRAM_END => self.write_vram_byte(addr - VRAM_START, value), + CHR_RAM_PATTERN_TABLE_0_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_0_MIRROR_END => self.write_vram_byte(addr - CHR_RAM_PATTERN_TABLE_0_MIRROR_START + CHR_RAM_PATTERN_TABLE_0_START, value), - CHR_RAM_PATTERN_TABLE_1_MIRROR_START ... CHR_RAM_PATTERN_TABLE_1_MIRROR_END => + CHR_RAM_PATTERN_TABLE_1_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_1_MIRROR_END => self.write_vram_byte(addr - CHR_RAM_PATTERN_TABLE_1_MIRROR_START + CHR_RAM_PATTERN_TABLE_1_START, value), - CHR_RAM_PATTERN_TABLE_2_MIRROR_START ... CHR_RAM_PATTERN_TABLE_2_MIRROR_END => + CHR_RAM_PATTERN_TABLE_2_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_2_MIRROR_END => self.write_vram_byte(addr - CHR_RAM_PATTERN_TABLE_2_MIRROR_START + CHR_RAM_PATTERN_TABLE_2_START, value), - CHR_RAM_PATTERN_TABLE_3_MIRROR_START ... CHR_RAM_PATTERN_TABLE_3_MIRROR_END => + CHR_RAM_PATTERN_TABLE_3_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_3_MIRROR_END => self.write_vram_byte(addr - CHR_RAM_PATTERN_TABLE_3_MIRROR_START + CHR_RAM_PATTERN_TABLE_3_START, value), _ => { let halfword = if (addr & 0x01) == 0 { @@ -261,7 +261,7 @@ impl Vip { let addr = addr & 0x0007ffff; let addr = addr & 0xfffffffe; match addr { - VRAM_START ... VRAM_END => self.read_vram_halfword(addr - VRAM_START), + VRAM_START ..= VRAM_END => self.read_vram_halfword(addr - VRAM_START), INTPND => { logln!(Log::Vip, "WARNING: Read halfword from INTPND not fully implemented"); self.reg_intpnd() @@ -344,13 +344,13 @@ impl Vip { JPLT2 => self.reg_jplt2 as _, JPLT3 => self.reg_jplt3 as _, BKCOL => self.reg_bkcol as _, - CHR_RAM_PATTERN_TABLE_0_MIRROR_START ... CHR_RAM_PATTERN_TABLE_0_MIRROR_END => + CHR_RAM_PATTERN_TABLE_0_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_0_MIRROR_END => self.read_vram_halfword(addr - CHR_RAM_PATTERN_TABLE_0_MIRROR_START + CHR_RAM_PATTERN_TABLE_0_START), - CHR_RAM_PATTERN_TABLE_1_MIRROR_START ... CHR_RAM_PATTERN_TABLE_1_MIRROR_END => + CHR_RAM_PATTERN_TABLE_1_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_1_MIRROR_END => self.read_vram_halfword(addr - CHR_RAM_PATTERN_TABLE_1_MIRROR_START + CHR_RAM_PATTERN_TABLE_1_START), - CHR_RAM_PATTERN_TABLE_2_MIRROR_START ... CHR_RAM_PATTERN_TABLE_2_MIRROR_END => + CHR_RAM_PATTERN_TABLE_2_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_2_MIRROR_END => self.read_vram_halfword(addr - CHR_RAM_PATTERN_TABLE_2_MIRROR_START + CHR_RAM_PATTERN_TABLE_2_START), - CHR_RAM_PATTERN_TABLE_3_MIRROR_START ... CHR_RAM_PATTERN_TABLE_3_MIRROR_END => + CHR_RAM_PATTERN_TABLE_3_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_3_MIRROR_END => self.read_vram_halfword(addr - CHR_RAM_PATTERN_TABLE_3_MIRROR_START + CHR_RAM_PATTERN_TABLE_3_START), _ => { logln!(Log::Vip, "WARNING: Attempted read halfword from unrecognized VIP address (addr: 0x{:08x})", addr); @@ -363,7 +363,7 @@ impl Vip { let addr = addr & 0x0007ffff; let addr = addr & 0xfffffffe; match addr { - VRAM_START ... VRAM_END => self.write_vram_halfword(addr - VRAM_START, value), + VRAM_START ..= VRAM_END => self.write_vram_halfword(addr - VRAM_START, value), INTPND => { logln!(Log::Vip, "WARNING: Attempted write halfword to Interrupt Pending Reg"); } @@ -466,13 +466,13 @@ impl Vip { JPLT2 => self.reg_jplt2 = value as _, JPLT3 => self.reg_jplt3 = value as _, BKCOL => self.reg_bkcol = (value & 0x03) as _, - CHR_RAM_PATTERN_TABLE_0_MIRROR_START ... CHR_RAM_PATTERN_TABLE_0_MIRROR_END => + CHR_RAM_PATTERN_TABLE_0_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_0_MIRROR_END => self.write_vram_halfword(addr - CHR_RAM_PATTERN_TABLE_0_MIRROR_START + CHR_RAM_PATTERN_TABLE_0_START, value), - CHR_RAM_PATTERN_TABLE_1_MIRROR_START ... CHR_RAM_PATTERN_TABLE_1_MIRROR_END => + CHR_RAM_PATTERN_TABLE_1_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_1_MIRROR_END => self.write_vram_halfword(addr - CHR_RAM_PATTERN_TABLE_1_MIRROR_START + CHR_RAM_PATTERN_TABLE_1_START, value), - CHR_RAM_PATTERN_TABLE_2_MIRROR_START ... CHR_RAM_PATTERN_TABLE_2_MIRROR_END => + CHR_RAM_PATTERN_TABLE_2_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_2_MIRROR_END => self.write_vram_halfword(addr - CHR_RAM_PATTERN_TABLE_2_MIRROR_START + CHR_RAM_PATTERN_TABLE_2_START, value), - CHR_RAM_PATTERN_TABLE_3_MIRROR_START ... CHR_RAM_PATTERN_TABLE_3_MIRROR_END => + CHR_RAM_PATTERN_TABLE_3_MIRROR_START ..= CHR_RAM_PATTERN_TABLE_3_MIRROR_END => self.write_vram_halfword(addr - CHR_RAM_PATTERN_TABLE_3_MIRROR_START + CHR_RAM_PATTERN_TABLE_3_START, value), _ => { logln!(Log::Vip, "WARNING: Attempted write halfword to unrecognized VIP address (addr: 0x{:08x}, value: 0x{:04x})", addr, value); diff --git a/rustual-boy-core/src/vsu/mod.rs b/rustual-boy-core/src/vsu/mod.rs index ff94bba..57f5001 100644 --- a/rustual-boy-core/src/vsu/mod.rs +++ b/rustual-boy-core/src/vsu/mod.rs @@ -530,32 +530,32 @@ impl Vsu { pub fn write_byte(&mut self, addr: u32, value: u8) { match addr { - WAVEFORM_DATA_0_START ... WAVEFORM_DATA_0_END => { + WAVEFORM_DATA_0_START ..= WAVEFORM_DATA_0_END => { if !self.are_channels_active() { self.waveform_data[((addr - WAVEFORM_DATA_0_START) / 4 + 0x00) as usize] = value & 0x3f; } } - WAVEFORM_DATA_1_START ... WAVEFORM_DATA_1_END => { + WAVEFORM_DATA_1_START ..= WAVEFORM_DATA_1_END => { if !self.are_channels_active() { self.waveform_data[((addr - WAVEFORM_DATA_1_START) / 4 + 0x20) as usize] = value & 0x3f; } } - WAVEFORM_DATA_2_START ... WAVEFORM_DATA_2_END => { + WAVEFORM_DATA_2_START ..= WAVEFORM_DATA_2_END => { if !self.are_channels_active() { self.waveform_data[((addr - WAVEFORM_DATA_2_START) / 4 + 0x40) as usize] = value & 0x3f; } } - WAVEFORM_DATA_3_START ... WAVEFORM_DATA_3_END => { + WAVEFORM_DATA_3_START ..= WAVEFORM_DATA_3_END => { if !self.are_channels_active() { self.waveform_data[((addr - WAVEFORM_DATA_3_START) / 4 + 0x60) as usize] = value & 0x3f; } } - WAVEFORM_DATA_4_START ... WAVEFORM_DATA_4_END => { + WAVEFORM_DATA_4_START ..= WAVEFORM_DATA_4_END => { if !self.are_channels_active() { self.waveform_data[((addr - WAVEFORM_DATA_4_START) / 4 + 0x80) as usize] = value & 0x3f; } } - MOD_DATA_START ... MOD_DATA_END => { + MOD_DATA_START ..= MOD_DATA_END => { if !self.are_channels_active() { self.mod_data[((addr - MOD_DATA_START) / 4) as usize] = value as _; } From 8358b2fa3f8a4e0cf7cda137e2c49d173d54dbc9 Mon Sep 17 00:00:00 2001 From: Zachary Dremann Date: Mon, 13 Jul 2020 22:01:08 -0400 Subject: [PATCH 10/13] Use dyn for trait objects --- rustual-boy-cli/src/command.rs | 6 +++--- rustual-boy-cli/src/cpal_driver.rs | 6 +++--- rustual-boy-cli/src/emulator.rs | 12 ++++++------ rustual-boy-core/src/interconnect.rs | 2 +- rustual-boy-core/src/vip/mod.rs | 4 ++-- rustual-boy-core/src/virtual_boy.rs | 2 +- rustual-boy-core/src/vsu/mod.rs | 4 ++-- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/rustual-boy-cli/src/command.rs b/rustual-boy-cli/src/command.rs index c847588..4d2fa91 100644 --- a/rustual-boy-cli/src/command.rs +++ b/rustual-boy-cli/src/command.rs @@ -171,13 +171,13 @@ fn command>(input: I) -> ParseResult { .parse_stream(input) } -fn u32_<'a, I: Stream + 'a>() -> Box + 'a> { +fn u32_<'a, I: Stream + 'a>() -> Box + 'a> { many1(digit()) .and_then(|s: String| s.parse::()) .boxed() } -fn u32_hex<'a, I: Stream + 'a>() -> Box + 'a> { +fn u32_hex<'a, I: Stream + 'a>() -> Box + 'a> { let hex_prefix = choice([try(string("0x")), try(string("$"))]); (optional(hex_prefix), many1(hex_digit())) .map(|x| x.1) @@ -185,6 +185,6 @@ fn u32_hex<'a, I: Stream + 'a>() -> Box + .boxed() } -fn label_name<'a, I: Stream + 'a>() -> Box + 'a> { +fn label_name<'a, I: Stream + 'a>() -> Box + 'a> { many1::(alpha_num()).boxed() } diff --git a/rustual-boy-cli/src/cpal_driver.rs b/rustual-boy-cli/src/cpal_driver.rs index c18a71c..27012b9 100644 --- a/rustual-boy-cli/src/cpal_driver.rs +++ b/rustual-boy-cli/src/cpal_driver.rs @@ -184,13 +184,13 @@ impl CpalDriver { }) } - pub fn sink(&self) -> Box> { + pub fn sink(&self) -> Box> { Box::new(CpalDriverBufferSink { ring_buffer: self.ring_buffer.clone(), }) } - pub fn time_source(&self) -> Box { + pub fn time_source(&self) -> Box { Box::new(CpalDriverTimeSource { ring_buffer: self.ring_buffer.clone(), sample_rate: self.sample_rate, @@ -235,7 +235,7 @@ impl LinearResampler { } } - fn next(&mut self, input: &mut Iterator) -> i16 { + fn next(&mut self, input: &mut dyn Iterator) -> i16 { fn interpolate(a: i16, b: i16, num: u32, denom: u32) -> i16 { (((a as i32) * ((denom - num) as i32) + (b as i32) * (num as i32)) / (denom as i32)) as _ } diff --git a/rustual-boy-cli/src/emulator.rs b/rustual-boy-cli/src/emulator.rs index d2d6c88..5861020 100644 --- a/rustual-boy-cli/src/emulator.rs +++ b/rustual-boy-cli/src/emulator.rs @@ -51,16 +51,16 @@ pub struct Emulator { stdin_receiver: Receiver, _stdin_thread: JoinHandle<()>, - audio_buffer_sink: Box>, + audio_buffer_sink: Box>, - time_source: Box, + time_source: Box, time_source_start_time_ns: u64, emulated_cycles: u64, } impl Emulator { - pub fn new(rom: Rom, sram: Sram, audio_buffer_sink: Box>, time_source: Box) -> Emulator { + pub fn new(rom: Rom, sram: Sram, audio_buffer_sink: Box>, time_source: Box) -> Emulator { let (stdin_sender, stdin_receiver) = channel(); let stdin_thread = thread::spawn(move || { loop { @@ -145,7 +145,7 @@ impl Emulator { if let Some(frame) = video_frame_sink.into_inner().into_inner().into_inner() { let frame: Vec = frame.into_iter().map(|x| x.into()).collect(); - self.window.update_with_buffer(&frame, 384, 224); + self.window.update_with_buffer(&frame, 384, 224).unwrap(); if self.mode == Mode::Running { // We only want to update the key state when a frame is actually pushed @@ -163,7 +163,7 @@ impl Emulator { } } - fn step(&mut self, video_frame_sink: &mut Sink, audio_frame_sink: &mut Sink) -> (u32, bool) { + fn step(&mut self, video_frame_sink: &mut dyn Sink, audio_frame_sink: &mut dyn Sink) -> (u32, bool) { let ret = self.virtual_boy.step(video_frame_sink, audio_frame_sink); self.emulated_cycles += ret.0 as u64; @@ -197,7 +197,7 @@ impl Emulator { self.print_cursor(); } - fn run_debugger_commands(&mut self, video_frame_sink: &mut Sink, audio_frame_sink: &mut Sink) -> bool { + fn run_debugger_commands(&mut self, video_frame_sink: &mut dyn Sink, audio_frame_sink: &mut dyn Sink) -> bool { while let Ok(command_string) = self.stdin_receiver.try_recv() { let command = match (command_string.parse(), self.last_command.clone()) { (Ok(Command::Repeat), Some(c)) => Ok(c), diff --git a/rustual-boy-core/src/interconnect.rs b/rustual-boy-core/src/interconnect.rs index 0a785ca..c84d4d4 100644 --- a/rustual-boy-core/src/interconnect.rs +++ b/rustual-boy-core/src/interconnect.rs @@ -170,7 +170,7 @@ impl Interconnect { } } - pub fn cycles(&mut self, cycles: u32, video_frame_sink: &mut Sink, audio_frame_sink: &mut Sink) -> Option { + pub fn cycles(&mut self, cycles: u32, video_frame_sink: &mut dyn Sink, audio_frame_sink: &mut dyn Sink) -> Option { let mut interrupt = None; if self.timer.cycles(cycles) { diff --git a/rustual-boy-core/src/vip/mod.rs b/rustual-boy-core/src/vip/mod.rs index fdb1136..312c6e8 100644 --- a/rustual-boy-core/src/vip/mod.rs +++ b/rustual-boy-core/src/vip/mod.rs @@ -506,7 +506,7 @@ impl Vip { } } - pub fn cycles(&mut self, cycles: u32, video_frame_sink: &mut Sink) -> bool { + pub fn cycles(&mut self, cycles: u32, video_frame_sink: &mut dyn Sink) -> bool { for _ in 0..cycles { self.display_frame_eighth_clock_counter += 1; if self.display_frame_eighth_clock_counter >= DISPLAY_FRAME_EIGHTH_PERIOD { @@ -1083,7 +1083,7 @@ impl Vip { self.write_vram_byte(framebuffer_offset + framebuffer_byte_index, framebuffer_byte); } - fn display(&mut self, video_frame_sink: &mut Sink) { + fn display(&mut self, video_frame_sink: &mut dyn Sink) { let left_framebuffer_offset = if self.display_first_framebuffers { 0x00000000 } else { 0x00008000 }; let right_framebuffer_offset = left_framebuffer_offset + 0x00010000; diff --git a/rustual-boy-core/src/virtual_boy.rs b/rustual-boy-core/src/virtual_boy.rs index 7812fc1..1b88079 100644 --- a/rustual-boy-core/src/virtual_boy.rs +++ b/rustual-boy-core/src/virtual_boy.rs @@ -17,7 +17,7 @@ impl VirtualBoy { } } - pub fn step(&mut self, video_frame_sink: &mut Sink, audio_frame_sink: &mut Sink) -> (u32, bool) { + pub fn step(&mut self, video_frame_sink: &mut dyn Sink, audio_frame_sink: &mut dyn Sink) -> (u32, bool) { let ret = self.cpu.step(&mut self.interconnect); if let Some(exception_code) = self.interconnect.cycles(ret.0, video_frame_sink, audio_frame_sink) { diff --git a/rustual-boy-core/src/vsu/mod.rs b/rustual-boy-core/src/vsu/mod.rs index 57f5001..22b0af5 100644 --- a/rustual-boy-core/src/vsu/mod.rs +++ b/rustual-boy-core/src/vsu/mod.rs @@ -627,7 +627,7 @@ impl Vsu { self.write_byte(addr, value as _); } - pub fn cycles(&mut self, num_cycles: u32, audio_frame_sink: &mut Sink) { + pub fn cycles(&mut self, num_cycles: u32, audio_frame_sink: &mut dyn Sink) { for _ in 0..num_cycles { self.duration_clock_counter += 1; if self.duration_clock_counter >= DURATION_CLOCK_PERIOD { @@ -691,7 +691,7 @@ impl Vsu { } } - fn sample_clock(&mut self, audio_frame_sink: &mut Sink) { + fn sample_clock(&mut self, audio_frame_sink: &mut dyn Sink) { let mut acc_left = 0; let mut acc_right = 0; From b0fb5d035ea706e3f08fc04357fcaf0c6c158172 Mon Sep 17 00:00:00 2001 From: Zachary Dremann Date: Fri, 17 Jul 2020 01:29:25 -0400 Subject: [PATCH 11/13] Avoid tyvar_behind_raw_pointer --- rustual-boy-middleware/src/anaglyphizer.rs | 2 +- rustual-boy-middleware/src/gamma_adjust_sink.rs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/rustual-boy-middleware/src/anaglyphizer.rs b/rustual-boy-middleware/src/anaglyphizer.rs index 5749968..84df885 100644 --- a/rustual-boy-middleware/src/anaglyphizer.rs +++ b/rustual-boy-middleware/src/anaglyphizer.rs @@ -40,7 +40,7 @@ impl> Sink for Anaglyphizer { let l_buffer = l_buffer.as_ptr(); let r_buffer = r_buffer.as_ptr(); { - let o_ptr = output.as_mut_ptr(); + let o_ptr: *mut Color = output.as_mut_ptr(); for i in 0..(DISPLAY_PIXELS as isize) { let l = *(l_buffer.offset(i)); let r = *(r_buffer.offset(i)); diff --git a/rustual-boy-middleware/src/gamma_adjust_sink.rs b/rustual-boy-middleware/src/gamma_adjust_sink.rs index 103450f..2895bbb 100644 --- a/rustual-boy-middleware/src/gamma_adjust_sink.rs +++ b/rustual-boy-middleware/src/gamma_adjust_sink.rs @@ -1,3 +1,4 @@ +use color::Color; use color_frame::ColorFrame; use rustual_boy_core::sinks::Sink; use rustual_boy_core::vip::DISPLAY_PIXELS; @@ -47,7 +48,7 @@ impl> Sink for GammaAdjustSink { unsafe { let input_buffer_ptr = frame.as_ptr(); { - let output_buffer_ptr = output.as_mut_ptr(); + let output_buffer_ptr: *mut Color = output.as_mut_ptr(); for i in 0..(DISPLAY_PIXELS as isize) { let ref input = *(input_buffer_ptr.offset(i)); let (input_r, input_g, input_b) = input.into(); From 369e22d9831d9bdd02526847b2d5769d5a8ea8e8 Mon Sep 17 00:00:00 2001 From: Zachary Dremann Date: Fri, 17 Jul 2020 01:33:09 -0400 Subject: [PATCH 12/13] Avoid deprecation warning caused by clap's macro the `crate_authors!("seperator")` macro call uses `std::sync::ONCE_INIT`, which gets flagged as a deprecated API use. We can just do what it does ourselves. --- rustual-boy-cli/src/argparse.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rustual-boy-cli/src/argparse.rs b/rustual-boy-cli/src/argparse.rs index 883c664..7f4b22a 100644 --- a/rustual-boy-cli/src/argparse.rs +++ b/rustual-boy-cli/src/argparse.rs @@ -6,9 +6,12 @@ pub struct CommandLineConfig { } pub fn parse_args() -> CommandLineConfig { + // This should be doable with `crate_authors!(", ")`, but clap is using a deprecated API in that call, + // so we do it ourselves. + let crate_authors = crate_authors!().replace(":", ", "); let app = App::new("Rustual Boy") .version("0.2.0") - .author(crate_authors!(", ")) + .author(&crate_authors[..]) .about("A CLI frontend to the Rustual Boy emulator") .arg(Arg::with_name("ROM") .help("The name of the ROM to load") From 94b95e1a03537c096b66319689aa0ac72e7d5e8d Mon Sep 17 00:00:00 2001 From: Zachary Dremann Date: Fri, 17 Jul 2020 02:13:55 -0400 Subject: [PATCH 13/13] Bump serde_bytes version --- Cargo.lock | 6 +++--- rustual-boy-serialization/Cargo.toml | 2 +- rustual-boy-serialization/src/serde_ibytes.rs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a7887fd..456ebc1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -758,7 +758,7 @@ dependencies = [ "bincode 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "rustual-boy-core 0.1.0", "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_bytes 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_bytes 0.11.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -814,7 +814,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde_bytes" -version = "0.10.5" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1228,7 +1228,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)" = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3" -"checksum serde_bytes 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)" = "defbb8a83d7f34cc8380751eeb892b825944222888aff18996ea7901f24aec88" +"checksum serde_bytes 0.11.5 (registry+https://github.com/rust-lang/crates.io-index)" = "16ae07dd2f88a366f15bd0632ba725227018c69a1c8550a927324f8eb8368bb9" "checksum serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)" = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e" "checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" "checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" diff --git a/rustual-boy-serialization/Cargo.toml b/rustual-boy-serialization/Cargo.toml index a03a9b4..104f38c 100644 --- a/rustual-boy-serialization/Cargo.toml +++ b/rustual-boy-serialization/Cargo.toml @@ -7,5 +7,5 @@ authors = ["ferris "] rustual-boy-core = { path="../rustual-boy-core" } serde = "1.0" serde_derive = "1.0" -serde_bytes="0.10" +serde_bytes = "0.11" bincode = "1.0" diff --git a/rustual-boy-serialization/src/serde_ibytes.rs b/rustual-boy-serialization/src/serde_ibytes.rs index 7d3d377..7f70791 100755 --- a/rustual-boy-serialization/src/serde_ibytes.rs +++ b/rustual-boy-serialization/src/serde_ibytes.rs @@ -7,7 +7,7 @@ pub fn deserialize<'de, T, D>(deserializer: D) -> Result D: Deserializer<'de> { ByteBuf::deserialize(deserializer).map(|buf| { - let mut u8_v: Vec = buf.into(); + let mut u8_v: Vec = buf.into_vec(); let i8_v = unsafe { Vec::from_raw_parts(