Here's the link of my blog... actually it's just dealing about genesis deving. You can find my small dev kit and a test rom using it
It's all french but seems we only have french people here except Mask of Destiny for now :p

Yep, i did my own draw routines. You can see them by downloading the mini devkit, libraries sources are included.
I'm using a 2 horizontal pixels based drawing methos because it's faster to manipulate byte than "half byte"
All code is in pure C, we can obtain better performance with ASM but imo that's not that bad for C code
Genesis isn't designed for bitmap drawing, I've to use an internal bitmap buffer in main memory then blit it to video memory in software because i need to convert the bitmap in tiles.

I did a brief translation in english about the contect of my blog, i can post it here but believe me, it's not really interesting People just need the download links

Last edited by Stef on Fri Dec 01, 2006 7:31 pm, edited 1 time in total.

Stef wrote:Yep, i did my own draw routines. You can see them by downloading the mini devkit, libraries sources are included.
I'm using a 2 horizontal pixels based drawing methos because it's faster to manipulate byte than "half byte"
All code is in pure C, we can obtain better performance with ASM but imo that's not that bad for C code
Genesis isn't designed for bitmap drawing, I've to use an internal bitmap buffer in main memory then blit it to video memory in software because i need to convert the bitmap in tiles.

I did a brief translation in english about the contect of my blog, i can post it here but believe me, it's not really interesting People just need the download links

Before I lost the code, I did a line/pixel draw by manipulating the tile data memory directly. So I'm wondering would that be faster or not

Stef wrote:Genesis isn't designed for bitmap drawing, I've to use an internal bitmap buffer in main memory then blit it to video memory in software because i need to convert the bitmap in tiles.

Are you double buffering the screen?

Do you DMA transfer the screen over multiple frames?

That's not a real "double buffer", you can see it as a main memory buffer which is blitted to video memory each time. I can add a double buffer with a sort of "asynchrone blit" but that will use almost all the main memory :-/
I can't use DMA as i need to rearrange the bitmap buffer in tile. To be more exact, i can use DMA by using some tricks but i need to do a lot of DMA transfert and the total amount of data transfered is 2 time the size transfered in software. Finally, that's not faster than doing a good software transfert.

Stef wrote:Yep, i did my own draw routines. You can see them by downloading the mini devkit, libraries sources are included.
I'm using a 2 horizontal pixels based drawing methos because it's faster to manipulate byte than "half byte"
All code is in pure C, we can obtain better performance with ASM but imo that's not that bad for C code
Genesis isn't designed for bitmap drawing, I've to use an internal bitmap buffer in main memory then blit it to video memory in software because i need to convert the bitmap in tiles.

I did a brief translation in english about the contect of my blog, i can post it here but believe me, it's not really interesting People just need the download links

Before I lost the code, I did a line/pixel draw by manipulating the tile data memory directly. So I'm wondering would that be faster or not

That all depend of the number of line or pixel you're drawing.
For a small number your method is faster, but if you want a real bitmap buffer you want to manipulate freely and a lot, i think it's better to use my method. As i'm doing some basic 3D rendering (with triangle fill), i just can't use your method.
Your method offers another important advantage : the VDP fill capability ! you can use it to clear your display buffer without any speed penality. On my side i need to :
- clear buffer
- do my draws
- blit the buffer

Stef wrote:Yep, i did my own draw routines. You can see them by downloading the mini devkit, libraries sources are included.
I'm using a 2 horizontal pixels based drawing methos because it's faster to manipulate byte than "half byte"
All code is in pure C, we can obtain better performance with ASM but imo that's not that bad for C code
Genesis isn't designed for bitmap drawing, I've to use an internal bitmap buffer in main memory then blit it to video memory in software because i need to convert the bitmap in tiles.

I did a brief translation in english about the contect of my blog, i can post it here but believe me, it's not really interesting People just need the download links

Before I lost the code, I did a line/pixel draw by manipulating the tile data memory directly. So I'm wondering would that be faster or not

That all depend of the number of line or pixel you're drawing.
For a small number your method is faster, but if you want a real bitmap buffer you want to manipulate freely and a lot, i think it's better to use my method. As i'm doing some basic 3D rendering (with triangle fill), i just can't use your method.
Your method offers another important advantage : the VDP fill capability ! you can use it to clear your display buffer without any speed penality. On my side i need to :
- clear buffer
- do my draws
- blit the buffer