What's new

Announcement: Cycle-accurate N64 development underway.

sanni

New member
I've got a question. Since many years I'm trying different RGB mods on my jap. N64. The reason is that I am not happy with the output, so I keep trying new RGB amplifiers or sync strippers like the LM1881.

On my real N64 I get this wierd cross hatch pattern every 3rd and 4th line. It's especially visible in F-Zero X and makes me not wanna play the game.

So far I concluded that my N64 is broken. But now I am seeing that cross hatch pattern in CEN64 too. Which can only mean that my N64 is perfectly fine and it's meant to look that way.

Here is a screenshot of oot running on cen64, magnified so you see the pattern I am talking about. As I said it is also there on my real N64. But why?
 
Last edited:

Nintendo Maniac

New member
Divot, coverage, scanline... anything that alters the raw image that gets pushed to the VI.

In other words, anything that's purely a 2D post-processing effect. That means there's still hope for a "force high-res mode"! :p

On my real N64 I get this wierd cross hatch pattern every 3rd and 4th line. It's especially visible in F-Zero X and makes me not wanna play the game.

So far I concluded that my N64 is broken. But now I am seeing that cross hatch pattern in CEN64 too. Which can only mean that my N64 is perfectly fine and it's meant to look that way.

Here is a screenshot of oot running on cen64, magnified so you see the pattern I am talking about. As I said it is also there on my real N64. But why?

Dithering. The N64 did not generate a 24bit per pixel RGB image. In fact the 3DS is actually Nintendo's first system that uses more than 18bit per pixel.

EDIT: FYI, older discrete PC GPUs also do hardware-based dithering at 16bit per pixel; modern PC GPUs however have dropped such functionality due to 24bit per pixel and higher bitdepths essentially eliminating the need for dithering.

EDIT 2: So that makes 4 things that should "totally be an option" in the future:
  • VR4300 overclocking w/ counter factor settings (so games don't run too fast)
  • forced high-res mode
  • post-processing filters
  • larger color depth
 
Last edited:

Nintendo Maniac

New member
Gamecube? Wii?

You never noticed the color banding? It's particularly obvious in Metroid Prime in Phendrana Drifts, particularly when looking at the ice in the chamber inside the Ice Chapel where the Sheegoth and the Wave Beam are located. I played both the original GameCube version and the Metroid Prime Trilogy version and the color banding was present on both.

EDIT: Ohhhhh, apparently the GameCube and the Wii are perfectly capable of doing 24bit, but it seems like not too many GameCube games used it (the Rogue Squadron games obviously being part of that few with Factor5's coding voodoo and all). There are claims that Metroid Prime used 24bit, but I bet that they "cheated" and didn't use 24bit for everything, particularly the fancier lighting and reflections.

I've no idea about Wii games using 24bit. But regarding the 3DS, perhaps that's the first system that uses 24bit as a MINIMUM?

EDIT2: DOUBLE OHHHH! Here's the deal, the GameCube (and most likely the Wii as well) it limited to 24bits per pixel PERIOD. That means either 8bits per channel RGB or 6bits per channel RGBA.

By comparison I believe the 3DS can do 8bits per channel RGBA.
 
Last edited:
F

Fanatic 64

Guest
Yeah, that artifact is dithering. And increasing the rendering color depth won't help it (it may improve other things through), because it is in the texture, since most textures are of low color depth due to the N64's 4KB texture buffer.

In fact, the N64 is supposedly capable of rendering a 32-bit RGBA framebuffer, but can only output at 21-bit color depth and a max of 32,000 colors on-screen. I'm not sure if that's accurate (specially when you say the NGC and Wii can only do 24-bit RGB/RGBA), and if it's true, if the 21-bit 32,000 colors limitation is imposed by the RDP/Framebuffer or the VI chip (if the framebuffer can be rendered at 32-bit, and it is the VI chip that lowers it to 21-bit, then we could technically obtain an increase in color depth just by bypassing the VI chip).

Or I may be just talking off my ass :p
 

Nintendo Maniac

New member
Hello. I need pifrom.bin please ? I would love to test it from CMD.

FYI, the pifdata.bin that MESS uses is the exact same file, so you may in fact already have it. I had previously suggested renaming the "pifrom" variable in CEN64 to pifdata, but nobody seemed to care...
 
Last edited:

RockmanRotti

New member
Hello. Thanks for the answer. I do have pifdata. Now, I rename it to pifrom.bin and zelda works...sorta! After N64 logo then it turn black screen.
 
Last edited:
F

Fanatic 64

Guest
Still remember the old days when you got permanently banned if you asked for copyrighted stuff...

Anyway, MarathonMan just posted a video with the start screen of Ocarina of Time running. Are you trying to run Ocarina of Time or Majora's Mask? Also, what are your PC specs?

____________________________________________________________________________________________________

By the way, some, uh, I don't know if good or bad news, but EmuCR is already making regular releases of your emulator (apparently they didn't realize it is optimized on compilation, and it does not work on most PCs).
 
Last edited:

Nintendo Maniac

New member
Still remember the old days when you got permanently banned if you asked for copyrighted stuff...
That's assuming that the user actually realizes that "pifrom" is the same as "pifdata", I mean I sure didn't realize that and apparently neither did RockmanRotti considering that he already had the pifdata file.
 

Nintendo Maniac

New member
Because that huge grin already happened when Mario Kart 64 was running. Not only was it the first big commercial game running, but it was also my first N64 game (and I think my first virtual console game as well).

And cause no forced high-res mode support :p (at least not yet). I know I'm beating a dead horse, but Master Quest was only available on the GameCube which ran at 640x480, so it could be argued that the N64's 240p output would actually make for an inaccurate experience in the case of Master Quest (yes I know it ran in an emulator).
 
Last edited:

max_power

New member
An awesome project I've really been looking forward to seeing. Keep up the good work! I was wondering:
1. Do you want contributions from other people? If so, what would be a good starting point for someone who wants to do some hacking on CEN64?
2. Is there a glimpse of multithreading on the horizon? I assume that if you gave each component (rsp, rdp, vr, etc...) a thread of its own, the locking would have to be much too tight for conventional approaches?
 

Nintendo Maniac

New member
OK seriously, was this linked on some other forum or website or something? The sudden influx of newer commenters is a bit strange if you ask me. :p


EDIT: Well this is embarrasing, apparently MarathonMan was the last person to view my profile and yet I haven't updated it in 2-3 years. >_> The PC specs in particular are somewhat outdated...

EDIT2: Fixed, crisis averted. :p
 
Last edited:
OP
MarathonMan

MarathonMan

Emulator Developer
An awesome project I've really been looking forward to seeing. Keep up the good work! I was wondering:
1. Do you want contributions from other people? If so, what would be a good starting point for someone who wants to do some hacking on CEN64?
2. Is there a glimpse of multithreading on the horizon? I assume that if you gave each component (rsp, rdp, vr, etc...) a thread of its own, the locking would have to be much too tight for conventional approaches?

1) Yes, yes, and yes again. I'm more than happy to accept pull requests on GH. I guess a good starting point depends on how much you know about N64. If you're unfamiliar, you could pick something like VR4300 CP1 and scan for bugs, or you could add audio support if you're already familiar with the AI, etc.

2) Yes, locking every cycle is too tight and slows everything to a halt. I have a version of CEN64 that "races" and only syncs cores every hundred cycles or so, but the gains are tiny, there are lots of bugs, and you lose a lot of accuracy.


HAH. Likely some of the remaining FPU instructions I haven't implemented. lol @ Big Rigs joke. (This is the same reason the DK64 intro looks so buggered).
 
Last edited:

Narann

Graphic programming enthusiast
I just compile it:

git clone https://github.com/tj90241/cen64.git
git submodule init
git submodule update
make

And start getting a pifrom pal! :)

Question: There is no input plugin right? I mean, when I need to push "Press start", there is no way to do it for now right? :)

My tests:

Super Mario 64 (E) (M3) [!].z64 - Start screen (Super Mario 64), no sound, and freeze.
Lylat Wars (E) (M3) [!].z64 - Failed to load the ROM.
Bomberman 64 (E) [!].z64 - Black screen.
Mario Kart 64 (E) (V1.1) [!].z64 - No sound but work.
Wave Race 64 (E) (M2) [!].z64 - Just the N64 title and nothing, even after few minutes.
Yoshi's Story (E) (M3) [!].z64 - Black screen.
Mario Party (E) (M3) [!].z64 - Langage selection screen but as there is no input, I can select and continue.
Mario Party 2 (E) (M5) [!].z64 - Same as Mario Party 1.
Mario Party 3 (E) (M4) [!].z64 - Black Screen.
Mario Tennis (E) [!].z64 - Black Screen.
Turok - Dinosaur Hunter (E) (V1.2) [!].z64 - Message "Error controler pack damage" but it work. I just can't select anything in the menu. :)
Turok 2 - Seeds of Evil (E) [!].z64 - Black screen.
Top Gear Rally (E) [!].z64 - Start with a "Controller pack not found Ghost car and paint shop data etc...". I'm surprise because this video show the game:


Is there a way to push buttons? How could you have "Top Gear Rally" ingame as you're supposed to be blocked by the message?

Anyway, thanks for this very promising emulator. This is what I wait since LOOOOOOOONG time. :)

Keep the good work MaratonMan!
 

Top