Aggregating Community Research
Moderator: BigEvilCorporation
-
- Very interested
- Posts: 624
- Joined: Thu Nov 30, 2006 6:30 am
Aggregating Community Research
As sort of a first step towards well organized community documentation I thought I would start a meta-thread that has links to threads with useful information. This isn't really sufficient given that many of those threads are quite long and sometimes you have to read through a fair bit of back and forth to get the final result, but hopefully it will make things a little easier to find. Please limit posts in this thread to links to documentation, threads with useful research and test ROMs. Posting links to particularly useful pages/posts within a large thread (the YM-2612 mega thread comes to mind) is also very welcome.
I've browsed around and compiled this list to start. Probably biased towards more recent threads since those are easier to find. EDIT: Added a few links from the comments below. I will do my best to keep this top post updated with new links as people post them.
Motorola 68000:
M68000 Microcode-level emulation
M68K Interrupt Processing
Undefined behavior for ABCD and SBCD
MOVEM Extra Read
68k edge case: btst dN,#immed
YM-2612:
New Documentation: An authoritative reference on the YM2612
YM2608 Manual Translated from Japanese (provided by Nemesis in said thread)
Interesting pages in the thread
CSM Mode
Operator Unit
Envelope Generator, SSG-EG Mode
Phase Generator, Some Corrections
Envelope Generator Corrections
LFO Discussion
LFO Discussion Continued
YM2612 Die Shot
Die Shot Analysis, More LFO Discussion
YM3438 Die Shot
YM2203 and YM2413 Die Shots, Test Register info, Serial register file
Test Register $2C, Low Level details
More Test Register Stuff, Channel/Operator Eval Order
VDP:
VDP VRAM access timing
VDP Internals
Megadrive video timings
MD VDP color levels
VDP 128Kb Extended VRAM mode
Mickey Mania emulator comparison (contains a fairly in depth description of sprite masking)
Titan's Mega Drive tech docs including Debug Register
Mode 4 VRAM Timing
IO:
XE-1AP
Teradrive:
Sega TeraDrive motherboard pics - Also has firmware images
Teradrive Hardware Info
Other Docs:
Collection of MD tech docs assembled by Eke A lot of the stuff in here is older docs you can find in other places, but it also includes some great docs written by Eke on things like save EEPROMs and lightguns.
Test ROMs:
Sprite Masking and Overflow by Nemesis: Binary Source
VDP FIFO Testing by Nemesis
68K Opcode Size Test by r57shell Binary Source
Exhaustive BCD Verifier by flamewing (with some contributions by notaz) Binary Source
Mega Mouse delay test by Eke Note this is not a pass/fail type test, it just prints out the measured delays. See this thread for details
Older Documents:
Charles MacDonald's VDP documentation
Official Sega documentation converted from an old Word file
Official Sega documentation for the SMPC - Contains information on a number of Genesis peripherals including the mouse and Sega multitap.
I've browsed around and compiled this list to start. Probably biased towards more recent threads since those are easier to find. EDIT: Added a few links from the comments below. I will do my best to keep this top post updated with new links as people post them.
Motorola 68000:
M68000 Microcode-level emulation
M68K Interrupt Processing
Undefined behavior for ABCD and SBCD
MOVEM Extra Read
68k edge case: btst dN,#immed
YM-2612:
New Documentation: An authoritative reference on the YM2612
YM2608 Manual Translated from Japanese (provided by Nemesis in said thread)
Interesting pages in the thread
CSM Mode
Operator Unit
Envelope Generator, SSG-EG Mode
Phase Generator, Some Corrections
Envelope Generator Corrections
LFO Discussion
LFO Discussion Continued
YM2612 Die Shot
Die Shot Analysis, More LFO Discussion
YM3438 Die Shot
YM2203 and YM2413 Die Shots, Test Register info, Serial register file
Test Register $2C, Low Level details
More Test Register Stuff, Channel/Operator Eval Order
VDP:
VDP VRAM access timing
VDP Internals
Megadrive video timings
MD VDP color levels
VDP 128Kb Extended VRAM mode
Mickey Mania emulator comparison (contains a fairly in depth description of sprite masking)
Titan's Mega Drive tech docs including Debug Register
Mode 4 VRAM Timing
IO:
XE-1AP
Teradrive:
Sega TeraDrive motherboard pics - Also has firmware images
Teradrive Hardware Info
Other Docs:
Collection of MD tech docs assembled by Eke A lot of the stuff in here is older docs you can find in other places, but it also includes some great docs written by Eke on things like save EEPROMs and lightguns.
Test ROMs:
Sprite Masking and Overflow by Nemesis: Binary Source
VDP FIFO Testing by Nemesis
68K Opcode Size Test by r57shell Binary Source
Exhaustive BCD Verifier by flamewing (with some contributions by notaz) Binary Source
Mega Mouse delay test by Eke Note this is not a pass/fail type test, it just prints out the measured delays. See this thread for details
Older Documents:
Charles MacDonald's VDP documentation
Official Sega documentation converted from an old Word file
Official Sega documentation for the SMPC - Contains information on a number of Genesis peripherals including the mouse and Sega multitap.
Last edited by Mask of Destiny on Fri Oct 05, 2018 8:34 pm, edited 4 times in total.
-
- Very interested
- Posts: 484
- Joined: Sat Mar 05, 2011 11:11 pm
- Location: Berlin, Germany
Re: Aggregating Community Research
Is the VDP doc that Nemesis wrote online any where? Plus, it is a good idea to add Charles' VDP doc here too e.g. here:
http://emu-docs.org/Genesis/Graphics/genvdp.txt
http://emu-docs.org/Genesis/Graphics/genvdp.txt
UMDK Fanboy
-
- Very interested
- Posts: 624
- Joined: Thu Nov 30, 2006 6:30 am
Re: Aggregating Community Research
The forum thread Nemesis started with his findings from logic analyzer work is the first thread linked in the VDP section. He also posted some information in the next thread listed. The last thread in the list was also started by Nemesis. Are you referring to a document besides those?
Re: Aggregating Community Research
I never really got around to writing up a proper VDP document with my findings, but the sourcecode for Exodus contains the bulk of my original research in the form of detailed comments and working models, both for the VDP and the YM2612. There's a lot of new research folded into that VDP core I've never really posted much about from memory, such as the implementation of DMA and the internal render steps and timing.
-
- Very interested
- Posts: 484
- Joined: Sat Mar 05, 2011 11:11 pm
- Location: Berlin, Germany
Re: Aggregating Community Research
Yes, I had heard that Nemesis had written a document but he has answered below and cleared it up but thanksMask of Destiny wrote:The forum thread Nemesis started with his findings from logic analyzer work is the first thread linked in the VDP section. He also posted some information in the next thread listed. The last thread in the list was also started by Nemesis. Are you referring to a document besides those?
No worries, I will have a look at Exodus' src, thanks.Nemesis wrote:I never really got around to writing up a proper VDP document with my findings, but the sourcecode for Exodus contains the bulk of my original research in the form of detailed comments and working models, both for the VDP and the YM2612. There's a lot of new research folded into that VDP core I've never really posted much about from memory, such as the implementation of DMA and the internal render steps and timing.
Btw Exodus runs once and crashes and will never work again on my Windows 7 PC and I had sent you a PM. Do you have any ideas why it does that?
UMDK Fanboy
Re: Aggregating Community Research
Sorry, as you might have noticed I've been pretty well absent from SpritesMind (and pretty much everywhere else) for the past year or so, just getting back into the swing of things now. That said, I didn't seem to get your PM. I have one from you on January 6, but you didn't mention any problems running Exodus in that message, can you re-send the info to me? If you're having problems, I'll definitely look into it.
Re: Aggregating Community Research
Whoa, I didn't even notice this thread existed.
That thread definitely has good info, but we really need to gather everything into a proper reference doc, with an index to make it easy to find stuff and without outdated speculation that only ends up being clutter.
Would be even better to keep editing the first post to aggregate all the links that get posted.Mask of Destiny wrote:Please limit posts in this thread to links to documentation, threads with useful research and test ROMs.
We really need to sort out this one, because that this thread exists has been a giant excuse for people to say "just check that thread" whenever I requested info on the YM2612. It's not even remotely useful. If you want to check something you need to read through dozens of pages to see where it is (paying careful attention to each post or you risk missing something important), and then when you do find something you still need to keep reading to see if it turns out it was wrong and better information exists later... all that just for wanting to look up a small detail.Mask of Destiny wrote:YM-2612:
New Documentation: An authoritative reference on the YM2612
That thread definitely has good info, but we really need to gather everything into a proper reference doc, with an index to make it easy to find stuff and without outdated speculation that only ends up being clutter.
Sik is pronounced as "seek", not as "sick".
-
- Very interested
- Posts: 484
- Joined: Sat Mar 05, 2011 11:11 pm
- Location: Berlin, Germany
Re: Aggregating Community Research
No worries at all - life gets in the way sadlyNemesis wrote:Sorry, as you might have noticed I've been pretty well absent from SpritesMind (and pretty much everywhere else) for the past year or so, just getting back into the swing of things now.
UMDK Fanboy
Re: Aggregating Community Research
Yeah, the YM2612 thread does need work. Might I suggest referencing individual posts from the thread here, even if just for the starting point of conversation chains, rather than the thread as a whole. That's the first part of sorting out that thread really, making an index of the useful/relevant content within it.
Here's one relevant thread I could remember off the top of my head: viewtopic.php?f=2&t=541. Lots of original and useful info on sprite rendering, including the sprite test rom I put together.
Here's one relevant thread I could remember off the top of my head: viewtopic.php?f=2&t=541. Lots of original and useful info on sprite rendering, including the sprite test rom I put together.
-
- Very interested
- Posts: 624
- Joined: Thu Nov 30, 2006 6:30 am
Re: Aggregating Community Research
Sure, I can do that.Sik wrote:Would be even better to keep editing the first post to aggregate all the links that get posted.
I agree. This thread isn't meant to be a final destination for people who need documentation, just a place to aggregate research so that someone who wants to write that documentation doesn't have to spend a bunch of time searching for various forum threads.Sik wrote:We really need to sort out this one, because that this thread exists has been a giant excuse for people to say "just check that thread" whenever I requested info on the YM2612. It's not even remotely useful. If you want to check something you need to read through dozens of pages to see where it is (paying careful attention to each post or you risk missing something important), and then when you do find something you still need to keep reading to see if it turns out it was wrong and better information exists later... all that just for wanting to look up a small detail.Mask of Destiny wrote:YM-2612:
New Documentation: An authoritative reference on the YM2612
That thread definitely has good info, but we really need to gather everything into a proper reference doc, with an index to make it easy to find stuff and without outdated speculation that only ends up being clutter.
That was my eventual intent, though I suppose I may have been half hoping someone else would do the hard work At some point, I had bookmarked some of the more useful pages, but I don't remember if I still have those.Nemesis wrote:Yeah, the YM2612 thread does need work. Might I suggest referencing individual posts from the thread here, even if just for the starting point of conversation chains, rather than the thread as a whole. That's the first part of sorting out that thread really, making an index of the useful/relevant content within it.
I'll add it to the list.Nemesis wrote:Here's one relevant thread I could remember off the top of my head: viewtopic.php?f=2&t=541. Lots of original and useful info on sprite rendering, including the sprite test rom I put together.
That reminds me. I have a test ROM for sprite capacity reduction I need to clean up and release.
Re: Aggregating Community Research
That'd be handy to have around, emulators need to have better support for that. It's common to want to find a bit of extra VDP transfer capacity by disabling the VDP during hblank.That reminds me. I have a test ROM for sprite capacity reduction I need to clean up and release.
-
- Very interested
- Posts: 624
- Joined: Thu Nov 30, 2006 6:30 am
Re: Aggregating Community Research
I've updated the OP with links to what seemed like the most relevant pages in the YM2612 mega-thread. Hopefully that will make it a bit easier to find stuff.
-
- Very interested
- Posts: 624
- Joined: Thu Nov 30, 2006 6:30 am
Re: Aggregating Community Research
Bumping this as I've added a number of additional links to the OP. I'm sure there's stuff I've missed, so feel free to suggest additions here.