updated README and lint fixes

This commit is contained in:
JetSetIlly 2021-09-16 12:34:05 +01:00
parent e5e3f0b7fa
commit 9a5fb8fd1f
20 changed files with 26 additions and 31 deletions

View file

@ -13,6 +13,7 @@ The key features of the emulator:
* Network access through [PlusROM](#plusrom) emulation
* [Savekey](#savekey) support
* [CRT Effects](#crt-effects)
* Stereo audio output
* Support for common [TIA revisions](#tia-revisions)
* Implementation of [Movie Cart](#movie-cart)
@ -84,14 +85,13 @@ Viewer](#statistics-viewer) for details.
There are very few options available to improve performance of the emulator.
One thing you can do is to compile the project with version 1.17 of the Go
compiler. This compiler version is currently in beta but has been extensively
used during testing of `Gopher2600` with no problems.
One thing you can do is to compile the project with at least version 1.17 of
the Go compiler.
Turning CRT effects off will likely have no effect.
For ROMs that use the [ARM](#arm7tdmi-emulation) chip, setting the ARM to
`immediate mode` will eliminate cycle counting and hence give a slight
`immediate mode` will eliminate cycle counting and hence give a modest
performance boost.
## Compilation

View file

@ -425,7 +425,6 @@ func (dbg *Debugger) contEmulation(inputter terminal.Input) error {
dbg.printLine(terminal.StyleError, "CPU halted mid-instruction. next step may be inaccurate.")
dbg.vcs.CPU.Interrupted = true
}
} else if dbg.vcs.CPU.LastResult.Final {
var err error

View file

@ -66,6 +66,6 @@ const (
// of the controller.
ReqControllerChange FeatureReq = "ReqControllerChange" // plugging.PortID, plugging.PeripheralID
// a cartridge event has occured. see mapper.Event for explanation
ReqCartridgeEvent FeatureReq = "ReqCartridgeEvent" // mapper.Event
)

View file

@ -99,7 +99,7 @@ func (seq *Sequence) bind(idxTexture int) uint32 {
return id
}
// Clear texture. Black pixels
// Clear texture. Black pixels.
func (seq *Sequence) Clear(idxTexture int) uint32 {
id := seq.bind(idxTexture)
gl.BindTexture(gl.TEXTURE_2D, id)

View file

@ -407,7 +407,7 @@ func (img *SdlImgui) imguiSwatch(col uint8, size float32) (clicked bool) {
// shows tooltip on hover of the previous imgui digest/group. useful for simple
// tooltips.
func imguiTooltipSimple(tooltip string) {
// split string on newline and display with seperate calls to imgui.Text()
// split string on newline and display with separate calls to imgui.Text()
tooltip = strings.TrimSpace(tooltip)
if tooltip != "" && imgui.IsItemHovered() {
s := strings.Split(tooltip, "\n")

View file

@ -167,7 +167,7 @@ func (plt *platform) postRender() {
plt.window.GLSwap()
}
// toggle the full screeens state. does not capture mouse
// toggle the full screeens state. does not capture mouse.
func (plt *platform) setFullScreen(fullScreen bool) {
plt.fullScreen = fullScreen
if plt.fullScreen {

View file

@ -26,7 +26,7 @@ import (
const notificationDuration = 60 // frames
// peripheralNotification is used to draw an indicator on the screen for controller change events
// peripheralNotification is used to draw an indicator on the screen for controller change events.
type peripheralNotification struct {
frames int
icon string
@ -49,7 +49,6 @@ func (ca *peripheralNotification) set(peripheral plugging.PeripheralID) {
ca.icon = ""
return
}
}
func (ca *peripheralNotification) tick() {
@ -102,7 +101,7 @@ func (ca *peripheralNotification) draw(win *playScr) {
imgui.End()
}
// cartridgeEventNotification is used to draw an indicator on the screen for cartride
// cartridgeEventNotification is used to draw an indicator on the screen for cartridge
// events defined in the mapper package.
type cartridgeEventNotification struct {
open bool

View file

@ -62,7 +62,7 @@ type screenCrit struct {
// critical sectioning
section sync.Mutex
// the most recent frameInfo information from the televsion. updated via
// the most recent frameInfo information from the television. updated via
// Resize() and NewFrame()
frameInfo television.FrameInfo

View file

@ -25,24 +25,24 @@ type Event int
// List of currently defined activities.
const (
// LoadStarted is raised for Supercharger mapper whenever a new tape read
// sequence if started
// sequence if started.
EventSuperchargerLoadStarted Event = iota
// If Supercharger is loading from a fastload binary then this event is
// raised when the loading has been completed
// raised when the loading has been completed.
EventSuperchargerFastloadEnded
// If Supercharger is loading from a sound file (eg. mp3 file) then these
// events area raised when the loading has started/completed
// events area raised when the loading has started/completed.
EventSuperchargerSoundloadStarted
EventSuperchargerSoundloadEnded
// tape is rewinding
// tape is rewinding.
EventSuperchargerSoundloadRewind
// PlusROM cartridge has been inserted
// PlusROM cartridge has been inserted.
EventPlusROMInserted
// PlusROM network activity
// PlusROM network activity.
EventPlusROMNetwork
)

View file

@ -30,7 +30,7 @@ var coreData []byte
//
// these *must* relate to the core.bin embedded above
//
// !!TODO: embed core.bin address constants, generated during the assembly process of core.bin
// !!TODO: embed core.bin address constants, generated during the assembly process of core.bin.
const (
// processAddress().
addrTitleLoop = 0xb50

View file

@ -798,7 +798,6 @@ func (cart *Moviecart) writeBackgroundStream(addr uint16, readCol bool) {
const chunkSize = 8 * 512
func (cart *Moviecart) readField() {
// the usual playback condition
if !cart.state.paused && cart.state.streamChunk > 0 {
dataOffset := cart.state.streamChunk * chunkSize

View file

@ -26,7 +26,7 @@ import (
)
// Sentinal error indicating a specific problem with the attempt to load the
// child cartridge into the PlusROM
// child cartridge into the PlusROM.
const NotAPlusROM = "not a plus rom: %s"
// PlusROM wraps another mapper.CartMapper inside a network aware format.

View file

@ -23,7 +23,7 @@ import (
"strings"
// "github.com/go-audio/audio"
// "github.com/go-audio/wav"
// "github.com/go-audio/wav".
"github.com/hajimehoshi/go-mp3"
"github.com/jetsetilly/gopher2600/cartridgeloader"

View file

@ -39,7 +39,7 @@ type FrameInfo struct {
// to change.
VSynced bool
// Stable is true once the televsion frame has been consistent for N frames
// Stable is true once the television frame has been consistent for N frames
// after reset. This is useful for pixel renderers so that they don't show
// the loose frames that often occur after VCS reset.
//

View file

@ -110,7 +110,7 @@ func (lmtr *limiter) setRate(tv *Television, fps float32) {
lmtr.measureTime = time.Now()
}
// checkFrame should be called every frame
// checkFrame should be called every frame.
func (lmtr *limiter) checkFrame() {
lmtr.measureCt++
if lmtr.active && !lmtr.visualUpdates {
@ -118,7 +118,7 @@ func (lmtr *limiter) checkFrame() {
}
}
// checkFrame should be called every scanline
// checkFrame should be called every scanline.
func (lmtr *limiter) checkScanline() {
if lmtr.active && lmtr.visualUpdates {
<-lmtr.pulse.C

View file

@ -710,7 +710,7 @@ func (tv *Television) GetReqSpecID() string {
}
// GetFrameInfo returns the television's current frame information. FPS and
// RefreshRate is returned by GetReqFPS()
// RefreshRate is returned by GetReqFPS().
func (tv *Television) GetFrameInfo() FrameInfo {
return tv.state.frameInfo
}

View file

@ -350,7 +350,7 @@ func (tia *TIA) resolveDelayedEvents() {
}
}
// Step moves the state of the tia forward one video cycle
// Step moves the state of the tia forward one video cycle.
func (tia *TIA) Step(readMemory bool) {
// update debugging information
tia.videoCycles++

View file

@ -199,7 +199,6 @@ func (bs *BallSprite) rsync(adjustment int) {
// returns true if pixel has changed.
func (bs *BallSprite) tick() bool {
if *bs.tia.hblank {
// early return if nothing to do
if !(bs.tia.hmove.Clk && bs.MoreHMOVE) {

View file

@ -224,7 +224,6 @@ func (ms *MissileSprite) rsync(adjustment int) {
// returns true if pixel has changed.
func (ms *MissileSprite) tick(resetToPlayer bool) bool {
if *ms.tia.hblank {
// early return if nothing to do
if !ms.tia.hmove.Clk {

View file

@ -321,7 +321,7 @@ func (p *Float) RegisterCallback(f func(value Value) error) {
// The Generic prefs type does not have a way of registering a callback
// function. It is also slower than other prefs types because it must protect
// potential critical sections with a mutex (other types can use an atomic
// value)
// value).
type Generic struct {
pref
crit sync.Mutex