Skip to content

Commit 41aacdc

Browse files
authored
Merge pull request #1187 from bbbradsmith/hatarib
hatariB new core
2 parents e2082b8 + 20594ac commit 41aacdc

6 files changed

Lines changed: 212 additions & 0 deletions

File tree

‎docs/development/licenses.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ See below for a summary of the licenses behind RetroArch and its cores:
142142
| [Handy](../library/handy.md) | [zlib](https://github.com/libretro/libretro-handy/blob/master/lynx/license.txt) | |
143143
| [Holani](../library/holani.md) | [GPLv3](https://github.com/LLeny/holani-retro/blob/main/LICENSE) | |
144144
| [Hatari](../library/hatari.md) | [GPLv2](https://github.com/libretro/hatari/blob/master/readme.txt) | |
145+
| [hatariB](../library/hatarib.md) | [GPLv2](https://github.com/bbbradsmith/hatariB/blob/main/LICENSE) | |
145146
| [higan Accuracy](../library/higan_accuracy.md) | [GPLv3](https://gitlab.com/higan/higan/blob/master/LICENSE.txt) | |
146147
| [Imageviewer](../library/imageviewer.md) | [MIT](https://github.com/libretro/RetroArch/blob/master/cores/libretro-imageviewer/LICENSE) | |
147148
| [JollyCV](../library/jollycv.md) | [BSD-3-Clause, MIT](https://github.com/libretro/jollycv/blob/master/LICENSE) | |

‎docs/guides/core-list.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@
109109
| GW | Handheld Electronic | A simulator of various Game and Watch-style handheld electronic games |
110110
| [Handy](../library/handy.md) | Atari Lynx | |
111111
| [Hatari](../library/hatari.md) | Atari ST/STE/TT/Falcon | |
112+
| [hatariB](../library/hatarib.md) | Atari ST/STE/TT/Falcon | |
112113
| HBMAME | Arcade/Console/various | HBMAME (HomeBrew MAME) is a derivative of MAME, and contains various hacks and homebrews |
113114
| [higan Accuracy](../library/higan_accuracy.md) | Nintendo SNES/SFC/Game Boy/Color | |
114115
| [Holani](../library/holani.md) | Atari Lynx | |

‎docs/library/bios.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ SNES/Super Famicom | higan Accuracy | [BIOS information](higan_ac
109109
SNES/Super Famicom | Mesen-S | [BIOS information](mesen-s.md#bios)
110110
Super Cassette Vision | EmuSCV | [BIOS information](emuscv.md#bios)
111111
ST/STE/TT/Falcon | Hatari | [BIOS information](hatari.md#bios)
112+
ST/STE/TT/Falcon | hatariB | [BIOS information](hatarib.md#bios)
112113
Texas Instruments TI-83 | Numero | [BIOS information](numero.md#bios)
113114
Thomson - MO/TO | Theodore | [BIOS information](theodore.md#bios)
114115
Vectrex | vecx | [BIOS information](vecx.md#bios)

‎docs/library/hatarib.md‎

Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
# Atari - ST/STE/TT/Falcon (hatariB)
2+
3+
See the [hatariB documentation](https://github.com/bbbradsmith/hatariB/blob/main/README.md) on GitHub for more in-depth information.
4+
5+
## Background
6+
7+
hatariB is an Atari ST/STE/TT/Falcon system emulator that can be used as a libretro core. It emulates the family of 16-bit Atari home computers that began with the Atari ST. While this core is primarily intended to run game software, it is also capable of running many other types of Atari programs.
8+
9+
The hatariB core has been authored by:
10+
11+
- Brad Smith
12+
13+
This core integrates the [Hatari](https://www.hatari-emu.org/) emulator, lead by:
14+
15+
- Nicolas Pomarède
16+
17+
The Hatari core is licensed under
18+
19+
- [GPLv2](https://github.com/bbbradsmith/hatariB/blob/main/LICENSE)
20+
21+
A summary of the licenses behind RetroArch and its cores can be found [here](../development/licenses.md).
22+
23+
## How to start the hatariB core:
24+
25+
The simplest way to start this core is by loading an Atari ST game disk image ('Load Content'), which is equivalent to booting an Atari ST with that disk in the drive. Multi-disk games should be loaded from an M3U file containing a list of disks, though the Libretro disk controls can be used to add or swap additional disk images while running.
26+
27+
The core may also be started with no disk at all ('Load Core', then 'Start Core'), which will boot to the Atari desktop. This is often useful if you wish to use a virtual hard disk with the emulator, instead of running games from floppy disks. See: [Hard Disks](https://github.com/bbbradsmith/hatariB/blob/main/README.md#Hard-Disks).
28+
29+
Some games require a high resolution monochrome monitor setting, instead of the default colour monitor. This can be selected in the 'Core Options' 'System' menu.
30+
31+
## BIOS
32+
33+
The ST family of computers had a long history of TOS BIOS ROMs, with many regions and revisions. By default, it will look in your [system directory](https://docs.libretro.com/library/bios/) for the same `tos.img` as [Hatari](hatari.md) and use that:
34+
35+
| Filename | Description |
36+
|:-----------------:|:------------------------------:|
37+
| tos.img | Atari TOS ROM Image - Optional |
38+
39+
If this default TOS is not supplied, the open source [EmuTOS](https://emutos.sourceforge.io/) BIOS will be supplied automatically as a substitute. EmuTOS is capable of running most games, but it is not 100% compatible, so it is recommended to use an original Atari TOS instead.
40+
41+
Multiple TOS files can be placed in the system folder in a `hatarib` subdirectory, which will allow you to select one via the 'Core Options' 'System' menu. This is especially useful when switching between machine types, as later hardware like the TT or Falcon require later TOS revisions.
42+
43+
There is no one perfect TOS that runs everything. In general TOS 1.0 is the most widely compatible with Atari ST software. Since the majority of ST game software was produced in Europe, a European TOS (e.g. UK) is recommended. The US TOS versions will boot the system with a 60hz framerate, as opposed to 50hz. This may cause some European games that do not override the default framerate to run too fast. (Conversely, some US games will run too slow on a 50hz TOS.)
44+
45+
If using a hard disk, TOS 1.04 is recommended instead, because the operating system support for hard disks in TOS 1.0 was very minimal.
46+
47+
## Extensions
48+
49+
Content that can be loaded by the hatariB core have the following file extensions:
50+
51+
Disk images:
52+
- st
53+
- msa
54+
- dim
55+
- stx
56+
- ipf^*^
57+
- ctr^*^
58+
59+
Multi-disk playlists:
60+
- m3u
61+
- m3u8
62+
63+
Multi-disk archives:
64+
- zip
65+
- zst
66+
- gz
67+
68+
Hard Drive images:
69+
- acsi
70+
- ahd
71+
- vhd
72+
- scsi
73+
- shd
74+
- ide
75+
- gem
76+
77+
^*^ Requires 'capsimg' support library.
78+
79+
See [hatariB File Formats](https://github.com/bbbradsmith/hatariB/blob/main/README.md#File-Formats) more information.
80+
81+
## Features
82+
83+
Frontend-level settings or features that the [Core name] core respects:
84+
85+
| Feature | Supported |
86+
|-------------------|:---------:|
87+
| Restart | ✔ |
88+
| Saves | ✔ |
89+
| States | ✔ |
90+
| Rewind | ✔ |
91+
| Netplay | ✔ |
92+
| Core Options | ✔ |
93+
| RetroAchievements | ✔ |
94+
| RetroArch Cheats | ✔ |
95+
| Native Cheats | ✕ |
96+
| Controls | ✔ |
97+
| Remapping | ✔ |
98+
| Multi-Mouse | ✕ |
99+
| Rumble | ✕ |
100+
| Sensors | ✕ |
101+
| Camera | ✕ |
102+
| Location | ✕ |
103+
| Subsystem | ✕ |
104+
| [Softpatching](../guides/softpatching.md) | ✕ |
105+
| Disk Control | ✔ |
106+
| Username | ✕ |
107+
| Language | ✕ |
108+
| Crop Overscan | ✕ |
109+
| LEDs | ✕ |
110+
111+
The libretro Crop Overscan interface is not supported, but there are Core Options in the 'Video' submenu that address the issue in detail.
112+
113+
## Directories
114+
115+
The hatariB core's internal name is 'hatarib'
116+
117+
The hatariB core saves/loads to/from these directories:
118+
119+
**Frontend's Save directory**
120+
121+
When disks are modified by saving your game, or otherwise writing to the disk, the original ROM file is not modified. Instead a modified copy or overlay file is saved here.
122+
123+
**Frontend's System directory**
124+
125+
| File | Description |
126+
|:-------------:|:-----------------------------------------------------:|
127+
| hatarib.nvram | Internal OS memory for TT/Falcon |
128+
| hatarib/ | Contains TOS images, and hard disk folders or images. |
129+
130+
131+
## Geometry and timing
132+
133+
- The hatariB core's provided FPS is 50, 60, or 71Hz, dependent on software or settings.
134+
- The hatariB core's provided sample rate is configurable to 11025, 16000, 22050, 32000, 44100, or 48000 (default) Hz.
135+
- The hatariB core's minimum width is 320
136+
- The hatariB core's minimum height is 200
137+
- The hatariB core's maximum width is 832
138+
- The hatariB core's maximum height is 588
139+
- The hatariB core's provided aspect ratio is configurable to 1.000 (square, default), 0.844 (atari colour monitor), 1.010 (atari monochrome monitor), 0.766 (NTSC TV), 0.921 (PAL TV), 0.750 (4:3)
140+
141+
## User 1 - 4 device types
142+
143+
The hatariB core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s):
144+
145+
- Gamepad
146+
- Keyboard
147+
- Mouse
148+
149+
## Joypad
150+
151+
The gamepad buttons can be remapped to a variety of Atari ST inputs, including joystick, keyboard and mouse. The default mappings are:
152+
153+
| RetroPad Inputs | Atari Inputs |
154+
|------------------------------------------------|-----------------------------|
155+
| ![](../image/retropad/retro_b.png) | Joystick Button |
156+
| ![](../image/retropad/retro_y.png) | Mouse Left Click |
157+
| ![](../image/retropad/retro_select.png) | Select Drive A/B |
158+
| ![](../image/retropad/retro_start.png) | Pause/Core Info |
159+
| ![](../image/retropad/retro_dpad_up.png) | Joystick Up |
160+
| ![](../image/retropad/retro_dpad_down.png) | Joystick Down |
161+
| ![](../image/retropad/retro_dpad_left.png) | Joystick Left |
162+
| ![](../image/retropad/retro_dpad_right.png) | Joystick Right |
163+
| ![](../image/retropad/retro_a.png) | Joystick Auto-Fire |
164+
| ![](../image/retropad/retro_x.png) | Mouse Right Click |
165+
| ![](../image/retropad/retro_l1.png) | On-Screen Keyboard |
166+
| ![](../image/retropad/retro_r1.png) | On-Screen Keyboard One-Shot |
167+
| ![](../image/retropad/retro_l2.png) | Mouse Speed Slow |
168+
| ![](../image/retropad/retro_r2.png) | Mouse Speed Fast |
169+
| ![](../image/retropad/retro_l3.png) | Space Key |
170+
| ![](../image/retropad/retro_r3.png) | Return Key |
171+
| ![](../image/retropad/retro_left_stick.png) X | Joystick Left/Right |
172+
| ![](../image/retropad/retro_left_stick.png) Y | Joystick Up/Down |
173+
| ![](../image/retropad/retro_right_stick.png) X | Mouse Left/Right |
174+
| ![](../image/retropad/retro_right_stick.png) Y | Mouse Up/Down |
175+
176+
By default user 1's joystick controls are mapped to the Atari's Joy 1 port, and user 2's joystick is mapped to the Joy 0 port, but these are both configurable. STE A/B and Parallel joystick ports can also be assigned, as well as keyboard keys and other arbitrary mappings.
177+
178+
By default 'L1' opens an on-screen keyboard which can be used to type Atari keys, selected with the 'D-Pad' and pressed with the 'L1' button. 'R1' closes the keyboard. Alternatively 'R1' opens a "one-shot" keyboard where 'L1' will press the selected key and close the keyboard immediately. These button assignments can be configured.
179+
180+
## Keyboard
181+
182+
Keyboard input maps to the Atari ST keyboard. Focus mode might be useful to access keys normally used by the front-end interface.
183+
184+
## Mouse
185+
186+
Mouse input maps to the Atari ST mouse.
187+
188+
| RetroMouse Inputs | Atari Inputs |
189+
|-------------------------------------------------------|---------------------------|
190+
| ![](../image/retromouse/retro_mouse.png) Mouse Cursor | Move Mouse |
191+
| ![](../image/retromouse/retro_left.png) Mouse 1 | Left Click |
192+
| ![](../image/retromouse/retro_right.png) Mouse 2 | Right Click |
193+
194+
## External links
195+
196+
- [Official hatariB Documentation](https://github.com/bbbradsmith/hatariB/blob/main/README.md)
197+
- [Official hatariB GitHub Repository](https://github.com/bbbradsmith/hatariB)
198+
- [Libretro hatariB Core info file](https://github.com/bbbradsmith/hatariB/blob/main/info/hatarib.info)
199+
- [Report Libretro hatariB Core Issues Here](https://github.com/bbbradsmith/hatariB/issues)
200+
201+
## Related cores
202+
203+
- [Hatari](hatari.md)

‎docs/meta/see-also.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ This is a list of cores that are related to each other in some way.
2020
- [FB Neo](../library/fbneo.md)
2121
- [SAME_CDI](../library/same_cdi.md)
2222

23+
## Atari ST
24+
25+
- [Atari - ST/STE/TT/Falcon (Hatari)](../library/hatari.md)
26+
- [Atari - ST/STE/TT/Falcon (hatariB)](../library/hatarib.md)
27+
2328
## ColecoVision
2429

2530
- [Coleco - ColecoVision (Gearcoleco)](../library/gearcoleco.md)

‎mkdocs.yml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ nav:
140140
- 'Atari - Lynx (Handy)': 'library/handy.md'
141141
- 'Atari - Lynx (Holani)': 'library/holani.md'
142142
- 'Atari - ST/STE/TT/Falcon (Hatari)': 'library/hatari.md'
143+
- 'Atari - ST/STE/TT/Falcon (hatariB)': 'library/hatarib.md'
143144
- 'Bandai Emulation':
144145
- 'Bandai - WonderSwan/Color (Beetle Cygne)': 'library/beetle_cygne.md'
145146
- 'Bandai - Wonderswan Compatibility List': 'library/compatibility/wswan.md'

0 commit comments

Comments
 (0)