News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

The "Super Metroid - PC Edition" emulator....

Started by LT_Schmiddy, September 27, 2018, 01:05:02 AM

Previous topic - Next topic

LT_Schmiddy

You'll need to forgive me. I'm new around here, but I've been following Super Metroid ROM Hacking and this site (and ROM hacking in general) for a while now. Just anonymously. Anywho, I had this project I've been working on for a while now that I would like to share, but (again, I've never really interacted with this forum before. I've simply been an observer) I'm not sure if this is the place for it...

I've created a custom version of the Snes9X emulator, that has specifically modified for playing Super Metroid and ROM Hacks based on it. Unlike the vanilla version of the emulator, it makes a handful of improvements and adds some new controls to the game by means of memory manipulation (and the occasional input spoof) during runtime. And since all of this is handled by the emulator's own execution code (no changes, soft or hard, are made to the ROM itself), these improvements and controls can (in theory) be applied to ANY Super Metroid ROM hack (I've tested it against several myself). Of course, each new feature I've added can be turned on or off in a config file, at the user's discretion.

Specifically, these are the controls it adds:

- Quick-Fire Missiles
- Quick-Fire Super Missiles
- Quick-Fire Power-Bombs
- Quick-Fire Grapple Beam
- Quick-Fire X-Ray Scope
- Quick Morph Ball

- Quick-Fire Wave Beam Combo
- Quick-Fire Ice Beam Combo
- Quick-Fire Spazer Beam Combo
- Quick-Fire Plasma Beam Combo:

- Select Beam
- Select Missiles
- Select Super Missiles
- Select Power-Bombs
- Select Grapple Beam
- Select X-Ray Scope

Also, the arrow keys, enter, and backspace work in the game menus, and the menu bar at the top of the window has been repurposed into a pause menu.

Optionally, you can also have Save Stations refill your health like they do in later games in the series (although, not your reserve tanks).

There's a custom icon of Samus's helmet.

Etc. I plan to add some more stuff in later versions: a New Game Plus mode, better compatability with the in-game controls menu (mentioned above), maybe storing the charge-beam's charge for later (a possibility I discovered thanks to a bug I encountered), unique settings for individual ROMs, improving the reserve tank's functionality, some changes to the emulator's UI, etc.

And again, these features should work with just about ANY hack out there.


I'm putting it here for now, but I'm not sure if this is where it goes.
It's a bit bigger than the forum will let me upload, so I'm putting a link to my Google Drive:

EDIT: Project is now available on Github: https://github.com/LTSchmiddy/super-metroid-pc-edition-snex9x-public/tree/master/Binary%20Archives



If I need to go about posting this another way, please lemme know?

Also, totally try out the emulator. I'm fairly positive you'll like it. :)

(Also, I can't figure out how to include images in this post. I've added a few screenshots to the link, but I'd like to have them display here anyway... how do I do that? The add image button is confusing me.)



Dasfonia

Cool, so you're basically making a run-time patch with the emulator.  I like this concept.   :nod:

LT_Schmiddy

Yeah, basically. All of functionality I'm adding is part of the emulator's code (written in c++), so it doesn't interfere with whatever changes are made in the ROM file. That way, it should work with most any hack.

Thanks. I'm glad to hear I'm not the only one who thinks this is a good idea. :)

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

Atm, I'm working on New Game Plus mode. I've gotten Samus to start with all the power-ups from the last playthrough, but I'm still making some difficulty adjustments.
Also, the UI has some issues of I give her a greater max health than you can have in the vanilla game, but I think I can use that to my advantage.


Currently, here's what I'm going for:

-- New Game Plus is automatically activated if you start a game in save slot 2. Save slot 1 is treated as normal mode. (At some point, I'll use slot 3 for a super hardcore mode or something. Or maybe the player will start the game with the Hyper Beam on a toggle button. Who knows.)

-- Samus starts New Game Plus with all the power-ups and ammo tanks from the last playthrough (save slot 1), but not the energy and reserve tanks.

-- Bosses recieve a (significant) boost the damage that they deal and how much health they have. You could go fight them straight away if you're skilled enough, or (since you now have way less max health) you can hunt down the health/reserve tanks (so that you don't die in one hit) and re-collect ammo tanks (since you might need the fire-power) in order make the boss fights more... doable. Oh, and since you have all the non-optional upgrades, you can explore the map and tackle the bosses in any order you want. Seriously, this could open up a whole new world for speedrunners. Of course, you still need to defeat them all to get into Tourian and beat the game.

-- Speaking of recollecting ammo tanks: You can do that. Meaning you can have a much higher ammo capacity then you would in normal mode. For example, if you managed to collect every single missile tank in your first playthrough, giving you a 230 missile storage capacity, you can collect them all again for a maximum of 460 missiles. This applies to super missiles and power bombs as well.*

-- Defeating each miniboss gives Samus a small amount of health regeneration. Something like 1 x [num of minibosses defeated] per second, with a 10 second pause if you take damage.**

-- Enemies just do more damage in general (and might take more too. Not sure about that point yet)... (Hopwfully, there's a global damage multiplier or something).

-- The "Save Stations Heal You" feature that I've added will not work in New Game Plus.



I'm also going to modify the functionality of the Reserve Tanks for any game mode. I honestly don't think they're all that useful/great. I mean, just give me an Energy Tank instead... I'll probably have them regenerate over time (albeit, slower than the New Game Plus health regen I described above).

At some point, I'm may try to add a pause menu that can take the place of the emulator's menu bar. Maybe.

================
* For whatever reason, Super Metroid uses 2 bytes (4 bytes, since it needs another 2 bytes to remember your storage capacity) in the RAM to store how much ammo you have, PER AMMO TYPE, even though you'll never have enough ammo in the base game to need more than 1 byte to store it. This means the game could handle you having up to 65535 missiles, etc. Now, the missile counter in the UI gets confused on what to draw if you have more than 999 missiles (and I believe 99 for super missiles and power bombs) starts drawing random characters/tiles in hundred's place (ten's place for super missiles and power bombs, I think), but it will still work normally otherwise. Besides, it's unlikely that you'll ever encounter this situation, considering that 999 is more than 4x the max missile capacity in vanilla SM.


** I'm doing this for a number of reasons: 1) There isn't much reason to fight any of the minibosses otherwise. You start with all of the power-ups that they guard, and thus have the abilities needed to detour around them. This way, there's some incentive to face them. 2) I want to make up for the fact that you can't re-collect the health tanks for a greater max health. 3) This way, there is a little more upgrading you can do.

UDtheAesir

Oh wow, I love the idea about the New Game Plus. I wanna see how strong they get against your best, you know?

LT_Schmiddy

#4
Alright, version 0.2 is READY!!

I've managed to get the project uploaded on Github, so all of the downloads will be there from now on. If there are any other coders out there who are any good with C++, y'all are welcome to work on your own versions, or contribute to the project. I'd love to work with anyone interested.

Project Homepage is here: https://github.com/LTSchmiddy/super-metroid-pc-edition-snex9x-public

Version 0.2 Download: https://github.com/LTSchmiddy/super-metroid-pc-edition-snex9x-public/releases
New Features:

  • New Game Plus mode.
  • A harder variant of New Game Plus called 'New Game Ultra'
  • Better Reserve Tanks
  • More direct integration of Save States into the game
  • A 'self-destruct' ability to make the Crystal Flash a little more tactical
  • Arrow keys, Enter, and and Backspace can be used to navigate menus
  • Right Shift can be used to switch between the Map and Status screens

And, of course, every feature can be enabled and disabled at the pleasure of the user.

Any/all feedback/questions/criticisms are welcome! Lemme know what ya think!

:)


Hippopottymouth

Would you please add an option to speed up item collection fanfare like Z-Factor or Project Base? Z-Factor's makes a lot sense really only doing full jingle for major pickups. This is one of those things I wish more hacks would do. I can't find a patch to do this myself. (Playing Legacy with PB moves patch as I'm writing this.)

mccad

Quote from: Hippopottymouth on November 06, 2018, 02:22:10 AM
Would you please add an option to speed up item collection fanfare like Z-Factor or Project Base? Z-Factor's makes a lot sense really only doing full jingle for major pickups. This is one of those things I wish more hacks would do. I can't find a patch to do this myself. (Playing Legacy with PB moves patch as I'm writing this.)
The patch is called itemsounds.asm, but I'm not sure if it's on this site anywhere

Immorpher

#8
I edited this as I have played Super Metroid Lost World and Super Metroid Redesign: Axeil Edition with it and it worked good! If anyone else uses a PS4 controller I was able to get it to work with the DS4 program like a charm. There's some blank inputs for diagonals on the input menu for the 9x that I had to press up / right and other combinations, but with those entered movement is great.

nodever2

Quote from: mccad on November 07, 2018, 11:15:34 AM
Quote from: Hippopottymouth on November 06, 2018, 02:22:10 AM
Would you please add an option to speed up item collection fanfare like Z-Factor or Project Base? Z-Factor's makes a lot sense really only doing full jingle for major pickups. This is one of those things I wish more hacks would do. I can't find a patch to do this myself. (Playing Legacy with PB moves patch as I'm writing this.)
The patch is called itemsounds.asm, but I'm not sure if it's on this site anywhere
I'm not sure if it's on this forum or the main site anywhere, but for anyone curious it can be found on Scyzer's website http://sadiztyk.metroidconstruction.com/patches.php
(Direct download link: http://sadiztyk.metroidconstruction.com/tank/patches/plms/itemsounds.zip)
Need help? Just ask.
My Hacks | My Resources

LT_Schmiddy

Man, I didn't think this project would ever get much attention.

I'm so glad someone is enjoying my work. :)

supa

I downloaded the code as a zip from github but couldn't find the app launcher. I then clicked on 'Download Latest Stable Build' and it took me to Better Map Rom which had the app launcher, what did I do wrong?


Fujisawa1

I was looking into how feasible it was to add the GBA Missile Selection to the game, and ran across this post. Does this emulator have an option for that, or could you possibly add it? It would give access to the Hold for Missile control scheme to any hack that runs on this emulator, which would be amazing for those of us that prefer that set up.