Ideas of systems to emulate on the NES

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems. See the NESdev wiki for more information.

Moderator: Moderators

User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Ideas of systems to emulate on the NES

Post by tokumaru »

After the recent discussion about CHIP-8 interpreters on the NES and actual implementation of one, I couldn't help feeling a bit disappointed at how poorly designed the CHIP-8 is, mainly because of the loose speed specifications and lack of any sort of anti-flicker mechanism. The lack of interesting games to play doesn't help either.

But the idea of simulating another machine on the NES is still pretty cool, so I was thinking if maybe there isn't an actual system out there that would be doable under the constraints of the NES.

The first thing that came to my mind were those cheap 9999 in 1 Brick Games, but unfortunately I couldn't find much technical information about them online, let alone ROM dumps. Those have a number of interesting games, and the display is dead easy to simulate.

Another thing I thought of was the Tamagotchi and it's many clones , but each of those is only a single game, and they aren't particularly exciting to play on a TV.

Then I started to think about more complex systems, like computers from the 70's with specs significantly lower than those of the NES, but still had a decent number of games made for them. The VIC-20 immediately came to mind, because its graphics can be very charismatic, but I didn't fully understand the video hardware (the aspect ratio would be all wrong, that's for sure), and a 1MHz 6502 seems like a tall order for a 1.79MHz 2A03, unless programs are converted via static recompilation or something.

I couldn't help thinking about the Atari 2600 too, and even though the CPU is clocked at 1.19MHz, most of the CPU time is spent on the kernel that draws the image, so if that part can be sped up somehow, maybe the game logic can run at a decent speed. Graphics are primitive, but very dynamic, and can change drastically from one frame to the next, so simulating the TIA would require a lot of tricks (including mid-screen palette changes), and the aspect ratio would be wrong no matter what. Some loss of color would occur, but the palettes are somewhat compatible.

At this point, I'm out of ideas of what could be fun to emulate on the NES. A fun machine to implement would not only have an interesting architecture to recreate, but also software that's fun to run. None of the above candidates are ideal, for various technical reasons. Does anyone have any more ideas?
User avatar
rainwarrior
Posts: 8732
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: Ideas of systems to emulate on the NES

Post by rainwarrior »

tokumaru wrote:Tamagotchi
I thought a tamagotchi style game would be a good fit for a game that runs entirely from RAM with no cart in, thinking that I could make an 8x8 display out of only sprites (flickering between two complementary half-filled open bus patterns).

Though incidentally the Tamagotchi ran on a 6502. ;)
Oziphantom
Posts: 1565
Joined: Tue Feb 07, 2017 2:03 am

Re: Ideas of systems to emulate on the NES

Post by Oziphantom »

I guess you need to emulate the 6502 to do address translation. You could probably emulate a KIM-I as that probably won't need any address translation, or very little translation. Maybe an Altair 8800, PDP-11 etc. TI-99/4a yes it will be slow, but it already was ;)
If you can use hardware to help with the emulation, maybe you can put something to trap and fire an IRQ/NMI when an invalid address is requested, to give you time to translate it to something else?

Game and Watch?
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Ideas of systems to emulate on the NES

Post by tokumaru »

Oziphantom wrote:I guess you need to emulate the 6502 to do address translation.
Yeah, which's why I considered using static recompilation, so performance wouldn't take a huge hit.
You could probably emulate a KIM-I
Are there any fun programs/games for the KIM-1? Does it even have video display?
If you can use hardware to help with the emulation
I'm not THAT invested in this...
Game and Watch?
The game-specific LCD screens kill it for me.
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Ideas of systems to emulate on the NES

Post by tokumaru »

It looks like the TRS-80 Model 1 has a simple enough monochrome display (64x16 characters in text mode, 128x48 pixels in bitmap mode), and a decent library of arcade-style games. The tricky part is that its CPU is a 1.774MHz Z80.
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: Ideas of systems to emulate on the NES

Post by FrankenGraphics »

My fist thought was to be able to emulate the FDS expansion, but that’d require some hardware assistance too.

There were a lot (ok, a handful) of computer schematics in the east bloc that any hobbyist could build from discrete parts. Their games were naturally quite limited. Gaming culture exploded in russia after zx spectrum got cloned.
Last edited by FrankenGraphics on Wed Jul 18, 2018 12:57 am, edited 1 time in total.
Oziphantom
Posts: 1565
Joined: Tue Feb 07, 2017 2:03 am

Re: Ideas of systems to emulate on the NES

Post by Oziphantom »

There is the PET which has a character ROM you can't change which would be convenient for the NES. Also has a 6502. and only 4K of RAM.

the issue with the PET, TRS-80 and Apple ][ is they expect a keyboard.
8bitMicroGuy
Posts: 314
Joined: Sun Mar 08, 2015 12:23 pm
Location: Croatia

Re: Ideas of systems to emulate on the NES

Post by 8bitMicroGuy »

You could emulate one of those old Brick Game Tetris clones.
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Ideas of systems to emulate on the NES

Post by tokumaru »

Oziphantom wrote:There is the PET which has a character ROM you can't change which would be convenient for the NES. Also has a 6502. and only 4K of RAM.
It's a good candidate, the games are just a bit on the ugly side...
the issue with the PET, TRS-80 and Apple ][ is they expect a keyboard.
True, but since the focus is on the games, a feature to map buttons to keyboard keys should work fine. A virtual keyboard for the non-game stuff will have to do.
8bitMicroGuy wrote:You could emulate one of those old Brick Game Tetris clones.
Already mentioned I couldn't find anything about those, no specs, no ROMs, nothing.
Oziphantom
Posts: 1565
Joined: Tue Feb 07, 2017 2:03 am

Re: Ideas of systems to emulate on the NES

Post by Oziphantom »

anything with specs low enough to be emulated by a NES are going to look crap ;) Given you have the issue that those machines don't have the VBLank limit, so you are going to need to trap all VRAM updates and then pump it though on the VBlank which is going to drop the amount your emulator can update per frame.

ZX80/81?
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Ideas of systems to emulate on the NES

Post by tokumaru »

Oziphantom wrote:anything with specs low enough to be emulated by a NES are going to look crap ;)
I think blocky art can look cool, but ASCII/PETSCII is kinda lame. CHIP-8 graphics wouldn't be so back if they weren't so flickery!
Given you have the issue that those machines don't have the VBLank limit, so you are going to need to trap all VRAM updates and then pump it though on the VBlank which is going to drop the amount your emulator can update per frame.
Yeah, I was always counting on having a mirror of the video memory in regular RAM so that it could be changed at any time, and periodically uploading it to VRAM.
ZX80/81?
I'm not very familiar with those, but the CPU clock scares me a bit. Although it looks like the CPU is involved in the video output, is that correct?
Oziphantom
Posts: 1565
Joined: Tue Feb 07, 2017 2:03 am

Re: Ideas of systems to emulate on the NES

Post by Oziphantom »

Chip8 is a language not a machine right? so the flickery graphics is down to the implementation and I guess lack of Vsync?

Yeah the Z80 is basically a 2600 with a Z80, its a 3.5Mhz Z80 but that is ~1.0~1.5mhz 6502ish. But lots of the CPU time is spent on graphics for the ZX80, the ZX81 is a bit better I think.
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: Ideas of systems to emulate on the NES

Post by FrankenGraphics »

Oziphantom wrote:Chip8 is a language not a machine right? so the flickery graphics is down to the implementation
Correct - you’re free to improve the interpreter as long as compatibility remains intact. Or free to do whatever you want, but compatibility is a key feature in order to be meaningful.

I’d suggest storing and being able to edit a header along with the program file. Emulation/interpreter speed would be the most important feature.

Back in the day i guess the few chip-8 users there were just modified programs to work with their rig. But since the NES is an absolute factor, there are more or less definitivr answers to the respective problems of each program.

In a sense chip-8 is an intermediary step between assembly and BASIC.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Ideas of systems to emulate on the NES

Post by lidnariq »

There's a bunch of random arcade games that would be appropriate. (Like all of Kee Games's 6502-based arcade games from the late 1970s). The problem is that I'm not certain whether it would be sufficiently closer to "emulation" than "porting".


tokumaru wrote:Although it looks like the CPU is involved in the video output, is that correct?
I'd say it's closer to the 7800 than the Galaksija—when the ZX80 is redrawing the screen it's tricked into fetching picture data as though it were executing it, but the hardware shoves a NOP in for the CPU to actually execute.

Nocash has some excellent documentation: http://problemkaputt.de/zxdocs.htm
User avatar
orlaisadog
Posts: 166
Joined: Thu May 31, 2018 11:12 am
Location: Bristol, England

Re: Ideas of systems to emulate on the NES

Post by orlaisadog »

I'm glad my topic inspired one of the most active forum members to create a topic :)
Post Reply