@RheoGamer O mesmo comigo. Eu só assistia e ficava admirando os gráficos e o som. Agora que estou sendo obrigado a testá-lo inúmeras vezes, tenho que confessar: o jogo é bem desafiador e é quase impossível não morrer.
@1986Estrela Resolvi removendo os CREDITS na parte inferior e o higher score, deixando então 1P e 2P com as vidas e pontuações como sprites. Agora os fundos ficam 100% e o sacrifício dos sprites foi quase nada (pois os CREDITS já usavam).
Pois é, não tive muita opção. Se eu tornar o window preto, perde-se a noção dos inimigos que vem de cima, e se eu mantive o window transparente (que é como está agora) o plano da frente não é desenhado e o fundo é, criando uma sensação estranha. Poderia usar sprite no hud? Sim, mas no modo H32 o console só pode apresentar 64 sprites, portanto, o recurso deve ser preservado ao máximo. São decisões bem chatas de serem tomadas e nenhuma acaba sendo perfeita.
Yes, I know. Human "bit-level wizards" are still better than AI, no doubt about that!
I had to take a look at the FPGA implementation of this game, along with some additional documentation, to understand how it works before attempting this port. I didn't want to waste my time or tokens if I found out it wasn't technically feasible.
The port was done by directly translating the arcade's 68000 instructions to the Mega Drive's 68000, with the necessary adjustments for memory mapping, hooks, and architectural differences.
To experiment with a few things, I built two versions of the game. In one of them, the sprites are converted into uncompressed metasprites, taking advantage of the console's native support for 32×32 sprites. However, this increases the ROM size to around 6.5 MB. I also took the opportunity to improve the sound effect quality, bringing the final ROM size to 8 MB.
The 4 MB ROM version, on the other hand, needs to perform some graphics conversions at runtime. Initially, I thought these conversions would have a much greater performance impact, but surprisingly, they account for less than 5% of CPU usage.
The game was clearly designed to push the arcade hardware to its limits, and it puts an enormous amount of pressure on the 68000. That said, I also believe there are several areas in the original algorithms that could be further optimized.
@turboxray@GabrielPyron It’s not possible. The CPU is already being pushed to its limit by the game’s algorithm. You can see some details here: https://t.co/nqAZERzUQ3
@turboxray@GabrielPyron I'm the one working on the colors. This game has turned into a real hodgepodge of dynamic palettes. I'm doing my best to maintain fidelity, even though I know it won't be perfect.
@GabrielPyron Eita jogo pesado, por mais que não aparente. A animação dos sprites engole o barramento. Mas não tenho duvidas de que o @birt_shannon faria uma versão mais otimizada de mãos amarradas.
@modollars78 I am using a quite different technique, and I do not intend to mirror the textures, as I will likely need to incorporate some details later on. I find it highly improbable that I will reach that level of technical quality.
Into the Darkness – SEGA Mega Drive / Genesis
A new gameplay test of my first-person raycasting game, inspired by Heretic and Hexen!
Still a work in progress, with plenty of bugs and features yet to be implemented. I'm focusing on performance for now, but there's much more to come!
https://t.co/Dub5KT7wBF
#SGDK #MegaDrive #SEGAGenesis
The textures are not mirrored, but unfortunately, they have a very low resolution; they might be 16x16 or 32x32, though I rarely use 32x32 because it consumes too much space due to the lookup tables.
I created a script that scans the combinations of each vertical line of the textures to capture every possible color combination within an 8x8-pixel tile. These are divided into 4x2 blocks; they are generated, and a lookup table is created in a .h file. The advantage here is that the other horizontal portion of the 4x2 block is always black, and the tiles are mirrored horizontally on the second plane. Essentially, two planes are used, one for each block of four horizontal rows (a technique devised by Anael). Furthermore, the game relies heavily on lookup tables, primarily for calculations, and the vast majority of these sprites are pre-rendered; there is no real-time zooming taking place.
I am doing my best to make the effect convincing and achieve good performance, even if it means compromising a significant portion of the graphical quality.
It’s nothing as brilliant as Gasega68k’s work, or your truly absurd feats. In my case, I even needed a nudge from an AI to help translate the mathematical routines from C into assembly. I’d like to go further, but given my own capabilities, I think I’m nearing my limit. I don’t intend to use AI to push past that, as I like knowing exactly what every line of code on the screen does; plus, I’ve been carefully studying the generated assembly to see if I can pick up a few things.
I felt this today while programming "Into the Darkness." Sure, AI helped me convert the heavy mathematical parts into assembly (I don’t know assembly well enough to do that, and I no longer have the patience to learn), and it even built a tool for editing maps, another task I lacked the patience to tackle... But that’s where it ended. I spent the entire day working on the code, refining it, testing it, designing, creating sound effects (some using distorted recordings of my children’s voices), adding new features, and so on. It was magical; I felt truly alive while doing it. No "vibe code" gives me this.
@last_life_left@matteusbeus I'm understand your feeling. I'm the same about FFMD. I will provide the source someday, but not now, not before reach a stable 1.0 version. Because after launch the source, probably I will never touch it gain.
@spacebruce I'm had some similar tests using textured raycasting (from Into the Darkness) with 90 degree rotates axys, it's also CPU intensive, but is so cool effect.
I agree that the Neo Geo isn’t strictly superior in every way, but it certainly could have received a port of Final Fight. I should also point out that it would be wise to adjust the *entire game* from 384 to 320 horizontal pixels; if anyone just let an AI handle everything, the graphics would end up looking terrible. To get a good result, it would have to be done manually... Since I managed to do that for the Mega Drive, the Neo Geo could have been given the same level of care with a much better result.
@Megadrive4ever8 Neo Geo puede con Final Fight sin despeinarse; si funcionó de manera satisfactoria en una Mega Drive estándar (Final Fight MD), ¡ni hablar de lo que podrá hacer en una Neo Geo!