![]() Register - Login |
||
| Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users Ranks - Rules/FAQ - JCS - Stats - Latest Posts - Color Chart - Smilies |
||
| Jul - Posts by KungFuFurby |
| Pages: 1 2 |
| KungFuFurby Member Level: 10 Posts: 21/25 EXP: 4262 For next: 152 Since: 08-09-11 Since last post: 261 days Last activity: 63 days |
|
||
| I'm nervous about using 80 FE (which stop the game) in games that stream their note data because of their real-time nature, but the reason why it probably works here is because the music uses the interrupt routine to play back the music. Not guaranteed to work every time, but it works here. Sample packs pair up in a particular way. None of the songs that use sample pack 01 even remotely work on sample packs 00 and 02. In other cases, samples can be swapped out. Reply to edit 2: Oh! Really? Now that I listen to it, there is at least one sample that is swapped out in sample pack 02 that song 0B uses. Well done! I couldn't tell in the first place until you showed me the code to stop the game in its tracks. I usually don't try to stop the game like that because I see that as particularly dangerous for games that stream their note data in real time... sometimes it results in no music at all (I actually didn't test that theory on any of the games because I felt like I was probably going to get nothing... one of the games when I did fool around with the music did indeed end up on a black screen, but I got away with the music modifier because the music still played perfectly fine). The only way that can work is if the game processes the music data in the interrupt routine. So I usually take a safer route by checking where in the game I can let the music play indefinitely without SFX interruption. I have a nearly complete set of music modifier for games that cannot be dumped to the .spc format. |
| KungFuFurby Member Level: 10 Posts: 22/25 EXP: 4262 For next: 152 Since: 08-09-11 Since last post: 261 days Last activity: 63 days |
|
||
| The following is a SNES/SFC discovery... Numbers Paradise's sound is actually based off of Super F1 Circus 3. All of the unused music that hasn't been modified still even have the music from Super F1 Circus 3, which is how I found out! |
| KungFuFurby Member Level: 10 Posts: 23/25 EXP: 4262 For next: 152 Since: 08-09-11 Since last post: 261 days Last activity: 63 days |
|
||
| I am in the process of discovering brand new levels previously inaccessible because of a bank switch bug. The bank switch bug in question swaps high and low bytes. Amusingly, the third bank would have had a working bank switch if all of the levels were cleared, but then it would switch to a Hercules level The game in question going first? Billy Bob. I even found a new sound effect sample that I suspect is not in the NSF rips (it's a player death SFX, and I believe it's in DPCM format)! Billy Bob seems to have a lot more to the game than expected, as I ended up counting 16 levels in the entire game. There is a catch: there is no ending to the game to my knowledge, as all that seems to be programmed at the very end is a jump back to the first bank, which means one of two things: back to the Title Screen, or back to level 1. Stay tuned... I'm still discovering new material... and I'm performing a level count on each one. |
| KungFuFurby Member Level: 10 Posts: 24/25 EXP: 4262 For next: 152 Since: 08-09-11 Since last post: 261 days Last activity: 63 days |
|
||
| Truth be told, I have no music/SFX modifier for Action 52. I only have level lookup at the moment. I did attempt one for Cheetahmen II, but I'm going to have to determine how to access the music/SFX routine, as I currently have no clue on that regard (I'll use Action 52 as a reference instead once I figure it out). I'll check Ooze as I go along. So far, bank switching is done by storing a two-byte value to direct page FE (that also means direct page FF is involved), followed by the accumulator acting as an extra data byte for bankswitching. Then you jump to the start of the next set of bytes (which is almost always $8012 in whatever bank you're going to next... there's bound to be exceptions, and currently, Billy Bob makes that mistake once... it's supposed to go back to the Title Screen, but it switches to its first bank, where the main menu is, and crashes instead because it jumps to a bad spot. It is valid if you get rid of the bankswitching just to note... but the code that's there is simply a proper jump back to the first bank for the game). |
| KungFuFurby Member Level: 10 Posts: 25/25 EXP: 4262 For next: 152 Since: 08-09-11 Since last post: 261 days Last activity: 63 days |
|
||
| I'm back with a mostly complete level analysis for Action 52... I'm still working on it, but there's one game in particular that I should reveal, as well as some other details that I've found out so far. The results are in for Ooze. There is no bankswitching involved in the conventional sense (unlike Billy Bob and the Cheetahmen, which do use bankswitching). However, the game is broken because of improperly dummied out data. The level counter is set to 6, and the action for clearing six levels is to merely update some variables, which I presume means switch the graphic set. The seventh level fails to load because it never existed (the pointer is FF FF). This makes the eighth level all but inaccessible. This same bug affects Star Evil. The game has a level counter of 9, but in reality it only has 3 levels, and therefore runs into undefined territory. I'm almost done with the rest of the games. I have about 80 kilobytes of banks left to look up before all of the games are covered. Time Warp Tickers has a pointer to a third level, but the data it points to is no good. 32 kilobytes are reserved for the Action 52 sequence. I can guarantee you that Billy Bob and Cheetahmen are tied for the largest games in terms of memory consumption. Both consume 224 kilobytes in the ROM. For Cheetahmen, 32 KB is reserved for the opening. Billy Bob is supposed to have 16 levels, and it would crash after stage 16 because of a bad pointer. A bank switch bug causes the game to loop levels 4 and 5 instead, and you can't get out if you make it to those two levels. Cheetahmen, on the other hand, is not affected by the bankswitch bug to that extent. I have an interesting thought: maybe the games have memory constraints that come into play. There are plenty of 32 KB banks that have two or three games in there (so far, I've counted 15 32KB banks that have more than one game in there). Cheetahmen and Billy Bob are the only games that are larger than 32KB (counting all duplicates in code), and for Billy Bob, it's technically got the largest variety of levels (Spread Fire doesn't count despite having more levels: they're all duplicate pointers, so they're not unique to my knowledge in that sense). |
| Pages: 1 2 |
| Jul - Posts by KungFuFurby |
![]() |
Acmlmboard - 07/23/2013 b378.03 ©2000-2013 Acmlm, Xkeeper, Inuyasha, et al. |
| Query execution time: | 0.031381 seconds |
| Script execution time: | 0.034156 seconds |
| Total render time: | 0.065537 seconds |