I am currently working on an NES emulator for the TI-84+ CE. The project is available at https://github.com/Skyluker4/NES84.

The emulator will emulate the NES without any audio since there is no speaker (duh). The picture will be at full resolution since the screen's resolution is higher than the NES's in full color. As for speed, the calculator's CPU runs at a pretty decent speed of ~50MHz, but from what I've read its really more of ~15MHz due to wait times. However, since the NES runs under 2MHz, it should be fine. Input will be through the keypad and the emulator will eventually be configurable to map your own controls.

Right now, the CPU is written, but it doesn't do anything and I don't even know if it works correctly. I'm working on testing it with NESTEST right now, which means I have to figure out how to play ROMs. After that, it'll be the PPU, APU (if necessary), and then finally controls.

My goal is to get this done in a few months. I'm currently busy with school, so I don't have all the time I want to work on it. I've never written an emulator before, so I'm still learning. If you have any experience or tips on how to do so, I would appreciate it.
Very interesting, the 6502 is a bit of an interesting beast to emulate on a z80/ez80 platform - In pure C i'm not sure how the speed will be though - you are correct about the wait states and such.

To start debugging you could include a NES binary as part of your program I guess?

I was wondering if you are porting an existing emulator across or writing one from scratch?
Excellent!

I have contemplated the possibility of a NES emulator on the 84 CE for quite a while, even if it doesn't run smoothly for every game. While I practically never have time to program such complex ideas (and I lack experience), it's pretty cool that you are also interested in making this idea work.

As for advice, consider some caveats to emulating the 6502 and NES graphics engine that other members have advised me of here: https://www.cemetech.net/forum/viewtopic.php?t=14846&start=0
Good luck on your project! Very Happy
About how long do you think it will take to release a stable beta version?
Calcuon wrote:
Good luck on your project! Very Happy
About how long do you think it will take to release a stable beta version?

Never.
ROM sizes are kind of big like ~4mb and such. How will you circumvent this? With compression?
MateoConLechuga wrote:
Calcuon wrote:
Good luck on your project! Very Happy
About how long do you think it will take to release a stable beta version?

Never.


Please refer to this forum.
Calcuon wrote:
Good luck on your project! Very Happy
About how long do you think it will take to release a stable beta version?


Hopefully, I'll have it running in a few weeks, I'm planning sometime in February. This will be the first emulator I've written so it'll definitely take some time, but hopefully it'll be running soon.
xMarminq_ wrote:
ROM sizes are kind of big like ~4mb and such. How will you circumvent this? With compression?


Some ROMs are quite large, and won't be able to be stored on the calculator as is. Many games should be able to fit through, for example, Mario Bros. is 41kb, so at least that'll fit on the calculator. Compression could be supported but would be a feature added later once everything else is working. Maybe eventually I could make a program that could remove the parts of the ROM that have to do with sound to save some space, but I don't even know if that's possible and definitely wouldn't happen anytime soon.
I wish this could be done with TiBoy CE roms and stuff. Could save space if it were possible
Quote:
Maybe eventually I could make a program that could remove the parts of the ROM that have to do with sound to save some space, but I don't even know if that's possible and definitely wouldn't happen anytime soon.

This is probably impossible due to the way that machine code works. First off, without a disassembled version, there is no systematic way to tell data from code and sound code / data from non-sound code / data, as all are represented as bytes internally. Even if you could figure out which bytes to remove, removing a byte causes all subsequent bytes to shift over, so jumps and memory accesses would break. It would be just as difficult to fix the pointers.

Maybe for a small subset of ROMs that have disassemblies available, you could assemble versions with no sound code and offer patch files (to avoid legal issues). This would probably have minimal space benefits, though.
xMarminq_ wrote:
I wish this could be done with TiBoy CE roms and stuff. Could save space if it were possible

Actually, TI-Boy CE already trims off unused bytes at the end of each rom page. As for removing the sound data, that would make all my audio emulation code useless! Wink
Could it run with TiBoy Ce though? Where could I find such a speaker for sound anyways?
xMarminq_ wrote:
Could it run with TiBoy Ce though? Where could I find such a speaker for sound anyways?

Here is a random example, but anything that is a usb audio device will work, as long as it is not an audio adapter as those only work with special hardware found in certain cell phones. Often this must be paired with a usb otg adapter because they usually have normal usb plugs instead of mini usb plugs, with the notable exception of my first example for which you can just use the normal calculator-to-calculator usb cable in place of its included adapter.
Let's not derail this thread - I think audio support for this project could be considered ... however I think that should be further down the roadmap.
Is it being worked on still?
How can I find this emulator mention in the comments above for the TI-84+ CE? I found one bought last year and no one is using it. I play the NES games on my PC with downloaded NES Emulator and I want to try it on the TI-84 if its possible that I read above that someone tries to make an emulator.
It is true that work has been done toward making an NES emulator for the CE but the last real post was in February and the last Github commit was in January so I think it's safe to say that this project has been paused for now.
A NES emulator for the CE would be possible, but with some large concessions I would have thought - one of them potentially being speed. Porting an existing C emulator (which what this project could potentially entail) is likely to work but I fear performance may take an even larger hit.

Still would like to see more progress if it's available Smile.
Very sorry for the Necropost. Did you find a way to convert a ROM to a 8xp file? I can't figure out how to do it, and it is one of the last things I need to do.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement