Comments (11)
I did a valgrind run, doesn't reveal more than the gdb backtrace. Valgrind also shows that the yaml
crate used by the emulator is unsound, but that's out of the scope of this issue.
from rustboyadvance-ng.
It's crashing on trying to read BIOS address 00950209
.
from rustboyadvance-ng.
Could be open-bus related ?
from rustboyadvance-ng.
I tested it, open-bus seems to solve this one too with that new if addr > 0x3fff
check.
from rustboyadvance-ng.
So I guess that it will be solved after #109 is merged
from rustboyadvance-ng.
Looks like there are still segfaults in other places after open-bus (crashing 16-bit writes to I think I'll investigate them later in an another issue.iodev
).
from rustboyadvance-ng.
For starters, we could replace all get_unchecked
to get sensible panics instead of segfaults.
(I only put these to avoid size checks at runtime)
from rustboyadvance-ng.
Or change them conditionally with #[cfg(debug_assertions)]
so release builds doesn't get a performance hit.
from rustboyadvance-ng.
Well I found out why I was getting segfaults on the open-bus branch. I was an idiot and forgot to call gba.init();
in my test bench. Everything works flawlessly when things are initialized. The constructor of GameBoyAdvance
could benefit from some more defensive approach to initialization to avoid mistakes like that (builder pattern or calling .init()
in ::new()
, etc.).
from rustboyadvance-ng.
Oh yeah, that's what I meant that the branch isn't polished. the .init()
thing is a dirty hack I'll get around when I merge this.
Since moving to pointer territory I get reminded why I hate modern compilers.
Calling Gba::init (which basically passes its pointer to SysBus) inside Gba::new isn't working (at least in windows), since the compiler moves the Gba allocation after returning from Gba::new
, so the pointer is made stale.
Is there a way to pass weak references to owned structs in rust that doesn't involve completely redesigning the project?
from rustboyadvance-ng.
fixed in c8d5094
from rustboyadvance-ng.
Related Issues (20)
- Dragon Ball Z: Supersonic Warriors - Sprite ordering issues HOT 1
- Missing forced blanking implementation HOT 1
- Games panicking with 'forbidden DMA source address adjustment' HOT 2
- Panic on invalid CPU modes HOT 2
- Mary-Kate and Ashley Sweet 16 - invalid arm condition HOT 2
- WWF Road to WrestleMania - Invalid mode 6 graphics mode HOT 4
- Pokémon GBA Video cartridges - Garbage sprites at the top left corner HOT 7
- NFL Blitz 20-02 (USA) - Glitch
- Happy Feet (USA) - Flickering corrupt graphics HOT 6
- Drake & Josh (USA) - Flickering corrupt graphics HOT 4
- Android Loading of snapshot not working HOT 5
- Audio cracking issue on Android in turbo mode HOT 4
- Golden Sun - The Lost Age - Sprite glitch HOT 2
- The Game will stop HOT 5
- Android application HOT 7
- "attempt to subtract with overflow" when rendering second frame HOT 3
- Will not compile with cargo build --release HOT 2
- Panic - attempt to subtract with overflow
- Building on macOS arm64
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 rustboyadvance-ng.