News:

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

Main Menu

General Hack Ideas

Started by DSO, May 20, 2009, 08:41:04 PM

Previous topic - Next topic

Kazuto

Quote from: personitis on June 14, 2016, 06:38:53 PMWhy run code for every door when you could use the magic of room states? This would even allow the creator to change the layout of rooms ever so slightly (or drastically) to compensate for the difficulty. Granted, if you have a room state checking for say, Charge Beam, you'll now need two (or more) checking for each difficulty in addition to Charge Beam itself. Reasoning here is that different states can hold different arrangements/placements of enemies, PLMs, level data, etc.

All this said, it still wouldn't be a quick task for most, but I think this may be one of the best ways of going about multiple difficulties.
There's certainly multiple ways for ASM hackers to do it.  I was just trying to think of it more in the context of making it easier for less advanced hackers.  Hence the idea of door pointers, which are easy to assign, as opposed to room states, which require modifying and possibly relocating the room header.

Granted, I know the door pointers require actual assembly, but the code for removing certain enemies from the room would be pretty copy-and-paste (load an enemy value into A and then run a subroutine to remove that indexed enemy).  They'd only need the rundown from someone with ASM knowledge, once, and then they'd be good to create door outs for any rooms they wanted.

Reassigning one of the game options is also viable for choosing difficulty, but if I were to add the feature, I'd do it in the style of choosing when you start a new game, and then you're stuck with it.  =P

Kazuto

Quote from: interdpth on June 14, 2016, 09:21:43 AM
Pretty much have SA-X recreated, same assets. Still lots of decompiling, but the AI runs and jumps until it sees Samus, then it just runs in place. I didn't implement switching to shooting which is why it runs in place. But hey, progress is sweet. It seems the SA-X can pull whatever type of ammo it needs by just refering to a tile in the OAM memory. Hoping I can make it sling power bombs soon hah. Not sure how Palettes work for all that but we'll see.
Silly question is silly, but this is for GBA, correct?  Are you exposing her to Zero Mission's Zebes?  =D

interdpth

Quote from: Kazuto on June 14, 2016, 08:06:38 PM
Quote from: interdpth on June 14, 2016, 09:21:43 AM
Pretty much have SA-X recreated, same assets. Still lots of decompiling, but the AI runs and jumps until it sees Samus, then it just runs in place. I didn't implement switching to shooting which is why it runs in place. But hey, progress is sweet. It seems the SA-X can pull whatever type of ammo it needs by just refering to a tile in the OAM memory. Hoping I can make it sling power bombs soon hah. Not sure how Palettes work for all that but we'll see.
Silly question is silly, but this is for GBA, correct?  Are you exposing her to Zero Mission's Zebes?  =D

Fusion is the best game

Vismund Cygnus

I had toyed with the idea of having different "difficulty settings" in a very small hack, but it ended up being a lot more work than I could be bothered with for a silly gimmick.

Basically I'd thought to make each of the different save slots load you into an identical room, and have three separate versions of the hack all contained in the one; each a clone of the other two, however depending on the difficulty selected, enemies were stronger, less pickups were available, etc. However I ended up deciding it was a pretty silly gimmick. Maybe someone else would like to steal the idea one day.

zaphod77

Feature that FDS has that NES doesn't.

1) FDS Audio (can this be replicated with anything else?) Affecteed are a) entry jingle b) item get jingle, c) title tune d) ending tune e) many sound effects.
2) save system (other hacks for NES metroid do this one)
3) proper enemy behavior (many things are randomized that are just set once for a while in NES metroid (polyp direction per shot,hop height for hoppers in hideouts (up to three for some of them!), ridley fireball bounce length, kraid spine speed, number of fireballs shot by dragons.

Features that NES has that FDS does not.
1) suitless samus mode.
2) extended escape theme (much better).
3) no loading.

Ideally, the perfect rom would have no loading (nes), save system, proper enemy behavior from FDS, FDS audio, NES escape tune, and suitless samus mode.

Realistically, nes one with enemy behavior fixed and battery backed save is all I"m hoping for.

snarfblam

Of all those things, FDS audio is, by far, the biggest ask. The NES does not have sound-expansion capability like a Famicom does. That's why you have things like extra channels on FDS and full-on synth with VRC7 in Japan and nothing of the sort in the US. You could have an audio output on the cart and require the player to mix the audio himself (there is a PowerPak mod to this effect), but it's really, really hard to justify the effort of trying to graft the FDS engine onto the NES version. Aside from all that, I actually prefer the way the NES version of Metroid sounds, and I know I'm not the only one.

The properly random enemy behavior is probably a lot easier and is one of those things I've been meaning to look into for forever. Maybe some day. I'm pretty convinced that this is a bug and not an omitted feature since the feature, code-wise, is trivial and was already done.

zaphod77

I'm well aware of the difficulty of expansion audio in general on the NES. i was wondering if there was a cart expansion audio chip that could replicate the FDS sounds.

I definitely prefer FDS title and end tunes, though.  also anyone who's played super metroid clearly recognizes the FDS was used as the base sound wise.


snarfblam

Quote from: zaphod77 on June 23, 2016, 02:11:03 AM
i was wondering if there was a cart expansion audio chip that could replicate the FDS sounds.

PowerPak has FDS support with audio expansion via the aforementioned mod. The same concept should also be applicable to any famicom cart which can be used on the NES with the appropriate adapter hardware.

zaphod77

No, i want expansion audio that sounds like FDS with 0 loading time. ;)

I don't think that's possible, because of how the ram based wavetable works, it's unlikely to be able to replicate all the sounds with any other audio chip.

as i understnd it the ENIO board and a powerpak is all i need for fds audio for actual FDS games, right?

but i want fds audio in a cart game instead of a disk game.

snarfblam

Quote from: zaphod77 on June 23, 2016, 06:39:36 PM
I don't think that's possible, because of how the ram based wavetable works, it's unlikely to be able to replicate all the sounds with any other audio chip.

If it's possible on FDS, it's possible on NES. It could be done with a custom mapper on the PowerPak that combines the features of the FDS mapper with an MMC mapper, or with your own custom FPGA mapper. But at this point the discussion is purely academic, because obviously nobody is actually going to go to all this effort.

zaphod77

I wanted to try using the pirate chinese rom dump with a special custom version of the mapper they used that has the expansion audio to see if they actually removed the code or just lef out the hardware..

Yes, the chinese pirate metroid nes rom does have the proper AI in it. but it doesn't have saving or expansion audio. the title screen is also simply a flat picture now.

TobiMikami

Hypermode

The Phazon Suit sprites are finally complete (yay) for the Make Metroid Great Again Project. While I'm implementing the new suit, it'll be quite easy to also work on implementing the Hypermode function.
Metroid Prime: Badass, but underused and underutilized.
Metroid Prime 3: Better integrated, but the forced use of your energy to operate was less than satisfying.
So I decided to meet in the middle between the two games. The concept:
Prior to the acquisition of the Phazon Suit, contact with Phazon will cause immediate and severe damage to Samus' life support system. After the suit has been acquired, Samus' life support system will be able to process and assimilate Phazon, contact with Phazon will initiate Hypermode, allowing Samus to fire unlimited Phazon blasts. This power will be immediately resigned once contact with Phazon is lost. The Phazon beam will be used not only as a weapon of mass destruction, but as a tool to destroy certain blocks/substances, and (possibly) kill specific enemies encountered late-game. Since Phazon will be present only in later and more difficult areas of the game, the beam will be restricted to where its use will be a tool, versus a god mode. In addition, the suit will not be acquired until late game, as in Metroid Prime, so the use of this powerful technology will be openly available upon acquisition, but not presented too early as to make the game easy.
Specific points of thought:
Other beams - Like Prime, there is no beam stacking in this game. The debate is whether or not to allow Phazon to use effects of *Ice beam specifically* or to disable all other beams while in Hypermode.
Beam Combos - Since the beam combos from Prime are being implemented and working, should Hypermode have a beam combo like the Wavebuster or Ice Spreader?
Combo Item - If such a combo were to be included, would it be better appreciated as a given with the suit as with Hypermode, or should it be acquired as a separate item like the Wavebuster or Ice Spreader?
Reception - What are the thoughts of other players, specifically those who played the Prime series.

interdpth

Need some help, so in my hack, if a mini-metroid is frozen. It will fall. I'd like to keep most of the enemies freezing in their place. But this opens up for some cool puzzles. If a mini-metroid falls when frozen, what else should?

Crashtour99

Anything that flies/floats.  If it is on the ground or sticks to walls/ceilings then it should stay in place on the surface.

interdpth

Quote from: Crashtour99 on July 29, 2016, 05:07:57 PM
Anything that flies/floats.  If it is on the ground or sticks to walls/ceilings then it should stay in place on the surface.

I like it, I like it alot.

Dark-SA-X

Quote from: interdpth on July 29, 2016, 04:50:52 PM
If a mini-metroid is frozen. It will fall. I'd like to keep most of the enemies freezing in their place.
If a mini-metroid falls when frozen, what else should happen?

If that indeed is true, treat the baby metroids just like the one in Metroid other M.
You know when you are looking for android scientist and you happen to stumble across the metroid queen and her babys ?
Have samus freeze them and hit them with 2 power bombs, makes a vulnerability with a particular boss when they are destroyed for a moment.


interdpth

Finally figured out how object death works. At first because I had so many issues, I had the AI manually do
if(curenemy->curhealth==0)
{
  pose=0;
  orientation=0;
sometotherthingicantremember
}

However, you just do a if(orientation==0)  return;

It'll have the same effect. Now for more progress. I'm doing my hack in ASM and C. Not sure how to release the SDK when I make my announcement thread. Maybe a small hi-jack code and ai template?


biospark

By the way, I don't think orientation is a good name for that ram value. I just call it "sprite status" since it covers orientation, direction, on/off screen, and probably a couple other things that are unique to each sprite.

interdpth

Yeah, I'll be updating it in my code to status.

Design question I need help with, Metroids will attack and enemy and suck energy when touching. If the Metroids currently have a queen, when they come back to fill up the queens health, should they need to touch the queen or just float around as metroids do using some metroid energy dispersion bullshit? I kind of like the bullshit way. But not sure what would be better to players.

Quietus

I agree. I also think it might look odd if they just suddenly stop flying round without some obvious reason such as differing sprites or light effects to show what they are doing.

interdpth

yeah, I guess i'll figure out some good pal changes for when they're hunting and gathering energy, then dispelling it to a queen.

AuroraxPhilic

I don't know if this idea has been posted, but I'll put it here anyway.

It would be really cool if in Nestroid, you could animate the player (Samus). Possibly to add glowy effects, or just an idle animation like in super.

Another thing that would be really cool would be some sort of way to cast shadows. Like, when standing under a block, it changes the players pallet.

(Also, first post n' such. Lingering around here for a year now. Finally posting is weird.)

Zero Dozer

Quote from: TobiMikami on June 28, 2016, 11:26:32 PM
Hypermode

The Phazon Suit sprites are finally complete (yay) for the Make Metroid Great Again Project. While I'm implementing the new suit, it'll be quite easy to also work on implementing the Hypermode function.
Metroid Prime: Badass, but underused and underutilized.
Metroid Prime 3: Better integrated, but the forced use of your energy to operate was less than satisfying.
So I decided to meet in the middle between the two games. The concept:
Prior to the acquisition of the Phazon Suit, contact with Phazon will cause immediate and severe damage to Samus' life support system. After the suit has been acquired, Samus' life support system will be able to process and assimilate Phazon, contact with Phazon will initiate Hypermode, allowing Samus to fire unlimited Phazon blasts. This power will be immediately resigned once contact with Phazon is lost. The Phazon beam will be used not only as a weapon of mass destruction, but as a tool to destroy certain blocks/substances, and (possibly) kill specific enemies encountered late-game. Since Phazon will be present only in later and more difficult areas of the game, the beam will be restricted to where its use will be a tool, versus a god mode. In addition, the suit will not be acquired until late game, as in Metroid Prime, so the use of this powerful technology will be openly available upon acquisition, but not presented too early as to make the game easy.
Specific points of thought:
Other beams - Like Prime, there is no beam stacking in this game. The debate is whether or not to allow Phazon to use effects of *Ice beam specifically* or to disable all other beams while in Hypermode.
Beam Combos - Since the beam combos from Prime are being implemented and working, should Hypermode have a beam combo like the Wavebuster or Ice Spreader?
Combo Item - If such a combo were to be included, would it be better appreciated as a given with the suit as with Hypermode, or should it be acquired as a separate item like the Wavebuster or Ice Spreader?
Reception - What are the thoughts of other players, specifically those who played the Prime series.

Are you trying to implement Prime functions into Super Metroid? Would be a cool thing.

personitis

While conversing with a fellow Super Metroid enthusiast, an idea dawned on me that would be fucking bonkers, if achievable, toward increasing the size of SM hacks (though with size comes a slew of different issues, but that's another topic it's own).

We're pretty familiar with the practice of building multiple rooms into the same room header. Something like room ID 7xxxx has "room A" built on the top of it while the bottom half contains "room B." Well, what about shaking it up and having door asm alter the loaded pointers and modify the location of the room on the map/area? Currently, how I'm thinking is setting up a 5x5 room (for example) and the asm could shape any room that would fit within 5x5 screens by loading appropriate pointers.

I'm sure this concept could be pushed way farther, but here's a start I suppose. It'd likely be much more complicated to setup and build in SMILE, but the effort put in would probably be worth the result put out if someone was so inclined.

squishy_ichigo

#774
Meanwhile, several years ago, I had the idea for a generated setup, where only a few screens around samus are ever loaded at one time, and everything is loaded on the fly a few screens offscreen, with no need for doors.  There is PLENTY of ram for this, there is enough dedicated space for FIFTY SCREENS normally, it would just need to be rewritten to how it all loads.

The only real caveats being enemies moving offscreen and tilesets really. But even those could be done with workarounds.