Загрузка видео...

Не удалось загрузить видео

На главную

I was playing around with my scaling code and thought it would be cool to play the current Lufthoheit service screen on a CRT on the tripple bypassed MD2 i got recently. I've made the code a bit more efficient and added a whole scale factor so now it...

11,643 просмотров • 1 год назад •via X (Twitter)

Комментарии: 0

Нет доступных комментариев

Здесь появятся комментарии из оригинального поста

Похожие видео

*** 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 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 месяцев назад

** 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,539 просмотров • 5 месяцев назад

** Sega Genesis 3D Engine Day 3 ** Blast Processing kicks In !! Converted the Line Drawing and Triangle drawing to 68k Assembly and gained 25% in the line drawing and 33% speedups in the triangle drawing vs C ( so far ) . The scheduler calculating the vertexs is still in C , just the drawing routines are now are in assembly . Possibly 5-10 % gains will come from the scheduler being in ASM also. The Line and Triangle drawing C code took some beating , it was surprising - particularly the line drawing to get a speed up over the C code in ASM. I guess its not too surprising as the C code was basically handling pointers and integers so I had to get exotic to find the speedups. Initially my ASM Line draw was 100% slower than the C code - the first pass conversion from C to ASM is always rough as its more about getting it working then refine later , but yeah 100% slower on first pass was brutal, after 4 hrs tweaking it was 25% faster than the C code so thats a good start - might get more yet. So added more squares and more triangles for load testing at the same frame rate. Its still not anything cohesive but right now focussing on performance in rendering to see how much can be pushed. As rendering will be the biggest cpu soak the faster that goes the better. The smaller triangles take about 1/3 the CPU time of the larger triangles at present so theres definately a fill rate limit vs the setup time to consider. The same would go for the squares been line framed - smaller ones would allow al lot more . #SGDK #SegaGenesis #SegaMegadrive

Shannon Birt

21,171 просмотров • 4 месяцев назад

AI is changing the software engineering craft. Anders Hejlsberg (Anders Hejlsberg) - creator of C#, TypeScript and industry legend - on why code review needs to get more enjoyable in response: #1 - AI is shifting the craft from writing code, to reviewing code: "In a sense, we're all turning into project managers. We can have an army of junior programmers, called agents, that will just spit out reams of code but someone's got to have the big picture and review all of that. And so, increasingly, our craft is going from one of writing the code, to one of reviewing the code and building the architecture of the code and overseeing the work. It's a different kind of craft. It's a different kind of enjoyment. I've always liked writing the code. To me that was the fulfilling part, seeing it work. In a way, AI robs a little bit of that, because I am less interested in reviewing code." #2 - The code review experience should be improved: "I think we could also make the process of reviewing code much more interesting than it is today. I mean, today, you see a list of diffs in alphabetical order and now it's up to you to make heads or tails of it. There are more pedagogical ways of presenting that. And you could have commentary generated by the AI that tells you what the changes are and whatever, and then tries to guide you along. So that symbiotic relationship, I think we need to work on that more and to keep the enjoyment in there."

The Pragmatic Engineer

39,011 просмотров • 2 месяцев назад

I Built a 37.0 Profit Factor Bot by Cracking Every TradingView Source Code tradingview is a gold mine hiding in plain sight and i just found the master key to unlock every single secret hidden within its community scripts. most traders spend their entire lives staring at candles and hoping for a miracle while the actual alpha is buried in the open source code that nobody bothers to look at. i used to be that guy who sat there getting liquidated at three in the morning because i thought i could outplay the market with my gut feeling and some drawings on a screen. it turns out that the game is completely rigged against you if you are trading manually but there is a specific way to flip the script. i am going to show you how to stop guessing and start knowing exactly what works across every possible market condition before you ever risk a single dollar. i spent years losing money and thousands on developers because i thought i was not smart enough to code the systems myself but i was wrong. the first step to cracking the market is realizing that every indicator on the super charts has a source code section that is completely open to the public. you can literally scroll through the community scripts and pull the exact logic for thousands of different strategies that people claim are the holy grail of trading. but the secret is not just having the code because most of these indicators are actually garbage that will blow your account up in a week. this is where the real loop opens because you need a way to test these ideas across twenty five different data sets in seconds rather than months. i use a custom setup with ai agents specifically a sub agent i call the backtest architect to handle the heavy lifting of turning pine script into python code. the goal is to create a factory where you can feed in a raw indicator and get back a full report on its expectancy and profit factor without lifting a finger. most people find one strategy and marry it for life but a real data dog knows that you have to iterate to success or you will get left behind. i am running eighty one different backtests right now because i know that ninety percent of what i find will be trash but that remaining ten percent is where the wealth is made. the backtest architect knows exactly how to structure the folders and data paths so that we are testing everything from the base indicator to complex versions with filters. you might think that popular tools like fibonacci or order blocks are the way to go because everyone on social media talks about them like they are law. but when i actually ran the numbers through the machine the results were embarrassing and most of those strategies just resulted in negative expectancy. it is a dangerous trap to follow the crowd into a trade just because some guru said a certain level was important when the data shows it is a coin flip at best. the dynamic swing indicator was one of the few that actually held its weight during the recent massive testing sessions we ran. it was pulling in profit factors of over thirty seven with annualized returns that look too good to be true until you see the trade list. we combined it with filters like the adx and the money flow index to see if we could refine the signals and the results were absolutely staggering. when you have a system that can run through forty data sets while you are drinking tea you realize that manual trading is a form of self harm. i realized this after spending hundreds of thousands on apps and devs only to find out that i could just learn to build these bots myself live on the internet. the speed of iteration is the only thing that matters in this game because the faster you can fail the faster you can find the one strategy that actually prints. one of the biggest hurdles i faced was thinking that i needed to be a math genius or a senior engineer to automate my trading systems. the truth is that code is the great equalizer because it allows a regular person to compete with massive hedge funds by using the same logic and speed. i decided to learn everything in public because i wanted people to see the process of losing money with liquidations and then finally finding a path to automation. the reality of the market is that it moves in cycles and what worked yesterday will almost certainly fail tomorrow unless you are constantly testing. that is why i built the agents to automatically look through the results folder and rank the top performers based on a composite score. it takes all the emotion out of the process because i am no longer looking for a reason to enter a trade i am just looking at a csv file that tells me the truth. if you are still drawing lines on a chart and hoping for the best you are basically playing a game of chance against a high speed casino. the transition from a manual trader to a systems builder is the single most important pivot you will ever make in your life. it is not about being right or wrong it is about having a positive expectancy that has been proven across thousands of trades and multiple years of history. i had to fix a few errors in the short selling logic where the agents were getting confused between maximum and minimum values for take profit levels. these tiny bugs are the difference between a winning system and a blown account so you have to be willing to dive into the code and refine the machine. but once the system is tuned and the sub agents are running it becomes a beautiful workflow that functions entirely without your input. we are currently moving through the editors picks and the trending indicators one by one because i want to have a database of every single strategy on the platform. being a data dog means you never stop searching for that edge and you never settle for a strategy that just looks okay on a single chart. you have to demand excellence from your code because the market will not give you a single inch of mercy if you are lazy with your research. the ultimate goal is to have fully automated systems trading for you so you can focus on scaling rather than staring at a screen for ten hours a day. i am already up to over eighty backtests in this single session and i plan on hitting hundreds more by the end of the week. once you realize that you can crack the code of any indicator you see on the internet you will never look at a chart the same way again. this is the power of using agents to bridge the gap between a raw idea and a finished trading bot that actually works in the real world. i am done with getting liquidated and i am done with the stress of over trading because the code handles everything with cold precision. the path to success is paved with data and if you are not willing to automate your process you are just waiting for your next liquidation to happen

Moon Dev

26,010 просмотров • 5 месяцев назад

hockeystick moments are the biggest opportunity of your career. It's exciting and kinda scary. Everything changes! I wrote Scaling Fast: Software Engineering Through the Hockeystick as your guide. 16 years of startup experience condensed into 240 pages Scaling Fast is based on startup war stories, academic research papers, talking to my mentors, and reading industry insights. It shows you what it takes to survive and thrive through the hockeystick. You'll learn about scaling teams and scaling code, how they influence each other, and why none of it matters if the business is bad. Scaling Fast: Software Engineering Through the Hockeystick is organized in 3 sections: - Scaling the Business - Scaling the Team - Scaling the Tech The business part, that's to help you evaluate the companies you join, this isn't a business book. The team part, that's key to shaping your everyday. We talk about delegating decisions, empowering engineers, working smooth instead of fast, finishing things all the way to done, good code review culture, and shipping incrementally without risky big bang releases. The tech part, that's my favorite. We talk about good abstractions, architectural complexity, observing your systems break, making steady improvements to your code without huge refactoring sprints, why tests don't solve everything, what's even worth testing, how your team structure impacts what you can do with the code, and why solving today's problem is more important than building for an imagined future. None of it is about numerical scaling [name|]. That's easy in 2025. Computers are fast. The challenge is building complex systems that don't fit in any one person's brain without breaking the business. oftware engineering when your whole company changes every 6 months is the fun part of this gig. And that's what Scaling Fast is about. 👉

Swizec Teller

56,515 просмотров • 8 месяцев назад

*** Parodius Update - LAZERS !! *** How many sprites do we have to use on the Sega Genesis to make 4 x 160 pixel wide lazers ?? 10 ? 20 ? ZERO !! Which is really great as when the options overlap all with Lazers using sprites would have lead to sprite severe overload / dropout otherwise. So yes we have some raster trickery going on . I think this might take the cake for the most exotic effect Ive added just for a power up type haha. Breaking down the effect. 1.) Lazer tile rows ( the tile rows the lazers are currently on ) are copied to an offscreen area of the plane . I used the DMA VRAM to VRAM copy mode for this. You can see these offscreen rows just above the Game Videos window in the Plane A tilemap view. 2.) Then a solid block of Lazer colored tiles is drawn at the position of the Lazer horizontally in the offscreen buffer we just copied too - these are 8x8 tiles. 3.) Then onscreen when as the display is being drawn we change to the Lazers row at the correct pixel line offset for exactly 1 scanline then change back to the normal screens next row. I'm using the Horizontal interupt system developed in SOTA for handling the interupts for this. The technique used has been done before on the NES ( Salamander tech demo ) , as usual some of the best techniques come from the 8 bit systems , still it presented challenges getting it working on the MD. These irregular spaced interupts on the Genesis are a little bit of a problem too . All the height sorting has to be done on the frame before. Whats very interesting about the VRAM to VRAM copy DMA (Copy DMA) is it runs asynchronous to the CPU. Normally ROM/RAM to VRAM write DMA (Write DMA) halts the CPU during the send operation but with a Copy DMA I can pipeline one Copy DMA setup while the previous one is copying still . So even though the Copy DMA is 1/2 the speed of a Write DMA with the pipelining and no stalling its probably on par or better in some cases , where a copy makes sense to use. Theres still need some fine tuning , might make smaller lazers with more breaks etc. The Lazers can be full screen width , or narrow as we want so bit of fine tuning here to come. Pyron Vector Orbitex #Parodius #SegaMegadrive #SegaGenesis #SGDK

Shannon Birt

16,162 просмотров • 11 месяцев назад

*** 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 просмотров • 8 месяцев назад

Your faith was forged in people who would rather be exterminated than assimilated. A soft version of it, eager to be liked and desperate to fit in, is not the thing they died to hand you. So stop striving to be liked. Stop angling to be loved by a world that drove your fathers into the snow. That world would think no better of the gospel today than it did in 1838. Stop trying to file down every peculiar and glorious edge of the Restoration until the world finally finds you acceptable. It never will. And the wanting of its approval is the slow death of everything your people bled to preserve. I am thinking of the proclamation on the family, and of how many have quietly gone looking for a way around it. Some say it aloud now. Some march under the world's Pride banners and tell themselves it is only love. They have done the quiet arithmetic and concluded that if they give the world this one doctrine, the world will finally stop hating them, finally let them belong, finally call them good. It does not work that way. It has never once worked that way. Understand what the world actually hates, because it is not a single teaching about marriage that it cannot abide. It is the claim. It is the unbearable, scandalous claim that the keys of the priesthood were restored to the earth, that there is a prophet who speaks for God, that this and no other is the authorized house of the Lord. That is the offense. That is what it cannot forgive. You could surrender every doctrine the world finds distasteful, one after another, and you would not buy a single hour of peace, because the thing it objects to is not your position on this or that. It is that you claim to hold the authority of heaven, and it intends to see that claim humbled. The doctrine is only the doorway it is pushing on. The house is what it wants. Embrace the truth. Embrace the battle that has always come with it, because there has always been a battle, and there is one now. It is the oldest war there is, good against evil, light against the dark, and you were born onto its field whether you wished to be or not. You did not inherit a museum. You inherited a war, and a banner, and a people who never once surrendered it. You are a Mormon. The blood of the persecuted is in you, and the truth they died for is in your hands. You are not tourists. You are not spectators. You are the heirs of warriors, and the line they held is now yours to hold. So plant your feet on the ground they bled for. Lift the banner they would not drop.

Kirk Rollins

30,483 просмотров • 1 месяц назад