drhelius / Gearcoleco

ColecoVision emulator for macOS, Windows, Linux, BSD and RetroArch.
https://x.com/drhelius
GNU General Public License v3.0
62 stars 15 forks source link

VRAM Error? #5

Closed KPreston2900050 closed 7 months ago

KPreston2900050 commented 2 years ago

Why bother

drhelius commented 2 years ago

Thanks for reporting, I'll take a look.

Regarding audio debugging? What are you actually missing / would like to see?

drhelius commented 2 years ago

Regarding the VRAM memory error, any code you can share will be very helpful to understand what is going on.

drhelius commented 2 years ago

No worries, this feedback is very valuable to me. Although I have limited time to spend with it I will eventually try to solve these issues.

drhelius commented 2 years ago

I haven’t forgotten about this, it’s just that I’m swamped with work.

Regarding the VRAM issue, you said that even though the memory editor is showing your data without the shift, everything was working 100% normal. Does this mean that the shift is not being represented in the memory editor but the data is still correctly being interpreted by the video chip and rendered to the screen? Or is the data also screwed up when drawing to the screen because the shift is not being injected?

I’m suspecting about the internal flag in TMS9918 used to detect the first and second write to the control port.

Could you please share the LDIRVM routine? I think the key to solve my bug is in there.

drhelius commented 2 years ago

The last observation is correct.

A normal Colecovision has 1KB of RAM ($400 bytes). RAM starts at $6000 so 1KB goes from $6000 to $63FF. But ram is mirrored from $6000 to $8000 so you can read/write outside that range. But even if you write in the mirrored area, the real data will be stored at $6000-$63FF.

So writing at $7120 is the same as writing to ($6000 + ($7120 & $03FF)) so it is like writting to $6120.

drhelius commented 2 years ago

I can't find the VRAM shifting issue, if you can share the ROM I can debug it myself.

drhelius commented 2 years ago

Thanks for all your comments, any feedback is always welcome.

I'm currently under a lot of personal pressure but most features will eventually come.

drhelius commented 2 years ago

That is very nice. I respect all communities but I don't work for any, as this is only a way of learning new things for me. I may jump to other things in the future. I may invest time on it or maybe not. I can't promise, so I don't usually get involved in any community. Having said that, any feedback is always welcome.

drhelius commented 2 years ago

Thanks for all the info! I really appreciate it.

I'll definitely continue the development of this emu but I'm not in a good personal situation to spend time on this right now.

Just for your understanding, if I keep the issue opened on github that means I'll try it any time sooner or later. That applies to all my emulators. Thanks for your patience.