Commit graph

8 commits

Author SHA1 Message Date
Daniel Prilik
fc6f6dd157 revamp tile system, much more robust
the last tile-based approach was a very jankyboi, with oversized
tiles that were clipped using SDL, with no memory of a framebuffer.
not great, not great at all.

I revamped the system so that each tile has it's own internal
framebuffer, and updates occur by copying chunks of the main nes
framebuffer into the 4 tiles the screen currently overlaps.

this works really well, and has major upsides like
1) no more black-strips
2) possiblity to save tiles (easy access to framebuffer)
3) easier to work with

I'm still running into some issues though, the biggest of which is
that most games that scroll end up "smearing" the background...

It's hard to explain in text, but if you load up SMB2 or Metroid
for example, whenever you scroll, the stuff you leave behind has
duplicate columns, resulting in a "smearing" effect.

I'm at a bit of a loss as to what might be causing it, as the
scroll-register values being sent to the PPU by those games seem
sensible...

I'll try to fix it somehow lol.
2018-07-09 15:53:09 -07:00
Daniel Prilik
3bfe347fa5 begin work on custom APU
I have no idea what i'm doing lol.

I'm starting with the noise channel, since I think that might be the
easiest to do?

I _think_ I implemented it properly, since sniffing the output gives
reasonable volumes, but I don't really understand how to generate
sound waves from it yet...
2018-06-25 10:40:39 -07:00
Daniel Prilik
653cb24e49 upload macOS bundles to GDrive 2018-06-08 10:47:29 -07:00
Daniel Prilik
60836bd54c added macOS bundle creation to make install
It's kinda jank, but hey, it works?
The serious issue is that it relies on the SDL2 dylib installed
from homebrew, and if that verion ever gets bumped, RIP.
2018-06-05 15:44:15 -07:00
Daniel Prilik
c47461cdc0 add logo + windows exe icon 2017-12-13 13:58:39 -08:00
Daniel Prilik
7d722d9132 fix g++ and MSVC warnings + do some cppcheck linting 2017-10-31 17:03:23 -07:00
Daniel Prilik
4f95b10882 Add System Core Class + CPU Memory Map
Also, added a unified Memory interface.
It's pretty basic (just two read / write methods), but it lets me
do some pretty neat stuff with polymorphism.

Eg: I added a Debug object called Memory_Sniffer, which can wrap
any Memory* compliant object, and it will transparently log all
memory operations going across it! Pretty useful IMHO!
2017-10-14 21:01:27 -07:00
Daniel Prilik
2238090a05 *initial commit
Setting up the project. Also, iNES parsing
2017-10-13 20:18:31 -07:00