Friday, December 30, 2016

v0.30 on GSH Fundraiser

Bowie played through a v0.30 test ROM on Elmagus's GSH fundraiser stream earlier.  He got as far as floor 14 before the boss death event glitched out and didn't let him go any further.

I told him I thought it was about 85% working, so that actually seems pretty accurate :3

Here is the VOD.  The link should go to 8:12:03, but if it doesn't, that's where you'll find it.

Fixing this issue is top priority right now, then maybe one more test stream and a v0.30 release.

12/31 14:57 - This issue has been fixed.  I was off by one on the event IDs I was calling when granting weapon orbs after bosses, so 1/8 of them would see this issue.

Thursday, December 29, 2016

Initial v0.30 Test

Tested bosses last night.  It went pretty well.  I fixed a couple things live on stream.  Bosses were a little OP in easymode so in the meantime I've toned them down a bit.

On a side note, I'm considering adding a limited number of continues.  If you die it will let you use one and go back to the beginning of the floor.  In the case that a particular boss is too much for you to take, this should allow you to go back and prepare better.

Here's the full stream from last night:

and some highlights:  Getting destroyed by Dragon Worm  Mana Beast overdoing the Lucent Beam a bit.

Issues found:
- Watts dialogue corrupted by boss death event (fixed on stream)
- High-number maps do not load from the correct bank (fixed on stream)
- Bosses somewhat OP in easy mode (fixed after stream, I think)
- "Credits" map corrupted, though not game-breaking (fixed after stream -- instead of being solid purple it should now look like it does in vanilla) .. edit: I also added the "The End" screen instead of resetting afterward, and threw in that slower ending music.  So far I only ever get 3/4 moons.  Maybe this is determined at the start of the game?

Other changes:
- Enemy agility has been dropped a bit for hard mode and a lot for easy mode.  This should affect the rate at which bosses cast spells.
- The final floor won't be able to have a boss now - I don't think I had logic for that (warping directly from the boss arena to the mana beast), and it's easier for now to just not allow it.

Monday, December 26, 2016

v0.30 Soon

All three (fairly basic) boss arenas are built.  One of them has no layer2 so that I can use a few additional bosses in it (like Aegorpgripaoropolian).

Added a bit of code to do floor-based scaling for boss weapon damages, so bosses that are late-game in vanilla don't wreck the hell out of you.  Not sure yet if properly balanced.

Hard-mode bosses should be considerably more difficult than casual-mode.

Bosses currently give you one random weapon orb when they die.  Will see whether they should give additional rewards or a wider variety of stuff as time goes on.

Bosses will appear every 3-5 floors.  This includes the last floor, so you could get a boss + mana beast in sequence.

Currently it's all vanilla bosses with the standard boss theme.  I may have a couple fun alternatives later on if I find time to include them.

Test stream should be soon, and if all goes well, release soon after.

Forest w/ Mantis Ant (and Elliot)

Island w/ Minotaur

Ruins w/ Mech Rider

Friday, December 23, 2016


Working on v0.30.  I've had to rework how maps are stored to fit a third map for each floor that is the boss arena.  I had intended to just cram them into the "indoor" map, but as it turns out, the boss graphic decompression overlaps with map data for large maps, and wrecks layer 2. So, I had to make new, small maps for them.

Forest one is done.  Ruins and islands ones are coming.

A surprising amount of bosses seem to "work" on these maps so far.
Mantis Ant, complete with Elliot, who's actually built-in to the boss

Frost Gigas

Blue Spike, faking his death

This should be done fairly soon.  I also have to tweak boss weapon damage.. right now it's unmodified, and these later guys one-shot me.  This will be a little new code that scales based on floor number like I already do for normal enemies.

When they die, bosses currently grant a random weapon orb.  Every 3-5 floors will have a boss that the exit warps you to before taking you to the next floor.

Notes on which bosses seem to work, and which don't, so far.  The ones that are just "Works" will probably be the ones I use for the initial v0.30 release:

- 0x57 Mantis Ant: Works
- 0x58 Wall Face: Requires a map that doesn't have layer 2, since it draws the wall part of its graphic on layer 2.  I'll have at least one of my arenas like this so that he can be used now and then.
- 0x59 Tropicallo: Theoretically works, but his coordinates are hardcoded, and would need to be changed to work for the map he's on.  I'll work him in eventually.
- 0x5a Minotaur: Works
- 0x5b Spikey Tiger: Works but suffers from a similar problem to Tropicallo - his jump spots are hardcoded, and the map would optimally be set up with safe spots he could sit in, like his original map has.
- 0x5c Jabberwocky: Works
- 0x5d Spring Beak: Works, but has similar issues to Spikey Tiger
- 0x5e Frost Gigas: Works
- 0x5f Snap Dragon: Seems to glitch out a bit with Tonpole graphics, but mostly works
- 0x60 Mech Rider: Works, but his death animation makes layer 2 a little screwy.  I'll probably throw him in anyway, who cares
- 0x61 Doom's Wall: Same issues as 0x58
- 0x62 Vampire: Works
- 0x63 Metal Mantis: Works
- 0x64 Mech Rider #2: See 0x60
- 0x65 Kilroy: Works
- 0x66 Gorgon Bull: Works
- 0x67 Brambler: I think this is supposed to be a companion enemy to the Tropicallo bosses, and not a standalone enemy
- 0x68 Boreal Face: Mostly works, but has some hardcoded coordinates
- 0x69 Great Viper: Seems to work, but I think he has a dependency on the size of the map; could be glitchy at times
- 0x6a Lime Slime: Requires a special map due to use of Mode 7 effects for his "growth"
- 0x6b Blue Spike: Same story as 0x5b; works, but not perfectly
- 0x6c Chamber's Eye: Not a standalone boss
- 0x6d Hydra: Works
- 0x6e Aegorpiaproanlian: Requires a map without layer 2
- 0x6f Hexas: Works
- 0x70 Kettle Kin: Works
- 0x71 Tonpole: Seems to work, and to my surprise, turn into Biting Lizard the way he's supposed to
- 0x72 Mech Rider #3: See 0x64
- 0x73 Snow Dragon: Uses layer 2
- 0x74 Fire Gigas: Works
- 0x75 Red Dragon: See 0x73
- 0x76 Axe Beak: See 0x5d
- 0x77 Blue Dragon: See 0x75
- 0x78 Buffy: Works
- 0x79 Dark Lich: Requires a special arena, consumes both layer 1 and 2
- 0x7a Biting Lizard: Seems to work the same as just sticking a Tonpole on the map; it will show up first as Tonpole
- 0x7b Dragon Worm: See 0x69
- 0x7c Dread Slime: See 0x6a
- 0x7d Thunder Gigas: Works
- 0x7e Doom's Eye: Not a standalone boss
- 0x7f Mana Beast: Requires a special arena; also I already use him at the end of the run

For the record, two bosses at the same time (with the exception of Tonpoles) .. doesn't reeeeeally work:

Monday, December 19, 2016


With a few things from dev stream today.

- Mana beast's HP has been doubled again
- Mana power now increases every 4 floors, allowing you to gain one additional spell level (was 8).  Status screen now reflects this instead of just showing 8 all the time.
- Spells level four times as fast as in vanilla
- Fix Phanna gold costs for "really hard" mode

"Hard" may be too easy now?  I was able to go through an 8 floor one without much trouble.  We'll see in time if it still needs to be rebalanced.



I'm releasing this a bit early due to a major glitch I found that I introduced in v0.21.

- Fix issue where it would start you on floor 2 instead of 1, and the intro event wouldn't go off, and everything would break horribly.
- Adjustments to Mana Beast and other bosses (which don't exist yet.. this will be v0.30)
- Teleport offscreen characters to p1 after ~10 seconds of being offscreen,

I will likely be doing a more complete test run of this soon, but this should at least fix the start glitch.


Sunday, December 18, 2016

v0.22 Changes Soon

I need to test these a little more first, but for v0.22:

- Mana beast should be scaled better.
- Player scrolling hack modified to automatically teleport off-screen characters to P1 after a set amount of time off-screen.


A few tweaks and fixes based on a falexxx1 test from earlier today.

- Don't decrease drop rate for hard and very hard difficulties.  25% on every difficulty now.
- Lessen the rate at which enemy weapon and magic levels increase for hard difficulty.  This should make it notably less difficult.
- Fix an issue where in one out of every 30-40 ROMs the Mana Beast door would get overwritten and end up taking you back to an old floor.


Friday, December 16, 2016


New stuff since v0.12:

- One Neko shop per floor.
- Removed Neko's built-in price-gouging as it was causing overflows with items he doesn't normally sell.
- Scaled dropped item values up a bit
- Lucent Beam costs 4 instead of 8
- Max consumables increased from 4 to 7
- Fixed issues with tables blocking stairways in ruins maps (hopefully)
- Fixed issues with direction of arrows on island maps
- Fixed issues with loading of "credits" map and mana beast map
- Fixed issues with enemies spawning near start point on ruins maps and occasionally crashing when loading floor 1
- Added more character colors


Wednesday, December 14, 2016

12/14 Test Stream

Testing new stuff for v0.20.

- All the v0.20 fixes from the last posts.
- Max items increased from 4 -> 7
- Lucent Beam now costs 4 MP instead of 8.

- Still issues with tables covering stairways inside ruins tileset (29CE65D8D86F6635 floor 3)  12/16 00:10 I think this is fixed for v0.20.  I've redesigned how these get placed.  Hopefully they don't block stairways anymore.
- Mana Beast still too weak
- "Credits" map didn't work 12/16 00:10 I think I know why this is - I'm probably overwriting the object data for an existing map here for 24 floors, and the header's getting all screwed up.  I should explicitly define this header, and the one for the mana beast map.  12/16 11:12 - I think this is fixed now for v0.20.
- Ruins tileset still spawning enemies near the start spot sometimes (which for the first floor can crash) 12/16 00:10 Fixed for v0.20.

12/13 Test Stream

Testing new stuff for v0.20:
- Shops
- Lucent beam costing 4 instead of 8
- Adjusted treasure loot so you should get generally better stuff (about equivalent to what's available in shops, for now)
- Stuff from v0.12 that I haven't tried out extensively yet

- Shops were extending too far and overwriting the Watts price data.  This was fixed on stream.  Will be in v0.20.
- Amulet Helm's buy price is 6k, and sell price is 24k.  While this was hilarious, it probably should still be fixed.  12/14 17:25 Fixed.  This was due to Neko shop price doubling.  This hat should have cost 36k to buy, but instead cost 72k, which overflowed down to 6k.  That's been taken out, so nothing should overflow anymore.  Should be in v0.20.
- Island tileset arrows indicate the correct axis, but sometimes point the wrong way.  You can still use them to find the exit (by running along that axis), but this should be fixed for v0.20. 12/14 17:00 I think this is fixed now.  Should be in v0.20.
- I got blocked by a table on floor 17 of 24-floor 18C43DF79C7AF3B7.  This made the ROM uncompletable.  12/14 17:10 Fixed I think - at least for that particular seed it went away.  Should be in v0.20.

Monday, December 12, 2016


With the following changes:

- Restore NPCs are now always the blue-haired girl Phanna.
- Arrows will appear in the water on island maps indicating the general direction to head toward the exit.
- There should be fewer (though still some) floors of the same type in a row.


Sunday, December 11, 2016


With the two fixes from falexxx1's stream earlier.

Please note that due to logic changes, a ROM generated under v0.11 with the same seed will be notably different from one generated under v0.1.



This may still be very glitchy, but here's v0.1 to test.


Edit: Already some problems coming up - fixes will be coming.

Problems so far (thanks to falexxx1 for testing these ROMs on stream earlier):
- 1DA0C80613395002 w/ 8 or 24 floors looks screwed up, and 8 floor crashes immediately. 12/11 22:15 Fixed.  This was an issue with the game trying to render enemies before it was ready.  It should no longer spawn them near your start area.  This should be in v0.11.
- F002FAEA39AB6AC1 w/ 16 floors - mana beast door led to floor 6 instead of to mana beast 12/11 22:51 Fixed.  Door handling for the ruins tileset was not quite right for the double doors that lead to the same spot indoors, and in this case this was wiping out the mana beast door.

New ideas (in no particular order):
- Paid HP/MP restores should cost more per floor, or more every time you use them
- Enemy name randomization
- Weapon color/name/effect randomization
- Fixed NPC image for restores, so you can recognize them 12/12 20:22 Added - this is Phanna for now since there wasn't really another NPC that worked well (Neko will be used later for shops).   This should be in v0.12. 
- Decorations / arrows / etc on island tileset as point of reference/direction for where exit is 12/12 21:50 - Added arrows drawn in stone underwater to guide you on the island maps.  There should be 4-5 per map.  This should be in v0.12.
- Maybe some tweaks to combat
- Endless mode
- Prevent multiple of the same tileset happening in a row 12/12 20:22 Added - if it rolls the same tileset as last time it will re-roll once.  You can still get two in a row, but it should add some variety.  This should be in v0.12.
- Add the song in for learning magic 12/12 20:40 Added.  This should be in v0.12. 12/12 22:08 Edit - this doesn't work quite right.  Original music doesn't come back, and is variable, so it's tricky to get it right.  Won't be in v0.12.  Will look at later.
- Maybe bump up max items

Old ideas going in soon:
- Shops
- Boss floors

Friday, December 9, 2016

12/8 Test Stream

I did another test stream last night.  Thanks to everybody who showed up to give input on things! I played three separate SoM ACs last night. Here are the problems I encountered:

[527EE62E97BFF93D x 16f]
Floor 15 [ruins] just mysteriously didn't have an exit tile on the roof, though the map indicated it should have.  Was unable to progress past this point, so no telling whether the Mana Beast would have worked. 12/10 12:37 Fixed.  This was due to the way I'm handling door data injection for the previous map if the current map's generation process changes where its entry door is.  It wasn't handling multiple doors, which the ruins tileset can have if roofstart == 1.  Should work now.

[68E5434E6D327B09 x 8f]
Mana Beast was broken - tossed me into the wall and such.  Have seen this issue before and thought I fixed it.  Has to do with the way I'm injecting enemy stats.  Should be fixable.  12/10 20:31 I think this is fixed - similar to the one below this, I wasn't handling map piece blocks correctly for the Mana Beast map.

[94E02875DE08C6EC x 8f]
Interior of floor 8's layer 2 was all screwed up.  12/10 19:38  Fixed.  Wasn't setting the start point of the map pieces for the map after the last floor, so the last floor's data was overflowing.
Mana Beast worked fine on this ROM, but was notably weak.  Took me like 3 sword hits to kill him. 12/10 19:22 Bumped up his stats a bit.  Will see how well it works out next time.
Finale map showed up as "Floor 91" lol 12/10 13:05 Fixed.  I bypass the new layer 3 rendering for this map, so you won't see the timer still ticking or the weird floor number anymore.

Other potential changes:
- Remove or speed up intro sword-pull animation  12/10 13:23 Removed this by taking out a call at 0x1EC78.
- Speed up treasure open animation  12/10 18:12 This is going to take more time to get working than it's worth right now.  Will go on the "later" list.
- Consider moving timer tick code somewhere where it updates even while I'm in the menus.  12/10 18:12 This is partially implemented.  It looks a little glitchy but does count up when you're in the ring menu as well now.  Still needs a little work and it doesn't count up in some of the fullscreen menus, but I'm calling it good enough for the initial release.
- Don't allow two element NPCs to be in the same room, the positioning looks a little odd. 12/10 18:64 This should be fixed.
- Forest maps occasionally generate an exception causing a ROM not to be generated (CD30BD22404CCE88 for example). 12/10 19:01 This shouldn't happen anymore.

Other notes:
- I think I like the characters with these colors that came up in 94E02875DE08C6EC better than the originals.

Once the problems above are resolved it should be initial release time.  Matter of days here, hopefully.

Wednesday, December 7, 2016

Some additions & fixes

New test stream soon, and maybe a public release if it feels less grindy now.

A few things have been added in the last week or so:

- Options on the GUI for which tilesets will be included, and some optional hacks.
- An optional hack I'm working on that lets you walk off the screen without P2 and P3, so it doesn't matter if they get stuck.  It needs some work still, but is provided as an option on the GUI.
- An optional fix for the overcharge glitch used in speed runs.
- Optional randomization of player character clothing, hair, and skin colors.
- A length option - 8, 16, or 24 floors.  32, which is the max I can fit for worst-case map compression, is currently broken.
- Some details added to some maps and additional palettes for ruins and island tilesets.

What's still needed:

(Near term)
- Testing and balance fixes.  Particularly for harder difficulty levels--I've been testing under "Casual" so far.
- A release of what I'm calling v0.1 for public test and feedback.

(Long term)
- More tilesets.  Lots more tilesets.
- Boss floors
- A fix for 32 floor ROMs.
- Publish source (C#) since I don't plan to work on this forever, and it could still have a ton of things added to it.

Thursday, December 1, 2016

Testing 11/30

New stream from last night.

New problems:
- Up through floor 32 worked fine, but the doors there seemed to break.  I tried a 1-floor ROM and Mana Beast loaded fine, so this may be a 32-floor-specific issue.
- One door on floor 13 did not work.  No idea what may have caused this since no other doors seemed to be affected.
- Still some balancing issues.  Enemies on floor 20+ or so were oneshotting me.  Toward the end of the stream I make some adjustments that seem to work better on floor 16.  More testing needed.
- Forest maps are still sticking spawn points and exits on top of ledges on occasion.
- I went to generate another ROM and the forest tileset failed to generate caves for one floor.  I noted the seed, can reproduce it, and will look at it sometime soon.

- Finally redesigned the way I do palette randomization so all BG palettes for all maps are generated, and nothing should rely on original palettes anymore.  This avoids the potential issue where generated palettes start overwriting originals.
- The debug log filename now includes the seed, so it will generate a new log for each unique ROM.
- Enemies on later maps being overpowered appeared to be due to their weapon levels scaling up with the floor number.  I've disabled this for casual difficulty and bumped their base stats up a bunch to compensate a bit; this seems to provide more reasonable difficulty so far.  Other difficulties will need to be tested later.

Sunday, November 20, 2016

Testing 11/20

Test stream from today:

New glitches:

- Entering a cave on floor 1 softlocked once with the SD2SNES.  I haven't been able to reproduce this on SNES9X with the same ROM/same cave.  Going to try again at some point with the flash cart.

- The sprite has Lumina listed under his spell levels menu, and the girl has Shade listed.  This one should actually be fixed as of now.

- If I buy an HP/MP restore from the NPC while I have dead characters, they get restored to full HP but not actually revived.  There's probably just some event command I'm missing in here. (11/21 - fixed I think)

New issues:

- Still getting wrecked after floor 10 or so on what should be easy difficulty.  Going to try turning enemy stats down a little and maybe also not bumping mana power up at all.  Unfortunately, keeping mana power at 0 means that spells won't level, so this is a temporary solution - the more complete solution will be reducing the effect that mana power actually has on weapon damage. (11/21 - updated .. halved all 8-bit enemy stats (str, int, etc) on casual difficulty and removed mana power scaling temporarily - will see how this feels next test stream)

Sunday, November 13, 2016

Some Changes & Fixes

Based on yesterday's stream.

- Tables (and bookshelves) shouldn't overlap stairways anymore.

- Leveling up now restores MP as well as HP.

- On the easiest difficulty, two elements and two restore NPCs now appear per floor, versus only one previously (and still, on other difficulties).

I'm also considering randomizing status effects caused by weapons.  I'd have to go into the weapon descriptions and change them too, so you could see which did what.

New test stream at some point soonish.

Things that I'd like to have done before a first release:

- More detail on the inside areas for each of the three tilesets
- Mana Beast testing for longer ROMs
- More palette variations
- A few other minor fixes

Saturday, November 12, 2016

Test Stream

Streamed a fresh ROM (8FBF7481FE3CFBF9) for a bit again today.

New issues:

- Tables in ruins tileset sometimes cover/intersect with stairways
- Next floor teleporter in forest tileset was in the middle of a mountain ledge once, though it was reachable
- Some stairways to nowhere in forest tileset.  Though this looks weird, it doesn't really have any negative impact on the gameplay
- At one point I ended up with two Midge Robes and one of them could not be thrown out.  Not sure this was even something that I caused.

New ideas:

- Make levelups restore MP as well as HP

Exp & Drop Tweaks

The characters didn't seem to grow as fast as I'd've liked them to on the previous test, so I'm going to try doubling exp, with all other stats remaining equal.

Also, the way I handle drops is changing a bit.  Each floor equates to a piece of gear in each category (hat, armor, bracelet) that is "normal" for it to drop.  This grows linearly based on which floor you're on.  Difficulty levels each have different "spreads" around this value which indicate the pool of items that can randomly drop on a given floor for that difficulty.  I'm tightening the lower spread for the easy difficulty so it drops less garbage and more good stuff.  I'm also taking Overalls, Kung Fu Suit, and Midge Robe out of the drop pool entirely since you start with them.

The issue I saw last stream with orange bars coming up at the top of the screen on layer 3 should be fixed.  That was an issue with the placeholder event I use in each map's walk-on event to, if the floor music changes, inject a music change.  For no-change maps, this was triggering and creating that graphical glitch.  I use a different placeholder now that shouldn't do that.

The other issue I saw where Ruins tileset maps that should have started me on the roof were instead starting me on the ground right next to the exit has also been fixed.

Friday, November 11, 2016

New blog

Created blog for the new Secret of Mana project.

No initial release yet, but it's probably almost ready.

Me surviving until floor 15ish in a recent 32-floor test (A702DF223D52874E) here:

Main feature list on left side of blog.

Suggestions for features are welcome.