Collaboration?

  • Topic Archived
You're browsing the GameFAQs Message Boards as a guest. Sign Up for free (or Log In if you already have an account) to be able to post messages, change how messages are displayed, and view media in posts.

User Info: nesis

nesis
1 year ago#41
Just so I'm not misleading myself, we're talking about building an NES emulator in Rust and keeping the code on GitHub?


This is my understanding, too. This all sounds good to me so far :)

My GitHub username is stephenBD.

Any recommended reading on NES architecture?


RP made a good post earlier, in case you missed it. For my part, any other resources are welcome! :)

This is a good place to start to get to know the CPU
https://skilldrick.github.io/easy6502/

A listing of the opcodes
http://www.6502.org/tutorials/6502opcodes.html

and of course the wiki over at nesdev.com
http://wiki.nesdev.com/w/index.php/Nesdev_Wiki

development wise I would recommend downloading nestest.nes rom coupled with the output log from a known good emulator.

Here's a list of test roms, look for 'nestest'
http://wiki.nesdev.com/w/index.php/Emulator_tests

You'll see the link to the 'log from nintendulator'. What we would do for the CPU is log the execution of ours to be exactly like that log, then a simple diff will tell us if we're doing things badly or not.
|__ I make indie games! Get them for free at http://nesis.itch.io __|
|__ Let me know what you think! __________________________|

User Info: Cheezmeister

Cheezmeister
1 year ago#42
Wow. NES emulator in Rust. Ambitious. It feels like there may be prior art. Not sure though.
I make games!
http://luchenlabs.com

User Info: SeraphLance

SeraphLance
1 year ago#43
Gtihub: kbalbas
Hello. My name is Inigo Montoya. You killed my father. Prepare to die.

User Info: ReconditePhreak

ReconditePhreak
1 year ago#44
Both of you should have push access now, let me know if you don't. I'm not really a github guru :)

@woody71
Don't worry about whether or not you're super experienced. We're all fairly new to NES emulators, so we're all going to be doing stupid s***. The point is to have fun learning something new :)

Probably the first things we're going to need are:

1. rust style guide
2. datatype representing the cpu and its registers
3. memory module that has the ability to read/write 8 and 16 bits at a time in little endian
4. ines loader. All it needs to do is take a filename and return the rust equivalent of a byte array.

What we're going to be working towards is stubbing out all of the opcodes with a "not implemented" error and then getting a basic fetch/decode/execute loop going.

https://en.wikipedia.org/wiki/Instruction_cycle

Info on CPU
http://wiki.nesdev.com/w/index.php/CPU

Info on ines format
http://wiki.nesdev.com/w/index.php/INES
http://nesdev.com/neshdr20.txt


I don't have any specific info on memory, just keep in mind that it all has to be checked since the NES memory maps the PPU and its cartridges.

imagine something like so

uint8_t read8(uint16_t addr) {
if(addr < X || addr > &) {
throw "THAT'S PPU MEMORY"
}
else {
// do stuff
}
}



As for the rust style guide, I have 0 experience with rust. If someone wants to dig up a recommended style guide somewhere, or you have the experience to know what's considered good style, let us know.

And to be clear, this is not going to be a nazi document, but we're going to have multiple people checking things in, and so we should figure out how the code is going to look (in general) now rather than later. But I don't want to spend very much time on it, navel gazing is a very real danger when it comes to these sorts of things. A document that no one likes 100% is probably the best compromise we can make :)
Believes the individuals who report to moderators wish they had more control than they do.

User Info: SeraphLance

SeraphLance
1 year ago#45
A list of "don't"s and a working codebase are often the best style guides in my book, but I'll take a look around.
Hello. My name is Inigo Montoya. You killed my father. Prepare to die.

User Info: woody71

woody71
1 year ago#46
github woody71
<Random quote of game I'm playing>

User Info: nesis

nesis
1 year ago#47
This is a late night post for me, so I'll check my github setup's ok when I'm more awake and less likely to derp. Thanks for setting it up!

I'm easy re chosen styleguide, happy to conform as needed. And just putting this out there now, feel free to point out derps in my code and thinking :) This is a good learning opportunity for me, so it'd be a shame to miss out on that.

Also, we have some pretty stiff competition for graphical quality in NES emulation: http://www.youtube.com/watch?v=Ti2fwroyP2A
|__ I make indie games! Get them for free at http://nesis.itch.io __|
|__ Let me know what you think! __________________________|

User Info: Chrono007

Chrono007
1 year ago#48
github: Metroids
"If A is success in life, then A = x + y + z. Work is x, play is y and z is keeping your mouth shut."
--Albert Einstein

User Info: SeraphLance

SeraphLance
1 year ago#49
nesis posted...
Also, we have some pretty stiff competition for graphical quality in NES emulation: http://www.youtube.com/watch?v=Ti2fwroyP2A


Hah, I just saw that on another site.
Hello. My name is Inigo Montoya. You killed my father. Prepare to die.

User Info: Amuseum

Amuseum
1 year ago#50
SeraphLance posted...
nesis posted...
Also, we have some pretty stiff competition for graphical quality in NES emulation: http://www.youtube.com/watch?v=Ti2fwroyP2A


Hah, I just saw that on another site.


there are more versions of NES emulators than actual working NES consoles by now.
Ergonomic keyboard layouts for Android https://goo.gl/KR1vK6
5-suited Draw Poker for Android http://goo.gl/KhmXi

Report Message

Terms of Use Violations:

Etiquette Issues:

Notes (optional; required for "Other"):
Add user to Ignore List after reporting

Topic Sticky

You are not allowed to request a sticky.

  • Topic Archived