UPDATE November, 06, 2018: With my baseline project I was able to execute at least half of the IPL3 from a test rom, there is still alot of memory constructs to support plus the DMA system. I wonder now what Soft64 even did in the IPL3, I have no idea. With unit testing, I have ensured all the main opcodes work the right way, but have not touched the FPU nor some OS related ones yet. All thanks goes to PeterLemon test roms and Bass Assembler to help understand how execution should work, before that, I had no clue what was working right or wrong, it was a black box already to me.
UPDATE June, 19th, 2018: This is kept here for references but I do not plan to keep working on Soft64. This doesn't mean I am ditching N64 emulation but this project was premature and a hassle to work with. My next goal is to achieve a baseline in my own time, then in the future, whatever project I put up here or with an existing one like Soft64, I can expect something works but interest in developers for support and the UI stuff. I do agree with some .NET Core 3 blog comments, that the C# universe is very weak when it comes to cross-platform UI, so for now I am focused on writing code doesn't involve any UI.
- jshint (optional)
Mono 4.x or Microsoft .NET 4.5 (CoreCLR not tested or supported yet)
Mono/.NET development tools (eg. MonoDevelop or VisualStudio)
Instructions to build and run
- Clone the git source
cdinto the directory, and execute:
- Build cli only:
- Build everything:
- To run the cli frontend:
- To run the gui frontend:
npm run-script start-ui
- To build with debug flags (eg. debug C# code), add
--Debugto end of the
If you are working with the edge node package on Linux, you must at least install Mono 4.2 or higher, else edge faults. I used this command on Ubuntu to add their GPG keys and sofware source:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list sudo apt-get update
Then install monodevelop to get all mono dev packages installed.