NES quirk: the VRAM has two memory layouts that "wraps back" either horizontally or vertically for different scrolling games. This is called "nametable mirroring" mode, controlled by routing the raw "CIRAM A10" signal to the PPU A10/A11 address line via the cartridge port. But for my cartridge emulator, it means we're not just acting as a device sitting on the bus, it's actively messing with the PPU bus on the whole machine. Do I have enough time to do it in software GPIO, or do I have to use an external 2:1 hardware mux? Let's see:

* Hitachi HM6116 - Read: address valid prior to or coincident with /CS low. Write: address setup time 20 ns.
* Panasonic MN4216 - Read: address valid prior to or coincident with /CS low. Write: address setup time 20 ns.
* Sony CXK5816PN: Write: address setup time 0 ns.
* Sanyo LC3517: Write: address setup time 0 ns.

Conclusion: don't worry about it, "copy an address bus line 20 ns before /CS falls" is not a significant timing constraint to the existing 180 ns budget for the emulator.
#electronics #NES #NESdev

The closer I get to finishing my current #nesdev project, the more ideas for new projects keep popping into my head. It's like they're jockeying for position to be the next game brought into existence. I've got at least 5 ideas burning a hole in my head trying to get out.

That's all well and good, but please, for the love of #gamedev, let me finishing my current game first!

The holy grail of 2-layer PCB is when you have just a metal sheet on layer 2. I think I'm quite close, but unfortunately some external jumpers are needed to finish the remaining control lines without cutting this beautiful plane. Even THT resistor jumpers are not enough to jump across the 24-trace bus. #electronics #NES #NESdev
Once I added a rudimentary SDL2 front end to my NES emulator, I could interact with it and play a game. youtu.be/lQPIiWHBZgw #FamilySizeVM #emudev #NESdev #timelapse #emulator

Interacting with my emulator f...
Interacting with my emulator for the first time (Family Size VM #7)

YouTube

Once I added a rudimentary SDL2 front end to my NES emulator, I could interact with it and play a game.
https://youtu.be/lQPIiWHBZgw

#FamilySizeVM #emudev #NESdev #timelapse #emulator #sdl #sdl2

Interacting with my emulator for the first time (Family Size VM #7)

YouTube
EMC Pro Tip: rejoin the GND later nearby if you must split it, so the loop area doesn't go off the chart. P.S: I think a ground pour with vias should work even better here, as the signal traces would form coplanar waveguides with well-defined reference planes on the same layer. #electronics #NES #NESdev

One of Lin's signature tools is the Stardust Pendant they receive from their mother. This pendant will let them re-roll a limited number of times in combat to score critical hits or evade enemy attacks.

#indienes #gamedev #homebrew #retrogame #nes #nesdev #indieretro #screenshotsaturday

Still working on the same 60-pin Famicom cartridge emulator devboard. #electronics #NES #NESdev

4 steps to draw sprites in an NES emulator
- copy the display list from work RAM to object attribute memory inside the PPU
- scan OAM for sprites that overlap each line of dots
- fetch their patterns from video memory between lines
- shift the pixels out while drawing the next line
https://youtu.be/gSZAZ5pgVlI

#FamilySizeVM #emudev #NESdev #sprite #sprites #timelapse #emulator

My emulator draws a sprite (Family Size VM #6)

YouTube
See as well their other #NESdev projects johnybot.itch.io
Johnybot - itch.io

itch.io