|
ForumsSega Master System / Mark III / Game GearSG-1000 / SC-3000 / SF-7000 / OMV |
Home - Forums - Games - Scans - Maps - Cheats - Credits Music - Videos - Development - Hacks - Translations - Homebrew |
Author | Message |
---|---|
|
New VDP docs
Posted: Thu Mar 16, 2000 9:12 pm
|
I've finished up a document describing the SMS VDP in detail,
which is (hopefully) more accurate than the current info that's available. You can get it here: http://www.wenet.net/~cgfm2/smsvdp.txt Any comments or suggestions are welcome. |
|
|
Posted: Fri Mar 17, 2000 4:06 pm |
|
|
|
Re: New VDP docs (actual text this time)
Posted: Fri Mar 17, 2000 4:24 pm
|
Rockin! I can see now why that line interrupt intensive demo I was working on was doomed: I really didn't understand the way the VDP counts scanlines. Maybe I can ressurect the demo later on. I also didn't know it was necessary to read the control port to 'silence' the IRQ... I'd been getting rapid fire interrupts that had hosed everything I was working on, so I eventually quit using them, disabling interrupts and just polling port $7f (which worked in meka and brsms) or port $bd (which only worked in brsms if interrupts were disabled). Well, that's VERY useful. Hopefully I'll be able to release something this weekend that I'm not ashamed of. We'll see. I had noticed that some older SMS games seemed to to a few 'meaningless' port reads during interrupts, but I had dismissed it as bad coding, alongside their habit of pushing ALL the registers and shadow registers onto the stack at every interrupt, hblank included, and never using them. I pay for my hubris. |
|
Nyef
|
Re: New VDP docs (actual text this time)
Posted: Fri Mar 17, 2000 4:50 pm
|
Indeed. This truly rocketh mightily.
I knew about having to acknowledge the IRQ, but I didn't know most of the details of the scanline counters or that some games needed the CPU core to be able to check the IRQ line status when the interrupt flag changed (another thing to put on my CPU interface redesign todo list). Maybe this will also fix some of my PC-Engine problems...
That we will.
Register pushes like that is usually a sign of a poor-quality runtime or library setup, but port reads are usually important (usually).
We all pay for our hubris. It is both a Vice and a Virtue (along with Laziness and Impatience). Will that be check, cash, or credit card? --Nyef |
|