Page 1 of 2

Sega2.doc is enough, Really?

Posted: Fri Dec 15, 2006 9:00 am
by stalepie
Are you kiddin' me, Fonzie? I can make a full-fledged Mega Drive game using just the knowledge gleaned from that Genesis Technical Overview that was translated from the Chinese?

I think I'll have to write my own sound driver though. Hey, that reminds me, you were talking about drawing sprites in Paint Shop Pro using a Genesis palette swatch. I'm gonna need some kind of set up like that, or maybe use Tile Layer Pro. I don't know what's the best way to go.

Posted: Fri Dec 15, 2006 10:22 am
by TmEE co.(TM)
I agree with you. I have that doc too, and I didn't find it very useful. Go check out CMDs docs, these give you enough inf to write a nice game. But sound driver needs to be written by you (if you're unable to get an suitable driver).

Posted: Fri Dec 15, 2006 10:27 am
by ob1
I quite disagree.
sega2.doc has been a valuable help for me, as the Sega Genesis VDP documentation by Charles McDonalds.
Can't remember exactly what was my main source, but these 2 docs helped me up to 2/3.

Please note that I don't use sound.

Posted: Fri Dec 15, 2006 11:52 am
by stalepie
I'll use whatever I can get. Can anyone tell me the origin of the GENESIS_Technical_Overview.doc? Translated from Chinese? It says

"CONFIDENTIAL

PROPERTY OF SEGA"

so it is basically as good as the manual given to developers, perhaps...? (or this is the manual given to developers in Asia?) As a newcomer to making games, and being crazy enough to do it on old, dead consoles, I am thinking the NES will be easier to develop for, because there is more info out there. Then I am told the 6502 is trickier.

Well, I've found a palette editor for PhotoFiltre. Maybe this will help me. 64 colors, hm. Confusing. eghhh.

Posted: Fri Dec 15, 2006 12:42 pm
by ob1
Actually, I don't find the 68k especially hard to develop.
Moreover, it's more what we're used to, with registers, whereas the 6502 only has accumulator (think Z80 ?). OK, the 6502 has 3 index registers.
The video display processor (VDP) is sure a little bit tricky to program, but once you've figured the main principles, you'll sure be happy with it.

Chuck Kelly (& al) has written an amazing 68k simulator : http://www.monroeccc.edu/ckelly/EASy68K.htm
Charles McDonalds' docs is available here : http://cgfm2.emuviews.com/gen.php

The most important thing remains : develop on the system you love the most. And I do love Genny !!!

Posted: Fri Dec 15, 2006 1:07 pm
by TmEE co.(TM)
ob1 wrote:Actually, I don't find the 68k especially hard to develop.
68K is the BEST processor I know, x86(used in PCs) sucks compared to it(x86 has nice features though). I even don't miss high level languages when coding for 68K.

NES is very slow and I only way to write anything decent is ASM (with lots optimizations). Actually I don't know much about NES, but mappers are real pain in the @$$ for sure.

Posted: Fri Dec 15, 2006 2:44 pm
by ob1
TmEE co.(TM) wrote:... x86(used in PCs) sucks compared to it[68k]...
... oulĂ  ... 68k ISA is as CISCy as x86 ... Although I largely prefer 68k to x86 too ! What about 32 bits RISC (SH2, ARM7, ...) ?

OK we're off focus.

We'll made this ISA debate much later.

Posted: Sun Dec 17, 2006 9:39 pm
by stalepie
After I learn how to assemble a ROM, initializing it and putting the header in, and I've learned how to display a sprite and background and maybe take input from the controller... I will need to begin working on the graphics (you know, like trying to draw good ones). Are there any recommendations here, like what tools are the best? or maybe some pitfalls to avoid? I know I can just draw a .bmp with 64 colors and use a bmp-to-tile converter program, or something like that, but I'd like the graphics to be precisely how I draw them, and I want to know what is the best way. Sorry I am a bigtime beginner here. I am not if I have to draw backgrounds and sprites differently, or if I just program them differently. Thank you if anybody can help.

Posted: Mon Dec 18, 2006 8:36 am
by TmEE co.(TM)
What I use to write (and draw) stuff for MD :

I Use EDIT to write ASM file
I Use PAINT to draw graphics
I Use IRFANVIEW to change palettes of BMP files
I Use TGFEDIT 0.24 (My GFX editor) to draw graphics
I Use TGFEDIT 0.24 to change palettes of BMP, TGF files
I Use TGFEDIT 0.24 to convert BMP files to TGF files (my game friendly graphics file format).
I Use SMDGFX (my program) to convert TGF to tiles in DC.L ... file which can be INCLUDEd in ASM file.
I Use SMDGFX2 (my program) to convert TGF to tiles in DC.L ... file which can be INCLUDEd in ASM file. Rearranges tiles for sprites.
I Use all kinds of docs
I Use my brains to write code.
I Use SNASM68K assembler to piece all above together into something useful.

Posted: Mon Dec 18, 2006 8:43 am
by Stef
You have to know the base hardware limitation and more specifically the VDP limitations :
- The VDP draw image from TILE and TILEMAP.
- A TILE is 8x8 pixels sized box and 4 BPP so you can define it by 8x8x4 = 256 bits = 32 bytes.
- The tilemap defines the screen image. It can be sized from 32x32 to 128x128 (tile based).
- For each cell of the tilemap you define :
- tile number
- palette number (4 palettes available)
- priority
- horizontal and vertical flip...

That's the base of the base for the VDP. I hope you will understand, a picture would explains better than words here :)

Posted: Mon Dec 18, 2006 8:48 am
by ob1
Stef wrote:...It can be sized from 32x32 to 128x128 (tile based)....
I thought the tile map ranges up to 128 x 32, 64 x 64 or 32 x 128.

Posted: Mon Dec 18, 2006 12:33 pm
by stalepie
Maps can be up to 128*128 but it eats too much vram...
Maybe by setting A and B at same map adress, it is possible to do something with that plane size... I don't know...

Posted: Mon Dec 18, 2006 1:03 pm
by ob1
In his Sega Genesis VDP Documentation, Charles MacDonald says
"The name table size cannot exceed 8192 bytes, so while a 64x64 or 128x32 name table
is allowed, a size of 128x128 or 64x128 is invalid."

Posted: Mon Dec 18, 2006 2:49 pm
by Stef
ob1 wrote:In his Sega Genesis VDP Documentation, Charles MacDonald says
"The name table size cannot exceed 8192 bytes, so while a 64x64 or 128x32 name table
is allowed, a size of 128x128 or 64x128 is invalid."
Yep that's true, but i wanted to keep it simple :p

Posted: Mon Dec 18, 2006 4:16 pm
by stalepie
stalepie wrote:Maps can be up to 128*128 but it eats too much vram...
Maybe by setting A and B at same map adress, it is possible to do something with that plane size... I don't know...
heh, um...