Register - Login
Views: 99384205
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-24-22 02:54:04 AM
Jul - The Cutting Room Floor - Riverse Kids (unlicensed) - SFC game with interpreted scripting language inside it New poll - New thread - New reply
Next newer thread | Next older thread
dhg2
Random nobody
Level: 2


Posts: 1/1
EXP: 37
For next: 9

Since: 07-16-18


Since last post: 3.8 years
Last activity: 3.8 years

Posted on 07-16-18 02:11:28 PM Link | Quote
Hello,

I was recently looking for strings inside various SNES ROMs I had lying around, and I discovered that Riverse Kids (othello game where you get rewarded with hentai for winning) is built on what seems to be some sort of interpreted programming language that looks a bit like a variant of BASIC. The code starts at 0x8000 in the ROM.

At the end of the code section, there's the text "MIHO for SNES", I wonder if that's the name of the language or the interpreter software.

I wrote a script to extract the program text from the ROM, with line numbers added. Here it is: http://dusthillguy.ddns.net/folder/files/quickupload/rivs_.txt
I don't know if the line numbers match up with the line number references in the program, I just counted each newline 0x0D character.
There's some binary data mixed in with the program text, I'm assuming from the context that those are text strings in Japanese. I've represented those as [xx] where xx is the byte value in decimal.

Riverse Kids doesn't have a page on TCRF at the moment, but I thought I'd post this on this forum anyway because this is the most appropriate place on the internet I could think of to post this information. I thought it was very interesting and I wanted to share it with people.

Regards,
dhg2
Joe
Common spammer
🍬
Level: 111


Posts: 3303/3392
EXP: 14488811
For next: 379549

Since: 08-02-07

From: Pororoca

Since last post: 3 days
Last activity: 29 min.

Posted on 07-16-18 03:43:55 PM Link | Quote
The stuff that looks like binary data is halfwidth Katakana. The script text is encoded as Shift JIS.

Rather than using line numbers, it looks like the # character is what the labels refer to. There are exactly 177 of them, and the "GO" commands don't reference any labels above 177.

The "MIHO for SNES" text seems to be part of a block of data compressed with a variant of LZSS. It looks like there might be several blocks of compressed data, each starting with "LZ" as a signature, so you might find more strings if you figure out how to decompress them.

____________________
ふにゃあ。
plateshutoverlock
User
Level: 7


Posts: 2/10
EXP: 1091
For next: 357

Since: 01-19-19


Since last post: 2.8 years
Last activity: 255 days

Posted on 01-23-19 01:04:07 AM (last edited by plateshutoverlock at 01-23-19 01:08:44 AM) Link | Quote
Originally posted by dhg2
Hello,

I was recently looking for strings inside various SNES ROMs I had lying around, and I discovered that Riverse Kids (othello game where you get rewarded with hentai for winning) is built on what seems to be some sort of interpreted programming language that looks a bit like a variant of BASIC. The code starts at 0x8000 in the ROM.

At the end of the code section, there's the text "MIHO for SNES", I wonder if that's the name of the language or the interpreter software.

I wrote a script to extract the program text from the ROM, with line numbers added. Here it is: http://dusthillguy.ddns.net/folder/files/quickupload/rivs_.txt
I don't know if the line numbers match up with the line number references in the program, I just counted each newline 0x0D character.
There's some binary data mixed in with the program text, I'm assuming from the context that those are text strings in Japanese. I've represented those as [xx] where xx is the byte value in decimal.

Riverse Kids doesn't have a page on TCRF at the moment, but I thought I'd post this on this forum anyway because this is the most appropriate place on the internet I could think of to post this information. I thought it was very interesting and I wanted to share it with people.

Regards,
dhg2


I looked at the rivs_.txt file you provided, and yes, it's very interesting indeed. I just took a quick look
through this code, and noticed a huge block of "IF O=#(:CG GY##), where the #'s would be different numbers.

Example: IF O=14(:CG GY04)

I don't know what the "GY##"s are supposed to represent, but I am guessing maybe a memory block with code in it? Anyway, it would be much better have the if ## match the GY## and do a range check. Something like:

IF O < 33(:CG GYO)

Of course, there is no seperation between what I presume to be a function and the integer variable, so maybe they were forced to do it the 'dirty' way? Also, if the GY## is referencing blocks of memory, it would be easier to just write up a table of ifs than to try to rearrange the content in those blocks.

These lines are a bit intriguing:

IF O=11(:O=10)
IF O=33(:O=6)

Could this be some sort of correction or aliasing going on here?
Next newer thread | Next older thread
Jul - The Cutting Room Floor - Riverse Kids (unlicensed) - SFC game with interpreted scripting language inside it New poll - New thread - New reply


Rusted Logic

Acmlmboard - commit 47be4dc [2021-08-23]
©2000-2022 Acmlm, Xkeeper, Kaito Sinclaire, et al.

31 database queries.
Query execution time:  0.093145 seconds
Script execution time:  0.010476 seconds
Total render time:  0.103621 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 301 - Warning: unescaped & or unknown entity "&page"
line 119 column 11 - Warning: <form> isn't allowed in <table> elements
line 118 column 10 - Info: <table> previously mentioned
line 120 column 11 - Warning: missing <tr>
line 120 column 119 - Warning: missing </font> before </td>
line 124 column 16 - Warning: plain text isn't allowed in <tr> elements
line 120 column 11 - Info: <tr> previously mentioned
line 125 column 68 - Warning: missing </nobr> before </td>
line 141 column 68 - Warning: missing </nobr> before <tr>
line 147 column 35 - Warning: missing <tr>
line 147 column 50 - Warning: missing </font> before </td>
line 148 column 37 - Warning: unescaped & or unknown entity "&id"
line 147 column 253 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 91 - Warning: missing </font> before </table>
line 156 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 158 column 9 - Warning: missing <tr>
line 176 column 13 - Warning: missing <tr>
line 177 column 102 - Warning: unescaped & or unknown entity "&postid"
line 195 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 197 column 9 - Warning: missing <tr>
line 215 column 13 - Warning: missing <tr>
line 216 column 102 - Warning: unescaped & or unknown entity "&postid"
line 218 column 74 - Warning: <style> isn't allowed in <td> elements
line 218 column 9 - Info: <td> previously mentioned
line 225 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 227 column 9 - Warning: missing <tr>
line 245 column 13 - Warning: missing <tr>
line 246 column 102 - Warning: unescaped & or unknown entity "&postid"
line 282 column 17 - Warning: missing <tr>
line 282 column 17 - Warning: discarding unexpected <table>
line 285 column 35 - Warning: missing <tr>
line 285 column 50 - Warning: missing </font> before </td>
line 285 column 91 - Warning: missing </font> before </table>
line 287 column 35 - Warning: missing <tr>
line 287 column 50 - Warning: missing </font> before </td>
line 288 column 37 - Warning: unescaped & or unknown entity "&id"
line 287 column 253 - Warning: missing </font> before </table>
line 289 column 17 - Warning: discarding unexpected </textarea>
line 289 column 28 - Warning: discarding unexpected </form>
line 289 column 35 - Warning: discarding unexpected </embed>
line 289 column 43 - Warning: discarding unexpected </noembed>
line 289 column 53 - Warning: discarding unexpected </noscript>
line 289 column 64 - Warning: discarding unexpected </noembed>
line 289 column 74 - Warning: discarding unexpected </embed>
line 289 column 82 - Warning: discarding unexpected </table>
line 289 column 90 - Warning: discarding unexpected </table>
line 291 column 9 - Warning: missing </font> before <table>
line 303 column 25 - Warning: discarding unexpected </font>
line 312 column 37 - Warning: discarding unexpected </font>
line 290 column 1 - Warning: missing </center>
line 120 column 63 - Warning: <img> lacks "alt" attribute
line 125 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 125 column 93 - Warning: <img> lacks "alt" attribute
line 141 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 141 column 98 - Warning: <img> lacks "alt" attribute
line 148 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 246 - Warning: <img> proprietary attribute value "absmiddle"
line 161 column 21 - Warning: <img> lacks "alt" attribute
line 161 column 62 - Warning: <img> lacks "alt" attribute
line 161 column 111 - Warning: <img> lacks "alt" attribute
line 161 column 161 - Warning: <img> lacks "alt" attribute
line 172 column 15 - Warning: <img> lacks "alt" attribute
line 200 column 23 - Warning: <img> lacks "alt" attribute
line 200 column 64 - Warning: <img> lacks "alt" attribute
line 200 column 113 - Warning: <img> lacks "alt" attribute
line 200 column 163 - Warning: <img> lacks "alt" attribute
line 201 column 11 - Warning: <img> lacks "alt" attribute
line 211 column 15 - Warning: <img> lacks "alt" attribute
line 230 column 21 - Warning: <img> lacks "alt" attribute
line 230 column 62 - Warning: <img> lacks "alt" attribute
line 230 column 111 - Warning: <img> lacks "alt" attribute
line 230 column 161 - Warning: <img> lacks "alt" attribute
line 241 column 15 - Warning: <img> lacks "alt" attribute
line 288 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 288 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 288 column 246 - Warning: <img> proprietary attribute value "absmiddle"
line 297 column 25 - Warning: <img> lacks "alt" attribute
line 302 column 267 - Warning: <img> lacks "alt" attribute
line 149 column 50 - Warning: trimming empty <font>
line 282 column 17 - Warning: trimming empty <tr>
line 285 column 50 - Warning: trimming empty <font>
line 125 column 68 - Warning: <nobr> is not approved by W3C
line 141 column 68 - Warning: <nobr> is not approved by W3C
line 177 column 27 - Warning: <nobr> is not approved by W3C
line 216 column 27 - Warning: <nobr> is not approved by W3C
line 246 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 87 warnings and 0 errors!


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

About HTML Tidy: https://github.com/htacg/tidy-html5
Bug reports and comments: https://github.com/htacg/tidy-html5/issues
Official mailing list: https://lists.w3.org/Archives/Public/public-htacg/
Latest HTML specification: http://dev.w3.org/html5/spec-author-view/
Validate your HTML documents: http://validator.w3.org/nu/
Lobby your company to join the W3C: http://www.w3.org/Consortium

Do you speak a language other than English, or a different variant of
English? Consider helping us to localize HTML Tidy. For details please see
https://github.com/htacg/tidy-html5/blob/master/README/LOCALIZE.md