Shannon Birt's Avatar

Shannon Birt

@shannonbirt

Retro Computer/Console enthusiast. Attempting to tick retro game developer off bucket list . X : https://x.com/birt_shannon Youtube : https://youtube.com/@shannonbirt9267 Discord Shazza#4474

355
Followers
189
Following
137
Posts
06.09.2024
Joined
Posts Following

Latest posts by Shannon Birt @shannonbirt

New enemy: MANTICORE for Sega Genesis game - GILGAMECH
New enemy: MANTICORE for Sega Genesis game - GILGAMECH YouTube video by Mecha Zone

Part two of my "making of" series shows the animations in Blender with sprite prep. You also get to see the Manticore in the game as a rough prototype.
Watch on YouTube - like and subscribe LOL!
youtu.be/TRpQeQzwSFI

Or the full post on Patreon
www.patreon.com/c/mechazone/...

@GameDev @IndieGame

06.03.2026 19:52 ๐Ÿ‘ 12 ๐Ÿ” 4 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Thankyou! its forground scaling, just spikes are sprites.
Uses :
Double buffering.
Separate threads , game logic 60 fps , scaling slower than this.
68k assembly 95%
Uses VDP for vertical scaling via fast interupts, horiz scaling is all cpu driven.
Scaling slowed to match arcade, can run faster.

16.02.2026 15:59 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Theres 24 scales from 1-4x , scale . Its distributed so some columns are 1x/2x on the way to 2x , or 2x/3x going to 3x , or 3x/4x going to 4x.
The vertical scaling is fixed precision scaling so it has fine granularity also .
The scaler supports 72 scales from 1x - 4x but skips some to match arcade.

16.02.2026 15:46 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Mega Parodius Sega Megadrive - Stage 8 Boss Update
Mega Parodius Sega Megadrive - Stage 8 Boss Update YouTube video by Shannon Birt

Mega Parodius Stage 8 Boss Update !!

Tackling the technically challenging bits head on with the full screen scaling boss in Parodius - Puyon .

More information in the youtube notes there for those interested.

Lots of tricks to get enough performance etc.

Genesis does !!

youtu.be/pqNbWbk8iPA

16.02.2026 04:31 ๐Ÿ‘ 28 ๐Ÿ” 8 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

Yes we are very keen to get it done , but its early days . Well i guess theres been long enough for someone to port Parodius to the MD haha .
We hope to do the MD proud with it !!
Gradius could use a similar engine , Gradius III would be cool to look at after this if the team is willing.

16.02.2026 03:45 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Video thumbnail

We finally finished integrating the collision gridding system into MD Engine!

It was designed by the awesome @shannonbirt.bsky.social!

It helps boost performance tremendously for our current shooter examples!

It is also highly configurable!

#megadrive #mdengine #homebrew #indiedev #gamedev #sgdk

11.02.2026 20:50 ๐Ÿ‘ 25 ๐Ÿ” 8 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Unless you have an even number of 8 bit fields in sequence it gets padded anyway in a struct so be carefull when designing your structs to pack the memory efficiently . This breaks stuff in assembly too for incremental addressing . Handling byte fields on 68k is not great for a few reasons.

01.02.2026 05:51 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Regressions , sometimes you wonder how does this possibly affect that ?
Detective work begins - again.

31.01.2026 03:27 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

Thanks ! Its not using anything that would totally abuse rom like precalced frames , the cpu is doing the muscle work to expand the frames.

However its 128x128 base frames x 4 are 32 kb of rom total and the scaler code is similar so if tight on rom with an 8 mbit cart etc it would have been tight.

21.01.2026 02:50 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Thanks ! Vector Orbitex is covering the audio in the port and hes doing awazing work.

16.01.2026 22:28 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

The smaller the better really for int. handlers.
Horiz scaling uses a lot more cpu than vertical so I like to tackle it first.
It also uses dma+buffers, Vertical scaling is just a bit of cpu really. Its not trivial but when you consider theres no dma cost for vertical its much less resource hungry.

16.01.2026 10:17 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Thanks for the kind words :-)
Yes I think we will handle it all on MD.
I'd like to find a few speedups however as the sprite handling and vertical scaling will cost some cpu.
As he is a forground layer we have nearly all the sprites we can use also so options / lazers etc all are fine.

16.01.2026 06:39 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Thanks Greg, yeah its coming along well . Now to get the vertical scaling and sprite spikes in !!

16.01.2026 06:23 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Video thumbnail

Mega Parodius (Megadrive) Scaling !!

Went crazy, decided to do the hardest bit (possibly) in the port next , Stage 8 Boss !!

Horizontal scaling only at present , vertical is next . Horizontal is much harder to achieve at speed.

1,2,3,4x scale over 74 updates. He's 21kb of tiles ie massive !!

16.01.2026 00:49 ๐Ÿ‘ 71 ๐Ÿ” 20 ๐Ÿ’ฌ 4 ๐Ÿ“Œ 2

Yeah , thats the curse of less palettes - you end up using more rom to compensate .
8x8 has some great benefits though - definately worth implementing at times.

07.01.2026 08:28 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

2 x 8 work quite well for a lot of sprites but yeah they have to be indexed correctly for speed otherwise its some cpu to shift the indexes.
I used a lot of 2 x 8 splits in lufthoheit as that allows interleaving of the color splits . A lot of small sprites can get away with 8 colors.

07.01.2026 08:13 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Post image

Would have been so much better with 6 palette lines, it becomes tricky if you have player pal + 2 pal lines for BG and FG.
Nice work ! guess you use a global index to compare palettes at speed.
I brute forced this for SOTA, used interupts / DMA color updates to update 15 colors on a scanline .

07.01.2026 07:25 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Mega Parodius WIP Update
Mega Parodius WIP Update YouTube video by Shannon Birt

*** Mega Parodius Update ( Sega Megadrive ) ***

For 60 FPS video I've posted the update on YT below link below.

But just quickly - more in the description in the vid , updates on the Blue Bell explosion , Enemy destruction / collisions & VRAM handling !!

www.youtube.com/watch?v=pq_I...

06.01.2026 23:41 ๐Ÿ‘ 55 ๐Ÿ” 23 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

Collision detection is being done still , player can eat bullets and bullets are detecting collision vs objects but no dispose routines are in place yet.

For this stress test the way to hit max cpu is to leave the objects onscreen so we hit the max sprite load anyway.

12.12.2025 23:29 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Just under 20% of cpu to write the sprite list on the worst frame.

Updated music by Vector, he updated the orchestral hit using FM + PSG for the SFX rather than PCM - audio wizardry !!

Pyron has been working on stage 2/3 assets and that is shaping up very nicely indeed. Lots of treats in store !!

12.12.2025 23:26 ๐Ÿ‘ 6 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

We hit the 80 sprite max mark a few times, sprite counter for the frame on the left side. 21 sprites for Player + attacks, 18 for water and hud, up to 35 for bullets and rest are enemies.

C sprite engine was tweaked - 25 % faster. C engine then re-written in 68k assembly 30% faster again. .

12.12.2025 23:24 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Video thumbnail

*** Mega Parodius (MegaDrive) Update ***

Dialing up the engine to see what it can handle and we run out of sprites before cpu so thats a good thing as we don't want any slowdown .

Not accurate to arcade but might be an insane mode option, lots of logic / animations missing / WIP etc.

1/..

12.12.2025 23:24 ๐Ÿ‘ 57 ๐Ÿ” 17 ๐Ÿ’ฌ 3 ๐Ÿ“Œ 0
Video thumbnail

I just realised that scrolling can be used to do temporal reprojection of interlaced lines to reduce the artefacts. Only in 2d space but still ๐Ÿ˜ฎ!

01.12.2025 19:29 ๐Ÿ‘ 100 ๐Ÿ” 21 ๐Ÿ’ฌ 7 ๐Ÿ“Œ 0
Video thumbnail

Chunky, but 60 fps 3d possible with colors and transparency on bare metal Megadrive #SGDK #BlastEm

27.11.2025 20:33 ๐Ÿ‘ 190 ๐Ÿ” 56 ๐Ÿ’ฌ 14 ๐Ÿ“Œ 0

This is amazing stuff . Hope a game of some sort comes out of it at the end if you find the time / cpu to add that logic . Still C based code here ?

28.11.2025 23:50 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Video thumbnail

Ported the #C64 sprite handler to #Amiga (bottom left, using 16blit) and to #SegaGenesis / #MegaDrive (bottom right, using low level functions from #SGDK)... Hello SEGA!

24.11.2025 19:13 ๐Ÿ‘ 34 ๐Ÿ” 9 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Sega Genesis Game: Gilgamech - MINI BOSS
Sega Genesis Game: Gilgamech - MINI BOSS YouTube video by Mecha Zone

My first (mini) boss!
It's simple but actually quite fun to battle. I learned a lot from programming all the different aspects. I posted a 3-part dev diary about it on my Patreon if you are curious.
www.patreon.com/c/mechazone

youtu.be/3oY2uPrjfxE

#Gilgamech #GameDev #IndieDev #SegaGenesis #SGDK

21.11.2025 15:12 ๐Ÿ‘ 18 ๐Ÿ” 8 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

Thanks :-) the team is really pushing hard on this.

MD is a very strong 16 bit platform for moving a lot of sprites around so shooters are right up its alley.
We have a 60 fps target at all times , we are targetting zero slowdown.
Optimising early so later on speed is baked in.

21.11.2025 04:21 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

One option is to not play sfx during a fade ( therefor no stall ) which could give the fade effect more importance anyway.
The sgdk / xgm2 developer has said he can largely fix this , so that is good news.

20.11.2025 19:23 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

The quality is retained and its still at 60 fps , its just taking extraordinary amounts of cpu to play sfx during the fade due to the way the fade is handled . So it would become an issue in a busier scene . Thankfully these fade outs occur at the start of boss sections so nothing much is going on .

20.11.2025 19:21 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0