|
ForumsSega Master System / Mark III / Game GearSG-1000 / SC-3000 / SF-7000 / OMV |
Home - Forums - Games - Scans - Maps - Cheats - Credits Music - Videos - Development - Hacks - Translations - Homebrew |
![]() |
Author | Message |
---|---|
|
Guy's Panic! Christmas demo
![]() Last edited by Guy on Fri Dec 27, 2024 5:48 pm; edited 2 times in total |
Hi :)
Dive into a retro universe where a daring spider must navigate through a hostile terrain to capture zones while evading ghostly monsters and a cunning snail. Destroy them all to reveal the image! Guy's Panic is a small tribute to the classic arcade games of its kind. Initially designed as a simple experiment with bitmap mode, this project evolved into a mini-game. However, due to my particularly busy professional schedule for 2025, it's likely that the development of the project will stop at this version—aside from perhaps a few bug fixes here and there (yes, some still remain, especially with the somewhat unpredictable zone capture determination). December 25th is near, so here's a small demo to place under your tree. Happy End-of-Year Celebrations to Everyone! CONTROLS 1 + Direction: Capture. 2: Pause. Press 1 to resume. |
|
![]() ![]() |
|
|
![]() |
So cool! You know I'm a fan of your work, and Gals Panic is one of my favorite Qix clones. Thanks for the gift!
The page for your game: https://www.smspower.org/Homebrew/GuysPanic-SMS |
|
![]() ![]() ![]() |
|
|
![]() |
Very good. I was waiting a game like this for SMS. I think that colors are EGA feels and the speed is a bit slow but i liked so much. |
|
![]() ![]() |
|
|
![]() |
Hello!
Thank you, Mateus, for your continued support and also for your recent creation of homebrew pages! Yes, Segarule, Qix-like games are missing from the SMS catalog, which is quite unfortunate. There are adaptations for the Game Boy and NES, though. The pseudo-bitmap mode only supports four colors, so I thought it would be fun to use a CGA palette. Regarding the slowness, the choice was to progressively reveal an image, much like Gals Panic or Volfield. However, it’s true that moving away from tile-based rendering, which the console is designed for, quickly pushes the hardware to its limits. That’s likely why most 8-bit versions of Qix use repetitive patterns or solid colors. Here, the image to be revealed is stored in ROM in BMP format, making pixel-by-pixel rendering easier. For the final display, I use the same method, although I could have stored another copy of the image as tiles at the cost of sacrificing space (similar to how text is displayed). Using a hybrid rendering mode (tiles and pixel-by-pixel) could be a solution to drastically speed up the process. Thank you both again for your feedback ! |
|
![]() ![]() |
|
|
![]() |
This is really amazing. So you use 4 colors to be able to use more unique tiles?
Just one small thing. I haven't tested on real hardware, but in Emulicious the title screen starts with garbled tiles in the background, as tile 0 is random noise. You should set it to a blank black tile. |
|
![]() ![]() ![]() |
|
|
![]() |
Hi Slogra
Haha, no, the ROM I tested on real hardware didn’t exhibit the issue, but you’re clearly a skilled developer who has Emulicious set to randomize uninitialized memory. That setting had been disabled on my end. Thank you for pointing it out! I’ve updated the ROM (v0.91), and this should now fix the issue along with the improper reset of some variables after a win. Yes, that’s exactly it! The idea is to limit the graphics to 4 colors by cleverly arranging the console's two palettes and utilizing the bitplanes to overlay two tiles. This allows the entire screen to be covered in 4 colors with unique tiles while reserving a small area for storing a few sprites. I was inspired by this article by Ben Ryves, which not only explains the concept brilliantly but also demonstrates its incredible potential with a BBC BASIC port here: https://benryves.com/journal/3763168 Interestingly, Sverx had already implemented and described this concept earlier (and I just noticed that Maxim had suggested using this mode for a potential QIX-like game!): https://www.smspower.org/forums/16835-FullScreen2bppBitmapImage#99966 |
|
![]() ![]() |
|
|
![]() |
Out of curiosity...if someone were to make a game inspired by Gals' Panic on Mega Drive, would it be possible to have a full-screen bitmap image? I assume it'd be made of more than 4 colors |
|
![]() ![]() |
|
|
![]() |
Yes, Mega Drive has enough video memory for full screen art and might even have animations in the game. It’s somewhat limited in colours but could have multiple 16 colour palettes. | |
![]() ![]() ![]() |
|
|
![]() |
Ahhh someone finally made a Qix-esque for our beloved SEGA console. Love it!
Would it be possible to keep the music playing all the time? |
|
![]() ![]() ![]() |
|
|
![]() |
Hello S.F.
It seems complicated to add music during the filling phase, because the processor is very busy displaying the image. By comparing we see that silence is a choice during this phase on QIX Nes or the game Boy. After the collision with a ghost, I also tried to put a simple sound but it didn't come out great. A note that decrements or increments would maybe sound better. |
|
![]() ![]() |
|
|
![]() |
Ah yes. I figured it was probably related to a busy processor.
I love everything else. Nice job! |
|
![]() ![]() ![]() |
|
|
![]() |
If you are using a newer SDCC you can hook the music update to the vblank interrupt to fix the timing issue regardless of how busy the CPU is. | |
![]() ![]() ![]() |
|
|
![]() |
On real hardware it won't actually be random data but some leftover from whatever ran before so the BIOS and for example the Everdrive OS. So for a more authentic result in Emulicious, you should try different BIOSes and run the ROM via Everdrive. It's good practice not to rely on initial state, instead initialize everything you rely on to a known state. |
|
![]() ![]() ![]() |
|
|
![]() |
Thank you for your feedback Maxim and Calindro.
Indeed when I programmed the title screen I had neglected to properly initialize certain variables and during the test on hardware with my everdrive I got through it because everything was displayed clearly. Contrary to my usual I had not not configured to random non-initialized memory on emulicious. This is corrected in v91 (put back in the initial post). For the music, in a future version I will try to dive back into my loops and review the execution timing of SMS_waitForVBlank synchronized with PSGplay. |
|
![]() ![]() |
|
|
![]() |
Here is an update that makes the demo feel more complete, improves performance, and fixes some bugs. I have updated the ROM in the initial post.
Changes V0.92 : Optimizations: The code has been globally revised, offering a significant performance boost. Drawing a line in bitmap mode (title screen) is now much faster, as is cleaning up borders during gameplay. Immediate loading of the full-screen image in case of victory. Music: Music now plays without interruption. Tempo variations will be fixed later. Sound effects (SFX) added after a capture. End-of-level jingle added. Bug Fixes: The floodfill stack size has been increased to fix incomplete filling of complex capture zones. Snail collision did not always work correctly in off-border areas. |
|
![]() ![]() |
|
|
![]() |
Really, improved. Much better. Congratulations. The songs sometimes are a bit messed but you warned. I believe that you can put a original music than snail maze sound. | |
![]() ![]() |
|
|
![]() |
The page has been updated: https://www.smspower.org/Homebrew/GuysPanic-SMS | |
![]() ![]() ![]() |
![]() |