Update documentation
This commit is contained in:
parent
79244df874
commit
c24d053648
|
@ -0,0 +1,6 @@
|
||||||
|
# Observed bugs
|
||||||
|
- [Observed bugs](#observed-bugs)
|
||||||
|
- [Deadlock](#deadlock)
|
||||||
|
|
||||||
|
## Deadlock
|
||||||
|
It was observed in `PoolBox` when loading the `FontCycler` overlay that a deadlock occurred. This error has not been observed since. The current theory is that accidentally an old save state in the emulator was loaded.
|
|
@ -1,68 +1,40 @@
|
||||||
# Auto LBA
|
# Auto LBA
|
||||||
|
- [Auto LBA](#auto-lba)
|
||||||
## Table of Contents
|
|
||||||
- [In Code](#in-code)
|
- [In Code](#in-code)
|
||||||
- [Overlay](#overlay)
|
|
||||||
- [Main file](#main-file)
|
|
||||||
- [For CD generation](#for-cd-generation)
|
- [For CD generation](#for-cd-generation)
|
||||||
|
|
||||||
To support the `Auto LBA` feature changes need to be applied to the source files and the CD configuration file. The changes for the source files depend on if they are an Overlay or part of the main executable.
|
To support the `Auto LBA` feature changes need to be applied to the source files and the CD configuration file.
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## In Code
|
## In Code
|
||||||
To use the `Auto LBA` feature the LBAs first need to be defined in either an `enum` or `enum struct`. These need to fit a special pattern.
|
To use the `Auto LBA` feature the LBAs first need to be defined in either an `enum` or `enum struct`. These need to fit a special pattern. The usage of a `namespace` is recommended.
|
||||||
|
|
||||||
`__jabyengine_start_lba_request` needs to be the first entry while `__jabyengine_end_lba_request` needs to be the last. Each LBA entry needs to be declared with `__jabyengine_request_lba_for` followed by the name for the enum entry and the file path on the disk.
|
`__jabyengine_start_lba_request` needs to be the first entry while `__jabyengine_end_lba_request` needs to be the last. Each LBA entry needs to be declared with `__jabyengine_request_lba_for` followed by the name for the enum entry and the file path on the disk.
|
||||||
|
|
||||||
```c++
|
```c++
|
||||||
#include <PSX/AutoLBA/auto_lba.hpp>
|
namespace Assets {
|
||||||
|
|
||||||
enum LBA {
|
enum LBA {
|
||||||
__jabyengine_start_lba_request
|
__jabyengine_start_lba_request
|
||||||
__jabyengine_request_lba_for(SYSTEM_CNF, "SYSTEM.CNF"),
|
__jabyengine_request_lba_for(SYSTEM_CNF, "SYSTEM.CNF"),
|
||||||
__jabyengine_end_lba_request
|
__jabyengine_end_lba_request
|
||||||
};
|
};
|
||||||
```
|
|
||||||
|
|
||||||
### __Overlay__
|
|
||||||
For use with Overlays you need to include the related header file. You must place this include into the Namespace of your overlay to avoid name clash. Now the `lba` array is accessible.
|
|
||||||
|
|
||||||
```c++
|
|
||||||
namespace Overlay {
|
|
||||||
#include <PSX/Overlay/overlay_declaration.hpp>
|
|
||||||
|
|
||||||
// ...
|
|
||||||
printf("LBA: %i, Words: %i\n", lba[LBA::SYSTEM_CNF].lba, lba[LBA::SYSTEM_CNF].size_words);
|
|
||||||
// ...
|
|
||||||
|
|
||||||
__declare_overlay_header(execute, LBA);
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### __Main file__
|
|
||||||
For use with the main file you need to include the header file and use the `__declare_lba_header` macro with the name of your enum to create the LBA area in any file. The header allows to access the `lba` array with your enum as the index.
|
|
||||||
|
|
||||||
```c++
|
|
||||||
#include <PSX/AutoLBA/auto_lba_declaration.hpp>
|
|
||||||
|
|
||||||
// ...
|
|
||||||
printf("LBA: %i, Words: %i\n", lba[LBA::SYSTEM_CNF].lba, lba[LBA::SYSTEM_CNF].size_words);
|
|
||||||
// ...
|
|
||||||
|
|
||||||
__declare_lba_header(LBA);
|
__declare_lba_header(LBA);
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
void load() {
|
||||||
|
printf("LBA: %i, Words: %i\n", lba[LBA::SYSTEM_CNF].lba, lba[LBA::SYSTEM_CNF].size_words);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## For CD generation
|
## For CD generation
|
||||||
To automatically fill the LBA values `psxcdgen_ex` needs to be used.
|
To automatically fill the LBA values `psxcdgen_ex` needs to be used.
|
||||||
|
The attribute `lba_source` automatically fills in the values. It can be used with the XML `Main` and `Overlay` tag.
|
||||||
For the main file the special XML type `Main` needs to be used while specifing the LBA file being used.
|
|
||||||
|
|
||||||
For Overlays the instruction will follow...
|
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<Track>
|
<Track>
|
||||||
<File name = "SYSTEM.CNF">System.cnf</File>
|
<File name = "SYSTEM.CNF">System.cnf</File>
|
||||||
<Main name="SCES_XXX.XX" lba_source="main.cpp">Application.psexe</Main>
|
<Main name = "%PSX_BOOT_FILE%" lba_source = "main.cpp">Application.psexe</Main>
|
||||||
|
<Overlay name = "OVL.BIN" lba_source = "state.cpp">Overlay.state</Overlay>
|
||||||
</Track>
|
</Track>
|
||||||
```
|
```
|
13
docs/docs.md
13
docs/docs.md
|
@ -1,7 +1,14 @@
|
||||||
# JabyEngine Documentation
|
# JabyEngine Documentation
|
||||||
|
- [JabyEngine Documentation](#jabyengine-documentation)
|
||||||
## Table of Contents
|
|
||||||
- [Features](#features)
|
- [Features](#features)
|
||||||
---
|
- [Known limitations](#known-limitations)
|
||||||
|
- [Observed bugs](#observed-bugs)
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
- [Auto LBAs](./Features/auto_lba.md)
|
- [Auto LBAs](./Features/auto_lba.md)
|
||||||
|
|
||||||
|
## Known limitations
|
||||||
|
- Insufficient documentation
|
||||||
|
|
||||||
|
## Observed bugs
|
||||||
|
- [Observed bugs](./Bugs/observed_bugs.md)
|
|
@ -1,8 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
// No include here because this header should be included in a namespace and we don't want multiple namespace definitions of OverlayHeader and OverlayLBA
|
|
||||||
|
|
||||||
#include "../AutoLBA/auto_lba_declaration.hpp"
|
|
||||||
|
|
||||||
#define __declare_overlay_header(function, enum_struct) \
|
|
||||||
__declare_lba_header(enum_struct)
|
|
Loading…
Reference in New Issue