Skip to content
Snippets Groups Projects
Verified Commit 0fa80392 authored by João Magalhães's avatar João Magalhães :rocket:
Browse files

feat: more changes

parent d5725652
No related branches found
No related tags found
1 merge request!8Support for react.js components
Pipeline #1051 passed
......@@ -2,6 +2,8 @@
A Game Boy emulator that is written in Rust 🦀.
**This emulator has been written for educational purposes and shouldn't be taken to seriously.** But yeahh it plays games... 🎮
## Build
### WASM for Node.js
......
......@@ -205,11 +205,11 @@ impl GameBoy {
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(js_namespace = window)]
fn panic(s: &str);
fn panic(message: &str);
}
#[cfg(feature = "wasm")]
pub fn hook_impl(info: &PanicInfo) {
let msg = info.to_string();
panic(msg.as_str());
let message = info.to_string();
panic(message.as_str());
}
......@@ -45,9 +45,9 @@ pub enum RomType {
Unknown = 0xef,
}
impl Display for RomType {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
let str = match self {
impl RomType {
pub fn description(&self) -> &'static str {
match self {
RomType::RomOnly => "ROM Only",
RomType::Mbc1 => "MBC1",
RomType::Mbc1Ram => "MBC1 + RAM",
......@@ -77,8 +77,13 @@ impl Display for RomType {
RomType::HuC3 => "HuC3",
RomType::HuC1RamBattery => "HuC1 + RAM + BATTERY",
RomType::Unknown => "Unknown",
};
write!(f, "{}", str)
}
}
}
impl Display for RomType {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
write!(f, "{}", self.description())
}
}
......@@ -97,6 +102,21 @@ pub enum RomSize {
}
impl RomSize {
pub fn description(&self) -> &'static str {
match self {
RomSize::Size32K => "32 KB",
RomSize::Size64K => "64 KB",
RomSize::Size128K => "128 KB",
RomSize::Size256K => "256 KB",
RomSize::Size512K => "512 KB",
RomSize::Size1M => "1 MB",
RomSize::Size2M => "2 MB",
RomSize::Size4M => "4 MB",
RomSize::Size8M => "8 MB",
RomSize::SizeUnknown => "Unknown",
}
}
pub fn rom_banks(&self) -> u16 {
match self {
RomSize::Size32K => 2,
......@@ -115,19 +135,7 @@ impl RomSize {
impl Display for RomSize {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
let str = match self {
RomSize::Size32K => "32 KB",
RomSize::Size64K => "64 KB",
RomSize::Size128K => "128 KB",
RomSize::Size256K => "256 KB",
RomSize::Size512K => "512 KB",
RomSize::Size1M => "1 MB",
RomSize::Size2M => "2 MB",
RomSize::Size4M => "4 MB",
RomSize::Size8M => "8 MB",
RomSize::SizeUnknown => "Unknown",
};
write!(f, "{}", str)
write!(f, "{}", self.description())
}
}
......@@ -143,6 +151,18 @@ pub enum RamSize {
}
impl RamSize {
pub fn description(&self) -> &'static str {
match self {
RamSize::NoRam => "No RAM",
RamSize::Unused => "Unused",
RamSize::Size8K => "8 KB",
RamSize::Size32K => "32 KB",
RamSize::Size128K => "128 KB",
RamSize::Size64K => "64 KB",
RamSize::SizeUnknown => "Unknown",
}
}
pub fn ram_banks(&self) -> u16 {
match self {
RamSize::NoRam => 0,
......@@ -158,16 +178,7 @@ impl RamSize {
impl Display for RamSize {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
let str = match self {
RamSize::NoRam => "No RAM",
RamSize::Unused => "Unused",
RamSize::Size8K => "8 KB",
RamSize::Size32K => "32 KB",
RamSize::Size128K => "128 KB",
RamSize::Size64K => "64 KB",
RamSize::SizeUnknown => "Unknown",
};
write!(f, "{}", str)
write!(f, "{}", self.description())
}
}
......@@ -376,6 +387,18 @@ impl Cartridge {
_ => RamSize::SizeUnknown,
}
}
pub fn rom_type_s(&self) -> String {
String::from(self.rom_type().description())
}
pub fn rom_size_s(&self) -> String {
String::from(self.rom_size().description())
}
pub fn ram_size_s(&self) -> String {
String::from(self.ram_size().description())
}
}
impl Display for Cartridge {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment