Commit graph

11 commits

Author SHA1 Message Date
Daniel Prilik
13618a768b updated metroid GIF 2018-07-31 16:03:03 -07:00
Daniel Prilik
2093dc058d save / load scenes to/from disk
that's it then, the final piece.
You can play games, record scenes, and boot games back up with the
recorded map.

It's not perfect, _far from it_, but it works!

There is still a lot of work to do, improving heuristics and such,
but I think wideNES is at a point where it can be merged into
master and shown off a bit :)

exciting!
2018-07-25 10:31:26 -07:00
Daniel Prilik
3ee521700a improved tile-updates, added 16x16 block sampling
yeah... i'm not entirely sure of the thought process I had with my
old method... It worked, but it wasn't very clean, or intuitive.
This new method is a lot cleaner, and makes a lot more sense.
Moreover, it enables me to add the 16x16 block sampling
functionality, which is awesome, since animated blocks tend no to
get "banded" or "smeared."
2018-07-15 12:31:44 -07:00
Daniel Prilik
28233ab5a5 add padding + update READMEs
I still haven't figured out the smearing issue, but I _did_ figure
out how to greatly-improve compatibility with many titles!

I added the ability to "pad" the screen, cutting-off any artifacts
at the edge. This means that with a bit of tweaking, games like
SMB3 and MC Kids work near flawlessly!

It _should_ be possible to guess "good" padding values for games by
using some heuristic that relies on current mirroring mode, scroll
direction, and if the PPUMASK is on...

I also updated the README some more, putting a "teaser" for wideNES
on the main page, but splitting off the details into it's own page.
2018-07-10 18:28:22 -07:00
Daniel Prilik
adb409b196 add Metroid GIF 2018-07-09 18:40:27 -07:00
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
af0edffe62 updated branch readme 2018-07-06 19:08:55 -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
466fa9d0eb very minor logo tweak 2017-12-13 14:09:43 -08:00
Daniel Prilik
c47461cdc0 add logo + windows exe icon 2017-12-13 13:58:39 -08:00