-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MEGA65: implement line-drawing DMA mode #404
Comments
3810fed <-- Unfinished "WIP" in |
Incomplete and possible buggy first try implementation of DMA line drawing. Ideas are based on a "draft implementation" by btoschi on Discord (@bjotos on github). The only reason I present this highly incomplete work in the next branch of Xemu (so not in dev) because I am on holiday, so it's a bit random when I have time to do more work. Thus it's better to release it in this unfinished form, I guess, if someone wants to play with it.
Checking with Shallan's clockhand sample, I can see that major-Y-axis mode isn't working properly. main-clockhand.prg.zip I have this code in my DMA SW sim, which works with test290.c from mega65 tests, which includes major-Y-axis modes:
Not sure if I missed to share that updated code, but two major diffs I can spot:
Note: +8 vs +0x800 is fine, address has 8 fractional bits in your code. |
As part of issue #198, the main and most important missing piece of DMA emulation is "line drawing mode" (LDM for short from now on).
Till now, the main bottleneck to implement was my mental limitation to understand how this works at all 😅 OK, ok, time was a factor as well not to try to dig into the VHDL of mega65-core ... 😅
Fortunatelly @bjotos (btoschi on MEGA65 Discord) wrote a test implementation in C, which was shared with me, huge thanks!
As I thought before, the major problem is understanding how the address incrementing works where the mentioned work before helps.
Original MEGA65 topic on implementing LDM: MEGA65/mega65-core#290
The text was updated successfully, but these errors were encountered: