Compare commits

..
4 Commits
Author SHA1 Message Date
SonicSwordcane efcffed848 chore: Release lemur version 0.9.1 2025-09-06 10:32:02 -04:00
SonicSwordcane 58bb34e3cc Add elf/isx to file picker 2025-09-06 10:22:17 -04:00
SonicSwordcane 132d494cc2 Delete profiles before overwriting 2025-09-06 10:13:09 -04:00
SonicSwordcane 30ee8c06f7 Fix off-by-one errors 2025-09-06 09:57:37 -04:00
5 changed files with 7 additions and 4 deletions
Generated
+1 -1
View File
@@ -2165,7 +2165,7 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]] [[package]]
name = "lemur" name = "lemur"
version = "0.9.0" version = "0.9.1"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"atoi", "atoi",
+1 -1
View File
@@ -4,7 +4,7 @@ description = "An emulator for the Virtual Boy."
repository = "https://git.virtual-boy.com/PVB/lemur" repository = "https://git.virtual-boy.com/PVB/lemur"
publish = false publish = false
license = "MIT" license = "MIT"
version = "0.9.0" version = "0.9.1"
edition = "2024" edition = "2024"
[dependencies] [dependencies]
+2 -2
View File
@@ -154,14 +154,14 @@ fn extract_isx_symbols(input: &[u8]) -> Option<Vec<Symbol>> {
// Range (Virtual Boy) // Range (Virtual Boy)
let count_bytes; let count_bytes;
(count_bytes, buf) = buf.split_first_chunk()?; (count_bytes, buf) = buf.split_first_chunk()?;
let count = u16::from_le_bytes(*count_bytes) + 1; let count = u16::from_le_bytes(*count_bytes);
(_, buf) = buf.split_at_checked(count as usize * 9)?; (_, buf) = buf.split_at_checked(count as usize * 9)?;
} }
0x14 => { 0x14 => {
// Symbol (Virtual Boy) // Symbol (Virtual Boy)
let count_bytes; let count_bytes;
(count_bytes, buf) = buf.split_first_chunk()?; (count_bytes, buf) = buf.split_first_chunk()?;
let count = u16::from_le_bytes(*count_bytes) + 1; let count = u16::from_le_bytes(*count_bytes);
for _ in 0..count { for _ in 0..count {
let name_len; let name_len;
(name_len, buf) = buf.split_first()?; (name_len, buf) = buf.split_first()?;
+2
View File
@@ -88,6 +88,7 @@ impl GameWindow {
Command::OpenRom => { Command::OpenRom => {
let rom = rfd::FileDialog::new() let rom = rfd::FileDialog::new()
.add_filter("Virtual Boy ROMs", &["vb", "vbrom"]) .add_filter("Virtual Boy ROMs", &["vb", "vbrom"])
.add_filter("Executable files", &["", "elf", "isx"])
.pick_file(); .pick_file();
if let Some(path) = rom { if let Some(path) = rom {
self.client self.client
@@ -140,6 +141,7 @@ impl GameWindow {
{ {
let rom = rfd::FileDialog::new() let rom = rfd::FileDialog::new()
.add_filter("Virtual Boy ROMs", &["vb", "vbrom"]) .add_filter("Virtual Boy ROMs", &["vb", "vbrom"])
.add_filter("Executable files", &["", "elf", "isx"])
.pick_file(); .pick_file();
if let Some(path) = rom { if let Some(path) = rom {
self.client self.client
+1
View File
@@ -65,6 +65,7 @@ impl ProfileWindow {
.save_file(); .save_file();
if let Some(path) = file { if let Some(path) = file {
let bytes = pollster::block_on(bytes_receiver)?; let bytes = pollster::block_on(bytes_receiver)?;
let _ = fs::remove_file(&path);
fs::write(&path, bytes)?; fs::write(&path, bytes)?;
Ok(Some(path.display().to_string())) Ok(Some(path.display().to_string()))
} else { } else {