Comments (3)
Hello @qguv !
I haven't been able to get it to show any OAM entries though. Sprites simply won't draw. I could be missing some initialization that wasmboy expects, but the ROM runs correctly on hardware (DMG-01) and bgb (GB and GBC modes).
Oh yeah that's quite odd! I took a look in the OAM viewer in my debugger and found that the OAM doesn't have your sprite in it
Though it does look like I'm interpreting the right LCDC:
Though keeping it real, I've been super busy lately, but working on WasmBoy has definitely been on my todo list. I've been working on a graphics rewrite which completely changes how I handles sprites so that might fix it :o That being said in the meantime, I don't have an estimate when I'll be able to fix that, I'd also reccomend trying binjgb: https://github.com/binji/binjgb It doesn't have a lot of easy embed options, but it's super accurate and also runs in the web
Let me know if that helps! Thanks!
from wasmboy.
Wow, thanks for your detailed response!
I went on a deep dive this weekend and discovered PPU modesβnamely that I wasn't being careful enough to make sure I was only writing to OAM RAM at the appropriate times. I updated everything to only write there during vblank (mode 1) and the new version runs great on its embed page.
I guess it was only working on hardware and other emulators because of favorable timing or because those emulators aren't forbidding OAM RAM writes outright during PPU modes 2 and 3. So I suppose this is technically a bug, but not one likely to affect anything other than very very early drafts of homebrew ROMs.
from wasmboy.
@qguv You are welcome!
I went on a deep dive this weekend and discovered PPU modesβnamely that I wasn't being careful enough to make sure I was only writing to OAM RAM at the appropriate times. I updated everything to only write there during vblank (mode 1) and the new version runs great on its embed page.
Ah yeah! So that's a tradeoff I had to make as an emudev
But either way I'm glad you were able to figure it out! If you do plan to use WasmBoy going forward, I do feel it works like 9 / 10 of the time haha! The debugger is a good, easy place to figure out any weird behavior (either for the game, or the emulator itself). Especially while I haven't had as much time to dedicate to the project
I guess it was only working on hardware and other emulators because of favorable timing or because those emulators aren't forbidding OAM RAM writes outright during PPU modes 2 and 3. So I suppose this is technically a bug, but not one likely to affect anything other than very very early drafts of homebrew ROMs.
Ah! So I am like 99% sure they do, but I think the timing on mine might be very slightly off or something. I'll probably take the time at some point to step through that version of your ROM with bgb and WasmBoy to figure out where I'm getting some weird behavior down the line
Let's keep this issue open as a TODO item to investigate / fix this for other early ROMs
from wasmboy.
Related Issues (20)
- Refactor Workers to use Comlink
- Firefox Benchmark TypeScript FPS wrong / halved? HOT 3
- Save States in QR Codes?
- Rewrite the core
- "TypeError: idbKeyval.get is not a function" when attempting to save state in headless mode HOT 6
- Check if arrays are typed for the Transferable when loading states
- Create an easy to embed iframe from other sites HOT 1
- Implement FullScreen & Mobile Controls for the Iframe Embed HOT 2
- Look into adding SIMD Support
- No Audio output on Linux (pulseaudio) HOT 1
- setJoypadState not working HOT 2
- TypeError: failed to fetch HOT 2
- More debugging / hacking functionality HOT 4
- Larger canvas sizes with same aspect ratio HOT 2
- Serialize classes for save states using ason
- LCDC should be initialised with BG on HOT 3
- useGbcWhenAvailable / useGbcWhenOptional is not working HOT 1
- Multiple instances HOT 2
- SRAM HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wasmboy.