reinette-II-plus/README.md

113 lines
4.9 KiB
Markdown
Raw Normal View History

2020-08-08 19:31:50 +00:00
# reinette II plus
### reinette goes graphical !
2020-08-17 16:39:06 +00:00
![screenshots](assets/screenshots.png)
2020-08-08 19:31:50 +00:00
2020-08-14 19:42:31 +00:00
After [reinette](https://github.com/ArthurFerreira2/reinette) (Apple 1 emulator) and [reinette II](https://github.com/ArthurFerreira2/reinette-II) (the text only Apple II emulator), I am proud to release **reinette II plus**, a French\* Apple II plus emulator using SDL2.
2020-08-08 19:31:50 +00:00
2020-08-14 19:42:31 +00:00
\* reinette has two meanings in French : it's a little frog but also a delicious kind of apple
2020-08-08 19:31:50 +00:00
2020-09-05 22:50:53 +00:00
[download windows binaries](https://github.com/ArthurFerreira2/reinette-II-plus/releases/tag/0.4)
2020-08-09 00:26:12 +00:00
2020-08-08 19:31:50 +00:00
### Featuring :
* all video modes in color
* mono sound with mute/unmute
2020-09-05 22:40:24 +00:00
* 64KB (language card support)
2020-08-09 08:20:31 +00:00
* paddles/joystick with trim adjustment
2020-08-08 19:31:50 +00:00
* paste text from clipboard
* disk ][ adapter with two drives (.nib files only)
* drag and drop .nib files to inset a floppy
2020-08-08 19:31:50 +00:00
* save floppy changes back to host
* screen scaling by integer increments
2020-09-05 22:40:24 +00:00
* easy screenshot
2020-08-08 19:31:50 +00:00
2021-06-24 20:55:47 +00:00
It uses an optimized and accurate MOS 6502 CPU emulator (now christened [puce6502](https://github.com/ArthurFerreira2/puce6502)).\
2020-08-08 19:31:50 +00:00
You only need SDL2 to compile it. (I'm not using SDL_Mixer, but only the native SDL2 audio functions)
This emulator is not accurate in many ways and does not compete with
2020-08-08 21:55:26 +00:00
[AppleWin](https://github.com/AppleWin/AppleWin), [Epple](https://github.com/cmosher01/Epple-II) or [LinApple](https://github.com/linappleii/linapple). Better use one of them if you want a good Apple ][ emulation experience.
2020-08-08 19:31:50 +00:00
2020-08-08 21:55:26 +00:00
I wrote it with the goal to better understand the Apple ][ internals, and I'm publishing the sources in the hope they will be of any help.
2020-08-08 19:31:50 +00:00
2021-06-24 22:27:41 +00:00
It's compact, with two source files only, one for the CPU emulation, the other for the computer itself.
2020-08-08 19:31:50 +00:00
2020-08-08 21:55:26 +00:00
I did my best to comment the code, and if you have an idea of how an Apple ][ works, it should be easy for you to understand the code, modify and enhance it for your needs (see TODO section).
2020-08-08 19:31:50 +00:00
### Startup
2021-06-24 22:27:41 +00:00
You can specify a .nib file at the command line to start the emulator with a floppy engaged in drive 1. Otherwise, the emulator will start with no floppy (and thus waits until you press the reset key or drag and drop a .nib file)
2020-08-08 19:31:50 +00:00
### Usage
Drag and drop a disk image file (.nib format only) to insert it into drive 1\
2020-08-14 19:42:31 +00:00
**reinette II plus** will reboot immediately and try to boot the floppy.\
Press CTRL while dropping the file if you don't want the emulator to reboot \
Pressing the ALT key while dropping the file inserts it into drive 2.
2020-08-08 19:31:50 +00:00
2020-08-14 19:42:31 +00:00
Use the functions keys to control the emulator itself :
2020-08-08 20:30:17 +00:00
```
2020-09-05 22:40:24 +00:00
* F1 : display save how to
* ctrl F1 : writes the changes of the floppy in drive 0 back to host
* alt F1 : writes the changes of the floppy in drive 1 back to host
* F2 : save a screenshot into the screenshots directory
* F3 : paste text from clipboard
* F4 : mute / unmute sound
* shift F4 : increase volume
* ctrl F4 : decrease volume
* F5 : reset joystick release speed,
* shift F5 : increase joystick release speed
* crtl F5 : decrease joystick release speed,
* F6 : reset joystick action speed,
* shift F6 : increase joystick action speed
* crtl F6 : decrease joystick action speed,
* F7 : reset the zoom to 2:1
* shift F7 : increase zoom up to 8:1 max
* ctrl F7 : decrease zoom down to 1:1 pixels
2021-06-24 20:55:47 +00:00
* F10 : pause / un-pause the emulator
2020-09-05 22:40:24 +00:00
* F11 : reset
* F12 : about, help
2020-08-08 19:31:50 +00:00
2020-08-14 19:42:31 +00:00
Paddles / Joystick :
2020-08-08 19:31:50 +00:00
* numpad 1 : left
* numpad 3 : right
2020-08-14 19:42:31 +00:00
* numpad 5 : up
2020-08-08 19:31:50 +00:00
* numpad 2 : down
* CTRL : button 0
* ALT : button 1
2020-08-14 19:42:31 +00:00
* SHIFT : button 2 (allow applications to use the shift mod)
2020-08-08 20:30:17 +00:00
```
2020-08-08 19:31:50 +00:00
2020-08-08 21:55:26 +00:00
### Limitations
2020-08-08 19:31:50 +00:00
2020-08-14 19:42:31 +00:00
* ~~high pitch noise at high volume on windows (Linux Ubuntu tested OK)~~
2020-08-18 17:26:19 +00:00
* ~~sound cracks when playing for long period (intro music for example)~~
2020-09-05 22:40:24 +00:00
* ~~CPU is not 100% cycle accurate - see source file for more details~~
2020-08-08 20:30:17 +00:00
* colors are approximate (taken from a scan of an old Beagle bros. poster)
* ~~HGR video is inaccurate, and does not implement color fringing~~
2020-08-18 17:26:19 +00:00
* ~~disk ][ access is artificially accelerated~~ - considered as a feature
2020-08-08 20:30:17 +00:00
* only support .nib floppy images. (you can use [CiderPress](https://github.com/fadden/ciderpress) to convert your images to this format)
2020-09-05 22:40:24 +00:00
* ~~only has 48KB of RAM (can't run software requiring the language card)~~
2020-08-08 19:31:50 +00:00
* and many others ...
### To do
2020-08-08 19:31:50 +00:00
2020-08-18 17:26:19 +00:00
* ~~fix sound cracks~~
2020-08-08 21:55:26 +00:00
* give a warning if the application exits with unsaved floppy changes
2020-08-14 19:42:31 +00:00
* check for more accurate RGB values.
* ~~implement color fringe effect in HGR~~
2020-08-18 17:26:19 +00:00
* ~~re-implement Paddles and Joystick support for analog simulation~~
2020-09-05 22:40:24 +00:00
* ~~implement the language card and extend the RAM of **reinette II plus** to 64K to support more software.~~
2020-08-08 21:55:26 +00:00
* for 6502 coders :
* add the ability to insert a binary file at a specified address
2020-08-14 19:42:31 +00:00
* give the user the option to start with the original Apple II rom
* dump regs, soft switches and specified memory pages to console
2020-08-08 21:55:26 +00:00
\
\
\
2020-08-08 19:31:50 +00:00
*simplicity is the ultimate sophistication*