Video wird geladen...

Video konnte nicht geladen werden

Zur Startseite

Got something totally different, but exceptionally badass today to share! Here is a bunch of direct hardware captures of the (F)ixed (F)unction and (F)ast (F)ourier (T)ransform (T)esting audio visualization demos, running on my Sega Dreamcast! This incredible piece of science, engineering, art, and music started off as a crazy...

12,566 Aufrufe • vor 15 Tagen •via X (Twitter)

0 Kommentare

Keine Kommentare verfügbar

Kommentare vom Original-Post werden hier angezeigt

Ähnliche Videos

It's officially that time of year again! Presenting the second annual "DreamDisc" indie gamejam for the Sega Dreamcast! If you weren't around for last year, check out the video! We had 24 incredibly polished, epic submissions including a wide-range of genres, such as 3D space shooters and resource managers, 2D platformers and racing games, VMU minigames, custom hardware, and even a custom implementation of the Java VM for SH4! Just like last year, the top 10 submissions, as voted by a panel of judges, will be pressed to a commercially released, actual physical Sega Dreamcast disc, which will be available for purchase from Orc Face Games - Chew Chew Mimic out on Dreamcast!! Oh, and there are cash prizes for the top 3, of course! This year we have an even wider range of engines, frameworks, and prebuilt library solutions for developers are all experience levels, including: 1) Antiruins - Lua-based, very newbie friendly game engine for the Sega Dreamcast. 2) raylib - famous cross-platform C-based games framework which needs no introduction 3) SDL2/3 - our very own ports of the famous cross-platform SDL libraries, which target the Dreamcast. 4) Simulant - the same engine that powered Driving Strikers--the very first online homebrew commercial DC game--as well as last year's wining submission, written in C++. 5) KallistiOS - you can raw-dog the indie SDK and pseudo OS that started it all and powers everything in the community, rolling your own tech stack. 6) SH4ZAM - my collection of SH4 assembly optimized math and matrix routines, which originally powered our Grand Theft Auto ports. Contestants are encouraged to join the OrcFace and Simulant Discord servers where they can interact with other DC developers, share their progress, and ask for help with anything they may need. Official DreamDisc '25 website:

Falco Girgis

16,980 Aufrufe • vor 7 Monaten

With all of the excitement from Mario Kart 64 coming to the Sega Dreamcast, I've been getting bombarded with questions about whether any more progress has been made on our Mario 64 port... so here's a direct hardware capture of the latest build running on DC! The answer: HELL YES! Last time most people saw or played this port, it was plagued with performance, audio, and graphical issues... but as you can see from this footage, almost all of them have been resolved, and she's playing like a dream on the DC now! Wtf happened? Well, first of all, in the 5 years since the port initially started, I, along with others, such as UnknownShadow, have made progress optimizing and improving upon our OpenGL 1.2 driver, "GLdc," which drastically improved the overall performance of the port by decreasing the amount of time the Dreamcast's SH4 CPU spent on T&L, processing polygons. Next, chad developer, Bruce (or Bruck or Brucilicious, depending on who you are), went through and applied a bunch of bugfix patches from the upstream repo to the game to fix the majority of the graphical glitches such as clipping issues and Mario's iconic biker mustache from the previous releases (despite me trying to convince him to keep that one, as it's become a Dreamcast trademark). Finally, the original developer behind both the Sega Dreamcast and Sony PSP ports, MrNeo, has returned from hiatus and has begun redoing the audio engine to fix the artifacting and stuttering! Stay tuned for further updates and the inevitable rerelease of this N64 classic on Sega's finest little white box that still refuses to die!

Falco Girgis

34,186 Aufrufe • vor 1 Jahr

Been optimizing my ASS OFF now that jnmartin has pushed all of his progress on his Star Fox 64 Sega Dreamcast port to a private GitHub repo to collaborate with a bunch of us DC devs before release. MAN this thing is HIGHLY optimized already... We're essentially running a high-level emulator for the N64's RSP coprocessor, doing graphics transforms, matrix math, and display list conversions not only on the main SH4 CPU, but also sitting atop a high-level OpenGL driver, in real-time. Not only that, but once again, we're doing all audio synthesis and mixing also on the main SH4 CPU, so this thing is doing a literal asston on the main CPU with what might seem like a relatively straightforward port. 99% of the time, everything runs flawlessly, but when you drop a bomb on a shitfest of enemies in a densely populated area, as with the N64 original, the FPS can dip momentarily. Here's a direct hardware capture of me testing a new SH4 optimized routine out for gainz on my Sega Dreamcast... this mofo is meant be used for one-off 3D vector transforms by a single matrix which has not been preloaded into the XMTRX FP register matrix back-bank. Rather than doing a full 4x4 load on the matrix just to do a single 4D transform via the FTRV instruction, we're simply peforming 3 3D dot products against a single 3D vector, allowing us to pipeline the loads, dot products, and store operations better than doing a load all at once followed by a transform, and we aren't wasting a lane on the FPU for a 0.0f W component!

Falco Girgis

36,911 Aufrufe • vor 7 Monaten

It's finally time for the massive update I know EVERYONE has been eagerly waiting for... Presenting to you over 6 straight minutes of spliced footage directly captured from my actual physical Sega Dreamcast... RUNNING THE LATEST BUILD OF OUR SONIC MANIA PORT!!! I can't even begin to describe to you how polished and fantastic it's starting to feel... as though it belonged on the Dreamcast all-along... Thanks to the hard work of jnmartin, sonicfreak94, and a few others, not only is the Dreamcast port nearing completion, but... wait for it... THE 3D STAGES THAT STRUGGLED ON EVERY UNOFFICIAL PORT ARE NOW ALL RUNNING FULLSPEED!!!! Trust me when I say that this took an absolutely ENORMOUS amount of effort from jnmartin and the crew to pull off, considering the low-end for this game was the original Nintendo Switch, and ports running on consoles with twice our processing power struggled to run these levels fullspeed. The first and most obvious thing is that the 3D software renderer was ditched and all rendering was done natively with our PowerVR GPU... which actually wasn't as simple as it sounds. The tilemaps for these levels have had to be tessellated into a bajillion PVR quads and transformed and rendered as individual polygons to look correct and run faster than a slideshow. Mr anonymous Ocarina of Time chad developer came up with a pretty slick LoD scheme for drawing tiles closest to the player at 1x1 pixel sizes with sizes increasing with distance up to 2x2 and 4x4 pixels, allowing them to reduce the overall number of tile vertices that have to be transformed by the SH4 CPU and submitted to the PVR GPU, by strategically keeping the majority of the polygon detail closest to the camera, with detail decreasing as the tiles get further away. Next, the 3D geometry was preprocessed and converted from being triangle-based to being triangle-strip based, drastically reducing the number of vertices per model that our 200Mhz SH4 CPU had to transform (with plain integer arithmetic and no FPU vectorization, since this is all slow-ass fixed-point integer math)! Finally, it was discovered that the lighting was a disproportionately significant contributor to the TnL load on the SH4 for processing vertices. Jnmartin came to the realization that 99% of the time only the Y axis direction is considered for lighting equation intensity with just a white color. So this simplified lighting model got baked into the renderer, which gave another round of gainz. So in the end, after all of this work came together, a draw distance of 75% the distance of the retail Sonic Mania versions was achieved for the decorations, plus the character models have their full geometry count and have not been simplified on a freaking Sega Dreamcast with a 200Mhz SH4 CPU and only 16MB of RAM! 🔥

Falco Girgis

87,802 Aufrufe • vor 3 Monaten

jnmartin and I just spent the last 12 hours straight locked into an epic tag-team, binge-coding session. We've decided to return to perfect our port of Mario Kart 64 to the Sega Dreamcast, bringing with us all of the skills, knowledge, and tools at our disposal that we gained from every port we've been involved with since we originally released MK64 DC to the public. 1) jnmartin has just completely redone the audio synthesis and mixing code. It was originally emulating the Nintendo 64's RSP in software, on our CPU, and wound up being a total resource hog, despite us going to hell and back again, substantially boosting its performance by vectorizing it with our SH4 SIMD instructions. 2) Now that the audio is actually offloaded to the AICA, we can leverage its DSP to put back in effects such as reverb and echo that we simply didn't have the CPU budget to implement before... so the overall audio quality of the port will be SIGNIFICANTLY improved. 3) jnmartin has been working on many small bugfixes, such as the near-Z clipping edge-cases that would cause corrupted triangles to draw over the players' screens sometimes in 3 and 4 player modes. 4) jnmartin just kicked GLdc--our OpenGL 1.1 driver, built atop of KallistiOS--to the curb and has instead implemented a bare-metal renderer that raw-dogs KOS's lowest-level PVR GPU driver directly, giving us more control and better performance within the renderer. 4) I just implemented support for playing with the Sega Dreamcast keyboard peripheral as a controller, partially as a flex, and partially because jnmartin kept complaining that he only had 3 controllers for testing... 🤣 4) I have taken my entire accelerated math and linear algebra library, SH4ZAM--which was born just after this port was originally released--back with me this time and am optimizing every freaking thing I can get my hands on with it. Every matrix multiplication, vector transform, memcpy-call, and scalar or trig routine is getting swapped out for the corresponding hand-optimized, meticulously benchmarked, and rigorously unit-tested equivalent within SH4ZAM, which now ships as part of kos-ports. As you can see from this series of direct hardware captures, overlaid with the terminal window which was capturing the FPS logging reports from my actual Sega Dreamcast, the performance is now SIGNIFICANTLY better than it was previously, and it already ran on-par or slightly better than the N64 original under most circumstances! Sooo many GAINZ to be had! 💪

Falco Girgis

12,615 Aufrufe • vor 9 Tagen

The #GTA 3 port to the Sega #Dreamcast has been progressing at an incredible pace. It's been amazing to see the whole DC community come together to tag-team this "impossible" project... Here it is running on a stock DC, no longer requiring the 32MB RAM hardware modification, only a few weeks into development. Since I finally got the time to sit down, build the codebase, and look into some of what I think is the critical path for performance, let's talk about some technical shit, and some of the future steps I think can be taken to further improve performance. First of all, I want everyone to take note that this is NOT a port of the PS2 version. This is a port of the PC version, which has extra content, increased draw distance, improved textures, and other things that have actually increased the challenge here... Whether the DC version will ultimately have these additions or not will remain to be seen, but we're running into plenty of shit that the PS2 didn't have to worry about (like these big-ass PC replay saves won't fit onto a Visual Memory Unit!) Secondly, lets talk about what is and isn't currently optimized, because it's absolutely vital that the DC's hardware is fully utilized here for the sake of performance and achieving a competitive polygon count. Unlike with modern devices, where the whole graphics pipeline is handled by the GPU, both the PS2 and Dreamcast were responsible for transforming and doing lighting calculations for each vertex BEFORE they got submitted to the GPU. The PS2 had a vector coprocessor to do this, while the Dreamcast had a few extremely important SIMD and fast math assembly instructions on its CPU to do these computations. Up until literally just a few hours ago (not shown in this footage), the Dreamcast's SH4 was doing 100% of these operations in slow-ass plain C and C++ code, which is absolutely sub-optimal and is immediately bogging down its CPU with just transforming vertices, bottlenecking the entire graphics pipeline on the fist T&L stage, and also leaving less CPU time for handling other gameplay logic... this is going to absolutely have to be addressed (and already has begun to be). Another issue that is crippling performance here is the fact that the models are all using individual triangles rather than triangle strips, which the Dreamcast's PVR GPU was designed to handle better... Converting these models to use strips rather than individual triangles will result in MANY different gainz for the DC, as you're going from 3N to N+2 vertices per triangle. Converting the models to triangle strips will 1) reduce load times, since model assets will be smaller 2) reduce the amount of video memory required to hold these vertices on the GPU 3) reduce the amount of shit that must be transferred from the CPU to the GPU and 4) give us back a bunch of CPU time, since the SH4 will be less bogged down transforming redundant vertices! TL;DR: This is still EXTREMELY suboptimal in terms of fully utilizing the graphical potential of the Dreamcast. There is going to be a LOT that can be done still to both improve performance and polygon counts, so stay tuned! FINALLY: Mad respect and love to Stefanos Kornilios Mitsis Poiitidis, for doing an amazing job leading this project, and to Frogbull , Esppiral, and everyone else who is helping us stick it to the PS2 by making this happen! #gamedev #retrogaming #cplusplus

Falco Girgis

88,224 Aufrufe • vor 1 Jahr