Skip to content

Grand Cross: add Ero-On!, Homu Plus, Sena Plus and Rikka Plus; fix Nyaru Plus - #234

Open
kagaminehaku wants to merge 2 commits into
crskycode:masterfrom
kagaminehaku:grandcross-schemes
Open

kagaminehaku wants to merge 2 commits into
crskycode:masterfrom
kagaminehaku:grandcross-schemes

Conversation

@kagaminehaku

Copy link
Copy Markdown

Adds four Grand Cross (ShiinaRio engine, WARC 1.7) titles and fixes one existing scheme. Only ArcFormats/Resources/Formats.dat changes, in two commits.

New games

Game Executable VNDB ExtraCrypt
Ero-On! ERO_ON.exe v11473 MakiFesCrypt
Homu Plus HOMUPLUS.exe v8019 MakiFesCrypt
Sena Plus SENAPLUS.exe v10126 YuruPlusCrypt
Rikka Plus RIKKAPLUS.exe v11902 KeyAdlerCrypt

No code changes are needed: all three ExtraCrypt classes already exist.

Fixes

  • Nyaru Plus: the dword at 0x1020 of its DecodeBin (the module build date) was 0x20080214, copied from another game. The game's value is 0x20120710. With the wrong value, entries whose Decrypt2 step reads that slot come out corrupted. In the retail archives this is NYARUPLUS_G.WAR:RULE213.S25, whose row table pointed past the end of the file. The array was shared with other schemes, so only Nyaru Plus gets a corrected copy and the other games are unchanged.
  • Oreimo Plus: the scheme was already correct but had no executable mapping. OREIMOPLUS.exe is now mapped, so the game is detected automatically.

Notes

  • The new ShiinaImages reuse the existing shared 33,438-byte engine image and only add a per-game tail. CryptKey, Region and DecodeBin are the same arrays as Azu Plus, and Sena Plus shares its key table with Yuru Plus. The database grows by about 40 KB.
  • New schemes are inserted in alphabetical order. The database version stays 148.
  • The file was written with FormatCatalog.SerializeScheme, the same way as SchemeTool. Loading and re-saving the original file without changes produces an identical payload.

Testing

Built from this branch, GARbro opened every retail archive of Ero-On!, Homu Plus, Sena Plus, Rikka Plus and Nyaru Plus:

  • Each game was detected automatically from its executable. Oreimo Plus was detected too.
  • All 5,124 entries decrypted without errors.
  • Every entry matches an independent extractor byte for byte.

Nyaru Plus: the dword at 0x1020 of its DecodeBin (the module build date) was
0x20080214, copied from another game. The game's value is 0x20120710. With
the wrong value, entries whose Decrypt2 step reads that slot came out
corrupted. In the retail archives this is NYARUPLUS_G.WAR:RULE213.S25, whose
row table pointed past the end of the file. The table was shared with other
schemes, so only Nyaru Plus gets a corrected copy.

Oreimo Plus: the scheme was already correct but had no executable mapping,
so the game was not detected automatically. Map OREIMOPLUS.exe to it.
Add four Grand Cross games (ShiinaRio engine, WARC 1.7) with their
executable mappings:

  Ero-On!     ERO_ON.exe     https://vndb.org/v11473  MakiFesCrypt
  Homu Plus   HOMUPLUS.exe   https://vndb.org/v8019   MakiFesCrypt
  Sena Plus   SENAPLUS.exe   https://vndb.org/v10126  YuruPlusCrypt
  Rikka Plus  RIKKAPLUS.exe  https://vndb.org/v11902  KeyAdlerCrypt

Each ShiinaImage reuses the shared 33,438-byte engine image and only adds a
per-game tail, so the database grows by about 40 KB. CryptKey, Region and
DecodeBin are the same arrays as Azu Plus. Sena Plus shares its key table
with Yuru Plus.

Verified with the retail archives of all four games: every entry decrypts
without error and matches an independent extractor byte for byte.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant