Showing posts with label SNES. Show all posts
Showing posts with label SNES. Show all posts

Dev log: New Full Unlock

Saturday, December 27, 2025

On my blog in the past I have liked to write what are... sort of journals of my development of different projects. Like one I particularly liked, despite an obnoxious encounter... was my Star Ocean canoe compatibility patch. For that I had to learn and grow my related skills, so in the end it felt quite rewarding to achieve a working patch.

Working on CaVE has stalled into just maintenance. It doesn't scratch certain itches for creating new things. DisplayEx has been kind of the same. Occasionally there has been a new feature to add to it, but that's uncommon.

I have been searching for a new mod idea to work on, for quite awhile. Mainly, I would like a new Level 2 mod to replace DisplayEx+, so that I can merge the functionality of that into the normal DisplayEx. I want something special for those who go above and beyond to support the project, but the Theme functionality... just should be part of the main mod.

I finally got around to working on a mod recently. One inspired by cucholix. He created a mod that has functionality similar to the Full Unlock, but does not need to be updated. At least, not often... or yet. He shared it with me, and... in my opinion it has just been luck that it has not needed to be updated yet. For me to release such a thing... I would want to eliminate luck as much as can.

New Project Announcement and Release!

Thursday, December 25, 2025

Wow! It's been a year since I posted here. I didn't expect that. But... it makes sense. I like to do Christmas releases or announcements if I can. I generally don't start making a project with a goal for Christmas, but it its coming up then I try to focus on that as a deadline.

Enough of that! What is it that I am announcing today? Well... It's kind of a mixed bag. I understand that to some it will not be much, and to others it will be well appreciated. Largely due to the current focus that has allowed me to keep these projects alive, in focusing on those that support the projects the most! Strong community members and Patrons/Donators. THEY are who this update is primarily for. But also limiting this is that its a project with a narrow focus. Just the SNES NSO/Classics app. I worked on a project for that, because that's what I personally care about the most. I'm a huge SNES fan above all else.

Now... What is this project? Put simply... it's a brand new Full Unlock! What? No! Don't leave! Hear me out!

The Usual Christmas Update

Saturday, December 25, 2021

Merry Christmas!

As I often like to post... something on Christmas, as a sort of present... This year is no exception! Now that CaVE is back, and updated well enough with new features and support, there wouldn't be much to add to it. Nor SFROM Tool. Least not to be worth considering a present. But I have been working on a side project that is now ready...

Back in October, while waiting on the N64/Genesis NSO apps to be released, I killed time with this side project. As some may know, SNES is my favorite console... ever! So it tends to be my focus. There wasn't a lot left to do with it and NSO, but I found something. We all know how to use CaVE at this point, but there is an obvious feature that might be strait up expected by some, but isn't included. It's a feature that takes a lot of work! That feature is what I call a "Preset Database". What that means in this context is, when you add a game in CaVE, there are a ton of values you need to set. Typically images and descriptions. CaVE does what it can to add in placeholder values, but... if you are like me, you would want all the values to look as close to how they would if Nintendo released support for that game themselves. A "Preset Database" in relation to this would automatically set those values with more proper ones. Add say Chrono Trigger? In the split second after adding it CaVE would automatically select the box and title screen art, fill out the meta description, publisher, copyright, etc. Such a feature is convenient, but takes a lot of work to implement.

Release: CaVE Database Manager v1.3

Tuesday, November 02, 2021

This is a big release! Obviously there's the N64/Genesis support. But also there have been some significant changes all around.

First lets talk about the N64/Genesis support.

Genesis... works. There really wasn't much too it. There are a couple options you can set in CaVE to adjust some things, but nothing like sfroms, full unlocks, or dtzs.

As for N64... Yea. If you expected it to just work and load tons of games out of the box, you were deluding yourself. That is not the reality. Instead, we have a .dtz format to deal with thats... most comparable to the .sfrom footers from SNES. But MANY more options, and there no tool or database to work with to help set these settings easily or automatically.

There's more to it, but the crucial part of a dtz can be boiled down to the 02_XXXXXX.cfg file inside the archive. In there you have various settings and hacks to be applied. At a minimum to boot, each game needs its Idle thread jump address defined. And some games, mostly 3rd party, have multiple such threads to define.

Release: SFROM Tool v1.3.0.0

Friday, October 15, 2021

It's long overdue... but I guess considering I thought the last version might be the true last version... maybe not. This release of SFROM Tool brings a major change I... thought I already released.

Change Log v1.3.0.0:

Revamped Game Codes/Preset IDs.

    • GameCodes are now shown in their proper interger format, instead of hex.
    • GameCodes can now be chosen from a drop down selection box, with clear labels for what game that GameCode is intended for.
    • A new Legacy Mode option has been added, to display GameCodes in the old "Preset ID" format purely to help the adoption process.

Added new Key and Manual groups to the Advanced window, based off my continued understanding of the format.

    • Key contains 2 unknown values that were previously even unknown if they were values or not.
    • Manual contains Para and Max Speed.

The ROM Map control has been updated to list the available options in a clearer way, and now has a 3rd... but useless ExHiROM option.

Compatibility Mode 7 is now the default. This may cause issues with some older SNES/SFC Online versions.

Added support for Wii SNES VC ROMs.

    • These ROMs are the ones that come with the .rom extension.
    • With these, .pcm, .var, and .sda files are also checked for, and imported/exported.
    • To import these roms, simply select the File>Open ROM menu option.
    • To export in this format select File>Save as...>as Wii ROM/PCM/VAR.

Updated the internal database to include info/settings from discoveries made since the last release.

The New Future of CavE and the Full Unlock

Saturday, October 02, 2021

I said it, and I'm a man of my word. If I had a reason to be invested in the development of these projects... it would make a difference. I would be willing to un-cancel them. Thanks to the generous donation of ItzSka, I am now able to develop these projects for a device... that I own!

So both projects are back to being public again. But there is a difference. I will not be managing them at the old toxic forum anymore. This will be done purely out of my website, and the Discord (#nintendo-vc-cc-nso). I may make a subreddit or other page too. At the least for now, I have remade the setup guide on my website.

There will be some changes to how I pursue the projects too. I will be making it for myself, and just happening to make it public. I will maintain it for myself and supporters. User appreciation will of course be very welcome, but it wont be required even at a bare minimum like before.

That out of the way... I did make a couple minor updates to the app while it was publicly canceled. The idea was to only do database updates for supporters, but... one update I made just because I wanted it. And the other was to make things easier for the private releases, but helps for public releases too.

Continuing my recent SNES work

Thursday, February 04, 2021

Where I last left off was with my discovery of the internal Wii list, and some surface conclusions. I decided to stick with that for a moment and see if I can use it to help fill in anything of the unknown parts of the game code list.

After looking at it from a few angles, I concluded that there might be something to translate from the list. Of the unreleased games in the Wii list there's a certain amount of them that were given Wii Product IDs. That amount seems to fit with the empty space in the 0x1119-0x112D (281-301) area of the list. Whats more, it makes sense for NERD to place these games first on the list over the others since being given a Product ID probably means that support for the game was done. There are not many games on the list that don't have Product IDs but were later supported. Wrecking Crew and Star Ocean are it really. And those seem to have been assigned Game Codes later on the list. I just have to keep stacking logic up like that until a picture emerges!

So I now have a handful of games and slots to fill with them. How do I figure out what goes where? Well, is not easy. In the end, I can only label these as "pure speculation" with little confidence. But I can at least use some info to make educated guesses. The info I have available is order/patterns and the decompiled code.

Moving Forward with my SNES projects

Monday, January 11, 2021

Now that some time has passed, and things have settled after dropping my Switch projects, it's time to think about whats next.

As I look around at my projects and notes, and consider what its the most interesting/fun thing to work on. Well, I'm a bit all over the place for the moment. I immediately dove into past projects I found enjoyment in purely for myself, those being the Game Code list and SFROM Tool. These I enjoyed because the work was useful to others, but there was no demand for them that made me feel pressed. I could work on things at my own pace, and take the time to have fun doing so. I find figuring out the SFROM format details interesting in a similar fashion to solving puzzles like sudokus. Reverse engineering for what I do is a lot of evaluating the data I know to fill in the blanks enough of that which I don't so after the process of elimination, what remains is clear.

There's not a lot left for work on the game code list. But still... I made some new conclusions. In my first days back working on this stuff I deduced that 0x111C belongs to Super Turriacan 2 E-PAL, and 0x1125 belongs to Power Instinct J-NTSC. I can't say I'm 100% certain, thus I cant label them as "verified". But for me the evidence is fairly strong. The short of it is, the de-compiled code suggests these.

As always, with this list seeing further progress, what remains ahead is going to be that much more difficult to solve. While it may look like more, there are about 12 remaining game codes that are valid to the emulators. 4 more that may or may not be valid, and at least 2 or more that are unused but probably reserved. On the other side, there are about 19 known games that should, or may have a spot on the list.

I can make some guesses based on available data. But for the moment I'm unable to work towards verifying anything more. At the most, as mentioned in my christmas post, maybe DQ 1+2 and 3 at some point.

But for now, 2 new ones to this level of confidence is nice to see!

Cheap, Last Minute, Gas Station X-Mas Gift

Friday, December 25, 2020

I was thinking about what time of year it is. Usually I like to have something to post as a Christmas gift on the day. But this year, I had nothing. I haven't been working on a ton this year that would suit such a release. IDK. Maybe I could have delayed the doomed CaVE update if I had thought about it. I might have even been able to work in the proper SP title importable format I would have wanted. But I didn't think about it, and well. we know how that project went anyway...

Speaking of that. I may have just ignored posting a update this year. I often do if I don't have anything worth while. But... I felt bad due to the timing of the cancellation of those projects. It was almost like I was giving a "cancellation" for xmas, even if it was done several days earlier.

So, feeling bad about that, I started thinking "What could I whip up for a xmas day release this year, to help wipe the stink of that away even a little?".

I wasn't coming up with much. Most of my work isn't suited for just "whipping up" last minute. At the most, maybe if I had a update idea for SFROM Tool or something. But all I have for that right now isn't worth a new version.

I tried thinking... IDK, maybe I could pull off a miracle and reverse engineer my way into verifying a new Game Code (Preset ID). Whats big enough for that? Looking over the list, the best candidates are Dragon Quest 1&2, and Dragon Quest 3. But to figure out the IDs for those, and a lot of whats left really, it would take quite a bit of effort and luck. I came up with a plan of attack, but... fell shorter then you might think. Maybe later. But for now, I still need something.

I was thinking, "I'm working on a PCM audio tool. Why not something with that?". The tool itself isn't ready at all. I could maybe compile it so that half of it works, but I'd rather release the full thing. And besides, I'd still need to clean up a lot of it to be release ready.

In comes my big idea! lol

The Future of CaVE and the Full Unlock

Wednesday, December 23, 2020

[If reading this after 10/02/21, ignore this post. CaVE is back. Refer to this post instead.]

Ok. So here I am thinking about the options I have ahead of me to take with CaVE and my Switch related work in general. I just got done grinding away for a few months on a CaVE update, rich with containing features I've seen asked for countless times and cool new features to enable stuff Nintendo hasn't even done yet! I painstakingly rewrote half the code to support a new, smarter database setup that would prove better in the long run. This was big update that I was expecting to be well received!

And... *crickets*...

Yea. Just silence for the most part. Naturally, as this silence continued I begin to wonder "Why the hell am I even doing this stuff?". I don't own a Switch. The only thing I personally get out of these pursuits is what I learn about the sfrom format and Game Code (Preset ID) stuff. Developing the "Full Unlock"? That does nothing for me. CaVE? Nope. Though, it could be argued that in the long run CaVE might work into my personal goals/interests, just not right now. But really, the only reason I work on those is for other people. The "community". All I get out of it is their appreciation for my otherwise selfless work. Its simple, and requires minimal effort, but it feels nice, and its... enough.

So... what if I don't even get that? Then what's the point?

The answer is, there isn't one.

So how did I go wrong and not realize this stuff until now? Well, my conclusion is, I came into this from previously being in the SNES Classic community. That was actually a community. We had people who cared about things like compatibility, quality, custom skins, compiling box/screen art, etc. There was a lot of mutual give and take.

Re: SNES Classic: What's left? What's next?

Saturday, November 28, 2020

Some time last year I wrote a post documenting the things I had still not figured out with the SNESClassic, .sfrom format and Preset ID list. Ever since then, a few things have changed. So I figure why not make an update?

First off, in that last post, I concluded that I had "completed" my work. Whats changed with that?

Well, SNES Online. When I wrote that, SNES Online was not out yet, if it was even on my radar at all. It being released caused me to transfer my knowledge and efforts from SNESC over to that. As a result, I have dug more into it than I had with SNESC. Particularly, I now sift through and document de-compiled code. I do that now with the Switch mostly, but also the SNES and WiiU binaries a little as well. Naturally, having access to such information is going to yield more results.

First up.

SNES Online: Findings

Saturday, November 30, 2019

As you should be easily aware of, I've shifted my research over from SNES Classic to SNES Switch Online. I'm still interested in SNES Classic, there's just more to figure out and work on right now with the Switch.

After I released CaVE I started getting back to work on the Switch .sfrom footer format. I got the basics documented and supported in SFROM Tool. But there's several unused parameters that have not been figured out.

Looking in the code, you can generate a full list of the params by value. And you can figure out which ones use a single byte value, and which use multi bytes. For some params, I had the convenience of there being support for the familiar SNESC sfrom format headers, and I could tell when a value is shared between the 2 and figure out the purpose for the one in the NSO .sfrom format. This is how I figured out how to use param 44, and get SFA2 and Star Ocean supported.

After that though, I had other things to focus on, so progress stopped. Now though I've been back to work! And I've figured out a few more params!

First up, we have...

Release: SFROM Tool v1.2.0.0

Saturday, November 30, 2019

This release is long overdue!

Originally, I avoided it in favor of unofficial builds as I wanted the next version to be completely cross platform. But, as I have gotten no feedback on the Mac/Linux builds... I just haven't cared to try keeping them up-to-date with the Windows version. Avalonia, the WPF alternative UI library I use for those, is also a limited annoying pain in the ass to work with too. So I don't much care for working on those atm...

Anyway. The major changes in this build include. Drag and Drop support. Zipped ROM support. Switch SFROM support. And 3DS data.bin support.

The Switch .sfrom support is the biggest thing. As soon as the SNES Switch Online app came out I did my best to figure it out asap. I released a un-offical build as soon as I could, but as I had not figured out most of the params, I didn't want to release the real build yet. But now things are different! And while I may not have a perfect understanding of every parameter... I think I have a suitable enough grasp for a release.

I'll be posting a write up of my journey to figure out and document the new format soon.

Additionally, the 3DS support is important. It was always something I "could" do. And in the case of importing, I DID do it for my debugging/development code. But I never though there was a need for it until a couple months ago. I was asked about it, and told of the need. I was already working on support for the new .sfrom format... so it was nothing much to additionally work on support for the 3DS too.

Here's the changelog...

Release: CaVE Database Manager v1.0

Sunday, November 03, 2019



Today I've released a new tool. In my efforts to translate my SNES Classic work over to supporting the Switch's SNES Online, I saw a empty space that could use filling in that of a tool to help users properly manage their custom databases. Not only for SNES, but nothing really existed like it for NES Online either despite that being out for awhile.

I wanted people to be able to mod their SNES Online installation as easily as possible. I wanted it to be as newbie friendly, and approachable by as many people as possible. Editing text files where one minor typo could render things completely unusable, was not that in the slightest!

SNES Classic & Switch: Update

Monday, September 30, 2019

I was waiting for the Switch's SNES Online app to come out for a while. I new it was going to bring some new answers/verifications based on lists found in the files. Mainly I was waiting to get Stunt Race FX/Wild Trax verified, as I already deduced their ID's and posted them as guesses a while ago. I was right!

We got some new ID's too. Sadly, those ID are unlikely to work any different than 0x0000 on the SNESC. But its still worth documenting.

It took me a bit to get around to trying to solve the Switches new version of the .sfrom format, but it's coming along. Code was found that alluded to SNESC format .sfroms being supported, which would be good because all my current work would translate to the switch. But attempts to use them failed.

Focusing on the switch .sfroms for the time being, we ran into a roadblock of the fact that it just seemed like only the PresetIDs for the games officially released on the switch worked. That would render my PresetID list work completely useless for the switch.


Well, after a couple weeks of trying various things, I finally got my hands dirty and poked around the asm myself. After a few tries... I finally got a hack working to enable all other Preset ID's! And incidently, that same hack also happened to get SNESC .sfrom working!

Now for SNESC type .sfrom's made with my tool, there should only be 2 stipulations. Don't use PCM audio, and make sure the first byte of the Product ID is a capital W in the Advanced window. There's no evidence to suggest that PCM audio is supported anymore. It's been completely dropped from the official ROMs. And there appears to be a new check in the code to check that character of the Product ID. That was not a thing on the SNESC.

Whats more, SFA2 and even my custom Star Ocean patch have already proven to run on the switch app now. Pics courtesy of user RadMcFist of the GBATemp forums.












As for the hack. I've posted the code on a thread there. I'll likely have to be updating it from time to time as the app is updated itself. And I may try to improve upon it, so there no point in posting it here. Maybe I'll figure out a better home page to post it later. Like on my unofficial WIP release page.

I'll likely ad a disclaimer to the sfrom Tool page too for switch users.

SNES Classic: Some New Stuff & Changes

Saturday, May 25, 2019

I've been trying to nitpick some things lately. Finding ways to improve the SFROM Tool page mostly. I updated the page to include a basic usage guide, because even though the tool is so simple to use, that doesn't mean that new users would naturally realize as much. So a simple "How To" can kind of teach them that.

SNES Classic: What's left? What's next?

Monday, May 13, 2019

Now that I've basically completed the Preset ID list, and as a result my .sfrom header database efforts... there's really not much left. I didn't even feel a need to update SFROM Tool for the better part of a year because that too was complete enough. There's minor things I can pick away at here and there, but nothing important and meaningful.

Lets first talk about "What's left?". Mysteries I haven't solved. Work I haven't done, etc.

SNES Classic: Big Update!

Saturday, April 13, 2019

Out of nowhere here comes a big update for my SNES Classic efforts!

I never thought I'd get here, but the Preset ID list... is basically complete! I've updated the list with 69 new verified Preset ID's. This will largely not effect most people, as my previous efforts to make educated guesses have proven to have around a 99% accuracy rate. But its nice to now know they are no longer guesses at all.

In addition to Preset IDs, this update will see a handful of new VC patches. PCM patches as well. There are also some header data amendments. The full change log will be posted below.

Naturally, SFROM Tool will see an update too.

With this update, its hard to see this being anything other then a "Final" candidate. There is very little that can be done from here with Preset IDs, VC patches and header data. All my effort has been on cataloging and predicting the official stuff relating to that. If all the official stuff is now verified, there's nothing left to catalog or predict.

The only things remaining are a select few things. E-PAL, and to some extent D-PAL/F-PAL games on the list have Preset IDs legitimately meant for that version of the game, but went unused. So they can never be truly verified. Korean versions, I don't know if they will ever be dumped and proven not to be the same as above. 2 games, Super Mario All-Stars and Stunt Race FX I strongly feel have ID's, and for one of them I have patches for. But while they can not be verified at this point, they possibly can be in the future with rumored Switch releases. Then there's the list of rumored games ripped from a 3DS ROM. Those likely have Preset IDs, but cant be verified because they were never released. Again, maybe in the future on Switch.


69 new verified Preset IDs (181 total now)
1 wrong guessed Preset ID among those 69
2 additional guessed Preset IDs moved as a result
2 fixed Preset ID set wrongly by typo
6 real PAL releases verified among the 69 (E-PAL, D-PAL, F-PAL.)
13 new VC patches
I didn't bother counting the total header info amendments, just a couple specifics
3 games with a new MaxInput value of 4 (up from the normal 2)
15 adjustments to h2_unknown3  among games (from 1 to 0)
8 or so header Product IDs moved from being 3DS based to WiiU based
2 fixed typoed Product IDs
1 new game added that I concluded didn't even exist
1 missed game I verified late last year but forgot to record.

You can get the patches in the "all-in-one" package. I silently posted the package before, but its now been updated. For now the individual patches are out of date/missing some. I may be removing those.

Preset ID List
SFROM Tool
Patches

Release: SFROM Tool v1.1.2.0

Tuesday, March 05, 2019

Contrary to recent conclusions, I have NOT abandoned SFROM Tool. The fact is that it is simply doing its job well enough as is. There's little left to do with it, so there's little point working on it. I've been contacted several times on the basis of people making this assumption in a misguided effort to get me to make it open source. Not because anyone would want to maintain or update SFROM Tool, but instead just to take what they want from my code and put it in other projects...

I'll set the record strait right now. If I truly felt that there was more to be done with the tool, but didn't feel I wanted to do it myself. Than yea. I might consider releasing it as open source. But that's it. In general I don't care for and have zero interest in open source projects. I enjoy the freedom of not having to maintain presentable code, I enjoy having a project to work on myself, and the idea of having the source open for other people to work on reduces what work I can do. I got a bad taste early on for people effectively stealing my projects, renaming their edit and trying to remove credit from me.

On this project in particular I've felt that last one is an issue, as I've given a LOT to the SNESClassic modding community, more so than probably anyone else. Yet people have tried to erase me from history and downplay my work.

Anyway, if there's something more to do with SFROM Tool, I'll do it. It isn't abandoned. Hence this update.

I was made aware only now that my .srm <--> .sram conversion feature didn't work with all games. So I updated it. It should now be able to make Mario RPG, Yoshis Island, Starfox 2 and Kirby Superstar .srams.You just have to choose the PresetID of the sfrom that you plan to use the .sram with. (Thanks goes to u/tunapizza for discovering how to get these working.)

I corrected a minor mistake with the compression code used for the patches.

I updated the SuperFX byte in the Advanced panel to the Special Chip byte, based on Bosco's findings.

And I fixed detection of a couple games.

As usual, you can find the link over on the SFROM Tool page, or via the self update checker.

News: The Bad Side of Doing Projects on the Internet

Thursday, September 13, 2018

Hey! It's been a few months!

I've currently moved on to working on more official projects to expand my profession portfollio rather than hobby projects, so there hasn't been much to post about here. I've stepped back from the SNESClassic hacking and development community almost entirely. I don't keep up with the day to day stuff anymore. But a few days ago I was brought back. At first for a good reason, but it quickly turn bad.