rynorris / nes Goto Github PK
View Code? Open in Web Editor NEWNES emulator written in Rust
License: MIT License
NES emulator written in Rust
License: MIT License
Proper debugger features:
Visual scroll glitches on title screen and crashes when trying to start the game.
Looks like some kind of scroll split issue, maybe sprite 0-hit related.
The top 10 most common mappers according to nescartdb:
Implementing all of these would get us to 2127 / 2418 games supported (88%).
Hangs at startup.
This seems to be different to the 0-hit timing issues most people talk about since I'm hanging way before anything even even drawn to the screen!
There's so much wrong with this I'm not sure where to start.
We're failing to swap tile banks half way down the screen, the palettes are messed up, and the music is just a high-pitched squeal.
For the tile banks one my best guess is that we're failing to trigger sprite 0-hit. For the other things, no idea, could be a cascade effect?
Never got round to this before.
Supported:
The snare in the background music of stage 1 is not playing. The other DMC samples play fine.
That's a pretty weirdly isolated issue, I haven't noticed any audio problems anywhere else.
The game seems fine up until the second level, and then around halfway through it totally freezes up and stops accepting controller input.
Also if you run into walls it can freeze in the same way. Very weird.
Right now my MMC3 implementation only finds the value of the A12 line whenever the PPU reads from the mapper.
Technically it should just know the actual state of A12 at all times, otherwise the counter won't decrement because of writes to PPUADDR.
I need to refactor slightly so that the MMC3 can have direct access to the value of ppu.v
somehow.
Stuff to store
Format
Thinking about going with JSON, with base64 encoded blobs for the memory dumps.
Or perhaps a binary format like msgpack?
I consider this pretty low priority since it's kind of a lot of work, and essentially no games use them.
We should (optionally) properly emulate the NTSC aspect ratio and overscan.
This will hide some artifacts developers intentionally put at the top/bottom of the screen.
https://wiki.nesdev.com/w/index.php/Overscan#For_emulator_developers
I just got to the game over screen on ninja gaiden, and hit reset, but nothing happened and the emulator was stuck on the game over screen forever.
I saw something similar in Contra before.
My reset handling must not be quite right I guess?
Crashes at boot with 'Unknown opcode: 2'
.
Guess we must have a CPU bug still hiding somewhere? Probably it's not actually expecting to use the undocumented opcodes.
Probably have to add an NTSC encoder + decoder to make this look authentic. Encode into 8 samples per pixel, and decode using 12.
Like we have the PPU debug panel, it would be cool to have an APU debug panel to show the current state of the various APU components to help debug sound issues.
Ideas:
Would be nice to have a debug mode that displays a page of memory (from the CPU's perspective).
Would need some input scheme to switch between pages.
Self explanatory.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.