-
Notifications
You must be signed in to change notification settings - Fork 15
docs: Add comprehensive README #77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,212 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||
| # GBEmulatorShootout 🎮 | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| A comprehensive comparison framework for testing Game Boy emulator accuracy across hundreds of test ROMs. | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ## Overview | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+3
to
+6
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is redundant with the sentence below, so I'd like to keep only one. And, personally, I find the latter more descriptive of the project :)
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||
| GBEmulatorShootout automatically tests multiple Game Boy emulators against a suite of accuracy test ROMs, generating detailed HTML reports with pass/fail status and screenshots for each test case. | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Stylistic tweaks, and placing a link to the site prominently in the README itself.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|  | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+9
to
+10
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hmm, I don't think the license is particularly relevant to this project, since it's not a distributable; I'd rather have it only mentioned at the bottom.
Suggested change
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can also just rely on the fact that a LICENSE file exists and is detected by GitHub to present in its repo sidebar. If we really want to mention the license in the README, I think it should be done as plain text. |
||||||||||||||||||||||||||||||||||||||||||||||||
| ## Supported Emulators | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| The framework currently supports testing the following emulators: | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| | Emulator | URL | | ||||||||||||||||||||||||||||||||||||||||||||||||
| |----------|-----| | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [Beaten Dying Moon](https://mattcurrie.com/bdm-demo/) | mattcurrie.com/bdm-demo | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [mGBA](https://mgba.io/) | mgba.io | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [KiGB](http://kigb.emuunlim.com/) | kigb.emuunlim.com | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [SameBoy](https://sameboy.github.io/) | sameboy.github.io | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [bgb](https://bgb.bircd.org/) | bgb.bircd.org | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [VisualBoyAdvance](https://sourceforge.net/projects/vba) | sourceforge.net/projects/vba | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [VisualBoyAdvance-M](https://github.com/visualboyadvance-m/visualboyadvance-m) | github.com/visualboyadvance-m | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [No$gmb](https://problemkaputt.de/gmb.htm) | problemkaputt.de/gmb | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [GambatteSpeedrun](https://github.com/pokemon-speedrunning/gambatte-speedrun) | github.com/pokemon-speedrunning/gambatte-speedrun | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [Emulicious](https://emulicious.net/) | emulicious.net | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [Goomba](https://www.dwedit.org/gba/goombacolor.php) | dwedit.org/gba/goombacolor | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [binjgb](https://github.com/binji/binjgb) | github.com/binji/binjgb | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [PyBoy](https://github.com/Baekalfen/PyBoy) | github.com/Baekalfen/PyBoy | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [ares](https://ares-emu.net/) | ares-emu.net | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [Emmy](https://emmy.n1ark.com/) | emmy.n1ark.com | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [gameroy](https://github.com/Rodrigodd/gameroy) | github.com/Rodrigodd/gameroy | | ||||||||||||||||||||||||||||||||||||||||||||||||
| | [DocBoy](https://github.com/Docheinstein/docboy) | github.com/Docheinstein/docboy | | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+11
to
+34
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The list of emulators is already present in the website itself, so this list would easily fall out of sync and thus become problematic; I'd rather it be absent from the README. Perhaps the README's introduction line can evoke the variety of listed emulators?
Suggested change
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The website doesn't really present a convenient "list" of emulators; you have to scroll sideways over a large table and read its column headers. Short lists of the tested emulators and of the test suites are two things I'd want to see in a README.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That said, it's weird for the table-style "list" to have visible URLs that aren't linked. Linking them would be redundant with the titles, so just remove the visible URLs; anyone can easily hover/click on the titles to see the pages.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This list is not short, however, it's comprehensive, which makes it redundant in my eyes. I don't want to try making a shortlist unless we have some criteria to base them off of; and even those may be subject to constant bikeshedding. As for the website presenting a list of emulators, I have in mind that this should be solved by implementing a filter for emulators, which would incidentally serve as such a list that doesn't require horizontal scrolling. (And such filtering would remove the horizontal scrolling, too!)
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not sure what you mean by a "shortlist" with "some criteria to base them off of". My use of "large" meant "you have to scroll horizontally a lot to read all the emulators' table headings, which is bad UX". (It's inevitable for a table, of course, but means that users should not be expected to treat the table headings as a readable list on their own.) And my use of "short list" was just an adjective, like "short enough to fit on one screen without scrolling"; no implication that it would be shortened by some criteria to not include every single emulator we test.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It is short enough to fit one a single screen, even a mobile one; however, it is long enough and lacking obvious organisation that I don't see what a user is supposed to glean from it. Further, as more emulators are going to be added, this list is going to grow beyond that “short” qualifier; IMO it's already questionably short. |
||||||||||||||||||||||||||||||||||||||||||||||||
| ## Test Suites | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| The framework includes test ROMs from multiple sources: | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| - **Blargg's tests** - Classic Game Boy test ROMs | ||||||||||||||||||||||||||||||||||||||||||||||||
| - **Mooneye tests** - GB/GBC accuracy tests | ||||||||||||||||||||||||||||||||||||||||||||||||
| - **Acid tests** - GPU/graphics tests | ||||||||||||||||||||||||||||||||||||||||||||||||
| - **Samesuite tests** - Various test scenarios | ||||||||||||||||||||||||||||||||||||||||||||||||
| - **ax6 tests** - Additional accuracy tests | ||||||||||||||||||||||||||||||||||||||||||||||||
| - **daid tests** - Custom test collection | ||||||||||||||||||||||||||||||||||||||||||||||||
| - **hacktix tests** - Edge case tests | ||||||||||||||||||||||||||||||||||||||||||||||||
| - **cpp tests** - C++ emulator tests | ||||||||||||||||||||||||||||||||||||||||||||||||
| - **mealybug tests** - Timing and accuracy tests | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+39
to
+47
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can links be added to the repos those are pulled from? Also, the descriptions are fairly vague; IMO, either make this an inline list (“The framework includes test ROMs from sources such as Blagg's tests, Mooneye's suite, the Acid Tests, SameSuite...”), or write descriptions that point out highlights of each test ROM set.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd just remove the descriptions, unless those test suites provide their own which we can base on. And remove the repetitive "tests" suffixes. This can be a list of titles which are linked to their pages, just like the emulator list.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Well, Blargg's suite is generally considered “GB emulator basics”, for example. (Though we may want to present that info on the website as well, more generally.)
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I just meant that if certain test suites are self-described as being about audio, SGB, hblank tricks, etc, that's something we'd want to point out. But if most of the suites are just "basics"/"various"/"accuracy"/"more accuracy"/"additional various", then descriptions aren't doing much for the reader. E.g. Blargg's repo just says "Collection of Game Boy test roms"; SameSuite just says "a set of Game Boy and Game Boy Color test ROMs"; etc. Maybe we could distinguish them by pointing out things like "blargg's are from way back in the 2000s" or "SameSuite was written specifically to help develop SameBoy". |
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ## Requirements | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ### Core Requirements | ||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||
| pyautogui | ||||||||||||||||||||||||||||||||||||||||||||||||
| pillow | ||||||||||||||||||||||||||||||||||||||||||||||||
| requests | ||||||||||||||||||||||||||||||||||||||||||||||||
| pywin32 | ||||||||||||||||||||||||||||||||||||||||||||||||
| selenium | ||||||||||||||||||||||||||||||||||||||||||||||||
| tqdm | ||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+52
to
+59
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This table is redundant with the
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| Install with: | ||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||
| pip install -r requirements.txt | ||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ### System Requirements | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| - Windows (for most emulator automation) | ||||||||||||||||||||||||||||||||||||||||||||||||
| - Python 3.7+ | ||||||||||||||||||||||||||||||||||||||||||||||||
| - Game Boy emulators installed and configured | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should be self-evident, so please remove this bullet point.
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ## Usage | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ### Basic Usage | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| Run all tests on all configured emulators: | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+74
to
+77
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sub-sub-headings are excessive for such a short document, and redundant with the brief sentences anyway.
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||
| python main.py | ||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ### Filter by Emulator | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| Test only specific emulators: | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||
| python main.py --emulator mgba --emulator sameboy | ||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ### Filter by Test | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| Run only specific test categories: | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||
| python main.py --test blargg --test mooneye | ||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ### Filter by Model | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| Test only specific Game Boy models: | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||
| python main.py --model DMG # Original Game Boy | ||||||||||||||||||||||||||||||||||||||||||||||||
| python main.py --model CGB # Game Boy Color | ||||||||||||||||||||||||||||||||||||||||||||||||
| python main.py --model SGB # Super Game Boy | ||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ### Get Startup Time Measurements | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||
| python main.py --get-startuptime | ||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ### Get Runtime Measurements | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||
| python main.py --get-runtime | ||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ### Export Test Data | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| Export emulator and test definitions to JSON: | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||
| python main.py --dump-emulators-json | ||||||||||||||||||||||||||||||||||||||||||||||||
| python main.py --dump-tests-json | ||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+72
to
+127
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is a good idea in theory, but it's a really verbose way to specify all that. I'd prefer pointing out, in text, that |
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ## Building Reports | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| After running tests, generate an HTML report: | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||
| python build.py | ||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| This creates `index.html` with a detailed comparison table showing: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - Pass/fail status for each test | ||||||||||||||||||||||||||||||||||||||||||||||||
| - Screenshots of test results | ||||||||||||||||||||||||||||||||||||||||||||||||
| - Overall accuracy scores per emulator | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ## Project Structure | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||
| GBEmulatorShootout/ | ||||||||||||||||||||||||||||||||||||||||||||||||
| ├── main.py # Main test runner | ||||||||||||||||||||||||||||||||||||||||||||||||
| ├── build.py # HTML report generator | ||||||||||||||||||||||||||||||||||||||||||||||||
| ├── emulator.py # Base emulator interface | ||||||||||||||||||||||||||||||||||||||||||||||||
| ├── test.py # Test framework utilities | ||||||||||||||||||||||||||||||||||||||||||||||||
| ├── util.py # Helper functions | ||||||||||||||||||||||||||||||||||||||||||||||||
| ├── requirements.txt # Python dependencies | ||||||||||||||||||||||||||||||||||||||||||||||||
| ├── emulators/ # Emulator-specific implementations | ||||||||||||||||||||||||||||||||||||||||||||||||
| │ ├── bdm.py | ||||||||||||||||||||||||||||||||||||||||||||||||
| │ ├── mgba.py | ||||||||||||||||||||||||||||||||||||||||||||||||
| │ ├── sameboy.py | ||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── ... | ||||||||||||||||||||||||||||||||||||||||||||||||
| └── testroms/ # Test ROM collections | ||||||||||||||||||||||||||||||||||||||||||||||||
| ├── blargg/ | ||||||||||||||||||||||||||||||||||||||||||||||||
| ├── mooneye/ | ||||||||||||||||||||||||||||||||||||||||||||||||
| ├── acid/ | ||||||||||||||||||||||||||||||||||||||||||||||||
| └── ... | ||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This can be moved to an ARCHITECTURE.md file like rgbds does. |
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ## How It Works | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| 1. **Test Discovery**: The framework discovers all available test ROMs from various test suites | ||||||||||||||||||||||||||||||||||||||||||||||||
| 2. **Emulator Setup**: Each emulator is configured and prepared for testing | ||||||||||||||||||||||||||||||||||||||||||||||||
| 3. **Automated Testing**: Tests run automatically using pyautogui for UI automation and screenshot capture | ||||||||||||||||||||||||||||||||||||||||||||||||
| 4. **Result Analysis**: Screenshots are compared against expected results | ||||||||||||||||||||||||||||||||||||||||||||||||
| 5. **Report Generation**: Results are compiled into an interactive HTML table | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ## Adding New Emulators | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| To add a new emulator: | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| 1. Create a new file in `emulators/` implementing the base emulator interface | ||||||||||||||||||||||||||||||||||||||||||||||||
| 2. Add the emulator specification to `EMULATOR_SPECS` in `main.py` | ||||||||||||||||||||||||||||||||||||||||||||||||
| 3. Implement required methods: `setup()`, `run()`, `undoSetup()` | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| Example emulator specification: | ||||||||||||||||||||||||||||||||||||||||||||||||
| ```python | ||||||||||||||||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||||||||||||||||
| 'factory': lambda: _new_instance("emulators.myemu", "MyEmulator"), | ||||||||||||||||||||||||||||||||||||||||||||||||
| 'keywords': ["MyEmulator", "myemu"], | ||||||||||||||||||||||||||||||||||||||||||||||||
| 'name': "MyEmulator", | ||||||||||||||||||||||||||||||||||||||||||||||||
| 'url': "https://myemulator.example.com/", | ||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+142
to
+188
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This itself is good information, but I think it would be better moved in a separate
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Agreed. Also there should be a final list item for updating the documentation. |
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ## Contributing | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| Contributions are welcome! Here are some ways you can help: | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| - 🐛 Report bugs or inaccuracies | ||||||||||||||||||||||||||||||||||||||||||||||||
| - ✨ Add support for new emulators | ||||||||||||||||||||||||||||||||||||||||||||||||
| - 📚 Improve documentation | ||||||||||||||||||||||||||||||||||||||||||||||||
| - 🧪 Add new test ROMs | ||||||||||||||||||||||||||||||||||||||||||||||||
| - 🎨 Enhance the HTML report | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+194
to
+198
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This list is in itself very generic, I'd prefer if it linked to appropriate sections of the
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That, and the emojis are just noise. |
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ## License | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ## Acknowledgments | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| - All the emulator developers for their amazing work | ||||||||||||||||||||||||||||||||||||||||||||||||
| - The test ROM authors (Blargg, mooneye, and others) | ||||||||||||||||||||||||||||||||||||||||||||||||
| - The Game Boy development community | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| --- | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| **Happy testing!** 🕹️ If you find this project useful, please consider giving it a ⭐ | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+209
to
+212
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Begging for GitHub stars is not in the spirit of our project, but thank you for the effort 😁
Suggested change
Comment on lines
+200
to
+212
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The license is clear from the existence of a LICENSE file. The emulators and tests are clearly acknowledged by listing them and linking to them earlier in this document. Overall the tone here is "verbosely friendly customer service voice", not "simple positive but to-the-point README".
Suggested change
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It remains common to mention the license in the README, if only because sometimes the LICENSE file doesn't apply to the whole repo (there may be exceptions). I think it's fine to keep one line about it. |
||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's have some fun, shall we? :3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's not encourage even more emojis. :3
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Normally I would agree about the emoji's but I vote we keep ISSOtm's emoji suggestion. Its actually cute.