Warning: You are using TidyHTML mode! Pages MAY and probably WILL break. To disable, click here or append 'xxx-off=1' to the URL!

Register - Login
Views: 57864658
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - JCS - Stats - Latest Posts - Color Chart - Smilies
10-16-14 12:06:22 AM

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

Posted on 11-11-13 01:07:44 PM, in Out of This World (SNES) (last edited by KungFuFurby at 11-11-13 01:16:01 PM) Link
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

Posted on 12-05-13 10:55:35 AM, in Weird Discoveries Link
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

Posted on 01-24-14 04:11:33 PM, in Weird Discoveries Link
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

Posted on 01-24-14 08:12:00 PM, in Weird Discoveries Link
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

Posted on 01-27-14 04:58:24 PM, in Weird Discoveries (last edited by KungFuFurby at 01-27-14 04:59:16 PM) Link
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






Rusted Logic

Acmlmboard - 07/23/2013 b378.03
©2000-2013 Acmlm, Xkeeper, Inuyasha, et al.
bargaining-tycoon
21 database queries, 11 query cache hits.
Query execution time:  0.031381 seconds
Script execution time:  0.034156 seconds
Total render time:  0.065537 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 94 column 11 - Warning: <form> isn't allowed in <table> elements
line 93 column 10 - Info: <table> previously mentioned
line 95 column 11 - Warning: missing <tr>
line 95 column 124 - Warning: missing </font> before </td>
line 99 column 16 - Warning: plain text isn't allowed in <tr> elements
line 95 column 11 - Info: <tr> previously mentioned
line 100 column 68 - Warning: <nobr> is not approved by W3C
line 100 column 68 - Warning: missing </nobr> before </td>
line 117 column 68 - Warning: <nobr> is not approved by W3C
line 117 column 68 - Warning: missing </nobr> before <tr>
line 121 column 18 - Warning: missing </a> before <div>
line 121 column 114 - Warning: discarding unexpected </a>
line 141 column 35 - Warning: missing <tr>
line 141 column 50 - Warning: missing </font> before </td>
line 141 column 138 - Warning: missing </font> before </table>
line 143 column 35 - Warning: missing <tr>
line 143 column 96 - Warning: unescaped & or unknown entity "&page"
line 143 column 50 - Warning: missing </font> before </td>
line 143 column 133 - Warning: missing </font> before </table>
line 150 column 9 - Warning: <div> isn't allowed in <tr> elements
line 149 column 9 - Info: <tr> previously mentioned
line 152 column 9 - Warning: missing <tr>
line 166 column 13 - Warning: missing <tr>
line 167 column 27 - Warning: <nobr> is not approved by W3C
line 175 column 15 - Warning: missing <td>
line 176 column 9 - Warning: <div> isn't allowed in <tr> elements
line 175 column 15 - Info: <tr> previously mentioned
line 178 column 9 - Warning: missing <tr>
line 192 column 13 - Warning: missing <tr>
line 193 column 27 - Warning: <nobr> is not approved by W3C
line 199 column 15 - Warning: missing <td>
line 200 column 9 - Warning: <div> isn't allowed in <tr> elements
line 199 column 15 - Info: <tr> previously mentioned
line 202 column 9 - Warning: missing <tr>
line 216 column 13 - Warning: missing <tr>
line 217 column 27 - Warning: <nobr> is not approved by W3C
line 225 column 15 - Warning: missing <td>
line 226 column 9 - Warning: <div> isn't allowed in <tr> elements
line 225 column 15 - Info: <tr> previously mentioned
line 228 column 9 - Warning: missing <tr>
line 242 column 13 - Warning: missing <tr>
line 243 column 27 - Warning: <nobr> is not approved by W3C
line 249 column 15 - Warning: missing <td>
line 250 column 9 - Warning: <div> isn't allowed in <tr> elements
line 249 column 15 - Info: <tr> previously mentioned
line 252 column 9 - Warning: missing <tr>
line 266 column 13 - Warning: missing <tr>
line 267 column 27 - Warning: <nobr> is not approved by W3C
line 288 column 17 - Warning: discarding unexpected <table>
line 291 column 35 - Warning: missing <tr>
line 291 column 96 - Warning: unescaped & or unknown entity "&page"
line 291 column 50 - Warning: missing </font> before </td>
line 291 column 133 - Warning: missing </font> before </table>
line 293 column 35 - Warning: missing <tr>
line 293 column 50 - Warning: missing </font> before </td>
line 293 column 138 - Warning: missing </font> before </table>
line 295 column 17 - Warning: discarding unexpected </textarea>
line 295 column 28 - Warning: discarding unexpected </form>
line 295 column 35 - Warning: discarding unexpected </embed>
line 295 column 43 - Warning: discarding unexpected </noembed>
line 295 column 53 - Warning: discarding unexpected </noscript>
line 295 column 64 - Warning: discarding unexpected </noembed>
line 295 column 74 - Warning: discarding unexpected </embed>
line 295 column 82 - Warning: discarding unexpected </table>
line 295 column 90 - Warning: discarding unexpected </table>
line 304 column 9 - Warning: missing </font> before <table>
line 320 column 9 - Warning: inserting implicit <font>
line 332 column 23 - Warning: inserting implicit <font>
line 339 column 58 - Warning: discarding unexpected </font>
line 297 column 1 - Warning: missing </center>
line 91 column 9 - Warning: <img> lacks "alt" attribute
line 93 column 10 - Warning: <table> lacks "summary" attribute
line 95 column 63 - Warning: <img> lacks "alt" attribute
line 100 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 100 column 93 - Warning: <img> lacks "alt" attribute
line 117 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 117 column 98 - Warning: <img> lacks "alt" attribute
line 136 column 1 - Warning: <table> lacks "summary" attribute
line 136 column 240 - Warning: <td> attribute "bgcolor" lacks value
line 141 column 17 - Warning: <table> lacks "summary" attribute
line 143 column 17 - Warning: <table> lacks "summary" attribute
line 151 column 9 - Warning: <table> lacks "summary" attribute
line 155 column 22 - Warning: <img> lacks "alt" attribute
line 155 column 63 - Warning: <img> lacks "alt" attribute
line 155 column 112 - Warning: <img> lacks "alt" attribute
line 155 column 162 - Warning: <img> lacks "alt" attribute
line 162 column 15 - Warning: <img> lacks "alt" attribute
line 165 column 11 - Warning: <table> lacks "summary" attribute
line 166 column 153 - Warning: <font> attribute "color" had invalid value "7C60B0" and has been replaced
line 177 column 9 - Warning: <table> lacks "summary" attribute
line 181 column 22 - Warning: <img> lacks "alt" attribute
line 181 column 63 - Warning: <img> lacks "alt" attribute
line 181 column 112 - Warning: <img> lacks "alt" attribute
line 181 column 162 - Warning: <img> lacks "alt" attribute
line 188 column 15 - Warning: <img> lacks "alt" attribute
line 191 column 11 - Warning: <table> lacks "summary" attribute
line 201 column 9 - Warning: <table> lacks "summary" attribute
line 205 column 22 - Warning: <img> lacks "alt" attribute
line 205 column 63 - Warning: <img> lacks "alt" attribute
line 205 column 112 - Warning: <img> lacks "alt" attribute
line 205 column 162 - Warning: <img> lacks "alt" attribute
line 212 column 15 - Warning: <img> lacks "alt" attribute
line 215 column 11 - Warning: <table> lacks "summary" attribute
line 227 column 9 - Warning: <table> lacks "summary" attribute
line 231 column 22 - Warning: <img> lacks "alt" attribute
line 231 column 63 - Warning: <img> lacks "alt" attribute
line 231 column 112 - Warning: <img> lacks "alt" attribute
line 231 column 162 - Warning: <img> lacks "alt" attribute
line 238 column 15 - Warning: <img> lacks "alt" attribute
line 241 column 11 - Warning: <table> lacks "summary" attribute
line 251 column 9 - Warning: <table> lacks "summary" attribute
line 255 column 22 - Warning: <img> lacks "alt" attribute
line 255 column 63 - Warning: <img> lacks "alt" attribute
line 255 column 112 - Warning: <img> lacks "alt" attribute
line 255 column 162 - Warning: <img> lacks "alt" attribute
line 262 column 15 - Warning: <img> lacks "alt" attribute
line 265 column 11 - Warning: <table> lacks "summary" attribute
line 266 column 146 - Warning: <font> attribute "color" had invalid value "7C60B0" and has been replaced
line 146 column 17 - Warning: <table> lacks "summary" attribute
line 291 column 17 - Warning: <table> lacks "summary" attribute
line 293 column 17 - Warning: <table> lacks "summary" attribute
line 299 column 1 - Warning: <img> lacks "alt" attribute
line 300 column 1 - Warning: <img> lacks "alt" attribute
line 301 column 1 - Warning: <img> lacks "alt" attribute
line 308 column 9 - Warning: <table> lacks "summary" attribute
line 310 column 25 - Warning: <img> lacks "alt" attribute
line 340 column 17 - Warning: <table> lacks "summary" attribute
line 141 column 138 - Warning: trimming empty <font>
line 143 column 133 - Warning: trimming empty <font>
line 249 column 15 - Warning: trimming empty <tr>
line 291 column 133 - Warning: trimming empty <font>
line 293 column 138 - Warning: trimming empty <font>
line 153 column 11 - Warning: <a> cannot copy name attribute to id
line 179 column 11 - Warning: <a> cannot copy name attribute to id
line 203 column 11 - Warning: <a> cannot copy name attribute to id
line 229 column 11 - Warning: <a> cannot copy name attribute to id
line 253 column 11 - Warning: <a> cannot copy name attribute to id
Info: Document content looks like HTML Proprietary
Info: No system identifier in emitted doctype
131 warnings, 0 errors were found!


The table summary attribute should be used to describe
the table structure. It is very helpful for people using
non-visual browsers. The scope and headers attributes for
table cells are useful for specifying which headers apply
to each table cell, enabling non-visual browsers to provide
a meaningful context for each cell.

The alt attribute should be used to give a short description
of an image; longer descriptions should be given with the
longdesc attribute which takes a URL linked to the description.
These measures are needed for people using non-graphical browsers.

For further advice on how to make your pages accessible
see http://www.w3.org/WAI/GL.
. You may also want to try
"http://www.cast.org/bobby/" which is a free Web-based
service for checking URLs for accessibility.

You are recommended to use CSS to specify the font and
properties such as its size and color. This will reduce
the size of HTML files and make them easier to maintain
compared with using <FONT> elements.

You are recommended to use CSS to control line wrapping.
Use "white-space: nowrap" to inhibit wrapping in place
of inserting <NOBR>...</NOBR> into the markup.

To learn more about HTML Tidy see http://tidy.sourceforge.net
Please fill bug reports and queries using the "tracker" on the Tidy web site.
Additionally, questions can be sent to html-tidy@w3.org
HTML and CSS specifications are available from http://www.w3.org/
Lobby your company to join W3C, see http://www.w3.org/Consortium