mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-12 08:21:02 +02:00
5041125751
CLOSES #28: PC in the beginning of the game isn't interactable (The one in your house) CLOSES #34: Bug when calculating exp after one or many fainted team members. CLOSES #37: No Grass Cutting CLOSES #38: Blind TMs CLOSES #53: Portable Mode CLOSES #55: changing palletes with hot key CLOSES #62: Poison status damage issue.
112 lines
4.8 KiB
Markdown
112 lines
4.8 KiB
Markdown
# Pokemon Gen 1 Recompilation Project
|
|
|
|
A native LÖVE2D recreation of Pokemon Red. The engine and map behavior are
|
|
hand-written Lua; game data and graphics are decoded from a ROM supplied by
|
|
the player.
|
|
|
|
SUPPORT AND ANNOUNCEMENTS: [Discord](https://bois.icu)
|
|
|
|
This project does not include a ROM, emulate the Game Boy, transpile assembly,
|
|
or download a disassembly. A canonical US Pokemon Red ROM is the only game
|
|
content input.
|
|
|
|
The ROM is verified, used during import, and then released from memory. It is
|
|
not copied into the cache. Later launches load the private generated cache and
|
|
do not ask for the ROM again.
|
|
|
|
## Quick Start
|
|
|
|
Open the desktop app. On first boot, choose your legally obtained `.gb` file
|
|
or drop it onto the window. Import takes a few seconds and the game starts
|
|
automatically.
|
|
|
|
Only the canonical 1 MiB US Red ROM is accepted. The importer verifies SHA-1
|
|
`ea9bcae617fdf159b045185467ae58b2e4a48b9a` before creating any game data.
|
|
The packaged app contains neither a ROM nor pre-extracted game data. Music,
|
|
sound effects, and cries are synthesized while the game runs from compact
|
|
audio channel programs copied out of the verified ROM.
|
|
|
|
## Controls
|
|
|
|
arrow keys or WASD move; Z, Enter, or Space is A; X or Backspace is
|
|
B; Escape opens START. F1 saves and F2 loads. Controllers are supported.
|
|
|
|
## Running From Source
|
|
|
|
Requires LÖVE 11.x. Place the ROM in the project folder and double-click
|
|
`Play-Mac.command` or `Play-Windows.bat`, or run:
|
|
|
|
```sh
|
|
scripts/setup.sh --rom "/path/to/Pokemon Red.gb"
|
|
scripts/run.sh
|
|
```
|
|
|
|
then `love .` for later launches. Windows PowerShell scripts, the optional
|
|
developer data build, test suites, and cache management are covered in
|
|
[Developer Setup](https://github.com/bryanthaboi/pokemon-gen1-recomp-project/wiki/Guide-Developer-Setup).
|
|
|
|
## Portable Mode
|
|
|
|
By default the game keeps your save, options, and the private ROM-derived
|
|
data cache in your OS's normal per-user app data folder. To keep everything
|
|
next to the game instead (handy for a USB stick or portable drive you carry
|
|
between computers), drop an empty file named `portable.txt` next to the
|
|
executable (or next to `main.lua`/`conf.lua` when running from source), then
|
|
launch the game.
|
|
|
|
With `portable.txt` present:
|
|
|
|
- `save.lua`, `save.lua.bak`, and `options.lua` are read from and written to
|
|
that same folder instead of the OS save directory.
|
|
- After a ROM import, the generated `data/generated` and `assets/generated`
|
|
cache is copied into that folder too, so a later launch (even on a
|
|
different computer, as long as the same folder comes along) reuses it
|
|
without asking for the ROM again.
|
|
- Deleting `portable.txt` switches back to the normal OS save directory; nothing
|
|
already written to either location is touched automatically, so copy files
|
|
over yourself if you want to carry existing progress across the switch.
|
|
|
|
## Modding
|
|
|
|
The game ships a native mod platform: content registries, events and hooks,
|
|
per-mod saves and options, and an in-game manager. The full modding book —
|
|
getting started, a twelve-rung tutorial ladder, a cookbook, and the generated
|
|
reference — lives on the
|
|
[project wiki](https://github.com/bryanthaboi/pokemon-gen1-recomp-project/wiki).
|
|
|
|
Shipped example mods, one per kind of author, live in [`mods/`](mods/).
|
|
|
|
## Bugs and Ideas
|
|
|
|
Found a bug? A warp dropping you somewhere it shouldn't, a battle doing math
|
|
that looks wrong, text in the wrong box, anything that does not match the
|
|
original game.
|
|
[Open a bug report](https://github.com/bryanthaboi/pokemon-gen1-recomp-project/issues/new?template=bug_report.yml).
|
|
Attach a screenshot if you can. It saves a lot of back and forth, and if you
|
|
can't get one, the form asks you to describe what you saw instead.
|
|
|
|
Thought of a feature that could be good, or a way to improve one that already
|
|
exists?
|
|
[Open a feature request](https://github.com/bryanthaboi/pokemon-gen1-recomp-project/issues/new?template=feature_request.yml).
|
|
Say what you want, why it is worth doing, and how you picture it working. A
|
|
request with real detail is one that can actually get built.
|
|
|
|
## More
|
|
|
|
- [Link play](https://github.com/bryanthaboi/pokemon-gen1-recomp-project/wiki/Guide-Link-Play)
|
|
— START > LINK connects two copies directly over UDP.
|
|
- [Save editor](https://github.com/bryanthaboi/pokemon-gen1-recomp-project/wiki/Guide-Save-Editor)
|
|
— edit party, boxes, items, events, and Pokédex flags outside the game.
|
|
- `docs/architecture.md` — runtime details;
|
|
`docs/behavior-porting-notes.md` — formula provenance.
|
|
|
|
## Special Thanks
|
|
|
|
This project would not be possible without [pret](https://github.com/pret) >
|
|
the pret band of decompiling maniacs > and their
|
|
[pokered](https://github.com/pret/pokered) disassembly.
|
|
|
|
## Wanna Support My Work?
|
|
[](https://buymeacoffee.com/bryanthaboi)
|
|
|