The language looks LISP-y, it's not actually LISP. The reason why the language looks like that is because it's trivial to lex and parse: https://git.cen64.com/?p=cen64.git;a=blob;f=compiler/parser.c;h=2e79665d0e164be886f3bea3517188a8df37d7fd;hb=HEAD The entirety of the language is currently parsed b...

The Windows builds were broken in 8d0e7bb627b91f4d592ebd2a7e3d87cf580cdb32 pi: add support for IS Viewer 64 When -is-viewer is passed on the command line, create an IS Viewer object that intercepts writes at 0x13FF0000. This is used by Ocarina of Time Master Quest Debug to log debug messages. The me...

Sorry, I'm still very much alive and well. I started a full-time job while trying to finish school, so needless to say... things have been pretty crazy. :) There won't be any changes to the current release unless they come from contributors. I have only been working on the code which I've discussed ...

Whenever I pick this up, I always end up doing something other than what I planned. Ugh. Most recently, I have bolstered the semantic analysis, which is quite boring if I don't say so myself. There is now type checking (TODO: implicit casting), improved variable parsing and handling, and more. Of co...

EDIT: There's a strange bug that affects Mario Party 2...First screenshot is mupen64plus, last screenshot is CEN64. I know M64+ is HLE, but I can tell the M64+ version is correct because I own this game for the N64. Thanks. Just to be clear, it's the position of Toad that's wrong, right? Nothing el...

Huh...It seems that you're right. When did F-Zero X start to boot and work well? That started working when I implemented open bus reads a few months ago. The cart basically attempts to 'look' for the 64DD (using an address that isn't mapped, if the 64DD isn't installed). I wasn't emulating that dev...

World Driver Championship needs RSP synchronization, same with Gauntlet Legends. If Gauntlet doesn't work, then there's a good chance you need to change some RSP code. I doubt the current FPU bugs would cause it to not work, considering most emulators likely have some FPU bugs. I don't get how it c...

Yes -- master is intended to be as a stable, "if you see bugs in here, you should report them", type of branch. Anything else is a toss up. angrylion-rdp-sse2 is an experimental branch that contains a lot of RDP threading and optimizations that you might also want to look at. Does CEN64 build fine t...

It is possible that the performance drops down more in later releases. I have always thought that sync overhead is just going to be too much. If you had asked me if they were ever going to get this far, I would have completely disagreed. The speed issue is less due to Vulkan, and more due to the RS...

Is Angrylion not supposed to be C code? And why not rely on the retro arch port using Vulkan? I'm just wondering. angrylion uses C, I think. But for a codebase this small, it's easy to flip it to C++. TBH, I don't have any graphics drivers that support Vulkan. :) If it's at all possible to do RDP o...

That sounds right. master branch can still only effectively use 2 cores with multithreading. angrylion-rdp-sse branch changed it so that, effectively, 3 cores can be used. Haswell/Broadwell/Skylake also run CEN64 a lot faster (clock for clock) than their predecessors. Dolphin observed something simi...

Can someone break this down for me? I'm not super tech savvy. Does this mean CEN64 will take advantage of system with multiple cores now, and before it was only using one? I've got an 18 core machine, which each clocked around 2.3ghz. Should I expect very good performance moving forward with this u...

I have a couple RDP optimizations that can be done for anyone that's familiar with policy-based design (C++). Your contributions aren't exclusive to CEN64 and will possibly get swept up into Retroarch and maybe other HLE plugins. If you're not familiar with policy-based design, that's OK... I'm will...

I had some regressions I was tackling that are preventing it from being 60VI/s all the time on a quad core system, so the latest builds have majorly regressed since I took the YouTube video. I'll try to fix it, but probably can't get around to it for a week or so.

As topic says. I just saw the update and wanted to try it out on Ocarina of Time, but i don't see any difference at all. As it's On by default i expect it to be working, so is the speed up only in some cases? (Maybe wrong forum to write this?) Thanks:) You are using release builds, right? I don't e...

OK, tried to test it in Windows 10 with a GTX 770 and recent drivers... RetroArch crashes. Maybe it is not finished or there are other problems. Thats why I like Software-Only Emulators. Less problems with drivers... It's not finished yet... the clickbait blog entry by squarepusher is just to hype ...

Matti wrote:Would like to test it but the Linux Intel Vulkan Drivers for Haswell are not functional. Even the vkcube Demo only renders a gray window... and RetroArch just crashes. Maybe Kernel 4.7 is needed.

Thanks, nice to know. I thought I had heard that they were ready for use...

Yes, [he who does not wish to be named] is an unimaginably talented developer. One correction, though: are not implementing the full pixel-accurate rendering pipeline in Vulkan; rather, just one which renders triangles the same way the RDP did. It's basically does what Glide and all these graphics p...

I nearly stabilized this commit. There is the occasional total freeze after a few minutes of play with some games, but I'm confident that I'll be able to figure it out. I'll toss up a YouTube video in a bit. Getting 60VI/s on these titles: Goldeneye 007 Vigilante 8 Mario Tennis (on court, not in men...

It's not accurate, even up to the point where the AI ("audio interface") reads the data. In HW, the CPU or RSP writes the samples to RDRAM and then tickles the AI to start periodically DMA-ing samples from RDRAM to the DAC. Here's where it gets messy: The AI is supposed to send a interrupt back to t...

07/10/2016 This is going to seem incredibly off-topic...MarathonMan, maybe I'm thinking of a completely different guy, but I thought you were a native of South America? I say this because only someone native to the US and/or it territories (and maybe Canada or Mexico) would use the M/D/Y format (AF...

Thank you for the kind words everyone! Basically, a cycle accurate JIT? One that could change the face of CAE (Cycle Accurate Emulation, let's create a new acronym). Yes, cycle-accuracy for all! :mrgreen: I'm not certain that it will have enough oomph for embedded use cases (at least N64 - I could s...

This sounds promising! But I wonder... what about the actual core? Can it be recycled or at least are some parts of it? It would be sad to see all this work on the actual core wasted... I'll be able reuse most of it... I just have to transcribe it into the new language. I think the idea of what I h...

A JIT cache that exists between executions is something I've thought about eventually adding as an incremental thing. In the meantime, small blobs of codes that get run several times over like the RSP ucodes, main engine and libultra code, etc. will immediately benefit without a JIT cache that lives...

I've told a few people about where I'm planning to go with the project, but I still get someone that asks me what's up every once in awhile. So, I'll just leave this here so I don't want to repeat myself. :D Most of my time lately has been working on a new concept (more on this later). In the meanti...

This is exciting! Do you think these optimizations in the end will yield enough boost so that games can be run at 60 VI/s with the single-threaded build? I'll let you know when I'm able to use two threads to run things at 60VI/s, let alone one. ;) In all seriousness, AIO is correct. Some 2D titles ...

AIO has made some excellent points about optimizing the RDP. I have taken some of his algorithms and my own approaches and gotten some performance boosts that are starting to become quite convincing. With a single-threaded build, the speed up over master is about 2VI/s on my desktop at the moment. Y...

I implemented some of the easy pickings in texture_pipeline_cycle in CEN64 and saw about ~1VI/s improvement in OoT. The binary size has also shrunk quite a bit (> 7% for Linux SSE4.1). EDIT: oops, nevermind about the size part! I stand corrected - perhaps vectorizing the RDP will result in more perf...