News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - pbandpickle

Pages: [1]
ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: April 04, 2021, 03:06:03 pm »
Please go ahead and add to your notes! I couldn’t have done any of this without your documentation anyway.

I zeroed out the bytes in group 1 and 2 and played around a bit. There were no issues but I wasn’t thorough in any way.

That is awesome that you figured out the graphics, at least within yy-chr. I’ll take a look at it soon and see if I can get any more information.

I have a lot of other documentation I have gathered over the year. I created a complete, color-coded spread sheet of all room data. I have color coded each section of room data so that it is easy to tell what part it is. Specifically, I have objects, room graphics, exits, normal blocks, special blocks all color coded.

I plan on making an room exit randomizer soon but it will take some serious planning...

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: April 02, 2021, 10:30:52 pm »
Heeeeeey, so this isn't dead. I did fix the color correction several seeks ago but forgot to update this topic. In other news, I finally found the room pointers. I'm not super knowledgeable with assembly or anything so figuring this out took quite a long time. With this info it should be fairly easy to make all sorts of adjustments to rooms.

Room Pointer Data:

Room pointer data starts at 0x18010 in the rom. The pointers are stored in two groups, the first byte for all rooms, in order, followed by the second byte for all rooms, also in order.

First bytes are 0x18010 - 0x1810C
Second bytes are 0x1810D - 0x18209

During a room transition, the room data is very briefly switched into memory. The room pointers are then stored at 0x0016 and 0x0017 in memory and used as an offset to lookup the room data.

So for example:
Room 02:
    1st byte: 0x18012 = 03
    2nd byte: 0x1810F = 84

This means the room data for Room 02 is currently loaded into memory address 0x8403. And sure enough, here is is:

Interestingly enough, this also explains why Room A2 does not exist. The pointer data for A2 just points to Room 00. With this information, you could easily adjust the pointer and add room A2 back in somewhere.

Room 00: 0x18010 = 88, 0x1810F = 83
Room A2: 0x180B2 = 88, 0x181AF = 83

Super neat!

Also, if you make room edits and need to update the pointers in the ROM your room data should start at 0x010010 + room offset. For example, room 2A:

2A offset byte 1 @ 0x1803A: D7
2A offset byte 2 @ 0x18137: 98

Room start should be located in ROM at byte 10010 + 98D7 = 0x0198E7 which is correct. This works for every single room in game and I have validated it accordingly. I already have an idea on how to reintroduce missing room A2 into my randomizer... so many ideas!

Regarding room data, there are three groups of bytes in the middle of room data that I don't believe are ever utilized. While I am not 100% sure yet, this appears to be left over partial room data or just garbage.

Unused Bytes #1: 0x183CB -> 0x183F9 (47 bytes)
Unused Bytes #2: 0x1A321 -> 0x1A3FE (222 bytes)
Unused Bytes #3: 0x1E57F -> 0x1E597 (25 bytes)

While this isn't tons of space, it does give us an additional 294 bytes of room data space for whatever adjustments we would like to make. 99% of rooms are < 300 bytes so this is fairly substation extra space.

One thing that still eludes me in exactly how the graphics are stored in the ROM. Currently, this is beyond my grasp but I hope to figure this out eventually because adding custom graphics would be great.

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: February 15, 2021, 06:10:40 pm »
I'm finally coming back to this after a personal hiatus. I'll have some additional randomization options soon and finally fix the item color correction. The item color correction logic is technically correct but does not use the right colors due to a documentation error on my part. I plan to implement an update by this weekend.

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: August 30, 2020, 08:33:29 pm »
I was hoping to get detonator randomization done today but I ran into some issues. My next update will be out probably next weekend and will feature full detonator randomization and a greatly expanded magic boots randomization.

September 05, 2020, 10:50:22 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
*** New Update is now live and contains the following features: ***

-Full detonator randomization (optional)
-Greatly expanded Magic Boots randomization (10+ more rooms it can appear in)
-"Fix object color palettes" actually works now

There are a few important notes about this latest update:

-Detonators will NEVER be replaced with a "triggered" detonator but they still work
-Enabling Magic Boots randomization will also apply the Random Start room edits. Sorry.

I pretty much break something every time I update it so plz let me know if something is not working or seems strange. Also, some room edits will seem strange (that's on purpose).

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: August 23, 2020, 07:44:35 pm »

Expert Mode! - Start with 0 lives, cannot gain more lives, start with 1 use of each potion. Cannot hold more than 1 usage of each potion
New "Bottomless Hole" in the Caves of the Doom Souls when playing rando (to prevent softlocks)
Teleporter randomization now works instead of just pretending to work! wow!
Other miscellaneous bug fixes and text changes

detonator rando is still forced on. That will be a included in my next update.

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: July 26, 2020, 10:34:21 pm »
Not much to add except detonator randomization has been fixed. All this time I assumed there was something wrong with my randomization code when it was actually a side-effect of the game's programming.

Detonators are still only randomized with detonators but they should work correctly now. The only sideeffect is that you can hit the same detonator multiple times (doesn't do anything extra). It will never show a trigger detonator. Also, detonator randomization is forced on at the moment. I'll fix it during my vacation next week.

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: July 19, 2020, 09:06:04 pm »
Slight update. I fixed up the graphics a bit in rm 0x30. It's still a bit jacked but much better than before. I probably won't be touching it any further as solstice graphics are kind of complicated.

If playing on Random Start, room 0xFC has received a complete redesign to prevent a softlock while also making the room not boring. If you do not use random start, this room stays vanilla.

Here is the current roadmap:
   1. Fix detonator randomization
   2. Fix color correction
   3. Expand magic boots randomization
   4. Any other goofy things I can think of.

I haven't had as much time to work on it as I would like but I'll still be updating periodically.

Also, one randomization quirk i need to fix:
   Both rooms 60 and 5E are valid locations for Cave of the Doomed Souls key. This means if you happen to drop down the wrong shaft, it's a softlock. I may adjust this so that it can not spawn there but I dunno.

Another note, I am very curious what bytes 0x01A371 -> 0x01A3FE are used for. These bytes are strangely sandwiched between data for room 0x45 and 0x46 but is definitely NOT room data. I'll like to look into that some day....

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: July 06, 2020, 05:27:54 pm »
Well, the magic boot randomizer being broken makes complete sense as I am incapable of fixing anything without breaking something :P I’ll review this later today.

I will review my detonator code again and will implement the room change that you have suggested.

-The magic boot randomizer appears to be working as intended. Please note that there are currently only 10 spots where the magic boots will spawn and 3 of them are in A3. So currently, there is a 30% chance the boots will be there. This will not be as prevalent once magic boot randomization is expanded.

-Detonator randomization is now disabled for the time being.

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: July 05, 2020, 06:54:59 pm »
The staff piece having the wrong ID should have been fixed already! Dang it, I probably copied over one of my rando tables with an old one.

I’ll get that fixed up ASAP.

-I have fixed both the Staff Piece and the detonator issue. I did, in fact, overwrite my random tables with an older one, re-breaking the staff piece.

-The detonator issue was a bad copy/paste. Until I have the time to work out full detonator randomization, I hard-coded the detonator randomization instead of including it in my randomization tables. I was accidentally overwriting sprite 2A and with 2E. This should be all good.

-As for the random spike ball with orc colors, this was actually intentional. There is no random start location to spawn in that room without instantly dying. I attempted to modify the corner spikes but I ended up with graphics corruption. I just opted to change the orc into a spike ball. This give you a spot to random start but also leave in a bit of danger.

-The misplaced block and corrupted floor are due to the same error, I modified byte 1A5ED when I meant to modify 1AB5E. Correcting this has fixed both problems.

-The staff room with the sort of jacked up graphics are because there are a considerable number of custom graphics blocks that I couldn't be bother to fix. :P I might go back and fix those some day.

-I noticed a huge oversight in my color correction code. It's causing most items to not color correct... correctly. colorrectly? I will have to put some more work into it. That may be a next weekend sort of thing.

-I have also expanded the random seed capacity from 1000000 (arbitrary) to 16777215 (24-bit). As such, seed value is now displayed in hexadecimal.

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: July 05, 2020, 01:41:33 pm »
Thank you so much for the bug reports! I found that in quite a few cases I accidentally flipped some bytes when transcribing them from my notes (06 -> 60). That’s likely what happened here. I’ll fix that later today.

The bugs listed above have been squashed. I also corrected a couple other bugs I found.

Also, currently starting in room E4 or FC results in an immediate softlock. I may be able to fix that today. If you get this room, I’m sorry!

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: July 04, 2020, 10:45:40 pm »
I have made a huge update!

You can now select a random starting room. ANY room can be the beginning of the game! Please note that if you use the random start, MANY rooms have been edited to prevent soft-lock. I will follow up on the details of the room edits a bit later. I also fixed a few bugs that were generating ugly graphics.

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: June 21, 2020, 09:59:56 am »
Thanks for letting me know. I tested the detonators a long time ago and wrote it off as not working so maybe I had made a mistake. I’ll have to check it out again.

Both FF and FD cause the game to lock up if set as the starting room. There is no room data for FF whatsoever. There does appear to be a a handful of bytes for FD but not a complete set of room data.

Fun Fact: There is a nearly identical byte for byte duplicate of room 00 immediately after 00s room data. It doesn’t appear to be referenced or used in any way.

June 21, 2020, 10:12:27 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
I just published an update to the randomizer. Sadly, Random Start did not make it in today. It's going to take me longer than I thought to get it right. It's going to be my priority this week but I likely won't have much time to work on it.

New Features:

-Shadax palette randomization
Now you can be funky colored Shadax! I'll likely include a way to specify the colors but for now its totally random.

-Magic Boot strength!
The Magic Boots now have a strength ranging from normal to nearly 4 blocks jump (max strength 127, up from standard 95)! Totally breaks the game but it's fun as heck. Jump height can NOT EVER reach 4 blocks unfortunately. The boot strength byte is signed and cannot exceed 127

-Web page looks better!
My friend threw together some CSS quickly for me so the randomizer isn't so plain. I hope you like it!

***Please note I haven't tested this too thoroughly but I do not anticipate any new issues.***

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: June 20, 2020, 08:33:22 pm »
I have completed documenting the changes required to do random starting room. Some rooms need minor edits, some need major edits, and then depending on starting room, other rooms need edits to prevent softlock.

For the time being and for my own sanity, the magic boots will still only be randomized within the main castle area only. This means regardless of your starting room, you will need to make your way back to the main castle to find the magic boots. Eventually I’ll have a more comprehensive magic boot location randomizer but logistically it is much more difficult.

I am still working on implementing start randomizer and hope to have it live some time tomorrow.

If I can’t finish it by tomorrow I’ll at least update it with a couple other minor features and then add random start some time in the coming days.

Some fun facts:
-Room A2 does not exist. As in it literally does not exist in the ROM. Any attempt to start in or exit a room to A2 spawns you in Room 00 instead.
-Exiting to a room that is not yet accessible (exiting a room that is usually opened via detonator without yet triggering the detonator) will skip over the inaccessible room and instead spawn you in the next logic room
-Detonators do not seem to work correctly if placed in any room other than a detonator room. I will try to find a way around this but outlook not so good
-Any object can be flagged as an enemy. You can make a trap potion that kills you when you jump on it!

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: June 16, 2020, 09:10:17 pm »
Okay. I'll put it on my to do list. Also some of my palette correction stuff isn't working. It's not a priority though as the potion color correction does seem to work fine.

Right now I'm trying to finish up starting room randomization. It's sort of a headache because a single byte controls both your starting X and Y position (offset 0x000D60). This means your starting spawn location can only be anywhere in a straight line from the top corner as shown in the following screenshot:

As you can imagine this causes some soft lock or instant death issues. I am still going through each room and documenting where edits need to be made to avoid these because I really don't want to exclude any rooms entirely. It's going steadily though so I should have it done by this weekend I'm thinking...

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: June 15, 2020, 04:20:05 pm »
I don’t think I’ll be randomizing monster types as I feel that would ruin the “flow” of too many rooms. However, I’d be more than happy to implement it if people actually want it

I do have some palette randomization stuff coming very soon. I’ll also have a few other wacky randomizations coming soon, one of which I hope surprises you J^P.

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: June 11, 2020, 08:34:39 pm »
I have added in optional Key and Credit randomization. I have also cleaned up the title screen text to be a little less dumb.

Item Palette correction is just about finished. I added support into the interface but it doesn't quite work yet. I'll probably get it working over the weekend.

I also slightly expanded the possible rooms for the Magic Boots to appear.

June 12, 2020, 08:07:01 pm - (Auto Merged - Double Posts are not allowed before 7 days.)

Object Color palette correction is now available. You can choose to fix non-potion colors, just potion colors or everything. Fixing potion colors is nice is you want to be able to see what potion it is before picking it up.

June 14, 2020, 09:59:56 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Teleporter randomization is now working. If chosen, all teleports will pair up randomly.

I have some other cool things coming soon as well. Random starting room is almost done. I just need to work out some of the obvious softlock issues.

Are there any feature suggestions?

ROM Hacking Discussion / Re: Solstice Randomizer (NES)
« on: June 09, 2020, 12:31:46 am »
I would reckon it’s a bit harder now as you are almost required to search every room to find the staff pieces (assuming you don’t peek at the log file). Additionally, there is a much larger area you have to explore without the magic boots.

Also, since this version does not color palette correction,  it’s impossible to tell which kind of potion is which until until you pick it up.

I have big plans for the future of this hack. i’m very excited to add more features.

ROM Hacking Discussion / Solstice Randomizer (NES)
« on: June 08, 2020, 06:46:11 pm »
Hello All,

I have just published my first rom hack ever! I am very excited to bring you my first public version of the Solstice Randomizer.

The randomizer will mix up all collectible objects (with logic). It also supports custom seed and outputs a "spoiler" log if desired. The output is a simple IPS patch which you will want to apply to an unmodified US Solstice rom.
There are currently a few limitations involving Credits and Detonators but those will be cleared up eventually. I also have made a few minor edits to certain rooms to allow access to a greater area without the Magic Boots.

I would like to throw out a big thanks to Jp32 for his documentation ( as it gave me a huge jump-start to tackle a project like this.
Various randomization options will be implemented over the next couple weeks. I'll keep an updated feature / update log on at my website as they are added.

I hope someone gets some enjoyment of of it!


EDIT:  Now featuring optional CREDIT and KEY randomization
EDIT2: Added optional object color correction. Adjusted title text
EDIT3: Added optional teleporter randomization
EDIT4: Added magic boot strength and starting room randomizer. Color correction is a bit broken currently

Pages: [1]