正在加载视频...

视频加载失败

** SEGA GENESIS / MEGADRIVE Software Scaling + Rotation *** Sega Megadrive can't scale backgrounds and rotate sprites in software at the same time ?? - hold my beer !! After Scaling I've been tinkering with Rotating sprites in software and I think it looks pretty sweet ! In...

19,378 次观看 • 1 年前 •via X (Twitter)

11 条评论

Francisco J. Palma boop/bop/beep 的头像
Francisco J. Palma boop/bop/beep1 年前

@PABLOPEGA1980 This is not a: "Hold my beer!!!", this is already a: "Hold my keg!!!". Thanks for your contributions to Mega Drive, you are getting us to dream about it again.

Shannon Birt 的头像
Shannon Birt1 年前

@PABLOPEGA1980 LMAO .. hold my keg !! Love it . Thankyou , In the retro space we are all about bunch of dreamers - let's make the magic happen again.

RedDeer.Games IR 的头像
RedDeer.Games IR2 年前

🌈✨ Transform playtime into learning time with The Smurfs on Nintendo Switch! 🎓🎮 Perfect for curious minds. Buy now: [The Smurfs: Learn and Play]( #Smurfs #NintendoSwitch

robert james moss 的头像
robert james moss1 年前

Sod hold the keg , this brewery level. Ninetendo had to add Risc chips to a console that was 3 years younger for this stuff

Shannon Birt 的头像
Shannon Birt1 年前

Brewery level , now that's something to aspire too 😉 The venerable 68k has a few tricks Left to show the youngsters !

Proyecto Mega Drive 的头像
Proyecto Mega Drive1 年前

Seeing this, I imagine the next update will be about the Mega Drive's VR capabilities and its AI in handling and using cryptocurrencies and the best advice the machine gives you for stock market investments.

Shannon Birt 的头像
Shannon Birt1 年前

Haha ! Now that would be something , it could make me some money so I could retire so I can make megadrive games faster !! Been misdirecting my efforts wasting my time on scaling and rotation when I could be making coin ;-)

Gustavo Oliveira 的头像
Gustavo Oliveira1 年前

With each new post you show us things that everyone said were impossible. Your game will be one of the greatest in MD!

Shannon Birt 的头像
Shannon Birt1 年前

Thankyou for the kind words. We are going to cram a lot of "impossible" things into the game - Genesis does !

NÃOMEQUESTIONE 的头像
NÃOMEQUESTIONE1 年前

Super smooth, you making the impossible happening again! Next step: make mode 7 background transparent ;), jokes aside, the mode 7 background seems no drop in frame rate. How many CPU left for game logic?

Shannon Birt 的头像
Shannon Birt1 年前

Thanks 😊 Haha mode 7 transparency , I think we need the debug register for that 🤔 Yes no drop at all in frame rate for the scaled background - i found some optimisations. To run game complex logic we might need to render a rotation to vram to free up some cpu . 80 sprites are currently in play still in the video.

相关视频

** MEGA Parodius Scaling Effects Part 1 ** One of the big challenges with the Parodius Megadrive port is Stage 8's boss - The puffer-fish *Pooyan* with his full screen scaling effect. The goal is to be very close to the arcade (with extras on top ) so I thought lets tackle it head on to see how close we can get. I was also keen to jump into another scaling code rabit hole haha. Pyron pulled out all the stops and got me the source frames and reworked the BG tiles for this test - a big thankyou to him , Vector Orbitex is busy working on Stage 2 tracks so the team is working hard all round on this port. The MD has no sprite / background GFX scaling hardware , however the VDPs Vertical scroll can be updated per scanline to help vertical scaling on backgrounds, but there is a cpu cost to manage all the interupts so thats not free either. With the Horizontal scaling there is no help at all , apart from a semi-friendly packed pixel format for the cpu to work with, its not quite chunky format but better than planar format still for scaling. So its falls back to the 68k CPU to do all of the horizontal expansion which is the largest cpu cost. Basically drawing strips of either 1x, 2x, 3x or 4x wide columns at speed. So we are one week into this Boss's routine and you can see from the below video the horizontal scaling is implented ( vertical will be in the next update ) . We are scaling from 1x to 4x in the video below in 74 steps for testing . The column distributions are always a bit painfull to do - thankfully they are all worked out now. This is the third scaler I have built and the goal was with this one to make it really flexible for use in other projects also, sometimes when you optimise something to the last degree all the flexibility gets taken out of it. Currenty scaling at 12-25 FPS update here, I had some rules against some optimisations which I would use and some I wouldn't , thankfully we are a bit ahead of the Arcades animation frame rate here still and I may yet find optimisations that fit within the scope. We have vertical scaling and sprite spikes to add yet so Im hoping i can find a few more optimisations to offset things when they are implemented also. In a scale frame update we are processing close to 42000 pixels in ram before using DMA to send to VRAM . Using a 41x16 (656 tile scale buffer) - single buffered for now due to its size in VRAM. So thats nearly 21k in tiles ! I had to re-organise ram a bit to support a buffer of that size for the stage. The scaling function is written in 68k assembly , with a little C code handling the Vertical interupt code ( so the game logic can actually run & DMA updates etc ) . The DMA routines are in assembly also and customised for large chunk size ( big blocks of tiles ) which suits the scaler. I had some race conditions to sort out where the cpu was faster than DMA (sending tiles from RAM to VRAM ) and in some cases where it wasn't so it had to be balanced. We may be able to add more detail into the top and bottom of the background yet but its low priority for now until all the other bits are in !! #SGDK #SegaMegadrive #Genesis #Parodius

Shannon Birt

25,545 次观看 • 6 个月前

*** SEGA GENESIS/MEGADRIVE - SCALING PART 2 *** Whats better on a Friday than seeing some scaling effects on the Megadrive ? .. nothing, so read on ... In the previous part we were software scaling in either axis by a given factor, but I couldn't change the scale factor per scanline on the same frame, so I couldn't skew the base image for tilting into screen eg Mode 7 type effects. - One issue was it was scaling column by column which got wrecked for performance trying per scanline adjustments. So I converted to a row scaler rather than column, this allowed expansions and contractions on a per scanline basis. - Speed up the code significantly , now running a sprite load + music + scaling on cpu with ~50% cpu free. Relied heavily on Python scripts I wrote to generate the 68k assembly for this as it was mind numbing labourious. In doing so I got the scripts competing with each other to come up with the fastest method for each scale , I'm starting to like python ;-) - Tried all sorts to speed up the horizontal interupt - handles vertical scaling, exotic methods eg unsafe interupts / racing the beam & updating the vertical scroll every X cpu cycles, in the end the Z80 cpu (audio) stealing the 68k cpu bus intermittendly just killed these ideas as it would only be 95% stable, ended up just doing smarter interupts that saved a lot of cpu instead. - The good and the bad, spent too long on this is the bad, the good is we will need it in Lufthoheit in a few places to make up for that !! Carsten666 CYBERDEOUS - Crouzet Laurent #SGDK #SegaMegadrive #SegaGenesis

Shannon Birt

11,070 次观看 • 1 年前

** MEGA Parodius Scaling Effects Part 2 ** Well - this is the BIG one - literally !! Huge thanks to my team Pyron & Vector Orbitex for their efforts. Pyron has provided all the source frames for Puyon and his spikes / explosion and a lot of analysis video on how the spikes behave / move which was really helpful. Pyron also used his CRT setup for this video as we felt an emulator video would not do it justice - running on 100% real MD hardware FTW. Vector has provided the catchy boss music and its sounding great - as always ! The coding on this has been a bit insane - things done since part 1 post previous: Implemented dual buffering - Last video was single buffered - so VRAM is very tight now , we only have about 40/2048 tiles free. For the longest time I didn't think it would fit - I found a vram jigsaw puzzle that made it work in the end. Double buffering has cleaned up the stability of the animation and matches the arcade scaling effect now albiet costing 2x more VRAM . Vertical Scaling Implemented - the vertical scaler was taken from Lufthoheit ( my other shooter ) and its heavily optimised to reduce cpu usage. During the scaling the vertical scaler partitions the 68k processor registers into 2 sets, 4 registers are allocated to feeding the fast horizontal interrupt (h-int) that drives the vertical scaling , remaining 12 registers are for the horizontal scaler running in the background. This setup is much faster than normal backup / restore register methods, as we do not need to backup / restore registers in the h-int which would double CPU costs. The catch is the momment any background routine tries to use the H-ints registers it would break things so it has to be carefully timed. Added the spike projectiles - this was very tricky to get close to the arcade, they are semi heat seeking missiles basically and hence needed code that worked out angle differences to player at speed theres no time for arc-tan or similar so it uses faster lookup tables to work out the angles . They speed up over time and get larger and whats more we can't keep all the scales in VRAM - we have room for 2 spike buffers only. Also what was a real pain was working out scaled coordinates for the circular launch of the spikes . Added Fish Damage - Shock frame and Explosion frames from Arcade . Very proud of the fact we have the full arcade quality explosion is which is fully scaled also. Added Temporal Masking - which is fancy wording for don't draw nothing to buffer if nothing is there already there for the scaling . So empty Corners and edges can be optimised out to lower cpu costs and rom costs. I had to make some scripting for this and work out what areas did not need drawing at all in the frame, which should be force cleared by cpu and which areas should just be copied from rom. This reduced rom size by 30 kb and with a bit more work we could extend that to 60 kb & get a bit more speedup even doing so. Added a frame limiter . In the last video update we let the 68k burn hot and just pump out frames as fast as it could - here we match the arcade animation rate which does leave the cpu idling at times , particularly in the smaller frames - even at large though we could be running the animation 25 % faster , issue is though that would speed up the game logic and make it less arcade accurate. We had some real bullet / Spike hell simulations going without the limiter but yeah we had to tone it down a bit. Maybe in a hardcore mode we could let it run wild though ! Code is 95% 68k assembly with about 5% C code (v-int as its cold path ) driving things . This sort of thing needs all the speed it can get !! Well now after all that I can return to finish off Level 1 haha - just a wee sidetrack there . No doubt we will polish stage 8 boss some more in time too !! #SegaMegadrive #SegaGenesis #Parodius #SGDK

Shannon Birt

26,424 次观看 • 5 个月前

*** Mega Parodius Sega Megadrive Update *** Lately I've been having some fun seeing how far we can push the Parodius game engine . This is not arcade accurate - just for testing, decreased bullet timers and upped the bullet count to see what would happen re cpu usage when things are made a lot busier ! Maybe something like this could be insane mode in the options etc. Since last update we are a lot more optimised under the hood . The C based sprite engine, particularly visibility checking was speedup , overall 25 % faster. Then re-wrote the sprite engine completely in 68k assembly , 30% faster again. It took about 3 days and 1500 lines of assembly , thankfully the gains were worth it. All these gains will be back ported to S.O.T.A also as its using the same sprite engine. Usage is around 19% of cpu per frame with a full sprite load - 33 % cpu left in the busiest frame currently . Parodius is using a write the sprite list every frame type engine , so priority and meta-sprite objects can be handled with ease albiet its still a bit slower than static allocation sprite engines such as the one in lufthoheit but this is a bit easier to code for in the long run. All collision checks are been done , we are using a spatial grid system to get the collision checks done faster than a brute force approach . To get to maximum sprite count destruction is disabled in the video. We hit 80 sprites onscreen in this sequence , the sprite counter is one the Left side. We use about 16 sprites in the top hud and water line , about 21 for player attacks / missiles / shots / options . Up to 35 bullets + enemies . No lazer usage here as the Lazers use zero sprites thanks to the raster tricks , this video is all about the sprites ! Improved the water line when the Catboss is active , as he is Sprites + Forground we are doing some tile rotation tricks eg bit scrolling to give the impression of parrallax at that point . Vector Orbitex has updated the stage 1 music again and has made things even higher quality , hes mixed pcm and fm channels together to create higher quality orchestral hits for example . Pyron has started converting assets from stage 2/3 , some amazing work there . Hes well ahead of me at present which is a good thing. Still lots of incomplete animations missing logic etc , its slow going with RL getting in the way haha and 2 other projects !! Still its fun !! #SGDK #SegaMegadrive #SegaGenesis #Parodius

Shannon Birt

16,084 次观看 • 7 个月前

** Mega Parodius Update ** The team have been busy over last couple of weeks , implementing more of the games engine. WIP since last update : White Bell power up ( this is the text attack ) Blue Bell power up ( full screen explosion ) Catboss & animating Trees Updated Lazers to work on the BGB layer ( Plane A updated to 64x64 tilemap ) . Pyron has been doing excellent work on Blue bell Explosion, Whitebell power up text gfx - the slogans are great !! Arcade quality tree animations have been added. Feeding me a lot of videos so we can replicate the arcade port more accurately. Vector Orbitex has updated the music to mark IV for stage 1 making it smaller yet again , he's also added the Orchestra Hit in , potentially more samples can be added back in now also as the song now is a miniscule 57 kb. I keep telling him its 2025 - not 1990 for rom sizes haha , a professional is always a professional though !! The Blue Bell power up uses the static large sprite class I made for SOTA where it supports unlimited amount of sprites per object and detects all the reverses / flips & uses the same tile pointers where it can and crunches it down into single sprite object. We use up to 40 sprites in the Explosion but only 147 tiles needed in vram thanks to clever use of mirroring. The Catboss is easily the hardest enemy in the level for a few reasons - we also had to free up Plane A so the boss could shift upwards onscreen, so lazer effects were shifted to Plane B. The bit that caused me the most issues was when he sits in the water line between the two islands. He is quite wide and also has overlapping palettes and animating parts , to do it solely with sprites would have lead to severe dropout at times. At the waterline we have to simulate 3 background planes and sprites at that point and we only have 2 background planes. Luckily the MD sprite engine is very flexible and we were able to recreate the arcade look at this point with some sprite trickery, the water-line is now sprites . So we use Plane A + sprites to recreate him and use a lot of plane animation to reduce the amount of sprites needed. For example the face, the tail the propeller are all plane A animations . I analysed the SNES/PCE versions and we use less sprites than those versions for him so that will help reduce the chance of sprite dropout when attacking. The Catboss is only about 1/2 done , all damage states, the onboard penguin factory, bullets from Cannons yet to added etc. He wraps around at the end of the vid as theres no destruction routine in for him yet . No extra enemies in at this stage , tackling the hard parts first etc. We took the arcade GFX for the Trees that sway around under the Catboss, all the animations are in. There were some DMA bandwidth issues originally I had to sort out as the Catboss has several animating parts + swaying Trees was leading to overload so after some load balancing it all is playing nicely !! We still have loads of stuff to add , collisions are not in - normal enemy waves etc but yeah a lot of future issues were sorting out just getting this far. So the team is very happy with the progress !! #SGDK #Parodius #SegaGenesis #SegaMegadrive #indiegame

Shannon Birt

19,241 次观看 • 9 个月前

*** Parodius Demo Update *** After seeing my good friend Pyron amazing Parodius artwork , I could not let that go to waste. Its a crying shame Konami's shooters did not make it to MD at the time , time to rectify that (in time). The video shows some of the progress so far. Stage 1 scrolling using the streaming scroller from lufthoheit to automatically manage the tile management for the scrolling rather than using different sets etc. Its great when I can grab bits of code and apply them to new projects, it speeds things up !! Lufthoheits new stage is coming along well also and has its first enemies in , hopefully show something of that soon. The VRAM view is to the right , we will have plenty of vram left for objects without resorting to much manual management it seems. ~ 1/2 vram left. It looks like the biggest challenge for this level is the Cat Ship mid boss - the end boss seems easier in comparison for a few reasons. I've analysed the way it was done on PCE and SNES and will come up with the best option for MD. More to come on that soon. At present we will target mainly assembly , so performance won't be an issue . I'm not sure we need a sprite multiplexor for > 80 sprites , but we will use one anyway just to not have regrets/changes later on and for the Hint color effects the multiplexor can do also. We have an A level musician volunteering also for those concerned about the audio side of things - it wont dissapoint I'm sure. As this is now my 3rd / 4th project it will be done as time permits so no gaurantees on timelines sorry - we are all hoping to do well by the community however. #SGDK #Konami #Parodius #MegaDrive #SegaGenesis

Shannon Birt

12,526 次观看 • 10 个月前

In my previous post about the #Nioh3 demo, I mentioned that when the game isn’t consistently holding 60 FPS or 120 FPS, several issues can show up. Here’s a clearer breakdown of what's going on. The main reason is that the game speed and physics are tied to the frame rate. When you enable the 120 FPS cap, the engine start overreacting and pushes CPU usage very high, even if the game is still running at around 60 FPS (as shown in the first example). In the second clip, you can see the uneven, jittery camera movement I mentioned before. Notice how much smoother 60 FPS and 120 FPS look compared to the unlocked side. Also, camera movement at 60 FPS is slightly faster than at 120 FPS. In the third clip, player movement is slower when the frame rate is unlocked. This doesn’t happen all the time, but it shows up often enough to be noticeable. Because of how the Katana Engine behaves, the game is clearly designed around 60 FPS. Running at 120 FPS is possible, but it’s only recommended if your system can maintain that target almost all the time, which isn’t easy to achieve. There’s also an alternative workaround where you select the 60 (locked) option and enable Frame Generation (DLSS or FSR 3), as shown in the last clip. The downside is that DLSS Frame Generation tends to show the same stuttery look as when the frame rate isn’t holding a fixed target, likely due to Reflex keeping the frame rate slightly below target. FSR Frame Generation, on the other hand, looks much smoother and works better here.

BenchmarKing

17,820 次观看 • 5 个月前

*** SOTA RETROCON S.O.T.A UPDATE *** Whilst the Versao LTDA team is busy at Retrocon showing off our latest Sega Genesis SOTA update, here is a small snippet of how the game is progressing. This video has 3 parts, our menu screen, rain - wind sub section of level 1, then the boss. Everything is still wip including my gameplay skill lol ( and i thought the controller would help .. ) Some challenges overcome : The Menu screen uses shadow and highlight transparency modes in two ways, the background mode for the light rays and then the sprite mode for the mist - it has a nice overlapping effect too, due to using the forground plane for the light rays (s & h background mode) the entire forground is made up of sprites - all the words are sprites . SaviorMarks sent me a screenshot of an issue with boss leftover Mist sprites affecting the menu screen and I thought that looks really cool - lets do that haha . Sometimes bugs are keepers !! The rain section uses more than 80 sprites, a sprite multiplexor handles the rain whilst normal non plexed sprites make up the moon / clouds in the far background , the lamp posts and lamp light in the mid forground and Fences in the front forground . Without the multiplexor there was too much drop out on the rain at times. The rain is still blinked in alternating X positions due to the pixels per line limit , but it gives a great result still. The lamp lights use Shaded Active Dither as S&H here would not overlap the enemies / player . The Boss was a challenge with its size and full frame updates, up to 650 tiles are changed per animation frame into vram. Custom Dual priority DMA routines and extended DMA timings are used (still NTSC 224 pixels tall screen size but most of the vblank was used for updating tiles ) . These methods were used to update the bosses dual display buffers. I needed to have dual priority DMA buffers as the player / waterfall etc had to update their frames whilst the boss is constantly streaming tiles. There are also S&H transparent Mist sprites used for the boss sequence. It seems if you want everything to break at once target a demo for a retrocon event haha, we had lots of issues mainly with vram getting stomped and as all animating sprites need to be DMA streamed to fit into VRAM as the forgrounds and backgrounds take up a lot of tiles. Some new tools which show the VRAM allocation for the sprite engine on a frame by frame basis helped and a self defragging VRAM system helped quite a bit also. Thankfully things are in a good state now apart from a couple of small bugs that persist. Thanks to SaviorMarks and GamesCare for putting up with and testing all the bugged updates haha !! #SegaGenesis #SGDK GamesCare SaviorMarks #VersaoLTDA

Shannon Birt

10,243 次观看 • 11 个月前

ELON MUSK: We believe the AI5 chip will be roughly comparable performance to an NVIDIA Blackwell, and at much less than 10% of the cost Transcription: I'm super hardcore on chips right now as you may be able to tell. I have chips on the brain. I dream about chips, Literally! Because in order to have a functional robot, you have to have a great AI chip. And it needs to be an inexpensive chip and it needs to be very power efficient So we think we believe the AI5 chip will be probably about a third of the power of say something like a Blackwell, an NVIDIA Blackwell, which is a great chip, for roughly comparable performance. And much less than 10% of the cost. This is a chip that is very much optimized for the Tesla AI software stack. So it's not meant to be a general purpose chip, it's meant to be an amazing chip for the Tesla AI software And I mean a couple of things that I think make... like how is Tesla able to achieve such an improvement? I think it is because we are specialized. We're not trying to... you know, NVIDIA has to serve the superset of all past and future customers. So all of their requirements, all of the software that they've written has to work, which is a very difficult problem. Whereas we just need to make it work for our software. And so we're able to simplify the chip dramatically And then we also, I think we're unique in this, but like we have an integer-based system. And integer operations are fundamentally more efficient than floating point operations. So we can do floating point, but the vast majority of our inference is done in integer. Which is, if you're familiar with sort of logic gates, the simplicity of integer... it's integer is much more power efficient, much more silicon efficient, but you have to, you actually have to train for integer inference, which everyone else is training for floating point. That's kind of like a niche technical detail, but it's actually very important. So, yeah, this is going to be a great chip So this chip will be made in basically in four places: TSMC Taiwan, Samsung Korea, TSMC Arizona, and TSMC Texas. And we already know what improvements to make for AI6. So I'm hopeful that we can within less than a year of AI5 starting production, we can actually transition in the same fab to AI6 and double all of the performance metrics

X Freeze

305,109 次观看 • 8 个月前

** SEGA GENESIS - LUFTHOHEIT - Tunnel Stage Preview ** We are pleased to show an early preview of part of our Tunnel/ Vortex Stage. Big shout out to Carsten666 for his gorgeous Graphics, CYBERDEOUS - Crouzet Laurent for the amazingly well matched Audio to this level, Stephane for creating SGDK in the first place and being very supportive with new features in SGDK also. Technically this stage was a bit of a challenge, some notes below re this. To drive the rolling texture of the background - 40 horizontal interrupts are used, executing 120 scanlines of color change, changing 5 colors per line = 600 color changes per frame. Variable spaced interrupts are used for expansion / compression effect. Four stages of brightness used for every texture / pattern , darkest in the center of screen , brightest top & bottom. New colors created by alternating two similar colors at 60 hz, for seams between brightness regions to increase the blending between regions. Co-operative Multi-threading system used to reclaim huge amounts of CPU within the color change interrupts. For example all rolling Cannon & Cannon bullets and Debris are moved using this technique - up to 25% of total CPU can be reclaimed ( its normally wasted polling for rhs/hblank ). Heatseeking missiles, these need trajectory's recalculated frequently and doing that at speed can be tricky - lots of missiles launched at Mid video and its the heaviest CPU load in the demo ( these are not using the Multi-threading technique yet ). Variable rate collision checking, as bullets gets very close to player the checking is done at 60 fps, as they get further away the checking drops off rapidly - this saves cpu. Runs 60 FPS at all times, works on real HW also but captured on emulator as my phone doesnt take 60hz video without getting out of sync. Intro & Foreground effects are coming, currently no foreground is present as its not quite baked enough yet, we have some cool things we will do with the extra plane yet. Lots of good stuff to come !! #SGDK #SegaGenesis #SegaMegadrive

Shannon Birt

23,873 次观看 • 1 年前