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 - bogaabogaa

Pages: [1] 2 3 4 5 6 ... 12
ROM Hacking Discussion / Re: Super Castlevania 4 Maker
« on: April 09, 2021, 12:59:57 am »
It's too bad there's no official editor for this game available for download here.

Official editor source code.

Official editor binary.

Sorry for the late respond.
I posted the binary in the first post here. There is a newer version of the editor with a view more things added by Curien. May be he will post on git when he makes more progress. I paste current binary build here.

I posted the source code on Redguy official RHDN blog post linked also in the first post here. The source is how Redguy did leave the project.

Also your PM is full @pianohombre so I post the letter here:
I did not log into RHDN for a while and missed your post. Just let you know that you can talk about MMXed on that forum thread too. I posted links to the source code of SC4ed. The editor does also have basic support for Contra 3 and Gradius 3 but I think the MMX stuff got removed since I can't open that ROM with SC4ed  :-\

The MMXed does use the same code base but there been a lot of quality changes. Like picking blocks in the scene editor instead of rotating them with arrow keys. Just basic event support would be great. Sure SC4ed does read the sprite from the ROM but you can't edit them within the editor and not sure if this should be a goal.

I hope you will find useful things in the source and GL with your projects.

Personal Projects / Re: Zelda 1 Redux / The Legend of Zelda Redux
« on: March 06, 2021, 05:50:09 pm »
Do you guy delete the save file when updating and changing mappers? In order to have the correct code in the SRAM you need to delete the whole thing before playing a other version. This are different games after converting and if you name them the same and use the same save files it is normal to get glitches.

In FCEUX you will find it in the config dropdown menu along directory. If you use mesen you could also just open the memory tool and overwrite the pages with 00 and then reset.

I could not reproduce any of the glitches mentioned here. I did look at the corrupted save file and the data for Map flags seems to be corrupted. Never seen this outside of the file shared here.

I did see that the last dungeon does make use of the full lower RAM page. I am sorry for not testing properly and thanks for sharing the issue.
You will need to wait for a update of the patch.

ROM Hacking Discussion / Re: Super Castlevania 4 Maker
« on: February 27, 2021, 08:47:04 am »
I get questions in PMs that just fit this forum post. Sometimes I just link to resources but sometimes it is unique like this.

Hello! I wanted to reach out and ask you a question about Castlevania IV since I know you've done several hacks and probably have a pretty strong grasp on many technical aspects of the game.

I started toying with the idea of doing a very small CV4 hack this morning as I was playing the game. I always lament the fact that you generally always get your fist whip upgrade after hitting the very first candle in each stage. Essentially the leather whip gets zero play time. And even the upgrade to the full length morningstar happens a little early for my liking. I read somewhere in the past that the game has either a candle counter or a heart counter of some kind that keeps a tally and then I imagine the code does comparison to a requisite number for each upgrade and voila, it gives you the upgrade. I can't really find much online about those mechanics now.

I was playing around with debugging tools a bit (I'm not the best debugger and my work is almost exclusively with NES games) and so far I haven't been able to crack the code on this.

I thought I'd message you on the off chance that you've already documented exactly how this works and what I'd need to change in order to delay the whip upgrades. No big deal whatsoever if you're not aware. I can always avoid candles. Haha.

I think you should ask question like this in the forum so others might benefit or get a idea what it is about. The heart count is in RAM $0013f2 when you put a breakpoint on it there is a routine that does read it to update the HUD. When you hit a candle you get a different hit.

If you are not familiar with the ROM mapping just use lunar address to translate it into a PC file offset.

I forgot to mention that this could be archived with cheat codes like.
game genie codes F934-4D0D and F934-446D to have them drop with 15 and 30 hearts.

This will not cut it as a small hack and it would probably be smart to replace the mechanic with some other code based on RNG or enemies killed.
I also have a discord for questions like this.

Personal Projects / Re: SC4ED - Super Castlevania 4 Editor
« on: February 25, 2021, 10:15:11 am »
Another thing that needs to be fixed in the uncensored hack is restoring the original sound effects for the upgraded forms of Simon's whip from the Japanese version, where it actually sounds more like a chain.

Here a ips that will change whip sound. This will work with newer expanded ROMs with fast ROM. Like my Remix hack 2.1

If you think of adding the patch to the uncensored hack you can compare files patched and search for them in the ROM with a hex editor to replace them.

I think the uncensored hack was a great project that did test the editor a bit and darksamus did a amazing job with research and lead the project. Thanks to him the sound and music does exist in a uncompressed format toward the end of the ROM in the first place. Uncensored hack could be updated with fastROM and may be optimized pointers. So it could also be a good starting point to do a hack with it and does fresh up the gameplay with less lag.

The bytes for the whip are basically a small tracker file like you find for music. It does not change samples but how it is played. 

Personal Projects / Re: Castlevania Randomizer
« on: February 24, 2021, 10:55:34 pm »
Just randomizing enemies and power-ups in the candles would add a lot of replay value

 .. at least 3 projects at 90% or more completion .. I should just release them anyway.

I do think that the enemy randomizer is the most fun part too. Still I need to sit down a view more nights to get it all done. I did think may be someone is more eager/has more time then me and is interested to learn a unconventional method to do this. Usually you would define enemy data in a high level language. Here you can do it in a ASM thanks the build in features of the patcher. The project could also be a base for a hack instead.

It depends on the situation if a pre release is useful. A unfinished project could bring you bad credits. A proper release does have a other footprint and leaves a good impression on you from a end user perspective.
When you find the project might be useful to others and you don't mind people sharing your work and do things with it. Then make a project post. Sometimes feedback can be a good motivator to establish some time for it in the future.   

The CPU offset in the memory tool does use the same offsets as the debugger. But you can also set breakpoints in the PRG ROM.

I think you are close. Make sure to use a breakpoint. Right click the address in RAM and set one for write. When it triggers the debugger will break the game stops on the instruction and you are able to navigate from CPU bus to PRG ROM with the right click options. (Since you work on a CN ROM without PRG swapping you can actually always do that)

It comes down to understand memory mapping a little. The green long bar in the mesen debugger on the bottom does visualize that for CPU and PPU bus.
The PRG ROM is basically the nes file without the header.

It is good if you start to use nesdev as a reference guide. You work on a CN ROM

Here a other example how the CPU does map memory with a MMC1 mapper. Just in case you work on a different ROM in the future.
Code: [Select]
Example Mapping MMC1 UNROM:
CPU Bus                                    PRG ROM
$0000-$0800        2KB internal RAM
$0800-$1fff        Mirrors of RAM
$2000-$2007        Mirrors PPU Register
$     -$3fff        Repeat every 8 bytes   
$4000-$4017        NES APU Register and Controller ($4016-$4017)
$4018-$401F        APU Function (disabled)
$     -$5fff        deverse PRG RAM/ROM MapperRegister
$6000-$7fff        SRAM
$8000-$bfff        Most mappers start there PRG banks here.
                Only one Bank at a Time!
   |00---------------------------------- $0000
   |01---------------------------------- $4000
   |02---------------------------------- $8000   
   |03---------------------------------- $c000
   |04--------------------------------- $10000
   |05--------------------------------- $14000
   |06--------------------------------- $18000
$c000-ffff                               $1c000 (Always at the end of the CPU bus!)
   |The CPU expects interrupt vectors in a fixed place at the end of the cartridge space.
   |$FFFA-$FFFB = NMI vector
   |$FFFC-$FFFD = Reset vector
   |$FFFE-$FFFF = IRQ/BRK vector
   |----------------------------------- $1ffff

 Good luck  :thumbsup:

Personal Projects / Re: SC4ED - Super Castlevania 4 Editor
« on: February 22, 2021, 10:31:58 pm »
What are you interested in Vanya? Would you like to make a CV1 like game in this editor? I am sure it would be way easier to work with SC4ed to rebuild metroid like CV1 then using the original game. Programing something like a key would be easy. The door does exits you can check out the bloody crusade hack to see how this looks.

Redguy did make a good randomizer for this game:
If you like you can go and watch bobby playing it.
I don't see anyone who would like/is able work more on it.

The uncensored hack seems one of the worst hacks done. You could just play the Japanese version and not suffer for extra loading time on each screen. May be make a translation instead? Are you concerned not to be able to read the title screen? I think the kanji title with the castle looks awesome. Sure with some effort this could be done but why do you want this so bad in the first place. Why would you go through effort of patching to see a other title? Just something I don't understand the effort it needs.

Beside if you think about fixing the uncensored hack the title screen is hardcoded so it will take some research to get it done. Not sure how good you are at disassemble and document the code good enough to make the desired changes. Once you found a good hijack it might not be to bad. Personally I would skip the research and code it from scratch. Look for the assembly tables in the J version. Get a idea how the event timers are. Update the Xpos Ypos and assembly pointers. Decrease the Ypos for the drop till the bottom and reset the routine.
update:  ;related code for the drip in the J version
Code: [Select]
org $03DBC4   
JSR $DD01    ; initiate blood drip??  Event at RAM $780     
org $03DD3C   
JSL $02D65F      ; blood drip routine       
org $02D65F   
LDA $22,X               
BNE $02D682             
LDA $24,X               
ADC $00                 
LDA $0000,Y             
BEQ $02D685             
CMP #$FFFF               
BNE $02D679             
STZ $24,X               
BRA $02D663             
STA $00,X               
LDA $0002,Y             
STA $22,X               
INC $24,X               
DEC $22,X               

Personal Projects / Re: Castlevania Randomizer
« on: February 18, 2021, 08:01:30 am »
I did some bugfixes and also added a ips for people who don't like to install python 3 but like to have a small teaser.
What makes the Randomizer great so far is the enemy.asm. It feels interesting to me to get all the new situation in a familiar level layout.

This is just the enemy tracker for the levels and I add them when I play with the emulator. Mesen is great since it does highlight the byte that just got read. Then just try out what is good and write the byte down as a option to choose from in the ASM. It still takes some time to find good option. I feel like the global property that tell where on the screen the enemy appears should be optimized first.
I was thinking to restart that document and this was also the point when I started to do other things. It is some work but I have a lot of fun playing this. Would be cool to finish it and see some people doing races and stuff.

Here I made a Video of me setting it up and playing it.

Personal Projects / Castlevania Randomizer
« on: February 17, 2021, 07:18:30 pm »
This Randomizer is made with a costume assembler made by SpiderDave. The assembler is still in a beta/alpha state. You will require python3 to run it:

I did include a older version of the free air movement made by NaOH:

I started out with RetroRain MMC5 for CV PRG0 conversion but made a lot of changes to it like using PRG1 ROM.. plus all the features.

Here is the link to the project:
How to use:
Copy your "Castlevania (U) (PRG1) [!].nes" Rom to the main folder with the make.bat file. Name the ROM as shown before. Double click the make.bat to get a randomized ROM.

(The randomisation is done in the ASM file thanks to the features the new assembler provides. Check the main.asm the view conditions and add level select and such)

- MMC5 Conversion used for CHR animation and the extra sprite page so all the enemies are available everywhere in the Castle.
- Palette variation. There is a general Dark and Light theme. Then also the Vanilla palette groups and sky randomization and such..
- I provide a full level select and cheat mode for testing for MMC1 and MMC5 version. (Needs to be enabled in the main.asm. Set condition to 1)
- Rearranged enemy assembly with some sprites that would allow for a smooth animation thanks to animated sprite bank. Or a idle frame for Simon. (Unfinished)
- There is a group of tiles animated for each stage but no animation is added so far. (Unfinished)
- Random music for each level. (Unfinished. The music should be shuffled as a group for each stage)
- Enemy Randomizer. (Unfinished. It is done till around the cave section and some choices are bad or placed wired)
- Boss locations.
- One extra playable Character. Richter (waiwai world style)
- Some general property only two damage through out the game.

Known Bugs:
- Some bosses are one block in the ground. The Bosses need to be generalized or at last make low ground rooms for them.
- Right now the music changes after a checkpoint when you die. This is because it is not shuffled as a group.
- Some enemies are not meant to be together. The game crashes when there are fishman and bone throwing skelly on the screen. Sometimes there are wired
  interactions with the code and the music can reset one channel. I just try to avoid some enemy arrangements because of that so far..
- Holy water does no longer stun bosses. Still works great on enemies. I know I could call that a feature but I don't know yet why that happen..
- Second face Dracula does not react properly when crouching in the corner for some reason..

Why do I post a unfinished project?
  This is on my desk for over two month and I just go after other project. I do not find time or motivation to do more right now. It is still fully playable and
  I am glad for testing feedback or additional resources and ASM files if anyone is willing to provide.

  This is a free fan project anyone can use for what they like. The ROM conversion does not change the original offset that much. Other tools like steaks can be
  used to make changes to the levels. That tool might not like the header of the file so you need to change it back on forward. Or just set up a patching line
  from a other ROM to update this version. Graphics are CHR so you need to update them with a tool like Tile molester anyway. Not convenient but doable.

  I don't know when I return to this but I thank in advance for feedback and have fun testing.

Additional ideas/bugfixes I consider implementing some time later: (This will be updated when I get feedback)
- Difficulty setting in Game. (probably just let you choose the amount of damage you receive)
- Candle randomizer. At last the sub weapon should be random drops.
- Enemy AI Randomizer. This could give a lot of replay value when done right. I was looking forward to it and I have a lot of ideas in that regard.
- New/Replaced Enemy types.
- NewBosses. I had like to make some costume bosses. I also think this could help other hackers. Give ideas how to do them. So far I only did one boss but I need
  to make a proper ASM first. I also had the idea to copy some stuff of Optomon Holy Relics and Chorus of Mysteries hack into this project. But I probably stick
  to my own creations.

- Animation for Sprite and Backgrounds.
- Add more playable characters.
- Add full property pages to change desired values in the game.
- Replacing Music engine with ggsound engine to make it possible to create music in a easy way.

Personal Projects / Re: SC4ED - Super Castlevania 4 Editor
« on: February 16, 2021, 06:34:44 pm »
Did you even try. What did not work? There are also like 40 versions if you collected them all.. not sure what you are using. I recommend the latest I posted. Here is a ips patch with fastROM that is expanded. I optimized the enemy gfx pointers so you can have a lot more enemy available in the levels. This cleared also a bunch of space if you like to make some more costume once. I added the asm to arrange this pointers and you can compile it with asar.

If you use the IPS the fastROM patch is made by vitor vilela

If you have a project you cold save the levels as level files and load them in the new editor. This will probably get rid of some issues too. If events not show up in the newest editor just change the unknow value to 03 for every event but the first (00 event) for each level.

If you like to have explained what the optimized gfx pointers are and how to arrange them. I made a video about it.

February 19, 2021, 04:08:33 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
I think hacks made at different times aren't compatible with later versions of the editor.

I do not know if you still had plans to continue your hack. I made some code so Simon whips and jumps as in the original Nes Games.
I made a video how I ported the things from your hack. It does have fast Rom included. There is a up to date editor. You could also add other asm files I shared. But you can also ask for a ips..

Here the Video:

The links are in the video description

Personal Projects / Re: SC4ED - Super Castlevania 4 Editor
« on: February 16, 2021, 05:25:45 pm »
Could you point out a thing that is missing to make a "full" hack. This editor is more refined then a lot of other game editor. It does expand the ROM for you and expand event-, entrances-, blocks-, scenes-, tile-table or other property and compressed data. So you can just expand on things and make every level as big as you like. Sure you need to know a thing or two. Sure the editor does not have the most advanced gui and has no music editor or animation editor. Still the editor does read data from pointers and as long you expand the pointers to free space it just keeps working with things you are changing.

Personal Projects / Re: SC4ED - Super Castlevania 4 Editor
« on: February 16, 2021, 02:59:35 pm »
He did probably say it is hard coded. There is a jump table for the drops. If you like to change a item just make a long jump to the last bank that is unused. There you can write the code for the new item. This kind of things don't belong in a editor there are ASM patches for this sort of thing. If the items are what you are after. You said candles what is very unclear what you like to do.. may be you just like to change gfx?

Personal Projects / Re: SC4ED - Super Castlevania 4 Editor
« on: February 16, 2021, 10:40:12 am »
Bummer. We never got the candle mod option. Sad.

What option do you mean. You can edit and add as many candles you like. I made even patches so they do different stuff like bring you to the second quest and back.
The gui is not that nice as you need to fill the right values instead of choosing from some menu box with labels. But you see a perfect preview for the drop, position and everything else needed to make it appear properly.

Personal Projects / Re: SC4ED - Super Castlevania 4 Editor
« on: February 16, 2021, 06:46:28 am »
More or less a year ago Redguy decided to delete the source for the editor since he lost interest in the project I post a link to the source code here.


I assume you don't understand NES opcode. Is this right? But you need to understand a little of it for this task.

Here you see the bosses palette in the Mesen debugger. Before it will go to the PPU Bus like Cyneprepou described it will go to RAM in this case. It does load from $BABF + and stores at RAM $140 . When you don't know how the ROM is mapped to the CPU bus just right click a address over $8000 and it will show you the byte in as PRG ROM offset. Then add $10 if you like to have the headered NES file offset.   

The head changes Red so the game has some code to mod the colors as you see here.
You like to change the values that been loaded into A Y and X register. The offsets are in the picture so I think you might figure this one out yourself form here on. Mesen can also show you the byte number of the opcode. Just hover over it with the mouse curser.

ROM Hacking Discussion / Re: All my SMB1 questions in one thread
« on: January 18, 2021, 09:17:47 pm »
But you did find the memory viewer right? You can right click a address once the debugger window is open to set a breakpoint. If you don't try or keep learning the resources provided you will never get it done. Then you should have asked in the help section if someone can do it for you since you are to lazy or feel not worth the effort or something. Everything is hard if you don't know how to do it. Any day is a good day to improve you skill by something.

ROM Hacking Discussion / Re: All my SMB1 questions in one thread
« on: January 17, 2021, 07:42:15 am »
Since you like to do it you need to use a debugger. As a new user I would suggest to use the mesen utilitie. That one is amazing at emulating games and even better at debugging them. When doing changes with the debugger you can even save the changes as IPS or the ROM itself.

The emulator does a good job presenting the meaning of the opcodes and such but you might need to consult the nesdev wiki or other guides you can find when you google them to make more sense of the game. The first thing I would look at is how the ROM is mapped to the CPU bus.

Hitboxes are calculated with the CPU. The flashing are PPU routines that update values at PPU address $3f00. This should not be the first thing you are looking at. Since you can only write data to the ppu over register $2007.
Here you can look up the PPU registers in more detail.

The scroll register is covered in the PPU registers too  :thumbsup:

You like to change the player state when you get hit. This sounds like a beginner friendly task. Search RAM to find where the value is that get effected when you get hit or eat a mushroom. You can find it with the build in cheat finder. You know the value goes up when you increase the state and does reset when you get hit. Else you can consult documentation of the ROM. But searching yourself will give you needed skills for tasks like this.

With UI you probably mean the HUD. This is a sprite 0 hit event there and this is the location where the PPU will write to the scroll register. I don't think this can be improved till you convert to some mapper with proper IRQ handling. But I am not sure may be there is a way to make it better.

To stop the Demo you look for the trigger. Just look at the RAM values and use a breakpoint what code will start it. Then disable the routine with a RTS or overwrite the JSR with 3 NOP.

To make the screen black you change the tile mapping along tile attribute. This can probably even be done with a editor. Since it uses the first stage as a title screen. You might need to write some costume code to load a different map to the nametable. This is less beginner friendly.

Wish you much fun and luck learning the Mesen utilities.

Alongside you can learn some text editor utilities. I would recommand notepad ++ That one can also do syntax highlighting what helps to see what line is good for what purpose when writing code. Asar does have some nice assembly highlighting..
You will read code in the debugger utilities and you should get used to write some yourself. Here I prepared a injection patcher to make Mario stay big when get hit with fireflower.
You can open the main.asm with the text editor. I would recommend to use that to make changes as it is simple to keep track of what you did and a great way to learn.

To patch a ROM put the SMB1 in the ROM folder. Name it SMB1.nes. Then click the bat file.

I also disabled the flashing.. but it is not as easy to just remove the timer where you are frozen on screen. Sure it is possible but requires more research. Things like this are time consuming. I hope you are stubborn enough so you can make changes like this one day.

Here the Rom info for the ROM to patch. Hopefully you make a hack for the same ROM.
Code: [Select]
Database match: Super Mario Bros. (World)
Database: No-Intro: Nintendo Entertainment System (v. 20180803-121122)
File SHA-1: EA343F4E445A9050D4B4FBAC2C77D0693B1D0922
File CRC32: 3337EC46
ROM SHA-1: FACEE9C577A5262DBE33AC4930BB0B58C8C037F7
ROM CRC32: D445F698

Since I did take away the easy edit. I did not leave a clue what to go after and is beginner friendly. There is a RAM offset at $73f. Have a look how that ones behavior when walking around. Set a breakpoint on it. Check what happen when you change compare values just before you have write breaks on that value. It should help you to cross a other thing off the list.

Personal Projects / Re: The Legend of Zelda: A Link to the Islands (Hack)
« on: January 08, 2021, 11:06:08 pm »
I just like to mention some stuff.
If you would go for a other project there is a beta editor in the work. I am sure zarby89 would be happy when someone would do a project and report bugs or make suggestions.

Also I did see some docx with asm changes of the hack. If you like to make ASM changes I would recommend a tool like asar. This is a injection patcher and you can put your code as you find it in the debugger on the CPU bus. If you are confused about ROM mapping lunar address can calculate some or learn how this wokrs yourself.

Just in case:
Memory mapping is explained here among other things.
Or explained in a Video here:

Thanks for the hack

Since you know some opcodes I feel doing it this way will help you to understand things much better. Code changes should be made along with a debugger to see what the changes do step by step.

ROM Hacking Discussion / Re: Need participants for a Zelda 1 HACKJAM!
« on: January 06, 2021, 09:52:29 pm »
I would disagree that hackjam is a speedrunner thing. Some speedrun community do not even show any interests in hacks at all. Not sure how this is with Zelda. Do you know people that run some hacks?

Do you know the people that do hacks? As far as I know it is a small group. Zeldix seems to be the place for hacking this game but I am not active in the forum and if there is a hacking scene with people. I do have a channel about Zelda in my discord but no users that would do level hacks. It is mostly about the redux stuff I did for this game.

Probably people that could had considered participating did not even read this post. A other thing is that there are no coder that does make patches to be used in a hack. Like new item, enemies or mechanics. The stuff that can be done with the vanilla game has been done a number of times and it is hard to come up with new interesting things. I bet if you had a jam about making a new item there would be more people interested to make a hack with it after.

The noise when you get hit is a DMC wave. The sample address is $FF40. What is the last bank in the PRG ROM $1ff40 or $1ff50 When you view a headerd NES file.

I can not remember a sound in the game that could fit so you need to figure a way to create the sample. Or play back something on a other channel.

The routine to for the playback does start at $e734 (jsr $fe96) I did not find a other sound that uses DMC so you could hijack there to just play a other sound.
If you replace the sample with

Code: [Select]

This does sound like a soft bump. I am not familiar with delta channel or the best way to create this wave form. May be famitracker could help to create a better sample. Use Mesen APU/Music viewer helps to find more details if you like to go after a satisfying sound.

If you know a game with a good sound that uses DMC you could probably rip the sound there.

I fixed the sample to sound like a high voice.

In my example I used the PRG1 ROM of Castlevania. I did see you used the PRG0 for your last hack. The offsets might  be a big different there. I also recommend using the newer revision as it will not crash when more enemies are on screen. Love your work greetings.

Pages: [1] 2 3 4 5 6 ... 12