rondo of blood's cutscene graphics are compressed, presumably to fit into ram in one load. i've reverse engineered enough of the decompression algorithm to know what the compressed data represents. on rhdn the people who worked on the english patch described the algorithm for compressing the title screen as a modified run-length encoding. i assume it's the same algorithm, but i didn't check. i don't know how you'd classify the algorithm, but it works like this:the compressed data exists as a bunch of sections of varying length, all butted up against each other and not aligned in any way, just a continuous stream. the value of the first byte of each section describes how the rest of the bytes in that section should be decompressed. the ranges of values for the first byte are:00: this section, when uncompressed, is made of pairs of bytes, and all the byte pairs have their second byte in common. the second byte of the compressed section represents the number of byte pairs in the section when uncompressed. the third byte in the compressed section is the common second byte of the uncompressed byte pairs. the remaining bytes in the compressed section are the first bytes of the uncompressed byte pairs, in order. i'm sorry if that didn't make any sense. it's hard to explain without an example. so, e.g.:compressed:00 05 E2 4A 33 B6 FF 02uncompressed:4A E2 33 E2 B6 E2 FF E2 02 E2here, in the compressed version, 00 means byte pairs with the same second byte, 05 means 5 byte pairs, and E2 is what the second byte of those byte pairs.
01 through 7F: repeat the same byte pair that many times. the second and third bytes are the byte pair that's repeated, the first byte is the number of pairs. e.g.:compressed:0D 82 44uncompressed:82 44 82 44 82 44 82 44 82 44 82 44 82 44 82 44 82 44 82 44 82 44 82 44 82 44here, 0D means thirteen copies.80 through FC: the first byte is bitwise ANDed with 7F, which is the same as subtracting 128 (decimal) from it in this case. the result of that AND operation is the total number of byte pairs, which are the same uncompressed as compressed. e.g.:compressed:85 93 0B 0E 10 95 DE 00 6C 73 EEuncompressed:93 0B 0E 10 95 DE 00 6C 73 EEhere, 85 & 7F = 5 total byte pairsFD and FE are special bytes which set the location in vram where the uncompressed graphics are loaded. it depends on certain values in work ram and the two bytes that follow either FD or FE. these never came up.FF: end of compressed data.so, as a final example, the compressed data could be something like 85 20 4D 61 72 69 61 27 73 20 66 00 03 74 61 20 69 01 73 2E FF. try decompressing that into ascii. twenty one bytes long compressed. eighteen bytes long uncompressed. it's not an especially efficient algorithm, on average it compresses the graphics down to like 75%. looking at the compressed graphics, it seems like the compression was done automatically, and not in an optimal way.
knowing the compression algorithm, i was able to modify the cutscene where maria is rescued to have slightly different graphics. only that cutscene is modified, the rest of the game is the same. both the background tile and sprite graphics are compressed, save for the very first used sprites. i also had to change a couple bytes which say where to start reading the compressed graphics from, since the length of the modified graphics was different. luckily, there was room on disc and in ram for it.here's the hack:https://pomf2.lain.la/f/1j6knu61.bpsit's a bps patch file which gets applied to the bin file of the game in bin+cue format. using redump's "Akumajou Dracula X - Chi no Rondo (Japan) (FABT, FACT).bin", crc32 E00AC0E2 sha1 2D9BD206F423EDC1E6599C59B836C309F03C659A you can use the same cue file, but if you change the name of the bin you'll have to change the name and contents of the cue to match. the patched file should be crc32 2FBFBB5E sha1 EE593C126A8F703A7AA7867CE23AC2FC260E0133. i tested this on multiple emulators. in theory it should work if you were to burn it to a disc, but i didn't try it. the cutscene graphics are on the disc in i think eight different spots, and i only changed one. so if it's not read the first try i think it would load from somewhere else which has unchanged graphics. you'll notice that the graphics are still a little messed up. that's because i only modified the actual tiles, not the tile definitions which say which tiles get used where. it actually looks exactly as intended. if i dug into it some more i bet i could modify the tile definitions properly, and make some other changes, but i'm not going to because it's not worth spending any more time on a simple proof of concept.
i started looking into this as part of a larger hack involving giving maria a belly dancing outfit. having thought about it, though, i think it's best to leave the cutscenes as they are and use any disc space available to add new stuff. it's been three years since i actually did anything related to this hack, and i still haven't made any real progress. all future updates will be in /hbg/, i made a whole thread this time since that's what i think anons were looking out for. i'm namefagging to make updates easy to find.next thing i'm going to look into is how data is stored on and loaded from the disc. then i'll know exactly how much disc space there is to work with. the game only uses like 500MB, which even on a 650MB disc is a ton of room remaining. working with the pc engine is a little tricky, but once you wrap your head around the various types of ram, the mmu, indirect indexing, and its other hardware quirks, it's not too bad.
Top tier thread.>having thought about it, though, i think it's best to leave the cutscenes as they areCome on, you gotta overwrite the cutscene graphics!
"I did this""I did that"No you didn't. Your pal Claude did, you just pointed your finger.
Why the trip?
Arent rondos cut scene just done with sprites
>>12913150Is this THAT anon?
Maria...get the cross.
>>12913183>>12913237Fuck off, it's interesting either way
>>12913585Besides the lolicon part, that part is weird
>>12913153Canon>>12913264non-canon
>>12913150Super SOTNhttps://www.youtube.com/watch?v=JZbrsOnN2bk
>>12913659have you seen the bazongers she has in >>12913150 ?
>>12913663Its unreal how quickly the incubation stage of AI assisted homebrewing is coming along.
>>12914347Will "slop" finally go away when the last dev team is fired?
>>12913237He was making this hack way before Claude. I remember it from threads few years ago.
>>12914509The original dude who made those cutscenes was just cöckteasing and making goon Loli bait art and someone madw a stage mockup and a sprite but that's about it.
This threads just come and go....
i didn't use ai, and i'm not planning on it. the process mostly involved using mesen's debugging tools, and yychr in some places. i reverse engineered the algorithm by setting memory write breakpoints and walking through the opcodes. it might have been faster to write a program to compress and decompress the graphics, but i did it by hand in notepad and a hex editor because there were only like seventy odd tiles. i made maybe 10 mistakes which produced some of those garbage graphics. the audio was replaced by encoding the correct length clip using sox. apparently it's not perfect for encoding for pc engine cd, and someone wrote a tool to encode properly, but i just used sox and it sounds good enough.>>12913251it's probably not needed, but it doesn't really hurt.>>12913260it's mostly background tiles, with a lot of sprites, too. anything that moves is probably a sprite. you can see for yourself by using mesen's tilemap and sprite viewer. the devs did some cool tricks especially with the intro cutscene with richter.
>>12913183This hack has been in the works since before AI shit, retard
So this lolifag who probably has never even beat RoB has teased a shitty romhack for several years with basically nothing to show for it and there are people who still humor him as if he'll do shit?
>>12914527the original artist who drew maria in the outfit was called pepipopo, also went by shinpepi and now goes by bunami. i'm pretty sure he's posted here but might have gotten banned. i don't know. i'm not in contact with him (although maybe i should be) and a lot of his art has been nuked without archival. the only reason i know about the artwork in this post >>12913153 is because someone on tumblr reposted it. it's the earliest example i know of of pepi drawing maria in belly dance attire. he's drawn her more than that, though. he also did some pixel art, like pic related.there was another anon who isn't me who drew some tiles and sprites to make some mockups, and i think also took some pictures of pepi's art and the mockup on a crt.there was another anon who isn't me who made a paizuri animationand there's me, who found where maria's sprites and their palettes are on disc. which anyone can find if they just look at the game data in yychr. i was using the raw disc dump, which meant most of the sprites weren't aligned, but if you just use "cooked" mode1/2048 data, it's all there. there are a lot of copies of it, i think it might be one per stage, so to find which one goes to which stage you can just change one of them and see if it's different on that stage. now, if the goal was just a simple sprite swap, you would just overwrite all of them. changing the cutscenes would require changing the tile definitions and sprite attribute table. it's possible, but it's not what i'm aiming for. i'm trying to avoid scope creep, but at minimum, i want the hack to have both maria's pink dress and the dance outfit. in order to have both, they need to be in different places on disc and be loaded in conditionally. that's why that's what i'm looking into next. i'm also gonna need the actual new sprite tiles, which no one has drawn, so i guess i'll do that too at that point.
>>12914660>there was another anon who isn't me who made a paizuri animationLink?
>>12914665https://files.catbox.moe/1o82x9.gifhttps://www.pixiv.net/users/75877742>>12914641pretty much. although i have beaten rondo.
>>12914676Why is the male brown?
>>12914660Oh, it's nice, I am fine with you not using AI, even if honestly would speed up things nicely on the code side, but might also hallucinate a bunch of nonsense.I wanted to see that hack but those involved found that it's was a huge task beyound just "goofing around"
>>12914676Yo you are gonna get us deleted
>>12914660You're pepi
>>12914676I'd hydro storm her, if you catch my drift.
>>12914940No..........i am
>>12914954>>12914660If Shantae age was 13 instead 16
>>12914954Suddenly, drawfag out of nowhere!
OKdid you discuss this with Claude too?
>>12915593He said he doesn't use ai
>>12916153Claude did not say that.
Whats gonna happen now?
>>12916153I frequently discuss my work with AI, that doesn't mean I am copypasting everything it spits out.