Aggregating Community Research

Ask anything your want about Megadrive/Genesis programming.

Moderator: BigEvilCorporation

Post Reply
Mask of Destiny
Very interested
Posts: 615
Joined: Thu Nov 30, 2006 6:30 am

Aggregating Community Research

Post by Mask of Destiny » Thu Nov 05, 2015 11:58 pm

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.
Last edited by Mask of Destiny on Fri Oct 05, 2018 8:34 pm, edited 4 times in total.

MintyTheCat
Very interested
Posts: 484
Joined: Sat Mar 05, 2011 11:11 pm
Location: Berlin, Germany

Re: Aggregating Community Research

Post by MintyTheCat » Wed Jun 15, 2016 9:36 pm

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
UMDK Fanboy

Mask of Destiny
Very interested
Posts: 615
Joined: Thu Nov 30, 2006 6:30 am

Re: Aggregating Community Research

Post by Mask of Destiny » Wed Jun 15, 2016 11:41 pm

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?

Nemesis
Very interested
Posts: 791
Joined: Wed Nov 07, 2007 1:09 am
Location: Sydney, Australia

Re: Aggregating Community Research

Post by Nemesis » Thu Jun 16, 2016 1:44 am

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.

MintyTheCat
Very interested
Posts: 484
Joined: Sat Mar 05, 2011 11:11 pm
Location: Berlin, Germany

Re: Aggregating Community Research

Post by MintyTheCat » Thu Jun 16, 2016 6:52 am

Mask 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?
Yes, I had heard that Nemesis had written a document but he has answered below and cleared it up but 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.
No worries, I will have a look at Exodus' src, thanks.

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

Nemesis
Very interested
Posts: 791
Joined: Wed Nov 07, 2007 1:09 am
Location: Sydney, Australia

Re: Aggregating Community Research

Post by Nemesis » Thu Jun 16, 2016 12:25 pm

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.

Sik
Very interested
Posts: 939
Joined: Thu Apr 10, 2008 3:03 pm
Contact:

Re: Aggregating Community Research

Post by Sik » Thu Jun 16, 2016 1:10 pm

Whoa, I didn't even notice this thread existed.
Mask of Destiny wrote:Please limit posts in this thread to links to documentation, threads with useful research and test ROMs.
Would be even better to keep editing the first post to aggregate all the links that get posted.
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.

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".

MintyTheCat
Very interested
Posts: 484
Joined: Sat Mar 05, 2011 11:11 pm
Location: Berlin, Germany

Re: Aggregating Community Research

Post by MintyTheCat » Thu Jun 16, 2016 1:12 pm

Nemesis 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.
No worries at all - life gets in the way sadly :)
UMDK Fanboy

Nemesis
Very interested
Posts: 791
Joined: Wed Nov 07, 2007 1:09 am
Location: Sydney, Australia

Re: Aggregating Community Research

Post by Nemesis » Thu Jun 16, 2016 2:28 pm

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.

Mask of Destiny
Very interested
Posts: 615
Joined: Thu Nov 30, 2006 6:30 am

Re: Aggregating Community Research

Post by Mask of Destiny » Thu Jun 16, 2016 8:13 pm

Sik wrote:Would be even better to keep editing the first post to aggregate all the links that get posted.
Sure, I can do that.
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.

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.
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.
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.
That was my eventual intent, though I suppose I may have been half hoping someone else would do the hard work :D At some point, I had bookmarked some of the more useful pages, but I don't remember if I still have those.
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.
I'll add it to the list.

That reminds me. I have a test ROM for sprite capacity reduction I need to clean up and release.

Nemesis
Very interested
Posts: 791
Joined: Wed Nov 07, 2007 1:09 am
Location: Sydney, Australia

Re: Aggregating Community Research

Post by Nemesis » Fri Jun 17, 2016 12:01 am

That reminds me. I have a test ROM for sprite capacity reduction I need to clean up and release.
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.

Mask of Destiny
Very interested
Posts: 615
Joined: Thu Nov 30, 2006 6:30 am

Re: Aggregating Community Research

Post by Mask of Destiny » Sun Jan 29, 2017 7:06 am

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.

Mask of Destiny
Very interested
Posts: 615
Joined: Thu Nov 30, 2006 6:30 am

Re: Aggregating Community Research

Post by Mask of Destiny » Fri Oct 05, 2018 8:37 pm

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.

Post Reply