Field Programmable Gay Array

seen from Malaysia
seen from China

seen from China
seen from China

seen from United Kingdom

seen from Malaysia
seen from China
seen from China

seen from China
seen from United States

seen from United Kingdom
seen from Cyprus
seen from United States

seen from United Kingdom

seen from France
seen from Greece

seen from Malaysia

seen from Greece
seen from China

seen from United States
Field Programmable Gay Array

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Commodore 64 Ultimate Firmware v1.1.0
Super station one - Mister
Pretty fun
Bad news: the embedded system design course aims to "no code" and vibe code everything (hate it so much).
Good news: I got a giant ass board that I can take home.
the genius (stupidity) behind the FPGA in my 6502 computer has almost everything to do with the clock.
basically, the FPGA has a 12mhz clock input, and an adjustable clock output which goes to the CPU.
with the 12mhz FPGA clock, the CPU can run up to 6mhz. however, since the 6502 uses a synchronous bus, all the other devices on the bus must be able to run at that speed as well. and, well, they can't.
my solution was to dynamically adjust the clocking for each peripheral on the bus when it's being accessed. the FPGA monitors the address bus, and when the CPU selects something that runs slower, such as the EEPROM, it halts the clock for a little bit until the EEPROM can catch up.
this allows me to put other stuff on the bus too, like the LCD controller. in the original Ben Eater design, the LCD was attached through the VIA (essentially a GPIO controller). since the nature of the LCD controller needing to constantly switch between reading and writing, this made a pretty sizable overhead. by putting it on the bus directly, not only do we free up 7 GPIO pins, we also significantly reduce the time it takes for something to be written to the screen.
there's was problem though; I plan on using the VIA's timer functionality which essentially just counts clock cycles. if the clock constantly changes speed, this number will be useless. so, the FPGA generates two clocks, a monotonic clock for the VIA, and a non-monotonic clock for everything else.
but the VIA also needs to be synced with the CPU in order for them to communicate. so, when the FPGA sees that the CPU wants to access the VIA, it synchronizes their clocks for a short moment, then essentially "connects" them together for one cycle, before reverting to their original clocks.
this way, the VIA can properly keep time, and the CPU can change its speed at any time. additionally, since the VIA has its own clock, you can adjust it independently and slow it down if you need to track long periods of time, or speed it up if you need more precision.
oh and I forgot to mention that the CPU can also adjust it's clock speed, but i don't think it would make much sense to do anything but the top speed.

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
damn people are right, lifting weights really does help let out anger. now granted most people are working out over a girl or something, while im angry over vivado’s absurd file size, but you know, still helps
Hot take: far as I'm concerned, recreating an old system with an FPGA does not make it "not emulation".
You're still making the thing run on other, newer hardware. You're just not doing it in software. The FPGA is still just pretending very hard to be a SNES or what have you. The main difference is that there's not an entire operating system running underneath the emulator. It's not even running on the bare metal -- it is the bare metal, so there's a significant lack of overhead and with a good design input lag can be all but eliminated.
But it's still just an emulator.
After all, this
is not this
any more than this is
Now, you might argue seeing that SNES mainboard closeup that there's a one-chip SNES too and that doesn't look anything like that picture either. True. It's called a one-chip because they took all the component parts of the CPU and PPU pair, and stuck it into a single chip. Not reimplementing, but restructuring.
Checklist on getting the N64 MisterFPGA core running (after searching a lot in the forums, myself)
Delete any .cfg files.
Make sure that you have the latest version of the core.
Make sure that you have the latest version of N64-database.txt.
Make sure that you have the N64 BIOS. You can get the BIOS from the MAME 0.260 non-merged ROMset. The BIOS is the .bin file in the .zip file of your choice.
Rename your choice of BIOS to boot.rom. (Remember to change the extension, not just the name.) Any additional BIOS would be renamed boot1.rom and boot2.rom if included.
Put the BIOS where the N64 core would be.
Place the BIOS in the folder where the N64 ROMS are if you are still having trouble.
Place the N64-database.txt file in the folder where the N64 ROMS are if you are still having trouble.
Locations of the BIOS files in the ROMset
The Nipponese BIOS is pifdata.bin in n64dd.zip.
The American BIOS is pifntsc.bin in n64.zip.
The European BIOS is pifpal.bin in n64_pal.zip.
Note: n64, v64, and z64 ROMS all work.