Showing posts with label Homebrew. Show all posts
Showing posts with label Homebrew. Show all posts

Ultra Air Hockey (Sega ports, redux)

Work resumes (again) on the Sega ports of
Ultra Air Hockey

   As I may have mentioned earlier in older news posts, the BEX/Sega homebrew port of Ultra Air Hockey was cancelled around Winter 2014/2015. (BEX is a BASIC language for the Sega Genesis/CD/32x.) This was due to several issues that occurred while developing it, including
instability of the BEX compiler and other bottlenecks. As the homebrew ROM executable became bigger, internal errors of the compiler being unable to compute jump offsets of large "bsr.w" branch Motorola 68k instructions began creeping in. Although it seemed to be a false positive of an error (since the ROM still compiled), further in development, I feared the ROM would corrupt further as it became bigger and more complex; in fact, at one point, a subroutine of code dealing with paddle movement ceased working between two builds, despite the BASIC code of that subroutine being nearly identical and valid between both builds. Furthermore, I made the mistake of trying to build a (poorly written, custom) port of the SpriteLibrary I used for sprite management in the PC QB64 code, and using the buggy "include" command of BEX to include that code, which seemed to create problems. I attempted to port that library over, with the future intention of using it to port over other games written with that library from QB64 to BEX and the Sega Genesis. Coupled with future problems of having to rewrite sections of the game code (due to the QB64 code using some subroutine/functions with parameters passed by reference, a feature which BEX cannot do), manage sprites and collision manually, and most importantly, have to deal somehow with trigonometry to handle puck movement and rebound angles (because BEX cannot handle neither trig functions nor 16/32-bit fixed point arithmetic), major development issues were ahead. It was at this point that I decided to ditch the BEX build, and refactor the game using C and the SGDK library for GCC

   Why did I move development to the SGDK? Well, for several reasons. Firstly, the SGDK is opened source, C-based, more stable, and is updated more regularly than BEX (which hasn't had an update in years). With it being C-based, I could use a real programming language, and use main parts of the code in the future for any additional ports of the games to other retro platforms, and simply modify the baseline code for hardware-specific changes. Furthermore, it contains more complex and useful programming features out-of-the-box, including direct sprite support (including sprite collision), fix16 and fix32 fixed port arithemetic and trigometry functions, passing function parameters by value and by reference, etc. Furthermore, being C-based, it is easier to split the program into smaller testable modules of .c and .h files, instead of having a giant text file of all the main function and all of the subroutines and function.

   Although SGDK does have its benefits, it has a few drawbacks in comparison to BEX. BEX is cross-platform, allowing the user to write the code once, make a few minor tweaks, and allow that same code to run on the Sega CD and Sega 32x add-ons. At the time of this writing, SGDK does not officially support hardware-specific Sega CD and Sega 32x features, but there are a few ways to extend the baseline SGDK support to run and compile for Sega CD and 32x, but I believe it takes more effort. Also, the BEX port had the benefit of a very close code translation between the original QB64 code and BEX (being that both are BASIC languages), and is BASIC.

    Over the past week of summer, I have begun transcribing the old BEX Basic code to SGDK C, and have most of the menus and introduction created, shown below. These menus are mostly the same as shown in older videos, just written in C and with a few additional features, including fade outs of palettes and splitting the sound test into a separate music test and sound test options item. There are a few bugs to fix, but the functionality is basically the same as before, and as tested with my Everdrive MD, the code works on hardware too!



  Now to working again on the paddle handling :)!

2014 Recap, Plans for 2015

Recap of 2014, and Plans for 2015

(Rather than make about like 5 different posts on things I need to say, I thought I would combine everything into this post.)

     It's that time of year again, where EagleSoft Ltd gives an overview of last year's accomplishments and plans for the new year! Unfortunately, not very much was completed last year, due to "real-world/life" commitments such as university life. However, EagleSoft Ltd did begin work on a retro homebrew port of its famous Ultra Air Hockey game to the Sega Genesis/Sega CD using a basic programming language called BEX, began work on a 3D, Deluxe multi-platform edition of the game called Ultra Air Hockey Deluxe using Unity3D, and added more content and extensive visual changes to my old fan game, Sonic CD Breakout.

    For 2015, unfortunately, due to technical difficulties and limitation of the BEX programming language, the BEX retro port of Ultra Air Hockey is being cancelled, but moved to the Sega Genesis Development Kit (SGDK). Likewise, the BEX GSpriteLibrary which was being developed in parallel is also being cancelled, and will not be ported to SGDK, since SGDK has most the library's features built-in. The SGDK is a C-based dev kit for the Sega Genesis, which is more powerful and stable than the glitchy BEX compiler, and which compiles code through the GNU GCC compiler in your IDE of choice. (I am using Code::Blocks.) It includes advanced features such as virtual Fix16 and Fix32 floating point data types, trigonometry, sprite and spritesheet management, input controls (Sega Genesis 3 and 6-pad joypads, Sega Mouse, Light gun, etc), and more. Due to this set back, the publishing and release of Ultra Air Hockey (Retro) is now greatly delayed; however, the end result show be a more polished, professional product.

  Furthermore, EagleSoft has finished a large chunk of programming for Ultra Air Hockey DX. We currently have everything completed except online multiplayer. Initially, we were going to release the game as a Windows 8 app in the Microsoft App Store without online multiplayer support before Christmas 2014, and were going to simply add that feature in a future update post-mortem. Unfortunately, we also want to publish it as a standalone W7 executable (especially since Windows 8 is a heretical, blasphemous, Satanic abomination to computing), but the Windows Store only allows for Windows 8 apps. This would have caused us to create a separate update/serial system, in order to allow Windows 7 customers to be able to download an update without re-purchasing the game. Instead, we are going to publish it once, after multiplayer is coded. After done with UAHDX, we plan on creating yet another original indie Unity3D game. No details or plans on what that game will be yet...

   Lastly, we are continuing to work on our Sonic CD Breakout fan game. Although this is a low-priority game, we are continuing to develop new zones, special stages, and other features by removing limitations and extending features of the BreakGOLD game engine.

   In conclusion, although not much was completed last year, we are working to make next year better, and to create more exciting video game projects!

-EagleSoft Ltd


Unity 3D project confirmed: Ultra Air Hockey DX!

Unity 3D Project confirmed:
Ultra Air Hockey DX!

   As part of a university project for Fundamentals of Software Engineering, a classmate ("Josh") and I are working on a Unity3D video game project. As part of the assignment, we needed to come up with 3 ideas of a software engineering project, as detailed in a previous blog post, for which the Prof. would select one of those projects for us to do. 

Our professor, Dr. A, decided to pick Ultra Air Hockey DX!
So we are going to develop it!
 

    Ultra Air Hockey DX is ultimate edition of Ultra Air Hockey, written in Unity3D, multiplatform, and multiplayer. This new edition contains 6 more powerups, 3 modes (Air Hockey, Pinball, and 4P Battle Mode), more music, more sfx, and more action! Full details can be found on the dedicated UAHDX page on my website.

   More news as Josh and I develop the game!

Anthony K
-Owner/Founder/Lead Programmer of EagleSoft Ltd

Future plans for EagleSoft Ltd

Future plans for EagleSoft Ltd
Mid 2014-Early 2015
 
 
 
    Not to sound self-promoting or anything, but EagleSoft Ltd and I have big plans for the remainder of this year and for the beginning of next year!
 
    EagleSoft Ltd is officially and professionally going indie, with the company learning how to develop exciting, new, original, multiplayer, 3D, video games, using Unity3D! Unity3D is a high class, high quality, powerful, 3D Game engine, which can be scripted using C# and is multiplatform; see its official website for more details.
 
 
 
     We are currently working on several, for-sale, for-publish, indie video games, including the retro ports of Ultra Air Hockey (Standard Edition) to the Sega Genesis/CD, and an undisclosed Unity3D project. The Sega Genesis port of Ultra Air Hockey will be released as both a digital ROM download, and as a physical repro copy. The physical repro copy will be released as a cartridge with custom label, and with the option of having a case with manual. The Sega CD version will be released as both a digital ISO ROM, and as a physical CD. The physical CD will be released as either with CD label and a CD sleeve, or as a CD with image and DVD case with manual. Pricing for both pending.
 
   Furthermore, a university classmate ("Josh") and I are working on a Unity3D project for a class project. We are thinking about either doing a multiplatform, deluxe edition of Ultra Air Hockey in 3D and with online multiplayer, a 3D Asteroids clone, or a 3D clone of Scorched Earth.
 
More news about these exciting developments in the coming months!
-EagleSoft Ltd

Ultra Air Hockey (Sega) VGM OST Released!

Ultra Air Hockey (Sega) VGM OST
& Sega CD CDDA Released!
 
 
Over the last week, the OST for the Sega ports of my homebrew video game, Ultra Air Hockey, was finalized and mastered! Some songs underwent extensive revisions (some up to 9), and SMPS voices were swapped out for better ones. SMPS voices that were tinny or not playing correctly, due to too much TL or problems with XM coordination flags, were fixed.
 
Below is a video to listen to a preview of the finalized music. The intro sequence song was also created, and the intro sequence of the game is now relatively in sync with it. Furthermore, I've created a VGM pack of the music from the Sega Genesis, so that you can listen into your favorite VGM player. I also have finalized the Sega CD CDDA OST, although no work on the Sega CD port has occurred yet. Both are available at my Sega Genesis/CD/32x music page :).
 
 
Tentative digital and physical release of the game is either Thanksgiving 2014 or Christmas 2014. The Sega Genesis port will be released as both a ROM download and as a physical repro cartridge for sale. The future Sega CD port will be released as both an ISO and as a physical CD for sale.


Due to university life booting up again, I will have much LESS time to develop the game; but I'll try to work on it as I can. No promise on the release dates, however.

Enjoy!

Ultra Air Hockey (Sega): Game Engine Progress #1


Ultra Air Hockey (Sega): Game Engine Progress #1
 


Over the past month of June, I've coded/ported some more of the Ultra Air Hockey game engine to the Sega Genesis. Things accomplished include adding my EagleSoft Ltd logo and a Sega Genesis 25th anniversary logo, fixing tabs and the display for the Credits screen and  converting most background graphics from uncompressed fullscreen mapping to tile-map based graphics. Also, for the Options screen, I fixed the On/Off options to work now, added song/sfx names, and added the EagleSoft Ltd PCM intro song.

As for the game engine itself, I've begun work on coding GSpriteLibrary, have added basic 8-direction player stick movement, added a simple powerup HUD, and added a pause screen. I've also implemented the announcer, which is tested via a debug test feature, and have implement collision box outlining and coordinate debug tracking.

Below is a video showing the progress!


Stay tuned for more progress in the coming months!
(If college/real life does not intervene too much, which it probably will.)

Progress on Ultra Air Hockey (Sega homebrew ports)

Homebrew development for the Sega Genesis port of Ultra Air Hockey begins!
 
 
   Only a few months later after the original, PC version of Ultra Air Hockey was released in April, and development for the Sega Genesis/Sega CD ports of Ultra Air Hockey has already begun! The Sega Genesis port of the game is being written with BasiEgaXorz, a TinyBASIC compiler for the Sega Genesis/CD/32x. Graphics are being converted into the tile-based format that the Sega Genesis, music has been converted to the Echo Stream format, for use with the Echo Sound Engine, and sound effects are DAC converted versions of their .wav counterparts from the original/definitive PC version.
 
  So far, everything but the game play itself has been coded, and even then, there are some bugs to fix. Below is a video of progress so far, and a video of a test ROM showing the Echo Sound Engine in action. Game play should be coded within the following months, hopefully to be completed by the end of summer.
 
You can keep track of development at this blog, or as I upload media to the project's corresponding page, on my portfolio/project website.
 
 
 
 
Stay tuned for more developments!
 
-EagleSoft Ltd
-Tamkis

Ultra Air Hockey Relesed! (PC, v1.0)

Ultra Air Hockey for PC released! (V1.0)
 
 
Ultra Air Hockey for PC was released over spring break during March 2014! You can download it from here. It will be ported to the Sega Genesis/Sega CD over summer 2014. Enjoy, and have fun!

 
 

Progress on Ultra Air Hockey (PC)

        Progress for the main/PC version of Ultra Air Hockey currently has been very rapid and exciting! Development of the main/PC version of the game started on January 08, 2014, and is still ongoing (as of the time of this writing, 02/26/14). Up to today, the title screen, main menu, options screen, main gameplay, and sfx/bgm have been coded in. Also, physics, powerups, and controls for player one have been created. Currently, the game is ~75% complete.

   What is left to do for the game is to create a credits screen; fix physics, graphical, and other bugs; create controls for a human player #2, and create AI for the CPU player #2. If everything goes according to plans, the PC version of the game should be complete by early April 2014... however, there are no guarantees on this date, as my University work is getting difficult and time consuming.

   Below is a YouTube video showing a PoC of the current development of the PC version of the Ultra Air Hockey video game. Enjoy! Please post your comments and suggestions for the game here. I am tired of having no audience/followers for my homebrew/indie software, and would like some intelligent human interaction!



   Stay tuned for more developments on Ultra Air Hockey!

-Tamkis

About Ultra Air Hockey

    Currently, I am creating new video game, called Ultra Air Hockey. Ultra Air Hockey is the new and exciting, multi-platform, Air Hockey homebrew/indie video game, coming to your PC, Sega Genesis/Sega CD retro video game consoles, and Android (in the future)! The main copy of the game will be written in QB64GL for Windows PCs, and will utilize QB64's new commands, especially the multimedia commands. After game development is finished for the PC version, the game will be indirectly ported to the Sega Genesis/CD as homebrew software using BasiEgaXors.

Unlike the other boring Air Hockey video games out there, Ultra Air Hockey has various features that make it unique and fun, including:
  • Features
    • 1 and 2 Player modes
    • Difficulty settings
      • Each difficulty has a different length for goal
      • x3 difficulty settings per mode
        • Easy (small goal)
        • Medium (larger goal)
        • Hard (largest goal)
    • Powerups
      • Powerups are collectible by hitting powerup icons with hockey puck
      • Powerup is then kept in reserve until player uses it
      • x 9 powerups
        • Multi puck
        • Big stick
          • Makes your stick x3 bigger
        • Blockade
          • Puts a giant wall in the middle of the table!
        • Slowmo
        • Kill opponent
          • Opponent is taken out of the game until next goal
        • Swap places
        • Fastmo
        • Invisibility mode
          • Makes players invisible for a brief amount of time
        • Bumpers
          • Randomly places x7 bumpers on the table
          • Puck and sticks interact with them!
    • Graphics
    • Music
      • Public domain, classic .mod chiptunes
      • x16 Chiptunes
        • x3 for the difficulty modes
        • x7 for the powerups
        • x3 other
    • Sound effects
      • Realistic, original, exciting sound effects!
      • Creative Common sounds from Freesound.org
      • Announcer proclaimes
        • What the current score is
        • Who is winner
        • Other things
    • High quality, fun game, for family and friends!
Stay tuned on my blog for more updates on development for Ultra Air Hockey!
Copyright EagleSoft Ltd. Powered by Blogger.