News:

11 March 2016 - Forum Rules

Main Menu

Other: Castlevania 30th anniversary

Started by RHDNBot, May 13, 2017, 01:46:23 AM

Previous topic - Next topic

SunGodPortal

Quote from: MathUser2929 on May 16, 2017, 10:25:28 PM
That's a good point, why not make it replace the music too? You could pick some proper remixes and include them in the download.

Castlevania Chronicles comes to mind. Those techno versions feel weird to listen to outside of the game but make the game feel more fun when you're actually playing it (and getting your ass handed to you since CC is borderline unfair).
Cigarettes, ice-cream, figurines of the Virgin Mary...

MathUser2929

I liked the techno music of castlevania chronicles. Especially level 1 and tower of dolls.

bogaabogaa

#42
Quote from: Real_Character on May 16, 2017, 07:24:41 AM
You need windows for this? wuuuut.
You could try using wine and tell us if it worked. There is a zip file with the source code. May be you feel like searching for a tutorial to build it on you machine. May be you could make a universal build and share it with your linux friends.


I would love to see a nestopia build that could strip the VRAM to a file and use the same file after to reskin. It could make up a easy hacking experience for beginners. But I guess it is not as easy to get all the tools made for it and if it is worth the effort. I think Sound is more complicated because it need to respond to the nes and there are many triggers.. but I may be wrong here..

Quote from: WebSlinger on May 16, 2017, 02:58:46 PM
It's not working for me at all..  Do i need to unzip my CastleVania rom?  Have the rom in the same EXACT folder as the patch tiles?
Make sure you using the Castlevania (U) (PRG1) there is a (PRG0) I deleted a longtime ago since it crashes always. Please try to write down exactly what you tried. It is so hard to troubleshoot like this  ::)

1. Download the zip
2. Unpack it
3. Lunch the Nestopia.exe in the folder
4. File -> open (find your Castlevania (U) (PRG1) I have mine unpacked donno if you need to
5. ...
6. Most upscale filters will crash the emulator; do not use them.
7. skin.png should reside in a folder you start the emulator from,
   otherwise the game will run unpatched.
8. The source is available in a src.zip in a root folder of the archive.
   In theory it could be built for Linux or even as a RetroArch core.
CV ROM DiscordServer
https://discord.gg/7QKpGC49Qk

PLiberty

Quote from: SunGodPortal on May 16, 2017, 11:47:19 PM
Castlevania Chronicles comes to mind. Those techno versions feel weird to listen to outside of the game but make the game feel more fun when you're actually playing it (and getting your ass handed to you since CC is borderline unfair).
I think you mean the X68000 version is unfair. The remixed CC mode is quite manageable.

kya

Due to multiple requests I've tried myself to build the emulator from sources on a Ubuntu 14 virtual machine. I had to make some changes to the source. Now it should build both in Windows and in Linux. But on Linux it is without GUI and runs too fast. Maybe it is just my VM, i don't know. I've uploaded the updated package to the same place. Sources are in a src.zip file in a root folder of the archive.

To those people who run the patched emulator, but the game looks regular: bogaabogaa is right. The emulator can't find skin.png and renders the game in its original form. You should check out where Nestopia creates its temporary and configuration files (nestopia.log, nestopia.xml, skin.log), and put skin.png into that folder.

As for the music replacement, I am a total n00b in sound programming. The obstacle I see, is that detecting a tile to be replaced is an instant process from the human perspective. Detecting the melody is not. Several seconds should pass, and what should the emulator do in the process? Remaining silent or playing the origial melody is hardly acceptable.

Concerning a tool to make pattern table dumps, I used a slightly modified FCEUX, making screenshots of its ultra-convinient Pattern Table Viewer. Of course, this way I could only dump one table at a time, but this gives us flexibility of not being dependent of a ROM's mapper.

bogaabogaa

#45
@kya Thanks for making and sharing this build. Really amazing idea and excellent execution!

I sadly don't understand any programming language and I can't make sense how you would trigger to update tiles while rendering.
As I said I am interested to find out how it works and how much work it was. A friend of me tried different ROM and when he played some contra there been fragment of the patched tiles.
And he was so happy that he could play his CV-level-hacks with a different skin!!

My questions:

- Could you imagine a Nestopia build that makes this kind of hacking easier or popular for different games?
- How do you trigger the tiles to update? Would it be possible to point to files to change and make this kind of hacking possible without programming knowledge?
- My friend did ask if he could do speed-runs with this Nestopia build. Does it run on the correct frame rate?
CV ROM DiscordServer
https://discord.gg/7QKpGC49Qk

kya

Quote
- Could you imagine a Nestopia build that makes this kind of hacking easier or popular for different games?
- How do you trigger the tiles to update? Would it be possible to point to files to change and make this kind of hacking possible without programming knowledge?

It is already possible to make graphic packs for other NES games without programming knowledge using the released emulator.

Steps (basically):

1. You throw away my skin.png
2. You create a new skin.png in your favorite graphics editor (256 pixels wide).
3. You launch a game you decided to facelift in a FCEUX NES emulator (you should ask me for a copy, it's slightly modified).
4. You open a PPU viewer (menu Debug->PPU Viewer...)
5. Every time the tiles change in a PPU viewer you grab a screenshot
6. You insert this screenshot into your skin.png twice. One under another.
7. The above copy is original patterns. Emulator will use them for detection.
8. The below copy is replacement patterns. Redraw them to your heart's content.
9. Repeat for every tileset change in a PPU viewer window. Your resulting skin.png will be very tall.

But once again, if you dare, ask me for the details.

As for 60 fps, the emulator should run at the correct frame rate, but I wouldn't bet on it. I haven't measured.

macbee

Quote from: kya on May 18, 2017, 10:38:13 AM
It is already possible to make graphic packs for other NES games without programming knowledge using the released emulator.

Steps (basically):

1. You throw away my skin.png
2. You create a new skin.png in your favorite graphics editor (256 pixels wide).
3. You launch a game you decided to facelift in a FCEUX NES emulator (you should ask me for a copy, it's slightly modified).
4. You open a PPU viewer (menu Debug->PPU Viewer...)
5. Every time the tiles change in a PPU viewer you grab a screenshot
6. You insert this screenshot into your skin.png twice. One under another.
7. The above copy is original patterns. Emulator will use them for detection.
8. The below copy is replacement patterns. Redraw them to your heart's content.
9. Repeat for every tileset change in a PPU viewer window. Your resulting skin.png will be very tall.

But once again, if you dare, ask me for the details.

As for 60 fps, the emulator should run at the correct frame rate, but I wouldn't bet on it. I haven't measured.
So cool. It works in a similar way to HiSMS (for Master System). I'd love to see this becoming a tool released to public (since I could never make HDNES work properly).

Congratulations! :D

SunGodPortal

Quote from: PLiberty on May 18, 2017, 02:07:27 AMI think you mean the X68000 version is unfair. The remixed CC mode is quite manageable.

Well to clarify, that game is hard as fuck (that should be a good thing) and the controls are almost as bad as the Gameboy Castlevanias. That's what I mean by "unfair". Unrealistic was probably a more accurate depiction of the difficulty.
Cigarettes, ice-cream, figurines of the Virgin Mary...

Azkadellia

Quote from: PLiberty on May 18, 2017, 02:07:27 AM
I think you mean the X68000 version is unfair. The remixed CC mode is quite manageable.
The original X68000 version (not the classic mode on chronicles) is much easier. Almost everything does only 1 damage.
Current Projects: On hold indefinitely.
I do the Twitter thing now: https://twitter.com/MistressSaeko (expect lots of game streaming announcements)
Mistress of the RHDN Discord server.

bogaabogaa

#50
Hey Macbee keep in mind that you are still limited to the NES resolution. And up-scaling filters crash the emulator. HDNES could still compete. With this nestopia we have more color to work with. And I could imagine that there are limits too!

I would like to start on a Castlevania 3 skin

It is a non linear level selection and I wonder if there are issues that the nestopia will pick the wrong PPU tile-set to update. I did check the log and I think Castlevania does follow a stage by stage PPU tile-set replacement.

In order to work in a non linear level order you would need something like PPU sized sub-region with check-sum for the orginal tile-set in the skin.png. The program could find the the same check sum you have in the PPU and would know to replace this particular tile set in VRAM. I am not sure how it works. Still never got passed making my terminal to a calculator..

Would it work already in a none linear level select game?

I would love to get my hands on your moded FCEUX NES! And I bet there are other people who would love to have it too!

6 years ago a guy named TheBehest started to work on a CV 3 Hack. Did anybody know him? Or what happen to him? He is a very talented Artist and I would make my CV 3 skin after what I already saw of his work. And I hope I can stand up to his standards for the rest of the game. I will mention him in the credits.

https://www.youtube.com/user/TheBehest
CV ROM DiscordServer
https://discord.gg/7QKpGC49Qk

kya

I'm quite surprised, people are asking for tools to develop their own skins for other NES games. HDNES exists for about 4 years now, but I haven't seen many graphic packs developed for it since then.

There is no problem giving away that FCEUX, here it is: https://yadi.sk/d/GRCG_Zaq3JKCaA

But this was made as a quick and dirty hack. Maybe it's preferrable to stick to standards? Now as Mesen supports HDNES packs, maybe it is better to use them for facelifting NES games?
They allow for upping tile resolution, and they even seem to replace background music (what people asked here).

My hack, on the other hand, due to its nature won't be able to do that. Speaking of its other limitations, it only supports 32000 colors (5 bits R, G, B) in replacement patterns. It also can not replace "something with nothing" (if an original sprite has any non-transparent color in a particular row, a replacement sprite should be non-transparent in that row too). Another limitation is that it most likely won't support fadein/fadeout, and certainly does not support NES color emphasizing and B/W mode.

And finally the most important one: the hack does not replace the tileset entirely. It only checks if a particular original pattern (a row of 8 pixels) is read from a particular address in a pattern table (a special area of NES VRAM). If it detects such an event, it renders a replacement pattern instead. So two (or more) equal original patterns can't be replaced with different replacement patterns. When I started my work, I thought this to be a minor issue. I was wrong. Despite Castlevania being a relatively small game, it happened all the time. I had to develop a concept of trigger patterns. If a particular (trigger) row of 8 pixels is detected early in a frame (preferrably in a top row), then a special subset of so called triggered patterns is used for replacement until the end of a frame. As triggers I mostly used regular color filled "night sky" or abundant brick patterns.

I'm afraid this concept won't work in a tile rich game like Castlevania 3. The non-linearity of levels is not a problem here. The problem is the total amount of the tiles in the game. It may turn out impossible to choose a trigger in certain levels.

Another problem with Castlevania 3 is that, as far as I remember, it uses a lot of custom effects like fog or water. How will they look like with a skin hack is impossible to imagine.

Although I admit, it is fun to imagine Trevor from SotN making his way through the original Castlevania 3.

bogaabogaa

Quote from: kya on May 19, 2017, 03:50:02 AM
But this was made as a quick and dirty hack. Maybe it's preferrable to stick to standards? Now as Mesen supports HDNES packs, maybe it is better to use them for facelifting NES games?
They allow for upping tile resolution, and they even seem to replace background music (what people asked here).

How come you did not use "standards" for your face-lift?

Does anybody have experience with HDNES? To be honest I did never hear about it. I am here because I like Castlevania..

HDNES:
Only mapper 000-004, 016, 153, 159  is supported at the moment. And CV 3 uses what mapper?

Will try out Mesen emulator and see how it runs already made HD packs.

Will do some trial and error testing and report back in case anybody is wondering. But it may take a while.
CV ROM DiscordServer
https://discord.gg/7QKpGC49Qk

kya

#53
QuoteHow come you did not use "standards" for your face-lift?

I felt their way is too complicated. Creating a png per tileset and making those tile indexing files was too much for a simple (as I thought in the beginning) game.

QuoteI am here because I like Castlevania..

Me too!

QuoteCV 3 uses what mapper?

CV 3 is mapper 5. A pain in the back for many early NES emulator developers. Here the only benefit of my approach shines - it is mapper independent. But in all the other ways it is quite limited. I meant no offense when talking about adhering to standards. I just want to stress, I'm afraid my hack won't be up to the task of facelifting of the huge and advanced Castlevania 3.
Anyway, you may try to start by simply replacing the Trevor sprite and see for yourself, if the procedure is manageable. Very talently made spritesheets are available here:
http://castlevaniadungeon.net/forums/index.php?topic=3504.0

SourMesen

#54
Quote from: bogaabogaa on May 19, 2017, 06:49:21 AMWill try out Mesen emulator and see how it runs already made HD packs.
FYI, Mesen currently only supports HD packs for CHR ROM games - Castlevania 1 uses CHR RAM (Castlevania 3 is CHR ROM, though).
That being said, HDNes' packs are supposed to support CHR RAM, iirc - I just never got around to implementing it since there has been very little interest for HD packs from the NES community in the ~2 years since I originally added support for them in Mesen.
I'd be more than happy to add support for CHR RAM packs if someone actually makes a HD pack that needs it, though.

Edit: Also, I guess I could see about adding code to generate the PNG images & the tile definition file in Mesen (i.e dump the tiles with their proper palette to a PNG file while playing through the game, similar to what HDNes does, I think?).  That might be better since HDNes itself has a few limitations (e.g mapper support)

bogaabogaa

#55
How manageable it is for me to work on different skins on kya's nestopia.

I honestly feel to inexperienced to life up to the task. The PPU viewer showed me always the doubled tile-set and it seems stuff is missing. I could not find the Trevor sprite..


I did toy around a little redrawing some of the existing skin.png and it works quiet well. It will work if you stick to the guidelines. If you try to be creative you may get a headache to get
everything together. It is already quiet tedious how it is. When you try to find the proper animation with a different sprite you better think it through first(picture). You will need to look at the animation closely and make a proper sprite for it.  It will be hard to life up to the standard we have already.


Hey SourMesen I will tell you how it is for me. I am somewhat interested to make a CV3 Skin. If the tools are there and they are not horrible to work with I would start working on a skin sometimes.
My main interests in my spare time will go to Super Castlevania IV. I feel nobody will notice the potential of SC4ed when I don't make a great example. And I feel I could push this over the next year with a short level hack.
the same goes for HDNes packs. There are great example needed to get people involved to work on it. I still have not tried HDNes. I will give a short feedback after some testing soon.
CV ROM DiscordServer
https://discord.gg/7QKpGC49Qk

xttx

This is amazing work Kya!  :cookie: ;)

I reached out to you through a personal message. I tried compiling this myself and it will not compile for me. I sent you the 5 errors. Is there any way i can get any insight on how to maybe fix it?

Either way, thanks for sharing this with us!

nesrocks

HDNes is an absolute nightmare to work with. My biggest request, if you're still taking any, is for the nestopia build to somehow read higher resolution files, even if it is locked to 2x or 4x for example. Maybe that makes it complicated to have the "source" and "target" CHR on the same png.

kya

#58
To SourMesen:
Taking the opportunity I would like to say, I am fascinated with your emulator. You've done an impressive amount of work in an impressive amount of time! I would really love to see the tools for tileset generation in Mesen, and not without a reason. I have a set of 2x upscaled tiles for Castlevania from chinese complete edition mobile version. Personally I don't like the way the enemies were redrawn, but tastes differ, and it will be a pity if the tiles will remain unused.
I'd like to make a few requests, though.
1. Could you dump the tiles upscaled with some filter?
2. Could you implement a tile substitution mechanism somehow? The reason is that Castlevania often uses the same tiles for absolutely different objects (for example, the statue and the wall in stage 1; the moon and the Clock Tower in the final stage). In my hack I was checking if a certain tile gets displayed to trigger the substitution.

To bogaabogaa:
I'm very sorry for all the frustration I caused! I was too naive, thinking my approach will work for Castlevania 3. FCEUX indeed does not show the sprites for it, just duplicating the tiles. Let us all ask SourMesen to make our lives easier, and provide us with the proper tools for the job.

To nesrocks:
I'm unable to do scaling with my hack due to its limited nature. It works directly on PPU level, detecting original patterns in the screen buffer and replacing them in the same buffer. Upscaling filters kick in later on the preformed buffer. I won't be able to discern sprites from a background at that time. So, I'll repeat. Let us all ask SourMesen to make our lives easier, and provide us with the proper tools for the job. :)

AxlRocks

Been lurking this thread since release, a few things:

It looks really good, kya! I also like that assets from rare mobile ports (that I didn't even know existed) are being used and can be appreciated better than on some weird mobile port. I hope someone sees this and dumps the other ports. Mobile stuff is so poorly preserved. (On the top of my wishlist is the two Rockman.exe Docomo games.)

---

Dumping capability in Mesen would be awesome, Sour. Echoing what nesrocks said, I've tried HDNES but not had... any luck at all with it.

I think the low community interest, for tile replacement of any 2D system and not just NES, is due to having to use specific, somewhat obscure emulators that are usually not up to par with other emulators in terms of actual emulation accuracy and options. (No offense meant to any dev that might apply to though! Their work is still incredible.)

I'd love to see kya's work here converted for use in Mesen. One of the first things I'd like to try myself is backporting some of Megaman The Wily Wars graphics to MM1-3 and 16-bit-ifying 4-6.