Quick 8.3 filename conversion

Quick 8.3 filename conversion

   It has been sometime since I have posted some Windows Tips at this blog. The other day, I was tinkering around with a Windows 95 Virtual Machine, in order to try and install/play a CD copy of Megaman X I found at Goodwill two years ago. Unfortunately, the video game installer and the game itself on the CD were MS-DOS based, and would only accept 8.3 filenames for the installation directory ;_;. Whatever shall we do?!

   As I found in a MSDN forum, you could create a VB script, and then drag n' drop a file from another window on it, or simply cut/paste the original path directory in the script's pop box. Just open up Notepad, paste the following script code, save as .vbs, and chug away!

Set fso=CreateObject("Scripting.FileSystemObject")

' Is object a file or folder?
If fso.FolderExists(WScript.Arguments(0)) Then
'It's a folder
Set objFolder = fso.GetFolder(WScript.Arguments(0))
rtrn = InputBox("Here's your short path:", "SHORT PATH", objFolder.ShortPath)
End If

If fso.FileExists(WScript.Arguments(0)) Then
'It's a file
Set objFile = fso.GetFile(WScript.Arguments(0))
rtrn = InputBox("Here's your short path:", "SHORT PATH", objFile.ShortPath)
End If 

Have fun! (Now to get back and kick some robot butt!)



 

New misc section

New Misc section at EagleSoft Ltd!
 
Nope, EagleSoft Ltd is neither dead nor undead, but still alive! We at EagleSoft Ltd have created a new section on the website: the misc. section! At this section, we have added some Sonic Robo Blast 2 lua scripts, moved the old music page from the Sega section here, and added some racetracks/mods for Trackmania! Soon, we shall have a page with some Microsoft Office macros we have created.

   We are also working on a NEW Unity 3D game! An official blog post detailing the game will be posted later. The content is currently on the website unofficially, but the development should hit the ground running in the week after next and especially during the school year, since I intend to use this project Integrated Engineering Design class as a Software Engineering project :).

Enjoy!

-Tamkis

Ultra Air Hockey v1.1 Android port, now on Google Play!

UAHDX v1.1 Android Port,
now published on Google Play!


   Ultra Air Hockey DX (UAHDX) has been updated to v1.1, as well as an initial release of a new Android Port, both as a side-loadable app, and as an officially signed app at the Google Play Store! Due to lack of full-version purchases for the PC version (read: none!), the demo and full-versions of the game have been merged into a single, full, freeware version! It is strongly encouraged to give a donation of any amount to EagleSoft Ltd for future developments and motivation :).

Enjoy!

EagleSoft Ltd: Now on Facebook!


EagleSoft Ltd:
Now on FaceBook!

 
   Yep, you read the title correctly! EagleSoft Ltd now has a FaceBook page to further inform and to keep customers in the loop of current events with the indie dev group. The page will be used to relay blog information, and to give the latest news about the group. "Like" us today and share!

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

0xdbin Release!

0xdbin Release!




   As part of a quick project for Computer Architecture class, I wrote a binary/hexadecimal/decimal converter called 0xdbin! It not only converts between the 3 data types, but does so intelligently and with plenty of options, including sign processing modes for unsigned, sign magnitude, one's complement, and two's complement; the ability to pick binary and hexadecimal prefixes, and more! Try it today for your digital number converting needs!

 

0xdbin EagleSoft Page

Schell Games studio tour!

Tour to Schell Games Studio!
http://www.etc.cmu.edu/wp-content/uploads/2013/08/schell-games_RGB.png
 (Disclaimer: The following post is not sponsored/licensed/endorsed by either Schell Games, Robert Morris University, or ACM. Statements and opinions expressed in these articles are solely those of the author, not of EagleSoft Ltd as a whole.)



   A few months ago, the ACM Chapter at my university of Robert Morris and I were able to book a March 2015 tour to Schell Games, one of the more well-known, local video game design studios in the Pittsburgh area, located at Station Square. After a stressful and confusing drive due to Pittsburgh traffic and detours, I arrived at the studio (although 15 minutes late). Luckily an employee who was also approaching the entrance let me in so I didn't have to ring in and wait for someone to do so. On the left were various Toy Story posters, while in front of me was the elevator. Entering the elevator in order to get to the studio on the 3rd floor, we were greeted by an interactive voice-activated R2D2 Droid in the corner, with a foam cup of change in its extended left hand The employee asked it "Hey R2! Do you remember Darth Vader?", and R2 cowered in fear. If even the elevator is decorated with toys and fun, who knows what awaited me on the 3rd floor!

Interactive voice-activated R2D2 Droid

   On the 3rd floor I was greeted by the receptionist and a classic tabletop arcade game; however, due to being late, I quickly wrote myself a name tag and met with the rest of the tour group, who were currently sitting in one of their meeting rooms. The tour guide for today, Chris, gave a short speech about the history of Schell Games and a few of its more noteworthy current published video games, including PlayForward: Elm City Stories, Toy Story Mania, and others.


    Afterwards, five employee panelists entered the room (from the secret bookcase-door on the right, of course!), who gave a brief background history of themselves and a plethora of information about their video game development experience and general career advice, while going through PowerPoint slides in the center projector.


The most important things I took away from the discussion panel, the studio environment, and the Schell Games company culture for pursuing a career in video game development were:
  • Have a passion for video game development
    • Be enthusiastic about your career
      • In the SG studio, everybody's workspace is decorated not only with professional/personal effects, but also with video game swag and memorabilia showing personality
      • Be yourself
    • VG Dev is fun, but also much work
      • If you are not passionate, the amount of work involved will frustrate you
  • Play video games
    • Games inside and outside your comfort zone
    • Analyze them
      • Observe the game mechanics
      • Observe what makes the game great
      • Observe what makes the game unique 
  • Make video games
    • Start now
      • One of the panelists had difficulty in getting into the video game industry due to lack of video game development in his youth
      • He strongly recommends learning as much as you can now, especially in an internship
    • VG Employers are more concerned with your initiative in your hobby and professional development experience, not necessarily your grades
    • Publish your games if you can, even if they are free
      • Sending a link to download/play a published game to an employer looks more professional and is more interactive than simply showing pictures, text, and videos
    • Showcase even 
    • Employers not only want to know what games you have created, but why 
      • What is your motive?
    • Learn the trade, tools, methods, and lingo of game development
    • Be creative
      • Think outside of the box
      • Hang out with a diverse group of people to get different perspectives and ideas
    Afterwards, we were given a tour of the impressive, large, open-air, semi-casual studio downstairs. Unlike other boring corporate offices, the studio is cubicle-less, filled with natural lighting with tall ceilings, and is a bustle of activity, with most employees decorating their workspace not only with professional/personal effects, but also with video game swag and memorabilia. Chris asked for a volunteer, with fellow student Craig volunteering to test out an employee's Occulus Rift prototype game, which was an escape-the-room type of survival game. The game was running off a Rift devkit and devbox, with the devbox's monitor mirroring what Craig was seeing. Very exciting to actually see (although not literally, in-person like Craig did) an actual Occulus VR set in the wild in action, and I wished I volunteered!






Occulus Rift

  Lastly, we were lead to the game demo room, which showcased some of Schell Game's published video games, including Enemy Mind (Steam/PC), a dev-build of The World of Lexica on iPad, and Race to the Beach. Although none of us played Race to the Beach that day, it was interesting to note that the game controllers were four stuffed turtle dolls with motion sensing capabilties to move underwater. Also shown were some in-progress games, including a candy-crush like match game (iOS), a platformer game about waterbears, and an educational chemistry app (iOS). With the aid of colored balls and sticks (something like Geomag), a picture can be taken of molecules created to check if it is valid molecule and to show its properties. (I think I know how I am going to pass my retake of Chemistry I eventually :)). Most of us ended up playing Enemy Mind using wired XBox 360 controllers. Finally, we headed back up to the meeting room to gather our belongings, gather some Schell Games swag, and leave for the day.



  Honestly, the Schell Games tour was a very fun and engaging experience, and those from ACM who did not attend missed a good time! It has inspired me and given me more knowledge about the industry for video game development. Unfortunately, after asking Chris, he explained to me that their summer internship program, which I applied for in January, has already been filled and that they are lacking internship work at the moment, but I will try again next summer and look for other local opportunities in the meantime. My day ended with taking the elevator downstairs and donating some change to R2D2.

-Tamkis

UAHDX v1.1 and Android ports in progress!

UAHDX v1.1 and Android ports

   A v1.1 update of UAHDX (Ultra Air Hockey DX) is being created for PC/Mac/Linux, as well as a new port to Android KitKat! This updated version will fix some serious bugs, including poor flipper AI and flipper positioning in Pinball mode, fixing of the score digits upon gameover (they were at the wrong angle); the inability to use the pause, respawn paddle, and respawn puck cheats/features if powerups are disabled; the pinballs freezing their velocity upon first spawn, and improper paddle raycasting. It also obviously adds digital buttons for the controls in the Android version. No online multiplayer yet; it will be implemented in v1.2 (which will hopefully be the final major version.)

(All screenshots subject to change)

Init Screen

App icon

  Title Screen

 Air Hockey mode with Android buttons

Buttons from top-to-bottom and left-to-right:
Puck respawn, use powerup, respawn paddles,
rotate camera left, pause, rotate camera right

Left clicks are performed by tapping with one finger,
and right clicks are performed by holding one finger and tapping with another finger.
This controls powerup selection and left/right flipper flipping

Pinball Mode

Battle Mode

ETA is during Spring Break :)

New website domain!

New website domain!

    At the advice from a few colleagues, EagleSoft Ltd has decided to move its old, standard Google Sites EagleSoft Ltd web address (https://sites.google.com/site/eaglesoft92/) to its own, professional, custom domain (www.eaglesoftltd.com)! Currently, both site addresses still work, but it is recommended to now use the new domain and to update your bookmarks! The updated website is still hosted and powered by Google Sites, while the custom domain is handled by a domain registrar. Furthermore, with namecheap. We are trying to configure the old domain to forward to the new domain if possible, as well as trying to move this blog's old address (http://eaglesoftlabs.blogspot.com/) to its own possible subdomain (probably www.blog.eaglesoftltd.com).

  Enjoy the new domain!
  -Tamkis

UAHDX Release!

Finally, its here! The release of Ultra Air Hockey DX for PCs!

    Starting in October 2014, EagleSoft Ltd worked on its first Indie Unity3D video game, Ultra Air Hockey DX, not only for fun and for software engineering experience, but also as a university project for a Fundamentals of Software Engineering class programming project. This project was much more difficult than we first imagined, since we had to self-teach ourselves and to learn quickly a new programming language (C#), a game engine (Unity3D), and fundamentals of software engineering, including creating documentation such as an SRS, a Gantt chart, and a plethora of other documents. Nevertheless, through hard work and persistence, we finally finished programming the game in early January of 2015, and are ready to release it as a purchasable download from the shop section of the website! The game is currently available for Windows 7 (x86/x64), Mac OS X (x86/x64/universal), and Linux 10.04 (x86/x64/universal). A demo of the game for all of the previous OS and bit combinations is also available (the demo only has Air Hockey mode available) on the UAHDX Page and at the shop (for free).


       Everything is finished with the game (all powerups, all 3 modes, and all game assets), except for online multiplayer. We plan on implementing this complex feature, as well as any other bug fixes, post-mortem as a update patch.


Below is an advertisement for the game, showing off all of the gameplay features.


We hope you enjoy the game as much as we had in creating it!

Cordially,
EagleSoft Ltd and UAHDX Dev Team

EagleSoft Store Deployed!

EagleSoft Store Deployed!


        For those whom have visited the EagleSoft Ltd website from Novemeber 2014 to February 2015, some may have noticed a new "Store" tab on the page's navigation bar; however, many were disappointed with the contents of the page:


   However, after finding some free time and after finishing the development of Ultra Air Hockey DX, I finally implemented The EagleSoft Store (See first picture)! The store is powered by PayPal, and payments can be done through PayPal either by using your own personal PayPal account or by using PayPal to safely and securely pay be debit/credit card. For products, the store consists of an image, a description, and an "Add to Cart" button. Items in the cart can be viewed by clicking the "View Cart" button.

   Digital products (such as downloads for games) will be sent via an email, which will either have the files attached directly to the email (if the size is small), or will contain a link to download the item (if the file is large). By keeping this email, customers can have lifetime access to their purchased digital products, and can download any updates to their purchased products as they appear. Although we currently only have one product (Ultra Air Hockey DX), more products shall appear in the future, potentially including physical products (such as repro carts for Sega Genesis homebrew games).

Test transaction to myself for a test download, showing the concept:




We hope you find interest in the store and our products, both present future, useful and entertaining!
 -Tamkis and EagleSoft Ltd

BreakGOLD Editor v1.1 updated released!

BreakGOLD Editor updated to v1.1!

The BreakGOLD Editor, an application which edits various aspects of the BreakGOLD game engine, has been updated to v1.1! What is new in this release is a plethora of features, including the ability to now rip all .raw sub images at once as .bmp, and the ability to rip the entire .raw image file (subimage included) into a .png spritesheet. Png spritesheets can be used in the Android version of the game. Also included is an audio editor, for splitting and convert audio file encodings, and a ROM editor, for directly editing some features of the game. More details on the website.

Video of v1.1 in action


The next version (hopefully v1.2) will have a button to automagically move a BreakGOLD PC total conversion to its Android counterpart!

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


Copyright EagleSoft Ltd. Powered by Blogger.