-VirtualBox -Ubuntu installation ISO -Your CPU needs to support virtualization and it needs to be enabled in the BIOS. Otherwise, if you are using Windows 10, you can use the Windows Subsystem for Linux.
EoSD has Kanji in the filenames for it's DAT files. A locale specific function is used to find these files and load their contents. When running EoSD with a non-Japanese locale, what EosD will look for is Mojibake, not the actual names of the DATs. Installing EoSD from a CD will not work because of that with a non-Japanese locale.
The solution is to use Locale Emulator.
Install it by running LEInstall.exe
. It doesn't matter if you install for ne user or for all users. After installing, every time you right click an exe, there will be additional menu entries for running the executable in Japanese. Every EoSD executable needs to be ran in Japanese.
Windows 10 isn't nessesairly known for it's amazing compatibillity and while EoSD in fullscreen mode will run, you will get infinite FPS. In order to fix this issue, download the [DirextX8 to DirectX9 converter](http://enbdev.com/download_convertor_dx
{ | |
"binhacks": { | |
"playermovement_prep": { | |
"expected": "01B7 88090000 8B8F 88090000 0187 8C090000", | |
"code": "E9 0E130600 CC 8B8F 88090000 E9 1C130600 CC", | |
"addr": "Rx367e2", | |
"title": "Player movement preperation for movement freeze" | |
}, | |
"customins_jmpbytes": { | |
"expected": "8e8e", |
A custom ECL opcode that can display a popup window. Syntax: ins_720(int a, string)
if the string contains %d, it will get replaced by the int a
"ins_720_code": {
"code": "6A 00 89 F9 E8 ED 0B F9 FF 50 83 C6 18 56 31 C0 8A 0E 46 40 84 C9 75 F8 83 C0 0A 50 E8 2C 0B FF FF 83 C4 04 50 6A 00 6A 00 68 50 AE 4A 00 FF 15 30 71 49 00 68 70 AE 4A 00 50 FF 15 D8 70 49 00 FF D0 6A 00 68 80 AE 4A 00 FF 74 24 08 6A 00 FF 15 08 72 49 00 83 C4 0C E9 6F DB F8 FF",
ali_n:/dev/block/by-name # ls -l
total 0
lrwxrwxrwx 1 root root 21 1970-02-13 02:59 DDR -> /dev/block/mmcblk0p23
lrwxrwxrwx 1 root root 20 1970-02-13 02:59 aboot -> /dev/block/mmcblk0p5
lrwxrwxrwx 1 root root 21 1970-02-13 02:59 abootbak -> /dev/block/mmcblk0p14
lrwxrwxrwx 1 root root 21 1970-02-13 02:59 apdp -> /dev/block/mmcblk0p42
lrwxrwxrwx 1 root root 21 1970-02-13 02:59 boot -> /dev/block/mmcblk0p36
lrwxrwxrwx 1 root root 21 1970-02-13 02:59 cache -> /dev/block/mmcblk0p51
lrwxrwxrwx 1 root root 21 1970-02-13 02:59 carrier -> /dev/block/mmcblk0p33
// The member names are based off the parameters from | |
// https://en.touhouwiki.net/wiki/User:Mddass/Touhou_File_Format_Specification/ECL/V2.2 | |
// The bullet types and colors are taken from here | |
// https://cdn.discordapp.com/attachments/205514395566997514/603354372407296010/BULLET_IDS.png | |
typedef enum { | |
PEBBLES_0, | |
PEBBLES_1, | |
POPCORN, |
- The input state is a 142 byte structure. An array of 3 starts at Rxaceb8.
- input_state[0] (0x4ACE18) is ingame player 1
- input_state[1] (0x4ACEA6) is ingame player 2
- input_state[2] (0x4ACF34) is meta input (input picked up by menus and such)
- The actual input poller is at 0x42B850.
- The wrapper function that calls the input poller to retrieve all the inputs is at 0x42E9C0
These hex values correspond to following inputs: (the inputs are combined by using logical OR, they're bit flags. Also those are hexadecimal numbers)
typedef struct { | |
char id[11]; // "YUMEConfig" | |
char difficulty; | |
char playchar_paletted[2]; // ID of the player character in the same format as in playchar_palleted in player.h | |
char pl_is_cpu[2]; | |
long random_seed; | |
char unused; | |
char music_mode; | |
char input_mode | |
bool game_over; |