Showing posts with label Sega Genesis. Show all posts
Showing posts with label Sega Genesis. Show all posts

Sonic 1: The Super Challenges release! (Sonic Hacking Contest 2025 contribution)

Sonic 1: The Super Challenges release!
(Sonic Hacking Contest 2025 contribution)


Release details
 
    A game mod DeltaW, the rest of the development team, and I have been working called Sonic 1: The Super Challenges has been released this week for the Sonic Hacking Contest 2025! The devteam and I have been working on the game mod since 2024 for the Sega Genesis, with support added for Sega CD Mode 1 functionality too!
 
 
S1SC Trailer
 
SHC25 Trailer
 

Knuckles' Clackers: Sonic Hacking Contest 2023 demo release (v0.2c)!

 Knuckles' Clackers:
Sonic Hacking Contest 2023 demo release (v0.2c)!

    A new build of Knuckles' Clackers has been released (v0.2c demo) and was submitted to this year's Sonic Hacking Contest 2023 and Bitbridge Halloween Showcase 2023! Knuckles' Clackers is an award-winning, major Knuckles' Chaotix ROM hack for the almighty Sega Genesis 32x. The game mod features new zones, new music, new artwork, code edits, engine bugfixes, and restored Knuckles' Chaotix/Sonic Crackers beta content.

    Build v0.2c demo is an accumulative update from the v0.11b Demo. It features new music, more polish, new artwork, a few new custom objects, and other code edits. Most importantly it features a new Techno Tower Zone Classic Act 4 level, which is a 3-boss rush level based on the first half of Egg Gauntlet Zone (Sonic 2 2013)
 
   The new build was submitted to this year's Sonic Hacking Contest 2023 and won a few trophies! The community, judges, and media panel enjoyed the game while playing and streaming the new build. Thank you everybody for judging and voting the game; winning a few trophies this year was both an honor and a surprise!
 
 
Trophies:
  • Hexadecimal Trophy (Community, Honorable Mention)
  • Hexadecimal Trophy (Judged)
  • Spinball Trophy (Judged)
  • Spinball Trophy (Community)
 

SHC23 Entry

   The build was also featured at the annual Bitbridge Halloween Showcase 2023 in Pittsburgh, on real Sega 32x hardware and on my EverDrive MD v3 flash cartridge. The public had fun having Halloween candy, dressing up in costumes, and testing out the local Indie gamedev scene's video games.

   Mega Cat Studios
was there and showcased their new Indie game, Wrestle Quest, on Steam Deck. It was nice running into and catching up with my former boss and manager at their booth. Mega Cat Studios is an awesome retro game studio, making new games for retro video game consoles (Sega Genesis, Super Nintendo, and others) and new Indie games for modern platforms. I highly recommend checking them out, following them on social media, and supporting them with the new Wrestle Quest game release on Steam/Nintendo Switch!
 


Knuckles' Clackers booth at the
Bitbridge Halloween Showcase 2023

Sega Genesis homebrew booths of a friend and I.
I'm on the left, in an Eagle costume

Changelog (v0.2c Demo):

  • v0.2c Demo
    • Sonic Hacking Contest 2023 demo update HOTFIX (09/25/2023)
    • Fixed a game breaking bug with TTZ4/Egg Gauntlet zone boss triggers and partner death in 2P mode
      • If in 2P mode, player 1 dies, and the 2nd player reaches a boss trigger in TTZ4/Egg Gauntlet Zone, he will be called towards the dead player 1 (out-of-bounds) from the boss arena.
      • This bug leads to a soft lock
      • This bug also causes a ghostly, transparent second Espio to appear in Isolated Island (Intro) act 0 on a new save game
      • Both bugs fixed!

  • v0.2b
    • Sonic Hacking Contest 2023 build (update week, 09/25/2023)
    • Implemented new Death Egg Zone (Sonic 2 port) song for TTZ Act 4 level
    • Implemented lava palette cycling for TTZ Act 4 level
    • Changed graphics for TTZ4 projector screen blocks/tiles (AAZ mini/boss)
    • Fixed crashes near lava section and from backtracking in TTZ Act 4 (simpler 32x sprite object placement)
    • Added more right one-way doors in TTZ Act 4, modified level layout for doors
    • Improved object positioning for TTZ Act 4 level
    • Improved collision for quarter pipe launch off chunks
    • Replaced a quarter pipe chunk with an alternate chunk to hide Sega 32x sprite loop spritemasker in floor (TTZ Act 3)
    • Fixed bug with Shrink powerup effect instantaneously becoming undone

  • v0.2a
    • Summary
      • Sonic Hacking Contest 2023 demo (09/16/2023)
      • New Egg Gauntlet Zone part 1 level (Techno Tower Zone Classic Act 4, from Sonic 2 2013 mobile)
      • Implemented engine changes to allow for multiple bosses within an act (boss rush mode)
    • New Music
      • Hidden Palace Zone (Sonic 2)
        • For Proto Palace Zone
      • Sonic 2 Club Mix (Sonic 2 beta)
        • For Speed Slider Zone Classic
        • Credits to LordXernon/DJ Error for permission to port these to Chaotix
      • Imported Splash (HyperDimension Neptunia Re;birth 1) song
        • For TTZC/other bosses
IPS download patch available (v0.2c) at the

(Older video of Techno Tower Zone Act 4)
 


Stay tuned for more Chaotix research and Knuckles Clackers' development

- GenesisDoes

XBandPi NOOBS Compatible image released! (v1.23/v1.7 DLE)


XB∀NDPi NOOBS
Compatible image released!
(v1.23/v1.7 DLE)



Socket the Hedgeduck Progress: FZ & TCZ

Socket the Hedgeduck Progress: FZ & TCZ



  After nearly a 2 year hiatus (due to professional gamedev work), development on the Socket the Hedgeduck mod for Sonic 1 has resumed! Recently, Future Zone Acts 2 and 3 have been finished, as well as the entirety of the final zone, Time Castle Zone. A planned v0.4a demo will be released later this year and submitted to the 2019 Sonic Hacking Contest, after more polishing, bugfixes, and improvements will be made to the game.


    Future Zone acts 2 and 3 were previously empty, due to figuring out a way to implement the reverse-gravity gimmick used in the original game for act 2. After a few failed attempts at porting S3K's reverse-gravity gimmick to Sonic 1 (which would have been a high cost, low benefit feature to implement, due to only one level requiring it), I used some out-of-box thinking to implement the feature. Instead of vertically flipping Sonic's gravity and physics, why not vertically flip the entire level around Sonic 😮?

    Behind the scenes, in code, instead of implementing S3K's reverse-gravity gimmick, hitting an activated gravflip bridge instead transports Sonic between FZ2 and FZ4 levels, very similarly to the inter-level warp doors in Olein Cavern Zone 2 (OCZ2) or the boss doors in act 3 of each zone. (I call the types of warp doors that transport Sonic to a different location within the same level "inter-level warp doors".) FZ2 is the normal version of the level, while FZ4 is a copy of FZ2 that is vertically flipped (has vertically flipped level chunks and y positions of  objects mirrored about the level's middle y midpoint). The only difference in the warping functionality for the gravflip bridges is Sonic's new warp position. Sonic's new x position is kept the same, while his y position is calculated to be a new one mirrored about the levels y midpoint. This creates the illusion of gravity flipping. Similarly to the Bonus Fence Zone (BZF) levels, where pressing A button while in Debug Mode will send Sonic to the background layer for collision, pressing A button while in Debug Mode will send Sonic between FZ2 and FZ4 levels to implement the "gravity flip".

   Act 3 for each Zone is a unique remix I create using the existing chunks from the other 2 acts, since the original Socket game only has 2 level per zone (excluding High Speed Zone (HSZ) levels). Due to the fact that the Sonic engine (and Socket engine) use large 256x256 px chunks instead of Sonic 2 and later's more flexible 128x128 px chunks, these levels are usually remixed sections of the 2 previous acts, with a few unique chunks I design sprinkled in between to connect sections for smooth level graphics and layout flow. Unfortunately, gravity flipping act 3 would have consumed more than the zone limit of $FF Big ROM Chunks, so the reverse-gravity feature was only designed for act 2. All act 3 levels (except TCZ3) have a boss warp door leading to a boss area.

 FZ3 is an extremely difficult remix of acts 1 and 2, with a ton of traps, surprises, and difficult obstacles, and might actually be the hardest level in the hack. The final section of the level consists of a Labyrinth Zone (LZ)-styled wind tunnel, inside a few huge glass tube chunks. Sonic must float upwards and downwards to avoid painful torpedoes (the same ones as used in Antiquity Zone (AZ)), horizontally moving spiked blocks, collect rings, and cling onto Satebô BS-X Satellaview satellites. (These satellites have the same behavior as LZ wind tunnel poles). The level ends with hitting the boss warp door, which leads to the boss area and a to-be-implemented boss.

FZ1

FZ2

FZ3



  The entirety of Time Castle Zone, the final zone in the game, recently also has been finished. This zone was sitting at approximately 95% complete during the hiatus, and was just waiting on fully implementing 2 new custom objects (the hamster belts and clock platforms). This zone features some custom objects such as:

  • Beam bridges
    • Hit a button on the object, which unfurls a temporary solid bridge
  • Hamster belts
    • Operates like Metropolis Zone (MTZ) nuts in Sonic 2, but horizontally
    • Moving on the object will lock Sonic's position onto the belt
    • Moving Sonic left will move the hamster belt and Sonic right, and Sonic right move belt and Sonic left
    • Hamsterbelt will stop moving when it hits a wall either to the left or right
    • Makes squeaking noises as the object's art updates frames
  • Clown faces
    • Painful objects that rotate clockwise, counterclockwise, or upside down in either rotational direction
  • Clock platform
    • Platforms that rotate clockwise on clock faces in the level
    • 2 variants
      • Platform with a shorter radius that moves slower (hour hand)
      • Platform with a longer radius that moves faster (minute hand)
  •  Crusher blocks
    • Purple blocks that oscillate up and down, attempting to crush Sonic in various areas of the level
  • Collapsible platform
    •  Standard Sonic 1 collapsible platform, just updated graphics for zone
  • Runaway Saws
    • Standard Sonic 1 saws and pizza cutters object from Scrap Brain Zone.
    • Only runaway version used, with updated graphics
    • Same objects as used in FZ
 TCZ1 is a rather basic (but difficult) level, introducing the player to this zone's gimmicks. TCZ2 is a difficult labyrinth, and is the only level in the original Socket game to feature two bonus stage doors. TCZ3 is a remixed version of TCZ1 and TCZ2, with bottomless pits and a more difficult level layout. Currently TCZ has an odd memory leak bug somewhere where having too many clown faces and chained spikeballs on screen will cause the game to start corrupting object SSTs, not loading new objects, crash the game, or begin running arbitrary code. This bug happens often in TCZ2, and the bug will be investigated and fixed before the upcoming demo release. In the game mod's extended playlist, each act in TCZ features a song for both the bad ending (not having all 7 chaos emeralds) and the good ending (having all 7 emeralds). Some of these songs are currently WIP, while others are completed.

    TCZ goes over Sonic's original Scrap Brain Zone (SBZ) level slot. The original Sonic 1 game has a SBZ3 level which is actually a Labyrinth Zone (LZ) act 4 level. The real SBZ3 level is Final Zone, and is actually just SBZ2 but starting at a further level position and having the boss implemented. I found this setup to be BS, and undid it completely. (I call this the "Anti-SBZ3 BS feature".) TCZ3 is a real level in this mod. TCZ doesn't have a boss; the next and final zone (a 1-act Time Lord Zone (TLZ)) does feature the final boss, the evil Time Dominator! Time Lord Zone is technically SBZ4 in this mod. It uses some extra chunks from SBZ3 and a new palette for the level. This is a far more acceptable setup for the final zone than the SBZ3/LZ4 BS in the original game 😀.

  TLZ is currently just a level layout, with no final boss yet implemented. Like with TCZ, this level has both a good and bad ending song. I have plans down the road possibly to implement some cutscene screens in the game, replace the emeralds with Sonic CD Time Stones, and to explain a backstory as to why Sonic is in Socket's universe and as to why he is fighting the Time Dominator. In the bad ending, you just fight the Time Dominator; in the good ending, you fight both the Time Dominator and a brand new boss.


     Other changes behind the scenes include refactoring the mod's original warp system to fix screen tearing and BG deformation issues. Inter-level warp doors no longer clear object RAM. This means you can no longer use warp doors and continuously farm up on rings by having them respawn. Sonic is the only object destroyed, and then reloaded with a new warp position set (classical quantum teleportation lol).

  With both FZ and TCZ complete, all of the levels for the hack have been implemented 😀! All that is left to complete this hack is to fix bugs, polish the game, and to implement the remaining bosses.



   Stay tuned for more development on Socket the Hedgeduck this year!

-Tamkis

Socket the Hedgeduck: Future Zone/other progress

Socket the Hedgeduck: Future Zone/other progress

    Things got kinda busy and hectic in the final months of 2016, with the Sonic Hacking Contest 2016 event last year, v0.3 demo release of Socket the Hedgeduck, and submitting both Sonic CD Breakout Demo #3 and Colonial Combat to SAGE 2016, and of course, Real Life™. I didn't win any community or judge trophies for the SHC16 (at one point I was in 4th place for music and art IIRC for community votes, but then I dropped below 5th place for them), but it was fun, although many people in the Sonic community thought this year's iteration of the event was quite lackluster in term of quality and fun hacks.

   Due to the busyness, I forgot to blog about post-contest updates on Socket the Hedgeduck! Recently, Future Zone was worked on, and is nearly complete, minus porting over the S3K reverse gravity gimmick. There are a few fun interesting gimmicks in this zone, including a ported over/modified S2 CNZ snail block object, horizontal and vertical crushers, low-gravity magnet blocks, and soon a reverse gravity bridge. A few more quality SMPS covers were created for the bosses (for the extended playlist), the bosses were recreated for Emerald Forest Zone and Treasure Castle Zone, and the Fence Bonus Zone was greatly improved with a proper dual-layer system.



 





 Overall, progress is continuing on this hack, and it's getting closer to completion. Stay tuned for more updates on Socket the Hedgeduck, and for new stuff coming in 2017!

-Tamkis/GenesisDoes

Socket the Hedgeduck: v0.3/SHC16 release!

Socket the Hedgeduck:
v0.3/SHC16 release!


   After a little more than a month of work, a v0.3 demo build of Socket the Hedgeduck has been released, as both an IPS patch and on the Sega Mega Drive & Genesis Classics Collection on Steam Workshop! You can download the patch or subscribe to the mod page under the "releases" section on the updated project page. Among many other changes, Antiquity Zone and High Speed Zone 5 have been added and a lot of nitpicky polishing and bug fixes were made.

  In related news, over last week and last weekend a lot of legitimate Steam Workshop mods for the SMD&GCC were falsely flagged and taken down, Socket the Hedgeduck was one of them. After submitting a Steam Support ticket explaining the situation, I was luckily able to get the illegitimate ban lifted and reinstate the mod. Socket the Hedgeduck has also been submitted to the Sonic Hacking Contest 2016, which will be taking place on November 7th, where it will be privately and publicly judged to compete for some of the Sonic community's hacking trophies! Come join for the live streams and festivities during that week!



-Tamkis (aka GenesisDoes)

Socket the Hedgeduck: v0.2 Release

Socket the Hedgeduck: v0.2 Release
 
 
    A ton of work has been done on Socket the Hedgeduck, a Sonic 1 mod for the Sega Genesis using Socket/Time Dominator levels and assets, since its first v0.1 demo build in April. Mostly bug fixes, new levels, and improvements have been made to the mod since then. A new v0.2 demo is now released on both the website and now on Steam, as a Steam Workshop item for the Sega Mega Drive and Genesis Classics collection for the Sonic 1 DLC. You can download the mod either as a patch or for Steam at the links at the project page, and see the changelog there.

-Tamkis

Socket the Hedgeduck progress: Stone Age Zone

Socket the Hedgeduck Progress:
Stone Age Zone




I'm still chipping away at progress on the Socket the HedgeDuck ROM hack, an advanced Sonic 1 hack with Socket/Time Dominator levels and assets! Stone Age Zone (SAZ) acts 1 & 2 have recently been worked on, with a few unique object gimmicks created. Bridges in this zone can be destroyed by pressing buttons, lava geysers fly up from the lava, and OOZ Balls in this zone are destroyable and painful. The acts are mostly working, albeit with a few minor VRAM issues and bugs that need fixed.

Video of SAZ1 & 2
 

After finishing SAZ3, fixing some bugs in my bug/todo list backlog, and adding some minor game improvements, a demo v0.2 should be available soon this summer! Stay tuned for more progress at SSRG and at the blog.

Socket the Hedgeduck progress: BZLa

Socket the Hedgeduck progress: BZLa





   Behind the scenes, a lot of work has gone into Socket the Hedgeduck since the blog announcement of the project and since the previous progress post. Most of these changes were adding additional SMPS conversions of video game songs, improving collision for TrCZ, DPCM compressing all DAC samples for the MegaPCM sound driver, various bug fixes, and other technical stuff. Most importantly, I've recently finished the Bonus Zone Lava (BZLa) acts, finally added a BG layer and palette cycling to OCZ, and added all of the zones to a 3-page level select. In the BZLa acts, you must hit the springs and invisible path swapper objects to traverse to the top of the sprial staircase, before the deadly lava-water rises and defeats you!

  Videos and pics below





 With BZLa created, all that is left is to fix a few big bug,
and a Demo #1 release of Socket the Hedgeduck should be released VERY soon!

-Tamkis

News/"Socket the Hedgeduck" project

News/"Socket the Hedgeduck" project!


    Although last year was a very productive year for EagleSoft Ltd, to the casual passerby to EagleSoft social media, it would appear that our development on software is going slow this beginning of the new 2016 year. However, nothing could be further from the truth; there is usually something going on behind the scenes at the software engineering laboratory!

Colonial Combat progress:

     Although I graduated from the university in December, work on Colonial Combat is still ongoing. The fighting engine is mostly finalized and coded, and I'm patiently waiting on the pixel artist to finish drawing up the remaining levels and more character art so that I can import the level art, design the levels, rig the other characters, and code in other level objects and gimmicks as necessary for the object handler script. (Drawing both art pieces for the artist are very time consuming, due to the art being original pixel art. Fun fact: each character has 115 sprite frames. 115 sprite frames * 13 characters = 1,495 total sprite frames for all characters. That's a lot of sprites for our artist to draw!)

NEW Project "Socket the Hedgeduck":
 
    In the meantime while waiting for the art to be created for Colonial Combat, I privately began work in December 2015 on a new side-project for fun and as a programming challenge: "Socket the Hedgeduck"! It's a modification (or in technical terms for the retro-technically inclined, a "ROM hack") of Sonic the Hedgehog (16-bit), which is an advanced hack which serves to be an unofficial port of Socket/Time Dominator assets (music, level layouts, art, objects, and more) to the Sonic the Hedgehog Engine. It's my first Genesis game modification since 2012, when I went on hiatus from game modification in order to focus on my university studies. It feels great again to be tinkering around with Genesis hardware, the Sonic the Hedgehog engine, and with Motorola 68k assembly programming, especially now having more formal knowledge on computer internals via a Computer Architecture class. Full details about the hack (including pictures and videos) available at the project page. Development is going full-steam ahead on this side project, and I hope to have a demo build sometime soon in Spring (released via a patch file, no concrete date on this).

-Tamkis

Sega Genesis Controller Repair

Sega Genesis Controller Repair
 


   Let's admit it, retro video game consoles and accessories are old; however, that doesn't make them not interesting from an electronics and software engineering standpoint! Although some retro video game consoles and accessories can be reproduced in newer forms for the fanboy (such as clone consoles and new video game controllers from aftermarket companies such as retro-bit), nothing beats the 100% compatibility and authenticity of original hardware and accessories. It is important to preserve the old hardware, reverse engineer and document the secrets and specs of the hardware for homebrew development and emulation, digitally backup the games for future generations to enjoy, and to take care of the hardware. Because once it is gone, it's gone.

   Although not hard to reproduce or to find new ones being produced, today we will be discussing how to repair and maintain your 1st-party Sega Genesis 3-button controller. This guide should carry over to 1st-party 6-button controllers, as well as for 3rd-party controllers with some variation. After playing on my ol' Genny with some friends a few weeks ago, I found some of the buttons on my pre-owned controllers I bought at the retro video game shop were becoming very unresponsive, if responsive at all, so I Googled how to fix the issues. It's a lot better to repair the hardware then to spend a few hard-earned dollars on new hardware, especially if on a budget!
 ====================================================================

Theory

   The most common problem with Sega controllers are the button contacts. These button contacts are similar in style to cheap calculator contacts or to microwave buttons. For the buttons on both of those devices, the button assembly consists of 5 main components:
  1. The physical button itself (usually with a label of what it does)
  2. The button contact (underneath the button itself)
  3. The PCB board with the electronics circuity
  4. The PCB contact
  5. Physical mechanism to retract the button to normally-opened position
   By pressing the physical button (component #1), the button contact (component #2) makes physical and electrical contact with the PCB board and the PCB contact (components #3 and #4). The physical mechanism (component #5, usually component #2 the rubber button contact) brings the button back to its normally-opened state after being pressed and released. The PCB contact is usually a yellow circle with electrical breaks in it. By pressing the button, the button contact (a black circle which has some type of electrically conductive material on it) closes the circuit at the yellow PCB contact, allowing the circuit on the controller and in the console to register a button press for an action in the game's code to occur. The problem with most pre-owned, 2nd-hand Genesis controllers is the dirtiness inside the controller, on those button contacts, and on the PCB contact. Depending on where and how the controller is stored, and after repeated button presses over the years, dirt can build up on those components, and reduce the button's ability to initiate electrical contact.

======================================================================

How to fix these issues

   To fix these issues, you will need to open up the controller and remove the dirt from components #2-4 above using rubbing alcohol. You will need the following

  • Appropriate sized Phillips screwdriver for the controller screws
  • Replacement screws (optional)
  • Dixie cup
  • Bottle of Rubbing alcohol (50%-70% strength recommended)
  • Q-Tips or Cotton swabs
  • Genesis game or Flashcart
  1. Remove the 6 screws from the bottom of the controller. Keep them handy. Optionally, if they are stripped, rusted, or in bad mechanical condition (like mine were), replace them with similar screws. Separate both halves of the controller


  2. Remove the screws holding the PCB to the controller. Replace if necessary and keep them handy. Carefully detach the PCB's DB9 wire from its notch on the top to remove the PCB.
  3. Push out the button assemblies and D-Pad assembly from the front of the controller. The D-Pad has a rubber mechanism which should also be removed. Remove the rubber button contacts from the switches, but remember which buttons they goto.


  4. Pour some rubbing alcohol solution into your Dixie cup.


  5. Using either your Q-tips or a cotton swap (I prefer a cotton swap), gently wet it with rubbing alcohol and rub it into the PCB contacts on the PCB. Dirt will be lifted onto the Q-tip/cotton swap. Repeat until clean and shiny. Use a dry Q-tip/cotton swab to soak up the leftover Q-tip solution on the PCB and wipe clean. Do the same for the black conductive material on the button contacts underneath the physical buttons, and for the rubber physical mechanism for the D-pad.



     
  6. Using the Q-tip/cotton swaps, clean up the insides of the controllers (mine were pretty dirty from the previous owner).
  7. Reassemble everything



  8. Lastly, plug the controller into your Sega Genesis, and play a game which utilizes all of the buttons. If you are awesome and already have a flashcart (such as the Everdrive MD), I strongly recommend looking for a ROM titled "Multitap - IO Sample Program (U) (Nov 28 1992)" "somewhere" on the interwebs. (El Google is your friend *wink*). This particular Sega program will diagnose controllers by showing button presses for 3-button and 6-button controllers, button presses and coordinates for the Mega/Sega Mouse, and various other Genesis peripherals.
=================================================================
Conclusion

   If you followed this guide (and did not break anything), your controllers should now be much more responsive in trigger button presses, making for a better gaming experience. Mine were quite unresponsive (some button were not even triggering), and this trick worked like a charm. If not, then there could be other issues with your controller (electrical shorts, loose solder joints, worn out rubber pieces for the buttons etc), which you should diagnose and repair/replace.

Happy retro gaming!

-Tamkis

UAH (Sega, Redux) Progress: Paddle Movement

Ultra Air Hockey (Sega, Redux)
Paddle movement!

      After days of arduous experimentation, debugging, SGDK discovery, forum chats, and sweat, managed to get some more progress done on the redux of the Ultra Air Hockey Sega ports with SGDK. Managed to implement the following:

  • Implemented flying eagle sprite for intro FMV
  • Added game initialization code
  • Added paddle movement
    • A-button to change speed within current speed set
    • 8-directions of movement 
  • Implemented British announcer guy
  • Added HUD
    • Displays scores
  • Added Debug stats and features
    • Display of FPS
    • Display of free memory
    • Paddle stats
      • x and y coordinates
      • dx and dy values (change in x and y)
      • velocity value, current speed index, angle
    • Announcer guy test
      • X button to speak score
      • Y button to increase blue paddle's score
      • Z button to increase red paddle's score
Below is a video showing off
the improvement and progress so far


   Although there are a lot of bugs at the moment and features coded in but not tested nor utilized yet, progress is going smoothly. Paddle movement runs consistently between a smooth 50 to 60 FPS. A few coding hiccups occurred with sprite management and with paddle movement, but most of them have been ironed out. Next development milestone and preview should have collision detection (and bug fixes) :)!

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 :)!

Still Alive

EagleSoft Ltd is still alive!



   No, I have not flunked out of college, defaulted on my evil Satanic student loans and committed Grant Theft Education, been assassinated by the NSA, or died as a hobo... however, it is Tamkis' birthday! So, being still alive (for the time being), what have I done for my birthday, and what are my upcoming goals and plans for EagleSoft Ltd?
___________________________________________________________________________________

    Firstly, due to gaining a whopping $500 tax return from my Uncle Sam for my birthday from last summer, I decided to devote a <$150 budget for purchases I needed and wanted to make. Some went towards important items such as a haircut, a new pair of professional dress shoes, and gasoline. A large chunk (~$80) went towards something I have been wanting to purchase for over 3 years, but did not have enough surplus money to purchase guiltlessly. With my love of technology, programming, tinkering around with modern and retro video game consoles and computing platforms, and video game development, I decided to purchase...



  An EverDrive MD is a flashcart for the Sega Genesis and its add-ons. For those who don't know, a flashcart is a special type of cartridge for a cartridge-based video game system which allows the user to perform certain system functions and to play backed-up copies of video games (aka ROMs) on the real hardware, usually from an SD card. It is essentially a rewritable cartridge. With the usage of flashcarts, gamers can play not only official games, but also rom hacks, homebrew, dumped unreleased games, unlicensed games, rare games, and more! Specifically, the EverDrive MD can perform the following features:
  • "SEGA Master System Games supported
  • SEGA 32x games supported
  • CD-BIOS Loading function [for the Sega CD]
  • Hardware MegaKey [for playing import games]
  • Max. ROM size up to 7Mbyte
  • Return to menu after reset
  • High compatibility with Chinese clone systems
  • SRAM auto backup on SD card
  • Supported SD/MMC up to 32GB
  • FAT16 and FAT32 are supported
  • GameGenie cheat codes
  • Simple menu"
   I ordered my cartridge from Stoneagegamer.com. Due to wanting to save money, I only ordered a bare PCB (with free cart label), instead of spending the extra $15.00 for a custom-fit cartridge shell. Luckily, a year earlier, I bought a cheap, poor quality sports game called Leader Board Golf for $2 with future intentions to cannibalize its case for an EverDrive. I also found some NOS empty VHS cases at a thrift store, so I repurposed one case as a Genesis Game case with EverDrive cover art I found online. After some drilling, sanding, removing and replacing those annoying Gamebit security screws (with some speciality GameBit drivers) and applying the game label over the old golf game, the case now aligns with the SD Card slot and the Sega Master System pause button, and the EverDrive is ready for play!


Pics of SAG box, EverDrive cart and case:


(Sorry cartridge, but you are being sacrificed for a higher purpose)






 
(Gamebit Screws replaced with normal ones)
(The Sega Monster System is complete!
Sega Genesis CD32x overpowered with EverDrive,
backwards compatible with Sega Master System games,
partially compatible with some Game Gear games,
and also plays some Mapper 0 translated NES games)

   The EverDrive MD will not only be used personally to play some great classic gamesm but more importantly, for contributing to the small Sega Genesis homebrew and game hacking communities. With it, EagleSoft Ltd can debug and test its homebrew software and hacks on real hardware, in order to verify if the software is indeed working correctly.
_________________________________________________________________________________

    Other than acquiring an EverDrive MD for development, EagleSoft Ltd is not doing much lately, due to real-world responsibilities such as having to finish up the Spring college semester, prepare for an internship, and soon begin a summer semester.

   We are currently working on creating the final v1.2 version of Ultra Air Hockey DX, which will have online multiplayer support. Once finished, the Android port will finally be published to the Google Play store, with both a free and paid version. The retro edition of Ultra Air Hockey for the Sega Genesis/Sega CD is being rebooted using SGDK rather than the BEX BASIC programming language. Furthermore, the Sonic CD Breakout fangame is still in development, and a Demo #3 is being planned for the next SAGE (Sonic Amateur Games Expo) iteration. Due to more reverse engineering efforts, it is possible to port (or rather, more specifically, "transplant") table sets and files from the PC version of Break GOLD to the Android version, so a mobile hack release may be possible too :).

-Tamkis
Copyright EagleSoft Ltd. Powered by Blogger.