05/12/2017 at 07:24 •
I've made some progress with Super Adventure Island.
Here's a short video I posted on twitter:
And a proof of concept screenshot:
05/10/2017 at 05:11 •
I finally got around to fixing a bug in the ZAMN hack that was allowing multiple coins to be registered sometimes when it should have only been a single credit.
I also got around to converting the source code to work with the xkas-plus assembler. It's muuuch better than regular old xkas, and it's also got the best features that were left out of byuu's bass assembler. So, I like it the best at the moment. :)
I'm working on a plan for implementing difficulty settings. This will mainly focus on the number of weapon pickups and the amount of lives gained per credit. I will try to replace all instances of 1-ups on all levels with a different item.
I've got to think of things to use the extra Super Famicade jumpers for. Currently, I've only got plans for the jumpers on the Player One side of things. This means I've got 3 more bits and 7 potential options to be utilized... I have no ideas.
Here's the github link to the changes:
05/04/2017 at 09:15 •
*Sudden burst of motivation*
The last couple of nights I've been working on my hack of Megaman X and doing some planning with regards to different arcade modes. I've included my notes thus far.
Also, I finally got around to posting the source code for my Super Famicade version of bsnes-plus. This allows me to test the extra inputs used by the Super Famicase without having to test on the hardware. (makes things faster)
Megaman X Partial notes:
80be52 This line of code is executed only when the correct stage select button is pressed (or the values below are set)
Megaman X Stage Triggers
7e1e49 - On stage select screen set to 06 to trigger stage start animation (set 1f7a first)
7e1f7a - On stage select screen set to following values for different stages
00 - Prologue Stage
01 - Launch Octopus
02 - Sting Chameleon
03 - Armored Armadillo
04 - Flame Mammoth
05 - Storm Eagle
06 - Spark Mandrill
07 - Boomer Kuwanger
08 - Chill Penguin
09 - Sigma Stage 1
0A - Sigma Stage 2
0B - Sigma Stage 3
0C - Sigma Stage 4
Disable Start Menu
8081b3 change to 29 00 10 (AND #$1000)
Super Famicade Options
4 difficulty levels
Expert: Leg Upgrade Only - No Health Upgrades - No 1-ups EVER
7e1f99 = 08
7e1f9c = 00
Hard: Leg Upgrade Only - 6 Health Upgrades
7e1f99 = 08
7e1f9c = 3d
Medium: Leg, Head, Body Upgrade - 4 Health Upgrades
7e1f99 = 0d
7e1f9c = 0f
Easy: Leg, Head, Body, Buster Upgrade - 8 Health upgrades
7e1f99 = 0f
7e1f9c = ff
Jumpers: (only check during bootup)
000 = Console Mode - Arcade Mode Off
001 = Easy Mode
010 = Medium Mode
011 = Hard Mode
100 = Expert Mode
101 = Easy mode with 1-ups enabled
110 = Medium mode with 1-ups
111 = Hard mode with 1-ups
06/28/2016 at 01:48 •
I've been working on things as I have available time, but I've been busy with other things recently. I did convert a few of my projects from xkas assembly to bass, though I'm not 100% sold on the memory mapping features (or lack of) in bass, or the c-style comments (only supports the double-forward-slash), but I won't go into that here. It's possible that I just don't fully understand bass's way of handling the origin. I much preferred having to convert hirom/lorom addresses in xkas.
Anyway, this log is more about documenting my thoughts concerning which games I will actually end up modifying for the final project. It's entirely possible that I will only get to one or two of the games on my list... and even that may take me a while. I may just focus my efforts on one game at a time since I tend to spread myself too thin in a sort of schizophrenic manner. I get bored when I start understanding things and begin moving into something I don't understand. I often don't realize I'm doing this until many hours into the next puzzle.
So- I recently discovered the availability of several SNES competition ROMs. Donkey Kong Country, star fox, super mario kart, mario bros. lost levels, ken griffey, f-zero, pilot wings, and super mario world. I had seen articles on these competitions, but never realized the carts had been dumped. Now that I've come across them, I'm tempted to spend some time hacking them each into some kind of arcade-style competition. Realistically, I'm going to need to wait until I finish work on my ZAMN arcade conversion... But I soooo want to jump on this tangent.
04/13/2016 at 01:37 •
Here's a quick preview of what the Game Selection screen currently looks like:
I still have some more work to do.
I'm thinking about adding a control explanation to the bottom of the screen. Something to indicate that moving the joystick in any direction will select a game (from any screen you can directly switch to one of four games). The game will begin if the start button or the A button is pressed. Pressing the test button will bring up the menu for testing the system hardware.
I also want to add some animation to this menu, but I'm still not really close to polishing this up-- Especially since I haven't worked through the cartridge design.
More soon. ;)
04/05/2016 at 00:49 •
So... I started poking through the ROM for Megaman X (V1.1) and noticed some copy protection.
Some key points:
- Some of the copy protection routines check for SRAM and will aggressively screw with the game when it is detected.
- The original MMX cartridge PCB used a 74LS00 chip, which caused some data to be mirrored (show up in the memory map in a couple locations). The game checks to make sure the data is mirrored, but never actually uses the data from mirrored locations.
- The game checks to see if the copy protection routines are modified. There are also a couple more checks that attempt to detect if these same detection routines have been modified.
To avoid the protection routines, I simply JMP over each routine. More information and source code here.
04/03/2016 at 03:31 •
I've been working on the test menu for the Super Famicade. I ended up hacking the Super Nintendo Test Program, removed a menu option to test accessories and added the ability to scroll through the menu with up and down buttons instead of just the linear select button scroll in the original.
03/30/2016 at 06:18 •
03/21/2016 at 06:09 •
Finally, I got the coin-up code finished enough to work in-game. I ran some tests on it today and the only issue I have now is that less than 2% of the coins inserted don't trigger the coin-up properly and the coin-up sfx only plays on levels where it's used.
I'll probably make a quick video at some point today to show the coin-up working on real hardware. (i.e. my SuperFamicade setup.) My rig is a bit jank-tastic at the moment since I still need to build the cabinet itself.
The final cabinet will closely match the look of the Nintendo Playchoice cabinet. The main difference is that I will be using white vinyl with custom side-art graphics.
03/14/2016 at 20:21 •
This is still in-progress, but you can download and compile the latest stable version of the ZAMN hack from my Github repo: