?tab=readme-ov-file# Loader Dumps Arcade Emulator (wip)
Year : 2005
CPU : Celeron - Pentium 4
Chipset: Intel 865G
GPU: ATI Radeon 9600SE/9600XT(128 MB) / X700PRO (256 MB), Bahia AGP 2.0/3.0 Soporte 1x/4x/8x
SO: Windows XP Embedded
Year : 2005
CPU : Intel Core 2 Duo E6400/Pentium 4 651/Celeron D 352
Chipset: Intel Q965 + ICH8
GPU: ATI RADEON X1600Pro/X1300LE o nVIDIA GeForce 7900GS/7600GS/7300GS
SO: Microsoft Windows XP Embedded SP2
Arcade System Board
Run w/ Taito Type X, X2, X Zero, X3 and X4
Boolean isLoaded { get; }
Boolean isActive();
int Open(String name);
Task OpenAsync(String name);
Kernel32Native.PROCESS_INFORMATION Create(String name, uint securityAttr);
Boolean Attach(String name);
Boolean InjectDLL(String name);
List<IntPtr> SuspendAllThreads();
Boolean ReadMemory(IntPtr processID, IntPtr address, int numOfBytes, byte[] buffer, out int bytesRead);
Boolean WriteMemory(IntPtr hProc, IntPtr address, byte [] buffer, out int bytesWrited);
List<IntPtr> ResumeAllThreads();
Boolean Terminate();
Player 1
P1_SERVICE = 3
P1_START = 1
P1_COIN = 5
P1_UP = UP
P1_DOWN = DOWN
P1_LEFT = LEFT
P1_RIGHT = ALT
P1_BUTTON_1 = SPACE
P1_BUTTON_2 = CTRL
P1_BUTTON_3 = C
P1_BUTTON_4 = A
P1_BUTTON_5 = V
P1_BUTTON_6 = B
Player 2
P2_SERVICE = 4
P2_START = 2
P2_COIN = 6
P2_UP = R
P2_DOWN = F
P2_LEFT = G
P2_RIGHT = D
P2_BUTTON_1 = A
P2_BUTTON_2 = S
P2_BUTTON_3 = E
P2_BUTTON_4 = Q
P2_BUTTON_5 = W
P2_BUTTON_6 = E
TEST_TILT1 = 3
TEST_TILT2 = 7
TEST_TILT3 = 8
TEST_MODE = T
EXIT_CODE = ESC
[Display address] [Value] [Byte] [Key]
0000000000000000 00 . Start
0000000000000004 00 . Coin
0000000000000008 00 . Service
000000000000000C 00 . Up
0000000000000010 00 . Down
0000000000000014 00 . Left
0000000000000018 00 . Right
000000000000001C 00 . Btn 1
0000000000000020 00 . Btn 2
0000000000000024 00 . Btn 3
0000000000000028 00 . Btn 4
000000000000002C 00 . Btn 5
0000000000000030 00 . Btn 6
Player 2
[Display address] [Value] [Byte] [Key]
0000000000000034 00 . Start
0000000000000038 00 . Coin
000000000000003C 00 . Service
0000000000000040 00 . Up
0000000000000044 00 . Down
0000000000000048 00 . Left
000000000000004C 00 . Right
0000000000000050 00 . Btn 1
0000000000000054 00 . Btn 2
0000000000000058 00 . Btn 3
000000000000005C 00 . Btn 4
0000000000000060 00 . Btn 5
0000000000000064 00 . Btn 6
Board
[Display address] [Value] [Byte] [Key]
0000000000000068 00 . Test Mode
000000000000006C 00 . Exit
GamePad Input (Reverse Engineering)
Is JOY = (n & 0x80000000)
Is JOY AXIS = (n & 0x000F0000)
Buttons
0x800000ZZ
0x80 - JOY Enum [00 - 01 - 02 ... ]
0x00
0x00
0xZZ - JoyButton [00 - 01 - 02 - 03 - 04 ...]
Example:
0x80000001 (Joy 00 Button 01)
0x80000002 (Joy 00 Button 02)
..
Joystick
0x80PPZ8YA
0x8X - JOY Enum [00 - 01 - 02 ... ]
0xPP - AXIS -> 01 (X+) | 11 (X-) | 02 (Y+) | 12 (Y-) | 03 (Z+) | 13 (Z-)
0xZ8YA - RANGE
Example: | Joy00 | -Y | -1000 |
0x8012FC18 | 1000 0000 0001 0010 1111 1100 0001 1000 ( Joy00 Axis -Y -1000)
| Joy01 | +Y | +1000 |
0x810203E8 | 1000 0001 0000 0010 1111 1100 0011 1000 ( Joy01 Axis +Y +1000)
Resume:
[Display address] [Hexa Code] [Hexa Code] [Ascii Code]
0000000000000000 18 FC 12 80 06 00 00 00 06 00 00 00 C8 00 00 00 ................
0000000000000010 D0 00 00 00 CB 00 00 00 CD 00 00 00 02 00 00 00 ................
0000000000000020 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 ................
0000000000000030 07 00 00 00 32 00 00 00 31 00 00 00 30 00 00 00 ....2...1...0...
0000000000000040 2F 00 00 00 2E 00 00 00 01 00 00 X1 03 00 00 X1 /...............
0000000000000050 02 00 00 X1 25 00 00 00 24 00 00 00 23 00 00 00 ........$...#...
0000000000000060 22 00 00 00 21 00 00 00 01 00 00 08 02 00 00 08 "...!...........
Input Tool to map output file *.bin
Inicializando
Logger: 2019-06-07_00-48-04-LoggerJvs.log
Escribo 6 bytes... -> [ E0 FF 03 F0 D9 CB ] 0xE0FF03F0D9CB
[E0] = SYNC_CODE OK
[FF] = BROADCAST A TODOS LOS NODOS
[03] =
[F0] = RESET ALL NODES
[D9]
[CB] =
Envío 0 bytes... -> [ ]
............................
Escribo 6 bytes... -> [ E0 FF 03 F1 01 F4 ] 0xE0FF03F101F4
[E0] = SYNC_CODE OK
[FF] = BROADCAST A TODOS LOS NODOS
[03] =
[F1] = Set Address
[01]
[F4] =
Envío 6 bytes... -> [ XXXXXXXXXXX ]
............................
Escribo 5 bytes... -> [ E0 01 02 10 13 ] 0xE001021013
[E0] = SYNC_CODE OK
[01] = ESCLAVO
[02] =
[10] = I/O IDENTIFICADOR
[13] =
Envío 58 bytes... -> [ XXXXXXXXXXX ]
............................
Escribo 5 bytes... -> [ E0 01 02 11 14 ] 0xE001021114
[E0] = SYNC_CODE OK
[01] = ESCLAVO
[02] =
[11] = COMANDO REVISION FORMATO
[14] =
Envío 7 bytes... -> [ XXXXXXXXXXX ]
...
............................
Escribo 5 bytes... -> [ E0 00 02 00 02 ]
[E0] = SYNC_CODE OK
[00] = MAESTRO
[02] =
[00] = RESETEANDO MAQUINA (Exit Game)
[02] =
Envío 6 bytes... -> [ XXXXXXXXXXX ]
Inicializando
Logger: 2020-01-19_14-50-21-LoggerFAST-io.log
Abriendo conexion
Hook_iDmacDrvOpen[_in_] (deviceId: 1 | outBuffer: 00000000 | flags: 00000000)
Hook_iDmacDrvOpen[_out_] (deviceId: 1 | outBuffer: 00000001 | flags: FFFFFFFF)
............................
Leyendo datos
Hook_iDmacDrvRegisterRead
Discovery [0x400]
XXXXXXXXX [0x4000] ?
XXXXXXXXX [0x4004] ?
XXXXXXXXX [0x4000] ?
............................
** FOR:
Escribiendo datos
Hook_iDmacDrvRegisterWrite
XXXXXXXXX [0x4000] ?
............................
Leyendo datos
Hook_iDmacDrvRegisterRead
XXXXXXXXX [0x4004] ?
............................
Escribiendo datos
Hook_iDmacDrvRegisterWrite
XXXXXXXXX [0x4004] ?
............................
Leyendo datos
Hook_iDmacDrvRegisterRead
Input Key P1 - P2 [0x4120]
XXXXXXXXX [0x4124] ?
XXXXXXXXX [0x4128] ?
XXXXXXXXX [0x412C] ?
XXXXXXXXX [0x41A0] ?
XXXXXXXXX [0x41A4] ?
XXXXXXXXX [0x41A8] ?
XXXXXXXXX [0x41AC] ?
............................
Escribiendo datos
Hook_iDmacDrvRegisterWrite
XXXXXXXX [0x4100] ?
XXXXXXXX [0x4104] ?
XXXXXXXX [0x4108] ?
XXXXXXXX [0x410C] ?
Coin Input P1 [0x4140]
Coin Input P2 [0x4144]
XXXXXXXX [0x4180] ?
XXXXXXXX [0x4184] ?
XXXXXXXX [0x4188] ?
XXXXXXXX [0x418C] ?
............................
Leyendo datos
Hook_iDmacDrvRegisterRead
Coin Input P1 [0x4140]
Coin Input P2 [0x4144]
Coin Input P2 [0x4144]
XXXXXXXX [0x41C0] ?
XXXXXXXX [0x41C4] ?
** FOR
...
Cerrando conexion
Hook_iDmacDrvClose (deviceId: 1 | access: 004E4BDC) -> You can only close game with Test Mode
PLATFORM | NAME | MANUFACT | YEAR | GENRE | Intel HP Graphics 4500 | Intel HP Graphics 620 | ATI HD 4770 | ATI HD 5870 | AMD RX 570 | AMD RX 580 | |
---|---|---|---|---|---|---|---|---|---|---|---|
TTX | Chaos Breaker | Eolith | 2004 | Fighter | 45FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
TTX | Giga Wings Generations | Takumi Corporation | 2004 | SHMUP | 50FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
TTX | Homura | skonec | 2005 | SHMUP | 50FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
TTX | Raiden III | MOSS | 2005 | SHMUP | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
TTX | Raiden III Export | MOSS | 2005 | SHMUP | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
TTX | Raiden IV | MOSS | 2005 | SHMUP | 50FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
TTX | Spica Adventure | Taito | 2005 | Platform | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
TTX | Tetris The Grand Master 3 Terror Instinct | Arika | 2005 | Puzzle | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
TTX | Shikigami no Shiro III | Alfa System, Skonec, Barnhouse Effect | 2006 | SHMUP | 45FPS | 60FPS | 50FPS | 60FPS | 60FPS | 60FPS | |
TTX2 | Battle Fantasia | Arc System Works | 2007 | Fighter | -- | 60FPS | 50FPS | 60FPS | 60FPS | 60FPS | |
TTX2 | BlazBlue: Calamity Trigger | Arc System Works | 2008 | Fighter | -- | 50FPS | 45FPS | 60FPS | 60FPS | 60FPS | |
TTX2 | BlazBlue: Continuum Shift 1 | Arc System Works | 2009 | Fighter | -- | 50FPS | 40FPS | 55FPS | 55FPS | 60FPS | |
TTX2 | BlazBlue: Continuum Shift 2 | Arc System Works | 2010 | Fighter | -- | 55FPS | 50FPS | 60FPS | 60FPS | 60FPS | |
TTX2 | King of Fighters Maximum Impact Regulation A | SNK Playmore | 2007 | Fighter | -- | 50FPS | 40FPS | 60FPS | 60FPS | 60FPS | |
TTX2 | Power Instinct 5 Matrimelee 2: Goketsuji Ichizoku Matsuri Senzo Kuyou | Atlus and Noise Factory | 2009 | Fighter | 45FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
TTX2 | The King of Fighters XII | SNK Playmore | 2012 | Fighter | -- | 55FPS | 45FPS | 60FPS | 60FPS | 60FPS | |
TTX2 | Trouble Witches AC | Taito | 2008 | Action | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
TTX2 | Street Fighter IV | Capcom | 2008 | Fighter | -- | 55FPS | 40FPS | 655FPS | 55FPS | 60FPS | |
TTX2 | Super Street Fighter IV Arcade Edition (NESYS) | Capcom | 2010 | Fighter | -- | 55FPS | 40FPS | 55FPS | 55FPS | 60FPS | |
NESICAxLive | Raiden III | MOSS | 2012 | SHMUP | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
NESICAxLive | Daemon Bride | Examu | 2009 | Fighter | 45FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
NESICAxLive | Elevator Action | Taito | 2014 | Action | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
NESICAxLive | Arcana Heart 2 v2.1 | Examu | 2012 | Fighter | 45FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
NESICAxLive | Rastan Saga | Taito | 2012 | Action | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | |
NESICAxLive | Space Invaders | Taito | 2012 | Action | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS | 60FPS |
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
XML 142 173 345 286219
C/C++ Header 795 38483 84272 147221
C++ 114 4477 4607 16206
C 14 747 711 10235
C# 118 1478 3894 9043
MSBuild script 18 0 49 1653
Markdown 3 4 0 46
DOS Batch 8 1 0 27
XAML 2 1 0 15
JSON 5 0 0 5
Bourne Shell 2 7 22 4
Assembly 1 1 2 1
-------------------------------------------------------------------------------
SUM: 1222 45372 93902 470675
-------------------------------------------------------------------------------
Loader Dump Arcade is programmed by vicboma1, all this is a homebrew development with reverse engineering, non official technical documentation and a lot of personal time.
Development environment
[2017-XXXX]
Original TTX Arcade System w/Raiden III
[2017-2019]
Macbook 2015 - CPU 2.2Ghz
Bootcamp Native - Windows 8
Intel HP Graphics 4500 | ---
8GB RAM
[2020-XXXX]
Dell
Intel Core i5-7200U
CPU 2.5Ghz | 2Cores - 4Nucleos
Intel HP Graphics 620 | ---
16GB RAM
Twitter : https://twitter.com/vicboma1
Youtube : https://www.youtube.com/channel/UCIyHFDfIyH2Z7FUQBiUxs4g
This software is provided as-is, and is licensed under the MIT License.
MIT License
Copyright (c) 2024 Victor Bolinches
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.