- Fixed mapper 000 by chaning the mod operation to not disinclude 0x3FFF from being turned into 0. This fixes all issues with mapper 000 as it matches other established emulators
- Fixed all warnings other than non-disableable ones.
- Added a way to assign a test rom name so that it can start at a custom location rather than the address vector at 0xFFFC
If not for the attribute flag, the proccesor
would automatically makes padding between the
elements of the struct since they jump over
the byte boundary for efficiency purposes,
making all elements easier to acces for the
cpu. This however destroys our entire union, since
its made with no paddin in mind, the attribute flag
removes the padding
+Makefile cleaning
+*Reg.bits renamed to more appropriate .field
Add NameTable and AttributeTable resolve funcs
that use the registers as input to obtain the
address.
Made v and t registers into a variable type
Fixed error regarding the highest bit of the registers,
which should've been null, not 1, my bad.
Change the PPU register engines to use the proper behaviour
as described by loopy and documented in the nesdev wiki
(https://www.nesdev.org/wiki/PPU_scrolling) <- here
Thus, ppu.address and ppu.scroll become obsolete and replace
with ppu.tReg and ppu.vReg that contain both, but in different
moments in time, we sometimes sync t -> v at certain triggers.
Basically we work with t and read from v, and sync some parts
between them when neccesary, loopy does a great job at documenting
this.
!!! PPU.ADDRESS and PPU.SCROLL ARE NOW OBSOLETE, WILL BE RM'D
Did a bunch of small fixes to the code architecture,
most notably wrote the NMI function for the CPU and
actually docked the ppu files to the rest of the project.
The PPU currently does nothing but process some registers
in a basic sense.
I (hopefully along with rendev) will start work on the
background rendering soon, I also need to fix the registers
from their current makeshift solutions to the correct loopy
ones, lots of work to be done *sigh*, but the future does
seem bright.