Comments (1)
I suspect this comes from javidx using the 6502 information, instead of actual NES hardware specifications. For anyone else coding an NES emulator and following along, you want docs for the 2a03(2a07 for PAL regions) chipset, which is a modified 6502 specific to the NES.
See here: http://wiki.nesdev.com/w/index.php/CPU_ALL for a lot of information.
Edit: added pal chip number
Edit2: upon further reading of the opcodes and registers, the U flag is expected to always be high (1) so it in fact should be added incase a rom checks this for some reason. There are also interupts that set B, and that all the opcodes perform the same, minus decimal mode functionality ) as a standard 6502, so any status flags that are valid on a standard 6502, save for D, should be implemented in an NES emulator. This also means that Homebrewers for the NES should be able to reasonably test their ROMs against an emulator and have access to everything save for Decimal mode behavior and it perform correctly, even if the instructions they use aren't used by "normal" games. Also, don't forget that the NES was derived from the Famicom, which was capable of operating like a then current home computer, so some "unused" instructions may be unused because the NES lacks the hardware addons the Famicom had.
Information was obtained from wiki.nesdev.com and from the EmuDev discord, from members who have worked on, or are currently working on, NES emulation.
from olcnes.
Related Issues (20)
- Interrupts (NMI, BRK, IRQ) set I flag before pushing to stack
- Identifier lookup is undefinied HOT 1
- Fix: Cartridge.h error: 'shared_ptr' in namespace 'std' does not name a template type
- olc2C02.cpp error: use of deleted function 'olc::Sprite::Sprite(const olc::Sprite&)' HOT 2
- A slight correction to ASL to more clearly represent the opcode definition
- Incorrect ROL and ROR implementations
- Compile the game and load a room but don't have proper sound
- Part #3: segfault after compilation HOT 1
- CPU.cpp a little mistake in comment
- Disassemble logging "error" on REL addressing mode HOT 2
- Don't stay at home, and don't protect the UK's stupid & moron & donkey "national" clown "service". HOT 3
- ExampleProgram in Part 3 open then shut immediately when ran HOT 1
- Inspiration
- Stardust
- error C2280: 'olc::Sprite::Sprite(const olc::Sprite &)': attempting to reference a deleted function HOT 7
- missing olcPGEX_Sound.h HOT 1
- Part #2: possibly incorrect return value for uint8_t CMP() HOT 1
- Jump and coin sounds are distorted in Super Mario Bros.
- Part #7 - Emulator no sound on Macos Ventura v13.6.6
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 olcnes.