[HN Gopher] FPGA N64
       ___________________________________________________________________
        
       FPGA N64
        
       Author : AndrewDucker
       Score  : 393 points
       Date   : 2023-10-21 16:01 UTC (1 days ago)
        
 (HTM) web link (www.ultrafp64.com)
 (TXT) w3m dump (www.ultrafp64.com)
        
       | nemo1618 wrote:
       | Looks like the most recent youtube video was 3 years ago, and the
       | most recent twitch stream was 2 years ago. Anyone know the actual
       | current status of this?
        
         | speps wrote:
         | Maybe he was hired for this: https://www.analogue.co/3d
         | 
         | The timeline matches, 2 years between hire and announcement.
         | 
         | Discussed a few days ago:
         | https://news.ycombinator.com/item?id=37901025
        
       | grobibi wrote:
       | See also: https://github.com/RobertPeip/Mister64
        
         | garciansmith wrote:
         | Really impressing the progress he's made with that MiSTer core,
         | especially since for years people said there was absolutely no
         | way an N64 core could work on the MiSTer's DE10 nano FPGA
         | board.
        
           | christoph wrote:
           | Ah, so this is the same as the Mister core? I thought it was
           | a different codebase from the Mister core as I couldn't see
           | any mention of Mister, DE-10 or Nano on the page, so blindly
           | assumed it was developed for a much larger FPGA (making my
           | earlier comment below redundant).
        
             | InvaderFizz wrote:
             | No. The GitHub link is to Mister64. Which is an impressive
             | WIP, but is not related to the main article linked here.
             | 
             | I'm most excited for the next generation of FPGA retro
             | consoles coming in the next 6ish months. Specifically the
             | MARSFPGA. All the existing Mister cores, plus a bunch of
             | new stuff enabled by a better and newer FPGA. The estimated
             | price is $700, that's reasonable for those of us with large
             | disposable income that want the retro kit with no hassle,
             | easy access for the kids, and high Wife Acceptance Factor.
             | 
             | I'm also looking forward to all the upcoming arcade cores
             | for the MARSFPGA.
        
           | naikrovek wrote:
           | it's much more about the community knowing _for sure_ that
           | something was impossible while also not knowing what they
           | were talking about. each person said it was impossible
           | because they read someone else say it was impossible, which
           | itself started way back early in the project when someone
           | said that any 3D console would be impossible.
           | 
           | this was obviously always possible, but it required someone
           | who wasn't indoctrinated into the community. the community
           | behind a project is always both the very best and very worst
           | thing about any project.
        
       | blitz_skull wrote:
       | What is this? Besides apparently a hardware compatability...
       | thingy.. for N64?
        
         | a_t48 wrote:
         | Hardware emulation for an N64 with HDMI out
        
         | asveikau wrote:
         | I haven't been following the scene too closely, but there's
         | been a huge ecosystem of fpga clones of 90s video game consoles
         | in the last few years. The "mister" project is one such
         | endeavor.
         | 
         | The market for the original hardware, old cartridges and mods
         | for things like better video signals or Bluetooth controllers
         | is also popping.
        
         | assimpleaspossi wrote:
         | That's the million dollar question for so many hardware and
         | software projects where the information is linked to some page
         | that says nothing about what it is or what it does including
         | the github link to its creator here.
        
       | pjmlp wrote:
       | It looks incredible, great amount of work invested into it.
        
       | christoph wrote:
       | Looks like great work! I feel it's worth mentioning that there is
       | also an N64 core for MisterFPGA now -
       | https://misterfpga.org/viewtopic.php?t=6947
        
       | exabrial wrote:
       | > Cache memory with duel clocks
       | 
       | :) Just a nitpick, don't mind me. This is a neat project
       | 
       | Dual = There are two clocks
       | 
       | Dueling = The clocks are swinging swords at each other
        
         | fb03 wrote:
         | each clock has 2 swords wielded in their 'hands' ?
        
           | reactordev wrote:
           | Perpetually slashing each other in turn. To keep that cache
           | fresh? To "cut down" on cache size? To conquer cache daemons?
        
           | djbusby wrote:
           | Shaving time off my development estimates hoping for
           | sunshine.
        
           | jonhohle wrote:
           | A dual wielding duel?
        
       | isoprophlex wrote:
       | Related: Analogue have a N64 FPGA clone "coming in 2024"
       | https://www.analogue.co/3d
       | 
       | Not much info on the page, also I'm not in any way affiliated.
       | Just think it's cool that this is getting commercialized.
        
         | badlucklottery wrote:
         | RobertPeip (FPGAzumSpass, the developer of the Mister PS1 core)
         | also an open source N64 FPGA core in development:
         | https://github.com/RobertPeip/Mister64
        
         | bluescrn wrote:
         | Analogue make cool stuff, it's just a shame that their business
         | model seems so strangely focused on enriching scalpers
         | (extremely limited supply and numerous 'limited edition'
         | releases even when the standard model is unobtanium - and most
         | of them end up straight on eBay for silly prices)
        
           | philistine wrote:
           | Either they're their own resellers and don't want to change,
           | or they can't get enough FPGA cores so they turn to silliness
           | to market their very limited inventory.
        
           | rlabrecque wrote:
           | Similarly they offer very little support, almost no
           | communication, and yeah, just kind of weird.
        
           | ericlewis wrote:
           | They're a really small company and lean heavily on their
           | sibling company 8bitdo for some bits. Getting the FPGAs is
           | the problem generally, and the same reason why it's hard to
           | find a mister. They usually similar chips too.
           | 
           | The size of the company also explains the support issues.
        
           | pcchristie wrote:
           | I've bought everything they've made, but they don't have
           | great customer support.
           | 
           | The only shipping they do is extremely expensive express
           | shipping internationally. They had some adapters that were
           | previously OOS come available, but the Pocket system was OOS.
           | I emailed them, asking them if I could buy the adapters, have
           | them put them aside, and reserve the Pocket, and have them
           | ship it all at once whenever the Pocket was in stock. I even
           | offered to pay it all up front so they weren't put out. They
           | basically (politely) told me to suck it up, and buy both, and
           | pay ~ 100 AUD each time to ship them express, separately.
        
       | placesalt wrote:
       | Related, any recommendations on low-cost ways to start playing
       | around with FPGAs? Boards, chips, projects?
        
         | derefnull wrote:
         | educational developer kits
         | https://www.intel.com/content/www/us/en/developer/articles/t...
         | 
         | there are a few different major brands
        
         | ooterness wrote:
         | Diligent makes several boards for the educational market,
         | prices in the sub-$200 range. (And the devices are small enough
         | they can be used with the no-cost version of the AMD/Xilinx
         | toolchain.)
         | 
         | https://digilent.com/shop/fpga-boards/development-boards/int...
         | 
         | For online courses, I've heard good things about Nand2Tetris
         | but have not tried it myself.
         | 
         | https://www.nand2tetris.org/
        
           | arein2 wrote:
           | I looked at nand2tetris a while ago briefly and I have the
           | impression that it focuses too much on making complex
           | circuits.
           | 
           | The target audience for nand2tetris are people that want to
           | understand how the CPU works, and nand2tetris focuses too
           | much on how to make logic using nand gates leaving other
           | areas uncovered.
           | 
           | I recommend the Ben Eater youtube chamnel, he has a series of
           | videos about building an 8bit computer, that in my opinion is
           | much more informative for a curious person.
        
             | drivers99 wrote:
             | I've gone through the nand2tetris course (parts 1 and 2)
             | and I've also physically built Ben Eater's projects.
             | 
             | nand2tetris covers many levels of abstraction; it is both
             | lower and (much) higher level than Ben Eater's projects,
             | which is one of its main points: you can create something
             | in one level of abstraction and then build on it in the
             | next level of abstraction. It only starts with logic gates
             | (a single one to start with, "nand" obviously) and goes
             | through the other logic gates that can be built from nand
             | gates, then various digital logic built on that, registers
             | and other synchronous logic, ALU, full CPU, full computer.
             | Hardware is only the first half of the course. Then you
             | build a stack machine, assembler, objected oriented
             | language compiler, a software library I think, and finally
             | a game you write in that (doesn't have to be Tetris). So
             | the whole second half is layer on layer of software
             | abstractions starting from the hardware. I would say it
             | handwaves over video output and keyboard input because it's
             | not what they're teaching about, while Ben Eater shows how
             | to physically build such things.
             | 
             | Ben's is purely hardware up through 2 main registers, an
             | alu with only add and subtract, an 8 bit digital readout,
             | no real input (besides updating RAM to input the code &
             | data using switches), 16 bytes of RAM (4-bit address), and
             | control unit to implement machine language with a few
             | opcodes. His 6502 project starts with a CPU which is
             | already far beyond where the 8-bit computer ends and builds
             | a computer architecture around it (RAM, ROM, I/O, and
             | peripherals: video, keyboard, serial).
             | 
             | nand2tetris is normally simulated and Ben's covers
             | physically building things which has its own set of
             | lessons/skills to learn. Coincidentally I ran across a
             | crossover of the two projects today: a video of someone who
             | built a breadboard version of the nand2tetris 16-bit cpu
             | (called Hack)! https://youtu.be/L-azf9ecvfo
        
         | MaKey wrote:
         | You might be interested in this new book:
         | https://nostarch.com/gettingstartedwithfpgas
        
         | progbits wrote:
         | I like the iCEBreaker board, relatively cheap (80 euro), uses
         | the digilent Pmod interface for add-on boards and the Lattice
         | FPGA works well with OSS tooling (Yosys, Icestorm, ... for me
         | this is a deal-breaker as I hate the proprietary IDEs).
         | 
         | Here are some project tutorials for it (should be easy to adapt
         | to other hardware too):
         | 
         | https://github.com/icebreaker-fpga/icebreaker-workshop
         | https://github.com/icebreaker-fpga/WTFpga
        
         | Calloutman wrote:
         | Altera MAX 10 evaluation board is probably one of the cheapest
         | options. You use quartus prime lite to configure it which is
         | free, and better than the equivalent Lattice tools.
        
         | dyselon wrote:
         | There's a ton of of dev boards out there, but I would say to be
         | sure to get something with hardware buttons and LEDs, as it
         | really helps with some of the Hello World level of things, and
         | many of the cheapest options won't have those.
         | 
         | I started messing with FPGAs with the DE0-Nano, but eventually
         | got so frustrated with the tiny buttons that I upgraded to a
         | DE0-CV, which I really enjoyed my time with. It has some 7
         | segment LEDs, physical switches, and buttons, and it also has a
         | VGA port, PS/2 port, and Micro SD card slot, so you can build a
         | pretty snazzy little PC if you want to.
        
         | ge96 wrote:
         | orange crab another option
        
       | alephnerd wrote:
       | Take that Sony!
       | 
       | (The PS2 is also implemented on a FPGA. Idk whether the PS1 is or
       | isn't though)
        
         | monocasa wrote:
         | The PS2 is not implemented on an FPGA. There might have been
         | some internal dev hardware with some FPGAs, but nothing
         | released.
        
       | semiquaver wrote:
       | (Obligatory "is this website hosted on the N64?" joke)
        
       | rdlw wrote:
       | If anyone is interested in new projects for N64 hardware, Kaze
       | Emanuar has an amazing series about optimizing Super Mario 64 to
       | run incredibly complex romhacks on original hardware.
       | 
       | Interestingly, SM64 is usually throttled by memory speed. This
       | means that using 'inline' is detrimental to performance, since
       | making the program larger can cause another read from memory.
       | 
       | Here's an overview video, he has many more specific videos about
       | specific topics:
       | 
       | https://youtu.be/t_rzYnXEQlE?si=6yNnsTxOr7M5v4ub
        
         | kibwen wrote:
         | _> new projects for N64 hardware_
         | 
         | There's an entire community doing N64 homebrew:
         | https://n64brew.dev/wiki/Main_Page , including a faction who
         | are working on a Rust SDK (basic demo:
         | https://youtu.be/XmlmvRrRFqs).
        
           | rdlw wrote:
           | I know a lot less about the homebrew community but it's also
           | very cool! Do you know of a big project that would be an
           | interesting entry point for getting into the community?
        
             | kibwen wrote:
             | AFAIK most homebrew games tend to be the product of lone
             | developers, rather than large collaborative efforts. I
             | could be wrong though; there's a Discord linked on the wiki
             | that you could ask in for ideas.
        
         | phoboslab wrote:
         | Romhacks are typically modifying the compiled binary ROM image.
         | Kaze' work is based on the painstakingly disassembled code from
         | the n64decomp project[1]. He's working in C, modifying the game
         | and compiling it again for the original hardware. Not sure I'd
         | call that a "romhack".
         | 
         | Great videos though!
         | 
         | [1] https://github.com/n64decomp/sm64
        
           | rdlw wrote:
           | From a player's perspective, I do think they tend to be
           | called romhacks if they are based on an existing game,
           | although I agree that's selling the project short as it's
           | based on the decompiled source with heavy changes made.
           | 
           | It's sort of been a smooth transition from literal ROM hacks,
           | to hacks with custom assembly, to hacks that are compiled
           | from source, but the name has stuck.
        
           | nubinetwork wrote:
           | Developers for Nintendo consoles have been using C the whole
           | time, even moreso after the SNES. I can't imagine how long it
           | would take to make a N64 game if I had to do it all in
           | assembly.
        
             | rdlw wrote:
             | A decompilation of Super Mario 64 was only completed a few
             | years ago; before that romhackers were indeed using
             | assembly. The homebrew scene makes fully original games
             | from scratch in C, but romhacks are alterations of existing
             | games (although decomp blurs the lines between the two
             | communities).
        
             | epcoa wrote:
             | I highly doubt there was a readily available C compiler for
             | the 6502 in the 1980s. In any case the idea that developers
             | were widely using C pre N64 is bull. Even in the SNES era
             | it was the minority.
        
               | nubinetwork wrote:
               | I believe Hudson had a C compiler back then... if not, go
               | check out a hexdump of some Koei games (Nobunaga's
               | Ambition 2 comes to mind), you'll see text strings with
               | the %s token... pretty sure those would only come from C.
        
               | epcoa wrote:
               | So a handful of non graphically intense RPGs from a
               | relatively obscure/cult publisher doesn't really
               | contradict minority though. That particular game was
               | released in early 1990, relatively late into the life of
               | the NES and not exactly a first party title. By 80s, I
               | meant more coincident with the release of the system.
               | 
               | > you'll see text strings with the %s token... pretty
               | sure those would only come from C.
               | 
               | There is nothing inherent in % escaped substitutions that
               | unequivocally implies C. You could pretty easily write an
               | asm port of a basic printf function if one wanted to
               | reuse previously translated strings. Not saying C wasn't
               | used for the NES port of this title, but this by itself
               | isn't as strong a clue as implied.
        
               | trealira wrote:
               | > You could pretty easily write an asm port of a basic
               | printf function if one wanted to reuse previously
               | translated strings.
               | 
               | In fact, the function for printf used to be implemented
               | in assembly on Unix. In this link, the actual
               | implementation is in doprnt.s, and the function printf
               | (in printf.c) just passes its arguments to the function
               | _doprnt. In V6 Unix, it was the same for scanf, but V7
               | seems to have replaced it with a C implementation.
               | 
               | http://tuhs.org/cgi-
               | bin/utree.pl?file=V7/usr/src/libc/stdio
        
             | xcv123 wrote:
             | > Developers for Nintendo consoles have been using C the
             | whole time
             | 
             | It was only done with assembly on the NES.
        
           | psyclobe wrote:
           | So rust should solve all their problems right?
        
         | modeless wrote:
         | I love what he did, but it seems like his recent stuff is only
         | running his romhack. Did he ever make a build of the original
         | Mario 64 with all his peformance fixes, so the original game
         | content can run at 60 FPS on a real N64?
        
           | worewood wrote:
           | No, and he made a video about it. Basically he worked on the
           | optimizations together with his modifications. He should've
           | done a separate branch on the codebase with only
           | optimizations on the original code
        
             | Rarebox wrote:
             | He says he'll port his performance optimizations to the
             | original game once he's done with his game / romhack.
             | Otherwise he'd have to always update two codebases when he
             | finds a new optimization.
        
       | trollied wrote:
       | HN has hugged it too hard. archive mirror link:
       | https://web.archive.org/web/*/http://www.ultrafp64.com
        
       | make3 wrote:
       | mirror: https://archive.ph/7KXgz
        
       | thehias wrote:
       | The project UltraFP64 will be released as Analogue 3D only.
        
         | sbarre wrote:
         | Source?
        
       | ChuckMcM wrote:
       | That is quite an achievement! It extends the range of fully
       | realizable game consoles that are realizable in inexpensive
       | FPGAs. At one time I saw a web article on FPGA versions of arcade
       | game architectures (looking it up it seems that became the
       | 'mistercade' project for JAMMA compliant cabinets). I'm always
       | amazed at the creativity here, both in the original designer's
       | part and in recreator's part of reproducing that same vision.
        
       | crtified wrote:
       | For the thousands of people in the MiSTer FPGA ecosystem, some of
       | whom bought the hardware [0] as long ago as 2020, for well under
       | $200 (it's more, now [1]), a featureful FPGA N64 core - developed
       | by Robert Peip, who is paid, most would say very deservedly,
       | thousands per month via P_treon) - will be coming soon as a free
       | update, once the already very advanced work is complete. The
       | betas are playable now, and there are near daily updates.
       | 
       | [0] https://mister-
       | devel.github.io/MkDocs_MiSTer/setup/requireme...
       | 
       | [1] https://www.terasic.com.tw/cgi-
       | bin/page/archive.pl?Language=...
        
         | nix0n wrote:
         | Why did you censor "P_treon"? Or are "a" and "_" close on your
         | keyboard?
        
           | crtified wrote:
           | No great reason, other than a vague unease at the tacit
           | promotion (to people, and/or to future spiders/bots) involved
           | in citing the name of a specific corporate - it being a
           | largely irrelevant side element of the greater point I was
           | here to make.
        
         | LeoPanthera wrote:
         | I never got a MiSTer but I was always vaguely interested. Has
         | the hardware been updated in all that time? Or is an updated
         | one likely in the future?
        
           | deelowe wrote:
           | They still use the de10 board as the base but there's been
           | improvements to the io boards and memory support.
           | Faster/higher density memory is what has allowed for the more
           | modern systems to be supported.
           | 
           | There's a project called marsfpga that will support newer
           | hardware.
        
           | crtified wrote:
           | The MiSTer, which imo is still by far the best bang-for-buck
           | system of it's type either on the market now, or likely to
           | hit the market anytime soon, is still based upon the original
           | hardware. Several peripherals and form factors have been
           | added or updated as options, but the central processors are
           | the same.
           | 
           | Software updates are a different matter entirely. The system
           | has evolved greatly, with each year so far having resulted in
           | an impressive list of new additions and improvements.
           | 
           | The cogs and wheels of the niche entrepreneur industry have
           | been slowly turning, and the next 1 - 5 years promises
           | several likely newer generation products. People highly
           | invested in some of the 32- and 64- bit systems not covered
           | by MiSTer, and or people who want more modern display
           | options, will be very interested in those. The price
           | projections seem to be aiming at the $500-$1000 range.
           | 
           | But as of today it's still hard to look past the MiSTer, as a
           | multi-year already proven system, which has for years offered
           | elite level 8- and 16- bit recreations, recently added an
           | amazing Playstation 1 core, is close to adding an N64 core,
           | and can be had right now all-inclusive starting in the $300
           | segment.
        
             | mistyvales wrote:
             | There's a good Sega Saturn core in the official Downloader
             | now too.
        
           | lukeck wrote:
           | There have been a few minor revisions of some of the optional
           | add on boards and things like SNAC adaptors for using
           | original controllers from different systems.
           | 
           | There have also been a few different takes on making a mister
           | in more of a console form factor, and boards that integrate
           | into arcade cabinets or fit in ITX PC cases.
           | 
           | The software has come a hell of a long way. In the army days,
           | the most advanced cores were 8 bit systems like the NES. Now
           | we've got PlayStation 1, Sega Saturn and N64 in the works.
           | Similar progress has been made supporting old computer and
           | arcade systems too.
           | 
           | There is an upcoming sort of successor called Marsfpga that's
           | recently started being teased. From the little that's been
           | shared so far, the community seems hopeful that this will
           | mean the Dreamcast and support for arcade games through the
           | early 2000s are possibilities.
           | 
           | Once you get much beyond that era, an FPGA-based approach
           | makes less sense - the systems become much, much more complex
           | and also largely standardise around with x86 or ARM where
           | there are always to run them without emulation at all. A
           | notable exception to that is the PS3 with its cell
           | architecture. Then again, people said for a long time that
           | PS1 and Saturn were not possible.
        
       | MegaDeKay wrote:
       | It doesn't mention the FPGA platform used for this so I did a bit
       | of digging. Looks like Digilent's "Nexys Video Artix-7 FPGA:
       | Trainer Board for Multimedia Applications". This goes for $550
       | and of course doesn't count all of the PMOD's and other hardware
       | hanging off the board.
       | 
       | https://digilent.com/shop/nexys-video-artix-7-fpga-trainer-b...
        
       | amelius wrote:
       | That's some plumbing even Mario and Luigi would be impressed by.
        
       | tombert wrote:
       | I wonder if we're going to hit a wall on cycle-accurate software
       | emulation; Higan is pretty cool, but even that requires a fairly
       | beefy CPU considering it's emulating something reasonably
       | primitive like the SNES.
       | 
       | I know nothing about electronics, but the recent uptick in FPGA
       | game systems like the MiSTer getting Playstation and N64 support,
       | I am hoping that FPGAs can pick up where Higan left off; it would
       | be great to get cycle-accurate emulation of the Xbox 360 some day
       | since I never fixed mine after getting a red ring.
        
         | philistine wrote:
         | I do not believe it is possible to run an Xbox 360 game without
         | copyrighted code from Microsoft. So we might see it from
         | projects just like this one, but I wouldn't hold my breath for
         | Analogue to ever release anything past the PS2.
        
           | tombert wrote:
           | Conceivably we could get some kind of Wine/ReactOS thing
           | couldn't we? Something that recreates the APIs well enough to
           | play most games?
           | 
           | That said, I acknowledge that that would take a lot more
           | work, and it might not be economically worth it for Analogue
           | or the MiSTer people to bother with it.
        
         | phire wrote:
         | Cycle-accurate software emulation is a topic that I've been
         | looking into on and off for years.
         | 
         | The Higan concurrency architecture hit a wall because it needs
         | to sync between modules every single cycle, what gets very
         | expensive as the clock rates go up.
         | 
         | But you don't need to sync every single cycle, especially once
         | CPUs started getting caches, so we just need a new concurrency
         | architecture that's flexible enough to only sync when needed.
         | 
         | I've been experimenting with an actor based concurrency model
         | which seems to be fast enough for a cycle-accurate N64 emulator
         | (though I won't know until I have the RSP and RDP implemented).
         | I'm hoping it might even be fast enough for 6th gen consoles,
         | perhaps when combined with other techniques like a cycle-
         | accurate jit and fine-grained memory locks.
         | 
         | I'll have to post an article if it ever gets to a workable
         | state.
         | 
         | ------
         | 
         | As for cycle-accurate FPGA emulators, I don't think they are
         | cost-effective even for something like the N64, yet alone a
         | 360. You can get 90% of the way there with a cycle accurate
         | CPU, shared bus, cycle accurate RSP/RDP. But you have to map
         | the RDRAM onto DDR3 memory and the timings don't really line
         | up. The linked UltraFP64 project doesn't even try for accurate
         | RAM timings and will preform better than a real N64. I suspect
         | the WIP n64 core for MiSTer is much the same.
         | 
         | You could build a custom board with memory that actually
         | matches the timings, but that gets expensive.
        
       | snvzz wrote:
       | I see a donation button, but not a link to the source code.
       | 
       | Not sure this thing is open source hardware, or available to
       | anyone in any form, or even real.
        
       | knigge111 wrote:
       | Wow, just wow! For me, these guys are god's!
        
       | phendrenad2 wrote:
       | Is there any wrapper for mister cores that allows them to work on
       | a PCIe FPGA card? It would be cool to have an N64 inside my PC.
        
       ___________________________________________________________________
       (page generated 2023-10-23 09:01 UTC)